@nexus-cross/design-system 1.0.13 → 1.1.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 (285) hide show
  1. package/claude-rules/nexus/CLAUDE.md +85 -0
  2. package/claude-rules/nexus/commands/nexus-audit.md +79 -0
  3. package/claude-rules/nexus/commands/nexus-component-map.md +85 -0
  4. package/claude-rules/nexus/commands/nexus-token-check.md +68 -0
  5. package/claude-rules/nexus/skills/nexus-design-system/SKILL.md +92 -0
  6. package/cursor-rules/nexus-ui-api.mdc +824 -41
  7. package/cursor-rules/nexus-ui-decisions.mdc +259 -0
  8. package/dist/accordion.js +0 -1
  9. package/dist/accordion.mjs +0 -1
  10. package/dist/alert.js +0 -1
  11. package/dist/alert.mjs +0 -1
  12. package/dist/avatar.js +0 -1
  13. package/dist/avatar.mjs +0 -1
  14. package/dist/badge.js +0 -1
  15. package/dist/badge.mjs +0 -1
  16. package/dist/breadcrumb.js +0 -1
  17. package/dist/breadcrumb.mjs +0 -1
  18. package/dist/button.js +0 -1
  19. package/dist/button.mjs +0 -1
  20. package/dist/carousel.js +0 -1
  21. package/dist/carousel.mjs +0 -1
  22. package/dist/checkbox.js +0 -1
  23. package/dist/checkbox.mjs +0 -1
  24. package/dist/chip.js +0 -1
  25. package/dist/chip.mjs +0 -1
  26. package/dist/chunks/chunk-2Z52NPWB.js +78 -0
  27. package/dist/chunks/chunk-46P52MFM.mjs +56 -0
  28. package/dist/chunks/{chunk-X3CTJ7TD.js → chunk-4KBFVIKX.js} +41 -11
  29. package/dist/chunks/chunk-56ZOOQFE.mjs +514 -0
  30. package/dist/chunks/chunk-5ASTWFJW.js +538 -0
  31. package/dist/chunks/{chunk-33UFQJIO.mjs → chunk-BJMXZJWO.mjs} +16 -5
  32. package/dist/chunks/chunk-EILXBLEV.mjs +5 -0
  33. package/dist/chunks/chunk-G3RLK2HS.js +7 -0
  34. package/dist/chunks/{chunk-YZV6FWE7.js → chunk-JLDQNDFT.js} +16 -5
  35. package/dist/chunks/{chunk-K574BYHQ.js → chunk-K3CK7NTP.js} +22 -4
  36. package/dist/chunks/{chunk-Z4YM7LU3.mjs → chunk-PIGHBDK5.mjs} +22 -4
  37. package/dist/chunks/{chunk-PEIEVKD5.js → chunk-RCIBLLSF.js} +11 -12
  38. package/dist/chunks/{chunk-MMCA33FW.mjs → chunk-RSFLNWOM.mjs} +41 -11
  39. package/dist/chunks/{chunk-K2TBLM3F.mjs → chunk-THBE27U3.mjs} +11 -12
  40. package/dist/client-only.js +0 -1
  41. package/dist/client-only.mjs +0 -1
  42. package/dist/combobox.js +16 -0
  43. package/dist/combobox.mjs +3 -0
  44. package/dist/components/Combobox.d.ts +48 -0
  45. package/dist/components/Combobox.d.ts.map +1 -0
  46. package/dist/components/DataGrid.d.ts +44 -0
  47. package/dist/components/DataGrid.d.ts.map +1 -0
  48. package/dist/components/DataList.d.ts +3 -1
  49. package/dist/components/DataList.d.ts.map +1 -1
  50. package/dist/components/RadioGroup.d.ts +4 -0
  51. package/dist/components/RadioGroup.d.ts.map +1 -1
  52. package/dist/components/Stepper.d.ts.map +1 -1
  53. package/dist/components/ToggleGroup.d.ts +2 -1
  54. package/dist/components/ToggleGroup.d.ts.map +1 -1
  55. package/dist/countdown.js +0 -1
  56. package/dist/countdown.mjs +0 -1
  57. package/dist/counter.js +0 -1
  58. package/dist/counter.mjs +0 -1
  59. package/dist/data-grid.js +14 -0
  60. package/dist/data-grid.mjs +5 -0
  61. package/dist/data-list.js +2 -3
  62. package/dist/data-list.mjs +1 -2
  63. package/dist/date-picker.js +0 -1
  64. package/dist/date-picker.mjs +0 -1
  65. package/dist/divider.js +0 -1
  66. package/dist/divider.mjs +0 -1
  67. package/dist/drawer.js +0 -1
  68. package/dist/drawer.mjs +0 -1
  69. package/dist/dropdown-menu.js +0 -1
  70. package/dist/dropdown-menu.mjs +0 -1
  71. package/dist/ellipsis.js +0 -1
  72. package/dist/ellipsis.mjs +0 -1
  73. package/dist/empty-state.js +0 -1
  74. package/dist/empty-state.mjs +0 -1
  75. package/dist/error-boundary.js +0 -1
  76. package/dist/error-boundary.mjs +0 -1
  77. package/dist/hooks/useCheckDevice.js +0 -1
  78. package/dist/hooks/useCheckDevice.mjs +0 -1
  79. package/dist/hooks/useClickOutside.js +0 -1
  80. package/dist/hooks/useClickOutside.mjs +0 -1
  81. package/dist/hooks/useDraggableBottomSheet.js +0 -1
  82. package/dist/hooks/useDraggableBottomSheet.mjs +0 -1
  83. package/dist/hooks/useDraggableWindow.js +0 -1
  84. package/dist/hooks/useDraggableWindow.mjs +0 -1
  85. package/dist/hooks/useInView.js +0 -1
  86. package/dist/hooks/useInView.mjs +0 -1
  87. package/dist/hooks/useModal.js +0 -1
  88. package/dist/hooks/useModal.mjs +0 -1
  89. package/dist/image-upload.js +0 -1
  90. package/dist/image-upload.mjs +0 -1
  91. package/dist/index.d.ts +4 -2
  92. package/dist/index.d.ts.map +1 -1
  93. package/dist/index.js +92 -88
  94. package/dist/index.mjs +12 -12
  95. package/dist/infinite-scroll.js +0 -1
  96. package/dist/infinite-scroll.mjs +0 -1
  97. package/dist/marquee.js +0 -1
  98. package/dist/marquee.mjs +0 -1
  99. package/dist/modal/index.js +11 -12
  100. package/dist/modal/index.mjs +2 -3
  101. package/dist/number-input.js +0 -1
  102. package/dist/number-input.mjs +0 -1
  103. package/dist/nx-image.js +0 -1
  104. package/dist/nx-image.mjs +0 -1
  105. package/dist/pagination.js +0 -1
  106. package/dist/pagination.mjs +0 -1
  107. package/dist/popover.js +0 -1
  108. package/dist/popover.mjs +0 -1
  109. package/dist/price-input.js +0 -1
  110. package/dist/price-input.mjs +0 -1
  111. package/dist/progress.js +0 -1
  112. package/dist/progress.mjs +0 -1
  113. package/dist/radio-group.js +5 -6
  114. package/dist/radio-group.mjs +1 -2
  115. package/dist/schemas/_all.json +308 -117
  116. package/dist/schemas/accordion.d.ts.map +1 -1
  117. package/dist/schemas/accordion.json +1 -1
  118. package/dist/schemas/alert.d.ts.map +1 -1
  119. package/dist/schemas/alert.json +1 -1
  120. package/dist/schemas/avatar.d.ts.map +1 -1
  121. package/dist/schemas/avatar.json +1 -1
  122. package/dist/schemas/badge.d.ts.map +1 -1
  123. package/dist/schemas/badge.json +1 -1
  124. package/dist/schemas/breadcrumb.d.ts.map +1 -1
  125. package/dist/schemas/breadcrumb.json +1 -1
  126. package/dist/schemas/button.d.ts.map +1 -1
  127. package/dist/schemas/button.json +1 -1
  128. package/dist/schemas/carousel.d.ts.map +1 -1
  129. package/dist/schemas/carousel.json +1 -1
  130. package/dist/schemas/checkBox.json +1 -1
  131. package/dist/schemas/checkbox.d.ts.map +1 -1
  132. package/dist/schemas/chip.d.ts.map +1 -1
  133. package/dist/schemas/chip.json +1 -1
  134. package/dist/schemas/client-only.d.ts.map +1 -1
  135. package/dist/schemas/clientOnly.json +1 -1
  136. package/dist/schemas/combobox.d.ts +85 -0
  137. package/dist/schemas/combobox.d.ts.map +1 -0
  138. package/dist/schemas/combobox.json +98 -0
  139. package/dist/schemas/comboboxOption.json +30 -0
  140. package/dist/schemas/countdown.d.ts.map +1 -1
  141. package/dist/schemas/countdown.json +1 -1
  142. package/dist/schemas/counter.d.ts.map +1 -1
  143. package/dist/schemas/counter.json +1 -1
  144. package/dist/schemas/data-grid.d.ts +74 -0
  145. package/dist/schemas/data-grid.d.ts.map +1 -0
  146. package/dist/schemas/data-list.d.ts.map +1 -1
  147. package/dist/schemas/dataGrid.json +102 -0
  148. package/dist/schemas/dataList.json +1 -1
  149. package/dist/schemas/date-picker.d.ts.map +1 -1
  150. package/dist/schemas/datePicker.json +1 -1
  151. package/dist/schemas/divider.d.ts.map +1 -1
  152. package/dist/schemas/divider.json +1 -1
  153. package/dist/schemas/drawer.d.ts.map +1 -1
  154. package/dist/schemas/drawer.json +1 -1
  155. package/dist/schemas/dropdown-menu.d.ts.map +1 -1
  156. package/dist/schemas/dropdownMenu.json +1 -1
  157. package/dist/schemas/ellipsis.d.ts.map +1 -1
  158. package/dist/schemas/ellipsis.json +1 -1
  159. package/dist/schemas/empty-state.d.ts.map +1 -1
  160. package/dist/schemas/emptyState.json +1 -1
  161. package/dist/schemas/error-boundary.d.ts.map +1 -1
  162. package/dist/schemas/errorBoundary.json +1 -1
  163. package/dist/schemas/image-upload.d.ts.map +1 -1
  164. package/dist/schemas/imageUpload.json +1 -1
  165. package/dist/schemas/index.d.ts +2 -1
  166. package/dist/schemas/index.d.ts.map +1 -1
  167. package/dist/schemas/infinite-scroll.d.ts.map +1 -1
  168. package/dist/schemas/infiniteScroll.json +1 -1
  169. package/dist/schemas/marquee.d.ts.map +1 -1
  170. package/dist/schemas/marquee.json +1 -1
  171. package/dist/schemas/modal.d.ts.map +1 -1
  172. package/dist/schemas/modalTemplate.json +1 -1
  173. package/dist/schemas/number-input.d.ts.map +1 -1
  174. package/dist/schemas/numberInput.json +1 -1
  175. package/dist/schemas/nx-image.d.ts.map +1 -1
  176. package/dist/schemas/nxImage.json +1 -1
  177. package/dist/schemas/pagination.d.ts.map +1 -1
  178. package/dist/schemas/pagination.json +1 -1
  179. package/dist/schemas/popover.d.ts.map +1 -1
  180. package/dist/schemas/popover.json +1 -1
  181. package/dist/schemas/price-input.d.ts.map +1 -1
  182. package/dist/schemas/priceInput.json +1 -1
  183. package/dist/schemas/progress.d.ts.map +1 -1
  184. package/dist/schemas/progress.json +1 -1
  185. package/dist/schemas/radio-group.d.ts +9 -0
  186. package/dist/schemas/radio-group.d.ts.map +1 -1
  187. package/dist/schemas/radioGroup.json +10 -1
  188. package/dist/schemas/radioItem.json +11 -0
  189. package/dist/schemas/select.d.ts.map +1 -1
  190. package/dist/schemas/select.json +1 -1
  191. package/dist/schemas/skeleton.d.ts.map +1 -1
  192. package/dist/schemas/skeleton.json +1 -1
  193. package/dist/schemas/slider.d.ts.map +1 -1
  194. package/dist/schemas/slider.json +1 -1
  195. package/dist/schemas/spinner.d.ts.map +1 -1
  196. package/dist/schemas/spinner.json +1 -1
  197. package/dist/schemas/stepper.d.ts.map +1 -1
  198. package/dist/schemas/stepper.json +1 -1
  199. package/dist/schemas/switch.d.ts.map +1 -1
  200. package/dist/schemas/switch.json +1 -1
  201. package/dist/schemas/tab.d.ts.map +1 -1
  202. package/dist/schemas/tab.json +1 -1
  203. package/dist/schemas/table.d.ts.map +1 -1
  204. package/dist/schemas/table.json +1 -1
  205. package/dist/schemas/tableRow.json +1 -1
  206. package/dist/schemas/tag-input.d.ts.map +1 -1
  207. package/dist/schemas/tagInput.json +1 -1
  208. package/dist/schemas/tdColumn.json +1 -1
  209. package/dist/schemas/text-area.d.ts.map +1 -1
  210. package/dist/schemas/text-input.d.ts +2 -2
  211. package/dist/schemas/text-input.d.ts.map +1 -1
  212. package/dist/schemas/textArea.json +1 -1
  213. package/dist/schemas/textInput.json +1 -1
  214. package/dist/schemas/toast.d.ts.map +1 -1
  215. package/dist/schemas/toastOptions.json +1 -1
  216. package/dist/schemas/toaster.json +1 -1
  217. package/dist/schemas/toggle-group.d.ts +6 -3
  218. package/dist/schemas/toggle-group.d.ts.map +1 -1
  219. package/dist/schemas/toggleGroup.json +9 -3
  220. package/dist/schemas/tooltip.d.ts.map +1 -1
  221. package/dist/schemas/tooltip.json +1 -1
  222. package/dist/schemas/virtual-scroll.d.ts.map +1 -1
  223. package/dist/schemas/virtualGrid.json +1 -1
  224. package/dist/schemas/virtualList.json +1 -1
  225. package/dist/schemas.js +867 -66
  226. package/dist/schemas.mjs +865 -66
  227. package/dist/select.js +0 -1
  228. package/dist/select.mjs +0 -1
  229. package/dist/skeleton.js +0 -1
  230. package/dist/skeleton.mjs +0 -1
  231. package/dist/slider.js +0 -1
  232. package/dist/slider.mjs +0 -1
  233. package/dist/spinner.js +0 -1
  234. package/dist/spinner.mjs +0 -1
  235. package/dist/stepper.js +3 -4
  236. package/dist/stepper.mjs +1 -2
  237. package/dist/styles/.generated/built.d.ts +1 -1
  238. package/dist/styles/.generated/built.d.ts.map +1 -1
  239. package/dist/styles/layer.js +2 -3
  240. package/dist/styles/layer.mjs +1 -2
  241. package/dist/styles.css +554 -51
  242. package/dist/styles.js +2 -3
  243. package/dist/styles.layered.css +554 -51
  244. package/dist/styles.mjs +1 -2
  245. package/dist/switch.js +0 -1
  246. package/dist/switch.mjs +0 -1
  247. package/dist/tab.js +0 -1
  248. package/dist/tab.mjs +0 -1
  249. package/dist/table.js +0 -1
  250. package/dist/table.mjs +0 -1
  251. package/dist/tag-input.js +0 -1
  252. package/dist/tag-input.mjs +0 -1
  253. package/dist/text-area.js +0 -1
  254. package/dist/text-area.mjs +0 -1
  255. package/dist/text-input.js +0 -1
  256. package/dist/text-input.mjs +0 -1
  257. package/dist/toast.js +0 -1
  258. package/dist/toast.mjs +0 -1
  259. package/dist/toggle-group.js +3 -4
  260. package/dist/toggle-group.mjs +1 -2
  261. package/dist/tooltip.js +0 -1
  262. package/dist/tooltip.mjs +0 -1
  263. package/dist/utils/cn.js +0 -1
  264. package/dist/utils/cn.mjs +0 -1
  265. package/dist/utils/scroll.js +0 -1
  266. package/dist/utils/scroll.mjs +0 -1
  267. package/dist/virtual-scroll.js +0 -1
  268. package/dist/virtual-scroll.mjs +0 -1
  269. package/package.json +14 -8
  270. package/scripts/setup-cursor-rules.cjs +164 -27
  271. package/dist/chunks/chunk-22ULI3BF.js +0 -21
  272. package/dist/chunks/chunk-6ECGMUT6.mjs +0 -5
  273. package/dist/chunks/chunk-CVYXRSXT.mjs +0 -8
  274. package/dist/chunks/chunk-I252NERB.mjs +0 -21
  275. package/dist/chunks/chunk-JNMCYWGY.js +0 -10
  276. package/dist/chunks/chunk-V35IEPRL.js +0 -7
  277. package/dist/components/ThemeProvider.d.ts +0 -25
  278. package/dist/components/ThemeProvider.d.ts.map +0 -1
  279. package/dist/schemas/theme-provider.d.ts +0 -36
  280. package/dist/schemas/theme-provider.d.ts.map +0 -1
  281. package/dist/schemas/themeProvider.json +0 -65
  282. package/dist/theme-provider.js +0 -15
  283. package/dist/theme-provider.mjs +0 -2
  284. package/dist/chunks/{chunk-CWMLTXOH.mjs → chunk-5ZVPTIL3.mjs} +1 -1
  285. package/dist/chunks/{chunk-HFBTS42N.js → chunk-7F4SOLAC.js} +1 -1
