@nqlib/nqui 0.3.1 → 0.3.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.
Files changed (107) hide show
  1. package/README.md +6 -1
  2. package/dist/App.d.ts.map +1 -1
  3. package/dist/components/AppLayout.d.ts.map +1 -1
  4. package/dist/components/app-sidebar.d.ts.map +1 -1
  5. package/dist/components/custom/command-palette.d.ts +19 -0
  6. package/dist/components/custom/command-palette.d.ts.map +1 -0
  7. package/dist/components/custom/enhanced-badge.d.ts +1 -1
  8. package/dist/components/custom/enhanced-button.d.ts +1 -1
  9. package/dist/components/custom/enhanced-checkbox.d.ts +1 -1
  10. package/dist/components/custom/enhanced-checkbox.d.ts.map +1 -1
  11. package/dist/components/custom/enhanced-scroll-area.d.ts +11 -13
  12. package/dist/components/custom/enhanced-scroll-area.d.ts.map +1 -1
  13. package/dist/components/custom/nqui-logo.d.ts +1 -0
  14. package/dist/components/custom/nqui-logo.d.ts.map +1 -1
  15. package/dist/components/custom/segmented-control.d.ts +48 -0
  16. package/dist/components/custom/segmented-control.d.ts.map +1 -0
  17. package/dist/components/ui/badge.d.ts +1 -1
  18. package/dist/components/ui/button.d.ts +1 -1
  19. package/dist/components/ui/input-group.d.ts +1 -1
  20. package/dist/components/ui/sheet.d.ts +1 -1
  21. package/dist/index.d.ts +5 -1
  22. package/dist/index.d.ts.map +1 -1
  23. package/dist/lib/keyboard.d.ts +1 -0
  24. package/dist/lib/keyboard.d.ts.map +1 -1
  25. package/dist/nqui.cjs.js +85 -85
  26. package/dist/nqui.es.js +13099 -12927
  27. package/dist/pages/ChartShowcase.d.ts.map +1 -1
  28. package/dist/pages/ComponentShowcase.d.ts.map +1 -1
  29. package/dist/pages/DataTableShowcase.d.ts +2 -0
  30. package/dist/pages/DataTableShowcase.d.ts.map +1 -0
  31. package/dist/styles.css +5 -13
  32. package/docs/components/README.md +119 -0
  33. package/docs/components/nqui-accordion.md +20 -0
  34. package/docs/components/nqui-alert-dialog.md +31 -0
  35. package/docs/components/nqui-alert.md +19 -0
  36. package/docs/components/nqui-aspect-ratio.md +17 -0
  37. package/docs/components/nqui-avatar.md +18 -0
  38. package/docs/components/nqui-badge.md +42 -0
  39. package/docs/components/nqui-breadcrumb.md +24 -0
  40. package/docs/components/nqui-button-group.md +31 -0
  41. package/docs/components/nqui-button.md +56 -0
  42. package/docs/components/nqui-calendar.md +46 -0
  43. package/docs/components/nqui-card.md +31 -0
  44. package/docs/components/nqui-carousel.md +22 -0
  45. package/docs/components/nqui-checkbox.md +34 -0
  46. package/docs/components/nqui-code-block.md +39 -0
  47. package/docs/components/nqui-code-editor.md +21 -0
  48. package/docs/components/nqui-collapsible.md +18 -0
  49. package/docs/components/nqui-color-picker.md +38 -0
  50. package/docs/components/nqui-color-slider.md +23 -0
  51. package/docs/components/nqui-combobox.md +65 -0
  52. package/docs/components/nqui-command-palette.md +29 -0
  53. package/docs/components/nqui-command.md +39 -0
  54. package/docs/components/nqui-context-menu.md +33 -0
  55. package/docs/components/nqui-dialog.md +36 -0
  56. package/docs/components/nqui-drawer.md +27 -0
  57. package/docs/components/nqui-dropdown-menu.md +56 -0
  58. package/docs/components/nqui-empty.md +22 -0
  59. package/docs/components/nqui-field.md +42 -0
  60. package/docs/components/nqui-frosted-glass.md +19 -0
  61. package/docs/components/nqui-hover-card.md +18 -0
  62. package/docs/components/nqui-input-group.md +22 -0
  63. package/docs/components/nqui-input-otp.md +23 -0
  64. package/docs/components/nqui-input.md +25 -0
  65. package/docs/components/nqui-item.md +25 -0
  66. package/docs/components/nqui-kbd.md +25 -0
  67. package/docs/components/nqui-label.md +16 -0
  68. package/docs/components/nqui-logo.md +16 -0
  69. package/docs/components/nqui-menubar.md +22 -0
  70. package/docs/components/nqui-native-select.md +28 -0
  71. package/docs/components/nqui-navigation-menu.md +25 -0
  72. package/docs/components/nqui-pagination.md +25 -0
  73. package/docs/components/nqui-popover.md +34 -0
  74. package/docs/components/nqui-progress.md +22 -0
  75. package/docs/components/nqui-radio-group.md +34 -0
  76. package/docs/components/nqui-rating.md +35 -0
  77. package/docs/components/nqui-resizable.md +23 -0
  78. package/docs/components/nqui-sandbox.md +27 -0
  79. package/docs/components/nqui-scroll-area.md +32 -0
  80. package/docs/components/nqui-segmented-control.md +18 -0
  81. package/docs/components/nqui-select.md +50 -0
  82. package/docs/components/nqui-separator.md +16 -0
  83. package/docs/components/nqui-sheet.md +27 -0
  84. package/docs/components/nqui-sidebar.md +45 -0
  85. package/docs/components/nqui-skeleton.md +15 -0
  86. package/docs/components/nqui-slider.md +16 -0
  87. package/docs/components/nqui-snippet.md +28 -0
  88. package/docs/components/nqui-sortable.md +46 -0
  89. package/docs/components/nqui-spinner.md +16 -0
  90. package/docs/components/nqui-switch.md +15 -0
  91. package/docs/components/nqui-table-of-contents.md +37 -0
  92. package/docs/components/nqui-tabs.md +35 -0
  93. package/docs/components/nqui-textarea.md +15 -0
  94. package/docs/components/nqui-toaster.md +44 -0
  95. package/docs/components/nqui-toggle-group.md +21 -0
  96. package/docs/components/nqui-toggle.md +15 -0
  97. package/docs/components/nqui-tooltip.md +24 -0
  98. package/docs/components/nqui-tracker.md +38 -0
  99. package/docs/internal-notes/BUILD_VERIFICATION.md +174 -0
  100. package/docs/internal-notes/DASHBOARD_LAYOUT_DESIGN.md +1429 -0
  101. package/docs/internal-notes/FROSTED_GLASS_FIX.md +50 -0
  102. package/docs/internal-notes/PUBLISHING.md +339 -0
  103. package/docs/internal-notes/layoutdesign.md +616 -0
  104. package/docs/internal-notes/progress.md +348 -0
  105. package/docs/internal-notes/stacked-avatar-implementation.md +38 -0
  106. package/package.json +2 -1
  107. /package/{INSTALLATION.md → docs/internal-notes/INSTALLATION.md} +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"ChartShowcase.d.ts","sourceRoot":"","sources":["../../src/pages/ChartShowcase.tsx"],"names":[],"mappings":"AAiIA,MAAM,CAAC,OAAO,UAAU,aAAa,4CAuxBpC"}
