@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
@@ -1 +1 @@
1
- {"version":3,"file":"divider.d.ts","sourceRoot":"","sources":["../../src/schemas/divider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;EAc2C,CAAC"}
1
+ {"version":3,"file":"divider.d.ts","sourceRoot":"","sources":["../../src/schemas/divider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;EA4B5B,CAAC"}
@@ -36,7 +36,7 @@
36
36
  }
37
37
  },
38
38
  "additionalProperties": false,
39
- "description": "Divider. Supports horizontal/vertical, solid/dashed/dotted."
39
+ "description": "Divider visual separator (horizontal/vertical line).\n\nWHEN TO USE:\n • Separating sections within a card / list\n • Vertical separator between inline items (orientation=\"vertical\")\n • Use color prop sparingly — defaults to border-default token\n • For grouping form sections, prefer larger spacing over Divider\n • Tab/Accordion already provide visual separation — don't add Divider\n\nANTI-PATTERNS:\n ✗ Stacking many Dividers — increase spacing instead\n ✗ Using Divider as decorative line with bright color → use Tailwind border utility on container\n ✗ Inline <hr> with custom CSS → Divider (consistent token)"
40
40
  }
41
41
  },
42
42
  "$schema": "http://json-schema.org/draft-07/schema#"
@@ -1 +1 @@
1
- {"version":3,"file":"drawer.d.ts","sourceRoot":"","sources":["../../src/schemas/drawer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAMxB,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;EAUgD,CAAC;AAE/E,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;EAYF,CAAC;AAEpC,eAAO,MAAM,wBAAwB;;;;;;;;;;;;EAMF,CAAC;AAEpC,eAAO,MAAM,sBAAsB;;;;;;;;;;;;EAMA,CAAC;AAEpC,eAAO,MAAM,sBAAsB;;;;;;;;;EAKsB,CAAC;AAE1D,eAAO,MAAM,4BAA4B;;;;;;;;;EAKP,CAAC"}
1
+ {"version":3,"file":"drawer.d.ts","sourceRoot":"","sources":["../../src/schemas/drawer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAMxB,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;EA0B3B,CAAC;AAEJ,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;EAYF,CAAC;AAEpC,eAAO,MAAM,wBAAwB;;;;;;;;;;;;EAMF,CAAC;AAEpC,eAAO,MAAM,sBAAsB;;;;;;;;;;;;EAMA,CAAC;AAEpC,eAAO,MAAM,sBAAsB;;;;;;;;;EAKsB,CAAC;AAE1D,eAAO,MAAM,4BAA4B;;;;;;;;;EAKP,CAAC"}
@@ -39,7 +39,7 @@
39
39
  }
40
40
  },
41
41
  "additionalProperties": false,
42
- "description": "Drawer/bottom sheet. Based on Vaul. Compound component pattern."
42
+ "description": "Drawer / bottom sheet. Based on Vaul. Compound component pattern.\n\nWHEN TO USE:\n • Side panel for secondary action while user can still see main content (filter panel, item details)\n • Mobile bottom sheet (direction=\"bottom\")\n • Force decision blocking main flow → Modal instead\n • Inline anchor-positioned UI → Popover instead\n\nDIRECTION: bottom (default, mobile-friendly), top, left, right.\ndismissible=true (default) allows swipe/outside-click close. Set false for blocking flows.\n\nANTI-PATTERNS:\n ✗ Drawer for confirmation dialogs → Modal (decision-forcing)\n ✗ Always shouldScaleBackground → only enable for true mobile bottom-sheets\n ✗ Forgetting Drawer.Title → required for screen readers (a11y)"
43
43
  }
44
44
  },
45
45
  "$schema": "http://json-schema.org/draft-07/schema#"
@@ -1 +1 @@
1
- {"version":3,"file":"dropdown-menu.d.ts","sourceRoot":"","sources":["../../src/schemas/dropdown-menu.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAYxB,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAS0D,CAAC"}
1
+ {"version":3,"file":"dropdown-menu.d.ts","sourceRoot":"","sources":["../../src/schemas/dropdown-menu.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAYxB,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA0BjC,CAAC"}
@@ -76,7 +76,7 @@
76
76
  "items"
77
77
  ],
78
78
  "additionalProperties": false,
79
- "description": "Dropdown menu. Based on Radix DropdownMenu. Action menu for context/more menus."
79
+ "description": "Dropdown menu — list of actions/commands triggered by a button. Based on Radix DropdownMenu (role=\"menu\" + keyboard nav).\n\nWHEN TO USE:\n • \"More\" / context menu (•••, ⋮)\n • Action lists where each item triggers a function (save, share, delete)\n • Selecting a value (form field) → Select / Combobox (not DropdownMenu)\n • Multi-select toggles → ToggleGroup or CheckBox group\n • Anchored info panel → Popover\n\nUse danger=true on destructive items (Delete) for visual + semantic emphasis.\nUse separator=true to group related actions.\n\nANTI-PATTERNS:\n ✗ DropdownMenu for value selection submitted later → Select / Combobox\n ✗ Custom <div onClick> with isOpen state → DropdownMenu\n ✗ Long form inputs inside menu items → Popover instead"
80
80
  }
81
81
  },
82
82
  "$schema": "http://json-schema.org/draft-07/schema#"
@@ -1 +1 @@
1
- {"version":3,"file":"ellipsis.d.ts","sourceRoot":"","sources":["../../src/schemas/ellipsis.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;EAW6B,CAAC"}
1
+ {"version":3,"file":"ellipsis.d.ts","sourceRoot":"","sources":["../../src/schemas/ellipsis.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;EA0B7B,CAAC"}
@@ -42,7 +42,7 @@
42
42
  }
43
43
  },
