@jonmilner/ui 0.0.0-stage → 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/THIRD_PARTY_NOTICES.md +51 -0
- package/dist/AlertDialog/index.d.mts +21 -0
- package/dist/AlertDialog/index.mjs +29 -0
- package/dist/Badge/Badge.css +2 -0
- package/dist/Badge/Badge.css.mjs +24 -0
- package/dist/Badge/index.d.mts +11 -0
- package/dist/Badge/index.mjs +54 -0
- package/dist/Box/Box.css +2 -0
- package/dist/Box/Box.css.mjs +8 -0
- package/dist/Box/index.d.mts +10 -0
- package/dist/Box/index.mjs +15 -0
- package/dist/Button/Button.css +2 -0
- package/dist/Button/Button.css.mjs +25 -0
- package/dist/Button/index.d.mts +20 -0
- package/dist/Button/index.mjs +97 -0
- package/dist/Checkbox/Checkbox.css +2 -0
- package/dist/Checkbox/Checkbox.css.mjs +8 -0
- package/dist/Checkbox/index.d.mts +6 -0
- package/dist/Checkbox/index.mjs +45 -0
- package/dist/Chip/Chip.css +2 -0
- package/dist/Chip/Chip.css.mjs +17 -0
- package/dist/Chip/index.d.mts +13 -0
- package/dist/Chip/index.mjs +73 -0
- package/dist/Clickable/Clickable.css +2 -0
- package/dist/Clickable/Clickable.css.mjs +8 -0
- package/dist/Clickable/index.d.mts +13 -0
- package/dist/Clickable/index.mjs +28 -0
- package/dist/Dialog/Dialog.css +2 -0
- package/dist/Dialog/Dialog.css.d.mts +3 -0
- package/dist/Dialog/Dialog.css.mjs +12 -0
- package/dist/Dialog/client.d.mts +12 -0
- package/dist/Dialog/client.mjs +31 -0
- package/dist/Dialog/index.d.mts +30 -0
- package/dist/Dialog/index.mjs +85 -0
- package/dist/Field/Field.css +2 -0
- package/dist/Field/Field.css.mjs +8 -0
- package/dist/Field/client.mjs +26 -0
- package/dist/Field/index.d.mts +20 -0
- package/dist/Field/index.mjs +88 -0
- package/dist/Heading/Heading.css +2 -0
- package/dist/Heading/Heading.css.mjs +8 -0
- package/dist/Heading/index.d.mts +9 -0
- package/dist/Heading/index.mjs +27 -0
- package/dist/Icon/Icon.css +2 -0
- package/dist/Icon/Icon.css.mjs +17 -0
- package/dist/Icon/index.d.mts +12 -0
- package/dist/Icon/index.mjs +24 -0
- package/dist/IconButton/IconButton.css +2 -0
- package/dist/IconButton/IconButton.css.mjs +24 -0
- package/dist/IconButton/index.d.mts +17 -0
- package/dist/IconButton/index.mjs +25 -0
- package/dist/Inline/Inline.css +2 -0
- package/dist/Inline/Inline.css.mjs +8 -0
- package/dist/Inline/index.d.mts +15 -0
- package/dist/Inline/index.mjs +17 -0
- package/dist/Menu/Menu.css +2 -0
- package/dist/Menu/Menu.css.mjs +8 -0
- package/dist/Menu/client.d.mts +9 -0
- package/dist/Menu/client.mjs +27 -0
- package/dist/Menu/index.d.mts +34 -0
- package/dist/Menu/index.mjs +107 -0
- package/dist/MultiSelect/MultiSelect.css +2 -0
- package/dist/MultiSelect/MultiSelect.css.mjs +8 -0
- package/dist/MultiSelect/client.d.mts +8 -0
- package/dist/MultiSelect/client.mjs +93 -0
- package/dist/MultiSelect/index.d.mts +23 -0
- package/dist/MultiSelect/index.mjs +75 -0
- package/dist/SearchField/SearchField.css +2 -0
- package/dist/SearchField/SearchField.css.mjs +27 -0
- package/dist/SearchField/client.mjs +71 -0
- package/dist/SearchField/index.d.mts +22 -0
- package/dist/SearchField/index.mjs +35 -0
- package/dist/Stack/Stack.css +2 -0
- package/dist/Stack/Stack.css.mjs +8 -0
- package/dist/Stack/index.d.mts +15 -0
- package/dist/Stack/index.mjs +15 -0
- package/dist/Tabs/Tabs.css +2 -0
- package/dist/Tabs/Tabs.css.mjs +8 -0
- package/dist/Tabs/index.d.mts +20 -0
- package/dist/Tabs/index.mjs +88 -0
- package/dist/Tag/Tag.css +2 -0
- package/dist/Tag/Tag.css.mjs +17 -0
- package/dist/Tag/index.d.mts +13 -0
- package/dist/Tag/index.mjs +82 -0
- package/dist/Text/Text.css +2 -0
- package/dist/Text/Text.css.mjs +32 -0
- package/dist/Text/index.d.mts +18 -0
- package/dist/Text/index.mjs +25 -0
- package/dist/Toast/Toast.css +2 -0
- package/dist/Toast/Toast.css.mjs +18 -0
- package/dist/Toast/client.d.mts +46 -0
- package/dist/Toast/client.mjs +219 -0
- package/dist/Toast/index.d.mts +7 -0
- package/dist/Toast/index.mjs +5 -0
- package/dist/base.css +6 -0
- package/dist/brands/brand.d.mts +9 -0
- package/dist/brands/brand.mjs +4 -0
- package/dist/brands/check-fonts.mjs +15 -0
- package/dist/brands/default.d.mts +4 -0
- package/dist/brands/default.mjs +74 -0
- package/dist/brands/font.d.mts +17 -0
- package/dist/brands/font.mjs +35 -0
- package/dist/brands/forced-colors.mjs +18 -0
- package/dist/brands/index.d.mts +8 -0
- package/dist/brands/index.mjs +5 -0
- package/dist/brands/metrics.mjs +40 -0
- package/dist/contrast/color.d.mts +3 -0
- package/dist/contrast/color.mjs +222 -0
- package/dist/contrast/contrast.d.mts +18 -0
- package/dist/contrast/contrast.mjs +52 -0
- package/dist/contrast/mixes.mjs +33 -0
- package/dist/docs/AlertDialog.md +113 -0
- package/dist/docs/Badge.md +76 -0
- package/dist/docs/Box.md +74 -0
- package/dist/docs/Button.md +98 -0
- package/dist/docs/Checkbox.md +107 -0
- package/dist/docs/Chip.md +92 -0
- package/dist/docs/Clickable.md +82 -0
- package/dist/docs/Dialog.md +166 -0
- package/dist/docs/Field.md +143 -0
- package/dist/docs/Heading.md +69 -0
- package/dist/docs/Icon.md +116 -0
- package/dist/docs/IconButton.md +83 -0
- package/dist/docs/Inline.md +79 -0
- package/dist/docs/Menu.md +181 -0
- package/dist/docs/MultiSelect.md +120 -0
- package/dist/docs/SearchField.md +106 -0
- package/dist/docs/Stack.md +79 -0
- package/dist/docs/Tabs.md +130 -0
- package/dist/docs/Tag.md +97 -0
- package/dist/docs/Text.md +90 -0
- package/dist/docs/Toast.md +115 -0
- package/dist/docs/llms.txt +33 -0
- package/dist/docs/manifest.json +2632 -0
- package/dist/docs/manifest.schema.json +96 -0
- package/dist/docs/migrations/README.md +27 -0
- package/dist/docs/theming.md +59 -0
- package/dist/icons/ArrowLeftIcon.d.mts +4 -0
- package/dist/icons/ArrowLeftIcon.mjs +11 -0
- package/dist/icons/ArrowRightIcon.d.mts +4 -0
- package/dist/icons/ArrowRightIcon.mjs +11 -0
- package/dist/icons/CheckIcon.d.mts +4 -0
- package/dist/icons/CheckIcon.mjs +11 -0
- package/dist/icons/ChevronDownIcon.d.mts +4 -0
- package/dist/icons/ChevronDownIcon.mjs +11 -0
- package/dist/icons/ChevronRightIcon.d.mts +4 -0
- package/dist/icons/ChevronRightIcon.mjs +11 -0
- package/dist/icons/CircleAlertIcon.d.mts +4 -0
- package/dist/icons/CircleAlertIcon.mjs +15 -0
- package/dist/icons/CircleCheckIcon.d.mts +4 -0
- package/dist/icons/CircleCheckIcon.mjs +15 -0
- package/dist/icons/CircleDotIcon.d.mts +4 -0
- package/dist/icons/CircleDotIcon.mjs +19 -0
- package/dist/icons/CircleSlashIcon.d.mts +4 -0
- package/dist/icons/CircleSlashIcon.mjs +15 -0
- package/dist/icons/GitMergeIcon.d.mts +4 -0
- package/dist/icons/GitMergeIcon.mjs +23 -0
- package/dist/icons/GitPullRequestClosedIcon.d.mts +4 -0
- package/dist/icons/GitPullRequestClosedIcon.mjs +23 -0
- package/dist/icons/GitPullRequestDraftIcon.d.mts +4 -0
- package/dist/icons/GitPullRequestDraftIcon.mjs +23 -0
- package/dist/icons/GitPullRequestIcon.d.mts +4 -0
- package/dist/icons/GitPullRequestIcon.mjs +23 -0
- package/dist/icons/InboxIcon.d.mts +4 -0
- package/dist/icons/InboxIcon.mjs +11 -0
- package/dist/icons/InfoIcon.d.mts +4 -0
- package/dist/icons/InfoIcon.mjs +15 -0
- package/dist/icons/LoaderCircleIcon.d.mts +4 -0
- package/dist/icons/LoaderCircleIcon.mjs +11 -0
- package/dist/icons/RefreshCwIcon.d.mts +4 -0
- package/dist/icons/RefreshCwIcon.mjs +15 -0
- package/dist/icons/SearchIcon.d.mts +4 -0
- package/dist/icons/SearchIcon.mjs +15 -0
- package/dist/icons/SettingsIcon.d.mts +4 -0
- package/dist/icons/SettingsIcon.mjs +15 -0
- package/dist/icons/XIcon.d.mts +4 -0
- package/dist/icons/XIcon.mjs +11 -0
- package/dist/icons/index.d.mts +25 -0
- package/dist/icons/index.mjs +45 -0
- package/dist/index.d.mts +27 -0
- package/dist/index.mjs +25 -0
- package/dist/popup/client.d.mts +9 -0
- package/dist/popup/client.mjs +31 -0
- package/dist/styles/atoms.css +2 -0
- package/dist/styles/atoms.css.d.mts +219 -0
- package/dist/styles/atoms.css.mjs +2579 -0
- package/dist/styles/button-fills.mjs +17 -0
- package/dist/styles/highlight.mjs +8 -0
- package/dist/styles/hover-tint.mjs +4 -0
- package/dist/styles/join.mjs +4 -0
- package/dist/styles/layers.css +2 -0
- package/dist/styles/part-props.d.mts +8 -0
- package/dist/styles/split-style-props.mjs +9 -0
- package/dist/testing/index.d.mts +4 -0
- package/dist/testing/index.mjs +3 -0
- package/dist/testing/motion.d.mts +22 -0
- package/dist/testing/motion.mjs +49 -0
- package/dist/theme/FontCheck.mjs +11 -0
- package/dist/theme/ThemeProvider.d.mts +15 -0
- package/dist/theme/ThemeProvider.mjs +23 -0
- package/dist/theme/define-theme.d.mts +9 -0
- package/dist/theme/define-theme.mjs +84 -0
- package/dist/theme/use-theme-container.mjs +15 -0
- package/dist/tokens/contract.d.mts +105 -0
- package/dist/tokens/contract.mjs +17 -0
- package/dist/tokens/index.d.mts +2 -0
- package/dist/tokens/index.mjs +1 -0
- package/dist/tokens/roles.d.mts +6 -0
- package/dist/tokens/roles.mjs +24 -0
- package/dist/tokens/scales.d.mts +95 -0
- package/dist/tokens/scales.mjs +98 -0
- package/dist/types.d.mts +3 -0
- package/package.json +159 -3
- package/README.md +0 -3
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { StyleProps } from "../Box/index.mjs";
|
|
2
|
+
import { MenuTrigger, MenuTriggerProps } from "./client.mjs";
|
|
3
|
+
import { CSSProperties, ReactNode } from "react";
|
|
4
|
+
import { Menu as Menu$1 } from "@base-ui/react/menu";
|
|
5
|
+
//#region src/Menu/index.d.ts
|
|
6
|
+
type PartProps<P> = StyleProps & Omit<P, "render" | "className" | "style" | keyof StyleProps> & {
|
|
7
|
+
className?: string;
|
|
8
|
+
style?: CSSProperties;
|
|
9
|
+
};
|
|
10
|
+
export type MenuProps = Pick<Menu$1.Root.Props, "open" | "defaultOpen" | "onOpenChange" | "modal" | "disabled" | "loopFocus"> & {
|
|
11
|
+
children?: ReactNode;
|
|
12
|
+
};
|
|
13
|
+
export type MenuPopupProps = PartProps<Menu$1.Popup.Props> & Pick<Menu$1.Positioner.Props, "side" | "align">;
|
|
14
|
+
export type MenuItemProps = PartProps<Menu$1.Item.Props> & {
|
|
15
|
+
variant?: "neutral" | "danger";
|
|
16
|
+
};
|
|
17
|
+
export type MenuSeparatorProps = PartProps<Menu$1.Separator.Props>;
|
|
18
|
+
export type MenuGroupProps = PartProps<Menu$1.Group.Props> & {
|
|
19
|
+
label: ReactNode;
|
|
20
|
+
};
|
|
21
|
+
declare function MenuRoot({ children, ...props }: MenuProps): import("react").JSX.Element;
|
|
22
|
+
declare function MenuPopup({ side, align, backgroundColor, borderRadius, boxShadow, padding, className, style, ...props }: MenuPopupProps): import("react").JSX.Element;
|
|
23
|
+
declare function MenuItem({ variant, display, alignItems, gap, minBlockSize, paddingInline, borderRadius, color, className, style, children, ...props }: MenuItemProps): import("react").JSX.Element;
|
|
24
|
+
declare function MenuSeparator({ marginBlock, marginInline, className, style, ...props }: MenuSeparatorProps): import("react").JSX.Element;
|
|
25
|
+
declare function MenuGroup({ label, className, style, children, ...props }: MenuGroupProps): import("react").JSX.Element;
|
|
26
|
+
export declare const Menu: typeof MenuRoot & {
|
|
27
|
+
Trigger: typeof MenuTrigger;
|
|
28
|
+
Popup: typeof MenuPopup;
|
|
29
|
+
Item: typeof MenuItem;
|
|
30
|
+
Separator: typeof MenuSeparator;
|
|
31
|
+
Group: typeof MenuGroup;
|
|
32
|
+
};
|
|
33
|
+
//#endregion
|
|
34
|
+
export type { MenuTriggerProps };
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
import { join as e } from "../styles/join.mjs";
|
|
2
|
+
import { splitStyleProps as t } from "../styles/split-style-props.mjs";
|
|
3
|
+
import { Box as n } from "../Box/index.mjs";
|
|
4
|
+
import { Text as r } from "../Text/index.mjs";
|
|
5
|
+
import { PopupScope as i } from "../popup/client.mjs";
|
|
6
|
+
import { MenuPortal as a, MenuTrigger as o } from "./client.mjs";
|
|
7
|
+
import { item as s, popup as c, separator as l } from "./Menu.css.mjs";
|
|
8
|
+
import { jsx as u, jsxs as d } from "react/jsx-runtime";
|
|
9
|
+
import { Children as f } from "react";
|
|
10
|
+
import { Menu as p } from "@base-ui/react/menu";
|
|
11
|
+
//#region src/Menu/index.tsx
|
|
12
|
+
function m({ children: e, ...t }) {
|
|
13
|
+
return /* @__PURE__ */ u(i, { children: /* @__PURE__ */ u(p.Root, {
|
|
14
|
+
...t,
|
|
15
|
+
children: e
|
|
16
|
+
}) });
|
|
17
|
+
}
|
|
18
|
+
function h({ side: r = "bottom", align: i = "start", backgroundColor: o = "bgRaised", borderRadius: s = "med", boxShadow: l = "med", padding: d = "4", className: f, style: m, ...h }) {
|
|
19
|
+
let [g, _] = t(h);
|
|
20
|
+
return /* @__PURE__ */ u(a, { children: /* @__PURE__ */ u(p.Positioner, {
|
|
21
|
+
align: i,
|
|
22
|
+
collisionPadding: 8,
|
|
23
|
+
render: /* @__PURE__ */ u(n, { zIndex: "popover" }),
|
|
24
|
+
side: r,
|
|
25
|
+
sideOffset: 4,
|
|
26
|
+
children: /* @__PURE__ */ u(p.Popup, {
|
|
27
|
+
..._,
|
|
28
|
+
render: /* @__PURE__ */ u(n, {
|
|
29
|
+
backgroundColor: o,
|
|
30
|
+
borderRadius: s,
|
|
31
|
+
boxShadow: l,
|
|
32
|
+
padding: d,
|
|
33
|
+
...g,
|
|
34
|
+
className: e(c, f),
|
|
35
|
+
style: m
|
|
36
|
+
})
|
|
37
|
+
})
|
|
38
|
+
}) });
|
|
39
|
+
}
|
|
40
|
+
function g({ variant: i = "neutral", display: a = "flex", alignItems: o = "center", gap: c = "8", minBlockSize: l = "sm", paddingInline: d = "12", borderRadius: m = "sm", color: h = i === "danger" ? "danger" : "fg", className: g, style: _, children: v, ...y }) {
|
|
41
|
+
let [b, x] = t(y);
|
|
42
|
+
return /* @__PURE__ */ u(p.Item, {
|
|
43
|
+
...x,
|
|
44
|
+
render: /* @__PURE__ */ u(n, {
|
|
45
|
+
display: a,
|
|
46
|
+
alignItems: o,
|
|
47
|
+
gap: c,
|
|
48
|
+
minBlockSize: l,
|
|
49
|
+
paddingInline: d,
|
|
50
|
+
borderRadius: m,
|
|
51
|
+
color: h,
|
|
52
|
+
...b,
|
|
53
|
+
className: e(s, g),
|
|
54
|
+
style: _
|
|
55
|
+
}),
|
|
56
|
+
children: f.map(v, (e) => typeof e == "string" || typeof e == "number" ? /* @__PURE__ */ u(r, {
|
|
57
|
+
as: "span",
|
|
58
|
+
font: "label",
|
|
59
|
+
size: "sm",
|
|
60
|
+
children: e
|
|
61
|
+
}) : e)
|
|
62
|
+
});
|
|
63
|
+
}
|
|
64
|
+
function _({ marginBlock: r = "4", marginInline: i = "8", className: a, style: o, ...s }) {
|
|
65
|
+
let [c, d] = t(s);
|
|
66
|
+
return /* @__PURE__ */ u(p.Separator, {
|
|
67
|
+
...d,
|
|
68
|
+
render: /* @__PURE__ */ u(n, {
|
|
69
|
+
marginBlock: r,
|
|
70
|
+
marginInline: i,
|
|
71
|
+
...c,
|
|
72
|
+
className: e(l, a),
|
|
73
|
+
style: o
|
|
74
|
+
})
|
|
75
|
+
});
|
|
76
|
+
}
|
|
77
|
+
function v({ label: e, className: i, style: a, children: o, ...s }) {
|
|
78
|
+
let [c, l] = t(s);
|
|
79
|
+
return /* @__PURE__ */ d(p.Group, {
|
|
80
|
+
...l,
|
|
81
|
+
render: /* @__PURE__ */ u(n, {
|
|
82
|
+
...c,
|
|
83
|
+
className: i,
|
|
84
|
+
style: a
|
|
85
|
+
}),
|
|
86
|
+
children: [/* @__PURE__ */ u(p.GroupLabel, {
|
|
87
|
+
render: /* @__PURE__ */ u(r, {
|
|
88
|
+
as: "div",
|
|
89
|
+
color: "fgMuted",
|
|
90
|
+
font: "label",
|
|
91
|
+
paddingBlock: "8",
|
|
92
|
+
paddingInline: "12",
|
|
93
|
+
size: "xs"
|
|
94
|
+
}),
|
|
95
|
+
children: e
|
|
96
|
+
}), o]
|
|
97
|
+
});
|
|
98
|
+
}
|
|
99
|
+
var y = Object.assign(m, {
|
|
100
|
+
Trigger: o,
|
|
101
|
+
Popup: h,
|
|
102
|
+
Item: g,
|
|
103
|
+
Separator: _,
|
|
104
|
+
Group: v
|
|
105
|
+
});
|
|
106
|
+
//#endregion
|
|
107
|
+
export { y as Menu };
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
@layer tokens, reset, atoms, components.box, components.checkbox, components.clickable, components.icon, components.icon-button, components.inline, components.stack, components.text, components.badge, components.button, components.chip, components.field, components.heading, components.dialog, components.alert-dialog, components.menu, components.multiselect, components.search-field, components.tabs, components.tag, components.toast;
|
|
2
|
+
@layer components.multiselect{._1seauxl0{text-align:start;justify-content:stretch}._1seauxl0>span{flex:auto;justify-items:stretch;min-inline-size:0}._1seauxl0>span>span{min-inline-size:0}._1seauxl0>span>span>span:first-child{flex:auto;min-inline-size:0}._1seauxl1{min-inline-size:0;display:block}._1seauxl1[data-placeholder]{color:var(--color-fg-muted)}._1seauxl2{min-inline-size:0;display:grid}._1seauxl3{text-overflow:ellipsis;white-space:nowrap;grid-area:1/1;overflow:hidden}._1seauxl3[aria-hidden=true]{visibility:hidden}._1seauxl4{text-overflow:ellipsis;white-space:nowrap;grid-area:1/1;overflow:hidden}._1seauxl5{border:var(--space-1) solid var(--color-border);min-inline-size:var(--anchor-width);max-block-size:var(--available-height);transform-origin:var(--transform-origin);transition:opacity var(--duration-fast) var(--easing-standard), scale var(--duration-fast) var(--easing-enter);overflow-y:auto}._1seauxl5:focus-visible{outline:var(--space-2) solid var(--color-focus);outline-offset:var(--space-2)}._1seauxl5[data-starting-style],._1seauxl5[data-ending-style]{opacity:0;scale:calc(1 - var(--scale-med))}._1seauxl6{cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none}._1seauxl6:focus-visible{outline:var(--space-2) solid var(--color-focus);outline-offset:var(--space-2)}._1seauxl6[data-highlighted]{background-color:light-dark(var(--color-bg-muted),color-mix(in srgb, var(--color-fg) 10%, var(--color-bg-raised)))}._1seauxl6[aria-disabled=true]{color:var(--color-fg-muted);cursor:not-allowed}._1seauxl7{visibility:hidden;flex-shrink:0}._1seauxl6[aria-selected=true] ._1seauxl7{visibility:visible}@media (forced-colors:active){._1seauxl6[data-highlighted]{forced-color-adjust:none;color:highlighttext;background-color:highlight}._1seauxl6[aria-disabled=true]{color:graytext}}}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import "../styles/layers.css";
|
|
2
|
+
import "./MultiSelect.css";
|
|
3
|
+
/* empty css */
|
|
4
|
+
/* empty css */
|
|
5
|
+
//#region src/MultiSelect/MultiSelect.css.ts
|
|
6
|
+
var e = "_1seauxl0", t = "_1seauxl1", n = "_1seauxl2", r = "_1seauxl3", i = "_1seauxl4", a = "_1seauxl5", o = "_1seauxl6", s = "_1seauxl7";
|
|
7
|
+
//#endregion
|
|
8
|
+
export { s as check, i as count, o as item, r as labels, a as popup, n as summary, e as trigger, t as value };
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { Box as e } from "../Box/index.mjs";
|
|
3
|
+
import { PopupScope as t, triggerElement as n, usePopupScope as r } from "../popup/client.mjs";
|
|
4
|
+
import { Field as i } from "../Field/index.mjs";
|
|
5
|
+
import { ChevronDownIcon as a } from "../icons/ChevronDownIcon.mjs";
|
|
6
|
+
import { labels as o, popup as s, summary as c, trigger as l, value as u } from "./MultiSelect.css.mjs";
|
|
7
|
+
import { jsx as d, jsxs as f } from "react/jsx-runtime";
|
|
8
|
+
import { createContext as p, use as m, useId as h, useLayoutEffect as g, useMemo as _, useRef as v, useState as y } from "react";
|
|
9
|
+
import { Select as b } from "@base-ui/react/select";
|
|
10
|
+
//#region src/MultiSelect/client.tsx
|
|
11
|
+
function x({ options: e, placeholder: t, countLabel: i, disabled: o }) {
|
|
12
|
+
let { ref: s } = r(), c = _(() => new Map(e.map((e) => [e.value, e.label])), [e]);
|
|
13
|
+
return /* @__PURE__ */ d(b.Trigger, {
|
|
14
|
+
disabled: o,
|
|
15
|
+
ref: s,
|
|
16
|
+
render: n({
|
|
17
|
+
variant: "secondary",
|
|
18
|
+
iconEnd: a,
|
|
19
|
+
className: l,
|
|
20
|
+
children: /* @__PURE__ */ d(b.Value, {
|
|
21
|
+
className: u,
|
|
22
|
+
placeholder: t,
|
|
23
|
+
children: (e) => e.length > 0 ? /* @__PURE__ */ d(S, {
|
|
24
|
+
count: i.replaceAll("{count}", String(e.length)),
|
|
25
|
+
labels: e.map((e) => c.get(e) ?? e)
|
|
26
|
+
}) : t
|
|
27
|
+
})
|
|
28
|
+
})
|
|
29
|
+
});
|
|
30
|
+
}
|
|
31
|
+
function S({ labels: t, count: n }) {
|
|
32
|
+
let r = v(null), [i, a] = y(!0), s = t.join(", ");
|
|
33
|
+
g(() => {
|
|
34
|
+
let e = r.current;
|
|
35
|
+
if (!e) return;
|
|
36
|
+
let t = () => a(e.scrollWidth <= e.clientWidth);
|
|
37
|
+
t(), document.fonts?.ready.then(t);
|
|
38
|
+
let n = new ResizeObserver(t);
|
|
39
|
+
return n.observe(e), () => n.disconnect();
|
|
40
|
+
}, [s]);
|
|
41
|
+
let l = !i && t.length > 1;
|
|
42
|
+
return /* @__PURE__ */ f(e, {
|
|
43
|
+
as: "span",
|
|
44
|
+
className: c,
|
|
45
|
+
children: [/* @__PURE__ */ d(e, {
|
|
46
|
+
"aria-hidden": l || void 0,
|
|
47
|
+
as: "span",
|
|
48
|
+
className: o,
|
|
49
|
+
ref: r,
|
|
50
|
+
children: s
|
|
51
|
+
}), l && /* @__PURE__ */ d(e, {
|
|
52
|
+
as: "span",
|
|
53
|
+
className: "_1seauxl4",
|
|
54
|
+
children: n
|
|
55
|
+
})]
|
|
56
|
+
});
|
|
57
|
+
}
|
|
58
|
+
var C = p(void 0);
|
|
59
|
+
function w({ children: e }) {
|
|
60
|
+
return /* @__PURE__ */ d(t, { children: /* @__PURE__ */ d(C, {
|
|
61
|
+
value: h(),
|
|
62
|
+
children: e
|
|
63
|
+
}) });
|
|
64
|
+
}
|
|
65
|
+
function T({ children: e }) {
|
|
66
|
+
return /* @__PURE__ */ d(i.Label, {
|
|
67
|
+
id: m(C),
|
|
68
|
+
nativeLabel: !1,
|
|
69
|
+
children: e
|
|
70
|
+
});
|
|
71
|
+
}
|
|
72
|
+
function E({ children: t }) {
|
|
73
|
+
return /* @__PURE__ */ d(b.Popup, {
|
|
74
|
+
"aria-labelledby": m(C),
|
|
75
|
+
render: /* @__PURE__ */ d(e, {
|
|
76
|
+
backgroundColor: "bgRaised",
|
|
77
|
+
borderRadius: "med",
|
|
78
|
+
boxShadow: "med",
|
|
79
|
+
className: s,
|
|
80
|
+
padding: "4"
|
|
81
|
+
}),
|
|
82
|
+
children: t
|
|
83
|
+
});
|
|
84
|
+
}
|
|
85
|
+
function D({ children: e }) {
|
|
86
|
+
let { container: t } = r();
|
|
87
|
+
return /* @__PURE__ */ d(b.Portal, {
|
|
88
|
+
container: t,
|
|
89
|
+
children: e
|
|
90
|
+
});
|
|
91
|
+
}
|
|
92
|
+
//#endregion
|
|
93
|
+
export { T as MultiSelectLabel, E as MultiSelectPopup, D as MultiSelectPortal, w as MultiSelectScope, x as MultiSelectTrigger };
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { StyleProps } from "../Box/index.mjs";
|
|
2
|
+
import { Option } from "./client.mjs";
|
|
3
|
+
import { CSSProperties, ReactNode } from "react";
|
|
4
|
+
//#region src/MultiSelect/index.d.ts
|
|
5
|
+
export type MultiSelectOption = Option;
|
|
6
|
+
export type MultiSelectProps = StyleProps & {
|
|
7
|
+
className?: string;
|
|
8
|
+
countLabel?: string;
|
|
9
|
+
defaultValue?: readonly string[];
|
|
10
|
+
description?: ReactNode;
|
|
11
|
+
disabled?: boolean;
|
|
12
|
+
error?: ReactNode;
|
|
13
|
+
label: ReactNode;
|
|
14
|
+
name?: string;
|
|
15
|
+
onValueChange?: (value: string[]) => void;
|
|
16
|
+
options: readonly MultiSelectOption[];
|
|
17
|
+
placeholder?: string;
|
|
18
|
+
required?: boolean;
|
|
19
|
+
style?: CSSProperties;
|
|
20
|
+
value?: readonly string[];
|
|
21
|
+
};
|
|
22
|
+
export declare function MultiSelect({ options, value, defaultValue, onValueChange, label, description, error, placeholder, countLabel, disabled, required, name, className, style, ...atoms }: MultiSelectProps): import("react").JSX.Element;
|
|
23
|
+
//#endregion
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
import { Box as e } from "../Box/index.mjs";
|
|
2
|
+
import { Text as t } from "../Text/index.mjs";
|
|
3
|
+
import { CheckIcon as n } from "../icons/CheckIcon.mjs";
|
|
4
|
+
import { Field as r } from "../Field/index.mjs";
|
|
5
|
+
import { check as i, item as a } from "./MultiSelect.css.mjs";
|
|
6
|
+
import { MultiSelectLabel as o, MultiSelectPopup as s, MultiSelectPortal as c, MultiSelectScope as l, MultiSelectTrigger as u } from "./client.mjs";
|
|
7
|
+
import { jsx as d, jsxs as f } from "react/jsx-runtime";
|
|
8
|
+
import { Select as p } from "@base-ui/react/select";
|
|
9
|
+
//#region src/MultiSelect/index.tsx
|
|
10
|
+
function m({ options: m, value: h, defaultValue: g, onValueChange: _, label: v, description: y, error: b, placeholder: x = "Select", countLabel: S = "{count} selected", disabled: C = !1, required: w = !1, name: T, className: E, style: D, ...O }) {
|
|
11
|
+
return /* @__PURE__ */ f(r, {
|
|
12
|
+
...O,
|
|
13
|
+
className: E,
|
|
14
|
+
disabled: C,
|
|
15
|
+
invalid: b != null && b !== !1 && b !== "",
|
|
16
|
+
style: D,
|
|
17
|
+
children: [
|
|
18
|
+
/* @__PURE__ */ d(l, { children: /* @__PURE__ */ f(p.Root, {
|
|
19
|
+
defaultValue: g,
|
|
20
|
+
disabled: C,
|
|
21
|
+
multiple: !0,
|
|
22
|
+
name: T,
|
|
23
|
+
onValueChange: _,
|
|
24
|
+
required: w,
|
|
25
|
+
value: h,
|
|
26
|
+
children: [
|
|
27
|
+
/* @__PURE__ */ d(o, { children: v }),
|
|
28
|
+
/* @__PURE__ */ d(u, {
|
|
29
|
+
countLabel: S,
|
|
30
|
+
disabled: C,
|
|
31
|
+
options: m,
|
|
32
|
+
placeholder: x
|
|
33
|
+
}),
|
|
34
|
+
/* @__PURE__ */ d(c, { children: /* @__PURE__ */ d(p.Positioner, {
|
|
35
|
+
align: "start",
|
|
36
|
+
alignItemWithTrigger: !1,
|
|
37
|
+
collisionPadding: 8,
|
|
38
|
+
render: /* @__PURE__ */ d(e, { zIndex: "popover" }),
|
|
39
|
+
side: "bottom",
|
|
40
|
+
sideOffset: 4,
|
|
41
|
+
children: /* @__PURE__ */ d(s, { children: m.map((r) => /* @__PURE__ */ f(p.Item, {
|
|
42
|
+
disabled: r.disabled,
|
|
43
|
+
label: r.label,
|
|
44
|
+
render: /* @__PURE__ */ d(e, {
|
|
45
|
+
alignItems: "center",
|
|
46
|
+
borderRadius: "sm",
|
|
47
|
+
className: a,
|
|
48
|
+
display: "flex",
|
|
49
|
+
gap: "8",
|
|
50
|
+
minBlockSize: "sm",
|
|
51
|
+
paddingInline: "12"
|
|
52
|
+
}),
|
|
53
|
+
value: r.value,
|
|
54
|
+
children: [/* @__PURE__ */ d(n, {
|
|
55
|
+
className: i,
|
|
56
|
+
size: "sm"
|
|
57
|
+
}), /* @__PURE__ */ d(p.ItemText, {
|
|
58
|
+
render: /* @__PURE__ */ d(t, {
|
|
59
|
+
as: "span",
|
|
60
|
+
font: "label",
|
|
61
|
+
size: "sm"
|
|
62
|
+
}),
|
|
63
|
+
children: r.label
|
|
64
|
+
})]
|
|
65
|
+
}, r.value)) })
|
|
66
|
+
}) })
|
|
67
|
+
]
|
|
68
|
+
}) }),
|
|
69
|
+
y != null && /* @__PURE__ */ d(r.Description, { children: y }),
|
|
70
|
+
/* @__PURE__ */ d(r.Error, { children: b })
|
|
71
|
+
]
|
|
72
|
+
});
|
|
73
|
+
}
|
|
74
|
+
//#endregion
|
|
75
|
+
export { m as MultiSelect };
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
@layer tokens, reset, atoms, components.box, components.checkbox, components.clickable, components.icon, components.icon-button, components.inline, components.stack, components.text, components.badge, components.button, components.chip, components.field, components.heading, components.dialog, components.alert-dialog, components.menu, components.multiselect, components.search-field, components.tabs, components.tag, components.toast;
|
|
2
|
+
@layer components.search-field{._1cj8r6g0{clip-path:inset(50%);white-space:nowrap;border:0;block-size:1px;inline-size:1px;margin:0;padding:0;position:absolute;overflow:hidden}._1cj8r6g1{border-width:var(--space-1);border-style:solid;border-color:var(--color-border-strong);border-radius:var(--radius-med);background-color:var(--color-bg);inline-size:100%;min-inline-size:0;color:var(--color-fg);appearance:none;grid-area:1/1;padding-block:0}._1cj8r6g1::placeholder{color:var(--color-fg-muted);opacity:1}._1cj8r6g1::-webkit-search-cancel-button{appearance:none}._1cj8r6g1::-webkit-search-decoration{appearance:none}._1cj8r6g1:focus-visible{outline:var(--space-2) solid var(--color-focus);outline-offset:var(--space-2)}._1cj8r6g1:disabled{background-color:var(--color-bg-muted);color:var(--color-fg-muted);cursor:not-allowed;border-style:dashed}._1cj8r6g1[aria-invalid=true]{border-color:var(--color-danger)}._1cj8r6g2{block-size:var(--size-sm);padding-inline-start:calc(var(--space-8) + var(--space-8) + var(--font-size-sm));padding-inline-end:var(--size-sm)}._1cj8r6g3{block-size:var(--size-med);padding-inline-start:calc(var(--space-12) + var(--space-8) + var(--font-size-med));padding-inline-end:var(--size-med)}._1cj8r6g4{block-size:var(--size-lg);padding-inline-start:calc(var(--space-16) + var(--space-8) + var(--font-size-lg));padding-inline-end:var(--size-lg)}._1cj8r6g5{pointer-events:none;color:var(--color-fg-muted);grid-area:1/1;justify-self:start}._1cj8r6g6{margin-inline-start:var(--space-8)}._1cj8r6g7{margin-inline-start:var(--space-12)}._1cj8r6g8{margin-inline-start:var(--space-16)}._1cj8r6g9{border-color:#0000;grid-area:1/1;justify-self:end;margin-inline-end:var(--space-4)}@media (forced-colors:active){._1cj8r6g1:disabled{color:graytext;border-color:graytext}}}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import "../styles/layers.css";
|
|
2
|
+
import "./SearchField.css";
|
|
3
|
+
/* empty css */
|
|
4
|
+
/* empty css */
|
|
5
|
+
import { createRuntimeFn as e } from "@vanilla-extract/recipes/createRuntimeFn";
|
|
6
|
+
//#region src/SearchField/SearchField.css.ts
|
|
7
|
+
var t = "_1cj8r6g0", n = e({
|
|
8
|
+
defaultClassName: "_1cj8r6g1",
|
|
9
|
+
variantClassNames: { size: {
|
|
10
|
+
sm: "_1cj8r6g2",
|
|
11
|
+
med: "_1cj8r6g3",
|
|
12
|
+
lg: "_1cj8r6g4"
|
|
13
|
+
} },
|
|
14
|
+
defaultVariants: {},
|
|
15
|
+
compoundVariants: []
|
|
16
|
+
}), r = e({
|
|
17
|
+
defaultClassName: "_1cj8r6g5",
|
|
18
|
+
variantClassNames: { size: {
|
|
19
|
+
sm: "_1cj8r6g6",
|
|
20
|
+
med: "_1cj8r6g7",
|
|
21
|
+
lg: "_1cj8r6g8"
|
|
22
|
+
} },
|
|
23
|
+
defaultVariants: {},
|
|
24
|
+
compoundVariants: []
|
|
25
|
+
}), i = "_1cj8r6g9";
|
|
26
|
+
//#endregion
|
|
27
|
+
export { i as clear, t as hiddenLabel, r as icon, n as input };
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { Box as e } from "../Box/index.mjs";
|
|
3
|
+
import { Text as t } from "../Text/index.mjs";
|
|
4
|
+
import { IconButton as n } from "../IconButton/index.mjs";
|
|
5
|
+
import { SearchIcon as r } from "../icons/SearchIcon.mjs";
|
|
6
|
+
import { XIcon as i } from "../icons/XIcon.mjs";
|
|
7
|
+
import { icon as a, input as o } from "./SearchField.css.mjs";
|
|
8
|
+
import { jsx as s, jsxs as c } from "react/jsx-runtime";
|
|
9
|
+
import { useRef as l, useState as u } from "react";
|
|
10
|
+
import { Input as d } from "@base-ui/react/input";
|
|
11
|
+
//#region src/SearchField/client.tsx
|
|
12
|
+
var f = {
|
|
13
|
+
sm: {
|
|
14
|
+
size: "sm",
|
|
15
|
+
square: "xs"
|
|
16
|
+
},
|
|
17
|
+
med: {
|
|
18
|
+
size: "sm",
|
|
19
|
+
square: "sm"
|
|
20
|
+
},
|
|
21
|
+
lg: {
|
|
22
|
+
size: "med",
|
|
23
|
+
square: "med"
|
|
24
|
+
}
|
|
25
|
+
};
|
|
26
|
+
function p({ value: p, defaultValue: m, onValueChange: h, placeholder: g, size: _, disabled: v, required: y, name: b, clearLabel: x }) {
|
|
27
|
+
let S = l(null), [C, w] = u(m), T = p ?? C, E = (e) => {
|
|
28
|
+
p === void 0 && w(e), h?.(e);
|
|
29
|
+
}, D = T !== "" && (p === void 0 || h !== void 0), O = (e) => {
|
|
30
|
+
let t = e.nativeEvent.isComposing || e.keyCode === 229;
|
|
31
|
+
e.key === "Escape" && D && !t && (e.preventDefault(), e.stopPropagation(), E(""));
|
|
32
|
+
}, k = f[_];
|
|
33
|
+
return /* @__PURE__ */ c(e, {
|
|
34
|
+
alignItems: "center",
|
|
35
|
+
display: "grid",
|
|
36
|
+
children: [
|
|
37
|
+
/* @__PURE__ */ s(d, {
|
|
38
|
+
name: b,
|
|
39
|
+
onKeyDown: O,
|
|
40
|
+
onValueChange: E,
|
|
41
|
+
placeholder: g,
|
|
42
|
+
ref: S,
|
|
43
|
+
render: /* @__PURE__ */ s(t, {
|
|
44
|
+
as: "input",
|
|
45
|
+
className: o({ size: _ }),
|
|
46
|
+
size: _
|
|
47
|
+
}),
|
|
48
|
+
required: y,
|
|
49
|
+
type: "search",
|
|
50
|
+
value: T
|
|
51
|
+
}),
|
|
52
|
+
/* @__PURE__ */ s(r, {
|
|
53
|
+
className: a({ size: _ }),
|
|
54
|
+
size: _
|
|
55
|
+
}),
|
|
56
|
+
T !== "" && !v && /* @__PURE__ */ s(n, {
|
|
57
|
+
className: "_1cj8r6g9",
|
|
58
|
+
icon: i,
|
|
59
|
+
label: x,
|
|
60
|
+
minBlockSize: k.square,
|
|
61
|
+
minInlineSize: k.square,
|
|
62
|
+
onClick: () => {
|
|
63
|
+
E(""), S.current?.focus();
|
|
64
|
+
},
|
|
65
|
+
size: k.size
|
|
66
|
+
})
|
|
67
|
+
]
|
|
68
|
+
});
|
|
69
|
+
}
|
|
70
|
+
//#endregion
|
|
71
|
+
export { p as SearchFieldControl };
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { StyleProps } from "../Box/index.mjs";
|
|
2
|
+
import { CSSProperties, ReactNode } from "react";
|
|
3
|
+
//#region src/SearchField/index.d.ts
|
|
4
|
+
export type SearchFieldProps = StyleProps & {
|
|
5
|
+
className?: string;
|
|
6
|
+
clearLabel?: string;
|
|
7
|
+
defaultValue?: string;
|
|
8
|
+
description?: ReactNode;
|
|
9
|
+
disabled?: boolean;
|
|
10
|
+
error?: ReactNode;
|
|
11
|
+
hideLabel?: boolean;
|
|
12
|
+
label: ReactNode;
|
|
13
|
+
name?: string;
|
|
14
|
+
onValueChange?: (value: string) => void;
|
|
15
|
+
placeholder?: string;
|
|
16
|
+
required?: boolean;
|
|
17
|
+
size?: "sm" | "med" | "lg";
|
|
18
|
+
style?: CSSProperties;
|
|
19
|
+
value?: string;
|
|
20
|
+
};
|
|
21
|
+
export declare function SearchField({ label, hideLabel, value, defaultValue, onValueChange, placeholder, description, error, size, disabled, required, name, clearLabel, className, style, ...atoms }: SearchFieldProps): import("react").JSX.Element;
|
|
22
|
+
//#endregion
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { Field as e } from "../Field/index.mjs";
|
|
2
|
+
import { hiddenLabel as t } from "./SearchField.css.mjs";
|
|
3
|
+
import { SearchFieldControl as n } from "./client.mjs";
|
|
4
|
+
import { jsx as r, jsxs as i } from "react/jsx-runtime";
|
|
5
|
+
//#region src/SearchField/index.tsx
|
|
6
|
+
function a({ label: a, hideLabel: o = !1, value: s, defaultValue: c = "", onValueChange: l, placeholder: u, description: d, error: f, size: p = "med", disabled: m = !1, required: h = !1, name: g, clearLabel: _ = "Clear search", className: v, style: y, ...b }) {
|
|
7
|
+
return /* @__PURE__ */ i(e, {
|
|
8
|
+
...b,
|
|
9
|
+
className: v,
|
|
10
|
+
disabled: m,
|
|
11
|
+
invalid: f != null && f !== !1 && f !== "",
|
|
12
|
+
style: y,
|
|
13
|
+
children: [
|
|
14
|
+
/* @__PURE__ */ r(e.Label, {
|
|
15
|
+
className: o ? t : void 0,
|
|
16
|
+
children: a
|
|
17
|
+
}),
|
|
18
|
+
/* @__PURE__ */ r(n, {
|
|
19
|
+
clearLabel: _,
|
|
20
|
+
defaultValue: c,
|
|
21
|
+
disabled: m,
|
|
22
|
+
name: g,
|
|
23
|
+
onValueChange: l,
|
|
24
|
+
placeholder: u,
|
|
25
|
+
required: h,
|
|
26
|
+
size: p,
|
|
27
|
+
value: s
|
|
28
|
+
}),
|
|
29
|
+
d != null && /* @__PURE__ */ r(e.Description, { children: d }),
|
|
30
|
+
/* @__PURE__ */ r(e.Error, { children: f })
|
|
31
|
+
]
|
|
32
|
+
});
|
|
33
|
+
}
|
|
34
|
+
//#endregion
|
|
35
|
+
export { a as SearchField };
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
@layer tokens, reset, atoms, components.box, components.checkbox, components.clickable, components.icon, components.icon-button, components.inline, components.stack, components.text, components.badge, components.button, components.chip, components.field, components.heading, components.dialog, components.alert-dialog, components.menu, components.multiselect, components.search-field, components.tabs, components.tag, components.toast;
|
|
2
|
+
@layer components.stack;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { OmitEach } from "../types.mjs";
|
|
2
|
+
import { StyleProps } from "../Box/index.mjs";
|
|
3
|
+
import { ComponentPropsWithRef, ElementType } from "react";
|
|
4
|
+
//#region src/Stack/index.d.ts
|
|
5
|
+
type Gap = StyleProps["gap"];
|
|
6
|
+
type Token = Extract<Gap, string>;
|
|
7
|
+
export type StackProps<T extends ElementType = "div"> = {
|
|
8
|
+
as?: T;
|
|
9
|
+
gap: Token | (Extract<Gap, object> & {
|
|
10
|
+
base: Token;
|
|
11
|
+
});
|
|
12
|
+
} & Omit<StyleProps, "gap"> & OmitEach<ComponentPropsWithRef<T>, "as" | keyof StyleProps>;
|
|
13
|
+
export declare function Stack<T extends ElementType = "div">({ display, flexDirection, className, ...props }: StackProps<T>): import("react").JSX.Element;
|
|
14
|
+
//#endregion
|
|
15
|
+
export {};
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { join as e } from "../styles/join.mjs";
|
|
2
|
+
import { Box as t } from "../Box/index.mjs";
|
|
3
|
+
import { root as n } from "./Stack.css.mjs";
|
|
4
|
+
import { jsx as r } from "react/jsx-runtime";
|
|
5
|
+
//#region src/Stack/index.tsx
|
|
6
|
+
function i({ display: i = "flex", flexDirection: a = "column", className: o, ...s }) {
|
|
7
|
+
return /* @__PURE__ */ r(t, {
|
|
8
|
+
display: i,
|
|
9
|
+
flexDirection: a,
|
|
10
|
+
...s,
|
|
11
|
+
className: e(n, o)
|
|
12
|
+
});
|
|
13
|
+
}
|
|
14
|
+
//#endregion
|
|
15
|
+
export { i as Stack };
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
@layer tokens, reset, atoms, components.box, components.checkbox, components.clickable, components.icon, components.icon-button, components.inline, components.stack, components.text, components.badge, components.button, components.chip, components.field, components.heading, components.dialog, components.alert-dialog, components.menu, components.multiselect, components.search-field, components.tabs, components.tag, components.toast;
|
|
2
|
+
@layer components.tabs{.xowpd00{border-block-end:var(--space-1) solid var(--color-border)}.xowpd00[aria-orientation=vertical]{border-block-end:none;border-inline-end:var(--space-1) solid var(--color-border);flex-direction:column}.xowpd01{transition:color var(--duration-fast) var(--easing-standard)}.xowpd01[aria-selected=true]{color:var(--color-fg)}.xowpd01[aria-disabled=true]{opacity:.5}.xowpd02{border-block-end:var(--space-2) solid var(--color-accent);opacity:0;scale:calc(1 - var(--scale-lg)) 1;transition:opacity var(--duration-med) var(--easing-standard), scale var(--duration-med) var(--easing-standard);pointer-events:none;inset-block-end:calc(-1 * var(--space-1));inset-inline:0}[aria-orientation=vertical]>[role=tab]>.xowpd02{inset-inline:auto;border-block-end:none;border-inline-end:var(--space-2) solid var(--color-accent);scale:1 calc(1 - var(--scale-lg));inset-block:0;inset-inline-end:calc(-1 * var(--space-1))}[aria-selected=true]>.xowpd02{opacity:1;scale:1}.xowpd03:focus-visible{outline:var(--space-2) solid var(--color-focus);outline-offset:var(--space-2)}.xowpd03[data-orientation=vertical]{flex-basis:0}@media (hover:hover){.xowpd01:not([aria-disabled=true]):hover{color:var(--color-fg)}}@media (forced-colors:active){.xowpd01[aria-disabled=true]{color:graytext}.xowpd02{border-color:highlight}}}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { PartProps } from "../styles/part-props.mjs";
|
|
2
|
+
import { TextOwnProps } from "../Text/index.mjs";
|
|
3
|
+
import { Tabs as Tabs$1 } from "@base-ui/react/tabs";
|
|
4
|
+
//#region src/Tabs/index.d.ts
|
|
5
|
+
export type TabsProps = PartProps<Tabs$1.Root.Props>;
|
|
6
|
+
export type TabsListProps = PartProps<Tabs$1.List.Props>;
|
|
7
|
+
type LabelProps = Omit<TextOwnProps, "truncate">;
|
|
8
|
+
export type TabsTabProps = PartProps<Omit<Tabs$1.Tab.Props, keyof TextOwnProps>> & LabelProps;
|
|
9
|
+
export type TabsPanelProps = PartProps<Tabs$1.Panel.Props>;
|
|
10
|
+
declare function TabsRoot({ orientation, display, flexDirection, flexWrap, gap, className, style, ...props }: TabsProps): import("react").JSX.Element;
|
|
11
|
+
declare function TabsList({ display, flexWrap, gap, position, className, style, ...props }: TabsListProps): import("react").JSX.Element;
|
|
12
|
+
declare function TabsTab({ children, size, font, weight, leading, paddingInline, justifyContent, minBlockSize, position, color, className, style, ...props }: TabsTabProps): import("react").JSX.Element;
|
|
13
|
+
declare function TabsPanel({ flexGrow, className, style, ...props }: TabsPanelProps): import("react").JSX.Element;
|
|
14
|
+
export declare const Tabs: typeof TabsRoot & {
|
|
15
|
+
List: typeof TabsList;
|
|
16
|
+
Tab: typeof TabsTab;
|
|
17
|
+
Panel: typeof TabsPanel;
|
|
18
|
+
};
|
|
19
|
+
//#endregion
|
|
20
|
+
export {};
|