@nsaa/core 0.1.0-alpha.2 → 0.1.0-alpha.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +30 -8
- package/dist/_virtual/_rolldown/runtime.js +13 -0
- package/dist/alert/alert.d.ts +3 -2
- package/dist/alert/alert.js +7 -2
- package/dist/alert-dialog/alert-dialog.js +13 -7
- package/dist/dialog/dialog.js +13 -7
- package/dist/index.d.ts +2 -1
- package/dist/index.js +2 -1
- package/dist/lib/opener.js +29 -0
- package/dist/sound/lazy-uisfx.d.ts +20 -0
- package/dist/sound/lazy-uisfx.js +68 -0
- package/dist/sound/sound-map.d.ts +2 -0
- package/dist/sound/sound-map.js +5 -1
- package/dist/sound/uisfx.d.ts +5 -1
- package/dist/sources/accordion.css +3 -0
- package/dist/sources/alert-dialog.css +26 -0
- package/dist/sources/alert.css +8 -0
- package/dist/sources/avatar.css +3 -0
- package/dist/sources/badge.css +3 -0
- package/dist/sources/button.css +24 -0
- package/dist/sources/calendar.css +25 -0
- package/dist/sources/card.css +3 -0
- package/dist/sources/checkbox.css +6 -0
- package/dist/sources/collapsible.css +2 -0
- package/dist/sources/combobox.css +28 -0
- package/dist/sources/command.css +30 -0
- package/dist/sources/context-menu.css +6 -0
- package/dist/sources/dialog.css +26 -0
- package/dist/sources/drawer.css +6 -0
- package/dist/sources/dropdown-menu.css +6 -0
- package/dist/sources/empty.css +3 -0
- package/dist/sources/field.css +5 -0
- package/dist/sources/input-group.css +27 -0
- package/dist/sources/input-otp.css +8 -0
- package/dist/sources/input.css +3 -0
- package/dist/sources/kbd.css +3 -0
- package/dist/sources/label.css +3 -0
- package/dist/sources/loaders-text.css +8 -0
- package/dist/sources/loaders.css +40 -0
- package/dist/sources/native-select.css +3 -0
- package/dist/sources/pagination.css +25 -0
- package/dist/sources/popover.css +3 -0
- package/dist/sources/radio-group.css +6 -0
- package/dist/sources/select.css +6 -0
- package/dist/sources/separator.css +3 -0
- package/dist/sources/skeleton.css +3 -0
- package/dist/sources/slider.css +6 -0
- package/dist/sources/spinner.css +20 -0
- package/dist/sources/switch.css +6 -0
- package/dist/sources/table.css +3 -0
- package/dist/sources/tabs.css +3 -0
- package/dist/sources/textarea.css +3 -0
- package/dist/sources/toast.css +25 -0
- package/dist/sources/toggle-group.css +32 -0
- package/dist/sources/toolbar.css +34 -0
- package/dist/sources/tooltip.css +3 -0
- package/package.json +7 -4
- package/src/feel.css +52 -0
- package/src/styles-base.css +142 -0
- package/src/styles.css +3 -133
package/README.md
CHANGED
|
@@ -17,7 +17,20 @@ import { Button, SoundProvider } from "@nsaa/core";
|
|
|
17
17
|
```
|
|
18
18
|
|
|
19
19
|
Fonts are yours to load: the tokens name Geist (body), Newsreader (the editorial theme) and Geist
|
|
20
|
-
Mono, and fall back to the system sans.
|
|
20
|
+
Mono, and fall back to the system sans. Self-host them with Fontsource (works under a strict CSP such
|
|
21
|
+
as `font-src 'self'`; the tokens list the Fontsource names first, so no `@font-face` is needed):
|
|
22
|
+
|
|
23
|
+
```sh
|
|
24
|
+
pnpm add @fontsource-variable/geist @fontsource-variable/geist-mono @fontsource-variable/newsreader
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
```css
|
|
28
|
+
@import "@fontsource-variable/geist";
|
|
29
|
+
@import "@fontsource-variable/geist-mono";
|
|
30
|
+
@import "@fontsource-variable/newsreader"; /* editorial theme only */
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
Or link Google Fonts in your HTML `<head>`:
|
|
21
34
|
|
|
22
35
|
```html
|
|
23
36
|
<link rel="preconnect" href="https://fonts.googleapis.com" />
|
|
@@ -28,12 +41,21 @@ Mono, and fall back to the system sans. For example, in your HTML `<head>`:
|
|
|
28
41
|
/>
|
|
29
42
|
```
|
|
30
43
|
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
44
|
+
Sound: `lazyUisfxPlayer()` (recommended) loads the UISFX engine on the first interaction;
|
|
45
|
+
`createUisfxPlayer()` from `@nsaa/core/sound-uisfx` loads it up front.
|
|
46
|
+
|
|
47
|
+
```tsx
|
|
48
|
+
const player = lazyUisfxPlayer();
|
|
49
|
+
<SoundProvider player={player}>…</SoundProvider>;
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
| Entry | What |
|
|
53
|
+
| ---------------------------- | ------------------------------------------------------------------------------------ |
|
|
54
|
+
| `@nsaa/core` | components, `SoundProvider`, `lazyUisfxPlayer`, `LoaderProvider`, `Spinner` |
|
|
55
|
+
| `@nsaa/core/loaders` | all 29 loading.dev loaders, `registerLoaders` |
|
|
56
|
+
| `@nsaa/core/loaders/text` | text and AI loaders (ShimmerText, Typing, …) |
|
|
57
|
+
| `@nsaa/core/sound-uisfx` | the UISFX sound engine for `SoundProvider` |
|
|
58
|
+
| `@nsaa/core/styles.css` | tokens, the shadcn alias layer, the feel layer, every component's sources |
|
|
59
|
+
| `@nsaa/core/styles-base.css` | the same without Tailwind sources; add `@nsaa/core/sources/<name>.css` per component |
|
|
38
60
|
|
|
39
61
|
Peer dependencies: `react` and `react-dom` 19. MIT; third-party notices in `NOTICE`.
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
// \0rolldown/runtime.js
|
|
3
|
+
var __defProp = Object.defineProperty;
|
|
4
|
+
var __exportAll = (all, no_symbols) => {
|
|
5
|
+
let target = {};
|
|
6
|
+
for (var name in all) __defProp(target, name, {
|
|
7
|
+
get: all[name],
|
|
8
|
+
enumerable: true
|
|
9
|
+
});
|
|
10
|
+
if (!no_symbols) __defProp(target, Symbol.toStringTag, { value: "Module" });
|
|
11
|
+
return target;
|
|
12
|
+
};
|
|
13
|
+
export { __exportAll };
|
package/dist/alert/alert.d.ts
CHANGED
|
@@ -2,13 +2,14 @@
|
|
|
2
2
|
import { VariantProps } from "class-variance-authority";
|
|
3
3
|
import * as React from "react";
|
|
4
4
|
declare const alertVariants: (props?: ({
|
|
5
|
-
variant?: "default" | "destructive" | null | undefined;
|
|
5
|
+
variant?: "success" | "warning" | "default" | "destructive" | "info" | null | undefined;
|
|
6
6
|
} & import("class-variance-authority/types").ClassProp) | undefined) => string;
|
|
7
7
|
declare function Alert({ className, variant, announce, ...props }: React.ComponentProps<"div"> & VariantProps<typeof alertVariants> & {
|
|
8
8
|
/**
|
|
9
9
|
* The error sound (feedback.error) when the Alert appears (#114). Left unset it's automatic: a
|
|
10
10
|
* destructive Alert plays it when a person's action caused it (within the browser's transient
|
|
11
|
-
* activation window), never on load. `true` always plays it, `false` never does.
|
|
11
|
+
* activation window), never on load. `true` always plays it, `false` never does. Success and
|
|
12
|
+
* warning are silent unless `announce` is set, then play feedback.success / feedback.warning.
|
|
12
13
|
*/
|
|
13
14
|
announce?: boolean;
|
|
14
15
|
}): React.JSX.Element;
|
package/dist/alert/alert.js
CHANGED
|
@@ -9,15 +9,20 @@ import * as React from "react";
|
|
|
9
9
|
const alertVariants = cva("group/alert relative grid w-full gap-0.5 rounded-lg border px-2.5 py-2 text-left text-sm has-data-[slot=alert-action]:relative has-data-[slot=alert-action]:pr-18 has-[>svg]:grid-cols-[auto_1fr] has-[>svg]:gap-x-2 *:[svg]:row-span-2 *:[svg]:translate-y-0.5 *:[svg]:text-current *:[svg:not([class*='size-'])]:size-4", {
|
|
10
10
|
variants: { variant: {
|
|
11
11
|
default: "bg-card text-card-foreground",
|
|
12
|
-
destructive: "bg-card text-destructive *:data-[slot=alert-description]:text-destructive/90 *:[svg]:text-current"
|
|
12
|
+
destructive: "bg-card text-destructive *:data-[slot=alert-description]:text-destructive/90 *:[svg]:text-current",
|
|
13
|
+
success: "border-positive-subtle-active bg-positive-subtle text-on-positive-subtle-foreground *:data-[slot=alert-description]:text-on-positive-subtle-foreground",
|
|
14
|
+
warning: "border-warning-subtle-active bg-warning-subtle text-on-warning-subtle-foreground *:data-[slot=alert-description]:text-on-warning-subtle-foreground",
|
|
15
|
+
info: "border-info-subtle-active bg-info-subtle text-on-info-subtle-foreground *:data-[slot=alert-description]:text-on-info-subtle-foreground"
|
|
13
16
|
} },
|
|
14
17
|
defaultVariants: { variant: "default" }
|
|
15
18
|
});
|
|
16
19
|
function Alert({ className, variant, announce, ...props }) {
|
|
17
20
|
const cue = useCue("alert");
|
|
18
21
|
const destructive = variant === "destructive";
|
|
22
|
+
const announceCue = variant === "success" || variant === "warning" ? variant : "destructive";
|
|
19
23
|
const appear = React.useEffectEvent(() => {
|
|
20
|
-
if (
|
|
24
|
+
if (variant === "info") return;
|
|
25
|
+
if (announce === true || destructive && recentUserAction()) cue(announceCue);
|
|
21
26
|
});
|
|
22
27
|
React.useEffect(() => {
|
|
23
28
|
if (announce !== false && (destructive || announce)) appear();
|
|
@@ -3,18 +3,23 @@
|
|
|
3
3
|
import { cn } from "../lib/cn.js";
|
|
4
4
|
import { useCue } from "../sound/sound-map.js";
|
|
5
5
|
import { Button } from "../button/button.js";
|
|
6
|
+
import { OpenerContext, useFinalFocus, useOpener } from "../lib/opener.js";
|
|
6
7
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
7
8
|
import { AlertDialog } from "@base-ui/react/alert-dialog";
|
|
8
9
|
// src/alert-dialog/alert-dialog.tsx
|
|
9
10
|
function AlertDialog$1({ onOpenChange, ...props }) {
|
|
10
11
|
const cue = useCue("alert-dialog");
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
12
|
+
const opener = useOpener(props.open);
|
|
13
|
+
return /* @__PURE__ */ jsx(OpenerContext.Provider, {
|
|
14
|
+
value: opener,
|
|
15
|
+
children: /* @__PURE__ */ jsx(AlertDialog.Root, {
|
|
16
|
+
"data-slot": "alert-dialog",
|
|
17
|
+
onOpenChange: (open, details) => {
|
|
18
|
+
onOpenChange?.(open, details);
|
|
19
|
+
if (!details.isCanceled) cue(open ? "open" : "close");
|
|
20
|
+
},
|
|
21
|
+
...props
|
|
22
|
+
})
|
|
18
23
|
});
|
|
19
24
|
}
|
|
20
25
|
function AlertDialogTrigger({ ...props }) {
|
|
@@ -37,6 +42,7 @@ function AlertDialogOverlay({ className, ...props }) {
|
|
|
37
42
|
});
|
|
38
43
|
}
|
|
39
44
|
function AlertDialogContent({ className, size = "default", ...props }) {
|
|
45
|
+
props.finalFocus = useFinalFocus(props.finalFocus);
|
|
40
46
|
return /* @__PURE__ */ jsxs(AlertDialogPortal, { children: [/* @__PURE__ */ jsx(AlertDialogOverlay, {}), /* @__PURE__ */ jsx(AlertDialog.Popup, {
|
|
41
47
|
"data-slot": "alert-dialog-content",
|
|
42
48
|
"data-size": size,
|
package/dist/dialog/dialog.js
CHANGED
|
@@ -3,18 +3,23 @@
|
|
|
3
3
|
import { cn } from "../lib/cn.js";
|
|
4
4
|
import { useCue } from "../sound/sound-map.js";
|
|
5
5
|
import { Button } from "../button/button.js";
|
|
6
|
+
import { OpenerContext, useFinalFocus, useOpener } from "../lib/opener.js";
|
|
6
7
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
7
8
|
import { Dialog } from "@base-ui/react/dialog";
|
|
8
9
|
// src/dialog/dialog.tsx
|
|
9
10
|
function Dialog$1({ onOpenChange, ...props }) {
|
|
10
11
|
const cue = useCue("dialog");
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
12
|
+
const opener = useOpener(props.open);
|
|
13
|
+
return /* @__PURE__ */ jsx(OpenerContext.Provider, {
|
|
14
|
+
value: opener,
|
|
15
|
+
children: /* @__PURE__ */ jsx(Dialog.Root, {
|
|
16
|
+
"data-slot": "dialog",
|
|
17
|
+
onOpenChange: (open, details) => {
|
|
18
|
+
onOpenChange?.(open, details);
|
|
19
|
+
if (!details.isCanceled) cue(open ? "open" : "close");
|
|
20
|
+
},
|
|
21
|
+
...props
|
|
22
|
+
})
|
|
18
23
|
});
|
|
19
24
|
}
|
|
20
25
|
function DialogTrigger({ ...props }) {
|
|
@@ -43,6 +48,7 @@ function DialogOverlay({ className, ...props }) {
|
|
|
43
48
|
});
|
|
44
49
|
}
|
|
45
50
|
function DialogContent({ className, children, showCloseButton = true, ...props }) {
|
|
51
|
+
props.finalFocus = useFinalFocus(props.finalFocus);
|
|
46
52
|
return /* @__PURE__ */ jsxs(DialogPortal, { children: [/* @__PURE__ */ jsx(DialogOverlay, {}), /* @__PURE__ */ jsxs(Dialog.Popup, {
|
|
47
53
|
"data-slot": "dialog-content",
|
|
48
54
|
className: cn("fixed top-1/2 left-1/2 z-50 grid w-full max-w-[calc(100%-2rem)] -translate-x-1/2 -translate-y-1/2 gap-4 rounded-xl bg-popover p-4 text-sm text-popover-foreground ring-1 ring-foreground/10 duration-100 outline-none sm:max-w-sm data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95", className),
|
package/dist/index.d.ts
CHANGED
|
@@ -65,6 +65,7 @@ import "./skeleton/index.js";
|
|
|
65
65
|
import { Slider } from "./slider/slider.js";
|
|
66
66
|
import "./slider/index.js";
|
|
67
67
|
import { SoundCue, SoundPlayer, SoundProvider, SoundProviderProps, useSound } from "./sound/sound.js";
|
|
68
|
+
import { lazyUisfxPlayer } from "./sound/lazy-uisfx.js";
|
|
68
69
|
import { SOUND_MAP, SoundComponent } from "./sound/sound-map.js";
|
|
69
70
|
import { LoaderProvider, LoaderProviderProps } from "./spinner/loader-provider.js";
|
|
70
71
|
import { LoaderComponent, registerLoader, registerLoaders } from "./spinner/registry.js";
|
|
@@ -87,4 +88,4 @@ import "./toolbar/index.js";
|
|
|
87
88
|
import { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from "./tooltip/tooltip.js";
|
|
88
89
|
import "./tooltip/index.js";
|
|
89
90
|
import "./lib/track-input-modality.js";
|
|
90
|
-
export { Accordion, AccordionContent, AccordionItem, AccordionTrigger, Alert, AlertAction, AlertDescription, AlertDialog, AlertDialogAction, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogMedia, AlertDialogOverlay, AlertDialogPortal, AlertDialogTitle, AlertDialogTrigger, AlertTitle, Avatar, AvatarBadge, AvatarFallback, AvatarGroup, AvatarGroupCount, AvatarImage, Badge, Button, Calendar, CalendarDayButton, Card, CardAction, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, Checkbox, Collapsible, CollapsibleContent, CollapsibleTrigger, Combobox, ComboboxChip, ComboboxChips, ComboboxChipsInput, ComboboxCollection, ComboboxContent, ComboboxEmpty, ComboboxGroup, ComboboxInput, ComboboxItem, ComboboxLabel, ComboboxList, ComboboxSeparator, ComboboxTrigger, ComboboxValue, Command, CommandDialog, CommandEmpty, CommandGroup, CommandInput, CommandItem, CommandList, CommandSeparator, CommandShortcut, ContextMenu, ContextMenuCheckboxItem, ContextMenuContent, ContextMenuGroup, ContextMenuItem, ContextMenuLabel, ContextMenuPortal, ContextMenuRadioGroup, ContextMenuRadioItem, ContextMenuSeparator, ContextMenuShortcut, ContextMenuSub, ContextMenuSubContent, ContextMenuSubTrigger, ContextMenuTrigger, Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger, DirectionProvider, Drawer, DrawerClose, DrawerContent, DrawerDescription, DrawerFooter, DrawerHeader, DrawerOverlay, DrawerPortal, DrawerSwipeHandle, DrawerTitle, DrawerTrigger, DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, Empty, EmptyContent, EmptyDescription, EmptyHeader, type EmptyIllustrationOptions, EmptyMedia, EmptyTitle, Field, FieldContent, FieldDescription, FieldError, FieldGroup, FieldLabel, FieldLegend, FieldSeparator, FieldSet, FieldTitle, IconSwap, type IconSwapProps, Input, InputGroup, InputGroupAddon, InputGroupButton, InputGroupInput, InputGroupText, InputGroupTextarea, InputOTP, InputOTPGroup, InputOTPSeparator, InputOTPSlot, Kbd, KbdGroup, Label, type LoaderComponent, LoaderProvider, type LoaderProviderProps, NativeSelect, NativeSelectOptGroup, NativeSelectOption, Pagination, PaginationContent, PaginationEllipsis, PaginationItem, PaginationLink, PaginationNext, PaginationPrevious, Popover, PopoverContent, PopoverDescription, PopoverHeader, PopoverTitle, PopoverTrigger, RadioGroup, RadioGroupItem, SOUND_MAP, Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue, Separator, Skeleton, SkeletonContent, Slider, type SoundComponent, type SoundCue, type SoundPlayer, SoundProvider, type SoundProviderProps, Spinner, type SpinnerProps, type SpinnerVariant, Switch, Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableRow, Tabs, TabsContent, TabsList, TabsTrigger, Textarea, Toast, ToastAction, ToastClose, ToastContent, ToastDescription, ToastPortal, ToastProvider, ToastTitle, ToastViewport, Toaster, ToggleGroup, type ToggleGroupItemProps, type ToggleGroupMultipleProps, type ToggleGroupProps, type ToggleGroupSingleProps, type ToggleGroupSize, type ToggleGroupVariant, Toolbar, type ToolbarButtonProps, type ToolbarGroupProps, type ToolbarInputProps, type ToolbarLinkProps, type ToolbarProps, type ToolbarSize, Tooltip, TooltipContent, TooltipProvider, TooltipTrigger, badgeVariants, buttonVariants, cn, createToastManager, registerLoader, registerLoaders, tabsListVariants, toast, useComboboxAnchor, useEmptyIllustration, useSound, useToastManager };
|
|
91
|
+
export { Accordion, AccordionContent, AccordionItem, AccordionTrigger, Alert, AlertAction, AlertDescription, AlertDialog, AlertDialogAction, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogMedia, AlertDialogOverlay, AlertDialogPortal, AlertDialogTitle, AlertDialogTrigger, AlertTitle, Avatar, AvatarBadge, AvatarFallback, AvatarGroup, AvatarGroupCount, AvatarImage, Badge, Button, Calendar, CalendarDayButton, Card, CardAction, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, Checkbox, Collapsible, CollapsibleContent, CollapsibleTrigger, Combobox, ComboboxChip, ComboboxChips, ComboboxChipsInput, ComboboxCollection, ComboboxContent, ComboboxEmpty, ComboboxGroup, ComboboxInput, ComboboxItem, ComboboxLabel, ComboboxList, ComboboxSeparator, ComboboxTrigger, ComboboxValue, Command, CommandDialog, CommandEmpty, CommandGroup, CommandInput, CommandItem, CommandList, CommandSeparator, CommandShortcut, ContextMenu, ContextMenuCheckboxItem, ContextMenuContent, ContextMenuGroup, ContextMenuItem, ContextMenuLabel, ContextMenuPortal, ContextMenuRadioGroup, ContextMenuRadioItem, ContextMenuSeparator, ContextMenuShortcut, ContextMenuSub, ContextMenuSubContent, ContextMenuSubTrigger, ContextMenuTrigger, Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger, DirectionProvider, Drawer, DrawerClose, DrawerContent, DrawerDescription, DrawerFooter, DrawerHeader, DrawerOverlay, DrawerPortal, DrawerSwipeHandle, DrawerTitle, DrawerTrigger, DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, Empty, EmptyContent, EmptyDescription, EmptyHeader, type EmptyIllustrationOptions, EmptyMedia, EmptyTitle, Field, FieldContent, FieldDescription, FieldError, FieldGroup, FieldLabel, FieldLegend, FieldSeparator, FieldSet, FieldTitle, IconSwap, type IconSwapProps, Input, InputGroup, InputGroupAddon, InputGroupButton, InputGroupInput, InputGroupText, InputGroupTextarea, InputOTP, InputOTPGroup, InputOTPSeparator, InputOTPSlot, Kbd, KbdGroup, Label, type LoaderComponent, LoaderProvider, type LoaderProviderProps, NativeSelect, NativeSelectOptGroup, NativeSelectOption, Pagination, PaginationContent, PaginationEllipsis, PaginationItem, PaginationLink, PaginationNext, PaginationPrevious, Popover, PopoverContent, PopoverDescription, PopoverHeader, PopoverTitle, PopoverTrigger, RadioGroup, RadioGroupItem, SOUND_MAP, Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue, Separator, Skeleton, SkeletonContent, Slider, type SoundComponent, type SoundCue, type SoundPlayer, SoundProvider, type SoundProviderProps, Spinner, type SpinnerProps, type SpinnerVariant, Switch, Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableRow, Tabs, TabsContent, TabsList, TabsTrigger, Textarea, Toast, ToastAction, ToastClose, ToastContent, ToastDescription, ToastPortal, ToastProvider, ToastTitle, ToastViewport, Toaster, ToggleGroup, type ToggleGroupItemProps, type ToggleGroupMultipleProps, type ToggleGroupProps, type ToggleGroupSingleProps, type ToggleGroupSize, type ToggleGroupVariant, Toolbar, type ToolbarButtonProps, type ToolbarGroupProps, type ToolbarInputProps, type ToolbarLinkProps, type ToolbarProps, type ToolbarSize, Tooltip, TooltipContent, TooltipProvider, TooltipTrigger, badgeVariants, buttonVariants, cn, createToastManager, lazyUisfxPlayer, registerLoader, registerLoaders, tabsListVariants, toast, useComboboxAnchor, useEmptyIllustration, useSound, useToastManager };
|
package/dist/index.js
CHANGED
|
@@ -39,6 +39,7 @@ import { RadioGroup, RadioGroupItem } from "./radio-group/radio-group.js";
|
|
|
39
39
|
import { Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue } from "./select/select.js";
|
|
40
40
|
import { Skeleton, SkeletonContent } from "./skeleton/skeleton.js";
|
|
41
41
|
import { Slider } from "./slider/slider.js";
|
|
42
|
+
import { lazyUisfxPlayer } from "./sound/lazy-uisfx.js";
|
|
42
43
|
import { Switch } from "./switch/switch.js";
|
|
43
44
|
import { Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableRow } from "./table/table.js";
|
|
44
45
|
import { Tabs, TabsContent, TabsList, TabsTrigger, tabsListVariants } from "./tabs/tabs.js";
|
|
@@ -47,4 +48,4 @@ import { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from "./tool
|
|
|
47
48
|
import { ToggleGroup } from "./toggle-group/toggle-group.js";
|
|
48
49
|
import { Toolbar } from "./toolbar/toolbar.js";
|
|
49
50
|
import "./lib/track-input-modality.js";
|
|
50
|
-
export { Accordion, AccordionContent, AccordionItem, AccordionTrigger, Alert, AlertAction, AlertDescription, AlertDialog, AlertDialogAction, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogMedia, AlertDialogOverlay, AlertDialogPortal, AlertDialogTitle, AlertDialogTrigger, AlertTitle, Avatar, AvatarBadge, AvatarFallback, AvatarGroup, AvatarGroupCount, AvatarImage, Badge, Button, Calendar, CalendarDayButton, Card, CardAction, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, Checkbox, Collapsible, CollapsibleContent, CollapsibleTrigger, Combobox, ComboboxChip, ComboboxChips, ComboboxChipsInput, ComboboxCollection, ComboboxContent, ComboboxEmpty, ComboboxGroup, ComboboxInput, ComboboxItem, ComboboxLabel, ComboboxList, ComboboxSeparator, ComboboxTrigger, ComboboxValue, Command, CommandDialog, CommandEmpty, CommandGroup, CommandInput, CommandItem, CommandList, CommandSeparator, CommandShortcut, ContextMenu, ContextMenuCheckboxItem, ContextMenuContent, ContextMenuGroup, ContextMenuItem, ContextMenuLabel, ContextMenuPortal, ContextMenuRadioGroup, ContextMenuRadioItem, ContextMenuSeparator, ContextMenuShortcut, ContextMenuSub, ContextMenuSubContent, ContextMenuSubTrigger, ContextMenuTrigger, Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger, DirectionProvider, Drawer, DrawerClose, DrawerContent, DrawerDescription, DrawerFooter, DrawerHeader, DrawerOverlay, DrawerPortal, DrawerSwipeHandle, DrawerTitle, DrawerTrigger, DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, Empty, EmptyContent, EmptyDescription, EmptyHeader, EmptyMedia, EmptyTitle, Field, FieldContent, FieldDescription, FieldError, FieldGroup, FieldLabel, FieldLegend, FieldSeparator, FieldSet, FieldTitle, IconSwap, Input, InputGroup, InputGroupAddon, InputGroupButton, InputGroupInput, InputGroupText, InputGroupTextarea, InputOTP, InputOTPGroup, InputOTPSeparator, InputOTPSlot, Kbd, KbdGroup, Label, LoaderProvider, NativeSelect, NativeSelectOptGroup, NativeSelectOption, Pagination, PaginationContent, PaginationEllipsis, PaginationItem, PaginationLink, PaginationNext, PaginationPrevious, Popover, PopoverContent, PopoverDescription, PopoverHeader, PopoverTitle, PopoverTrigger, RadioGroup, RadioGroupItem, SOUND_MAP, Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue, Separator, Skeleton, SkeletonContent, Slider, SoundProvider, Spinner, Switch, Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableRow, Tabs, TabsContent, TabsList, TabsTrigger, Textarea, Toast, ToastAction, ToastClose, ToastContent, ToastDescription, ToastPortal, ToastProvider, ToastTitle, ToastViewport, Toaster, ToggleGroup, Toolbar, Tooltip, TooltipContent, TooltipProvider, TooltipTrigger, badgeVariants, buttonVariants, cn, createToastManager, registerLoader, registerLoaders, tabsListVariants, toast, useComboboxAnchor, useEmptyIllustration, useSound, useToastManager };
|
|
51
|
+
export { Accordion, AccordionContent, AccordionItem, AccordionTrigger, Alert, AlertAction, AlertDescription, AlertDialog, AlertDialogAction, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogMedia, AlertDialogOverlay, AlertDialogPortal, AlertDialogTitle, AlertDialogTrigger, AlertTitle, Avatar, AvatarBadge, AvatarFallback, AvatarGroup, AvatarGroupCount, AvatarImage, Badge, Button, Calendar, CalendarDayButton, Card, CardAction, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, Checkbox, Collapsible, CollapsibleContent, CollapsibleTrigger, Combobox, ComboboxChip, ComboboxChips, ComboboxChipsInput, ComboboxCollection, ComboboxContent, ComboboxEmpty, ComboboxGroup, ComboboxInput, ComboboxItem, ComboboxLabel, ComboboxList, ComboboxSeparator, ComboboxTrigger, ComboboxValue, Command, CommandDialog, CommandEmpty, CommandGroup, CommandInput, CommandItem, CommandList, CommandSeparator, CommandShortcut, ContextMenu, ContextMenuCheckboxItem, ContextMenuContent, ContextMenuGroup, ContextMenuItem, ContextMenuLabel, ContextMenuPortal, ContextMenuRadioGroup, ContextMenuRadioItem, ContextMenuSeparator, ContextMenuShortcut, ContextMenuSub, ContextMenuSubContent, ContextMenuSubTrigger, ContextMenuTrigger, Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger, DirectionProvider, Drawer, DrawerClose, DrawerContent, DrawerDescription, DrawerFooter, DrawerHeader, DrawerOverlay, DrawerPortal, DrawerSwipeHandle, DrawerTitle, DrawerTrigger, DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, Empty, EmptyContent, EmptyDescription, EmptyHeader, EmptyMedia, EmptyTitle, Field, FieldContent, FieldDescription, FieldError, FieldGroup, FieldLabel, FieldLegend, FieldSeparator, FieldSet, FieldTitle, IconSwap, Input, InputGroup, InputGroupAddon, InputGroupButton, InputGroupInput, InputGroupText, InputGroupTextarea, InputOTP, InputOTPGroup, InputOTPSeparator, InputOTPSlot, Kbd, KbdGroup, Label, LoaderProvider, NativeSelect, NativeSelectOptGroup, NativeSelectOption, Pagination, PaginationContent, PaginationEllipsis, PaginationItem, PaginationLink, PaginationNext, PaginationPrevious, Popover, PopoverContent, PopoverDescription, PopoverHeader, PopoverTitle, PopoverTrigger, RadioGroup, RadioGroupItem, SOUND_MAP, Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue, Separator, Skeleton, SkeletonContent, Slider, SoundProvider, Spinner, Switch, Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableRow, Tabs, TabsContent, TabsList, TabsTrigger, Textarea, Toast, ToastAction, ToastClose, ToastContent, ToastDescription, ToastPortal, ToastProvider, ToastTitle, ToastViewport, Toaster, ToggleGroup, Toolbar, Tooltip, TooltipContent, TooltipProvider, TooltipTrigger, badgeVariants, buttonVariants, cn, createToastManager, lazyUisfxPlayer, registerLoader, registerLoaders, tabsListVariants, toast, useComboboxAnchor, useEmptyIllustration, useSound, useToastManager };
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { createContext, useContext, useState } from "react";
|
|
3
|
+
// src/lib/opener.ts
|
|
4
|
+
/**
|
|
5
|
+
* The element that had focus as a controlled dialog opened, recorded during render (#144). React
|
|
6
|
+
* focuses an `autoFocus` field inside the popup on mount, before Base UI records the opener, so
|
|
7
|
+
* with no Trigger focus would fall to `body` on close. (React's "store information from previous
|
|
8
|
+
* renders" pattern: the state update re-renders before anything inside the popup mounts.)
|
|
9
|
+
*/
|
|
10
|
+
function useOpener(open) {
|
|
11
|
+
const [wasOpen, setWasOpen] = useState(false);
|
|
12
|
+
const [opener, setOpener] = useState(null);
|
|
13
|
+
if (!!open !== wasOpen) {
|
|
14
|
+
setWasOpen(!!open);
|
|
15
|
+
if (open && typeof document !== "undefined") {
|
|
16
|
+
const active = document.activeElement;
|
|
17
|
+
setOpener(active instanceof HTMLElement && active !== document.body ? active : null);
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
return opener;
|
|
21
|
+
}
|
|
22
|
+
const OpenerContext = createContext(null);
|
|
23
|
+
/** The popup's `finalFocus`: the app's own, else the recorded opener while it is still in the page. */
|
|
24
|
+
function useFinalFocus(own) {
|
|
25
|
+
const opener = useContext(OpenerContext);
|
|
26
|
+
if (own !== void 0 || !opener) return own;
|
|
27
|
+
return () => opener.isConnected ? opener : true;
|
|
28
|
+
}
|
|
29
|
+
export { OpenerContext, useFinalFocus, useOpener };
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
|
|
2
|
+
import { UisfxPlayerOptions, UisfxSoundPlayer, uisfx_d_exports } from "./uisfx.js";
|
|
3
|
+
type Engine = typeof uisfx_d_exports;
|
|
4
|
+
/**
|
|
5
|
+
* The recommended sound setup (#144): a `SoundPlayer` that loads the UISFX engine on first use, so
|
|
6
|
+
* it stays out of the app's first load. The first trusted pointer or key action starts the import
|
|
7
|
+
* (cues before it finishes are skipped, as they would be before unlocking anyway). If the import
|
|
8
|
+
* fails, say offline, it stays silent and tries again on the next interaction; a cue never throws.
|
|
9
|
+
*
|
|
10
|
+
* Create one per app, at module scope:
|
|
11
|
+
*
|
|
12
|
+
* ```tsx
|
|
13
|
+
* const player = lazyUisfxPlayer();
|
|
14
|
+
* <SoundProvider player={player}>…</SoundProvider>
|
|
15
|
+
* ```
|
|
16
|
+
*/
|
|
17
|
+
export declare function lazyUisfxPlayer(options?: UisfxPlayerOptions,
|
|
18
|
+
/** @internal Tests swap the import. */
|
|
19
|
+
importEngine?: () => Promise<Engine>): UisfxSoundPlayer;
|
|
20
|
+
export {};
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { sound } from "../tokens/dist/motion.js";
|
|
3
|
+
// src/sound/lazy-uisfx.ts
|
|
4
|
+
const GESTURES = ["pointerdown", "keydown"];
|
|
5
|
+
/**
|
|
6
|
+
* The recommended sound setup (#144): a `SoundPlayer` that loads the UISFX engine on first use, so
|
|
7
|
+
* it stays out of the app's first load. The first trusted pointer or key action starts the import
|
|
8
|
+
* (cues before it finishes are skipped, as they would be before unlocking anyway). If the import
|
|
9
|
+
* fails, say offline, it stays silent and tries again on the next interaction; a cue never throws.
|
|
10
|
+
*
|
|
11
|
+
* Create one per app, at module scope:
|
|
12
|
+
*
|
|
13
|
+
* ```tsx
|
|
14
|
+
* const player = lazyUisfxPlayer();
|
|
15
|
+
* <SoundProvider player={player}>…</SoundProvider>
|
|
16
|
+
* ```
|
|
17
|
+
*/
|
|
18
|
+
function lazyUisfxPlayer(options = {}, importEngine = () => import("./uisfx.js")) {
|
|
19
|
+
let engine = null;
|
|
20
|
+
let loading = false;
|
|
21
|
+
let pack = options.pack;
|
|
22
|
+
let gestured = false;
|
|
23
|
+
const listenOn = options.target ?? (typeof window === "undefined" ? void 0 : window);
|
|
24
|
+
const stopListening = () => {
|
|
25
|
+
for (const type of GESTURES) listenOn?.removeEventListener(type, onGesture, true);
|
|
26
|
+
};
|
|
27
|
+
const load = () => {
|
|
28
|
+
if (engine || loading) return;
|
|
29
|
+
loading = true;
|
|
30
|
+
importEngine().then(({ createUisfxPlayer }) => {
|
|
31
|
+
engine = createUisfxPlayer({
|
|
32
|
+
...options,
|
|
33
|
+
pack
|
|
34
|
+
});
|
|
35
|
+
stopListening();
|
|
36
|
+
if (gestured) engine.unlock();
|
|
37
|
+
}).catch(() => {}).finally(() => {
|
|
38
|
+
loading = false;
|
|
39
|
+
});
|
|
40
|
+
};
|
|
41
|
+
function onGesture(event) {
|
|
42
|
+
if (!event.isTrusted) return;
|
|
43
|
+
gestured = true;
|
|
44
|
+
load();
|
|
45
|
+
}
|
|
46
|
+
for (const type of GESTURES) listenOn?.addEventListener(type, onGesture, true);
|
|
47
|
+
const play = ((cue, playOptions) => {
|
|
48
|
+
if (engine) return engine(cue, playOptions);
|
|
49
|
+
load();
|
|
50
|
+
});
|
|
51
|
+
play.setPack = (next) => {
|
|
52
|
+
pack = next;
|
|
53
|
+
engine?.setPack(next);
|
|
54
|
+
};
|
|
55
|
+
play.getPack = () => engine?.getPack() ?? pack ?? sound.feel;
|
|
56
|
+
play.isUnlocked = () => engine?.isUnlocked() ?? false;
|
|
57
|
+
play.unlock = () => {
|
|
58
|
+
gestured = true;
|
|
59
|
+
if (engine) engine.unlock();
|
|
60
|
+
else load();
|
|
61
|
+
};
|
|
62
|
+
play.destroy = async () => {
|
|
63
|
+
stopListening();
|
|
64
|
+
await engine?.destroy();
|
|
65
|
+
};
|
|
66
|
+
return play;
|
|
67
|
+
}
|
|
68
|
+
export { lazyUisfxPlayer };
|
package/dist/sound/sound-map.js
CHANGED
|
@@ -21,7 +21,11 @@ const SOUND_MAP = {
|
|
|
21
21
|
},
|
|
22
22
|
slider: { commit: "movement.snap" },
|
|
23
23
|
"input-otp": { invalid: "feedback.error" },
|
|
24
|
-
alert: {
|
|
24
|
+
alert: {
|
|
25
|
+
destructive: "feedback.error",
|
|
26
|
+
success: "feedback.success",
|
|
27
|
+
warning: "feedback.warning"
|
|
28
|
+
},
|
|
25
29
|
dialog: {
|
|
26
30
|
open: "navigation.open",
|
|
27
31
|
close: "navigation.close"
|
package/dist/sound/uisfx.d.ts
CHANGED
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
|
|
2
2
|
import { SoundPlayer } from "./sound.js";
|
|
3
3
|
import { PackName } from "uisfx";
|
|
4
|
+
declare namespace uisfx_d_exports {
|
|
5
|
+
export { SoundPack, UisfxPlayerOptions, UisfxSoundPlayer, createUisfxPlayer, soundPacks };
|
|
6
|
+
}
|
|
4
7
|
export type SoundPack = PackName;
|
|
5
8
|
/** Every UISFX pack, for pickers. */
|
|
6
9
|
export declare const soundPacks: readonly SoundPack[];
|
|
@@ -34,4 +37,5 @@ export interface UisfxSoundPlayer extends SoundPlayer {
|
|
|
34
37
|
* <SoundProvider player={player}>…</SoundProvider>
|
|
35
38
|
* ```
|
|
36
39
|
*/
|
|
37
|
-
export declare function createUisfxPlayer({ pack, target }?: UisfxPlayerOptions): UisfxSoundPlayer;
|
|
40
|
+
export declare function createUisfxPlayer({ pack, target }?: UisfxPlayerOptions): UisfxSoundPlayer;
|
|
41
|
+
export { uisfx_d_exports };
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/* @nsaa/core: Tailwind sources for alert-dialog (generated). */
|
|
2
|
+
@source "../alert-dialog/alert-dialog.js";
|
|
3
|
+
@source "../button/button.js";
|
|
4
|
+
@source "../lib/cn.js";
|
|
5
|
+
@source "../lib/control-defaults.js";
|
|
6
|
+
@source "../lib/opener.js";
|
|
7
|
+
@source "../lib/use-press.js";
|
|
8
|
+
@source "../loaders/arc.js";
|
|
9
|
+
@source "../loaders/bouncing-dots.js";
|
|
10
|
+
@source "../loaders/cap.js";
|
|
11
|
+
@source "../loaders/circular-dots.js";
|
|
12
|
+
@source "../loaders/classic.js";
|
|
13
|
+
@source "../loaders/easing.js";
|
|
14
|
+
@source "../loaders/fade.js";
|
|
15
|
+
@source "../loaders/frame.js";
|
|
16
|
+
@source "../loaders/motion.js";
|
|
17
|
+
@source "../loaders/orbit.js";
|
|
18
|
+
@source "../loaders/pulse.js";
|
|
19
|
+
@source "../loaders/ring.js";
|
|
20
|
+
@source "../loaders/wave.js";
|
|
21
|
+
@source "../sound/sound-map.js";
|
|
22
|
+
@source "../sound/sound.js";
|
|
23
|
+
@source "../spinner/loader-provider.js";
|
|
24
|
+
@source "../spinner/registry.js";
|
|
25
|
+
@source "../spinner/spinner.js";
|
|
26
|
+
@source "../tokens/dist/motion.js";
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/* @nsaa/core: Tailwind sources for alert (generated). */
|
|
2
|
+
@source "../alert/alert.js";
|
|
3
|
+
@source "../lib/cn.js";
|
|
4
|
+
@source "../lib/input-modality.js";
|
|
5
|
+
@source "../lib/user-action.js";
|
|
6
|
+
@source "../sound/sound-map.js";
|
|
7
|
+
@source "../sound/sound.js";
|
|
8
|
+
@source "../tokens/dist/motion.js";
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/* @nsaa/core: Tailwind sources for button (generated). */
|
|
2
|
+
@source "../button/button.js";
|
|
3
|
+
@source "../lib/cn.js";
|
|
4
|
+
@source "../lib/control-defaults.js";
|
|
5
|
+
@source "../lib/use-press.js";
|
|
6
|
+
@source "../loaders/arc.js";
|
|
7
|
+
@source "../loaders/bouncing-dots.js";
|
|
8
|
+
@source "../loaders/cap.js";
|
|
9
|
+
@source "../loaders/circular-dots.js";
|
|
10
|
+
@source "../loaders/classic.js";
|
|
11
|
+
@source "../loaders/easing.js";
|
|
12
|
+
@source "../loaders/fade.js";
|
|
13
|
+
@source "../loaders/frame.js";
|
|
14
|
+
@source "../loaders/motion.js";
|
|
15
|
+
@source "../loaders/orbit.js";
|
|
16
|
+
@source "../loaders/pulse.js";
|
|
17
|
+
@source "../loaders/ring.js";
|
|
18
|
+
@source "../loaders/wave.js";
|
|
19
|
+
@source "../sound/sound-map.js";
|
|
20
|
+
@source "../sound/sound.js";
|
|
21
|
+
@source "../spinner/loader-provider.js";
|
|
22
|
+
@source "../spinner/registry.js";
|
|
23
|
+
@source "../spinner/spinner.js";
|
|
24
|
+
@source "../tokens/dist/motion.js";
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/* @nsaa/core: Tailwind sources for calendar (generated). */
|
|
2
|
+
@source "../button/button.js";
|
|
3
|
+
@source "../calendar/calendar.js";
|
|
4
|
+
@source "../lib/cn.js";
|
|
5
|
+
@source "../lib/control-defaults.js";
|
|
6
|
+
@source "../lib/use-press.js";
|
|
7
|
+
@source "../loaders/arc.js";
|
|
8
|
+
@source "../loaders/bouncing-dots.js";
|
|
9
|
+
@source "../loaders/cap.js";
|
|
10
|
+
@source "../loaders/circular-dots.js";
|
|
11
|
+
@source "../loaders/classic.js";
|
|
12
|
+
@source "../loaders/easing.js";
|
|
13
|
+
@source "../loaders/fade.js";
|
|
14
|
+
@source "../loaders/frame.js";
|
|
15
|
+
@source "../loaders/motion.js";
|
|
16
|
+
@source "../loaders/orbit.js";
|
|
17
|
+
@source "../loaders/pulse.js";
|
|
18
|
+
@source "../loaders/ring.js";
|
|
19
|
+
@source "../loaders/wave.js";
|
|
20
|
+
@source "../sound/sound-map.js";
|
|
21
|
+
@source "../sound/sound.js";
|
|
22
|
+
@source "../spinner/loader-provider.js";
|
|
23
|
+
@source "../spinner/registry.js";
|
|
24
|
+
@source "../spinner/spinner.js";
|
|
25
|
+
@source "../tokens/dist/motion.js";
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/* @nsaa/core: Tailwind sources for combobox (generated). */
|
|
2
|
+
@source "../button/button.js";
|
|
3
|
+
@source "../combobox/combobox.js";
|
|
4
|
+
@source "../input-group/input-group.js";
|
|
5
|
+
@source "../input/input.js";
|
|
6
|
+
@source "../lib/cn.js";
|
|
7
|
+
@source "../lib/control-defaults.js";
|
|
8
|
+
@source "../lib/use-press.js";
|
|
9
|
+
@source "../loaders/arc.js";
|
|
10
|
+
@source "../loaders/bouncing-dots.js";
|
|
11
|
+
@source "../loaders/cap.js";
|
|
12
|
+
@source "../loaders/circular-dots.js";
|
|
13
|
+
@source "../loaders/classic.js";
|
|
14
|
+
@source "../loaders/easing.js";
|
|
15
|
+
@source "../loaders/fade.js";
|
|
16
|
+
@source "../loaders/frame.js";
|
|
17
|
+
@source "../loaders/motion.js";
|
|
18
|
+
@source "../loaders/orbit.js";
|
|
19
|
+
@source "../loaders/pulse.js";
|
|
20
|
+
@source "../loaders/ring.js";
|
|
21
|
+
@source "../loaders/wave.js";
|
|
22
|
+
@source "../sound/sound-map.js";
|
|
23
|
+
@source "../sound/sound.js";
|
|
24
|
+
@source "../spinner/loader-provider.js";
|
|
25
|
+
@source "../spinner/registry.js";
|
|
26
|
+
@source "../spinner/spinner.js";
|
|
27
|
+
@source "../textarea/textarea.js";
|
|
28
|
+
@source "../tokens/dist/motion.js";
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/* @nsaa/core: Tailwind sources for command (generated). */
|
|
2
|
+
@source "../button/button.js";
|
|
3
|
+
@source "../command/command.js";
|
|
4
|
+
@source "../dialog/dialog.js";
|
|
5
|
+
@source "../input-group/input-group.js";
|
|
6
|
+
@source "../input/input.js";
|
|
7
|
+
@source "../lib/cn.js";
|
|
8
|
+
@source "../lib/control-defaults.js";
|
|
9
|
+
@source "../lib/opener.js";
|
|
10
|
+
@source "../lib/use-press.js";
|
|
11
|
+
@source "../loaders/arc.js";
|
|
12
|
+
@source "../loaders/bouncing-dots.js";
|
|
13
|
+
@source "../loaders/cap.js";
|
|
14
|
+
@source "../loaders/circular-dots.js";
|
|
15
|
+
@source "../loaders/classic.js";
|
|
16
|
+
@source "../loaders/easing.js";
|
|
17
|
+
@source "../loaders/fade.js";
|
|
18
|
+
@source "../loaders/frame.js";
|
|
19
|
+
@source "../loaders/motion.js";
|
|
20
|
+
@source "../loaders/orbit.js";
|
|
21
|
+
@source "../loaders/pulse.js";
|
|
22
|
+
@source "../loaders/ring.js";
|
|
23
|
+
@source "../loaders/wave.js";
|
|
24
|
+
@source "../sound/sound-map.js";
|
|
25
|
+
@source "../sound/sound.js";
|
|
26
|
+
@source "../spinner/loader-provider.js";
|
|
27
|
+
@source "../spinner/registry.js";
|
|
28
|
+
@source "../spinner/spinner.js";
|
|
29
|
+
@source "../textarea/textarea.js";
|
|
30
|
+
@source "../tokens/dist/motion.js";
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/* @nsaa/core: Tailwind sources for dialog (generated). */
|
|
2
|
+
@source "../button/button.js";
|
|
3
|
+
@source "../dialog/dialog.js";
|
|
4
|
+
@source "../lib/cn.js";
|
|
5
|
+
@source "../lib/control-defaults.js";
|
|
6
|
+
@source "../lib/opener.js";
|
|
7
|
+
@source "../lib/use-press.js";
|
|
8
|
+
@source "../loaders/arc.js";
|
|
9
|
+
@source "../loaders/bouncing-dots.js";
|
|
10
|
+
@source "../loaders/cap.js";
|
|
11
|
+
@source "../loaders/circular-dots.js";
|
|
12
|
+
@source "../loaders/classic.js";
|
|
13
|
+
@source "../loaders/easing.js";
|
|
14
|
+
@source "../loaders/fade.js";
|
|
15
|
+
@source "../loaders/frame.js";
|
|
16
|
+
@source "../loaders/motion.js";
|
|
17
|
+
@source "../loaders/orbit.js";
|
|
18
|
+
@source "../loaders/pulse.js";
|
|
19
|
+
@source "../loaders/ring.js";
|
|
20
|
+
@source "../loaders/wave.js";
|
|
21
|
+
@source "../sound/sound-map.js";
|
|
22
|
+
@source "../sound/sound.js";
|
|
23
|
+
@source "../spinner/loader-provider.js";
|
|
24
|
+
@source "../spinner/registry.js";
|
|
25
|
+
@source "../spinner/spinner.js";
|
|
26
|
+
@source "../tokens/dist/motion.js";
|