44
44
  "additionalProperties": false,
45
- "description": "Text ellipsis. Built-in show more/less toggle."
45
+ "description": "Ellipsis clamp long text to N lines with \"show more / less\" toggle.\n\nWHEN TO USE:\n • Long descriptions in cards, comments, post previews\n • Single-line truncation only → CSS line-clamp utility (lighter)\n • Tooltip on hover for full text → Tooltip + truncate utility\n • Critical content that must be fully readable — don't truncate\n\ntriggerMore/triggerLess accept ReactNode for icons or styled buttons.\n\nANTI-PATTERNS:\n ✗ Ellipsis on titles / labels — confusing UX\n ✗ Always-collapsed (defaultShortened=true) for short text — measurement waste\n ✗ Overriding triggerMore/Less with HTML that breaks accessibility (use button-like)"
46
46
  }
47
47
  },
48
48
  "$schema": "http://json-schema.org/draft-07/schema#"
@@ -1 +1 @@
1
- {"version":3,"file":"empty-state.d.ts","sourceRoot":"","sources":["../../src/schemas/empty-state.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;EAU8C,CAAC"}
1
+ {"version":3,"file":"empty-state.d.ts","sourceRoot":"","sources":["../../src/schemas/empty-state.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;EAyB/B,CAAC"}
@@ -37,7 +37,7 @@
37
37
  }
38
38
  },
39
39
  "additionalProperties": false,
40
- "description": "Empty state placeholder. Shown when data is empty or unavailable."
40
+ "description": "EmptyState friendly placeholder for empty lists, no search results, first-time setup.\n\nWHEN TO USE:\n • Empty inbox / list / search results\n • First-time use (onboarding nudge with action button)\n • Loading → Skeleton/Spinner (NOT EmptyState)\n • Error → Alert (or pass icon + title to EmptyState only when conceptually \"nothing here\")\n\nDataList/DataGrid have built-in noDataMessage that wraps EmptyState — use that prop instead of conditional rendering.\n\nANTI-PATTERNS:\n ✗ Showing EmptyState during loading (confuses users into thinking data is missing)\n ✗ EmptyState without action when user can fix it (\"Create your first X\" button)\n ✗ Cluttered EmptyState (too much text/multiple CTAs) — keep one primary action"
41
41
  }
42
42
  },
43
43
  "$schema": "http://json-schema.org/draft-07/schema#"
@@ -1 +1 @@
1
- {"version":3,"file":"error-boundary.d.ts","sourceRoot":"","sources":["../../src/schemas/error-boundary.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,wBAAwB;;;;;;;;;;;;EASyD,CAAC"}
1
+ {"version":3,"file":"error-boundary.d.ts","sourceRoot":"","sources":["../../src/schemas/error-boundary.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,wBAAwB;;;;;;;;;;;;EAuBlC,CAAC"}
@@ -15,7 +15,7 @@
15
15
  }
16
16
  },
17
17
  "additionalProperties": false,
18
- "description": "Error boundary. Catches child component render errors and displays fallback UI."
18
+ "description": "ErrorBoundary catches render-time errors in subtree and shows fallback UI.\n\nWHEN TO USE:\n • Wrap risky areas: third-party widgets, dynamic imports, untrusted content rendering\n • Async errors / promise rejections → NOT caught (use try/catch in handlers)\n • Per-route error wrapping → use framework's error.tsx (Next.js) where possible\n\nDataList / DataGrid have ErrorBoundary built-in — don't double-wrap.\n\nANTI-PATTERNS:\n ✗ ErrorBoundary at app root only — granular boundaries give better UX (one widget fails, page survives)\n ✗ Showing raw Error.message in production (leak risk) — use friendly fallback\n ✗ Forgetting onError logging → silent failures in production"
19
19
  }
20
20
  },
21
21
  "$schema": "http://json-schema.org/draft-07/schema#"
@@ -1 +1 @@
1
- {"version":3,"file":"image-upload.d.ts","sourceRoot":"","sources":["../../src/schemas/image-upload.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA8BhC,CAAC"}
1
+ {"version":3,"file":"image-upload.d.ts","sourceRoot":"","sources":["../../src/schemas/image-upload.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA0ChC,CAAC"}
@@ -76,7 +76,7 @@
76
76
  }
77
77
  },
78
78
  "additionalProperties": false,
79
- "description": "ImageUpload. Drag-and-drop image upload with preview, file validation, and field label/description support."
79
+ "description": "ImageUpload — drag-and-drop image upload with preview, file-type/size validation, label/description.\n\nWHEN TO USE:\n • Single image upload: avatar, cover, KYC document, post thumbnail\n • Multiple files / non-image → not yet supported; build custom or use a file dropzone\n • Inline image picker without preview → custom <input type=\"file\">\n\naccept whitelist + maxSize together cover validation. onError fires with i18n-ready string.\n\nANTI-PATTERNS:\n ✗ <input type=\"file\"> + manual preview → ImageUpload (handles drag, validation, preview)\n ✗ ImageUpload without onError handler → silent failure on validation reject\n ✗ Storing image as data-URL value (use File via onChange and upload to server)"
80
80
  }
81
81
  },
82
82
  "$schema": "http://json-schema.org/draft-07/schema#"
@@ -3,6 +3,7 @@ export { buttonPropsSchema } from './button';
3
3
  export { textInputPropsSchema } from './text-input';
4
4
  export { textAreaPropsSchema } from './text-area';
5
5
  export { selectPropsSchema, selectItemPropsSchema } from './select';