1
+ {"version":3,"file":"ChartShowcase.d.ts","sourceRoot":"","sources":["../../src/pages/ChartShowcase.tsx"],"names":[],"mappings":"AAwHA,MAAM,CAAC,OAAO,UAAU,aAAa,4CAorBpC"}
@@ -1 +1 @@
1
- {"version":3,"file":"ComponentShowcase.d.ts","sourceRoot":"","sources":["../../src/pages/ComponentShowcase.tsx"],"names":[],"mappings":"AA6PA,MAAM,CAAC,OAAO,UAAU,SAAS,4CAk4EhC"}
1
+ {"version":3,"file":"ComponentShowcase.d.ts","sourceRoot":"","sources":["../../src/pages/ComponentShowcase.tsx"],"names":[],"mappings":"AAkdA,MAAM,CAAC,OAAO,UAAU,SAAS,4CA+tFhC"}
@@ -0,0 +1,2 @@
1
+ export default function DataTableShowcase(): import("react/jsx-runtime").JSX.Element;
2
+ //# sourceMappingURL=DataTableShowcase.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DataTableShowcase.d.ts","sourceRoot":"","sources":["../../src/pages/DataTableShowcase.tsx"],"names":[],"mappings":"AAuBA,MAAM,CAAC,OAAO,UAAU,iBAAiB,4CA0IxC"}
package/dist/styles.css CHANGED
@@ -179,14 +179,6 @@
179
179
  @apply border-border outline-ring/50;
180
180
  }
181
181
 