package/dist/styles.mjs CHANGED
@@ -1,5 +1,4 @@
1
- import { built_default } from './chunks/chunk-6ECGMUT6.mjs';
2
- import './chunks/chunk-CVYXRSXT.mjs';
1
+ import { built_default } from './chunks/chunk-EILXBLEV.mjs';
3
2
 
4
3
  // src/styles/inject.ts
5
4
  var STYLE_ID = "__nexus-ds__";
package/dist/switch.js CHANGED
@@ -2,7 +2,6 @@
2
2
 
3
3
  var chunkX2SHTVZQ_js = require('./chunks/chunk-X2SHTVZQ.js');
4
4
  require('./chunks/chunk-CZC76ZD5.js');
5
- require('./chunks/chunk-JNMCYWGY.js');
6
5
 
7
6
 
8
7
 
package/dist/switch.mjs CHANGED
@@ -1,3 +1,2 @@
1
1
  export { Switch, switchVariants } from './chunks/chunk-ADO7PDLY.mjs';
2
2
  import './chunks/chunk-MCKOWMLS.mjs';
3
- import './chunks/chunk-CVYXRSXT.mjs';
package/dist/tab.js CHANGED
@@ -2,7 +2,6 @@
2
2
 
3
3
  var chunk2ZXDXO4I_js = require('./chunks/chunk-2ZXDXO4I.js');