6
+ export { comboboxPropsSchema, comboboxOptionSchema } from './combobox';
6
7
  export { dropdownMenuPropsSchema } from './dropdown-menu';
7
8
  export { toggleGroupPropsSchema } from './toggle-group';
8
9
  export { sliderPropsSchema } from './slider';
@@ -35,10 +36,10 @@ export { emptyStatePropsSchema } from './empty-state';
35
36
  export { numberInputPropsSchema } from './number-input';
36
37
  export { priceInputPropsSchema } from './price-input';
37
38
  export { dataListPropsSchema } from './data-list';
39
+ export { dataGridPropsSchema } from './data-grid';
38
40
  export { modalTemplatePropsSchema, modalCallSchema } from './modal';
39
41
  export { errorBoundaryPropsSchema } from './error-boundary';
40
42
  export { clientOnlyPropsSchema } from './client-only';
41
- export { themeProviderPropsSchema } from './theme-provider';
42
43
  export { tablePropsSchema, tableRowPropsSchema, tdColumnPropsSchema, } from './table';
43
44
  export { toasterPropsSchema, toastOptionsSchema } from './toast';
44
45
  export { tagInputPropsSchema } from './tag-input';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/schemas/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/schemas/index.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"infinite-scroll.d.ts","sourceRoot":"","sources":["../../src/schemas/infinite-scroll.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAoBwB,CAAC"}
1
+ {"version":3,"file":"infinite-scroll.d.ts","sourceRoot":"","sources":["../../src/schemas/infinite-scroll.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAoCnC,CAAC"}
@@ -58,7 +58,7 @@
58
58
  "list"
59
59
  ],
60
60
  "additionalProperties": false,
61
- "description": "Infinite scroll. Based on IntersectionObserver."
61
+ "description": "InfiniteScroll — auto-load more when sentinel enters viewport. Based on IntersectionObserver.\n\nWHEN TO USE:\n • Feeds, social timelines, search-as-you-scroll\n • Continuous browsing where total isn't critical\n • Need jump-to-page → Pagination (not InfiniteScroll)\n • Need to render 1000s of already-loaded items efficiently → VirtualList\n • Combine with VirtualList for huge + paginated data\n\nPass either totalCount or hasMore (not both). handleLoadMore is required.\n\nANTI-PATTERNS:\n ✗ InfiniteScroll without footer/loading element (looks broken at the bottom)\n ✗ InfiniteScroll without debouncing handleLoadMore — duplicate fetches\n ✗ Auto-loading critical actions in footer (links, contact) — they become unreachable"
62
62
  }
63
63
  },
64
64
  "$schema": "http://json-schema.org/draft-07/schema#"
@@ -1 +1 @@
1
- {"version":3,"file":"marquee.d.ts","sourceRoot":"","sources":["../../src/schemas/marquee.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;EAakB,CAAC"}
1
+ {"version":3,"file":"marquee.d.ts","sourceRoot":"","sources":["../../src/schemas/marquee.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;EA4B5B,CAAC"}
@@ -42,7 +42,7 @@
42
42
  }
43
43
  },
44
44
  "additionalProperties": false,
45
- "description": "Marquee (scrolling text/elements)."
45
+ "description": "Marquee — endless scrolling content (logo strip, promo banner, news ticker).\n\nWHEN TO USE:\n • Logo cloud, partner brands strip, social proof\n • Critical info that must be read → not Marquee (auto-scroll hurts a11y)\n • Long static list → VirtualList\n • User-paced gallery → Carousel\n\npauseOnHover=true is recommended whenever content is readable text.\n\nANTI-PATTERNS:\n ✗ Marquee with action buttons inside (hard to click)\n ✗ Fast-speed marquee on important text (unreadable, a11y violation)\n ✗ Multiple Marquees on same page in different directions (visual chaos)"
46
46
  }
47
47
  },
48
48
  "$schema": "http://json-schema.org/draft-07/schema#"
@@ -1 +1 @@
1
- {"version":3,"file":"modal.d.ts","sourceRoot":"","sources":["../../src/schemas/modal.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAaxB,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA2ClC,CAAC;AAEJ,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA6BzB,CAAC"}
1
+ {"version":3,"file":"modal.d.ts","sourceRoot":"","sources":["../../src/schemas/modal.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAaxB,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA0DlC,CAAC;AAEJ,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA6BzB,CAAC"}
@@ -119,7 +119,7 @@
119
119
  }
120
120
  },
121
121
  "additionalProperties": false,
122
- "description": "Modal template. All modal components must be wrapped with ModalTemplate."
122
+ "description": "Modal template. All modal components must be wrapped with ModalTemplate.\n\nWHEN TO USE:\n • Force user decision (delete confirm, submit confirm, blocking dialog)\n • Long form/flow that needs full attention\n • Side panel that doesn't block main flow → Drawer instead\n • Inline contextual UI → Popover instead\n • Short hint → Tooltip instead\n\nPREFERRED API: use modal() / useModal() imperative API rather than mounting <ModalTemplate> directly. modal() handles stacking, focus return, ESC, and background scroll automatically.\n\nANTI-PATTERNS:\n ✗ Custom <div className=\"fixed inset-0\"> → modal() (loses focus trap, a11y)\n ✗ Direct <ModalTemplate> mount in render tree → wrap with modal()\n ✗ Modal with no title for screen readers → always pass title prop\n ✗ Multiple modals stacking confusingly → use isAlone:true to close prior modals"
123
123
  }
124
124
  },
125
125
  "$schema": "http://json-schema.org/draft-07/schema#"