182
- /* Viewport lock - all scroll managed by individual containers, not body */
183
- html,
184
- body,
185
- #root {
186
- height: 100%;
187
- overflow: hidden;
188
- }
189
-
190
182
  body {
191
183
  @apply font-sans bg-background text-foreground;
192
184
  }
@@ -750,7 +742,7 @@
750
742
  * Used for: tooltips, hover cards
751
743
  * Highest interactive layer to ensure tooltips appear above all UI
752
744
  */
753
- --z-tooltip: 70;
745
+ --z-tooltip: 9998;
754
746
 
755
747
  /* Debug layer - debug tools (development only)
756
748
  * Used for: debug panels, debug overlays, development tools
@@ -861,8 +853,8 @@
861
853
  /* Sidebar */
862
854
  --sidebar: oklch(0.985 0 0);
863
855
  --sidebar-foreground: oklch(0.145 0 0);
864
- --sidebar-primary: oklch(0.546 0.245 262.881);
865
- --sidebar-primary-foreground: oklch(0.97 0.014 254.604);
856
+ --sidebar-primary: var(--primary);
857
+ --sidebar-primary-foreground: var(--primary-foreground);
866
858
  --sidebar-accent: oklch(0.96 0 0);
867
859
  --sidebar-accent-foreground: oklch(0.205 0 0);
868
860
  --sidebar-border: oklch(0.922 0 0);
@@ -969,8 +961,8 @@
969
961
  /* Sidebar for dark mode */
970
962
  --sidebar: oklch(0.205 0 0);
971
963
  --sidebar-foreground: oklch(0.985 0 0);
972
- --sidebar-primary: oklch(0.623 0.214 259.815);
973
- --sidebar-primary-foreground: oklch(0.97 0.014 254.604);
964
+ --sidebar-primary: var(--primary);
965
+ --sidebar-primary-foreground: var(--primary-foreground);
974
966
  --sidebar-accent: oklch(0.269 0 0);
975
967
  --sidebar-accent-foreground: oklch(0.985 0 0);
976
968
  --sidebar-border: oklch(1 0 0 / 10%);