4
4
  require('./chunks/chunk-CZC76ZD5.js');
5
- require('./chunks/chunk-JNMCYWGY.js');
6
5
 
7
6
 
8
7
 
package/dist/tab.mjs CHANGED
@@ -1,3 +1,2 @@
1
1
  export { Tab, tabListVariants, tabTriggerVariants } from './chunks/chunk-QZ4QR3XV.mjs';
2
2
  import './chunks/chunk-MCKOWMLS.mjs';
3
- import './chunks/chunk-CVYXRSXT.mjs';
package/dist/table.js CHANGED
@@ -3,7 +3,6 @@
3
3
  var chunk3RK3UT2O_js = require('./chunks/chunk-3RK3UT2O.js');
4
4
  require('./chunks/chunk-BLGQHR3M.js');
5
5
  require('./chunks/chunk-CZC76ZD5.js');
6
- require('./chunks/chunk-JNMCYWGY.js');
7
6
 
8
7
 
9
8
 
package/dist/table.mjs CHANGED
@@ -1,4 +1,3 @@
1
1
  export { Table, TableHighlightProvider, TableRow, TdColumn, tableRowVariants, useTableHighlight } from './chunks/chunk-AAITRHED.mjs';
2
2
  import './chunks/chunk-P2T72N62.mjs';