@@ -1 +1 @@
1
- {"version":3,"file":"number-input.d.ts","sourceRoot":"","sources":["../../src/schemas/number-input.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAqDhC,CAAC"}
1
+ {"version":3,"file":"number-input.d.ts","sourceRoot":"","sources":["../../src/schemas/number-input.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA+DhC,CAAC"}
@@ -107,7 +107,7 @@
107
107
  }
108
108
  },
109
109
  "additionalProperties": false,
110
- "description": "Number input with two variants: basic (chevron arrows) and bind (+/- buttons). Supports label, description, max display (click to fill), accelerated increment on long press. numberInputBind(ref, direction) binds acceleration to external buttons."
110
+ "description": "Number input with two variants: basic (chevron arrows) and bind (+/- buttons). Supports label, description, max display (click to fill), accelerated increment on long press. numberInputBind(ref, direction) binds acceleration to external buttons.\n\nWHEN TO USE:\n • Any numeric field — quantity, score, age, count\n • Currency with thousand separators → PriceInput instead\n • Date / time → DatePicker instead\n\nANTI-PATTERNS:\n ✗ <TextInput type=\"number\"> → <NumberInput> (loses keyboard ↑↓, step, accelerated long-press, max click)\n ✗ Custom +/- buttons + <input> → variant=\"bind\" (or numberInputBind for external)\n ✗ Manual thousand separators for currency → PriceInput"
111
111
  }
112
112
  },
113
113
  "$schema": "http://json-schema.org/draft-07/schema#"
@@ -1 +1 @@
1
- {"version":3,"file":"nx-image.d.ts","sourceRoot":"","sources":["../../src/schemas/nx-image.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAe6C,CAAC"}
1
+ {"version":3,"file":"nx-image.d.ts","sourceRoot":"","sources":["../../src/schemas/nx-image.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA8B5B,CAAC"}
@@ -49,7 +49,7 @@
49
49
  }
50
50
  },
51
51
  "additionalProperties": false,
52
- "description": "Enhanced image. Lazy loading, fallback, aspect-ratio support."
52
+ "description": "NxImage lazy-loaded <img> with fallback, fixed aspect-ratio, object-fit. Always prefer over native <img>.\n\nWHEN TO USE:\n • Content images: covers, banners, illustrations, hero images\n • Profile/user avatar (with text fallback) → Avatar\n • Background image / decorative → CSS bg-image\n • Need Next.js optimization → use next/image directly (NxImage doesn't optimize)\n\naspectRatio reserves space, preventing CLS (layout shift).\n\nANTI-PATTERNS:\n ✗ <img> with manual onError handling → NxImage (built-in fallback)\n ✗ NxImage without alt for content images (a11y violation)\n ✗ NxImage without aspectRatio in fluid layouts → CLS jank"
53
53
  }
54
54
  },
55
55
  "$schema": "http://json-schema.org/draft-07/schema#"
@@ -1 +1 @@
1
- {"version":3,"file":"pagination.d.ts","sourceRoot":"","sources":["../../src/schemas/pagination.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;EAe6B,CAAC"}
1
+ {"version":3,"file":"pagination.d.ts","sourceRoot":"","sources":["../../src/schemas/pagination.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;EA6B/B,CAAC"}
@@ -43,7 +43,7 @@
43
43
  "totalPages"
44
44
  ],
45
45
  "additionalProperties": false,
46
- "description": "Pagination. Previous/next + page number buttons."
46
+ "description": "Pagination page-by-page navigation for long datasets.\n\nWHEN TO USE:\n • User needs to jump to specific pages (search results, blog archives)\n • Total count is known and stable\n • Continuous browsing → InfiniteScroll instead\n • Real-time stream → InfiniteScroll\n • Both fit → Pagination is more accessible (keyboard, deep-linkable URL)\n\nANTI-PATTERNS:\n ✗ Pagination with totalPages=1 — hide it\n ✗ Mixing Pagination + InfiniteScroll on same list (confusing)\n ✗ Custom page button divs → Pagination (a11y, edge cases like ellipsis)"
47
47
  }
48
48
  },
49
49
  "$schema": "http://json-schema.org/draft-07/schema#"
@@ -1 +1 @@
1
- {"version":3,"file":"popover.d.ts","sourceRoot":"","sources":["../../src/schemas/popover.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAuBgB,CAAC"}
1
+ {"version":3,"file":"popover.d.ts","sourceRoot":"","sources":["../../src/schemas/popover.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAqC5B,CAAC"}
@@ -60,7 +60,7 @@
60
60
  }
61
61
  },
62
62
  "additionalProperties": false,
63
- "description": "Popover. Based on Radix Popover."
63
+ "description": "Popover — anchor-positioned panel with interactive content. Based on Radix Popover.\n\nWHEN TO USE:\n • Trigger-anchored UI with buttons, inputs, or rich content\n • Filter/option panel near a button (not a full sidebar)\n • Hover-only text hint → Tooltip (lighter)\n • Action menu list → DropdownMenu (gives role=menu, keyboard nav)\n • Decision dialog → Modal\n\nANTI-PATTERNS:\n ✗ Action lists with onClick handlers → DropdownMenu (a11y semantics)\n ✗ Implementing dropdown manually with Popover + custom buttons → DropdownMenu\n ✗ Long forms inside Popover → Drawer or Modal"
64
64
  }
65
65
  },
66
66
  "$schema": "http://json-schema.org/draft-07/schema#"
@@ -1 +1 @@
1
- {"version":3,"file":"price-input.d.ts","sourceRoot":"","sources":["../../src/schemas/price-input.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAyD/B,CAAC"}
1
+ {"version":3,"file":"price-input.d.ts","sourceRoot":"","sources":["../../src/schemas/price-input.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAsE/B,CAAC"}
@@ -97,7 +97,7 @@
97
97
  }
98
98
  },
