@vllnt/ui 0.2.1-canary.be68966 → 0.2.1-canary.bf41f62

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.
Files changed (53) hide show
  1. package/dist/components/activity-log/activity-log.js +1 -1
  2. package/dist/components/ai-chat-input/ai-chat-input.js +1 -1
  3. package/dist/components/ai-message-bubble/ai-message-bubble.js +1 -1
  4. package/dist/components/ai-tool-call-display/ai-tool-call-display.js +1 -1
  5. package/dist/components/annotation/annotation.js +1 -1
  6. package/dist/components/avatar-group/avatar-group.js +1 -1
  7. package/dist/components/blog-card/blog-card.js +1 -1
  8. package/dist/components/canvas-shell/canvas-foundation-demo.js +1 -1
  9. package/dist/components/category-filter/category-filter.js +1 -1
  10. package/dist/components/chat-dock-section/chat-dock-section.js +1 -1
  11. package/dist/components/code-playground/code-playground.js +1 -1
  12. package/dist/components/combobox/combobox.js +1 -1
  13. package/dist/components/completion-dialog/completion-dialog.js +1 -1
  14. package/dist/components/connector-edge/connector-edge.js +1 -1
  15. package/dist/components/content-intro/content-intro.js +1 -1
  16. package/dist/components/conversation-thread/conversation-thread.js +1 -1
  17. package/dist/components/countdown-timer/countdown-timer.js +1 -1
  18. package/dist/components/data-table/data-table.js +1 -1
  19. package/dist/components/date-picker/date-picker.js +1 -1
  20. package/dist/components/exercise/exercise.js +1 -1
  21. package/dist/components/file-upload/file-upload.js +1 -1
  22. package/dist/components/filter-bar/filter-bar.js +1 -1
  23. package/dist/components/flashcard/flashcard.js +1 -1
  24. package/dist/components/form/form.js +1 -1
  25. package/dist/components/inline-input/inline-input.js +1 -1
  26. package/dist/components/live-feed/live-feed.js +1 -1
  27. package/dist/components/metric-gauge/metric-gauge.js +1 -1
  28. package/dist/components/model-selector/model-selector.js +1 -1
  29. package/dist/components/multi-select/multi-select.js +1 -1
  30. package/dist/components/navbar-saas/navbar-saas.js +5 -6
  31. package/dist/components/number-input/number-input.js +1 -1
  32. package/dist/components/object-card/object-card.js +1 -1
  33. package/dist/components/overview-board/overview-board.js +1 -1
  34. package/dist/components/progress-card/progress-card.js +1 -1
  35. package/dist/components/progress-tracker/progress-tracker.js +1 -1
  36. package/dist/components/scope-selector/scope-selector.js +1 -1
  37. package/dist/components/search-dialog/search-dialog.js +1 -1
  38. package/dist/components/sidebar/sidebar.js +11 -7
  39. package/dist/components/sidebar-toggle/sidebar-toggle.js +1 -1
  40. package/dist/components/slideshow/slideshow.js +1 -1
  41. package/dist/components/stat-card/stat-card.js +1 -1
  42. package/dist/components/status-board/status-board.js +1 -1
  43. package/dist/components/terminal/terminal.js +1 -1
  44. package/dist/components/ticker-tape/ticker-tape.js +1 -1
  45. package/dist/components/tour/tour.js +1 -1
  46. package/dist/components/tutorial-card/tutorial-card.js +1 -1
  47. package/dist/components/tutorial-complete/tutorial-complete.js +1 -1
  48. package/dist/components/tutorial-filters/tutorial-filters.js +1 -1
  49. package/dist/components/tutorial-mdx/tutorial-mdx.js +1 -1
  50. package/dist/components/usage-breakdown/usage-breakdown.js +1 -1
  51. package/dist/components/world-clock-bar/world-clock-bar.js +1 -1
  52. package/dist/components/zoom-hud/zoom-hud.js +1 -1
  53. package/package.json +1 -1
@@ -3,7 +3,7 @@ import { Fragment, jsx, jsxs } from "react/jsx-runtime";
3
3
  import { forwardRef, useMemo, useState } from "react";
4
4
  import { ArrowRight, ChevronLeft, ChevronRight } from "lucide-react";
5
5
  import { cn } from "../../lib/utils";