3
3
  import './chunks/chunk-MCKOWMLS.mjs';
4
- import './chunks/chunk-CVYXRSXT.mjs';
package/dist/tag-input.js CHANGED
@@ -2,7 +2,6 @@
2
2
 
3
3
  var chunkDYPPVXQF_js = require('./chunks/chunk-DYPPVXQF.js');
4
4
  require('./chunks/chunk-CZC76ZD5.js');
5
- require('./chunks/chunk-JNMCYWGY.js');
6
5
 
7
6
 
8
7
 
@@ -1,3 +1,2 @@
1
1
  export { TagInput, tagInputVariants } from './chunks/chunk-H2V7RHYV.mjs';
2
2
  import './chunks/chunk-MCKOWMLS.mjs';
3
- import './chunks/chunk-CVYXRSXT.mjs';
package/dist/text-area.js CHANGED
@@ -2,7 +2,6 @@
2
2
 
3
3
  var chunkXGIJZ3NZ_js = require('./chunks/chunk-XGIJZ3NZ.js');
4
4
  require('./chunks/chunk-CZC76ZD5.js');
5
- require('./chunks/chunk-JNMCYWGY.js');
6
5
 
7
6
 
8
7
 
@@ -1,3 +1,2 @@
1
1
  export { TextArea, textAreaVariants } from './chunks/chunk-ZU4AWAFT.mjs';
2
2
  import './chunks/chunk-MCKOWMLS.mjs';
3
- import './chunks/chunk-CVYXRSXT.mjs';
@@ -2,7 +2,6 @@
2
2
 
3
3
  var chunkBBLBTOP4_js = require('./chunks/chunk-BBLBTOP4.js');
4
4
  require('./chunks/chunk-CZC76ZD5.js');
5
- require('./chunks/chunk-JNMCYWGY.js');
6
5
 
7
6
 
8
7
 
@@ -1,3 +1,2 @@
1
1
  export { TextInput, textInputVariants } from './chunks/chunk-UKRU46PH.mjs';
2
2
  import './chunks/chunk-MCKOWMLS.mjs';
3
- import './chunks/chunk-CVYXRSXT.mjs';
package/dist/toast.js CHANGED
@@ -2,7 +2,6 @@
2
2
 
3
3
  var chunkYB5ZKHVB_js = require('./chunks/chunk-YB5ZKHVB.js');
4
4
  require('./chunks/chunk-CZC76ZD5.js');
5
- require('./chunks/chunk-JNMCYWGY.js');
6
5
 
7
6
 
8
7
 
package/dist/toast.mjs CHANGED
@@ -1,3 +1,2 @@
1
1
  export { Toaster, toast, useToast } from './chunks/chunk-ZWSIIGA3.mjs';
2
2
  import './chunks/chunk-MCKOWMLS.mjs';
3
- import './chunks/chunk-CVYXRSXT.mjs';
@@ -1,16 +1,15 @@
1
1
  'use strict';