99
99
  "additionalProperties": false,
100
- "description": "Price/amount input field with prefix, suffix, balance display, and auto-fill on balance click."
100
+ "description": "PriceInput — currency / amount input with prefix, suffix, balance display, click-to-fill.\n\nWHEN TO USE:\n • Money / token amounts: payment, transfer, swap, withdraw\n • Need balance hint with auto-fill UX (set balance + onBalanceClick)\n • Pure number (count, age, score) → NumberInput\n • Generic text → TextInput\n\nseparator=true displays commas; onValueChange always returns raw value (no commas). maxBalance auto-applies error styling on overflow.\n\nANTI-PATTERNS:\n ✗ <TextInput type=\"number\"> + manual currency formatting → PriceInput\n ✗ NumberInput for currency (loses prefix/suffix/balance UX)\n ✗ Using string input for amounts then parseFloat — lose precision; use this component"
101
101
  }
102
102
  },
103
103
  "$schema": "http://json-schema.org/draft-07/schema#"
@@ -1 +1 @@
1
- {"version":3,"file":"progress.d.ts","sourceRoot":"","sources":["../../src/schemas/progress.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;EAc+C,CAAC"}
1
+ {"version":3,"file":"progress.d.ts","sourceRoot":"","sources":["../../src/schemas/progress.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;EA8B7B,CAAC"}
@@ -56,7 +56,7 @@
56
56
  }
57
57
  },
58
58
  "additionalProperties": false,
59
- "description": "Progress bar. Linear progress indicator with percentage display."
59
+ "description": "Progress linear progress bar (file upload, multi-step form, loading with known %).\n\nWHEN TO USE:\n • Quantifiable progress (% complete, X of Y)\n • Unknown duration spinner → Spinner\n • Stable component shape during load → Skeleton\n • Step-based navigation → Stepper\n • Indeterminate (loading without %) → set indeterminate=true\n\nvariant follows semantic colors (success when complete, danger on error).\n\nANTI-PATTERNS:\n ✗ Indeterminate Progress for short loads (<1s) — Spinner is lighter\n ✗ Custom <div style={{ width: x% }}> → Progress (a11y, tokens)\n ✗ Progress without label/showValue when % is critical info"
60
60
  }
61
61
  },
62
62
  "$schema": "http://json-schema.org/draft-07/schema#"
