@ctrl-ui/react 0.8.11 → 0.8.13
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/action-bar.js +2 -2
- package/dist/activity.js +1 -1
- package/dist/blocks/design-canvas-inspector.js +2 -2
- package/dist/blocks/design-canvas.js +2 -2
- package/dist/blocks/discussion.js +1 -1
- package/dist/blocks/file-explorer.js +2 -2
- package/dist/blocks/settings.js +3 -3
- package/dist/chat-composer-editor/extensions/mention.js +1 -1
- package/dist/chat-composer.js +1 -1
- package/dist/chat-layout.js +1 -1
- package/dist/context.js +1 -1
- package/dist/dynamic-notification.js +1 -1
- package/dist/email/theme.js +1 -1
- package/dist/filter-bar/parts.js +1 -1
- package/dist/filter-bar.js +1 -1
- package/dist/inline-citation.js +1 -1
- package/dist/knob-contracts/tabs-knobs.d.ts +1 -1
- package/dist/knob-contracts/tabs-knobs.js +2 -0
- package/dist/lib/phone-input-format.js +1 -1
- package/dist/styles/index.css +1 -0
- package/dist/styles/recipes/badge.css +1 -0
- package/dist/styles/recipes/button.css +21 -4
- package/dist/styles/recipes/code.css +0 -15
- package/dist/styles/recipes/field.css +15 -2
- package/dist/styles/recipes/resizable.css +0 -26
- package/dist/styles/recipes/scroll-area.css +6 -6
- package/dist/styles/recipes/sidebar-menu.css +22 -8
- package/dist/styles/recipes/sidebar-parts.css +11 -7
- package/dist/styles/recipes/sidebar.css +1 -1
- package/dist/styles/recipes/tabs-motion.css +99 -0
- package/dist/styles/recipes/tabs.css +36 -108
- package/dist/ui/alert-dialog.js +1 -1
- package/dist/ui/alert.js +1 -1
- package/dist/ui/autocomplete.js +1 -1
- package/dist/ui/breadcrumb.js +1 -1
- package/dist/ui/button.d.ts +6 -3
- package/dist/ui/button.js +10 -6
- package/dist/ui/card.js +1 -1
- package/dist/ui/code-diff.js +1 -1
- package/dist/ui/code.js +2 -2
- package/dist/ui/collapsible.js +1 -1
- package/dist/ui/color-picker.js +1 -1
- package/dist/ui/combobox.js +1 -1
- package/dist/ui/context-menu.js +1 -1
- package/dist/ui/dialog.js +1 -1
- package/dist/ui/drawer.js +1 -1
- package/dist/ui/dropdown-menu.js +1 -1
- package/dist/ui/emoji-icon-picker.js +1 -1
- package/dist/ui/emoji-picker.js +1 -1
- package/dist/ui/empty.js +1 -1
- package/dist/ui/hover-card.js +1 -1
- package/dist/ui/icon-picker.js +1 -1
- package/dist/ui/input-group.js +1 -1
- package/dist/ui/item.js +1 -1
- package/dist/ui/menubar.js +1 -1
- package/dist/ui/morphing-panel.js +1 -1
- package/dist/ui/navigation-menu.js +1 -1
- package/dist/ui/phone-input.js +2 -2
- package/dist/ui/popover.js +1 -1
- package/dist/ui/resizable.js +34 -1
- package/dist/ui/rich-tooltip.js +1 -1
- package/dist/ui/select.js +1 -1
- package/dist/ui/sheet.js +1 -1
- package/dist/ui/sidebar-menu.js +4 -3
- package/dist/ui/sidebar-provider.js +2 -2
- package/dist/ui/sidebar-resize-rail.js +1 -1
- package/dist/ui/sidebar.js +1 -1
- package/dist/ui/tabs.d.ts +4 -0
- package/dist/ui/tabs.js +11 -1
- package/dist/ui/timeline.js +1 -1
- package/dist/ui/toast.js +1 -1
- package/dist/ui/toggle.d.ts +1 -1
- package/dist/ui/toggle.js +2 -1
- package/dist/ui/toolbar.d.ts +1 -1
- package/dist/ui/toolbar.js +1 -1
- package/dist/ui/tooltip.js +1 -1
- package/dist/ui/tree.js +1 -1
- package/dist/ui/trigger-menu.js +1 -1
- package/dist/user-ask.js +2 -2
- package/package.json +1 -1
package/dist/action-bar.js
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
"use client";
|
|
2
|
+
import { useCopyToClipboard } from "./hooks/use-copy-to-clipboard.js";
|
|
2
3
|
import { cn } from "./lib/cn.js";
|
|
3
4
|
import { Button } from "./ui/button.js";
|
|
4
5
|
import { LiveStatus } from "./ui/live-status.js";
|
|
5
|
-
import {
|
|
6
|
+
import { Toolbar } from "@base-ui/react/toolbar";
|
|
6
7
|
import { createContext, useContext } from "react";
|
|
7
8
|
import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
|
|
8
|
-
import { Toolbar } from "@base-ui/react/toolbar";
|
|
9
9
|
//#region src/action-bar.tsx
|
|
10
10
|
const ActionBarContext = createContext({});
|
|
11
11
|
async function resolveCopyValue(value) {
|
package/dist/activity.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { cn } from "./lib/cn.js";
|
|
3
3
|
import { LiveStatus } from "./ui/live-status.js";
|
|
4
|
-
import { ScrollArea } from "./ui/scroll-area.js";
|
|
5
4
|
import { Collapsible, CollapsibleContent, CollapsibleTrigger } from "./ui/collapsible.js";
|
|
5
|
+
import { ScrollArea } from "./ui/scroll-area.js";
|
|
6
6
|
import { createContext, useContext } from "react";
|
|
7
7
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
8
8
|
import { Check, ChevronRight, CircleAlert, CircleDashed, LoaderCircle } from "lucide-react";
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { Button } from "../ui/button.js";
|
|
3
3
|
import { InputGroup, InputGroupAddon } from "../ui/input-group.js";
|
|
4
|
-
import { Empty, EmptyDescription, EmptyHeader, EmptyTitle } from "../ui/empty.js";
|
|
5
|
-
import { Separator } from "../ui/separator.js";
|
|
6
4
|
import { resizeDesignCanvasLayer } from "./design-canvas-data.js";
|
|
7
5
|
import { NumberField, NumberFieldGroup, NumberFieldInput, NumberFieldScrubArea } from "../ui/number-field.js";
|
|
8
6
|
import { ColorPicker, ColorPickerArea, ColorPickerContent, ColorPickerEyeDropper, ColorPickerHue, ColorPickerInput, ColorPickerTrigger } from "../ui/color-picker.js";
|
|
7
|
+
import { Empty, EmptyDescription, EmptyHeader, EmptyTitle } from "../ui/empty.js";
|
|
8
|
+
import { Separator } from "../ui/separator.js";
|
|
9
9
|
import { Toggle } from "../ui/toggle.js";
|
|
10
10
|
import { useState } from "react";
|
|
11
11
|
import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
|
|
@@ -3,12 +3,12 @@ import { cn } from "../lib/cn.js";
|
|
|
3
3
|
import { Button } from "../ui/button.js";
|
|
4
4
|
import { ScrollArea } from "../ui/scroll-area.js";
|
|
5
5
|
import { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from "../ui/tooltip.js";
|
|
6
|
+
import { createDesignCanvasLayer, designCanvasFillColor, drawnDesignCanvasBounds } from "./design-canvas-data.js";
|
|
7
|
+
import { DesignCanvasInspector } from "./design-canvas-inspector.js";
|
|
6
8
|
import { Drawer, DrawerContent, DrawerTitle } from "../ui/drawer.js";
|
|
7
9
|
import { InfiniteCanvas, InfiniteCanvasContent, InfiniteCanvasControls, InfiniteCanvasItem } from "../ui/infinite-canvas.js";
|
|
8
10
|
import { ResizableFloatingPanel } from "../ui/resizable.js";
|
|
9
11
|
import { Toolbar, ToolbarButton, ToolbarGroup, ToolbarSeparator } from "../ui/toolbar.js";
|
|
10
|
-
import { createDesignCanvasLayer, designCanvasFillColor, drawnDesignCanvasBounds } from "./design-canvas-data.js";
|
|
11
|
-
import { DesignCanvasInspector } from "./design-canvas-inspector.js";
|
|
12
12
|
import { useRef, useState } from "react";
|
|
13
13
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
14
14
|
import { CircleIcon, FrameIcon, LayersIcon, MousePointer2Icon, SlidersHorizontalIcon, SquareIcon, TypeIcon } from "lucide-react";
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { Button } from "../ui/button.js";
|
|
3
|
-
import { Kbd, KbdGroup } from "../ui/kbd.js";
|
|
4
3
|
import { ChatComposer, ChatComposerShell, ChatComposerSubmit, ChatComposerTextarea, ChatComposerToolbar } from "../chat-composer.js";
|
|
5
4
|
import { ChatMessageReplies } from "../chat-message/social.js";
|
|
6
5
|
import { ChatMessage, ChatMessageActions, ChatMessageAuthor, ChatMessageAvatar, ChatMessageBody, ChatMessageContent, ChatMessageFooter, ChatMessageHeader, ChatMessageRow, ChatMessageTime } from "../chat-message.js";
|
|
6
|
+
import { Kbd, KbdGroup } from "../ui/kbd.js";
|
|
7
7
|
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
8
8
|
import { CornerDownRightIcon } from "lucide-react";
|
|
9
9
|
//#region src/blocks/discussion.tsx
|
|
@@ -5,15 +5,15 @@ import { LiveStatus } from "../ui/live-status.js";
|
|
|
5
5
|
import { ScrollArea } from "../ui/scroll-area.js";
|
|
6
6
|
import { InputGroup, InputGroupAddon } from "../ui/input-group.js";
|
|
7
7
|
import { Input } from "../ui/input.js";
|
|
8
|
-
import { Empty, EmptyContent, EmptyDescription, EmptyHeader, EmptyMedia, EmptyTitle } from "../ui/empty.js";
|
|
9
8
|
import { SidebarProvider, useSidebar } from "../ui/sidebar-provider.js";
|
|
10
9
|
import { SidebarGroup, SidebarGroupLabel, SidebarMenu, SidebarMenuButton, SidebarMenuItem } from "../ui/sidebar-menu.js";
|
|
11
10
|
import { Sidebar, SidebarContent, SidebarFooter, SidebarHeader, SidebarInset, SidebarRail, SidebarTrigger } from "../ui/sidebar.js";
|
|
11
|
+
import { Empty, EmptyContent, EmptyDescription, EmptyHeader, EmptyMedia, EmptyTitle } from "../ui/empty.js";
|
|
12
12
|
import { Drawer, DrawerBody, DrawerContent, DrawerTitle, DrawerTrigger } from "../ui/drawer.js";
|
|
13
13
|
import { ResizableHandle, ResizablePanel, ResizablePanelGroup } from "../ui/resizable.js";
|
|
14
14
|
import { groupFileExplorerItems, orderFileExplorerEntries, resolveFileExplorer, searchFileExplorer } from "./file-explorer-data.js";
|
|
15
|
-
import { DropdownMenu, DropdownMenuContent, DropdownMenuTrigger } from "../ui/dropdown-menu.js";
|
|
16
15
|
import { Breadcrumb, BreadcrumbItem, BreadcrumbLink, BreadcrumbList, BreadcrumbPage, BreadcrumbSeparator } from "../ui/breadcrumb.js";
|
|
16
|
+
import { DropdownMenu, DropdownMenuContent, DropdownMenuTrigger } from "../ui/dropdown-menu.js";
|
|
17
17
|
import { Fragment, useEffect, useId, useRef, useState } from "react";
|
|
18
18
|
import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
|
|
19
19
|
import { ChevronLeftIcon, ChevronRightIcon, FileIcon, FolderIcon, MoreHorizontalIcon, SearchIcon, XIcon } from "lucide-react";
|
package/dist/blocks/settings.js
CHANGED
|
@@ -2,16 +2,16 @@
|
|
|
2
2
|
import { cn } from "../lib/cn.js";
|
|
3
3
|
import { Button } from "../ui/button.js";
|
|
4
4
|
import { LiveStatus } from "../ui/live-status.js";
|
|
5
|
-
import { prefersReducedMotion } from "../lib/motion.js";
|
|
6
5
|
import { ScrollArea } from "../ui/scroll-area.js";
|
|
6
|
+
import { prefersReducedMotion } from "../lib/motion.js";
|
|
7
7
|
import { InputGroup, InputGroupAddon } from "../ui/input-group.js";
|
|
8
8
|
import { Input } from "../ui/input.js";
|
|
9
|
-
import { Empty, EmptyContent, EmptyDescription, EmptyHeader, EmptyMedia, EmptyTitle } from "../ui/empty.js";
|
|
10
|
-
import { Field, FieldContent, FieldDescription, FieldGroup, FieldLabel, FieldLegend, FieldSeparator, FieldSet } from "../ui/field.js";
|
|
11
9
|
import { SidebarProvider, useSidebar } from "../ui/sidebar-provider.js";
|
|
12
10
|
import { SidebarGroup, SidebarGroupLabel, SidebarMenu, SidebarMenuButton, SidebarMenuItem } from "../ui/sidebar-menu.js";
|
|
13
11
|
import { Sidebar, SidebarContent, SidebarHeader, SidebarInset, SidebarTrigger } from "../ui/sidebar.js";
|
|
12
|
+
import { Empty, EmptyContent, EmptyDescription, EmptyHeader, EmptyMedia, EmptyTitle } from "../ui/empty.js";
|
|
14
13
|
import { searchSettings } from "./settings-data.js";
|
|
14
|
+
import { Field, FieldContent, FieldDescription, FieldGroup, FieldLabel, FieldLegend, FieldSeparator, FieldSet } from "../ui/field.js";
|
|
15
15
|
import { useEffect, useId, useState } from "react";
|
|
16
16
|
import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
|
|
17
17
|
import { ArrowLeftIcon, SearchIcon, XIcon } from "lucide-react";
|
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
import { LiveStatus } from "../../ui/live-status.js";
|
|
3
3
|
import { isComposingKey, useTriggerMenu } from "../../hooks/use-trigger-menu.js";
|
|
4
4
|
import { spawnExitGhost } from "../ghost.js";
|
|
5
|
-
import { TriggerMenu, TriggerMenuEmpty, TriggerMenuIcon, TriggerMenuItem, TriggerMenuList } from "../../ui/trigger-menu.js";
|
|
6
5
|
import { detectTrigger } from "../../lib/trigger-detect.js";
|
|
6
|
+
import { TriggerMenu, TriggerMenuEmpty, TriggerMenuIcon, TriggerMenuItem, TriggerMenuList } from "../../ui/trigger-menu.js";
|
|
7
7
|
import { useEffect } from "react";
|
|
8
8
|
import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
|
|
9
9
|
//#region src/chat-composer-editor/extensions/mention.tsx
|
package/dist/chat-composer.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import { hasSkinAdornment, skinAdornment } from "./skin.js";
|
|
3
2
|
import { cn } from "./lib/cn.js";
|
|
3
|
+
import { hasSkinAdornment, skinAdornment } from "./skin.js";
|
|
4
4
|
import { useSkin } from "./skin-provider.js";
|
|
5
5
|
import { Button } from "./ui/button.js";
|
|
6
6
|
import { Spinner } from "./ui/spinner.js";
|
package/dist/chat-layout.js
CHANGED
|
@@ -7,9 +7,9 @@ import { ScrollArea } from "./ui/scroll-area.js";
|
|
|
7
7
|
import { ChatThreadAnnounceContext } from "./hooks/use-chat-message.js";
|
|
8
8
|
import { useChatThreadScroll } from "./hooks/use-chat-thread-scroll.js";
|
|
9
9
|
import { createContext, useContext, useState } from "react";
|
|
10
|
+
import { useRender } from "@base-ui/react/use-render";
|
|
10
11
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
11
12
|
import { ArrowDown } from "lucide-react";
|
|
12
|
-
import { useRender } from "@base-ui/react/use-render";
|
|
13
13
|
//#region src/chat-layout.tsx
|
|
14
14
|
const chromeSizing = {
|
|
15
15
|
panel: "mx-auto min-h-[640px] max-w-3xl",
|
package/dist/context.js
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { cn } from "./lib/cn.js";
|
|
3
3
|
import { Button } from "./ui/button.js";
|
|
4
|
-
import { Popover, PopoverClose, PopoverContent, PopoverDescription, PopoverTitle, PopoverTrigger } from "./ui/popover.js";
|
|
5
4
|
import { ScrollArea } from "./ui/scroll-area.js";
|
|
6
5
|
import { deriveContextModel } from "./context-model.js";
|
|
6
|
+
import { Popover, PopoverClose, PopoverContent, PopoverDescription, PopoverTitle, PopoverTrigger } from "./ui/popover.js";
|
|
7
7
|
import { createContext, useContext, useId, useMemo } from "react";
|
|
8
8
|
import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
|
|
9
9
|
import { X } from "lucide-react";
|
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
import { cn } from "./lib/cn.js";
|
|
3
3
|
import { Button } from "./ui/button.js";
|
|
4
4
|
import { LiveStatus } from "./ui/live-status.js";
|
|
5
|
-
import { createDynamicNotificationLiquid } from "./dynamic-notification-liquid.js";
|
|
6
5
|
import { createDynamicNotificationGlass } from "./dynamic-notification-glass.js";
|
|
6
|
+
import { createDynamicNotificationLiquid } from "./dynamic-notification-liquid.js";
|
|
7
7
|
import { useDynamicNotification } from "./hooks/use-dynamic-notification.js";
|
|
8
8
|
import { createContext, useContext, useEffect, useId, useLayoutEffect, useMemo, useRef, useState } from "react";
|
|
9
9
|
import { jsx, jsxs } from "react/jsx-runtime";
|
package/dist/email/theme.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { composite, resolveColor, tokenMaps } from "../scripts/contrast-eval.js";
|
|
2
1
|
import { emailLengthPixels } from "./length.js";
|
|
2
|
+
import { composite, resolveColor, tokenMaps } from "../scripts/contrast-eval.js";
|
|
3
3
|
//#region src/email/theme.ts
|
|
4
4
|
function resolveVariables(value, tokens, chain = []) {
|
|
5
5
|
if (chain.length > 16) throw new Error(`Email theme: token chain exceeds 16 references (${chain.join(" → ")}).`);
|
package/dist/filter-bar/parts.js
CHANGED
|
@@ -5,9 +5,9 @@ import { useFilterBarContext } from "./context.js";
|
|
|
5
5
|
import { describeFilter, formatFilterValue } from "./model.js";
|
|
6
6
|
import { FilterBarEditor, FilterBarInlineInput } from "./editor.js";
|
|
7
7
|
import { useEffect, useId, useRef } from "react";
|
|
8
|
+
import { useRender } from "@base-ui/react/use-render";
|
|
8
9
|
import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
|
|
9
10
|
import { PlusIcon, XIcon } from "lucide-react";
|
|
10
|
-
import { useRender } from "@base-ui/react/use-render";
|
|
11
11
|
//#region src/filter-bar/parts.tsx
|
|
12
12
|
function chipSegments(item, field, operator, draft) {
|
|
13
13
|
const segments = [{
|
package/dist/filter-bar.js
CHANGED
|
@@ -6,8 +6,8 @@ import { describeFilter, fieldOperators, filterNavigationKeys } from "./filter-b
|
|
|
6
6
|
import { filterMotionEnabled, useFilterBarMotion } from "./filter-bar/motion.js";
|
|
7
7
|
import { FilterBarAddButton, FilterBarChip, FilterBarChips, FilterBarClear, FilterBarInput } from "./filter-bar/parts.js";
|
|
8
8
|
import { useState } from "react";
|
|
9
|
-
import { jsx, jsxs } from "react/jsx-runtime";
|
|
10
9
|
import { useRender } from "@base-ui/react/use-render";
|
|
10
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
11
11
|
//#region src/filter-bar.tsx
|
|
12
12
|
function valueStatusMessage(field) {
|
|
13
13
|
if (field?.error) return typeof field.error === "string" ? field.error : "Couldn’t load values.";
|
package/dist/inline-citation.js
CHANGED
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
import { cn } from "./lib/cn.js";
|
|
3
3
|
import { Button } from "./ui/button.js";
|
|
4
4
|
import { LiveStatus } from "./ui/live-status.js";
|
|
5
|
-
import { SourceFavicon, sourceHostname } from "./source-badge.js";
|
|
6
5
|
import { Popover, PopoverContent, PopoverTrigger } from "./ui/popover.js";
|
|
6
|
+
import { SourceFavicon, sourceHostname } from "./source-badge.js";
|
|
7
7
|
import { createContext, useContext, useRef, useState } from "react";
|
|
8
8
|
import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
|
|
9
9
|
import { ArrowLeft, ArrowRight, ExternalLink } from "lucide-react";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
//#region src/knob-contracts/tabs-knobs.d.ts
|
|
2
|
-
export declare const tabsKnobs: readonly ["--cui-tabs-trigger-radius", "--cui-tabs-list-padding", "--cui-tabs-list-radius", "--cui-tabs-list-background", "--cui-tabs-list-backdrop-filter", "--cui-tabs-indicator-background", "--cui-tabs-foreground", "--cui-tabs-active-foreground", "--cui-tabs-hover-foreground", "--cui-tabs-indicator-shadow", "--cui-tabs-list-shadow", "--cui-tabs-border-color", "--cui-tabs-border-width"];
|
|
2
|
+
export declare const tabsKnobs: readonly ["--cui-tabs-surface-background", "--cui-tabs-surface-radius", "--cui-tabs-trigger-radius", "--cui-tabs-list-padding", "--cui-tabs-list-radius", "--cui-tabs-list-background", "--cui-tabs-list-backdrop-filter", "--cui-tabs-indicator-background", "--cui-tabs-foreground", "--cui-tabs-active-foreground", "--cui-tabs-hover-foreground", "--cui-tabs-indicator-shadow", "--cui-tabs-list-shadow", "--cui-tabs-border-color", "--cui-tabs-border-width"];
|
|
3
3
|
export type TabsKnobStyle = Partial<Record<(typeof tabsKnobs)[number], string>>;
|
|
4
4
|
//#endregion
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { getCountryCallingCode } from "react-phone-number-input/max";
|
|
2
1
|
import { AsYouType } from "libphonenumber-js/max";
|
|
2
|
+
import { getCountryCallingCode } from "react-phone-number-input/max";
|
|
3
3
|
//#region src/lib/phone-input-format.ts
|
|
4
4
|
function normalizePhoneInputText(value, country) {
|
|
5
5
|
if (!country) return value;
|
package/dist/styles/index.css
CHANGED
|
@@ -60,6 +60,7 @@
|
|
|
60
60
|
@import "./recipes/emoji-picker.css";
|
|
61
61
|
@import "./recipes/icon-picker.css";
|
|
62
62
|
@import "./recipes/tabs.css";
|
|
63
|
+
@import "./recipes/tabs-motion.css";
|
|
63
64
|
@import "./recipes/environment-variables.css";
|
|
64
65
|
@import "./recipes/filter-bar.css";
|
|
65
66
|
@import "./recipes/gradient-editor.css";
|
|
@@ -9,17 +9,22 @@
|
|
|
9
9
|
}
|
|
10
10
|
|
|
11
11
|
@media (pointer: coarse) {
|
|
12
|
-
:where([data-control-family="button"][data-size
|
|
12
|
+
:where([data-control-family="button"][data-size])::after {
|
|
13
|
+
content: "";
|
|
14
|
+
position: absolute;
|
|
15
|
+
inset: 50%;
|
|
16
|
+
translate: -50% -50%;
|
|
17
|
+
inline-size: 100%;
|
|
13
18
|
block-size: max(100%, var(--touch-target));
|
|
14
19
|
}
|
|
15
20
|
|
|
16
|
-
:where([data-control-family="button"][data-size
|
|
21
|
+
:where([data-control-family="button"][data-size][data-icon-only="true"])::after {
|
|
17
22
|
inline-size: max(100%, var(--touch-target));
|
|
18
23
|
}
|
|
19
24
|
}
|
|
20
25
|
|
|
21
26
|
:where([data-control-family="button"][data-control="true"]) {
|
|
22
|
-
--cui-button-radius: var(--radius-control);
|
|
27
|
+
--cui-button-radius: var(--nest-radius, var(--radius-control));
|
|
23
28
|
--cui-button-gap: calc(var(--spacing) * 1.5);
|
|
24
29
|
--cui-button-icon: 1rem;
|
|
25
30
|
--cui-button-height: var(--control-h-md);
|
|
@@ -44,7 +49,7 @@
|
|
|
44
49
|
--cui-button-open-background: var(--cui-button-hover-background);
|
|
45
50
|
--cui-button-open-foreground: var(--cui-button-hover-foreground);
|
|
46
51
|
--cui-button-open-shadow: var(--cui-button-shadow);
|
|
47
|
-
border-radius: var(--
|
|
52
|
+
border-radius: var(--cui-button-radius);
|
|
48
53
|
background-color: var(--cui-button-background);
|
|
49
54
|
background-image: var(--cui-button-background-image);
|
|
50
55
|
box-shadow: var(--cui-button-shadow);
|
|
@@ -110,6 +115,18 @@
|
|
|
110
115
|
padding-inline: 0;
|
|
111
116
|
}
|
|
112
117
|
|
|
118
|
+
:where([data-control-family="button"][data-layout="tile"]) {
|
|
119
|
+
--cui-button-radius: var(--nest-radius, min(var(--radius-control), var(--radius-field)));
|
|
120
|
+
flex-direction: column;
|
|
121
|
+
block-size: auto;
|
|
122
|
+
padding-block: calc(var(--spacing) * 1.5);
|
|
123
|
+
padding-inline: var(--cui-button-padding-inline);
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
:where([data-control-family="button"][data-layout="tile"] > [data-slot="content"]) {
|
|
127
|
+
flex-direction: column;
|
|
128
|
+
}
|
|
129
|
+
|
|
113
130
|
:where([data-control-family="button"][data-control="true"] svg) {
|
|
114
131
|
pointer-events: none;
|
|
115
132
|
flex-shrink: 0;
|
|
@@ -137,21 +137,6 @@
|
|
|
137
137
|
:where(:is([data-control-family="code"], [data-control-family="code-diff"])[data-slot="header"]) {
|
|
138
138
|
min-block-size: var(--touch-target);
|
|
139
139
|
}
|
|
140
|
-
|
|
141
|
-
:where(:is([data-control-family="code"], [data-control-family="code-diff"])[data-slot="actions"] [data-control-family="button"]),
|
|
142
|
-
:where([data-control-family="button"][data-code-copy="true"]) {
|
|
143
|
-
position: relative;
|
|
144
|
-
}
|
|
145
|
-
|
|
146
|
-
:where(:is([data-control-family="code"], [data-control-family="code-diff"])[data-slot="actions"] [data-control-family="button"])::after,
|
|
147
|
-
:where([data-control-family="button"][data-code-copy="true"])::after {
|
|
148
|
-
content: "";
|
|
149
|
-
position: absolute;
|
|
150
|
-
inset: 50% 50%;
|
|
151
|
-
translate: -50% -50%;
|
|
152
|
-
inline-size: 100%;
|
|
153
|
-
block-size: max(100%, var(--touch-target));
|
|
154
|
-
}
|
|
155
140
|
}
|
|
156
141
|
}
|
|
157
142
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
@layer components {
|
|
2
2
|
:where([data-control-family="field"][data-control="true"]) {
|
|
3
3
|
gap: calc(var(--spacing) * 1.5);
|
|
4
|
-
--cui-field-radius: var(--radius-control);
|
|
4
|
+
--cui-field-radius: var(--nest-radius, var(--radius-control));
|
|
5
5
|
--cui-field-background: var(--control-fill);
|
|
6
6
|
--cui-field-hover-background: var(--hover-fill);
|
|
7
7
|
--cui-field-affordance-background: transparent;
|
|
@@ -18,7 +18,7 @@
|
|
|
18
18
|
--cui-field-padding-inline: var(--padding-x);
|
|
19
19
|
--cui-field-font-size: var(--text-body);
|
|
20
20
|
border: var(--cui-field-border-width) solid var(--cui-field-border-color);
|
|
21
|
-
border-radius: var(--
|
|
21
|
+
border-radius: var(--cui-field-radius);
|
|
22
22
|
background: var(--cui-field-background);
|
|
23
23
|
box-shadow: var(--cui-field-shadow);
|
|
24
24
|
color: var(--cui-field-foreground);
|
|
@@ -58,6 +58,19 @@
|
|
|
58
58
|
font-size: var(--cui-field-font-size);
|
|
59
59
|
}
|
|
60
60
|
|
|
61
|
+
:where(
|
|
62
|
+
input[data-control-family="field"]:is(
|
|
63
|
+
[type="number"],
|
|
64
|
+
[type="date"],
|
|
65
|
+
[type="time"],
|
|
66
|
+
[type="datetime-local"],
|
|
67
|
+
[inputmode="numeric"],
|
|
68
|
+
[inputmode="decimal"]
|
|
69
|
+
)
|
|
70
|
+
) {
|
|
71
|
+
font-variant-numeric: tabular-nums;
|
|
72
|
+
}
|
|
73
|
+
|
|
61
74
|
:where([data-control-family="field"][data-control="true"])::placeholder {
|
|
62
75
|
color: var(--muted-foreground);
|
|
63
76
|
}
|
|
@@ -37,32 +37,6 @@
|
|
|
37
37
|
cursor: row-resize;
|
|
38
38
|
}
|
|
39
39
|
|
|
40
|
-
/* biome-ignore-start lint/complexity/noImportantStyles: Resize drag cursor must beat every cursor under the pointer. */
|
|
41
|
-
:where(
|
|
42
|
-
:root:has(
|
|
43
|
-
[data-control-family="resizable"][data-slot="handle"][data-axis="vertical"]:not([data-cursor="none"]):is(
|
|
44
|
-
[data-separator="hover"],
|
|
45
|
-
[data-separator="active"]
|
|
46
|
-
)
|
|
47
|
-
)
|
|
48
|
-
*
|
|
49
|
-
) {
|
|
50
|
-
cursor: col-resize !important;
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
:where(
|
|
54
|
-
:root:has(
|
|
55
|
-
[data-control-family="resizable"][data-slot="handle"][data-axis="horizontal"]:not([data-cursor="none"]):is(
|
|
56
|
-
[data-separator="hover"],
|
|
57
|
-
[data-separator="active"]
|
|
58
|
-
)
|
|
59
|
-
)
|
|
60
|
-
*
|
|
61
|
-
) {
|
|
62
|
-
cursor: row-resize !important;
|
|
63
|
-
}
|
|
64
|
-
/* biome-ignore-end lint/complexity/noImportantStyles: Resize drag cursor must beat every cursor under the pointer. */
|
|
65
|
-
|
|
66
40
|
:where([data-control-family="resizable"][data-slot="handle"][data-variant="solid"]) {
|
|
67
41
|
background-color: var(--border);
|
|
68
42
|
}
|
|
@@ -11,10 +11,8 @@
|
|
|
11
11
|
grid-template-rows: minmax(0, 1fr) auto;
|
|
12
12
|
}
|
|
13
13
|
|
|
14
|
-
:where(
|
|
15
|
-
|
|
16
|
-
[data-control-family="scroll-area"][data-slot="root"][data-scrollbar-gutter="stable"] > [data-control-family="progressive-blur"]
|
|
17
|
-
) {
|
|
14
|
+
:where([data-control-family="scroll-area"][data-slot="root"][data-scrollbar-gutter="stable"] > [data-scroll-area-viewport]),
|
|
15
|
+
:where([data-control-family="scroll-area"][data-slot="root"][data-scrollbar-gutter="stable"] > [data-control-family="progressive-blur"]) {
|
|
18
16
|
grid-area: 1 / 1;
|
|
19
17
|
min-inline-size: 0;
|
|
20
18
|
min-block-size: 0;
|
|
@@ -41,7 +39,9 @@
|
|
|
41
39
|
:where(
|
|
42
40
|
[data-control-family="scroll-area"][data-slot="root"][data-scrollbar-gutter="stable"]
|
|
43
41
|
> [data-slot="scrollbar"][data-orientation="vertical"]:not([data-has-overflow-y])
|
|
44
|
-
> [data-slot="thumb"]
|
|
42
|
+
> [data-slot="thumb"]
|
|
43
|
+
),
|
|
44
|
+
:where(
|
|
45
45
|
[data-control-family="scroll-area"][data-slot="root"][data-scrollbar-gutter="stable"]
|
|
46
46
|
> [data-slot="scrollbar"][data-orientation="horizontal"]:not([data-has-overflow-x])
|
|
47
47
|
> [data-slot="thumb"]
|
|
@@ -170,7 +170,7 @@
|
|
|
170
170
|
:where([data-control-family="scroll-area"][data-slot="scrollbar"][data-visibility="always"]),
|
|
171
171
|
:where([data-control-family="scroll-area"][data-slot="scrollbar"][data-visibility="hover"]:is([data-hovering], [data-scrolling])),
|
|
172
172
|
:where([data-control-family="scroll-area"][data-slot="scrollbar"][data-visibility="scroll"][data-scrolling]),
|
|
173
|
-
:where([data-control-family="scroll-area"][data-slot="root"]
|
|
173
|
+
:where([data-control-family="scroll-area"][data-slot="root"] > [data-scroll-area-viewport]:focus-visible ~ [data-slot="scrollbar"]) {
|
|
174
174
|
opacity: 1;
|
|
175
175
|
}
|
|
176
176
|
|
|
@@ -58,8 +58,7 @@
|
|
|
58
58
|
}
|
|
59
59
|
|
|
60
60
|
:where(
|
|
61
|
-
[data-control-family="sidebar"]:is([data-indicator="slide"], [data-indicator="hover"])
|
|
62
|
-
[data-control-family="sidebar"][data-slot="menu-button"][data-active]
|
|
61
|
+
[data-control-family="sidebar"][data-slot="menu-button"]:is([data-indicator="slide"], [data-indicator="hover"])[data-active]
|
|
63
62
|
~ [data-slot="menu-action"]
|
|
64
63
|
) {
|
|
65
64
|
color: var(--cui-sidebar-menu-button-track-active-foreground);
|
|
@@ -134,21 +133,36 @@
|
|
|
134
133
|
}
|
|
135
134
|
|
|
136
135
|
:where(
|
|
137
|
-
[data-control-family="sidebar"][data-indicator="slide"]
|
|
138
|
-
[data-control-family="sidebar"][data-slot="menu-button"]:is(:hover, :active, [data-active], [data-popup-open])
|
|
136
|
+
[data-control-family="sidebar"][data-slot="menu-button"][data-indicator="slide"]:is(:hover, :active, [data-active], [data-popup-open])
|
|
139
137
|
) {
|
|
140
138
|
background-color: transparent;
|
|
141
139
|
}
|
|
142
140
|
|
|
141
|
+
:where([data-control-family="sidebar"][data-slot="menu-button"]:is([data-indicator="slide"], [data-indicator="hover"])[data-active]) {
|
|
142
|
+
color: var(--cui-sidebar-menu-button-track-active-foreground);
|
|
143
|
+
}
|
|
144
|
+
|
|
143
145
|
:where(
|
|
144
|
-
[data-control-family="sidebar"]
|
|
145
|
-
[data-
|
|
146
|
+
[data-control-family="sidebar"][data-slot="menu-button"][data-indicator="hover"]:focus-visible:not(
|
|
147
|
+
[data-active],
|
|
148
|
+
:disabled,
|
|
149
|
+
[data-disabled],
|
|
150
|
+
[aria-disabled="true"]
|
|
151
|
+
)
|
|
146
152
|
) {
|
|
147
|
-
color: var(--cui-sidebar-menu-button-
|
|
153
|
+
background-color: var(--cui-sidebar-menu-button-hover-background);
|
|
154
|
+
color: var(--cui-sidebar-menu-button-hover-foreground);
|
|
155
|
+
box-shadow: var(--cui-sidebar-menu-button-hover-shadow);
|
|
148
156
|
}
|
|
149
157
|
|
|
150
158
|
@media (hover: hover) {
|
|
151
|
-
:where(
|
|
159
|
+
:where(
|
|
160
|
+
[data-control-family="sidebar"][data-slot="menu"][data-indicator="hover"]:has(
|
|
161
|
+
> [data-slot="menu-item"] > [data-slot="menu-button"]:focus-visible
|
|
162
|
+
)
|
|
163
|
+
> [data-slot="menu-item"]
|
|
164
|
+
> [data-slot="menu-button"][data-indicator="hover"]:hover:not([data-active], :focus-visible)
|
|
165
|
+
) {
|
|
152
166
|
background-color: transparent;
|
|
153
167
|
box-shadow: none;
|
|
154
168
|
}
|
|
@@ -1,13 +1,21 @@
|
|
|
1
1
|
@layer components {
|
|
2
|
+
:where([data-control-family="sidebar"][data-slot="root"]) {
|
|
3
|
+
--_sidebar-transition-duration: var(--duration-base);
|
|
4
|
+
}
|
|
5
|
+
|
|
6
|
+
:where([data-control-family="sidebar"][data-slot="root"]:has(> [data-slot="container"] > div > [data-slot="rail"]:focus-visible)) {
|
|
7
|
+
--_sidebar-transition-duration: 0s;
|
|
8
|
+
}
|
|
9
|
+
|
|
2
10
|
:where([data-control-family="sidebar"][data-slot="container"]) {
|
|
3
11
|
translate: 0;
|
|
4
12
|
transition:
|
|
5
|
-
width var(--duration
|
|
6
|
-
translate var(--duration
|
|
13
|
+
width var(--_sidebar-transition-duration) var(--ease-standard),
|
|
14
|
+
translate var(--_sidebar-transition-duration) var(--ease-standard);
|
|
7
15
|
}
|
|
8
16
|
|
|
9
17
|
:where([data-control-family="sidebar"][data-slot="inner"]) {
|
|
10
|
-
transition: padding var(--duration
|
|
18
|
+
transition: padding var(--_sidebar-transition-duration) var(--ease-standard);
|
|
11
19
|
}
|
|
12
20
|
|
|
13
21
|
:where([data-control-family="sidebar"][data-collapsible="offcanvas"][data-side="left"]:dir(ltr) [data-slot="container"]),
|
|
@@ -23,10 +31,6 @@
|
|
|
23
31
|
:where(
|
|
24
32
|
[data-control-family="sidebar"][data-slot="wrapper"][data-resizing]
|
|
25
33
|
[data-control-family="sidebar"]:is([data-slot="container"], [data-slot="gap"], [data-slot="inner"])
|
|
26
|
-
),
|
|
27
|
-
:where(
|
|
28
|
-
[data-control-family="sidebar"][data-slot="wrapper"]:has([data-control-family="sidebar"][data-slot="rail"]:focus-visible)
|
|
29
|
-
[data-control-family="sidebar"]:is([data-slot="container"], [data-slot="gap"], [data-slot="inner"])
|
|
30
34
|
) {
|
|
31
35
|
transition: none;
|
|
32
36
|
}
|
|
@@ -96,7 +96,7 @@
|
|
|
96
96
|
|
|
97
97
|
:where([data-control-family="sidebar"][data-slot="gap"]) {
|
|
98
98
|
background-color: transparent;
|
|
99
|
-
transition: width var(--duration
|
|
99
|
+
transition: width var(--_sidebar-transition-duration) var(--ease-standard);
|
|
100
100
|
}
|
|
101
101
|
|
|
102
102
|
:where([data-control-family="sidebar"][data-slot="root"][data-variant="sidebar"][data-side="left"] [data-slot="container"]) {
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
@layer components {
|
|
2
|
+
@supports ((anchor-name: --aui-slide-panel) and (anchor-scope: --aui-slide-panel)) {
|
|
3
|
+
:where([data-control-family="tabs"][data-slot="panel"][data-slide="panel"][inert][data-slide-exiting][data-ending-style]) {
|
|
4
|
+
display: block;
|
|
5
|
+
position: absolute;
|
|
6
|
+
top: var(--_tabs-panel-top);
|
|
7
|
+
left: var(--_tabs-panel-left);
|
|
8
|
+
right: auto;
|
|
9
|
+
bottom: auto;
|
|
10
|
+
width: var(--_tabs-panel-width);
|
|
11
|
+
height: var(--_tabs-panel-height);
|
|
12
|
+
margin: 0;
|
|
13
|
+
overflow: clip;
|
|
14
|
+
animation: aui-slide-exit-hold var(--duration-slow) var(--ease-emphasized) both;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
@supports (height: anchor-size(height)) {
|
|
18
|
+
:where([data-control-family="tabs"][data-slot="panel"][data-slide="panel"][inert][data-slide-exiting][data-ending-style]) {
|
|
19
|
+
height: anchor-size(height);
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
:where(
|
|
24
|
+
[data-control-family="tabs"][data-slot="panel"][data-slide="panel"][inert][data-ending-style][data-activation-direction="right"]
|
|
25
|
+
) {
|
|
26
|
+
translate: -100% 0;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
:where(
|
|
30
|
+
[data-control-family="tabs"][data-slot="panel"][data-slide="panel"][inert][data-ending-style][data-activation-direction="left"]
|
|
31
|
+
) {
|
|
32
|
+
translate: 100% 0;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
:where(
|
|
36
|
+
[data-control-family="tabs"][data-slot="panel"][data-slide="panel"][inert][data-ending-style][data-activation-direction="down"]
|
|
37
|
+
) {
|
|
38
|
+
translate: 0 -100%;
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
:where([data-control-family="tabs"][data-slot="panel"][data-slide="panel"][inert][data-ending-style][data-activation-direction="up"]) {
|
|
42
|
+
translate: 0 100%;
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
:where(
|
|
46
|
+
[data-control-family="tabs"][data-slot="root"]:has(> [data-slot="panel"][data-starting-style])
|
|
47
|
+
> [data-slot="panel"][inert][data-ending-style]
|
|
48
|
+
) {
|
|
49
|
+
translate: 0 0;
|
|
50
|
+
transition: none;
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
:where([data-control-family="tabs"][data-slot="panel"][data-slide="panel"][data-starting-style]) {
|
|
54
|
+
transition: none;
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
:where([data-control-family="tabs"][data-slot="root"][data-slide-starting] > [data-slot="panel"][data-slide="panel"]) {
|
|
58
|
+
transition: none;
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
:where([data-control-family="tabs"][data-slot="root"][data-slide-starting] > [data-slot="panel"][inert]) {
|
|
62
|
+
translate: 0 0;
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
:where(
|
|
66
|
+
[data-control-family="tabs"][data-slot="root"][data-slide-starting]
|
|
67
|
+
> [data-slot="panel"]:not([inert])[data-activation-direction="right"]
|
|
68
|
+
) {
|
|
69
|
+
translate: 100% 0;
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
:where(
|
|
73
|
+
[data-control-family="tabs"][data-slot="root"][data-slide-starting]
|
|
74
|
+
> [data-slot="panel"]:not([inert])[data-activation-direction="left"]
|
|
75
|
+
) {
|
|
76
|
+
translate: -100% 0;
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
:where(
|
|
80
|
+
[data-control-family="tabs"][data-slot="root"][data-slide-starting]
|
|
81
|
+
> [data-slot="panel"]:not([inert])[data-activation-direction="down"]
|
|
82
|
+
) {
|
|
83
|
+
translate: 0 100%;
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
:where(
|
|
87
|
+
[data-control-family="tabs"][data-slot="root"][data-slide-starting]
|
|
88
|
+
> [data-slot="panel"]:not([inert])[data-activation-direction="up"]
|
|
89
|
+
) {
|
|
90
|
+
translate: 0 -100%;
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
@supports (height: calc-size(auto, size)) {
|
|
94
|
+
:where([data-control-family="tabs"][data-slot="root"][data-slide-starting] > [data-slot="panel"][data-slide="panel"]:not([inert])) {
|
|
95
|
+
height: var(--aui-slide-prev-height, calc-size(auto, size));
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
}
|