2
2
 
3
- var chunkK574BYHQ_js = require('./chunks/chunk-K574BYHQ.js');
3
+ var chunkK3CK7NTP_js = require('./chunks/chunk-K3CK7NTP.js');
4
4
  require('./chunks/chunk-CZC76ZD5.js');
5
- require('./chunks/chunk-JNMCYWGY.js');
6
5
 
7
6
 
8
7
 
9
8
  Object.defineProperty(exports, "ToggleGroup", {
10
9
  enumerable: true,
11
- get: function () { return chunkK574BYHQ_js.ToggleGroup; }
10
+ get: function () { return chunkK3CK7NTP_js.ToggleGroup; }
12
11
  });
13
12
  Object.defineProperty(exports, "toggleGroupVariants", {
14
13
  enumerable: true,
15
- get: function () { return chunkK574BYHQ_js.toggleGroupVariants; }
14
+ get: function () { return chunkK3CK7NTP_js.toggleGroupVariants; }
16
15
  });
@@ -1,3 +1,2 @@
1
- export { ToggleGroup, toggleGroupVariants } from './chunks/chunk-Z4YM7LU3.mjs';
1
+ export { ToggleGroup, toggleGroupVariants } from './chunks/chunk-PIGHBDK5.mjs';
2
2
  import './chunks/chunk-MCKOWMLS.mjs';
3
- import './chunks/chunk-CVYXRSXT.mjs';
package/dist/tooltip.js CHANGED
@@ -2,7 +2,6 @@
2
2
 
3
3
  var chunkIE4DGLMH_js = require('./chunks/chunk-IE4DGLMH.js');
4
4
  require('./chunks/chunk-CZC76ZD5.js');
5
- require('./chunks/chunk-JNMCYWGY.js');
6
5
 
7
6
 
8
7
 
package/dist/tooltip.mjs CHANGED
@@ -1,3 +1,2 @@
1
1
  export { Tooltip, TooltipProvider, tooltipContentVariants } from './chunks/chunk-W4GG5A7K.mjs';
2
2
  import './chunks/chunk-MCKOWMLS.mjs';
3
- import './chunks/chunk-CVYXRSXT.mjs';
package/dist/utils/cn.js CHANGED
@@ -1,7 +1,6 @@
1
1
  'use strict';
2
2
 
3
3
  var chunkCZC76ZD5_js = require('../chunks/chunk-CZC76ZD5.js');
4
- require('../chunks/chunk-JNMCYWGY.js');
5
4
 
6
5
 
7
6
 
package/dist/utils/cn.mjs CHANGED
@@ -1,2 +1 @@
1
1
  export { cn } from '../chunks/chunk-MCKOWMLS.mjs';
2
- import '../chunks/chunk-CVYXRSXT.mjs';
@@ -1,7 +1,6 @@
1
1
  'use strict';
2
2
 
3
3
  var chunkT2IY2TSR_js = require('../chunks/chunk-T2IY2TSR.js');
4
- require('../chunks/chunk-JNMCYWGY.js');
5
4
 
6
5
 
7
6
 
@@ -1,2 +1 @@
1
1
  export { scrollFreeze, scrollRelease } from '../chunks/chunk-54IA2P2Z.mjs';
2
- import '../chunks/chunk-CVYXRSXT.mjs';
@@ -2,7 +2,6 @@
2
2
 
3
3
  var chunkOMN5YQCE_js = require('./chunks/chunk-OMN5YQCE.js');
4
4
  require('./chunks/chunk-CZC76ZD5.js');
5
- require('./chunks/chunk-JNMCYWGY.js');
6
5
 
7
6
 
8
7
 
@@ -1,3 +1,2 @@
1
1
  export { VirtualGrid, VirtualList } from './chunks/chunk-EHAUUUWB.mjs';
2
2
  import './chunks/chunk-MCKOWMLS.mjs';
3
- import './chunks/chunk-CVYXRSXT.mjs';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nexus-cross/design-system",
3
- "version": "1.0.13",
3
+ "version": "1.1.0",
4
4
  "description": "NEXUS Design System UI Components",
5
5
  "main": "./dist/index.js",
6
6
  "module": "./dist/index.mjs",
@@ -91,6 +91,11 @@
91
91
  "import": "./dist/select.mjs",
92
92
  "require": "./dist/select.js"
93
93
  },
94
+ "./combobox": {
95
+ "types": "./dist/components/Combobox.d.ts",
96
+ "import": "./dist/combobox.mjs",
97
+ "require": "./dist/combobox.js"
98
+ },
94
99
  "./drawer": {
95
100
  "types": "./dist/components/Drawer.d.ts",
96
101
  "import": "./dist/drawer.mjs",
@@ -181,6 +186,11 @@
181
186
  "import": "./dist/data-list.mjs",
182
187
  "require": "./dist/data-list.js"
183
188
  },
189
+ "./data-grid": {
190
+ "types": "./dist/components/DataGrid.d.ts",
191
+ "import": "./dist/data-grid.mjs",
192
+ "require": "./dist/data-grid.js"
193
+ },
184
194
  "./empty-state": {
185
195
  "types": "./dist/components/EmptyState.d.ts",
186
196
  "import": "./dist/empty-state.mjs",
@@ -236,11 +246,6 @@
236
246
  "import": "./dist/error-boundary.mjs",
237
247
  "require": "./dist/error-boundary.js"
238
248
  },
239
- "./theme-provider": {
240
- "types": "./dist/components/ThemeProvider.d.ts",
241
- "import": "./dist/theme-provider.mjs",
242
- "require": "./dist/theme-provider.js"
243
- },
244
249
  "./toast": {
245
250
  "types": "./dist/toast/index.d.ts",
246
251
  "import": "./dist/toast.mjs",
@@ -292,6 +297,7 @@
292
297
  "files": [
293
298
  "dist",
294
299
  "cursor-rules",
300
+ "claude-rules",
295
301
  "scripts/setup-cursor-rules.cjs",
296
302
  "DESIGN.md"
297
303
  ],
@@ -311,7 +317,7 @@
311
317
  "registry": "https://registry.npmjs.org/"
312
318
  },