@@ -4,6 +4,7 @@ export declare const radioGroupPropsSchema: z.ZodObject<{
4
4
  value: z.ZodOptional<z.ZodString>;
5
5
  defaultValue: z.ZodOptional<z.ZodString>;
6
6
  size: z.ZodDefault<z.ZodEnum<["sm", "md"]>>;
7
+ variant: z.ZodDefault<z.ZodEnum<["default", "ring"]>>;
7
8
  orientation: z.ZodDefault<z.ZodEnum<["horizontal", "vertical"]>>;
8
9
  disabled: z.ZodOptional<z.ZodBoolean>;
9
10
  children: z.ZodAny;
@@ -14,6 +15,7 @@ export declare const radioGroupPropsSchema: z.ZodObject<{
14
15
  }, "strip", z.ZodTypeAny, {
15
16
  name: string;
16
17
  size: "md" | "sm";
18
+ variant: "default" | "ring";
17
19
  orientation: "horizontal" | "vertical";
18
20
  className?: string | undefined;
19
21
  children?: any;
@@ -30,6 +32,7 @@ export declare const radioGroupPropsSchema: z.ZodObject<{
30
32
  value?: string | undefined;
31
33
  size?: "md" | "sm" | undefined;
32
34
  disabled?: boolean | undefined;
35
+ variant?: "default" | "ring" | undefined;
33
36
  defaultValue?: string | undefined;
34
37
  'aria-label'?: string | undefined;
35
38
  'aria-labelledby'?: string | undefined;
@@ -39,7 +42,9 @@ export declare const radioGroupPropsSchema: z.ZodObject<{
39
42
  export declare const radioItemPropsSchema: z.ZodObject<{
40
43
  value: z.ZodString;
41
44
  size: z.ZodOptional<z.ZodEnum<["sm", "md"]>>;
45
+ variant: z.ZodOptional<z.ZodEnum<["default", "ring"]>>;
42
46
  label: z.ZodOptional<z.ZodAny>;
47
+ description: z.ZodOptional<z.ZodAny>;
43
48
  children: z.ZodOptional<z.ZodAny>;
44
49
  disabled: z.ZodOptional<z.ZodBoolean>;
45
50
  className: z.ZodOptional<z.ZodString>;
@@ -48,14 +53,18 @@ export declare const radioItemPropsSchema: z.ZodObject<{
48
53
  className?: string | undefined;
49
54
  children?: any;
50
55
  label?: any;
56
+ description?: any;
51
57
  size?: "md" | "sm" | undefined;
52
58
  disabled?: boolean | undefined;
59
+ variant?: "default" | "ring" | undefined;
53
60
  }, {
54
61
  value: string;
55
62
  className?: string | undefined;
56
63
  children?: any;
57
64
  label?: any;
65
+ description?: any;
58
66
  size?: "md" | "sm" | undefined;
59
67
  disabled?: boolean | undefined;
68
+ variant?: "default" | "ring" | undefined;
60
69
  }>;
61
70
  //# sourceMappingURL=radio-group.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"radio-group.d.ts","sourceRoot":"","sources":["../../src/schemas/radio-group.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAiBc,CAAC;AAEjD,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;EASkB,CAAC"}
1
+ {"version":3,"file":"radio-group.d.ts","sourceRoot":"","sources":["../../src/schemas/radio-group.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA0C/B,CAAC;AAEJ,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;EAiBkB,CAAC"}
@@ -25,6 +25,15 @@
25
25
  "default": "md",
26
26
  "description": "Size"
27
27
  },
28
+ "variant": {
29
+ "type": "string",
30
+ "enum": [
31
+ "default",
32
+ "ring"
33
+ ],
34
+ "default": "default",
35
+ "description": "Visual style. default=outline circle with inner dot, ring=thick border replaces dot when checked"
36
+ },
28
37
  "orientation": {
29
38
  "type": "string",
30
39
  "enum": [
@@ -61,7 +70,7 @@
61
70
  "name"
62
71
  ],
63
72
  "additionalProperties": false,
64
- "description": "Radio group. Used with RadioItem."
73
+ "description": "Radio group for single-choice form fields. Used with RadioItem.\n\nWHEN TO USE:\n • Form field where user picks ONE of small set (≤4-7) and submits later → RadioGroup\n • All options should be visible at once for comparison → RadioGroup (not Select)\n • Immediate effect on selection (no submit) → ToggleGroup instead\n • Page area switching (tabs) → Tab (not RadioGroup)\n • Many options → Select / Combobox\n\nVARIANTS:\n • variant=\"default\" — outline circle with inner dot when checked (classic)\n • variant=\"ring\" — thick border replaces inner dot when checked (modern, Figma \"ring\" style)\n\nANTI-PATTERNS:\n ✗ Using RadioGroup for tab-like content switching → Tab\n ✗ Using RadioGroup for immediate filters → ToggleGroup\n ✗ Mixing RadioGroup and ToggleGroup in same form → pick one pattern\n ✗ Native <input type=\"radio\"> → RadioItem (gets a11y, focus ring, tokens)"
65
74
  }
66
75
  },
67
76
  "$schema": "http://json-schema.org/draft-07/schema#"
@@ -16,9 +16,20 @@
16
16
  ],
17
17
  "description": "Size (overrides group)"
18
18
  },
19
+ "variant": {
20
+ "type": "string",
21
+ "enum": [
22
+ "default",
23
+ "ring"
24
+ ],
25
+ "description": "Visual style (overrides group)"
26
+ },
19
27
  "label": {
20
28
  "description": "Label text (ReactNode)"
21
29
  },
30
+ "description": {
31
+ "description": "Help text shown beneath the label (ReactNode)"
32
+ },
22
33
  "children": {
23
34
  "description": "Label alternative content (ReactNode)"
24
35
  },
@@ -1 +1 @@
1
- {"version":3,"file":"select.d.ts","sourceRoot":"","sources":["../../src/schemas/select.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAsB8C,CAAC;AAE7E,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;EAOa,CAAC"}
1
+ {"version":3,"file":"select.d.ts","sourceRoot":"","sources":["../../src/schemas/select.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAoC3B,CAAC;AAEJ,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;EAOa,CAAC"}
@@ -55,7 +55,7 @@
55
55
  }
56
56
  },
57
57
  "additionalProperties": false,
58
- "description": "Dropdown select. Based on Radix Select. Used with SelectItem."
58
+ "description": "Dropdown select for short option lists. Based on Radix Select. Used with SelectItem.\n\nWHEN TO USE:\n • Options ≤ 7, no search needed → Select\n • Options ≥ 7 OR search needed OR async → Combobox instead\n • Need multi-select → Combobox (multiple)\n • Action menu (save/delete/share) → DropdownMenu (not Select; values vs actions)\n\nANTI-PATTERNS:\n ✗ Select with 20+ options → Combobox\n ✗ Using Select for menu items that trigger functions → DropdownMenu\n ✗ Manual <select> styling → Select gives consistent token styling\n ✗ Wrapping each SelectItem with Tooltip — instead put hint in item label"
59
59
  }
60
60
  },
61
61
  "$schema": "http://json-schema.org/draft-07/schema#"
@@ -1 +1 @@
1
- {"version":3,"file":"skeleton.d.ts","sourceRoot":"","sources":["../../src/schemas/skeleton.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;EA2B7B,CAAC"}
1
+ {"version":3,"file":"skeleton.d.ts","sourceRoot":"","sources":["../../src/schemas/skeleton.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;EAyC7B,CAAC"}
@@ -44,7 +44,7 @@
44
44
  }
45
45
  },
46
46
  "additionalProperties": false,
47
- "description": "Skeleton loading placeholder. Size/shape via className. With children, wraps transparently to maintain actual size."
47
+ "description": "Skeleton loading placeholder. Size/shape via className. With children, wraps transparently to maintain actual size.\n\nWHEN TO USE:\n • Long load with known component shape (cards, lists, profile headers)\n • Reduces perceived wait time when layout is predictable\n • Short loads (<1s) → Spinner\n • Quantifiable progress → Progress\n • DataList/DataGrid loading → set list={null} (uses skeletonElement prop automatically)\n\nGOLDEN RULE: Skeleton must match the real component's shape and size. Mismatch causes layout shift.\n\nANTI-PATTERNS:\n ✗ Generic gray rectangle for everything → match real component shape\n ✗ Skeleton for instant loads (causes flash)\n ✗ Many skeletons of different shapes when component is uniform → use a single skeleton in DataList"
48
48
  }
49
49
  },
50
50
  "$schema": "http://json-schema.org/draft-07/schema#"