@@ -0,0 +1,119 @@
1
+ # nqui Component Instructions
2
+
3
+ Implementation guides for each component. Optimized for AI/LLM consumption.
4
+
5
+ **Import:** `import { X } from "@nqlib/nqui"`
6
+ **CSS:** `@import "@nqlib/nqui/styles"` (via `npx @nqlib/nqui init-css`)
7
+
8
+ ## Prerequisites (must-have)
9
+
10
+ | Dependency | Version | Notes |
11
+ |------------|---------|-------|
12
+ | **Tailwind CSS** | ^4.x | Required. Vite: add `@tailwindcss/vite` plugin. Next.js: use `@source` directives in CSS. |
13
+ | **React** | 18+ | Peer dependency. |
14
+ | **tw-animate-css** | — | `@import "tw-animate-css"` in your CSS (added by init-css). |
15
+ | **Radix UI** | — | Bundled with nqui (Dialog, Select, etc.). |
16
+
17
+ Optional peer deps (for specific components): `react-day-picker` (Calendar), `sonner` (Toaster), `react-resizable-panels` (Resizable), `shiki` (CodeBlock), `@codesandbox/sandpack-react` (Sandbox).
18
+
19
+ ## Shared Notes
20
+
21
+ - **CSS vars required:** nqui components use `--primary`, `--background`, `--foreground`, etc. Run `npx @nqlib/nqui init-css`.
22
+ - **Enhanced vs Core:** Button, Badge, Checkbox, Select, etc. default to enhanced (3D, animations). Use `CoreButton`, `CoreBadge`, etc. for base shadcn.
23
+ - **Style injection:** Checkbox, Rating, Combobox inject `<style>` at mount. Use client-only guard for SSR.
24
+ - **OKLCH:** ColorPicker uses OKLCH strings (`oklch(0.5 0.15 240)`), not hex.
25
+ - **SidebarProvider:** Must wrap entire layout (sidebar + content), not just Sidebar.
26
+
27
+ ## Buttons & Actions
28
+ | Component | File |
29
+ |-----------|------|
30
+ | Button | [nqui-button.md](./nqui-button.md) |
31
+ | ButtonGroup | [nqui-button-group.md](./nqui-button-group.md) |
32
+ | Toggle | [nqui-toggle.md](./nqui-toggle.md) |
33
+ | ToggleGroup | [nqui-toggle-group.md](./nqui-toggle-group.md) |
34
+ | SegmentedControl | [nqui-segmented-control.md](./nqui-segmented-control.md) |
35
+
36
+ ## Forms
37
+ | Component | File |
38
+ |-----------|------|
39
+ | Input | [nqui-input.md](./nqui-input.md) |
40
+ | InputGroup | [nqui-input-group.md](./nqui-input-group.md) |
41
+ | Textarea | [nqui-textarea.md](./nqui-textarea.md) |
42
+ | Select | [nqui-select.md](./nqui-select.md) |
43
+ | NativeSelect | [nqui-native-select.md](./nqui-native-select.md) |
44
+ | Checkbox | [nqui-checkbox.md](./nqui-checkbox.md) |
45
+ | RadioGroup | [nqui-radio-group.md](./nqui-radio-group.md) |
46
+ | Switch | [nqui-switch.md](./nqui-switch.md) |
47
+ | Slider | [nqui-slider.md](./nqui-slider.md) |
48
+ | Rating | [nqui-rating.md](./nqui-rating.md) |
49
+ | InputOTP | [nqui-input-otp.md](./nqui-input-otp.md) |
50
+ | Field | [nqui-field.md](./nqui-field.md) |
51
+ | Combobox | [nqui-combobox.md](./nqui-combobox.md) |
52
+ | ColorPicker | [nqui-color-picker.md](./nqui-color-picker.md) |
53
+ | ColorSlider | [nqui-color-slider.md](./nqui-color-slider.md) |
54
+ | Label | [nqui-label.md](./nqui-label.md) |
55
+
56
+ ## Display
57
+ | Component | File |
58
+ |-----------|------|
59
+ | Badge | [nqui-badge.md](./nqui-badge.md) |
60
+ | Avatar | [nqui-avatar.md](./nqui-avatar.md) |
61
+ | Alert | [nqui-alert.md](./nqui-alert.md) |
62
+ | Empty | [nqui-empty.md](./nqui-empty.md) |
63
+ | Skeleton | [nqui-skeleton.md](./nqui-skeleton.md) |
64
+ | Spinner | [nqui-spinner.md](./nqui-spinner.md) |
65
+ | Progress | [nqui-progress.md](./nqui-progress.md) |
66
+ | Separator | [nqui-separator.md](./nqui-separator.md) |
67
+ | Card | [nqui-card.md](./nqui-card.md) |
68
+ | Item | [nqui-item.md](./nqui-item.md) |
69
+ | Kbd | [nqui-kbd.md](./nqui-kbd.md) |
70
+ | Tracker | [nqui-tracker.md](./nqui-tracker.md) |
71
+ | FrostedGlass | [nqui-frosted-glass.md](./nqui-frosted-glass.md) |
72
+ | NquiLogo | [nqui-logo.md](./nqui-logo.md) |
73
+
74
+ ## Navigation & Menus
75
+ | Component | File |
76
+ |-----------|------|
77
+ | Breadcrumb | [nqui-breadcrumb.md](./nqui-breadcrumb.md) |
78
+ | Tabs | [nqui-tabs.md](./nqui-tabs.md) |
79
+ | DropdownMenu | [nqui-dropdown-menu.md](./nqui-dropdown-menu.md) |
80
+ | ContextMenu | [nqui-context-menu.md](./nqui-context-menu.md) |
81
+ | Menubar | [nqui-menubar.md](./nqui-menubar.md) |
82
+ | NavigationMenu | [nqui-navigation-menu.md](./nqui-navigation-menu.md) |
83
+ | Pagination | [nqui-pagination.md](./nqui-pagination.md) |
84
+ | Command | [nqui-command.md](./nqui-command.md) |
85
+ | CommandPalette | [nqui-command-palette.md](./nqui-command-palette.md) |
86
+ | TableOfContents | [nqui-table-of-contents.md](./nqui-table-of-contents.md) |
87
+
88
+ ## Overlays & Dialogs
89
+ | Component | File |
90
+ |-----------|------|
91
+ | Dialog | [nqui-dialog.md](./nqui-dialog.md) |
92
+ | AlertDialog | [nqui-alert-dialog.md](./nqui-alert-dialog.md) |
93
+ | Drawer | [nqui-drawer.md](./nqui-drawer.md) |
94
+ | Sheet | [nqui-sheet.md](./nqui-sheet.md) |
95
+ | Popover | [nqui-popover.md](./nqui-popover.md) |
96
+ | HoverCard | [nqui-hover-card.md](./nqui-hover-card.md) |
97
+ | Tooltip | [nqui-tooltip.md](./nqui-tooltip.md) |
98
+ | Toaster | [nqui-toaster.md](./nqui-toaster.md) |
99
+
100
+ ## Layout
101
+ | Component | File |
102
+ |-----------|------|
103
+ | Accordion | [nqui-accordion.md](./nqui-accordion.md) |
104
+ | Collapsible | [nqui-collapsible.md](./nqui-collapsible.md) |
105
+ | ScrollArea | [nqui-scroll-area.md](./nqui-scroll-area.md) |
106
+ | AspectRatio | [nqui-aspect-ratio.md](./nqui-aspect-ratio.md) |
107
+ | Carousel | [nqui-carousel.md](./nqui-carousel.md) |
108
+ | Resizable | [nqui-resizable.md](./nqui-resizable.md) |
109
+ | Sidebar | [nqui-sidebar.md](./nqui-sidebar.md) |
110
+ | Sortable | [nqui-sortable.md](./nqui-sortable.md) |
111
+
112
+ ## Advanced
113
+ | Component | File |
114
+ |-----------|------|
115
+ | Calendar | [nqui-calendar.md](./nqui-calendar.md) |
116
+ | CodeBlock | [nqui-code-block.md](./nqui-code-block.md) |
117
+ | CodeEditor | [nqui-code-editor.md](./nqui-code-editor.md) |
118
+ | Sandbox | [nqui-sandbox.md](./nqui-sandbox.md) |
119
+ | Snippet | [nqui-snippet.md](./nqui-snippet.md) |
@@ -0,0 +1,20 @@
1
+ # nqui Accordion
2
+
3
+ > Collapsible accordion. type: single|multiple, collapsible.
4
+
5
+ ## Import
6
+
7
+ ```tsx
8
+ import { Accordion, AccordionItem, AccordionTrigger, AccordionContent } from "@nqlib/nqui"
9
+ ```
10
+
11
+ ## Basic
12
+
13
+ ```tsx
14
+ <Accordion type="single" collapsible>
15
+ <AccordionItem value="1">
16
+ <AccordionTrigger>Header</AccordionTrigger>
17
+ <AccordionContent>Content</AccordionContent>
18
+ </AccordionItem>
19
+ </Accordion>
20
+ ```
@@ -0,0 +1,31 @@
1
+ # nqui AlertDialog
2
+
3
+ > Confirmation dialog. AlertDialogTrigger, AlertDialogContent, AlertDialogHeader, AlertDialogFooter, AlertDialogTitle, AlertDialogDescription, AlertDialogAction, AlertDialogCancel.
4
+
5
+ ## Import
6
+
7
+ ```tsx
8
+ import {
9
+ AlertDialog, AlertDialogTrigger, AlertDialogContent,
10
+ AlertDialogHeader, AlertDialogFooter, AlertDialogTitle,
11
+ AlertDialogDescription, AlertDialogAction, AlertDialogCancel
12
+ } from "@nqlib/nqui"
13
+ ```
14
+
15
+ ## Basic
16
+
17
+ ```tsx
18
+ <AlertDialog>
19
+ <AlertDialogTrigger asChild><Button>Delete</Button></AlertDialogTrigger>
20
+ <AlertDialogContent>
21
+ <AlertDialogHeader>
22
+ <AlertDialogTitle>Confirm</AlertDialogTitle>
23
+ <AlertDialogDescription>Are you sure?</AlertDialogDescription>
24
+ </AlertDialogHeader>
25
+ <AlertDialogFooter>
26
+ <AlertDialogCancel>Cancel</AlertDialogCancel>
27
+ <AlertDialogAction>Confirm</AlertDialogAction>
28
+ </AlertDialogFooter>
29
+ </AlertDialogContent>
30
+ </AlertDialog>
31
+ ```
@@ -0,0 +1,19 @@
1
+ # nqui Alert
2
+
3
+ > Alert banner. Title, description, action.
4
+
5
+ ## Import
6
+
7
+ ```tsx
8
+ import { Alert, AlertTitle, AlertDescription, AlertAction } from "@nqlib/nqui"
9
+ ```
10
+
11
+ ## Basic
12
+
13
+ ```tsx
14
+ <Alert>
15
+ <AlertTitle>Title</AlertTitle>
16
+ <AlertDescription>Description</AlertDescription>
17
+ <AlertAction asChild><Button>Action</Button></AlertAction>
18
+ </Alert>
19
+ ```
@@ -0,0 +1,17 @@
1
+ # nqui AspectRatio
2
+
3
+ > Fixed aspect ratio container.
4
+
5
+ ## Import
6
+
7
+ ```tsx
8
+ import { AspectRatio } from "@nqlib/nqui"
9
+ ```
10
+
11
+ ## Basic
12
+
13
+ ```tsx
14
+ <AspectRatio ratio={16/9}>
15
+ <img src="..." alt="..." />
16
+ </AspectRatio>
17
+ ```
@@ -0,0 +1,18 @@
1
+ # nqui Avatar
2
+
3
+ > User avatar. Image + fallback.
4
+
5
+ ## Import
6
+
7
+ ```tsx
8
+ import { Avatar, AvatarImage, AvatarFallback } from "@nqlib/nqui"
9
+ ```
10
+
11
+ ## Basic
12
+
13
+ ```tsx
14
+ <Avatar>
15
+ <AvatarImage src="/url" alt="Name" />
16
+ <AvatarFallback>AB</AvatarFallback>
17
+ </Avatar>
18
+ ```
@@ -0,0 +1,42 @@
1
+ # nqui Badge
2
+
3
+ > Status labels. 9 variants; ghost/link use CoreBadge.
4
+
5
+ ## Import
6
+
7
+ ```tsx
8
+ import { Badge } from "@nqlib/nqui"
9
+ ```
10
+
11
+ ## Basic
12
+
13
+ ```tsx
14
+ <Badge>New</Badge>
15
+ <Badge variant="destructive">Error</Badge>
16
+ <Badge variant="secondary">Draft</Badge>
17
+ ```
18
+
19
+ ## All Variants
20
+
21
+ ```tsx
22
+ <Badge variant="default" />
23
+ <Badge variant="secondary" />
24
+ <Badge variant="destructive" />
25
+ <Badge variant="success" />
26
+ <Badge variant="warning" />
27
+ <Badge variant="info" />
28
+ <Badge variant="outline" />
29
+ <Badge variant="ghost" />
30
+ <Badge variant="link" />
31
+ ```
32
+
33
+ ## asChild
34
+
35
+ ```tsx
36
+ <Badge asChild><a href="#">Link badge</a></Badge>
37
+ ```
38
+
39
+ ## Notes
40
+
41
+ - ghost/link route to CoreBadge (different styling).
42
+ - Use `CoreBadge` for plain shadcn badge.
@@ -0,0 +1,24 @@
1
+ # nqui Breadcrumb
2
+
3
+ > Breadcrumb nav. List, item, link, page, separator, ellipsis.
4
+
5
+ ## Import
6
+
7
+ ```tsx
8
+ import {
9
+ Breadcrumb, BreadcrumbList, BreadcrumbItem, BreadcrumbLink,
10
+ BreadcrumbPage, BreadcrumbSeparator, BreadcrumbEllipsis
11
+ } from "@nqlib/nqui"
12
+ ```
13
+
14
+ ## Basic
15
+
16
+ ```tsx
17
+ <Breadcrumb>
18
+ <BreadcrumbList>
19
+ <BreadcrumbItem><BreadcrumbLink href="/">Home</BreadcrumbLink></BreadcrumbItem>
20
+ <BreadcrumbSeparator />
21
+ <BreadcrumbItem><BreadcrumbPage>Current</BreadcrumbPage></BreadcrumbItem>
22
+ </BreadcrumbList>
23
+ </Breadcrumb>
24
+ ```
@@ -0,0 +1,31 @@
1
+ # nqui ButtonGroup
2
+
3
+ > Grouped buttons with separators.
4
+
5
+ ## Import
6
+
7
+ ```tsx
8
+ import { ButtonGroup, ButtonGroupSeparator, ButtonGroupText } from "@nqlib/nqui"
9
+ ```
10
+
11
+ ## Basic
12
+
13
+ ```tsx
14
+ <ButtonGroup>
15
+ <Button variant="outline">Left</Button>
16
+ <ButtonGroupSeparator />
17
+ <Button variant="outline">Right</Button>
18
+ </ButtonGroup>
19
+ ```
20
+
21
+ ## ButtonGroupText
22
+
23
+ ```tsx
24
+ <ButtonGroup>
25
+ <Button variant="outline"><Icon /></Button>
26
+ <ButtonGroupSeparator />
27
+ <ButtonGroupText>Label</ButtonGroupText>
28
+ <ButtonGroupSeparator />
29
+ <Button variant="outline"><Icon /></Button>
30
+ </ButtonGroup>
31
+ ```
@@ -0,0 +1,56 @@
1
+ # nqui Button
2
+
3
+ > Enhanced button with 9 variants, gradients, active scale. Default import is EnhancedButton.
4
+
5
+ ## Import
6
+
7
+ ```tsx
8
+ import { Button } from "@nqlib/nqui"
9
+ ```
10
+
11
+ ## Basic
12
+
13
+ ```tsx
14
+ <Button>Click</Button>
15
+ <Button variant="destructive">Delete</Button>
16
+ ```
17
+
18
+ ## Variants
19
+
20
+ | variant | Notes |
21
+ |---------|-------|
22
+ | default, destructive, secondary | Enhanced 3D |
23
+ | success, warning, info | Semantic |
24
+ | outline, ghost, link | Core fallback |
25
+ | sm, default, lg, icon | size |
26
+
27
+ ```tsx
28
+ <Button variant="success">Save</Button>
29
+ <Button variant="warning">Caution</Button>
30
+ <Button variant="info">Info</Button>
31
+ <Button size="icon"><Icon /></Button>
32
+ ```
33
+
34
+ ## asChild
35
+
36
+ Render as `<a>` or custom element:
37
+
38
+ ```tsx
39
+ <Button asChild>
40
+ <a href="/page">Link</a>
41
+ </Button>
42
+ ```
43
+
44
+ ## Loading
45
+
46
+ ```tsx
47
+ <Button disabled>
48
+ <Spinner className="mr-2 size-4" />
49
+ Loading...
50
+ </Button>
51
+ ```
52
+
53
+ ## Notes
54
+
55
+ - Active state uses `scale-95`; avoid parent `transform` overrides.
56
+ - Use `CoreButton` from `@nqlib/nqui` for base shadcn style.
@@ -0,0 +1,46 @@
1
+ # nqui Calendar
2
+
3
+ > Date picker. Single, range, multiple. Touch drag, hover preview (enhanced).
4
+
5
+ ## Import
6
+
7
+ ```tsx
8
+ import { Calendar } from "@nqlib/nqui"
9
+ import type { DateRange } from "react-day-picker"
10
+ ```
11
+
12
+ ## Basic
13
+
14
+ ```tsx
15
+ <Calendar mode="single" selected={date} onSelect={setDate} />
16
+ ```
17
+
18
+ ## Range
19
+
20
+ ```tsx
21
+ <Calendar mode="range" selected={range} onSelect={setRange} />
22
+ ```
23
+
24
+ ## Multiple
25
+
26
+ ```tsx
27
+ <Calendar mode="multiple" selected={dates} onSelect={setDates} />
28
+ ```
29
+
30
+ ## numberOfMonths
31
+
32
+ ```tsx
33
+ <Calendar numberOfMonths={2} />
34
+ ```
35
+
36
+ ## Disabled
37
+
38
+ ```tsx
39
+ <Calendar disabled={(d) => d < new Date()} />
40
+ ```
41
+
42
+ ## Notes
43
+
44
+ - Peer: `react-day-picker` v9+.
45
+ - Enhanced: touch drag selection, hover preview on drag.
46
+ - Footer slot for custom footer.
@@ -0,0 +1,31 @@
1
+ # nqui Card
2
+
3
+ > Container. Header, content, footer. Optional stickyHeader.
4
+
5
+ ## Import
6
+
7
+ ```tsx
8
+ import { Card, CardHeader, CardTitle, CardDescription, CardContent, CardFooter } from "@nqlib/nqui"
9
+ ```
10
+
11
+ ## Basic
12
+
13
+ ```tsx
14
+ <Card>
15
+ <CardHeader>
16
+ <CardTitle>Title</CardTitle>
17
+ <CardDescription>Description</CardDescription>
18
+ </CardHeader>
19
+ <CardContent>Body</CardContent>
20
+ <CardFooter>Footer</CardFooter>
21
+ </Card>
22
+ ```
23
+
24
+ ## Sticky Header
25
+
26
+ ```tsx
27
+ <Card stickyHeader className="h-[400px]">
28
+ <CardHeader>...</CardHeader>
29
+ <CardContent>Scrollable content</CardContent>
30
+ </Card>
31
+ ```
@@ -0,0 +1,22 @@
1
+ # nqui Carousel
2
+
3
+ > Carousel. CarouselContent, CarouselItem, CarouselPrevious, CarouselNext.
4
+
5
+ ## Import
6
+
7
+ ```tsx
8
+ import { Carousel, CarouselContent, CarouselItem, CarouselPrevious, CarouselNext } from "@nqlib/nqui"
9
+ ```
10
+
11
+ ## Basic
12
+
13
+ ```tsx
14
+ <Carousel>
15
+ <CarouselContent>
16
+ <CarouselItem>Slide 1</CarouselItem>
17
+ <CarouselItem>Slide 2</CarouselItem>
18
+ </CarouselContent>
19
+ <CarouselPrevious />
20
+ <CarouselNext />
21
+ </Carousel>
22
+ ```
@@ -0,0 +1,34 @@
1
+ # nqui Checkbox
2
+
3
+ > Enhanced checkbox. Variants: square (default), round (gooey animation).
4
+
5
+ ## Import
6
+
7
+ ```tsx
8
+ import { Checkbox } from "@nqlib/nqui"
9
+ ```
10
+
11
+ ## Basic
12
+
13
+ ```tsx
14
+ <Checkbox checked={checked} onCheckedChange={setChecked} />
15
+ ```
16
+
17
+ ## Variants
18
+
19
+ ```tsx
20
+ <Checkbox variant="square" />
21
+ <Checkbox variant="round" />
22
+ ```
23
+
24
+ ## Indeterminate
25
+
26
+ ```tsx
27
+ <Checkbox checked="indeterminate" onCheckedChange={...} />
28
+ ```
29
+
30
+ ## Notes
31
+
32
+ - Injects `<style>` at mount. Use client-only guard for SSR.
33
+ - Round variant uses SVG filter; requires no parent `filter` override.
34
+ - Use `CoreCheckbox` for plain Radix checkbox.
@@ -0,0 +1,39 @@
1
+ # nqui CodeBlock
2
+
3
+ > Syntax-highlighted code. Multi-file tabs, copy button. Peer: shiki.
4
+
5
+ ## Import
6
+
7
+ ```tsx
8
+ import {
9
+ CodeBlock, CodeBlockHeader, CodeBlockFiles, CodeBlockFilename,
10
+ CodeBlockCopyButton, CodeBlockBody, CodeBlockItem, CodeBlockContent
11
+ } from "@nqlib/nqui"
12
+ ```
13
+
14
+ ## Basic
15
+
16
+ ```tsx
17
+ <CodeBlock defaultValue="ts" data={[{ language: "ts", filename: "x.ts", code: "..." }]}>
18
+ <CodeBlockHeader>
19
+ <CodeBlockFiles>
20
+ {(item) => <CodeBlockFilename value={item.language}>{item.filename}</CodeBlockFilename>}
21
+ </CodeBlockFiles>
22
+ <CodeBlockCopyButton />
23
+ </CodeBlockHeader>
24
+ <CodeBlockBody>
25
+ {(item) => (
26
+ <CodeBlockItem value={item.language}>
27
+ <CodeBlockContent language={item.language} syntaxHighlighting>
28
+ {item.code}
29
+ </CodeBlockContent>
30
+ </CodeBlockItem>
31
+ )}
32
+ </CodeBlockBody>
33
+ </CodeBlock>
34
+ ```
35
+
36
+ ## Notes
37
+
38
+ - Peer: shiki. Optional for syntax highlighting.
39
+ - CodeBlockContentServer for SSR.
@@ -0,0 +1,21 @@
1
+ # nqui CodeEditor
2
+
3
+ > Animated code editor. Client-side only.
4
+
5
+ ## Import
6
+
7
+ ```tsx
8
+ import { CodeEditor } from "@nqlib/nqui"
9
+ ```
10
+
11
+ ## Basic
12
+
13
+ ```tsx
14
+ <CodeEditor lang="typescript" header dots title="file.ts" copyButton>
15
+ {`const x = 1`}
16
+ </CodeEditor>
17
+ ```
18
+
19
+ ## Notes
20
+
21
+ - Client-only. Use dynamic import with ssr: false in Next.js.
@@ -0,0 +1,18 @@
1
+ # nqui Collapsible
2
+
3
+ > Toggle content visibility. CollapsibleTrigger, CollapsibleContent.
4
+
5
+ ## Import
6
+
7
+ ```tsx
8
+ import { Collapsible, CollapsibleTrigger, CollapsibleContent } from "@nqlib/nqui"
9
+ ```
10
+
11
+ ## Basic
12
+
13
+ ```tsx
14
+ <Collapsible open={open} onOpenChange={setOpen}>
15
+ <CollapsibleTrigger asChild><Button>Toggle</Button></CollapsibleTrigger>
16
+ <CollapsibleContent>Content</CollapsibleContent>
17
+ </Collapsible>
18
+ ```