313
319
  "peerDependencies": {
314
- "@nexus-cross/tokens": "^1.0.0",
320
+ "@nexus-cross/tokens": "^1.1.0",
315
321
  "react": "^18.0.0 || ^19.0.0",
316
322
  "react-dom": "^18.0.0 || ^19.0.0"
317
323
  },
@@ -348,7 +354,7 @@
348
354
  "typescript": "^5.0.0",
349
355
  "vitest": "^1.6.1",
350
356
  "zod-to-json-schema": "^3.25.2",
351
- "@nexus-cross/tokens": "1.0.13"
357
+ "@nexus-cross/tokens": "1.1.0"
352
358
  },
353
359
  "scripts": {
354
360
  "postinstall": "node scripts/setup-cursor-rules.cjs",
@@ -3,7 +3,21 @@
3
3
  const fs = require('fs');
4
4
  const path = require('path');
5
5
 
6
- const UI_RULES = ['nexus-project-setup.mdc', 'nexus-ui-components.mdc', 'nexus-ui-api.mdc'];
6
+ // ─────────────────────────────────────────────────────────────────
7
+ // Cursor용 mdc 파일들 (.cursor/rules/ 에 직접 설치)
8
+ // ─────────────────────────────────────────────────────────────────
9
+ const UI_RULES = [
10
+ 'nexus-project-setup.mdc',
11
+ 'nexus-ui-components.mdc',
12
+ 'nexus-ui-api.mdc',
13
+ 'nexus-ui-decisions.mdc',
14
+ ];
15
+
16
+ const CLAUDE_COMMANDS = [
17
+ 'nexus-audit.md',
18
+ 'nexus-token-check.md',
19
+ 'nexus-component-map.md',
20
+ ];
7
21
 
8
22
  const TOKENS_FRONTMATTER = `---
9
23
  description: "NEXUS Design Token Reference — Tailwind classes and CSS variables for colors, typography, spacing, and all design tokens"
@@ -19,6 +33,15 @@ alwaysApply: true
19
33
 
20
34
  `;
21
35
 
36
+ // ─────────────────────────────────────────────────────────────────
37
+ // Claude Code용 영역 (.claude/nexus/** force overwrite)
38
+ // 사용자 CLAUDE.md에는 마커 블록만 삽입/갱신
39
+ // ─────────────────────────────────────────────────────────────────
40
+ const CLAUDE_NEXUS_DIR = path.join('.claude', 'nexus');
41
+ const CLAUDE_IMPORT_LINE = '@.claude/nexus/CLAUDE.md';
42
+ const NEXUS_MARKER_START = '<!-- nexus-design-system:start (auto-managed by @nexus-cross/design-system; do not edit between markers) -->';
43
+ const NEXUS_MARKER_END = '<!-- nexus-design-system:end -->';
44
+
22
45
  function findProjectRoot(startDir) {
23
46
  let dir = startDir;
24
47
  while (dir !== path.parse(dir).root) {
@@ -31,6 +54,65 @@ function findProjectRoot(startDir) {
31
54
  return null;
32
55
  }
33
56
 
57
+ /**
58
+ * mdc frontmatter (---...---) 제거. Claude Code .md 형식용.
59
+ */
60
+ function stripFrontmatter(content) {
61
+ if (!content.startsWith('---\n')) return content;
62
+ const end = content.indexOf('\n---\n', 4);
63
+ if (end === -1) return content;
64
+ return content.slice(end + 5).replace(/^\s+/, '');
65
+ }
66
+
67
+ /**
68
+ * 사용자 CLAUDE.md의 마커 블록을 삽입/갱신.
69
+ * - 마커 없음: 파일 맨 위에 삽입 (파일 없으면 생성)
70
+ * - 마커 있음: 마커 사이만 교체
71
+ * - 사용자가 마커 + import 라인을 일부러 지웠어도 다시 강제로 추가하지 않음
72
+ * (= 마커 블록 자체가 통째로 사라진 경우만 재삽입)
73
+ */
74
+ function upsertClaudeMdMarker(claudeMdPath, label) {
75
+ const block = `${NEXUS_MARKER_START}\n${CLAUDE_IMPORT_LINE}\n${NEXUS_MARKER_END}`;
76
+ const exists = fs.existsSync(claudeMdPath);
77
+ const original = exists ? fs.readFileSync(claudeMdPath, 'utf-8') : '';
78
+
79
+ const startIdx = original.indexOf(NEXUS_MARKER_START);
80
+ const endIdx = original.indexOf(NEXUS_MARKER_END);
81
+
82
+ let next;
83
+ if (startIdx !== -1 && endIdx !== -1 && endIdx > startIdx) {
84
+ // 마커 블록 교체 (안의 내용이 바뀌지 않으면 write skip)
85
+ const before = original.slice(0, startIdx);
86
+ const after = original.slice(endIdx + NEXUS_MARKER_END.length);
87
+ next = `${before}${block}${after}`;
88
+ } else {
89
+ // 마커 없음 → 맨 위에 삽입 (기존 내용 보존)
90
+ next = exists ? `${block}\n\n${original}` : `${block}\n`;
91
+ }
92
+
93
+ if (next !== original) {
94
+ fs.writeFileSync(claudeMdPath, next, 'utf-8');
95
+ console.log(`[${label}] ${exists ? 'updated marker' : 'created'}: CLAUDE.md`);
96
+ return true;
97
+ }
98
+ return false;
99
+ }
100
+
101
+ /**
102
+ * .claude/nexus/** 영역에 파일 force overwrite.
103
+ * 변경 없으면 skip. (mtime 노이즈 방지)
104
+ */
105
+ function writeClaudeNexus(projectRoot, relPath, content, label) {
106
+ const dest = path.join(projectRoot, CLAUDE_NEXUS_DIR, relPath);
107
+ fs.mkdirSync(path.dirname(dest), { recursive: true });
108
+ const exists = fs.existsSync(dest);
109
+ const current = exists ? fs.readFileSync(dest, 'utf-8') : '';
110
+ if (current === content) return false;
111
+ fs.writeFileSync(dest, content, 'utf-8');
112
+ console.log(`[${label}] ${exists ? 'updated' : 'installed'}: .claude/nexus/${relPath}`);
113
+ return true;
114
+ }
115
+
34
116
  function run() {
35
117
  const projectRoot = findProjectRoot(process.cwd()) || findProjectRoot(path.resolve(__dirname, '..', '..', '..'));
36
118
  if (!projectRoot) {
@@ -39,13 +121,19 @@ function run() {
39
121
  }
40
122
 
41
123
  const nodeModules = path.join(projectRoot, 'node_modules');
42
- const targetDir = path.join(projectRoot, '.cursor', 'rules');
43
- fs.mkdirSync(targetDir, { recursive: true });
124
+ const cursorRulesDir = path.join(projectRoot, '.cursor', 'rules');
125
+ fs.mkdirSync(cursorRulesDir, { recursive: true });
126
+
127
+ const rulesSourceDir = path.resolve(__dirname, '..', 'cursor-rules');
128
+ const claudeRulesSourceDir = path.resolve(__dirname, '..', 'claude-rules', 'nexus');
44
129
 
45
130
  let installed = 0;
46
131
 
47
- function writeRule(destName, content, label) {
48
- const dest = path.join(targetDir, destName);
132
+ // ───────────────────────────────────────────────────────────
133
+ // 1. Cursor용 mdc 설치 (.cursor/rules/) — 기존 동작 유지
134
+ // ───────────────────────────────────────────────────────────
135
+ function writeCursorRule(destName, content, label) {
136
+ const dest = path.join(cursorRulesDir, destName);
49
137
  const destExists = fs.existsSync(dest);
50
138
  const destContent = destExists ? fs.readFileSync(dest, 'utf-8') : '';
51
139
  if (!destExists || content !== destContent) {
@@ -55,34 +143,31 @@ function run() {
55
143
  }
56
144
  }
57
145
 
58
- // UI cursor rules
59
- const rulesSourceDir = path.resolve(__dirname, '..', 'cursor-rules');
60
146
  if (fs.existsSync(rulesSourceDir)) {
61
147
  for (const file of UI_RULES) {
62
148
  const src = path.join(rulesSourceDir, file);
63
149
  if (fs.existsSync(src)) {
64
- writeRule(file, fs.readFileSync(src, 'utf-8'), '@nexus-cross/design-system');
150
+ writeCursorRule(file, fs.readFileSync(src, 'utf-8'), '@nexus-cross/design-system');
65
151
  }
66
152
  }
67
153
  }
68
154
 
69
- // Tokens cursor rules
70
155
  const tokensMd = path.join(nodeModules, '@nexus-cross', 'tokens', 'dist', 'TOKENS.md');
71
156
  if (fs.existsSync(tokensMd)) {
72
- writeRule('nexus-tokens.mdc', TOKENS_FRONTMATTER + fs.readFileSync(tokensMd, 'utf-8'), '@nexus-cross/tokens');
157
+ writeCursorRule('nexus-tokens.mdc', TOKENS_FRONTMATTER + fs.readFileSync(tokensMd, 'utf-8'), '@nexus-cross/tokens');
73
158
  }
74
159
 
75
- // Tokens-domains cursor rules
76
160
  const domainsDistDir = path.join(nodeModules, '@nexus-cross', 'tokens-domains', 'dist');
161
+ let domainsContent = null;
77
162
  if (fs.existsSync(domainsDistDir)) {
78
163
  const mds = fs.readdirSync(domainsDistDir).filter(f => f.endsWith('.md'));
79
164
  if (mds.length > 0) {
80
- const content = DOMAINS_FRONTMATTER + mds.map(f => fs.readFileSync(path.join(domainsDistDir, f), 'utf-8')).join('\n\n---\n\n');
81
- writeRule('nexus-domains.mdc', content, '@nexus-cross/tokens-domains');
165
+ domainsContent = mds.map(f => fs.readFileSync(path.join(domainsDistDir, f), 'utf-8')).join('\n\n---\n\n');
166
+ writeCursorRule('nexus-domains.mdc', DOMAINS_FRONTMATTER + domainsContent, '@nexus-cross/tokens-domains');
82
167
  }
83
168
  }
84
169
 
85
- // DESIGN.md → project root
170
+ // DESIGN.md → 프로젝트 루트 (기존 동작 유지)
86
171
  const designMdSrc = path.resolve(__dirname, '..', 'DESIGN.md');
87
172
  if (fs.existsSync(designMdSrc)) {
88
173
  const dest = path.join(projectRoot, 'DESIGN.md');
@@ -96,24 +181,76 @@ function run() {
96
181
  }
97
182
  }
98
183
 
99
- // CLAUDE.md → project root (Claude Code support)
100
- const claudeMdSrc = path.join(rulesSourceDir, 'CLAUDE.md');
101
- if (fs.existsSync(claudeMdSrc)) {
102
- const dest = path.join(projectRoot, 'CLAUDE.md');
103
- const srcContent = fs.readFileSync(claudeMdSrc, 'utf-8');
104
- const destExists = fs.existsSync(dest);
105
- const destContent = destExists ? fs.readFileSync(dest, 'utf-8') : '';
106
- if (!destExists || srcContent !== destContent) {
107
- fs.writeFileSync(dest, srcContent, 'utf-8');
108
- installed++;
109
- console.log(`[@nexus-cross/design-system] ${destExists ? 'updated' : 'installed'}: CLAUDE.md`);
184
+ // ───────────────────────────────────────────────────────────
185
+ // 2. Claude Code용 .claude/nexus/** 설치 (force overwrite)
186
+ // 사용자 CLAUDE.md는 절대 통째로 덮어쓰지 않음.
187
+ // ───────────────────────────────────────────────────────────
188
+ const LABEL_CC = '@nexus-cross/design-system → CC';
189
+
190
+ // 2-1. claude-rules/nexus/CLAUDE.md (root 인덱스 + @import 모음)
191
+ const ccRootMd = path.join(claudeRulesSourceDir, 'CLAUDE.md');
192
+ if (fs.existsSync(ccRootMd)) {
193
+ if (writeClaudeNexus(projectRoot, 'CLAUDE.md', fs.readFileSync(ccRootMd, 'utf-8'), LABEL_CC)) installed++;
194
+ }
195
+
196
+ // 2-2. SKILL.md (자연어 트리거)
197
+ const ccSkillMd = path.join(claudeRulesSourceDir, 'skills', 'nexus-design-system', 'SKILL.md');
198
+ if (fs.existsSync(ccSkillMd)) {
199
+ if (writeClaudeNexus(
200
+ projectRoot,
201
+ 'skills/nexus-design-system/SKILL.md',
202
+ fs.readFileSync(ccSkillMd, 'utf-8'),
203
+ LABEL_CC,
204
+ )) installed++;
205
+ }
206
+
207
+ // 2-3. mdc → md 변환 복사 (CC는 frontmatter 없는 .md 선호)
208
+ function copyAsClaudeMd(srcMdcPath, destRelMd) {
209
+ if (!fs.existsSync(srcMdcPath)) return;
210
+ const stripped = stripFrontmatter(fs.readFileSync(srcMdcPath, 'utf-8'));
211
+ if (writeClaudeNexus(projectRoot, destRelMd, stripped, LABEL_CC)) installed++;
212
+ }
213
+ copyAsClaudeMd(path.join(rulesSourceDir, 'nexus-ui-components.mdc'), 'ui-components.md');
214
+ copyAsClaudeMd(path.join(rulesSourceDir, 'nexus-ui-api.mdc'), 'ui-api.md');
215
+ copyAsClaudeMd(path.join(rulesSourceDir, 'nexus-ui-decisions.mdc'), 'ui-decisions.md');
216
+
217
+ if (fs.existsSync(tokensMd)) {
218
+ if (writeClaudeNexus(projectRoot, 'tokens.md', fs.readFileSync(tokensMd, 'utf-8'), LABEL_CC)) installed++;
219
+ }
220
+ if (domainsContent) {
221
+ if (writeClaudeNexus(projectRoot, 'domains.md', domainsContent, LABEL_CC)) installed++;
222
+ }
223
+
224
+ // 2-4. 슬래시 커맨드 설치 (.claude/commands/)
225
+ // .claude/nexus/ 와 다르게 사용자 commands 와 섞이는 위치이므로
226
+ // nexus-* 프리픽스만 force overwrite (다른 사용자 커맨드는 안 건드림)
227
+ const ccCommandsSource = path.join(claudeRulesSourceDir, 'commands');
228
+ if (fs.existsSync(ccCommandsSource)) {
229
+ const ccCommandsDir = path.join(projectRoot, '.claude', 'commands');
230
+ fs.mkdirSync(ccCommandsDir, { recursive: true });
231
+ for (const cmdFile of CLAUDE_COMMANDS) {
232
+ const src = path.join(ccCommandsSource, cmdFile);
233
+ if (!fs.existsSync(src)) continue;
234
+ const dest = path.join(ccCommandsDir, cmdFile);
235
+ const srcContent = fs.readFileSync(src, 'utf-8');
236
+ const destExists = fs.existsSync(dest);
237
+ const destContent = destExists ? fs.readFileSync(dest, 'utf-8') : '';
238
+ if (srcContent !== destContent) {
239
+ fs.writeFileSync(dest, srcContent, 'utf-8');
240
+ installed++;
241
+ console.log(`[${LABEL_CC}] ${destExists ? 'updated' : 'installed'}: .claude/commands/${cmdFile}`);
242
+ }
110
243
  }
111
244
  }
112
245
 
246
+ // 2-5. 사용자 CLAUDE.md에 마커 블록 삽입/갱신 (force overwrite 아님)
247
+ const userClaudeMd = path.join(projectRoot, 'CLAUDE.md');
248
+ if (upsertClaudeMdMarker(userClaudeMd, LABEL_CC)) installed++;
249
+
113
250
  if (installed === 0) {
114
- console.log('[@nexus-cross] Cursor rules are already up to date.');
251
+ console.log('[@nexus-cross] All rules are already up to date.');
115
252
  } else {
116
- console.log(`[@nexus-cross] ${installed} file(s) installed.`);
253
+ console.log(`[@nexus-cross] ${installed} file(s) installed/updated.`);
117
254
  }
118
255
  }
119
256
 
@@ -1,21 +0,0 @@
1
- 'use strict';
2
-
3
- var chunkJNMCYWGY_js = require('./chunk-JNMCYWGY.js');
4
- var jsxRuntime = require('react/jsx-runtime');
5
-
6
- exports.ThemeProvider = ({ children }) => /* @__PURE__ */ jsxRuntime.jsx(jsxRuntime.Fragment, { children });
7
- exports.useTheme = () => ({
8
- theme: void 0,
9
- setTheme: () => {
10
- },
11
- resolvedTheme: void 0,
12
- themes: [],
13
- systemTheme: void 0,
14
- forcedTheme: void 0
15
- });
16
- try {
17
- const nextThemes = chunkJNMCYWGY_js.__require("next-themes");
18
- exports.ThemeProvider = nextThemes.ThemeProvider;
19
- exports.useTheme = nextThemes.useTheme;
20
- } catch {
21
- }