@@ -1 +1 @@
1
- {"version":3,"file":"slider.d.ts","sourceRoot":"","sources":["../../src/schemas/slider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAgB6D,CAAC"}
1
+ {"version":3,"file":"slider.d.ts","sourceRoot":"","sources":["../../src/schemas/slider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAgC3B,CAAC"}
@@ -71,7 +71,7 @@
71
71
  }
72
72
  },
73
73
  "additionalProperties": false,
74
- "description": "Slider / Range input. Based on Radix Slider. Supports single and range mode."
74
+ "description": "Slider numeric range selector. Based on Radix Slider. Single thumb or range (two thumbs).\n\nWHEN TO USE:\n • Continuous range with visual feedback: volume, brightness, price filter\n • Range filter (min-max) → defaultValue=[20, 80]\n • Precise number entry → NumberInput\n • Discrete few options → ToggleGroup or RadioGroup\n • Boolean → Switch\n\nstep controls increments. onValueCommit fires only after pointer release (good for expensive recomputations).\n\nANTI-PATTERNS:\n ✗ Slider for required precise input (typing 47 is faster than dragging)\n ✗ Long step count without showValue / labels (users have no reference)\n ✗ Calling expensive API on every onValueChange tick → use onValueCommit"
75
75
  }
76
76
  },
77
77
  "$schema": "http://json-schema.org/draft-07/schema#"
@@ -1 +1 @@
1
- {"version":3,"file":"spinner.d.ts","sourceRoot":"","sources":["../../src/schemas/spinner.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;EAQqC,CAAC"}
1
+ {"version":3,"file":"spinner.d.ts","sourceRoot":"","sources":["../../src/schemas/spinner.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;EAqB5B,CAAC"}
@@ -27,7 +27,7 @@
27
27
  }
28
28
  },
29
29
  "additionalProperties": false,
30
- "description": "Loading indicator. SVG-based. Built-in role=\"status\"."
30
+ "description": "Loading indicator (spinner). SVG-based. role=\"status\" + aria-label built-in.\n\nWHEN TO USE:\n • Short loads (<1s), inline indicator (button content while submitting)\n • Long loads with known structure → Skeleton (better perceived performance)\n • Quantifiable progress → Progress\n • Page-level loading boundary inside DataList/DataGrid → use their loading prop instead\n\nANTI-PATTERNS:\n ✗ Custom CSS spinning div → Spinner (a11y + tokens)\n ✗ Using Spinner where Skeleton fits (long loads with stable layout)\n ✗ Forgetting aria-label override when meaning differs from \"Loading\""
31
31
  }
32
32
  },
33
33
  "$schema": "http://json-schema.org/draft-07/schema#"
@@ -1 +1 @@
1
- {"version":3,"file":"stepper.d.ts","sourceRoot":"","sources":["../../src/schemas/stepper.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAOxB,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAeyB,CAAC"}
1
+ {"version":3,"file":"stepper.d.ts","sourceRoot":"","sources":["../../src/schemas/stepper.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAOxB,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA+B5B,CAAC"}
@@ -66,7 +66,7 @@
66
66
  "steps"
67
67
  ],
68
68
  "additionalProperties": false,
69
- "description": "Stepper. Step-by-step progress indicator."
69
+ "description": "Stepper — multi-step linear flow indicator (checkout, onboarding, wizard).\n\nWHEN TO USE:\n • Sequential workflow with finite steps (3-7)\n • Show user's current position in flow + completed/upcoming steps\n • Independent navigation between unrelated sections → Tab\n • Continuous % progress → Progress\n • Hierarchy / location → Breadcrumb\n\nstatus=\"error\" highlights the current step with danger color when validation fails.\n\nANTI-PATTERNS:\n ✗ Stepper with 2 steps (use Progress or just navigation)\n ✗ Stepper with 10+ steps (overwhelming) — chunk into sub-flows\n ✗ Letting users skip ahead by clicking future steps (only mark completed → current is allowed)"
70
70
  }
71
71
  },
72
72
  "$schema": "http://json-schema.org/draft-07/schema#"
@@ -1 +1 @@
1
- {"version":3,"file":"switch.d.ts","sourceRoot":"","sources":["../../src/schemas/switch.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAYqC,CAAC"}
1
+ {"version":3,"file":"switch.d.ts","sourceRoot":"","sources":["../../src/schemas/switch.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAyB3B,CAAC"}
@@ -45,7 +45,7 @@
45
45
  }
46
46
  },
47
47
  "additionalProperties": false,
48
- "description": "Toggle switch. Native checkbox-based, role=\"switch\"."
48
+ "description": "Toggle switch for immediate on/off binary state. Native checkbox-based, role=\"switch\".\n\nWHEN TO USE:\n • Setting that takes effect immediately (notifications on/off, dark mode)\n • Binary state with no submit step\n • Form field submitted later → CheckBox instead (semantics: checkbox is form data)\n • Multiple related options → CheckBox group or ToggleGroup (multiple)\n\nANTI-PATTERNS:\n ✗ <CheckBox> for \"Enable notifications\" toggle → <Switch>\n ✗ <Switch> inside form requiring submit → <CheckBox>\n ✗ Wrapping Switch in <label onClick> manually → use label prop or htmlFor pattern"
49
49
  }
50
50
  },
51
51
  "$schema": "http://json-schema.org/draft-07/schema#"
