@nqlib/nqui 0.3.2 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (475) hide show
  1. package/README.md +26 -3
  2. package/dist/button-CYFTFDKe.cjs +1 -0
  3. package/dist/button-nJvDl3w8.js +44 -0
  4. package/dist/calendar.cjs.js +1 -0
  5. package/dist/calendar.es.js +6 -0
  6. package/dist/carousel-DEyyJi49.js +179 -0
  7. package/dist/carousel-Dhhz8m5V.cjs +1 -0
  8. package/dist/carousel.cjs.js +1 -0
  9. package/dist/carousel.es.js +8 -0
  10. package/dist/command-palette-UHk8zZOg.cjs +45 -0
  11. package/dist/command-palette-d-TrdBsM.js +1778 -0
  12. package/dist/command.cjs.js +1 -0
  13. package/dist/command.es.js +13 -0
  14. package/dist/components/custom/color-picker.d.ts.map +1 -1
  15. package/dist/components/custom/command-palette.d.ts.map +1 -1
  16. package/dist/components/custom/enhanced-checkbox.d.ts +1 -1
  17. package/dist/components/custom/enhanced-checkbox.d.ts.map +1 -1
  18. package/dist/components/custom/enhanced-combobox.d.ts +1 -1
  19. package/dist/components/custom/enhanced-combobox.d.ts.map +1 -1
  20. package/dist/components/custom/enhanced-radio-group.d.ts.map +1 -1
  21. package/dist/components/custom/enhanced-scroll-area.d.ts +12 -0
  22. package/dist/components/custom/enhanced-scroll-area.d.ts.map +1 -1
  23. package/dist/components/custom/enhanced-tabs.d.ts.map +1 -1
  24. package/dist/components/debug/debug-panel.d.ts.map +1 -1
  25. package/dist/components/debug/magnifier.d.ts.map +1 -1
  26. package/dist/components/debug/ui-tester.d.ts.map +1 -1
  27. package/dist/components/ui/breadcrumb.d.ts.map +1 -1
  28. package/dist/components/ui/button-group.d.ts.map +1 -1
  29. package/dist/components/ui/checkbox.d.ts.map +1 -1
  30. package/dist/components/ui/combobox.d.ts +1 -1
  31. package/dist/components/ui/combobox.d.ts.map +1 -1
  32. package/dist/components/ui/dropdown-menu.d.ts.map +1 -1
  33. package/dist/components/ui/item.d.ts +1 -1
  34. package/dist/components/ui/separator.d.ts +34 -1
  35. package/dist/components/ui/separator.d.ts.map +1 -1
  36. package/dist/components/ui/sheet.d.ts.map +1 -1
  37. package/dist/components/ui/sidebar.d.ts +1 -1
  38. package/dist/components/ui/sidebar.d.ts.map +1 -1
  39. package/dist/components/ui/toggle-group.d.ts +8 -2
  40. package/dist/components/ui/toggle-group.d.ts.map +1 -1
  41. package/dist/components/ui/toggle.d.ts +1 -1
  42. package/dist/components/ui/toggle.d.ts.map +1 -1
  43. package/dist/components/ui/tooltip.d.ts.map +1 -1
  44. package/dist/drawer-BcIxWRN8.cjs +1 -0
  45. package/dist/drawer-CU4lkcz7.js +119 -0
  46. package/dist/drawer.cjs.js +1 -0
  47. package/dist/drawer.es.js +13 -0
  48. package/dist/enhanced-calendar-5PA8CeF7.cjs +61 -0
  49. package/dist/enhanced-calendar-BENbxw7_.js +375 -0
  50. package/dist/entries/calendar.d.ts +9 -0
  51. package/dist/entries/calendar.d.ts.map +1 -0
  52. package/dist/entries/carousel.d.ts +7 -0
  53. package/dist/entries/carousel.d.ts.map +1 -0
  54. package/dist/entries/command.d.ts +9 -0
  55. package/dist/entries/command.d.ts.map +1 -0
  56. package/dist/entries/drawer.d.ts +7 -0
  57. package/dist/entries/drawer.d.ts.map +1 -0
  58. package/dist/entries/sonner.d.ts +8 -0
  59. package/dist/entries/sonner.d.ts.map +1 -0
  60. package/dist/entries/sortable.d.ts +7 -0
  61. package/dist/entries/sortable.d.ts.map +1 -0
  62. package/dist/hooks/index.d.ts +2 -3
  63. package/dist/hooks/index.d.ts.map +1 -1
  64. package/dist/hooks/use-as-ref.d.ts +1 -1
  65. package/dist/hooks/use-as-ref.d.ts.map +1 -1
  66. package/dist/hooks/use-intersection-observer.d.ts +13 -0
  67. package/dist/hooks/use-intersection-observer.d.ts.map +1 -0
  68. package/dist/index.d.ts +13 -37
  69. package/dist/index.d.ts.map +1 -1
  70. package/dist/keyboard-BapbM2wb.cjs +1 -0
  71. package/dist/keyboard-pkY42Y3a.js +39 -0
  72. package/dist/nqui.cjs.js +171 -802
  73. package/dist/nqui.es.js +15299 -72452
  74. package/dist/sonner-Co6YpYVs.js +546 -0
  75. package/dist/sonner-DbQhVp8m.cjs +330 -0
  76. package/dist/sonner.cjs.js +1 -0
  77. package/dist/sonner.es.js +6 -0
  78. package/dist/sortable-Cj3cdxGc.cjs +5 -0
  79. package/dist/sortable-wG_cXiUk.js +366 -0
  80. package/dist/sortable.cjs.js +1 -0
  81. package/dist/sortable.es.js +8 -0
  82. package/dist/styles.css +21 -17
  83. package/dist/utils-B6yFEsav.js +8 -0
  84. package/dist/utils-IjLH3w2e.cjs +1 -0
  85. package/docs/components/README.md +309 -0
  86. package/docs/components/nqui-accordion.md +20 -0
  87. package/docs/components/nqui-alert-dialog.md +31 -0
  88. package/docs/components/nqui-alert.md +19 -0
  89. package/docs/components/nqui-aspect-ratio.md +17 -0
  90. package/docs/components/nqui-avatar.md +18 -0
  91. package/docs/components/nqui-badge.md +42 -0
  92. package/docs/components/nqui-breadcrumb.md +24 -0
  93. package/docs/components/nqui-button-group.md +50 -0
  94. package/docs/components/nqui-button.md +56 -0
  95. package/docs/components/nqui-calendar.md +46 -0
  96. package/docs/components/nqui-card.md +31 -0
  97. package/docs/components/nqui-carousel.md +22 -0
  98. package/docs/components/nqui-checkbox.md +34 -0
  99. package/docs/components/nqui-code-block.md +41 -0
  100. package/docs/components/nqui-code-editor.md +21 -0
  101. package/docs/components/nqui-collapsible.md +18 -0
  102. package/docs/components/nqui-color-picker.md +38 -0
  103. package/docs/components/nqui-color-slider.md +23 -0
  104. package/docs/components/nqui-combobox.md +73 -0
  105. package/docs/components/nqui-command-palette.md +29 -0
  106. package/docs/components/nqui-command.md +39 -0
  107. package/docs/components/nqui-context-menu.md +33 -0
  108. package/docs/components/nqui-data-table.md +46 -0
  109. package/docs/components/nqui-dialog.md +36 -0
  110. package/docs/components/nqui-drawer.md +27 -0
  111. package/docs/components/nqui-dropdown-menu.md +56 -0
  112. package/docs/components/nqui-empty.md +22 -0
  113. package/docs/components/nqui-field.md +42 -0
  114. package/docs/components/nqui-frosted-glass.md +19 -0
  115. package/docs/components/nqui-hover-card.md +18 -0
  116. package/docs/components/nqui-input-group.md +30 -0
  117. package/docs/components/nqui-input-otp.md +23 -0
  118. package/docs/components/nqui-input.md +25 -0
  119. package/docs/components/nqui-item.md +25 -0
  120. package/docs/components/nqui-kbd.md +25 -0
  121. package/docs/components/nqui-label.md +16 -0
  122. package/docs/components/nqui-logo.md +16 -0
  123. package/docs/components/nqui-menubar.md +22 -0
  124. package/docs/components/nqui-native-select.md +28 -0
  125. package/docs/components/nqui-navigation-menu.md +25 -0
  126. package/docs/components/nqui-pagination.md +25 -0
  127. package/docs/components/nqui-popover.md +34 -0
  128. package/docs/components/nqui-progress.md +22 -0
  129. package/docs/components/nqui-radio-group.md +42 -0
  130. package/docs/components/nqui-rating.md +35 -0
  131. package/docs/components/nqui-resizable.md +23 -0
  132. package/docs/components/nqui-sandbox.md +27 -0
  133. package/docs/components/nqui-scroll-area.md +32 -0
  134. package/docs/components/nqui-select.md +53 -0
  135. package/docs/components/nqui-separator.md +48 -0
  136. package/docs/components/nqui-sheet.md +27 -0
  137. package/docs/components/nqui-sidebar.md +45 -0
  138. package/docs/components/nqui-skeleton.md +15 -0
  139. package/docs/components/nqui-slider.md +16 -0
  140. package/docs/components/nqui-snippet.md +28 -0
  141. package/docs/components/nqui-sortable.md +46 -0
  142. package/docs/components/nqui-spinner.md +16 -0
  143. package/docs/components/nqui-switch.md +15 -0
  144. package/docs/components/nqui-table-of-contents.md +37 -0
  145. package/docs/components/nqui-table.md +43 -0
  146. package/docs/components/nqui-tabs.md +35 -0
  147. package/docs/components/nqui-textarea.md +15 -0
  148. package/docs/components/nqui-toaster.md +44 -0
  149. package/docs/components/nqui-toggle-group.md +65 -0
  150. package/docs/components/nqui-toggle.md +38 -0
  151. package/docs/components/nqui-tooltip.md +24 -0
  152. package/docs/components/nqui-tracker.md +38 -0
  153. package/docs/internal-notes/APP_BUILDER_PACKAGE.md +86 -0
  154. package/docs/internal-notes/BUILD_VERIFICATION.md +174 -0
  155. package/docs/internal-notes/DASHBOARD_LAYOUT_DESIGN.md +1429 -0
  156. package/docs/internal-notes/FROSTED_GLASS_FIX.md +50 -0
  157. package/docs/internal-notes/INSTALLATION.md +274 -0
  158. package/docs/internal-notes/PEER_DEPENDENCIES.md +105 -0
  159. package/docs/internal-notes/PUBLISHING.md +411 -0
  160. package/docs/internal-notes/SKILLS-ARCHITECTURE.md +105 -0
  161. package/docs/internal-notes/layoutdesign.md +616 -0
  162. package/docs/internal-notes/progress.md +348 -0
  163. package/docs/internal-notes/stacked-avatar-implementation.md +38 -0
  164. package/package.json +104 -17
  165. package/scripts/cli.js +44 -0
  166. package/scripts/help.js +1 -0
  167. package/scripts/init-css.js +15 -0
  168. package/scripts/init-cursor.js +169 -0
  169. package/scripts/install-peers.js +43 -0
  170. package/scripts/peer-deps.js +27 -0
  171. package/scripts/post-install.js +73 -0
  172. package/scripts/publish-npmjs.js +17 -3
  173. package/scripts/resolve-target-dir.js +99 -0
  174. package/scripts/skill-templates.js +109 -0
  175. package/INSTALLATION.md +0 -221
  176. package/dist/App.d.ts +0 -3
  177. package/dist/App.d.ts.map +0 -1
  178. package/dist/assets/svg/auth-lines.d.ts +0 -4
  179. package/dist/assets/svg/auth-lines.d.ts.map +0 -1
  180. package/dist/assets/svg/logo.d.ts +0 -4
  181. package/dist/assets/svg/logo.d.ts.map +0 -1
  182. package/dist/components/AppLayout.d.ts +0 -5
  183. package/dist/components/AppLayout.d.ts.map +0 -1
  184. package/dist/components/app-builder/AppBuilder.d.ts +0 -15
  185. package/dist/components/app-builder/AppBuilder.d.ts.map +0 -1
  186. package/dist/components/app-builder/context/app-builder-context.d.ts +0 -31
  187. package/dist/components/app-builder/context/app-builder-context.d.ts.map +0 -1
  188. package/dist/components/app-builder/core/AlignmentToolbar.d.ts +0 -5
  189. package/dist/components/app-builder/core/AlignmentToolbar.d.ts.map +0 -1
  190. package/dist/components/app-builder/core/AppCanvas.d.ts +0 -9
  191. package/dist/components/app-builder/core/AppCanvas.d.ts.map +0 -1
  192. package/dist/components/app-builder/core/CanvasToolbar.d.ts +0 -7
  193. package/dist/components/app-builder/core/CanvasToolbar.d.ts.map +0 -1
  194. package/dist/components/app-builder/core/DraggableWidget.d.ts +0 -12
  195. package/dist/components/app-builder/core/DraggableWidget.d.ts.map +0 -1
  196. package/dist/components/app-builder/core/WidgetConfigurator.d.ts +0 -6
  197. package/dist/components/app-builder/core/WidgetConfigurator.d.ts.map +0 -1
  198. package/dist/components/app-builder/core/WidgetPalette.d.ts +0 -6
  199. package/dist/components/app-builder/core/WidgetPalette.d.ts.map +0 -1
  200. package/dist/components/app-builder/core/WidgetRenderer.d.ts +0 -3
  201. package/dist/components/app-builder/core/WidgetRenderer.d.ts.map +0 -1
  202. package/dist/components/app-builder/core/index.d.ts +0 -8
  203. package/dist/components/app-builder/core/index.d.ts.map +0 -1
  204. package/dist/components/app-builder/essentials/button.d.ts +0 -3
  205. package/dist/components/app-builder/essentials/button.d.ts.map +0 -1
  206. package/dist/components/app-builder/essentials/container.d.ts +0 -3
  207. package/dist/components/app-builder/essentials/container.d.ts.map +0 -1
  208. package/dist/components/app-builder/essentials/index.d.ts +0 -3
  209. package/dist/components/app-builder/essentials/index.d.ts.map +0 -1
  210. package/dist/components/app-builder/hooks/index.d.ts +0 -3
  211. package/dist/components/app-builder/hooks/index.d.ts.map +0 -1
  212. package/dist/components/app-builder/hooks/use-app-builder.d.ts +0 -3
  213. package/dist/components/app-builder/hooks/use-app-builder.d.ts.map +0 -1
  214. package/dist/components/app-builder/hooks/use-canvas-state.d.ts +0 -24
  215. package/dist/components/app-builder/hooks/use-canvas-state.d.ts.map +0 -1
  216. package/dist/components/app-builder/index.d.ts +0 -19
  217. package/dist/components/app-builder/index.d.ts.map +0 -1
  218. package/dist/components/app-builder/registry/create-registry.d.ts +0 -10
  219. package/dist/components/app-builder/registry/create-registry.d.ts.map +0 -1
  220. package/dist/components/app-builder/registry/default-registry.d.ts +0 -6
  221. package/dist/components/app-builder/registry/default-registry.d.ts.map +0 -1
  222. package/dist/components/app-builder/registry/index.d.ts +0 -4
  223. package/dist/components/app-builder/registry/index.d.ts.map +0 -1
  224. package/dist/components/app-builder/registry/registry-helpers.d.ts +0 -22
  225. package/dist/components/app-builder/registry/registry-helpers.d.ts.map +0 -1
  226. package/dist/components/app-builder/types.d.ts +0 -64
  227. package/dist/components/app-builder/types.d.ts.map +0 -1
  228. package/dist/components/app-builder/utils/collision-detection.d.ts +0 -26
  229. package/dist/components/app-builder/utils/collision-detection.d.ts.map +0 -1
  230. package/dist/components/app-builder/utils/index.d.ts +0 -2
  231. package/dist/components/app-builder/utils/index.d.ts.map +0 -1
  232. package/dist/components/app-sidebar.d.ts +0 -4
  233. package/dist/components/app-sidebar.d.ts.map +0 -1
  234. package/dist/components/blocks/chart-compositions/chart-composition-01.d.ts +0 -2
  235. package/dist/components/blocks/chart-compositions/chart-composition-01.d.ts.map +0 -1
  236. package/dist/components/blocks/chart-compositions/chart-composition-02.d.ts +0 -2
  237. package/dist/components/blocks/chart-compositions/chart-composition-02.d.ts.map +0 -1
  238. package/dist/components/blocks/chart-compositions/chart-composition-03.d.ts +0 -2
  239. package/dist/components/blocks/chart-compositions/chart-composition-03.d.ts.map +0 -1
  240. package/dist/components/blocks/chart-compositions/index.d.ts +0 -4
  241. package/dist/components/blocks/chart-compositions/index.d.ts.map +0 -1
  242. package/dist/components/blocks/index.d.ts +0 -3
  243. package/dist/components/blocks/index.d.ts.map +0 -1
  244. package/dist/components/blocks/tables/index.d.ts +0 -4
  245. package/dist/components/blocks/tables/index.d.ts.map +0 -1
  246. package/dist/components/blocks/tables/table-01.d.ts +0 -2
  247. package/dist/components/blocks/tables/table-01.d.ts.map +0 -1
  248. package/dist/components/blocks/tables/table-02.d.ts +0 -2
  249. package/dist/components/blocks/tables/table-02.d.ts.map +0 -1
  250. package/dist/components/blocks/tables/table-03.d.ts +0 -2
  251. package/dist/components/blocks/tables/table-03.d.ts.map +0 -1
  252. package/dist/components/chart/area-chart/AreaChart.d.ts +0 -57
  253. package/dist/components/chart/area-chart/AreaChart.d.ts.map +0 -1
  254. package/dist/components/chart/area-chart/index.d.ts +0 -3
  255. package/dist/components/chart/area-chart/index.d.ts.map +0 -1
  256. package/dist/components/chart/bar-chart/BarChart.d.ts +0 -62
  257. package/dist/components/chart/bar-chart/BarChart.d.ts.map +0 -1
  258. package/dist/components/chart/bar-chart/index.d.ts +0 -3
  259. package/dist/components/chart/bar-chart/index.d.ts.map +0 -1
  260. package/dist/components/chart/bar-list/BarList.d.ts +0 -23
  261. package/dist/components/chart/bar-list/BarList.d.ts.map +0 -1
  262. package/dist/components/chart/bar-list/index.d.ts +0 -3
  263. package/dist/components/chart/bar-list/index.d.ts.map +0 -1
  264. package/dist/components/chart/category-bar/CategoryBar.d.ts +0 -15
  265. package/dist/components/chart/category-bar/CategoryBar.d.ts.map +0 -1
  266. package/dist/components/chart/category-bar/index.d.ts +0 -3
  267. package/dist/components/chart/category-bar/index.d.ts.map +0 -1
  268. package/dist/components/chart/combo-chart/ComboChart.d.ts +0 -67
  269. package/dist/components/chart/combo-chart/ComboChart.d.ts.map +0 -1
  270. package/dist/components/chart/combo-chart/index.d.ts +0 -3
  271. package/dist/components/chart/combo-chart/index.d.ts.map +0 -1
  272. package/dist/components/chart/donut-chart/DonutChart.d.ts +0 -37
  273. package/dist/components/chart/donut-chart/DonutChart.d.ts.map +0 -1
  274. package/dist/components/chart/donut-chart/index.d.ts +0 -3
  275. package/dist/components/chart/donut-chart/index.d.ts.map +0 -1
  276. package/dist/components/chart/index.d.ts +0 -19
  277. package/dist/components/chart/index.d.ts.map +0 -1
  278. package/dist/components/chart/line-chart/LineChart.d.ts +0 -55
  279. package/dist/components/chart/line-chart/LineChart.d.ts.map +0 -1
  280. package/dist/components/chart/line-chart/index.d.ts +0 -3
  281. package/dist/components/chart/line-chart/index.d.ts.map +0 -1
  282. package/dist/components/chart/progress-circle/ProgressCircle.d.ts +0 -92
  283. package/dist/components/chart/progress-circle/ProgressCircle.d.ts.map +0 -1
  284. package/dist/components/chart/progress-circle/index.d.ts +0 -3
  285. package/dist/components/chart/progress-circle/index.d.ts.map +0 -1
  286. package/dist/components/chart/spark-chart/SparkChart.d.ts +0 -40
  287. package/dist/components/chart/spark-chart/SparkChart.d.ts.map +0 -1
  288. package/dist/components/chart/spark-chart/index.d.ts +0 -3
  289. package/dist/components/chart/spark-chart/index.d.ts.map +0 -1
  290. package/dist/components/component-example.d.ts +0 -2
  291. package/dist/components/component-example.d.ts.map +0 -1
  292. package/dist/components/custom/enhanced-separator.d.ts +0 -36
  293. package/dist/components/custom/enhanced-separator.d.ts.map +0 -1
  294. package/dist/components/custom/segmented-control.d.ts +0 -48
  295. package/dist/components/custom/segmented-control.d.ts.map +0 -1
  296. package/dist/components/example.d.ts +0 -7
  297. package/dist/components/example.d.ts.map +0 -1
  298. package/dist/components/login-form.d.ts +0 -2
  299. package/dist/components/login-form.d.ts.map +0 -1
  300. package/dist/components/nav-user.d.ts +0 -8
  301. package/dist/components/nav-user.d.ts.map +0 -1
  302. package/dist/components/pm/gantt/contexts.d.ts +0 -13
  303. package/dist/components/pm/gantt/contexts.d.ts.map +0 -1
  304. package/dist/components/pm/gantt/gantt-columns.d.ts +0 -7
  305. package/dist/components/pm/gantt/gantt-columns.d.ts.map +0 -1
  306. package/dist/components/pm/gantt/gantt-demo.d.ts +0 -2
  307. package/dist/components/pm/gantt/gantt-demo.d.ts.map +0 -1
  308. package/dist/components/pm/gantt/gantt-dependencies.d.ts +0 -23
  309. package/dist/components/pm/gantt/gantt-dependencies.d.ts.map +0 -1
  310. package/dist/components/pm/gantt/gantt-features.d.ts +0 -9
  311. package/dist/components/pm/gantt/gantt-features.d.ts.map +0 -1
  312. package/dist/components/pm/gantt/gantt-header.d.ts +0 -5
  313. package/dist/components/pm/gantt/gantt-header.d.ts.map +0 -1
  314. package/dist/components/pm/gantt/gantt-markers.d.ts +0 -11
  315. package/dist/components/pm/gantt/gantt-markers.d.ts.map +0 -1
  316. package/dist/components/pm/gantt/gantt-modals.d.ts +0 -5
  317. package/dist/components/pm/gantt/gantt-modals.d.ts.map +0 -1
  318. package/dist/components/pm/gantt/gantt-provider.d.ts +0 -5
  319. package/dist/components/pm/gantt/gantt-provider.d.ts.map +0 -1
  320. package/dist/components/pm/gantt/gantt-setting-modal.d.ts +0 -4
  321. package/dist/components/pm/gantt/gantt-setting-modal.d.ts.map +0 -1
  322. package/dist/components/pm/gantt/gantt-sidebar.d.ts +0 -7
  323. package/dist/components/pm/gantt/gantt-sidebar.d.ts.map +0 -1
  324. package/dist/components/pm/gantt/gantt-toolbar.d.ts +0 -29
  325. package/dist/components/pm/gantt/gantt-toolbar.d.ts.map +0 -1
  326. package/dist/components/pm/gantt/index.d.ts +0 -16
  327. package/dist/components/pm/gantt/index.d.ts.map +0 -1
  328. package/dist/components/pm/gantt/types.d.ts +0 -299
  329. package/dist/components/pm/gantt/types.d.ts.map +0 -1
  330. package/dist/components/pm/gantt/utils.d.ts +0 -29
  331. package/dist/components/pm/gantt/utils.d.ts.map +0 -1
  332. package/dist/components/pm/index.d.ts +0 -13
  333. package/dist/components/pm/index.d.ts.map +0 -1
  334. package/dist/components/pm/mockdata.d.ts +0 -13
  335. package/dist/components/pm/mockdata.d.ts.map +0 -1
  336. package/dist/components/pm/pm-column-templates.d.ts +0 -30
  337. package/dist/components/pm/pm-column-templates.d.ts.map +0 -1
  338. package/dist/components/pm/pm-data-utils.d.ts +0 -82
  339. package/dist/components/pm/pm-data-utils.d.ts.map +0 -1
  340. package/dist/components/pm/pm-definition.d.ts +0 -75
  341. package/dist/components/pm/pm-definition.d.ts.map +0 -1
  342. package/dist/components/pm/pm-theme-context.d.ts +0 -17
  343. package/dist/components/pm/pm-theme-context.d.ts.map +0 -1
  344. package/dist/components/pm/pm-types.d.ts +0 -81
  345. package/dist/components/pm/pm-types.d.ts.map +0 -1
  346. package/dist/components/pm/project-table-view.d.ts +0 -17
  347. package/dist/components/pm/project-table-view.d.ts.map +0 -1
  348. package/dist/components/pm/table/data-grid-cell-variants.d.ts +0 -14
  349. package/dist/components/pm/table/data-grid-cell-variants.d.ts.map +0 -1
  350. package/dist/components/pm/table/data-grid-cell-wrapper.d.ts +0 -9
  351. package/dist/components/pm/table/data-grid-cell-wrapper.d.ts.map +0 -1
  352. package/dist/components/pm/table/data-grid-cell.d.ts +0 -5
  353. package/dist/components/pm/table/data-grid-cell.d.ts.map +0 -1
  354. package/dist/components/pm/table/data-grid-column-header.d.ts +0 -10
  355. package/dist/components/pm/table/data-grid-column-header.d.ts.map +0 -1
  356. package/dist/components/pm/table/data-grid-context-menu.d.ts +0 -10
  357. package/dist/components/pm/table/data-grid-context-menu.d.ts.map +0 -1
  358. package/dist/components/pm/table/data-grid-filter-menu.d.ts +0 -10
  359. package/dist/components/pm/table/data-grid-filter-menu.d.ts.map +0 -1
  360. package/dist/components/pm/table/data-grid-keyboard-shortcuts.d.ts +0 -12
  361. package/dist/components/pm/table/data-grid-keyboard-shortcuts.d.ts.map +0 -1
  362. package/dist/components/pm/table/data-grid-paste-dialog.d.ts +0 -9
  363. package/dist/components/pm/table/data-grid-paste-dialog.d.ts.map +0 -1
  364. package/dist/components/pm/table/data-grid-row-height-menu.d.ts +0 -10
  365. package/dist/components/pm/table/data-grid-row-height-menu.d.ts.map +0 -1
  366. package/dist/components/pm/table/data-grid-row.d.ts +0 -27
  367. package/dist/components/pm/table/data-grid-row.d.ts.map +0 -1
  368. package/dist/components/pm/table/data-grid-search.d.ts +0 -8
  369. package/dist/components/pm/table/data-grid-search.d.ts.map +0 -1
  370. package/dist/components/pm/table/data-grid-select-column.d.ts +0 -11
  371. package/dist/components/pm/table/data-grid-select-column.d.ts.map +0 -1
  372. package/dist/components/pm/table/data-grid-skeleton.d.ts +0 -12
  373. package/dist/components/pm/table/data-grid-skeleton.d.ts.map +0 -1
  374. package/dist/components/pm/table/data-grid-sort-menu.d.ts +0 -10
  375. package/dist/components/pm/table/data-grid-sort-menu.d.ts.map +0 -1
  376. package/dist/components/pm/table/data-grid-view-menu.d.ts +0 -10
  377. package/dist/components/pm/table/data-grid-view-menu.d.ts.map +0 -1
  378. package/dist/components/pm/table/data-grid.d.ts +0 -11
  379. package/dist/components/pm/table/data-grid.d.ts.map +0 -1
  380. package/dist/components/shadcn-studio/blocks/login-page-05/login-form.d.ts +0 -3
  381. package/dist/components/shadcn-studio/blocks/login-page-05/login-form.d.ts.map +0 -1
  382. package/dist/components/shadcn-studio/blocks/login-page-05/login-page-05.d.ts +0 -3
  383. package/dist/components/shadcn-studio/blocks/login-page-05/login-page-05.d.ts.map +0 -1
  384. package/dist/components/shadcn-studio/logo.d.ts +0 -5
  385. package/dist/components/shadcn-studio/logo.d.ts.map +0 -1
  386. package/dist/components/showcase/app-builder/app-builder-context.d.ts +0 -16
  387. package/dist/components/showcase/app-builder/app-builder-context.d.ts.map +0 -1
  388. package/dist/components/showcase/app-builder/app-canvas.d.ts +0 -11
  389. package/dist/components/showcase/app-builder/app-canvas.d.ts.map +0 -1
  390. package/dist/components/showcase/app-builder/widget-configurator.d.ts +0 -10
  391. package/dist/components/showcase/app-builder/widget-configurator.d.ts.map +0 -1
  392. package/dist/components/showcase/app-builder/widget-palette.d.ts +0 -6
  393. package/dist/components/showcase/app-builder/widget-palette.d.ts.map +0 -1
  394. package/dist/components/showcase/app-builder/widget-registry.d.ts +0 -29
  395. package/dist/components/showcase/app-builder/widget-registry.d.ts.map +0 -1
  396. package/dist/components/showcase/app-builder/widget-renderer.d.ts +0 -7
  397. package/dist/components/showcase/app-builder/widget-renderer.d.ts.map +0 -1
  398. package/dist/components/table/DataTable.d.ts +0 -71
  399. package/dist/components/table/DataTable.d.ts.map +0 -1
  400. package/dist/components/table/Table.d.ts +0 -12
  401. package/dist/components/table/Table.d.ts.map +0 -1
  402. package/dist/components/table/data-table-helpers.d.ts +0 -49
  403. package/dist/components/table/data-table-helpers.d.ts.map +0 -1
  404. package/dist/components/table/index.d.ts +0 -5
  405. package/dist/components/table/index.d.ts.map +0 -1
  406. package/dist/components/theme-toggle.d.ts +0 -2
  407. package/dist/components/theme-toggle.d.ts.map +0 -1
  408. package/dist/components/ui/chart.d.ts +0 -41
  409. package/dist/components/ui/chart.d.ts.map +0 -1
  410. package/dist/components/ui/shadcn-io/code-block/index.d.ts +0 -67
  411. package/dist/components/ui/shadcn-io/code-block/index.d.ts.map +0 -1
  412. package/dist/components/ui/shadcn-io/code-block/server.d.ts +0 -10
  413. package/dist/components/ui/shadcn-io/code-block/server.d.ts.map +0 -1
  414. package/dist/components/ui/shadcn-io/code-editor/index.d.ts +0 -35
  415. package/dist/components/ui/shadcn-io/code-editor/index.d.ts.map +0 -1
  416. package/dist/components/ui/shadcn-io/sandbox/index.d.ts +0 -38
  417. package/dist/components/ui/shadcn-io/sandbox/index.d.ts.map +0 -1
  418. package/dist/components/ui/shadcn-io/snippet/index.d.ts +0 -21
  419. package/dist/components/ui/shadcn-io/snippet/index.d.ts.map +0 -1
  420. package/dist/hooks/use-chart-highlight.d.ts +0 -43
  421. package/dist/hooks/use-chart-highlight.d.ts.map +0 -1
  422. package/dist/hooks/use-data-grid.d.ts +0 -59
  423. package/dist/hooks/use-data-grid.d.ts.map +0 -1
  424. package/dist/hooks/use-on-window-resize.d.ts +0 -2
  425. package/dist/hooks/use-on-window-resize.d.ts.map +0 -1
  426. package/dist/lib/data-grid-filters.d.ts +0 -29
  427. package/dist/lib/data-grid-filters.d.ts.map +0 -1
  428. package/dist/lib/data-grid.d.ts +0 -47
  429. package/dist/lib/data-grid.d.ts.map +0 -1
  430. package/dist/main.d.ts +0 -3
  431. package/dist/main.d.ts.map +0 -1
  432. package/dist/mockdata/chartData.d.ts +0 -71
  433. package/dist/mockdata/chartData.d.ts.map +0 -1
  434. package/dist/mockdata/toc.d.ts +0 -23
  435. package/dist/mockdata/toc.d.ts.map +0 -1
  436. package/dist/pages/AppBuilder.d.ts +0 -2
  437. package/dist/pages/AppBuilder.d.ts.map +0 -1
  438. package/dist/pages/ChartShowcase.d.ts +0 -2
  439. package/dist/pages/ChartShowcase.d.ts.map +0 -1
  440. package/dist/pages/ComponentShowcase.d.ts +0 -2
  441. package/dist/pages/ComponentShowcase.d.ts.map +0 -1
  442. package/dist/pages/DataTableShowcase.d.ts +0 -2
  443. package/dist/pages/DataTableShowcase.d.ts.map +0 -1
  444. package/dist/pages/Drafts.d.ts +0 -2
  445. package/dist/pages/Drafts.d.ts.map +0 -1
  446. package/dist/pages/GanttShowcase.d.ts +0 -2
  447. package/dist/pages/GanttShowcase.d.ts.map +0 -1
  448. package/dist/pages/Inbox.d.ts +0 -2
  449. package/dist/pages/Inbox.d.ts.map +0 -1
  450. package/dist/pages/Junk.d.ts +0 -2
  451. package/dist/pages/Junk.d.ts.map +0 -1
  452. package/dist/pages/Sent.d.ts +0 -2
  453. package/dist/pages/Sent.d.ts.map +0 -1
  454. package/dist/pages/Settings.d.ts +0 -2
  455. package/dist/pages/Settings.d.ts.map +0 -1
  456. package/dist/pages/Trash.d.ts +0 -2
  457. package/dist/pages/Trash.d.ts.map +0 -1
  458. package/dist/pages/gantt-data.d.ts +0 -16
  459. package/dist/pages/gantt-data.d.ts.map +0 -1
  460. package/dist/stories/mockData.d.ts +0 -157
  461. package/dist/stories/mockData.d.ts.map +0 -1
  462. package/dist/types/data-grid.d.ts +0 -179
  463. package/dist/types/data-grid.d.ts.map +0 -1
  464. package/dist/utils/chart-colors.d.ts +0 -62
  465. package/dist/utils/chart-colors.d.ts.map +0 -1
  466. package/dist/utils/chart-highlight.d.ts +0 -34
  467. package/dist/utils/chart-highlight.d.ts.map +0 -1
  468. package/dist/utils/chart-utils.d.ts +0 -2
  469. package/dist/utils/chart-utils.d.ts.map +0 -1
  470. package/dist/utils/focus-ring.d.ts +0 -2
  471. package/dist/utils/focus-ring.d.ts.map +0 -1
  472. package/dist/utils/get-y-axis-domain.d.ts +0 -2
  473. package/dist/utils/get-y-axis-domain.d.ts.map +0 -1
  474. package/dist/utils/index.d.ts +0 -10
  475. package/dist/utils/index.d.ts.map +0 -1