6
- import { Avatar, AvatarFallback } from "../avatar";
6
+ import { Avatar, AvatarFallback } from "../avatar/avatar";
7
7
  import { Badge } from "../badge";
8
8
  import { Button } from "../button";
9
9
  import {
@@ -3,7 +3,7 @@ import { forwardRef } from "react";
3
3
  import { cva } from "class-variance-authority";
4
4
  import { LoaderCircle, SendHorizontal } from "lucide-react";
5
5
  import { cn } from "../../lib/utils";
6
- import { Button } from "../button";
6
+ import { Button } from "../button/button";
7
7
  import { Textarea } from "../textarea";
8
8
  const formShellVariants = cva(
9
9
  "rounded-2xl border border-border/70 bg-background shadow-sm"
@@ -2,7 +2,7 @@ import { jsx, jsxs } from "react/jsx-runtime";
2
2
  import { forwardRef } from "react";
3
3
  import { cva } from "class-variance-authority";
4
4
  import { cn } from "../../lib/utils";
5
- import { Avatar, AvatarFallback } from "../avatar";
5
+ import { Avatar, AvatarFallback } from "../avatar/avatar";
6
6
  import { Badge } from "../badge";
7
7
  const bubbleVariants = cva(
8
8
  "rounded-2xl border px-4 py-3 shadow-sm transition-colors",
@@ -3,7 +3,7 @@ import { forwardRef } from "react";
3
3
  import { cva } from "class-variance-authority";
4
4
  import { AlertCircle, CheckCircle2, Clock3, Wrench } from "lucide-react";
5
5
  import { cn } from "../../lib/utils";
6
- import { Badge } from "../badge";
6
+ import { Badge } from "../badge/badge";
7
7
  const statusVariants = cva(
8
8
  "rounded-full px-2 py-0 text-[10px] uppercase tracking-wide",
9
9
  {
@@ -1,7 +1,7 @@
1
1
  "use client";
2
2
  import { jsx, jsxs } from "react/jsx-runtime";
3
3
  import { cn } from "../../lib/utils";
4
- import { Popover, PopoverContent, PopoverTrigger } from "../popover";
4
+ import { Popover, PopoverContent, PopoverTrigger } from "../popover/popover";
5
5
  const toneClasses = {
6
6
  amber: "bg-amber-500/20 text-amber-950 dark:text-amber-100",
7
7
  emerald: "bg-emerald-500/20 text-emerald-950 dark:text-emerald-100",
@@ -2,7 +2,7 @@ import { jsx, jsxs } from "react/jsx-runtime";
2
2
  import * as React from "react";
3
3
  import { cva } from "class-variance-authority";
4
4
  import { cn } from "../../lib/utils";
5
- import { Avatar, AvatarFallback, AvatarImage } from "../avatar";
5
+ import { Avatar, AvatarFallback, AvatarImage } from "../avatar/avatar";
6
6
  const avatarGroupVariants = cva("flex items-center", {
7
7
  defaultVariants: {
8
8
  size: "md"
@@ -1,6 +1,6 @@
1
1
  import { jsx, jsxs } from "react/jsx-runtime";
2
2
  import Link from "next/link";
3
- import { Badge } from "../badge";
3
+ import { Badge } from "../badge/badge";
4
4
  import {
5
5
  Card,
6
6
  CardContent,
@@ -1,6 +1,6 @@
1
1
  import { Fragment, jsx, jsxs } from "react/jsx-runtime";
2
2
  import { Activity, Bot, Compass, Layers3, Sparkles } from "lucide-react";
3
- import { BottomBar } from "../bottom-bar";
3
+ import { BottomBar } from "../bottom-bar/bottom-bar";
4
4
  import { Button } from "../button";
5
5
  import { CanvasView } from "../canvas-view";
6
6
  import { ChatDockSection } from "../chat-dock-section";
@@ -2,7 +2,7 @@
2
2
  import { jsx } from "react/jsx-runtime";
3
3
  import Link from "next/link";
4
4
  import { usePathname } from "next/navigation";
5
- import { Badge } from "../badge";
5
+ import { Badge } from "../badge/badge";
6
6
  function slugify(text) {
7
7
  return text.toLowerCase().normalize("NFD").replaceAll(/[\u0300-\u036F]/g, "").replaceAll(/[^\s\w-]/g, "").trim().replaceAll(/\s+/g, "-").replaceAll(/-+/g, "-").replaceAll(/^-+|-+$/g, "");
8
8
  }
@@ -2,7 +2,7 @@ import { jsx, jsxs } from "react/jsx-runtime";
2
2
  import { forwardRef } from "react";
3
3
  import { ArrowUpRight, MessageSquareText } from "lucide-react";
4
4
  import { cn } from "../../lib/utils";
5
- import { Button } from "../button";
5
+ import { Button } from "../button/button";
6
6
  const ChatDockSection = forwardRef(
7
7
  ({
8
8
  className,
@@ -3,7 +3,7 @@ import { jsx, jsxs } from "react/jsx-runtime";
3
3
  import { useState } from "react";
4
4
  import { Check, Code, Copy, FileCode } from "lucide-react";
5
5
  import { cn } from "../../lib/utils";
6
- import { Button } from "../button";
6
+ import { Button } from "../button/button";
7
7
  function CodeLine({ highlightLines, line, lineNumber }) {
8
8
  const isHighlighted = highlightLines.includes(lineNumber);
9
9
  return /* @__PURE__ */ jsxs("div", { className: cn("flex", isHighlighted && "bg-primary/10 -mx-4 px-4"), children: [
@@ -3,7 +3,7 @@ import { jsx, jsxs } from "react/jsx-runtime";
3
3
  import * as React from "react";
4
4
  import { Check, ChevronsUpDown } from "lucide-react";
5
5
  import { cn } from "../../lib/utils";
6
- import { Button } from "../button";
6
+ import { Button } from "../button/button";
7
7
  import {
8
8
  Command,
9
9
  CommandEmpty,
@@ -2,7 +2,7 @@
2
2
  import { jsx, jsxs } from "react/jsx-runtime";
3
3
  import { memo, useEffect, useRef } from "react";
4
4
  import { cn } from "../../lib/utils";
5
- import { Button } from "../button";
5
+ import { Button } from "../button/button";
6
6
  function DialogContent({
7
7
  as: Heading = "h2",
8
8
  cancelLabel = "Skip",
@@ -1,7 +1,7 @@
1
1
  import { jsx, jsxs } from "react/jsx-runtime";
2
2
  import { forwardRef } from "react";
3
3
  import { cn } from "../../lib/utils";
4
- import { EdgeLabel } from "../edge-label";
4
+ import { EdgeLabel } from "../edge-label/edge-label";
5
5
  const strokeClasses = {
6
6
  active: "stroke-sky-500",
7
7
  blocked: "stroke-amber-500",
@@ -2,7 +2,7 @@
2
2
  import { Fragment, jsx, jsxs } from "react/jsx-runtime";
3
3
  import { memo, useEffect, useRef } from "react";
4
4
  import { cn } from "../../lib/utils";
5
- import { Button } from "../button";
5
+ import { Button } from "../button/button";
6
6
  const DEFAULT_LABELS = {
7
7
  continueLabel: "Continue Tutorial",
8
8
  startLabel: "Start Tutorial",
@@ -12,7 +12,7 @@ import {
12
12
  } from "react";
13
13
  import { ArrowDown, RefreshCw, ThumbsDown, ThumbsUp } from "lucide-react";
14
14
  import { cn } from "../../lib/utils";
15
- import { ThinkingBlock } from "../thinking-block";
15
+ import { ThinkingBlock } from "../thinking-block/thinking-block";
16
16
  const ConversationThreadContext = createContext(null);
17
17
  function useConversationThreadContext() {
18
18
  const ctx = useContext(ConversationThreadContext);
@@ -2,7 +2,7 @@
2
2
  import { jsx, jsxs } from "react/jsx-runtime";
3
3
  import * as React from "react";
4
4
  import { cn } from "../../lib/utils";
5
- import { Badge } from "../badge";
5
+ import { Badge } from "../badge/badge";
6
6
  import {
7
7
  Card,
8
8
  CardContent,
@@ -11,7 +11,7 @@ import {
11
11
  } from "@tanstack/react-table";
12
12
  import { ArrowDown, ArrowUp, ArrowUpDown } from "lucide-react";
13
13
  import { cn } from "../../lib/utils";
14
- import { Button } from "../button";
14
+ import { Button } from "../button/button";
15
15
  import { Checkbox } from "../checkbox";
16
16
  import { Input } from "../input";
17
17
  import {
@@ -3,7 +3,7 @@ import { jsx, jsxs } from "react/jsx-runtime";
3
3
  import * as React from "react";
4
4
  import { CalendarIcon } from "lucide-react";
5
5
  import { cn } from "../../lib/utils";
6
- import { Button } from "../button";
6
+ import { Button } from "../button/button";
7
7
  import { Calendar } from "../calendar";
8
8
  import { Popover, PopoverContent, PopoverTrigger } from "../popover";
9
9
  const defaultDateFormatter = new Intl.DateTimeFormat("en-US", {
@@ -3,7 +3,7 @@ import { Fragment, jsx, jsxs } from "react/jsx-runtime";
3
3
  import { useState } from "react";
4
4
  import { Check, Dumbbell, Eye, EyeOff } from "lucide-react";
5
5
  import { cn } from "../../lib/utils";
6
- import { Button } from "../button";
6
+ import { Button } from "../button/button";
7
7
  const difficultyConfig = {
8
8
  easy: { className: "text-green-600 dark:text-green-400", label: "Easy" },
9
9
  hard: { className: "text-red-600 dark:text-red-400", label: "Hard" },
@@ -3,7 +3,7 @@ import { jsx, jsxs } from "react/jsx-runtime";
3
3
  import * as React from "react";
4
4
  import { FileUp, UploadCloud, X } from "lucide-react";
5
5
  import { cn } from "../../lib/utils";
6
- import { Button } from "../button";
6
+ import { Button } from "../button/button";
7
7
  function useFileUploadState(controlledFiles, multiple, onFilesChange) {
8
8
  const [internalFiles, setInternalFiles] = React.useState(
9
9
  controlledFiles ?? []
@@ -2,7 +2,7 @@
2
2
  import { jsx, jsxs } from "react/jsx-runtime";
3
3
  import { memo, useCallback, useTransition } from "react";
4
4
  import { cn } from "../../lib/utils";
5
- import { Badge } from "../badge";
5
+ import { Badge } from "../badge/badge";
6
6
  function SearchInput({
7
7
  disabled,
8
8
  label,
@@ -3,7 +3,7 @@ import { jsx, jsxs } from "react/jsx-runtime";
3
3
  import { useState } from "react";
4
4
  import { RefreshCcw } from "lucide-react";
5
5
  import { cn } from "../../lib/utils";
6
- import { Badge } from "../badge";
6
+ import { Badge } from "../badge/badge";
7
7
  import { Button } from "../button";
8
8
  import { Card, CardContent, CardFooter, CardHeader, CardTitle } from "../card";
9
9
  function Flashcard({
@@ -10,7 +10,7 @@ import {
10
10
  useFormContext
11
11
  } from "react-hook-form";
12
12
  import { cn } from "../../lib/utils";
13
- import { Label } from "../label";
13
+ import { Label } from "../label/label";
14
14
  const FormRootContext = React.createContext(
15
15
  void 0
16
16
  );
@@ -1,7 +1,7 @@
1
1
  "use client";
2
2
  import { jsx } from "react/jsx-runtime";
3
3
  import { cn } from "../../lib/utils";
4
- import { Input } from "../input";
4
+ import { Input } from "../input/input";
5
5
  function InlineInput({
6
6
  className,
7
7
  onCancel,
@@ -2,7 +2,7 @@
2
2
  import { jsx, jsxs } from "react/jsx-runtime";
3
3
  import * as React from "react";
4
4
  import { cn } from "../../lib/utils";
5
- import { Badge } from "../badge";
5
+ import { Badge } from "../badge/badge";
6
6
  import {
7
7
  Card,
8
8
  CardContent,
@@ -1,7 +1,7 @@
1
1
  import { Fragment, jsx, jsxs } from "react/jsx-runtime";
2
2
  import * as React from "react";
3
3
  import { cn } from "../../lib/utils";
4
- import { Badge } from "../badge";
4
+ import { Badge } from "../badge/badge";
5
5
  import {
6
6
  Card,
7
7
  CardContent,
@@ -3,7 +3,7 @@ import { jsx, jsxs } from "react/jsx-runtime";
3
3
  import { useMemo, useRef, useState } from "react";
4
4
  import { ArrowUpDown, Filter } from "lucide-react";
5
5
  import { cn } from "../../lib/utils";
6
- import { Badge } from "../badge";
6
+ import { Badge } from "../badge/badge";
7
7
  import { Button } from "../button";
8
8
  import {
9
9
  Command,
@@ -3,7 +3,7 @@ import { Fragment, jsx, jsxs } from "react/jsx-runtime";
3
3
  import * as React from "react";
4
4
  import { Check, ChevronDown } from "lucide-react";
5
5
  import { cn } from "../../lib/utils";
6
- import { Badge } from "../badge";
6
+ import { Badge } from "../badge/badge";
7
7
  import { Button } from "../button";
8
8
  import {
9
9
  Command,
@@ -4,10 +4,9 @@ import { Menu, X } from "lucide-react";
4
4
  import Link from "next/link";
5
5
  import { usePathname } from "next/navigation";
6
6
  import { cn } from "../../lib/utils";
7
- import { Button } from "../button";
7
+ import { Button } from "../button/button";
8
8
  import { useSidebar } from "../sidebar-provider";
9
9
  import { ThemeToggle } from "../theme-toggle";
10
- import { useMobile } from "./use-mobile";
11
10
  const EMPTY_NAV_ITEMS = [];
12
11
  function NavbarSaas({
13
12
  brand,
@@ -17,13 +16,13 @@ function NavbarSaas({
17
16
  }) {
18
17
  const pathname = usePathname();
19
18
  const { open, setOpen } = useSidebar();
20
- const isMobile = useMobile();
21
19
  return /* @__PURE__ */ jsx("header", { className: "sticky top-0 z-50 w-full border-b bg-background/95 backdrop-blur supports-[backdrop-filter]:bg-background/60 shrink-0", children: /* @__PURE__ */ jsx("div", { className: "w-full", children: /* @__PURE__ */ jsxs("div", { className: "mx-auto flex h-16 items-center justify-between px-4", children: [
22
20
  /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-4", children: [
23
- showMobileMenu && isMobile ? /* @__PURE__ */ jsx(
21
+ showMobileMenu ? /* @__PURE__ */ jsx(
24
22
  Button,
25
23
  {
26
- className: "lg:hidden",
24
+ "aria-expanded": open,
25
+ "aria-label": "Toggle sidebar",
27
26
  "data-testid": "navbar-saas-mobile-trigger",
28
27
  onClick: () => {
29
28
  setOpen(!open);
@@ -34,7 +33,7 @@ function NavbarSaas({
34
33
  }
35
34
  ) : null,
36
35
  brand ? typeof brand === "string" ? /* @__PURE__ */ jsx(Link, { className: "text-xl font-bold truncate", href: "/", children: brand }) : brand : null,
37
- navItems.length > 0 ? /* @__PURE__ */ jsx("nav", { className: "hidden md:flex gap-6", children: navItems.map((item) => /* @__PURE__ */ jsx(
36
+ navItems.length > 0 ? /* @__PURE__ */ jsx("nav", { className: "hidden lg:flex gap-6", children: navItems.map((item) => /* @__PURE__ */ jsx(
38
37
  Link,
39
38
  {
40
39
  className: cn(
@@ -3,7 +3,7 @@ import { jsx, jsxs } from "react/jsx-runtime";
3
3
  import * as React from "react";
4
4
  import { Minus, Plus } from "lucide-react";
5
5
  import { cn } from "../../lib/utils";
6
- import { Button } from "../button";
6
+ import { Button } from "../button/button";
7
7
  function getNumericBound(bound) {
8
8
  if (bound === void 0) {
9
9
  return;
@@ -1,7 +1,7 @@
1
1
  import { jsx, jsxs } from "react/jsx-runtime";
2
2
  import { forwardRef } from "react";
3
3
  import { cn } from "../../lib/utils";
4
- import { Badge } from "../badge";
4
+ import { Badge } from "../badge/badge";
5
5
  import { Button } from "../button";
6
6
  const stateClasses = {
7
7
  blocked: "border-amber-500/30 bg-amber-500/10 text-amber-700 dark:text-amber-300",
@@ -2,7 +2,7 @@ import { jsx, jsxs } from "react/jsx-runtime";
2
2
  import { forwardRef } from "react";
3
3
  import { AlertCircle, ArrowRight, Inbox, ListTodo, Siren } from "lucide-react";
4
4
  import { cn } from "../../lib/utils";
5
- import { Button } from "../button";
5
+ import { Button } from "../button/button";
6
6
  const toneClassNames = {
7
7
  danger: "border-red-500/30 bg-red-500/8",
8
8
  default: "border-border/70 bg-background/80",
@@ -2,7 +2,7 @@
2
2
  import { jsx, jsxs } from "react/jsx-runtime";
3
3
  import { memo, useEffect, useState } from "react";
4
4
  import { useMounted } from "../../lib/use-mounted";
5
- import { Badge } from "../badge";
5
+ import { Badge } from "../badge/badge";
6
6
  import {
7
7
  Card,
8
8
  CardContent,
@@ -2,7 +2,7 @@
2
2
  import { jsx, jsxs } from "react/jsx-runtime";
3
3
  import * as React from "react";
4
4
  import { cn } from "../../lib/utils";
5
- import { Badge } from "../badge";
5
+ import { Badge } from "../badge/badge";
6
6
  import {
7
7
  Card,
8
8
  CardContent,
@@ -3,7 +3,7 @@ import { Fragment, jsx, jsxs } from "react/jsx-runtime";
3
3
  import { forwardRef, useMemo, useState } from "react";
4
4
  import { Check, ChevronRight, Search } from "lucide-react";
5
5
  import { cn } from "../../lib/utils";
6
- import { Badge } from "../badge";
6
+ import { Badge } from "../badge/badge";
7
7
  import { Button } from "../button";
8
8
  import { Input } from "../input";
9
9
  import { Popover, PopoverContent, PopoverTrigger } from "../popover";
@@ -10,7 +10,7 @@ import {
10
10
  } from "react";
11
11
  import { Search } from "lucide-react";
12
12
  import { cn } from "../../lib/utils";
13
- import { Button } from "../button";
13
+ import { Button } from "../button/button";
14
14
  import {
15
15
  CommandDialog,
16
16
  CommandEmpty,
@@ -4,8 +4,9 @@ import { useEffect, useRef, useState, useSyncExternalStore } from "react";
4
4
  import { ChevronDown } from "lucide-react";
5
5
  import Link from "next/link";
6
6
  import { usePathname } from "next/navigation";
7
+ import { useMounted } from "../../lib/use-mounted";
7
8
  import { cn } from "../../lib/utils";
8
- import { useSidebar } from "../sidebar-provider";
9
+ import { useSidebar } from "../sidebar-provider/sidebar-provider";
9
10
  const getMobileSnapshot = () => typeof window === "undefined" ? false : window.innerWidth < 1024;
10
11
  const getServerMobileSnapshot = () => false;
11
12
  const subscribeToViewportResize = (onStoreChange) => {
@@ -97,10 +98,12 @@ function Sidebar({ sections }) {
97
98
  const pathname = usePathname();
98
99
  const { open, setOpen } = useSidebar();
99
100
  const isMobile = useMobile(setOpen);
101
+ const mounted = useMounted();
100
102
  const scrollContainerReference = useRef(null);
101
103
  const { showBottomFade, showTopFade } = useScrollFade(
102
104
  scrollContainerReference
103
105
  );
106
+ const collapsed = mounted && !isMobile && !open;
104
107
  return /* @__PURE__ */ jsxs(Fragment, { children: [
105
108
  isMobile && open ? /* @__PURE__ */ jsx(
106
109
  "div",
@@ -123,15 +126,16 @@ function Sidebar({ sections }) {
123
126
  "aside",
124
127
  {
125
128
  className: cn(
126
- "fixed lg:relative top-16 lg:top-0 bottom-0 lg:bottom-auto left-0 z-40 lg:h-full border-r bg-background transition-transform duration-300 ease-in-out",
129
+ "fixed lg:relative top-16 lg:top-0 bottom-0 lg:bottom-auto left-0 z-40 lg:h-full bg-background transition-[transform,width] duration-300 ease-in-out",
127
130
  "flex flex-col",
128
131
  "overflow-hidden",
129
132
  "shrink-0",
130
- isMobile ? "w-full" : "w-64",
131
- isMobile && !open && "-translate-x-full",
133
+ collapsed ? "border-r-0" : "border-r",
134
+ collapsed ? "w-0" : isMobile ? "w-full" : "w-64",
132
135
  isMobile && open && "translate-x-0",
133
- !isMobile && !open && "-translate-x-full lg:translate-x-0",
134
- !isMobile && "lg:translate-x-0"
136
+ isMobile && !open && "-translate-x-full",
137
+ !isMobile && !collapsed && "-translate-x-full lg:translate-x-0",
138
+ !isMobile && collapsed && "-translate-x-full"
135
139
  ),
136
140
  children: /* @__PURE__ */ jsxs("div", { className: "relative flex-1 overflow-hidden", children: [
137
141
  showTopFade ? /* @__PURE__ */ jsx("div", { className: "absolute top-0 left-0 right-0 h-8 bg-gradient-to-b from-background to-transparent pointer-events-none z-20" }) : null,
@@ -139,7 +143,7 @@ function Sidebar({ sections }) {
139
143
  /* @__PURE__ */ jsx(
140
144
  "nav",
141
145
  {
142
- className: "flex-1 p-4 overflow-y-auto h-full",
146
+ className: "flex-1 p-4 overflow-y-auto overscroll-contain h-full [scrollbar-width:none] [&::-webkit-scrollbar]:hidden",
143
147
  ref: scrollContainerReference,
144
148
  children: /* @__PURE__ */ jsx("div", { className: "space-y-4", children: sections.map((section, sectionIndex) => {
145
149
  const sectionItems = /* @__PURE__ */ jsx("div", { className: section.title ? "space-y-0.5" : "space-y-1", children: section.items.map((item) => /* @__PURE__ */ jsx(
@@ -2,7 +2,7 @@
2
2
  import { Fragment, jsx, jsxs } from "react/jsx-runtime";
3
3
  import { Menu, X } from "lucide-react";
4
4
  import { cn } from "../../lib/utils";
5
- import { Button } from "../button";
5
+ import { Button } from "../button/button";
6
6
  function SidebarToggle({
7
7
  className,
8
8
  onToggle,
@@ -4,7 +4,7 @@ import { memo, useCallback, useEffect, useState } from "react";
4
4
  import { createPortal } from "react-dom";
5
5
  import { useMounted } from "../../lib/use-mounted";
6
6
  import { cn } from "../../lib/utils";
7
- import { CompletionDialog } from "../completion-dialog";
7
+ import { CompletionDialog } from "../completion-dialog/completion-dialog";
8
8
  const DEFAULT_LABELS = {
9
9
  closeLabel: "Close",
10
10
  closeTocLabel: "Close table of contents",
@@ -3,7 +3,7 @@ import * as React from "react";
3
3
  import { cva } from "class-variance-authority";
4
4
  import { ArrowDownRight, ArrowRight, ArrowUpRight } from "lucide-react";
5
5
  import { cn } from "../../lib/utils";
6
- import { Card, CardContent, CardDescription, CardHeader } from "../card";
6
+ import { Card, CardContent, CardDescription, CardHeader } from "../card/card";
7
7
  const statCardVariants = cva("overflow-hidden border shadow-sm", {
8
8
  defaultVariants: {
9
9
  tone: "neutral"
@@ -1,7 +1,7 @@
1
1
  import { jsx, jsxs } from "react/jsx-runtime";
2
2
  import * as React from "react";
3
3
  import { cn } from "../../lib/utils";
4
- import { Badge } from "../badge";
4
+ import { Badge } from "../badge/badge";
5
5
  import {
6
6
  Card,
7
7
  CardContent,
@@ -2,7 +2,7 @@
2
2
  import { Fragment, jsx, jsxs } from "react/jsx-runtime";
3
3
  import { useState } from "react";
4
4
  import { Check, Copy, Terminal as TerminalIcon } from "lucide-react";
5
- import { Button } from "../button";
5
+ import { Button } from "../button/button";
6
6
  function getCommandContents(lines) {
7
7
  return lines.reduce((commands, line) => {
8
8
  if (line.type === "command") {
@@ -2,7 +2,7 @@ import { jsx, jsxs } from "react/jsx-runtime";
2
2
  import * as React from "react";
3
3
  import { ArrowDownRight, ArrowUpRight, Dot } from "lucide-react";
4
4
  import { cn } from "../../lib/utils";
5
- import { Badge } from "../badge";
5
+ import { Badge } from "../badge/badge";
6
6
  const tickerTapeKeyframes = `
7
7
  @keyframes ticker-tape-scroll {
8
8
  from {
@@ -2,7 +2,7 @@
2
2
  import { jsx, jsxs } from "react/jsx-runtime";
3
3
  import { useState } from "react";
4
4
  import { cn } from "../../lib/utils";
5
- import { Badge } from "../badge";
5
+ import { Badge } from "../badge/badge";
6
6
  import { Button } from "../button";
7
7
  import { Card, CardContent, CardFooter, CardHeader, CardTitle } from "../card";
8
8
  function TourHeader({
@@ -2,7 +2,7 @@
2
2
  import { jsx, jsxs } from "react/jsx-runtime";
3
3
  import { memo, useEffect, useState } from "react";
4
4
  import { useMounted } from "../../lib/use-mounted";
5
- import { Badge } from "../badge";
5
+ import { Badge } from "../badge/badge";
6
6
  import {
7
7
  Card,
8
8
  CardContent,
@@ -2,7 +2,7 @@
2
2
  import { jsx, jsxs } from "react/jsx-runtime";
3
3
  import { memo } from "react";
4
4
  import { Check, ChevronRight, RotateCcw } from "lucide-react";
5
- import { Button } from "../button";
5
+ import { Button } from "../button/button";
6
6
  import { ProfileSection } from "../profile-section";
7
7
  import { ShareSection } from "../share-section";
8
8
  function DefaultLink({
@@ -1,7 +1,7 @@
1
1
  "use client";
2
2
  import { jsx, jsxs } from "react/jsx-runtime";
3
3
  import { memo } from "react";
4
- import { Badge } from "../badge";
4
+ import { Badge } from "../badge/badge";
5
5
  function SearchInput({
6
6
  isPending,
7
7
  labels,
@@ -10,7 +10,7 @@ import {
10
10
  AccordionContent,
11
11
  AccordionItem,
12
12
  AccordionTrigger
13
- } from "../accordion";
13
+ } from "../accordion/accordion";
14
14
  import { Callout } from "../callout";
15
15
  import { Checklist } from "../checklist";
16
16
  import { CodePlayground, FileTree } from "../code-playground";
@@ -3,7 +3,7 @@ import { jsx, jsxs } from "react/jsx-runtime";
3
3
  import { forwardRef, useMemo } from "react";
4
4
  import { ArrowDownRight, ArrowUpRight } from "lucide-react";
5
5
  import { cn } from "../../lib/utils";
6
- import { Badge } from "../badge";
6
+ import { Badge } from "../badge/badge";
7
7
  import {
8
8
  Card,
9
9
  CardContent,
@@ -2,7 +2,7 @@
2
2
  import { jsx, jsxs } from "react/jsx-runtime";
3
3
  import * as React from "react";
4
4
  import { cn } from "../../lib/utils";
5
- import { Badge } from "../badge";
5
+ import { Badge } from "../badge/badge";
6
6
  function normalizeDate(input) {
7
7
  if (input instanceof Date) {
8
8
  return new Date(input.getTime());
@@ -2,7 +2,7 @@ import { jsx, jsxs } from "react/jsx-runtime";
2
2
  import { forwardRef } from "react";
3
3
  import { Minus, Plus, RotateCcw } from "lucide-react";
4
4
  import { cn } from "../../lib/utils";
5
- import { Button } from "../button";
5
+ import { Button } from "../button/button";
6
6
  const ZoomHUD = forwardRef(
7
7
  ({ className, onReset, onZoomIn, onZoomOut, zoom, ...props }, ref) => /* @__PURE__ */ jsxs(
8
8
  "div",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vllnt/ui",
3
- "version": "0.2.1-canary.be68966",
3
+ "version": "0.2.1-canary.bf41f62",
4
4
  "description": "React component library — 225 components built on Radix UI, Tailwind CSS, and CVA",
5
5
  "license": "MIT",
6
6
  "author": "vllnt",