@@ -1 +1 @@
1
- {"version":3,"file":"tab.d.ts","sourceRoot":"","sources":["../../src/schemas/tab.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AASxB,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAgBuB,CAAC"}
1
+ {"version":3,"file":"tab.d.ts","sourceRoot":"","sources":["../../src/schemas/tab.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AASxB,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAiCxB,CAAC"}
@@ -82,7 +82,7 @@
82
82
  "items"
83
83
  ],
84
84
  "additionalProperties": false,
85
- "description": "Tab navigation. line/pill variants."
85
+ "description": "Tab navigation — switch between content panels (settings sections, profile views).\n\nWHEN TO USE:\n • Page area swap where only one panel is visible at a time\n • Mutually exclusive content with stable section labels\n • Form field selection → RadioGroup (semantics: not navigation)\n • Immediate filter/option toggle → ToggleGroup\n • Stacked collapsible sections → Accordion\n\ndestroyInactive=true unmounts hidden panels (saves memory but loses state).\n\nANTI-PATTERNS:\n ✗ Tab with 1 item — just render the panel\n ✗ Tab with 8+ items — consider sub-routing or DropdownMenu\n ✗ Using Tab for form value selection → RadioGroup\n ✗ Custom <button> + onClick + state → Tab (a11y, keyboard, focus management)"
86
86
  }
87
87
  },
88
88
  "$schema": "http://json-schema.org/draft-07/schema#"
@@ -1 +1 @@
1
- {"version":3,"file":"table.d.ts","sourceRoot":"","sources":["../../src/schemas/table.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA0B1B,CAAC;AAEJ,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;EAUY,CAAC;AAE7C,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAyCkC,CAAC"}
1
+ {"version":3,"file":"table.d.ts","sourceRoot":"","sources":["../../src/schemas/table.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAwC1B,CAAC;AAEJ,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;EAiB7B,CAAC;AAEJ,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAsD7B,CAAC"}
@@ -68,7 +68,7 @@
68
68
  "list"
69
69
  ],
70
70
  "additionalProperties": false,
71
- "description": "Table. Column definitions via TdColumn, row wrapping via TableRow. Built-in sorting/skeleton loading."
71
+ "description": "Table — tabular data with sortable columns, skeleton/loading/empty states. Compound: TableRow + TdColumn.\n\nWHEN TO USE:\n • Comparable structured data (financial reports, transaction history, leaderboard)\n • Sortable per-column → enableSorting on TdColumn\n • Card-style entities → DataGrid\n • Single-column read-only list → DataList\n • Huge dataset (>500 rows) → wrap with VirtualList logic or paginate\n\nlist={null} → loading state. list=[] → noDataMsg. children: ({ item, index }) => <TableRow>...</TableRow>.\n\nANTI-PATTERNS:\n ✗ Native <table> + manual loading/empty handling → Table component\n ✗ Forcing card-style data into Table (use DataGrid)\n ✗ Sorting in client when server pagination is in use → server-side sort"
72
72
  }
73
73
  },
74
74
  "$schema": "http://json-schema.org/draft-07/schema#"
@@ -25,7 +25,7 @@
25
25
  }
26
26
  },
27
27
  "additionalProperties": false,
28
- "description": "Table row. Used inside Table."
28
+ "description": "TableRow — a single row inside Table. Wraps TdColumn cells.\n\nWHEN TO USE:\n • variant=\"accent\" highlights selected/current row\n • onClick for row-level navigation (e.g. open detail page)\n • Per-row checkbox/action → place inside a TdColumn child"
29
29
  }
30
30
  },
31
31
  "$schema": "http://json-schema.org/draft-07/schema#"
@@ -1 +1 @@
1
- {"version":3,"file":"tag-input.d.ts","sourceRoot":"","sources":["../../src/schemas/tag-input.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAcyC,CAAC"}
1
+ {"version":3,"file":"tag-input.d.ts","sourceRoot":"","sources":["../../src/schemas/tag-input.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA6B7B,CAAC"}
@@ -63,7 +63,7 @@
63
63
  }
64
64
  },
65
65
  "additionalProperties": false,
66
- "description": "Tag input. Enter key to add, Backspace to delete last tag."
66
+ "description": "TagInput free-form multi-value entry (Enter to add, Backspace to remove last).\n\nWHEN TO USE:\n • Free-form labels: skills, hashtags, email recipients, keywords\n • Predefined options → Combobox with multi-select (NOT TagInput)\n • Single value → TextInput\n • Limited options → Select / RadioGroup / Checkbox\n\nallowDuplicates=false (default) prevents repeats. Use max to cap count.\n\nANTI-PATTERNS:\n ✗ TagInput for predefined taxonomy → Combobox (controlled options)\n ✗ TagInput without max for spam-prone fields\n ✗ Custom comma-split string field → TagInput (proper UX + a11y)"
67
67
  }
68
68
  },
69
69
  "$schema": "http://json-schema.org/draft-07/schema#"
@@ -100,7 +100,7 @@
100
100
  "fieldId"
101
101
  ],
102
102
  "additionalProperties": false,
103
- "description": "Table cell/column definition. Used inside TableRow."
103
+ "description": "TdColumn — table cell. Drives both <th> and <td> for the column. Provides sorting, alignment, overflow handling.\n\nWHEN TO USE:\n • textOverflow=\"truncate\" (default) for fixed-width columns; \"wrap\" for narrative\n • align=\"right\" for numeric/currency columns (a11y readability)\n • enableSorting=true when column is sortable; supply order + handleClickSort for controlled sort\n • highlightKey to group columns that highlight together on hover\n\nANTI-PATTERNS:\n ✗ enableSorting without handleClickSort → sort indicator is dead\n ✗ align=\"left\" for currency/number columns\n ✗ Mixing text and numeric in one column without consistent align"
104
104
  }
105
105
  },
106
106
  "$schema": "http://json-schema.org/draft-07/schema#"