@@ -0,0 +1,309 @@
1
+ ---
2
+ name: nqui-components
3
+ description: Component implementation guide for nqui. AI skill for implementing nqui components correctly. Use when building UI with @nqlib/nqui or contributing components.
4
+ ---
5
+
6
+ # nqui Component Instructions
7
+
8
+ Implementation guides for each component. **AI Skill:** Optimized for AI/LLM consumption when implementing nqui in apps or extending the library.
9
+
10
+ **Import:** `import { X } from "@nqlib/nqui"`
11
+ **CSS:** `@import "@nqlib/nqui/styles"` (via `npx @nqlib/nqui init-css`)
12
+
13
+ ---
14
+
15
+ ## Prerequisites
16
+
17
+ | Dependency | Version | Notes |
18
+ |------------|---------|-------|
19
+ | **React** | 18+ or 19 | nqui supports React 18 and 19 via `^18.0.0 \|\| ^19.0.0` peer. |
20
+ | **Tailwind CSS** | ^4.x | Required. Vite: `@tailwindcss/vite`. Next.js: `@source` directives in CSS. |
21
+ | **tw-animate-css** | — | `@import "tw-animate-css"` in your CSS (added by init-css). |
22
+ | **Radix UI** | — | Bundled (Dialog, Select, etc.). |
23
+ | **Hugeicons** | @hugeicons/react, @hugeicons/core-free-icons | Required for icon display in components. |
24
+
25
+ **Optional peers** (per component): `react-day-picker` (Calendar), `sonner` (Toaster), `react-resizable-panels` (Resizable), `@tanstack/react-table` (DataTable). **Code display** (CodeBlock, Snippet, etc.): use `@nqlib/nqcode` with `shiki`, `@shikijs/transformers`.
26
+
27
+ ---
28
+
29
+ ## Shared Conventions (AI Implementation Rules)
30
+
31
+ - **Control sizes:** `sm`=h-6, `default`=h-7, `lg`=h-8. Button, Toggle, ToggleGroup, Input, Select use this scale. See `.cursor/skills/nqui-design-system/SKILL.md`.
32
+ - **CSS vars required:** nqui uses `--primary`, `--background`, `--foreground`, etc. Run `npx @nqlib/nqui init-css`.
33
+ - **Enhanced vs Core:** Button, Badge, Checkbox, Select, etc. default to enhanced (3D, animations). Use `CoreButton`, `CoreBadge`, etc. for base shadcn. Separator: single component with `variant` prop (no CoreSeparator).
34
+ - **Grouped controls:** ButtonGroup, ToggleGroup share border; ToggleGroup uses item dividers (`border-foreground/20`) or `ToggleGroupSeparator`.
35
+ - **Toolbar context:** Always show Toggle/ToggleGroup in realistic context (document toolbar, chart settings, etc.). Reference: `src/pages/ComponentShowcase.tsx`.
36
+ - **Style injection:** Checkbox, Rating, Combobox inject `<style>` at mount → client-only guard for SSR.
37
+ - **OKLCH:** ColorPicker expects OKLCH strings (`oklch(0.5 0.15 240)`), not hex.
38
+ - **SidebarProvider:** Must wrap entire layout (sidebar + content).
39
+ - **Z-index:** Use CSS vars from `styles/elevation.css` (e.g. `z-[var(--z-modal)]`). Never hardcode `z-10`, `z-50`, etc.
40
+ - **Keyboard:** Use `Keys`, `isMod`, `shouldIgnoreKeyboardShortcut` from `@/lib/keyboard` for custom shortcuts.
41
+
42
+ ---
43
+
44
+ ## When to Use (Selection & Action Components)
45
+
46
+ Use these rules to choose the right component. **Selection** = user picks from options. **Action** = user triggers a command.
47
+
48
+ ### App Design Rule: Inline/Toolbar → ToggleGroup
49
+
50
+ **For toolbars, headers, and inline controls:** Always use ToggleGroup (never RadioGroup). Examples: view mode (List/Grid), scale (Linear/Log), format (Bold/Italic). Use RadioGroup only for form context (settings modal, stacked preference list).
51
+
52
+ **Context-first design:** Place toolbars in realistic app context (document editor with content area, chart panel with labels). Never show Toggle/ToggleGroup floating alone. Canonical implementation: `src/pages/ComponentShowcase.tsx` → Toggle & ToggleGroup section.
53
+
54
+ ### Single selection (pick one of N)
55
+
56
+ | If... | Use |
57
+ |-------|-----|
58
+ | 2–4 options, inline, want primary fill on selected | **ToggleGroup** `type="single" variant="segmented"` |
59
+ | 2–5 options, inline, neutral/muted styling | **ToggleGroup** `type="single"` |
60
+ | 5+ options OR limited space | **Select** (dropdown) |
61
+ | Form context, stacked or horizontal list | **RadioGroup** |
62
+ | Need search/filter over options | **Combobox** (single) |
63
+
64
+ ### Multiple selection (pick zero or more)
65
+
66
+ | If... | Use |
67
+ |-------|-----|
68
+ | 2–5 options, inline (e.g. bold/italic/underline) | **ToggleGroup** `type="multiple"` |
69
+ | Form context, list of options | **Checkbox** (each option) |
70
+ | Many options, need search | **Combobox** `multiSelect` |
71
+
72
+ ### Actions (trigger, not select)
73
+
74
+ | If... | Use |
75
+ |-------|-----|
76
+ | Single action (save, submit, etc.) | **Button** |
77
+ | Related actions side-by-side (Undo/Redo, align) | **ButtonGroup** |
78
+ | On/off state for one thing (bold, mute) | **Toggle** |
79
+
80
+ ### Quick decision
81
+
82
+ - **ToggleGroup segmented** → 1 selection only, 2–4 options, primary fill on selected. Example: Linear/Log scale.
83
+ - **ToggleGroup single** → 1 selection, neutral/muted styling.
84
+ - **ToggleGroup multiple** → Multiple selection, e.g. format toolbar.
85
+ - **Select** → 1 selection, many options or no space for inline.
86
+ - **ButtonGroup** → Actions, not selection. Each item does something (click = action).
87
+
88
+ ---
89
+
90
+ ## Buttons & Actions
91
+
92
+ | Component | Doc | When to Use |
93
+ |-----------|-----|-------------|
94
+ | Button | [nqui-button.md](./nqui-button.md) | Single action (submit, cancel, icon). Not for selection. |
95
+ | ButtonGroup | [nqui-button-group.md](./nqui-button-group.md) | Related actions side-by-side (toolbar). Each triggers an action. Not for selection. |
96
+ | Toggle | [nqui-toggle.md](./nqui-toggle.md) | One on/off state. E.g. bold in editor. Not a group. |
97
+ | ToggleGroup | [nqui-toggle-group.md](./nqui-toggle-group.md) | **Single** or **multiple** selection. `type="single"` = 1 of N; `type="multiple"` = 0+ of N. Use `variant="segmented"` for primary fill on selected (e.g. view mode, scale type). |
98
+
99
+ ---
100
+
101
+ ## Forms – When to Use
102
+
103
+ | If... | Use |
104
+ |-------|-----|
105
+ | Free text, single line | **Input** |
106
+ | Free text, multiple lines | **Textarea** |
107
+ | Input with icon/button (search, units) | **InputGroup** |
108
+ | Single choice, 5+ options or no space | **Select** |
109
+ | Single choice, need search | **Combobox** (single) |
110
+ | Single choice, form, small option set | **RadioGroup** |
111
+ | Multiple choice, need search | **Combobox** `multiSelect` |
112
+ | One boolean (agree, subscribe) | **Checkbox** |
113
+ | On/off setting (dark mode, notifications) | **Switch** |
114
+ | Numeric range (volume, opacity) | **Slider** |
115
+ | OTP, verification code | **InputOTP** |
116
+ | Color from swatches | **ColorPicker** |
117
+ | Hue/saturation in color picker | **ColorSlider** |
118
+ | Wrap label + error + input | **Field** |
119
+
120
+ ---
121
+
122
+ ## Forms
123
+
124
+ | Component | Doc | When to Use |
125
+ |-----------|-----|-------------|
126
+ | Input | [nqui-input.md](./nqui-input.md) | Single-line text. Email, search, name. |
127
+ | InputGroup | [nqui-input-group.md](./nqui-input-group.md) | Input + addon (icon, button, unit). |
128
+ | Textarea | [nqui-textarea.md](./nqui-textarea.md) | Multi-line text. |
129
+ | Select | [nqui-select.md](./nqui-select.md) | **1 selection** from 5+ options. Dropdown. Use when options don't fit inline or space is tight. |
130
+ | NativeSelect | [nqui-native-select.md](./nqui-native-select.md) | Native `<select>` – simpler, accessible fallback. |
131
+ | Checkbox | [nqui-checkbox.md](./nqui-checkbox.md) | **1 boolean** (agree, subscribe). Or multiple checkboxes for multi-select list. |
132
+ | RadioGroup | [nqui-radio-group.md](./nqui-radio-group.md) | **1 selection** from options in form context. Stacked or inline. |
133
+ | Switch | [nqui-switch.md](./nqui-switch.md) | On/off setting (not formatting). |
134
+ | Slider | [nqui-slider.md](./nqui-slider.md) | Numeric range. |
135
+ | Rating | [nqui-rating.md](./nqui-rating.md) | Star/score (1–5). |
136
+ | InputOTP | [nqui-input-otp.md](./nqui-input-otp.md) | OTP/verification. |
137
+ | Field | [nqui-field.md](./nqui-field.md) | Label + description + error wrapper. |
138
+ | Combobox | [nqui-combobox.md](./nqui-combobox.md) | **Searchable** select. Single or `multiSelect`. Use when user types to filter. |
139
+ | ColorPicker | [nqui-color-picker.md](./nqui-color-picker.md) | Color selection. OKLCH. |
140
+ | ColorSlider | [nqui-color-slider.md](./nqui-color-slider.md) | Hue/saturation (used in ColorPicker). |
141
+ | Label | [nqui-label.md](./nqui-label.md) | Form label. |
142
+
143
+ ---
144
+
145
+ ## Display – When to Use
146
+
147
+ | If... | Use |
148
+ |-------|-----|
149
+ | Status, count, tag | **Badge** |
150
+ | User/org image | **Avatar** |
151
+ | Inline message (info, warn, error) | **Alert** |
152
+ | Empty list/table | **Empty** |
153
+ | Loading placeholder | **Skeleton** |
154
+ | Loading spinner | **Spinner** |
155
+ | Progress bar | **Progress** |
156
+ | Divider, section split | **Separator** |
157
+ | Content container | **Card** |
158
+ | List row (avatar + title + actions) | **Item** |
159
+ | Show keyboard shortcut | **Kbd** |
160
+ | Activity blocks (e.g. heatmap) | **Tracker** |
161
+ | Glass effect | **FrostedGlass** |
162
+
163
+ ---
164
+
165
+ ## Display
166
+
167
+ | Component | Doc | When to Use |
168
+ |-----------|-----|----------|
169
+ | Badge | [nqui-badge.md](./nqui-badge.md) | Status, count, tag. |
170
+ | Avatar | [nqui-avatar.md](./nqui-avatar.md) | User/profile image. |
171
+ | Alert | [nqui-alert.md](./nqui-alert.md) | Inline message (info, warning, error). |
172
+ | Empty | [nqui-empty.md](./nqui-empty.md) | Empty state when no data. |
173
+ | Skeleton | [nqui-skeleton.md](./nqui-skeleton.md) | Loading placeholder. |
174
+ | Spinner | [nqui-spinner.md](./nqui-spinner.md) | Loading indicator. |
175
+ | Progress | [nqui-progress.md](./nqui-progress.md) | Progress bar. |
176
+ | Separator | [nqui-separator.md](./nqui-separator.md) | Divider. `variant` for fade, solid, decorative. |
177
+ | Card | [nqui-card.md](./nqui-card.md) | Content container. |
178
+ | Item | [nqui-item.md](./nqui-item.md) | List row: media + title + description + actions. |
179
+ | Kbd | [nqui-kbd.md](./nqui-kbd.md) | Keyboard shortcut display. |
180
+ | Tracker | [nqui-tracker.md](./nqui-tracker.md) | Activity blocks (heatmap). |
181
+ | FrostedGlass | [nqui-frosted-glass.md](./nqui-frosted-glass.md) | Glass effect. |
182
+ | NquiLogo | [nqui-logo.md](./nqui-logo.md) | Theme-aware logo. |
183
+
184
+ ---
185
+
186
+ ## Data & Tables – When to Use
187
+
188
+ | If... | Use |
189
+ |-------|-----|
190
+ | Static table, no sort/filter | **Table** |
191
+ | Table with sort, filter, paginate, select | **DataTable** |
192
+ | List of items (avatar + title + actions) | **Item** |
193
+
194
+ ---
195
+
196
+ ## Data & Tables
197
+
198
+ | Component | Doc | When to Use |
199
+ |-----------|-----|-------------|
200
+ | Table | [nqui-table.md](./nqui-table.md) | Static table. TableHeader, TableBody, TableRow, TableCell. |
201
+ | DataTable | [nqui-data-table.md](./nqui-data-table.md) | Sort, filter, paginate, select, edit. Requires `@tanstack/react-table`. |
202
+ | Item | [nqui-item.md](./nqui-item.md) | List row with media, title, description, actions. |
203
+
204
+ ---
205
+
206
+ ## Files & Code Display
207
+
208
+ | Component | Doc | Use Case |
209
+ |-----------|-----|----------|
210
+ | CodeBlock | [nqui-code-block.md](./nqui-code-block.md) | From `@nqlib/nqcode`. Syntax-highlighted code, multi-file, copy. Peer: shiki. |
211
+ | Snippet | [nqui-snippet.md](./nqui-snippet.md) | From `@nqlib/nqcode`. Tabbed code, copy. |
212
+
213
+ ---
214
+
215
+ ## Navigation – When to Use
216
+
217
+ | If... | Use |
218
+ |-------|-----|
219
+ | Breadcrumb path | **Breadcrumb** |
220
+ | Tabbed panels | **Tabs** |
221
+ | Menu from trigger (avatar, ⋮) | **DropdownMenu** |
222
+ | Right-click menu | **ContextMenu** |
223
+ | Horizontal app menu | **Menubar** |
224
+ | Mega nav / complex nav | **NavigationMenu** |
225
+ | Page 1, 2, 3... | **Pagination** |
226
+ | Search + command list | **Command** / **CommandPalette** |
227
+ | Doc section links | **TableOfContents** |
228
+
229
+ ---
230
+
231
+ ## Navigation & Menus
232
+
233
+ | Component | Doc | When to Use |
234
+ |-----------|-----|----------|
235
+ | Breadcrumb | [nqui-breadcrumb.md](./nqui-breadcrumb.md) | Path navigation (Home > Products > Item). |
236
+ | Tabs | [nqui-tabs.md](./nqui-tabs.md) | Switch between panels (Settings, Profile). |
237
+ | DropdownMenu | [nqui-dropdown-menu.md](./nqui-dropdown-menu.md) | Menu from trigger click (avatar, ⋮). |
238
+ | ContextMenu | [nqui-context-menu.md](./nqui-context-menu.md) | Right-click menu. |
239
+ | Menubar | [nqui-menubar.md](./nqui-menubar.md) | Horizontal app menu (File, Edit). |
240
+ | NavigationMenu | [nqui-navigation-menu.md](./nqui-navigation-menu.md) | Mega menu with sub-panels. |
241
+ | Pagination | [nqui-pagination.md](./nqui-pagination.md) | Page 1, 2, 3... navigation. |
242
+ | Command | [nqui-command.md](./nqui-command.md) | Searchable command list. |
243
+ | CommandPalette | [nqui-command-palette.md](./nqui-command-palette.md) | Full Cmd+K palette. |
244
+ | TableOfContents | [nqui-table-of-contents.md](./nqui-table-of-contents.md) | Doc section links from headings. |
245
+
246
+ ---
247
+
248
+ ## Overlays – When to Use
249
+
250
+ | If... | Use |
251
+ |-------|-----|
252
+ | Modal, blocks page, user must respond | **Dialog** |
253
+ | Confirm/cancel (delete, leave) | **AlertDialog** |
254
+ | Panel from side (mobile-first) | **Sheet** |
255
+ | Panel from bottom, mobile | **Drawer** (vaul) |
256
+ | Floating content near trigger (picker, menu) | **Popover** |
257
+ | Hover to show extra info | **Tooltip** (short) or **HoverCard** (rich) |
258
+ | Non-blocking notification | **Toaster** (sonner) |
259
+
260
+ ---
261
+
262
+ ## Overlays & Dialogs
263
+
264
+ | Component | Doc | When to Use |
265
+ |-----------|-----|-------------|
266
+ | Dialog | [nqui-dialog.md](./nqui-dialog.md) | Modal. Blocks interaction until dismissed. |
267
+ | AlertDialog | [nqui-alert-dialog.md](./nqui-alert-dialog.md) | Confirm/cancel. Delete, leave page. |
268
+ | Drawer | [nqui-drawer.md](./nqui-drawer.md) | Slide from bottom. Mobile-friendly. |
269
+ | Sheet | [nqui-sheet.md](./nqui-sheet.md) | Panel from side. |
270
+ | Popover | [nqui-popover.md](./nqui-popover.md) | Floating content anchored to trigger. |
271
+ | HoverCard | [nqui-hover-card.md](./nqui-hover-card.md) | Rich preview on hover. |
272
+ | Tooltip | [nqui-tooltip.md](./nqui-tooltip.md) | Short hint on hover. |
273
+ | Toaster | [nqui-toaster.md](./nqui-toaster.md) | Toast notifications. Requires `sonner`. |
274
+
275
+ ---
276
+
277
+ ## Layout
278
+
279
+ | Component | Doc | Use Case |
280
+ |-----------|-----|----------|
281
+ | Accordion | [nqui-accordion.md](./nqui-accordion.md) | Collapsible sections. |
282
+ | Collapsible | [nqui-collapsible.md](./nqui-collapsible.md) | Single collapsible. |
283
+ | ScrollArea | [nqui-scroll-area.md](./nqui-scroll-area.md) | Custom scroll with fade mask. |
284
+ | AspectRatio | [nqui-aspect-ratio.md](./nqui-aspect-ratio.md) | Fixed aspect container. |
285
+ | Carousel | [nqui-carousel.md](./nqui-carousel.md) | Image/content carousel. Requires `embla-carousel-react`. |
286
+ | Resizable | [nqui-resizable.md](./nqui-resizable.md) | Resizable panels. Requires `react-resizable-panels`. |
287
+ | Sidebar | [nqui-sidebar.md](./nqui-sidebar.md) | App sidebar. `SidebarProvider` wraps layout. |
288
+ | Sortable | [nqui-sortable.md](./nqui-sortable.md) | Drag-to-reorder. Import from `@nqlib/nqui/sortable`. |
289
+
290
+ ---
291
+
292
+ ## Advanced
293
+
294
+ | Component | Doc | Use Case |
295
+ |-----------|-----|----------|
296
+ | Calendar | [nqui-calendar.md](./nqui-calendar.md) | Date picker. Requires `react-day-picker`, `date-fns`. Import from `@nqlib/nqui/calendar`. |
297
+
298
+ ---
299
+
300
+ ## AI Implementation Checklist
301
+
302
+ 1. **Choose component** – Use "When to Use" tables above. Selection vs action? Single vs multiple? Option count?
303
+ 2. **Read doc** – Open `nqui-<name>.md` for import and patterns.
304
+ 3. **Size** – Use `sm`/`default`/`lg` per design system. No custom heights.
305
+ 4. **Enhanced vs Core** – Prefer default (enhanced); use `Core*` when plain style needed.
306
+ 5. **Toolbar/context** – Place Toggle/ToggleGroup in realistic context (document toolbar, chart panel). Reference: `src/pages/ComponentShowcase.tsx`.
307
+ 6. **SSR** – Wrap style-injecting components (Checkbox, Rating, Combobox) in client boundary if SSR.
308
+ 7. **Z-index** – Use `var(--z-modal)`, `var(--z-popover)`, etc.
309
+ 8. **Keyboard** – Use `shouldIgnoreKeyboardShortcut` for global listeners.
@@ -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,50 @@
1
+ # nqui ButtonGroup
2
+
3
+ > **Related actions** side-by-side. Each item triggers an action. Not for selection.
4
+
5
+ ## When to Use
6
+
7
+ - **Actions** (not selection) – each click does something
8
+ - **Related** – Undo/Redo, align left/center/right (as actions)
9
+ - **Layout:** Inline, shared border
10
+
11
+ **Choose ButtonGroup when:** User triggers actions (Undo, Redo, Copy). Each button performs a command. Not for picking a mode or state.
12
+
13
+ **Use ToggleGroup instead** when user is *selecting* a value (mode, scale, alignment as state). ButtonGroup = actions. ToggleGroup = selection.
14
+
15
+ **Examples:** Undo | Redo, Left | Center | Right (when each applies an action), Export | Print.
16
+
17
+ ## Import
18
+
19
+ ```tsx
20
+ import { ButtonGroup, ButtonGroupSeparator, ButtonGroupText } from "@nqlib/nqui"
21
+ ```
22
+
23
+ ## Basic
24
+
25
+ ```tsx
26
+ <ButtonGroup>
27
+ <Button variant="outline">Left</Button>
28
+ <ButtonGroupSeparator />
29
+ <Button variant="outline">Middle</Button>
30
+ <ButtonGroupSeparator />
31
+ <Button variant="outline">Right</Button>
32
+ </ButtonGroup>
33
+ ```
34
+
35
+ ## With text (non-button)
36
+
37
+ ```tsx
38
+ <ButtonGroup>
39
+ <Button variant="outline"><HomeIcon /></Button>
40
+ <ButtonGroupSeparator />
41
+ <ButtonGroupText>Text</ButtonGroupText>
42
+ <ButtonGroupSeparator />
43
+ <Button variant="outline"><SettingsIcon /></Button>
44
+ </ButtonGroup>
45
+ ```
46
+
47
+ ## Notes
48
+
49
+ - Uses Button children. Shared border, separators with fade.
50
+ - `ButtonGroupText` for non-clickable label between buttons.
@@ -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
+ ```