@hypoth-ui/cli 0.0.1 → 0.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 (375) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +19 -115
  3. package/dist/{add-PDBC4JTE.js → add-V5PW73GC.js} +29 -17
  4. package/dist/{chunk-5LTQ2XVL.js → chunk-27CLUUVC.js} +0 -2
  5. package/dist/{chunk-YPKFYE45.js → chunk-NWIRSZUQ.js} +6 -13
  6. package/dist/{chunk-GJ6JOQ3Q.js → chunk-PBK72SJJ.js} +1 -1
  7. package/dist/{diff-BQEXG7HU.js → diff-776UATCA.js} +2 -2
  8. package/dist/index.js +5 -5
  9. package/dist/{init-7AZXYAPJ.js → init-GDU2PW7K.js} +10 -13
  10. package/dist/{list-X6ZLM2NQ.js → list-XDP5I537.js} +3 -3
  11. package/package.json +16 -12
  12. package/registry/components.json +1820 -206
  13. package/templates/accordion/index.tsx +266 -0
  14. package/templates/accordion/wc/accordion-content.ts +113 -0
  15. package/templates/accordion/wc/accordion-item.ts +111 -0
  16. package/templates/accordion/wc/accordion-trigger.ts +105 -0
  17. package/templates/accordion/wc/accordion.ts +213 -0
  18. package/templates/accordion/wc/index.ts +12 -0
  19. package/templates/alert/index.tsx +177 -0
  20. package/templates/alert/wc/alert.ts +167 -0
  21. package/templates/alert/wc/index.ts +1 -0
  22. package/templates/alert-dialog/index.tsx +360 -0
  23. package/templates/alert-dialog/wc/alert-dialog-action.ts +43 -0
  24. package/templates/alert-dialog/wc/alert-dialog-cancel.ts +43 -0
  25. package/templates/alert-dialog/wc/alert-dialog-content.ts +42 -0
  26. package/templates/alert-dialog/wc/alert-dialog-description.ts +34 -0
  27. package/templates/alert-dialog/wc/alert-dialog-footer.ts +25 -0
  28. package/templates/alert-dialog/wc/alert-dialog-header.ts +25 -0
  29. package/templates/alert-dialog/wc/alert-dialog-title.ts +34 -0
  30. package/templates/alert-dialog/wc/alert-dialog-trigger.ts +46 -0
  31. package/templates/alert-dialog/wc/alert-dialog.ts +302 -0
  32. package/templates/alert-dialog/wc/index.ts +13 -0
  33. package/templates/aspect-ratio/index.tsx +50 -0
  34. package/templates/aspect-ratio/wc/aspect-ratio.ts +78 -0
  35. package/templates/aspect-ratio/wc/index.ts +5 -0
  36. package/templates/avatar/avatar-group.tsx +88 -0
  37. package/templates/avatar/avatar.tsx +124 -0
  38. package/templates/avatar/index.tsx +33 -0
  39. package/templates/avatar/wc/avatar-group.ts +112 -0
  40. package/templates/avatar/wc/avatar.ts +184 -0
  41. package/templates/avatar/wc/index.ts +5 -0
  42. package/templates/badge/index.tsx +140 -0
  43. package/templates/badge/wc/badge.ts +119 -0
  44. package/templates/badge/wc/index.ts +9 -0
  45. package/templates/breadcrumb/index.tsx +157 -0
  46. package/templates/breadcrumb/wc/breadcrumb-item.ts +30 -0
  47. package/templates/breadcrumb/wc/breadcrumb-link.ts +70 -0
  48. package/templates/breadcrumb/wc/breadcrumb-list.ts +30 -0
  49. package/templates/breadcrumb/wc/breadcrumb-page.ts +32 -0
  50. package/templates/breadcrumb/wc/breadcrumb-separator.ts +31 -0
  51. package/templates/breadcrumb/wc/breadcrumb.ts +55 -0
  52. package/templates/breadcrumb/wc/index.ts +10 -0
  53. package/templates/button/button.tsx +119 -0
  54. package/templates/button/index.ts +1 -0
  55. package/templates/button/wc/button.ts +169 -0
  56. package/templates/calendar/index.tsx +149 -0
  57. package/templates/calendar/wc/calendar.ts +316 -0
  58. package/templates/calendar/wc/index.ts +4 -0
  59. package/templates/card/index.tsx +108 -0
  60. package/templates/card/wc/card-content.ts +25 -0
  61. package/templates/card/wc/card-footer.ts +25 -0
  62. package/templates/card/wc/card-header.ts +25 -0
  63. package/templates/card/wc/card.ts +43 -0
  64. package/templates/card/wc/index.ts +8 -0
  65. package/templates/checkbox/checkbox.tsx +85 -0
  66. package/templates/checkbox/wc/checkbox.ts +247 -0
  67. package/templates/collapsible/index.tsx +172 -0
  68. package/templates/collapsible/wc/collapsible-content.ts +97 -0
  69. package/templates/collapsible/wc/collapsible-trigger.ts +39 -0
  70. package/templates/collapsible/wc/collapsible.ts +143 -0
  71. package/templates/collapsible/wc/index.ts +7 -0
  72. package/templates/combobox/combobox-content.tsx +141 -0
  73. package/templates/combobox/combobox-context.ts +36 -0
  74. package/templates/combobox/combobox-empty.tsx +38 -0
  75. package/templates/combobox/combobox-input.tsx +159 -0
  76. package/templates/combobox/combobox-loading.tsx +38 -0
  77. package/templates/combobox/combobox-option.tsx +99 -0
  78. package/templates/combobox/combobox-root.tsx +207 -0
  79. package/templates/combobox/combobox-tag.tsx +62 -0
  80. package/templates/combobox/index.ts +62 -0
  81. package/templates/combobox/wc/combobox-content.ts +97 -0
  82. package/templates/combobox/wc/combobox-input.ts +134 -0
  83. package/templates/combobox/wc/combobox-option.ts +111 -0
  84. package/templates/combobox/wc/combobox-tag.ts +103 -0
  85. package/templates/combobox/wc/combobox.ts +981 -0
  86. package/templates/combobox/wc/index.ts +5 -0
  87. package/templates/command/index.tsx +279 -0
  88. package/templates/command/wc/command-empty.ts +24 -0
  89. package/templates/command/wc/command-group.ts +60 -0
  90. package/templates/command/wc/command-input.ts +136 -0
  91. package/templates/command/wc/command-item.ts +78 -0
  92. package/templates/command/wc/command-list.ts +103 -0
  93. package/templates/command/wc/command-loading.ts +24 -0
  94. package/templates/command/wc/command-separator.ts +23 -0
  95. package/templates/command/wc/command.ts +176 -0
  96. package/templates/context-menu/index.tsx +262 -0
  97. package/templates/context-menu/wc/context-menu-content.ts +41 -0
  98. package/templates/context-menu/wc/context-menu-item.ts +83 -0
  99. package/templates/context-menu/wc/context-menu-label.ts +30 -0
  100. package/templates/context-menu/wc/context-menu-separator.ts +28 -0
  101. package/templates/context-menu/wc/context-menu.ts +324 -0
  102. package/templates/context-menu/wc/index.ts +9 -0
  103. package/templates/data-table/index.tsx +263 -0
  104. package/templates/data-table/wc/data-table.ts +405 -0
  105. package/templates/data-table/wc/index.ts +10 -0
  106. package/templates/date-picker/date-picker-calendar.tsx +352 -0
  107. package/templates/date-picker/date-picker-content.tsx +121 -0
  108. package/templates/date-picker/date-picker-context.ts +46 -0
  109. package/templates/date-picker/date-picker-root.tsx +201 -0
  110. package/templates/date-picker/date-picker-trigger.tsx +95 -0
  111. package/templates/date-picker/index.ts +44 -0
  112. package/templates/date-picker/wc/date-picker-calendar.ts +457 -0
  113. package/templates/date-picker/wc/date-picker.ts +592 -0
  114. package/templates/date-picker/wc/date-utils.ts +467 -0
  115. package/templates/date-picker/wc/index.ts +3 -0
  116. package/templates/dialog/dialog-close.tsx +57 -0
  117. package/templates/dialog/dialog-content.tsx +106 -0
  118. package/templates/dialog/dialog-context.ts +24 -0
  119. package/templates/dialog/dialog-description.tsx +51 -0
  120. package/templates/dialog/dialog-root.tsx +104 -0
  121. package/templates/dialog/dialog-title.tsx +38 -0
  122. package/templates/dialog/dialog-trigger.tsx +94 -0
  123. package/templates/dialog/index.ts +52 -0
  124. package/templates/dialog/wc/dialog-content.ts +59 -0
  125. package/templates/dialog/wc/dialog-description.ts +58 -0
  126. package/templates/dialog/wc/dialog-title.ts +56 -0
  127. package/templates/dialog/wc/dialog.ts +411 -0
  128. package/templates/drawer/index.tsx +263 -0
  129. package/templates/drawer/wc/drawer-content.ts +150 -0
  130. package/templates/drawer/wc/drawer-description.ts +34 -0
  131. package/templates/drawer/wc/drawer-footer.ts +25 -0
  132. package/templates/drawer/wc/drawer-header.ts +25 -0
  133. package/templates/drawer/wc/drawer-title.ts +34 -0
  134. package/templates/drawer/wc/drawer.ts +348 -0
  135. package/templates/drawer/wc/index.ts +10 -0
  136. package/templates/dropdown-menu/index.tsx +454 -0
  137. package/templates/dropdown-menu/wc/dropdown-menu-checkbox-item.ts +93 -0
  138. package/templates/dropdown-menu/wc/dropdown-menu-content.ts +43 -0
  139. package/templates/dropdown-menu/wc/dropdown-menu-item.ts +85 -0
  140. package/templates/dropdown-menu/wc/dropdown-menu-label.ts +31 -0
  141. package/templates/dropdown-menu/wc/dropdown-menu-radio-group.ts +80 -0
  142. package/templates/dropdown-menu/wc/dropdown-menu-radio-item.ts +101 -0
  143. package/templates/dropdown-menu/wc/dropdown-menu-separator.ts +28 -0
  144. package/templates/dropdown-menu/wc/dropdown-menu.ts +358 -0
  145. package/templates/dropdown-menu/wc/index.ts +12 -0
  146. package/templates/field/field-description.tsx +39 -0
  147. package/templates/field/field-error.tsx +37 -0
  148. package/templates/field/field.tsx +46 -0
  149. package/templates/field/index.ts +4 -0
  150. package/templates/field/label.tsx +40 -0
  151. package/templates/field/wc/field-description.ts +42 -0
  152. package/templates/field/wc/field-error.ts +46 -0
  153. package/templates/field/wc/field.ts +210 -0
  154. package/templates/field/wc/label.ts +54 -0
  155. package/templates/file-upload/file-upload-context.ts +26 -0
  156. package/templates/file-upload/file-upload-dropzone.tsx +111 -0
  157. package/templates/file-upload/file-upload-input.tsx +86 -0
  158. package/templates/file-upload/file-upload-item.tsx +105 -0
  159. package/templates/file-upload/file-upload-root.tsx +115 -0
  160. package/templates/file-upload/index.ts +50 -0
  161. package/templates/file-upload/wc/file-upload.ts +380 -0
  162. package/templates/file-upload/wc/index.ts +1 -0
  163. package/templates/hover-card/index.tsx +203 -0
  164. package/templates/hover-card/wc/hover-card-content.ts +50 -0
  165. package/templates/hover-card/wc/hover-card.ts +382 -0
  166. package/templates/hover-card/wc/index.ts +6 -0
  167. package/templates/icon/icon.tsx +76 -0
  168. package/templates/icon/wc/icon-adapter.ts +108 -0
  169. package/templates/icon/wc/icon.ts +161 -0
  170. package/templates/input/input.tsx +130 -0
  171. package/templates/input/wc/input.ts +216 -0
  172. package/templates/layout/app-shell.tsx +177 -0
  173. package/templates/layout/box.tsx +53 -0
  174. package/templates/layout/center.tsx +42 -0
  175. package/templates/layout/container.tsx +43 -0
  176. package/templates/layout/flow.tsx +83 -0
  177. package/templates/layout/grid.tsx +79 -0
  178. package/templates/layout/index.ts +33 -0
  179. package/templates/layout/inline.tsx +16 -0
  180. package/templates/layout/page.tsx +43 -0
  181. package/templates/layout/section.tsx +39 -0
  182. package/templates/layout/spacer.tsx +30 -0
  183. package/templates/layout/split.tsx +47 -0
  184. package/templates/layout/stack.tsx +16 -0
  185. package/templates/layout/wc/app-shell.ts +58 -0
  186. package/templates/layout/wc/box.ts +117 -0
  187. package/templates/layout/wc/center.ts +78 -0
  188. package/templates/layout/wc/container.ts +77 -0
  189. package/templates/layout/wc/flow.ts +149 -0
  190. package/templates/layout/wc/footer.ts +57 -0
  191. package/templates/layout/wc/grid.ts +142 -0
  192. package/templates/layout/wc/header.ts +57 -0
  193. package/templates/layout/wc/index.ts +41 -0
  194. package/templates/layout/wc/main.ts +46 -0
  195. package/templates/layout/wc/page.ts +81 -0
  196. package/templates/layout/wc/section.ts +65 -0
  197. package/templates/layout/wc/spacer.ts +77 -0
  198. package/templates/layout/wc/split.ts +94 -0
  199. package/templates/layout/wc/wrap.ts +93 -0
  200. package/templates/layout/wrap.tsx +46 -0
  201. package/templates/link/link.tsx +109 -0
  202. package/templates/link/wc/link.ts +124 -0
  203. package/templates/list/index.tsx +55 -0
  204. package/templates/list/list-item.tsx +117 -0
  205. package/templates/list/list.tsx +115 -0
  206. package/templates/list/wc/index.ts +5 -0
  207. package/templates/list/wc/list-item.ts +127 -0
  208. package/templates/list/wc/list.ts +114 -0
  209. package/templates/menu/index.ts +49 -0
  210. package/templates/menu/menu-content.tsx +109 -0
  211. package/templates/menu/menu-context.ts +17 -0
  212. package/templates/menu/menu-item.tsx +108 -0
  213. package/templates/menu/menu-label.tsx +32 -0
  214. package/templates/menu/menu-root.tsx +108 -0
  215. package/templates/menu/menu-separator.tsx +24 -0
  216. package/templates/menu/menu-trigger.tsx +104 -0
  217. package/templates/menu/wc/menu-content.ts +67 -0
  218. package/templates/menu/wc/menu-item.ts +109 -0
  219. package/templates/menu/wc/menu.ts +449 -0
  220. package/templates/navigation-menu/index.tsx +328 -0
  221. package/templates/navigation-menu/wc/index.ts +12 -0
  222. package/templates/navigation-menu/wc/navigation-menu-content.ts +30 -0
  223. package/templates/navigation-menu/wc/navigation-menu-indicator.ts +30 -0
  224. package/templates/navigation-menu/wc/navigation-menu-item.ts +60 -0
  225. package/templates/navigation-menu/wc/navigation-menu-link.ts +97 -0
  226. package/templates/navigation-menu/wc/navigation-menu-list.ts +30 -0
  227. package/templates/navigation-menu/wc/navigation-menu-trigger.ts +110 -0
  228. package/templates/navigation-menu/wc/navigation-menu-viewport.ts +85 -0
  229. package/templates/navigation-menu/wc/navigation-menu.ts +272 -0
  230. package/templates/number-input/index.ts +46 -0
  231. package/templates/number-input/number-input-context.ts +38 -0
  232. package/templates/number-input/number-input-decrement.tsx +53 -0
  233. package/templates/number-input/number-input-field.tsx +93 -0
  234. package/templates/number-input/number-input-increment.tsx +53 -0
  235. package/templates/number-input/number-input-root.tsx +137 -0
  236. package/templates/number-input/wc/index.ts +1 -0
  237. package/templates/number-input/wc/number-input.ts +283 -0
  238. package/templates/pagination/index.tsx +198 -0
  239. package/templates/pagination/wc/index.ts +11 -0
  240. package/templates/pagination/wc/pagination-content.ts +30 -0
  241. package/templates/pagination/wc/pagination-ellipsis.ts +28 -0
  242. package/templates/pagination/wc/pagination-item.ts +30 -0
  243. package/templates/pagination/wc/pagination-link.ts +76 -0
  244. package/templates/pagination/wc/pagination-next.ts +69 -0
  245. package/templates/pagination/wc/pagination-previous.ts +69 -0
  246. package/templates/pagination/wc/pagination.ts +156 -0
  247. package/templates/pin-input/index.ts +39 -0
  248. package/templates/pin-input/pin-input-context.ts +30 -0
  249. package/templates/pin-input/pin-input-field.tsx +186 -0
  250. package/templates/pin-input/pin-input-root.tsx +120 -0
  251. package/templates/pin-input/wc/index.ts +1 -0
  252. package/templates/pin-input/wc/pin-input.ts +259 -0
  253. package/templates/popover/popover.tsx +121 -0
  254. package/templates/popover/wc/popover-content.ts +66 -0
  255. package/templates/popover/wc/popover.ts +343 -0
  256. package/templates/progress/index.tsx +117 -0
  257. package/templates/progress/wc/index.ts +4 -0
  258. package/templates/progress/wc/progress.ts +174 -0
  259. package/templates/radio/radio.tsx +43 -0
  260. package/templates/radio/wc/radio-group.ts +261 -0
  261. package/templates/radio/wc/radio.ts +145 -0
  262. package/templates/scroll-area/index.tsx +144 -0
  263. package/templates/scroll-area/wc/index.ts +8 -0
  264. package/templates/scroll-area/wc/scroll-area-scrollbar.ts +143 -0
  265. package/templates/scroll-area/wc/scroll-area-thumb.ts +225 -0
  266. package/templates/scroll-area/wc/scroll-area-viewport.ts +120 -0
  267. package/templates/scroll-area/wc/scroll-area.ts +63 -0
  268. package/templates/select/index.ts +57 -0
  269. package/templates/select/select-content.tsx +243 -0
  270. package/templates/select/select-context.ts +30 -0
  271. package/templates/select/select-group.tsx +53 -0
  272. package/templates/select/select-label.tsx +34 -0
  273. package/templates/select/select-option.tsx +97 -0
  274. package/templates/select/select-root.tsx +153 -0
  275. package/templates/select/select-separator.tsx +27 -0
  276. package/templates/select/select-trigger.tsx +112 -0
  277. package/templates/select/select-value.tsx +48 -0
  278. package/templates/select/wc/index.ts +6 -0
  279. package/templates/select/wc/select-content.ts +89 -0
  280. package/templates/select/wc/select-group.ts +82 -0
  281. package/templates/select/wc/select-label.ts +49 -0
  282. package/templates/select/wc/select-option.ts +111 -0
  283. package/templates/select/wc/select-trigger.ts +101 -0
  284. package/templates/select/wc/select.ts +840 -0
  285. package/templates/separator/index.tsx +49 -0
  286. package/templates/separator/wc/index.ts +5 -0
  287. package/templates/separator/wc/separator.ts +60 -0
  288. package/templates/sheet/index.tsx +291 -0
  289. package/templates/sheet/wc/index.ts +12 -0
  290. package/templates/sheet/wc/sheet-close.ts +43 -0
  291. package/templates/sheet/wc/sheet-content.ts +47 -0
  292. package/templates/sheet/wc/sheet-description.ts +34 -0
  293. package/templates/sheet/wc/sheet-footer.ts +25 -0
  294. package/templates/sheet/wc/sheet-header.ts +25 -0
  295. package/templates/sheet/wc/sheet-overlay.ts +23 -0
  296. package/templates/sheet/wc/sheet-title.ts +34 -0
  297. package/templates/sheet/wc/sheet.ts +336 -0
  298. package/templates/skeleton/index.tsx +131 -0
  299. package/templates/skeleton/wc/index.ts +10 -0
  300. package/templates/skeleton/wc/skeleton.ts +107 -0
  301. package/templates/slider/index.ts +41 -0
  302. package/templates/slider/slider-context.ts +36 -0
  303. package/templates/slider/slider-range.tsx +59 -0
  304. package/templates/slider/slider-root.tsx +166 -0
  305. package/templates/slider/slider-thumb.tsx +213 -0
  306. package/templates/slider/slider-track.tsx +113 -0
  307. package/templates/slider/wc/index.ts +1 -0
  308. package/templates/slider/wc/slider.ts +465 -0
  309. package/templates/spinner/spinner.tsx +64 -0
  310. package/templates/spinner/wc/spinner.ts +70 -0
  311. package/templates/stepper/index.tsx +230 -0
  312. package/templates/stepper/wc/index.ts +12 -0
  313. package/templates/stepper/wc/stepper-content.ts +30 -0
  314. package/templates/stepper/wc/stepper-description.ts +25 -0
  315. package/templates/stepper/wc/stepper-indicator.ts +30 -0
  316. package/templates/stepper/wc/stepper-item.ts +55 -0
  317. package/templates/stepper/wc/stepper-separator.ts +29 -0
  318. package/templates/stepper/wc/stepper-title.ts +25 -0
  319. package/templates/stepper/wc/stepper-trigger.ts +67 -0
  320. package/templates/stepper/wc/stepper.ts +164 -0
  321. package/templates/switch/switch.tsx +90 -0
  322. package/templates/switch/wc/switch.ts +228 -0
  323. package/templates/table/body.tsx +21 -0
  324. package/templates/table/cell.tsx +44 -0
  325. package/templates/table/head.tsx +112 -0
  326. package/templates/table/header.tsx +21 -0
  327. package/templates/table/index.tsx +93 -0
  328. package/templates/table/root.tsx +82 -0
  329. package/templates/table/row.tsx +36 -0
  330. package/templates/table/wc/index.ts +9 -0
  331. package/templates/table/wc/table-body.ts +32 -0
  332. package/templates/table/wc/table-cell.ts +58 -0
  333. package/templates/table/wc/table-head.ts +129 -0
  334. package/templates/table/wc/table-header.ts +32 -0
  335. package/templates/table/wc/table-row.ts +50 -0
  336. package/templates/table/wc/table.ts +93 -0
  337. package/templates/tabs/index.tsx +222 -0
  338. package/templates/tabs/wc/index.ts +8 -0
  339. package/templates/tabs/wc/tabs-content.ts +82 -0
  340. package/templates/tabs/wc/tabs-list.ts +56 -0
  341. package/templates/tabs/wc/tabs-trigger.ts +136 -0
  342. package/templates/tabs/wc/tabs.ts +202 -0
  343. package/templates/tag/index.tsx +186 -0
  344. package/templates/tag/wc/index.ts +4 -0
  345. package/templates/tag/wc/tag.ts +166 -0
  346. package/templates/text/text.tsx +100 -0
  347. package/templates/text/wc/text.ts +94 -0
  348. package/templates/textarea/textarea.tsx +134 -0
  349. package/templates/textarea/wc/textarea.ts +280 -0
  350. package/templates/time-picker/index.ts +42 -0
  351. package/templates/time-picker/time-picker-context.ts +28 -0
  352. package/templates/time-picker/time-picker-root.tsx +113 -0
  353. package/templates/time-picker/time-picker-segment.tsx +91 -0
  354. package/templates/time-picker/wc/index.ts +1 -0
  355. package/templates/time-picker/wc/time-picker.ts +221 -0
  356. package/templates/toast/index.tsx +71 -0
  357. package/templates/toast/provider.tsx +228 -0
  358. package/templates/toast/toast.tsx +142 -0
  359. package/templates/toast/use-toast.ts +89 -0
  360. package/templates/toast/wc/index.ts +15 -0
  361. package/templates/toast/wc/toast-controller.ts +282 -0
  362. package/templates/toast/wc/toast-provider.ts +161 -0
  363. package/templates/toast/wc/toast.ts +165 -0
  364. package/templates/tooltip/tooltip.tsx +62 -0
  365. package/templates/tooltip/wc/tooltip-content.ts +64 -0
  366. package/templates/tooltip/wc/tooltip.ts +289 -0
  367. package/templates/tree/index.tsx +60 -0
  368. package/templates/tree/tree-item.tsx +131 -0
  369. package/templates/tree/tree.tsx +138 -0
  370. package/templates/tree/wc/index.ts +11 -0
  371. package/templates/tree/wc/tree-item.ts +273 -0
  372. package/templates/tree/wc/tree-utils.ts +143 -0
  373. package/templates/tree/wc/tree.ts +139 -0
  374. package/templates/visually-hidden/visually-hidden.tsx +45 -0
  375. package/templates/visually-hidden/wc/visually-hidden.ts +64 -0
@@ -1,6 +1,6 @@
1
1
  {
2
- "version": "1.0.0",
3
- "updatedAt": "2026-01-06T00:00:00Z",
2
+ "version": "1.2.0",
3
+ "updatedAt": "2026-01-08T00:00:00Z",
4
4
  "components": [
5
5
  {
6
6
  "name": "button",
@@ -8,7 +8,10 @@
8
8
  "description": "Accessible button with loading and disabled states",
9
9
  "version": "1.0.0",
10
10
  "status": "stable",
11
- "frameworks": ["react", "wc"],
11
+ "frameworks": [
12
+ "react",
13
+ "wc"
14
+ ],
12
15
  "dependencies": [
13
16
  "@hypoth-ui/tokens"
14
17
  ],
@@ -19,18 +22,16 @@
19
22
  "target": "button.tsx",
20
23
  "type": "tsx",
21
24
  "framework": "react"
22
- },
23
- {
24
- "path": "button/button.ts",
25
- "target": "button.ts",
26
- "type": "ts",
27
- "framework": "wc"
28
25
  }
29
26
  ],
30
27
  "a11y": {
31
28
  "apgPattern": "button",
32
- "keyboardSupport": ["Enter", "Space"]
33
- }
29
+ "keyboardSupport": [
30
+ "Enter",
31
+ "Space"
32
+ ]
33
+ },
34
+ "hasTemplates": true
34
35
  },
35
36
  {
36
37
  "name": "dialog",
@@ -38,48 +39,33 @@
38
39
  "description": "Modal dialog with focus management and keyboard navigation",
39
40
  "version": "1.0.0",
40
41
  "status": "stable",
41
- "frameworks": ["react", "wc"],
42
+ "frameworks": [
43
+ "react",
44
+ "wc"
45
+ ],
42
46
  "dependencies": [
43
47
  "@hypoth-ui/tokens",
44
48
  "@hypoth-ui/primitives-dom"
45
49
  ],
46
- "registryDependencies": ["button"],
50
+ "registryDependencies": [
51
+ "button"
52
+ ],
47
53
  "files": [
48
54
  {
49
- "path": "dialog/dialog.tsx",
50
- "target": "dialog.tsx",
55
+ "path": "dialog/dialog-root.tsx",
56
+ "target": "dialog-root.tsx",
51
57
  "type": "tsx",
52
58
  "framework": "react"
53
- },
54
- {
55
- "path": "dialog/dialog.ts",
56
- "target": "dialog.ts",
57
- "type": "ts",
58
- "framework": "wc"
59
- },
60
- {
61
- "path": "dialog/dialog-content.ts",
62
- "target": "dialog-content.ts",
63
- "type": "ts",
64
- "framework": "wc"
65
- },
66
- {
67
- "path": "dialog/dialog-title.ts",
68
- "target": "dialog-title.ts",
69
- "type": "ts",
70
- "framework": "wc"
71
- },
72
- {
73
- "path": "dialog/dialog-description.ts",
74
- "target": "dialog-description.ts",
75
- "type": "ts",
76
- "framework": "wc"
77
59
  }
78
60
  ],
79
61
  "a11y": {
80
62
  "apgPattern": "dialog-modal",
81
- "keyboardSupport": ["Escape", "Tab"]
82
- }
63
+ "keyboardSupport": [
64
+ "Escape",
65
+ "Tab"
66
+ ]
67
+ },
68
+ "hasTemplates": true
83
69
  },
84
70
  {
85
71
  "name": "menu",
@@ -87,42 +73,66 @@
87
73
  "description": "Dropdown menu with keyboard navigation and submenus",
88
74
  "version": "1.0.0",
89
75
  "status": "stable",
90
- "frameworks": ["react", "wc"],
76
+ "frameworks": [
77
+ "react",
78
+ "wc"
79
+ ],
91
80
  "dependencies": [
92
81
  "@hypoth-ui/tokens",
93
82
  "@hypoth-ui/primitives-dom"
94
83
  ],
95
- "registryDependencies": ["button"],
84
+ "registryDependencies": [
85
+ "button"
86
+ ],
96
87
  "files": [
97
88
  {
98
- "path": "menu/menu.tsx",
99
- "target": "menu.tsx",
89
+ "path": "menu/menu-content.tsx",
90
+ "target": "menu-content.tsx",
100
91
  "type": "tsx",
101
92
  "framework": "react"
102
93
  },
103
94
  {
104
- "path": "menu/menu.ts",
105
- "target": "menu.ts",
106
- "type": "ts",
107
- "framework": "wc"
95
+ "path": "menu/menu-item.tsx",
96
+ "target": "menu-item.tsx",
97
+ "type": "tsx",
98
+ "framework": "react"
108
99
  },
109
100
  {
110
- "path": "menu/menu-content.ts",
111
- "target": "menu-content.ts",
112
- "type": "ts",
113
- "framework": "wc"
101
+ "path": "menu/menu-label.tsx",
102
+ "target": "menu-label.tsx",
103
+ "type": "tsx",
104
+ "framework": "react"
114
105
  },
115
106
  {
116
- "path": "menu/menu-item.ts",
117
- "target": "menu-item.ts",
118
- "type": "ts",
119
- "framework": "wc"
107
+ "path": "menu/menu-root.tsx",
108
+ "target": "menu-root.tsx",
109
+ "type": "tsx",
110
+ "framework": "react"
111
+ },
112
+ {
113
+ "path": "menu/menu-separator.tsx",
114
+ "target": "menu-separator.tsx",
115
+ "type": "tsx",
116
+ "framework": "react"
117
+ },
118
+ {
119
+ "path": "menu/menu-trigger.tsx",
120
+ "target": "menu-trigger.tsx",
121
+ "type": "tsx",
122
+ "framework": "react"
120
123
  }
121
124
  ],
122
125
  "a11y": {
123
126
  "apgPattern": "menu-button",
124
- "keyboardSupport": ["Enter", "Space", "ArrowUp", "ArrowDown", "Escape"]
125
- }
127
+ "keyboardSupport": [
128
+ "Enter",
129
+ "Space",
130
+ "ArrowUp",
131
+ "ArrowDown",
132
+ "Escape"
133
+ ]
134
+ },
135
+ "hasTemplates": true
126
136
  },
127
137
  {
128
138
  "name": "popover",
@@ -130,7 +140,10 @@
130
140
  "description": "Non-modal overlay positioned relative to trigger",
131
141
  "version": "1.0.0",
132
142
  "status": "stable",
133
- "frameworks": ["react", "wc"],
143
+ "frameworks": [
144
+ "react",
145
+ "wc"
146
+ ],
134
147
  "dependencies": [
135
148
  "@hypoth-ui/tokens",
136
149
  "@hypoth-ui/primitives-dom"
@@ -142,24 +155,16 @@
142
155
  "target": "popover.tsx",
143
156
  "type": "tsx",
144
157
  "framework": "react"
145
- },
146
- {
147
- "path": "popover/popover.ts",
148
- "target": "popover.ts",
149
- "type": "ts",
150
- "framework": "wc"
151
- },
152
- {
153
- "path": "popover/popover-content.ts",
154
- "target": "popover-content.ts",
155
- "type": "ts",
156
- "framework": "wc"
157
158
  }
158
159
  ],
159
160
  "a11y": {
160
161
  "apgPattern": "dialog-non-modal",
161
- "keyboardSupport": ["Escape", "Tab"]
162
- }
162
+ "keyboardSupport": [
163
+ "Escape",
164
+ "Tab"
165
+ ]
166
+ },
167
+ "hasTemplates": true
163
168
  },
164
169
  {
165
170
  "name": "tooltip",
@@ -167,7 +172,10 @@
167
172
  "description": "Informational overlay on hover/focus",
168
173
  "version": "1.0.0",
169
174
  "status": "stable",
170
- "frameworks": ["react", "wc"],
175
+ "frameworks": [
176
+ "react",
177
+ "wc"
178
+ ],
171
179
  "dependencies": [
172
180
  "@hypoth-ui/tokens",
173
181
  "@hypoth-ui/primitives-dom"
@@ -179,24 +187,15 @@
179
187
  "target": "tooltip.tsx",
180
188
  "type": "tsx",
181
189
  "framework": "react"
182
- },
183
- {
184
- "path": "tooltip/tooltip.ts",
185
- "target": "tooltip.ts",
186
- "type": "ts",
187
- "framework": "wc"
188
- },
189
- {
190
- "path": "tooltip/tooltip-content.ts",
191
- "target": "tooltip-content.ts",
192
- "type": "ts",
193
- "framework": "wc"
194
190
  }
195
191
  ],
196
192
  "a11y": {
197
193
  "apgPattern": "tooltip",
198
- "keyboardSupport": ["Escape"]
199
- }
194
+ "keyboardSupport": [
195
+ "Escape"
196
+ ]
197
+ },
198
+ "hasTemplates": true
200
199
  },
201
200
  {
202
201
  "name": "input",
@@ -204,29 +203,31 @@
204
203
  "description": "Accessible text input with validation states",
205
204
  "version": "1.0.0",
206
205
  "status": "stable",
207
- "frameworks": ["react", "wc"],
206
+ "frameworks": [
207
+ "react",
208
+ "wc"
209
+ ],
208
210
  "dependencies": [
209
211
  "@hypoth-ui/tokens"
210
212
  ],
211
- "registryDependencies": ["field"],
213
+ "registryDependencies": [
214
+ "field"
215
+ ],
212
216
  "files": [
213
217
  {
214
218
  "path": "input/input.tsx",
215
219
  "target": "input.tsx",
216
220
  "type": "tsx",
217
221
  "framework": "react"
218
- },
219
- {
220
- "path": "input/input.ts",
221
- "target": "input.ts",
222
- "type": "ts",
223
- "framework": "wc"
224
222
  }
225
223
  ],
226
224
  "a11y": {
227
225
  "apgPattern": "textbox",
228
- "keyboardSupport": ["Tab"]
229
- }
226
+ "keyboardSupport": [
227
+ "Tab"
228
+ ]
229
+ },
230
+ "hasTemplates": true
230
231
  },
231
232
  {
232
233
  "name": "textarea",
@@ -234,29 +235,31 @@
234
235
  "description": "Multi-line text input with auto-resize",
235
236
  "version": "1.0.0",
236
237
  "status": "stable",
237
- "frameworks": ["react", "wc"],
238
+ "frameworks": [
239
+ "react",
240
+ "wc"
241
+ ],
238
242
  "dependencies": [
239
243
  "@hypoth-ui/tokens"
240
244
  ],
241
- "registryDependencies": ["field"],
245
+ "registryDependencies": [
246
+ "field"
247
+ ],
242
248
  "files": [
243
249
  {
244
250
  "path": "textarea/textarea.tsx",
245
251
  "target": "textarea.tsx",
246
252
  "type": "tsx",
247
253
  "framework": "react"
248
- },
249
- {
250
- "path": "textarea/textarea.ts",
251
- "target": "textarea.ts",
252
- "type": "ts",
253
- "framework": "wc"
254
254
  }
255
255
  ],
256
256
  "a11y": {
257
257
  "apgPattern": "textbox-multiline",
258
- "keyboardSupport": ["Tab"]
259
- }
258
+ "keyboardSupport": [
259
+ "Tab"
260
+ ]
261
+ },
262
+ "hasTemplates": true
260
263
  },
261
264
  {
262
265
  "name": "checkbox",
@@ -264,29 +267,31 @@
264
267
  "description": "Tri-state checkbox with indeterminate support",
265
268
  "version": "1.0.0",
266
269
  "status": "stable",
267
- "frameworks": ["react", "wc"],
270
+ "frameworks": [
271
+ "react",
272
+ "wc"
273
+ ],
268
274
  "dependencies": [
269
275
  "@hypoth-ui/tokens"
270
276
  ],
271
- "registryDependencies": ["field"],
277
+ "registryDependencies": [
278
+ "field"
279
+ ],
272
280
  "files": [
273
281
  {
274
282
  "path": "checkbox/checkbox.tsx",
275
283
  "target": "checkbox.tsx",
276
284
  "type": "tsx",
277
285
  "framework": "react"
278
- },
279
- {
280
- "path": "checkbox/checkbox.ts",
281
- "target": "checkbox.ts",
282
- "type": "ts",
283
- "framework": "wc"
284
286
  }
285
287
  ],
286
288
  "a11y": {
287
289
  "apgPattern": "checkbox",
288
- "keyboardSupport": ["Space"]
289
- }
290
+ "keyboardSupport": [
291
+ "Space"
292
+ ]
293
+ },
294
+ "hasTemplates": true
290
295
  },
291
296
  {
292
297
  "name": "radio-group",
@@ -294,12 +299,17 @@
294
299
  "description": "Radio button group with keyboard navigation",
295
300
  "version": "1.0.0",
296
301
  "status": "stable",
297
- "frameworks": ["react", "wc"],
302
+ "frameworks": [
303
+ "react",
304
+ "wc"
305
+ ],
298
306
  "dependencies": [
299
307
  "@hypoth-ui/tokens",
300
308
  "@hypoth-ui/primitives-dom"
301
309
  ],
302
- "registryDependencies": ["field"],
310
+ "registryDependencies": [
311
+ "field"
312
+ ],
303
313
  "files": [
304
314
  {
305
315
  "path": "radio/radio-group.tsx",
@@ -322,8 +332,14 @@
322
332
  ],
323
333
  "a11y": {
324
334
  "apgPattern": "radio-group",
325
- "keyboardSupport": ["ArrowUp", "ArrowDown", "ArrowLeft", "ArrowRight"]
326
- }
335
+ "keyboardSupport": [
336
+ "ArrowUp",
337
+ "ArrowDown",
338
+ "ArrowLeft",
339
+ "ArrowRight"
340
+ ]
341
+ },
342
+ "hasTemplates": false
327
343
  },
328
344
  {
329
345
  "name": "switch",
@@ -331,29 +347,31 @@
331
347
  "description": "Toggle switch for boolean settings",
332
348
  "version": "1.0.0",
333
349
  "status": "stable",
334
- "frameworks": ["react", "wc"],
350
+ "frameworks": [
351
+ "react",
352
+ "wc"
353
+ ],
335
354
  "dependencies": [
336
355
  "@hypoth-ui/tokens"
337
356
  ],
338
- "registryDependencies": ["field"],
357
+ "registryDependencies": [
358
+ "field"
359
+ ],
339
360
  "files": [
340
361
  {
341
362
  "path": "switch/switch.tsx",
342
363
  "target": "switch.tsx",
343
364
  "type": "tsx",
344
365
  "framework": "react"
345
- },
346
- {
347
- "path": "switch/switch.ts",
348
- "target": "switch.ts",
349
- "type": "ts",
350
- "framework": "wc"
351
366
  }
352
367
  ],
353
368
  "a11y": {
354
369
  "apgPattern": "switch",
355
- "keyboardSupport": ["Space"]
356
- }
370
+ "keyboardSupport": [
371
+ "Space"
372
+ ]
373
+ },
374
+ "hasTemplates": true
357
375
  },
358
376
  {
359
377
  "name": "field",
@@ -361,7 +379,10 @@
361
379
  "description": "Form field wrapper with label, description, and error states",
362
380
  "version": "1.0.0",
363
381
  "status": "stable",
364
- "frameworks": ["react", "wc"],
382
+ "frameworks": [
383
+ "react",
384
+ "wc"
385
+ ],
365
386
  "dependencies": [
366
387
  "@hypoth-ui/tokens"
367
388
  ],
@@ -372,36 +393,13 @@
372
393
  "target": "field.tsx",
373
394
  "type": "tsx",
374
395
  "framework": "react"
375
- },
376
- {
377
- "path": "field/field.ts",
378
- "target": "field.ts",
379
- "type": "ts",
380
- "framework": "wc"
381
- },
382
- {
383
- "path": "field/label.ts",
384
- "target": "label.ts",
385
- "type": "ts",
386
- "framework": "wc"
387
- },
388
- {
389
- "path": "field/field-description.ts",
390
- "target": "field-description.ts",
391
- "type": "ts",
392
- "framework": "wc"
393
- },
394
- {
395
- "path": "field/field-error.ts",
396
- "target": "field-error.ts",
397
- "type": "ts",
398
- "framework": "wc"
399
396
  }
400
397
  ],
401
398
  "a11y": {
402
399
  "apgPattern": "landmark-form",
403
400
  "keyboardSupport": []
404
- }
401
+ },
402
+ "hasTemplates": true
405
403
  },
406
404
  {
407
405
  "name": "icon",
@@ -409,7 +407,10 @@
409
407
  "description": "SVG icon with size and accessibility handling",
410
408
  "version": "1.0.0",
411
409
  "status": "stable",
412
- "frameworks": ["react", "wc"],
410
+ "frameworks": [
411
+ "react",
412
+ "wc"
413
+ ],
413
414
  "dependencies": [
414
415
  "@hypoth-ui/tokens"
415
416
  ],
@@ -420,24 +421,13 @@
420
421
  "target": "icon.tsx",
421
422
  "type": "tsx",
422
423
  "framework": "react"
423
- },
424
- {
425
- "path": "icon/icon.ts",
426
- "target": "icon.ts",
427
- "type": "ts",
428
- "framework": "wc"
429
- },
430
- {
431
- "path": "icon/icon-adapter.ts",
432
- "target": "icon-adapter.ts",
433
- "type": "ts",
434
- "framework": "wc"
435
424
  }
436
425
  ],
437
426
  "a11y": {
438
427
  "apgPattern": "img",
439
428
  "keyboardSupport": []
440
- }
429
+ },
430
+ "hasTemplates": true
441
431
  },
442
432
  {
443
433
  "name": "link",
@@ -445,7 +435,10 @@
445
435
  "description": "Accessible anchor with external link handling",
446
436
  "version": "1.0.0",
447
437
  "status": "stable",
448
- "frameworks": ["react", "wc"],
438
+ "frameworks": [
439
+ "react",
440
+ "wc"
441
+ ],
449
442
  "dependencies": [
450
443
  "@hypoth-ui/tokens"
451
444
  ],
@@ -456,18 +449,15 @@
456
449
  "target": "link.tsx",
457
450
  "type": "tsx",
458
451
  "framework": "react"
459
- },
460
- {
461
- "path": "link/link.ts",
462
- "target": "link.ts",
463
- "type": "ts",
464
- "framework": "wc"
465
452
  }
466
453
  ],
467
454
  "a11y": {
468
455
  "apgPattern": "link",
469
- "keyboardSupport": ["Enter"]
470
- }
456
+ "keyboardSupport": [
457
+ "Enter"
458
+ ]
459
+ },
460
+ "hasTemplates": true
471
461
  },
472
462
  {
473
463
  "name": "spinner",
@@ -475,7 +465,10 @@
475
465
  "description": "Loading spinner with accessibility announcements",
476
466
  "version": "1.0.0",
477
467
  "status": "stable",
478
- "frameworks": ["react", "wc"],
468
+ "frameworks": [
469
+ "react",
470
+ "wc"
471
+ ],
479
472
  "dependencies": [
480
473
  "@hypoth-ui/tokens"
481
474
  ],
@@ -486,18 +479,13 @@
486
479
  "target": "spinner.tsx",
487
480
  "type": "tsx",
488
481
  "framework": "react"
489
- },
490
- {
491
- "path": "spinner/spinner.ts",
492
- "target": "spinner.ts",
493
- "type": "ts",
494
- "framework": "wc"
495
482
  }
496
483
  ],
497
484
  "a11y": {
498
485
  "apgPattern": "status",
499
486
  "keyboardSupport": []
500
- }
487
+ },
488
+ "hasTemplates": true
501
489
  },
502
490
  {
503
491
  "name": "text",
@@ -505,7 +493,10 @@
505
493
  "description": "Typography component with semantic variants",
506
494
  "version": "1.0.0",
507
495
  "status": "stable",
508
- "frameworks": ["react", "wc"],
496
+ "frameworks": [
497
+ "react",
498
+ "wc"
499
+ ],
509
500
  "dependencies": [
510
501
  "@hypoth-ui/tokens"
511
502
  ],
@@ -516,18 +507,13 @@
516
507
  "target": "text.tsx",
517
508
  "type": "tsx",
518
509
  "framework": "react"
519
- },
520
- {
521
- "path": "text/text.ts",
522
- "target": "text.ts",
523
- "type": "ts",
524
- "framework": "wc"
525
510
  }
526
511
  ],
527
512
  "a11y": {
528
513
  "apgPattern": "none",
529
514
  "keyboardSupport": []
530
- }
515
+ },
516
+ "hasTemplates": true
531
517
  },
532
518
  {
533
519
  "name": "visually-hidden",
@@ -535,7 +521,10 @@
535
521
  "description": "Hide content visually while keeping it accessible",
536
522
  "version": "1.0.0",
537
523
  "status": "stable",
538
- "frameworks": ["react", "wc"],
524
+ "frameworks": [
525
+ "react",
526
+ "wc"
527
+ ],
539
528
  "dependencies": [
540
529
  "@hypoth-ui/tokens"
541
530
  ],
@@ -546,18 +535,1643 @@
546
535
  "target": "visually-hidden.tsx",
547
536
  "type": "tsx",
548
537
  "framework": "react"
549
- },
550
- {
551
- "path": "visually-hidden/visually-hidden.ts",
552
- "target": "visually-hidden.ts",
553
- "type": "ts",
554
- "framework": "wc"
555
538
  }
556
539
  ],
557
540
  "a11y": {
558
541
  "apgPattern": "none",
559
542
  "keyboardSupport": []
560
- }
543
+ },
544
+ "hasTemplates": true
545
+ },
546
+ {
547
+ "name": "select",
548
+ "displayName": "Select",
549
+ "description": "Accessible select dropdown with search, virtualization, and keyboard navigation",
550
+ "version": "1.0.0",
551
+ "status": "stable",
552
+ "frameworks": [
553
+ "react",
554
+ "wc"
555
+ ],
556
+ "dependencies": [
557
+ "@hypoth-ui/tokens",
558
+ "@hypoth-ui/primitives-dom"
559
+ ],
560
+ "registryDependencies": [
561
+ "field",
562
+ "popover"
563
+ ],
564
+ "files": [
565
+ {
566
+ "path": "select/select-root.tsx",
567
+ "target": "select-root.tsx",
568
+ "type": "tsx",
569
+ "framework": "react"
570
+ }
571
+ ],
572
+ "a11y": {
573
+ "apgPattern": "listbox",
574
+ "keyboardSupport": [
575
+ "ArrowUp",
576
+ "ArrowDown",
577
+ "Home",
578
+ "End",
579
+ "Enter",
580
+ "Space",
581
+ "Escape"
582
+ ]
583
+ },
584
+ "hasTemplates": true
585
+ },
586
+ {
587
+ "name": "combobox",
588
+ "displayName": "Combobox",
589
+ "description": "Autocomplete input with async search, multi-select tags, and creatable options",
590
+ "version": "1.0.0",
591
+ "status": "stable",
592
+ "frameworks": [
593
+ "react",
594
+ "wc"
595
+ ],
596
+ "dependencies": [
597
+ "@hypoth-ui/tokens",
598
+ "@hypoth-ui/primitives-dom"
599
+ ],
600
+ "registryDependencies": [
601
+ "field",
602
+ "popover"
603
+ ],
604
+ "files": [
605
+ {
606
+ "path": "combobox/combobox-content.tsx",
607
+ "target": "combobox-content.tsx",
608
+ "type": "tsx",
609
+ "framework": "react"
610
+ },
611
+ {
612
+ "path": "combobox/combobox-empty.tsx",
613
+ "target": "combobox-empty.tsx",
614
+ "type": "tsx",
615
+ "framework": "react"
616
+ },
617
+ {
618
+ "path": "combobox/combobox-input.tsx",
619
+ "target": "combobox-input.tsx",
620
+ "type": "tsx",
621
+ "framework": "react"
622
+ },
623
+ {
624
+ "path": "combobox/combobox-loading.tsx",
625
+ "target": "combobox-loading.tsx",
626
+ "type": "tsx",
627
+ "framework": "react"
628
+ },
629
+ {
630
+ "path": "combobox/combobox-option.tsx",
631
+ "target": "combobox-option.tsx",
632
+ "type": "tsx",
633
+ "framework": "react"
634
+ },
635
+ {
636
+ "path": "combobox/combobox-root.tsx",
637
+ "target": "combobox-root.tsx",
638
+ "type": "tsx",
639
+ "framework": "react"
640
+ },
641
+ {
642
+ "path": "combobox/combobox-tag.tsx",
643
+ "target": "combobox-tag.tsx",
644
+ "type": "tsx",
645
+ "framework": "react"
646
+ }
647
+ ],
648
+ "a11y": {
649
+ "apgPattern": "combobox",
650
+ "keyboardSupport": [
651
+ "ArrowUp",
652
+ "ArrowDown",
653
+ "Enter",
654
+ "Escape",
655
+ "Backspace"
656
+ ]
657
+ },
658
+ "hasTemplates": true
659
+ },
660
+ {
661
+ "name": "date-picker",
662
+ "displayName": "Date Picker",
663
+ "description": "Calendar date picker with single/range selection, min/max constraints, and locale support",
664
+ "version": "1.0.0",
665
+ "status": "stable",
666
+ "frameworks": [
667
+ "react",
668
+ "wc"
669
+ ],
670
+ "dependencies": [
671
+ "@hypoth-ui/tokens",
672
+ "@hypoth-ui/primitives-dom",
673
+ "date-fns"
674
+ ],
675
+ "registryDependencies": [
676
+ "field",
677
+ "popover",
678
+ "button"
679
+ ],
680
+ "files": [
681
+ {
682
+ "path": "date-picker/date-picker-calendar.tsx",
683
+ "target": "date-picker-calendar.tsx",
684
+ "type": "tsx",
685
+ "framework": "react"
686
+ },
687
+ {
688
+ "path": "date-picker/date-picker-content.tsx",
689
+ "target": "date-picker-content.tsx",
690
+ "type": "tsx",
691
+ "framework": "react"
692
+ },
693
+ {
694
+ "path": "date-picker/date-picker-root.tsx",
695
+ "target": "date-picker-root.tsx",
696
+ "type": "tsx",
697
+ "framework": "react"
698
+ },
699
+ {
700
+ "path": "date-picker/date-picker-trigger.tsx",
701
+ "target": "date-picker-trigger.tsx",
702
+ "type": "tsx",
703
+ "framework": "react"
704
+ }
705
+ ],
706
+ "a11y": {
707
+ "apgPattern": "dialog-date-picker",
708
+ "keyboardSupport": [
709
+ "ArrowUp",
710
+ "ArrowDown",
711
+ "ArrowLeft",
712
+ "ArrowRight",
713
+ "PageUp",
714
+ "PageDown",
715
+ "Home",
716
+ "End",
717
+ "Enter",
718
+ "Escape"
719
+ ]
720
+ },
721
+ "hasTemplates": true
722
+ },
723
+ {
724
+ "name": "slider",
725
+ "displayName": "Slider",
726
+ "description": "Range slider with single/dual thumbs, step snapping, and keyboard control",
727
+ "version": "1.0.0",
728
+ "status": "stable",
729
+ "frameworks": [
730
+ "react",
731
+ "wc"
732
+ ],
733
+ "dependencies": [
734
+ "@hypoth-ui/tokens",
735
+ "@hypoth-ui/primitives-dom"
736
+ ],
737
+ "registryDependencies": [
738
+ "field"
739
+ ],
740
+ "files": [
741
+ {
742
+ "path": "slider/slider-range.tsx",
743
+ "target": "slider-range.tsx",
744
+ "type": "tsx",
745
+ "framework": "react"
746
+ },
747
+ {
748
+ "path": "slider/slider-root.tsx",
749
+ "target": "slider-root.tsx",
750
+ "type": "tsx",
751
+ "framework": "react"
752
+ },
753
+ {
754
+ "path": "slider/slider-thumb.tsx",
755
+ "target": "slider-thumb.tsx",
756
+ "type": "tsx",
757
+ "framework": "react"
758
+ },
759
+ {
760
+ "path": "slider/slider-track.tsx",
761
+ "target": "slider-track.tsx",
762
+ "type": "tsx",
763
+ "framework": "react"
764
+ }
765
+ ],
766
+ "a11y": {
767
+ "apgPattern": "slider",
768
+ "keyboardSupport": [
769
+ "ArrowUp",
770
+ "ArrowDown",
771
+ "ArrowLeft",
772
+ "ArrowRight",
773
+ "PageUp",
774
+ "PageDown",
775
+ "Home",
776
+ "End"
777
+ ]
778
+ },
779
+ "hasTemplates": true
780
+ },
781
+ {
782
+ "name": "number-input",
783
+ "displayName": "Number Input",
784
+ "description": "Numeric input with increment/decrement buttons, step, min/max validation",
785
+ "version": "1.0.0",
786
+ "status": "stable",
787
+ "frameworks": [
788
+ "react",
789
+ "wc"
790
+ ],
791
+ "dependencies": [
792
+ "@hypoth-ui/tokens",
793
+ "@hypoth-ui/primitives-dom"
794
+ ],
795
+ "registryDependencies": [
796
+ "field",
797
+ "button"
798
+ ],
799
+ "files": [
800
+ {
801
+ "path": "number-input/number-input-decrement.tsx",
802
+ "target": "number-input-decrement.tsx",
803
+ "type": "tsx",
804
+ "framework": "react"
805
+ },
806
+ {
807
+ "path": "number-input/number-input-field.tsx",
808
+ "target": "number-input-field.tsx",
809
+ "type": "tsx",
810
+ "framework": "react"
811
+ },
812
+ {
813
+ "path": "number-input/number-input-increment.tsx",
814
+ "target": "number-input-increment.tsx",
815
+ "type": "tsx",
816
+ "framework": "react"
817
+ },
818
+ {
819
+ "path": "number-input/number-input-root.tsx",
820
+ "target": "number-input-root.tsx",
821
+ "type": "tsx",
822
+ "framework": "react"
823
+ }
824
+ ],
825
+ "a11y": {
826
+ "apgPattern": "spinbutton",
827
+ "keyboardSupport": [
828
+ "ArrowUp",
829
+ "ArrowDown",
830
+ "PageUp",
831
+ "PageDown",
832
+ "Home",
833
+ "End"
834
+ ]
835
+ },
836
+ "hasTemplates": true
837
+ },
838
+ {
839
+ "name": "file-upload",
840
+ "displayName": "File Upload",
841
+ "description": "Drag-and-drop file upload with validation, progress tracking, and preview",
842
+ "version": "1.0.0",
843
+ "status": "stable",
844
+ "frameworks": [
845
+ "react",
846
+ "wc"
847
+ ],
848
+ "dependencies": [
849
+ "@hypoth-ui/tokens",
850
+ "@hypoth-ui/primitives-dom"
851
+ ],
852
+ "registryDependencies": [
853
+ "field",
854
+ "button"
855
+ ],
856
+ "files": [
857
+ {
858
+ "path": "file-upload/file-upload-dropzone.tsx",
859
+ "target": "file-upload-dropzone.tsx",
860
+ "type": "tsx",
861
+ "framework": "react"
862
+ },
863
+ {
864
+ "path": "file-upload/file-upload-input.tsx",
865
+ "target": "file-upload-input.tsx",
866
+ "type": "tsx",
867
+ "framework": "react"
868
+ },
869
+ {
870
+ "path": "file-upload/file-upload-item.tsx",
871
+ "target": "file-upload-item.tsx",
872
+ "type": "tsx",
873
+ "framework": "react"
874
+ },
875
+ {
876
+ "path": "file-upload/file-upload-root.tsx",
877
+ "target": "file-upload-root.tsx",
878
+ "type": "tsx",
879
+ "framework": "react"
880
+ }
881
+ ],
882
+ "a11y": {
883
+ "apgPattern": "button",
884
+ "keyboardSupport": [
885
+ "Enter",
886
+ "Space"
887
+ ]
888
+ },
889
+ "hasTemplates": true
890
+ },
891
+ {
892
+ "name": "time-picker",
893
+ "displayName": "Time Picker",
894
+ "description": "Time input with 12/24 hour format, minute intervals, and segmented fields",
895
+ "version": "1.0.0",
896
+ "status": "stable",
897
+ "frameworks": [
898
+ "react",
899
+ "wc"
900
+ ],
901
+ "dependencies": [
902
+ "@hypoth-ui/tokens",
903
+ "@hypoth-ui/primitives-dom"
904
+ ],
905
+ "registryDependencies": [
906
+ "field"
907
+ ],
908
+ "files": [
909
+ {
910
+ "path": "time-picker/time-picker-root.tsx",
911
+ "target": "time-picker-root.tsx",
912
+ "type": "tsx",
913
+ "framework": "react"
914
+ },
915
+ {
916
+ "path": "time-picker/time-picker-segment.tsx",
917
+ "target": "time-picker-segment.tsx",
918
+ "type": "tsx",
919
+ "framework": "react"
920
+ }
921
+ ],
922
+ "a11y": {
923
+ "apgPattern": "spinbutton",
924
+ "keyboardSupport": [
925
+ "ArrowUp",
926
+ "ArrowDown",
927
+ "ArrowLeft",
928
+ "ArrowRight",
929
+ "Tab"
930
+ ]
931
+ },
932
+ "hasTemplates": true
933
+ },
934
+ {
935
+ "name": "pin-input",
936
+ "displayName": "PIN Input",
937
+ "description": "OTP/PIN entry with auto-advance, paste support, and masking",
938
+ "version": "1.0.0",
939
+ "status": "stable",
940
+ "frameworks": [
941
+ "react",
942
+ "wc"
943
+ ],
944
+ "dependencies": [
945
+ "@hypoth-ui/tokens",
946
+ "@hypoth-ui/primitives-dom"
947
+ ],
948
+ "registryDependencies": [
949
+ "field"
950
+ ],
951
+ "files": [
952
+ {
953
+ "path": "pin-input/pin-input-field.tsx",
954
+ "target": "pin-input-field.tsx",
955
+ "type": "tsx",
956
+ "framework": "react"
957
+ },
958
+ {
959
+ "path": "pin-input/pin-input-root.tsx",
960
+ "target": "pin-input-root.tsx",
961
+ "type": "tsx",
962
+ "framework": "react"
963
+ }
964
+ ],
965
+ "a11y": {
966
+ "apgPattern": "textbox",
967
+ "keyboardSupport": [
968
+ "ArrowLeft",
969
+ "ArrowRight",
970
+ "Backspace",
971
+ "Delete"
972
+ ]
973
+ },
974
+ "hasTemplates": true
975
+ },
976
+ {
977
+ "name": "card",
978
+ "displayName": "Card",
979
+ "description": "Container component for grouping related content with header, content, and footer sections",
980
+ "version": "1.0.0",
981
+ "status": "stable",
982
+ "frameworks": [
983
+ "react",
984
+ "wc"
985
+ ],
986
+ "dependencies": [
987
+ "@hypoth-ui/tokens"
988
+ ],
989
+ "registryDependencies": [],
990
+ "files": [
991
+ {
992
+ "path": "card/index.tsx",
993
+ "target": "index.tsx",
994
+ "type": "tsx",
995
+ "framework": "react"
996
+ }
997
+ ],
998
+ "a11y": {
999
+ "apgPattern": "none",
1000
+ "keyboardSupport": []
1001
+ },
1002
+ "hasTemplates": true
1003
+ },
1004
+ {
1005
+ "name": "separator",
1006
+ "displayName": "Separator",
1007
+ "description": "Visual divider between content sections with horizontal or vertical orientation",
1008
+ "version": "1.0.0",
1009
+ "status": "stable",
1010
+ "frameworks": [
1011
+ "react",
1012
+ "wc"
1013
+ ],
1014
+ "dependencies": [
1015
+ "@hypoth-ui/tokens"
1016
+ ],
1017
+ "registryDependencies": [],
1018
+ "files": [
1019
+ {
1020
+ "path": "separator/index.tsx",
1021
+ "target": "index.tsx",
1022
+ "type": "tsx",
1023
+ "framework": "react"
1024
+ }
1025
+ ],
1026
+ "a11y": {
1027
+ "apgPattern": "separator",
1028
+ "keyboardSupport": []
1029
+ },
1030
+ "hasTemplates": true
1031
+ },
1032
+ {
1033
+ "name": "aspect-ratio",
1034
+ "displayName": "Aspect Ratio",
1035
+ "description": "Container that maintains a specified aspect ratio for responsive media",
1036
+ "version": "1.0.0",
1037
+ "status": "stable",
1038
+ "frameworks": [
1039
+ "react",
1040
+ "wc"
1041
+ ],
1042
+ "dependencies": [
1043
+ "@hypoth-ui/tokens"
1044
+ ],
1045
+ "registryDependencies": [],
1046
+ "files": [
1047
+ {
1048
+ "path": "aspect-ratio/index.tsx",
1049
+ "target": "index.tsx",
1050
+ "type": "tsx",
1051
+ "framework": "react"
1052
+ }
1053
+ ],
1054
+ "a11y": {
1055
+ "apgPattern": "none",
1056
+ "keyboardSupport": []
1057
+ },
1058
+ "hasTemplates": true
1059
+ },
1060
+ {
1061
+ "name": "collapsible",
1062
+ "displayName": "Collapsible",
1063
+ "description": "Expandable/collapsible content section with animated transitions",
1064
+ "version": "1.0.0",
1065
+ "status": "stable",
1066
+ "frameworks": [
1067
+ "react",
1068
+ "wc"
1069
+ ],
1070
+ "dependencies": [
1071
+ "@hypoth-ui/tokens",
1072
+ "@hypoth-ui/primitives-dom"
1073
+ ],
1074
+ "registryDependencies": [],
1075
+ "files": [
1076
+ {
1077
+ "path": "collapsible/index.tsx",
1078
+ "target": "index.tsx",
1079
+ "type": "tsx",
1080
+ "framework": "react"
1081
+ }
1082
+ ],
1083
+ "a11y": {
1084
+ "apgPattern": "disclosure",
1085
+ "keyboardSupport": [
1086
+ "Enter",
1087
+ "Space"
1088
+ ]
1089
+ },
1090
+ "hasTemplates": true
1091
+ },
1092
+ {
1093
+ "name": "tabs",
1094
+ "displayName": "Tabs",
1095
+ "description": "Tabbed interface for organizing content into switchable panels",
1096
+ "version": "1.0.0",
1097
+ "status": "stable",
1098
+ "frameworks": [
1099
+ "react",
1100
+ "wc"
1101
+ ],
1102
+ "dependencies": [
1103
+ "@hypoth-ui/tokens",
1104
+ "@hypoth-ui/primitives-dom"
1105
+ ],
1106
+ "registryDependencies": [],
1107
+ "files": [
1108
+ {
1109
+ "path": "tabs/index.tsx",
1110
+ "target": "index.tsx",
1111
+ "type": "tsx",
1112
+ "framework": "react"
1113
+ }
1114
+ ],
1115
+ "a11y": {
1116
+ "apgPattern": "tabs",
1117
+ "keyboardSupport": [
1118
+ "ArrowLeft",
1119
+ "ArrowRight",
1120
+ "Home",
1121
+ "End"
1122
+ ]
1123
+ },
1124
+ "hasTemplates": true
1125
+ },
1126
+ {
1127
+ "name": "accordion",
1128
+ "displayName": "Accordion",
1129
+ "description": "Vertically stacked expandable sections for organizing dense content",
1130
+ "version": "1.0.0",
1131
+ "status": "stable",
1132
+ "frameworks": [
1133
+ "react",
1134
+ "wc"
1135
+ ],
1136
+ "dependencies": [
1137
+ "@hypoth-ui/tokens",
1138
+ "@hypoth-ui/primitives-dom"
1139
+ ],
1140
+ "registryDependencies": [
1141
+ "collapsible"
1142
+ ],
1143
+ "files": [
1144
+ {
1145
+ "path": "accordion/index.tsx",
1146
+ "target": "index.tsx",
1147
+ "type": "tsx",
1148
+ "framework": "react"
1149
+ }
1150
+ ],
1151
+ "a11y": {
1152
+ "apgPattern": "accordion",
1153
+ "keyboardSupport": [
1154
+ "Enter",
1155
+ "Space",
1156
+ "ArrowUp",
1157
+ "ArrowDown",
1158
+ "Home",
1159
+ "End"
1160
+ ]
1161
+ },
1162
+ "hasTemplates": true
1163
+ },
1164
+ {
1165
+ "name": "alert-dialog",
1166
+ "displayName": "Alert Dialog",
1167
+ "description": "Modal dialog for confirmations requiring explicit user action",
1168
+ "version": "1.0.0",
1169
+ "status": "stable",
1170
+ "frameworks": [
1171
+ "react",
1172
+ "wc"
1173
+ ],
1174
+ "dependencies": [
1175
+ "@hypoth-ui/tokens",
1176
+ "@hypoth-ui/primitives-dom"
1177
+ ],
1178
+ "registryDependencies": [
1179
+ "button"
1180
+ ],
1181
+ "files": [
1182
+ {
1183
+ "path": "alert-dialog/index.tsx",
1184
+ "target": "index.tsx",
1185
+ "type": "tsx",
1186
+ "framework": "react"
1187
+ }
1188
+ ],
1189
+ "a11y": {
1190
+ "apgPattern": "alertdialog",
1191
+ "keyboardSupport": [
1192
+ "Escape",
1193
+ "Tab"
1194
+ ]
1195
+ },
1196
+ "hasTemplates": true
1197
+ },
1198
+ {
1199
+ "name": "sheet",
1200
+ "displayName": "Sheet",
1201
+ "description": "Slide-in panel overlay for secondary content and forms",
1202
+ "version": "1.0.0",
1203
+ "status": "stable",
1204
+ "frameworks": [
1205
+ "react",
1206
+ "wc"
1207
+ ],
1208
+ "dependencies": [
1209
+ "@hypoth-ui/tokens",
1210
+ "@hypoth-ui/primitives-dom"
1211
+ ],
1212
+ "registryDependencies": [
1213
+ "button"
1214
+ ],
1215
+ "files": [
1216
+ {
1217
+ "path": "sheet/index.tsx",
1218
+ "target": "index.tsx",
1219
+ "type": "tsx",
1220
+ "framework": "react"
1221
+ }
1222
+ ],
1223
+ "a11y": {
1224
+ "apgPattern": "dialog-modal",
1225
+ "keyboardSupport": [
1226
+ "Escape",
1227
+ "Tab"
1228
+ ]
1229
+ },
1230
+ "hasTemplates": true
1231
+ },
1232
+ {
1233
+ "name": "drawer",
1234
+ "displayName": "Drawer",
1235
+ "description": "Mobile-friendly slide-in panel with swipe-to-dismiss gesture support",
1236
+ "version": "1.0.0",
1237
+ "status": "stable",
1238
+ "frameworks": [
1239
+ "react",
1240
+ "wc"
1241
+ ],
1242
+ "dependencies": [
1243
+ "@hypoth-ui/tokens",
1244
+ "@hypoth-ui/primitives-dom"
1245
+ ],
1246
+ "registryDependencies": [
1247
+ "sheet"
1248
+ ],
1249
+ "files": [
1250
+ {
1251
+ "path": "drawer/index.tsx",
1252
+ "target": "index.tsx",
1253
+ "type": "tsx",
1254
+ "framework": "react"
1255
+ }
1256
+ ],
1257
+ "a11y": {
1258
+ "apgPattern": "dialog-modal",
1259
+ "keyboardSupport": [
1260
+ "Escape",
1261
+ "Tab"
1262
+ ]
1263
+ },
1264
+ "hasTemplates": true
1265
+ },
1266
+ {
1267
+ "name": "dropdown-menu",
1268
+ "displayName": "Dropdown Menu",
1269
+ "description": "Action menu with checkbox items, radio groups, and keyboard navigation",
1270
+ "version": "1.0.0",
1271
+ "status": "stable",
1272
+ "frameworks": [
1273
+ "react",
1274
+ "wc"
1275
+ ],
1276
+ "dependencies": [
1277
+ "@hypoth-ui/tokens",
1278
+ "@hypoth-ui/primitives-dom"
1279
+ ],
1280
+ "registryDependencies": [
1281
+ "button"
1282
+ ],
1283
+ "files": [
1284
+ {
1285
+ "path": "dropdown-menu/index.tsx",
1286
+ "target": "index.tsx",
1287
+ "type": "tsx",
1288
+ "framework": "react"
1289
+ }
1290
+ ],
1291
+ "a11y": {
1292
+ "apgPattern": "menu-button",
1293
+ "keyboardSupport": [
1294
+ "Enter",
1295
+ "Space",
1296
+ "ArrowUp",
1297
+ "ArrowDown",
1298
+ "Escape"
1299
+ ]
1300
+ },
1301
+ "hasTemplates": true
1302
+ },
1303
+ {
1304
+ "name": "context-menu",
1305
+ "displayName": "Context Menu",
1306
+ "description": "Right-click context menu with keyboard navigation and long-press support",
1307
+ "version": "1.0.0",
1308
+ "status": "stable",
1309
+ "frameworks": [
1310
+ "react",
1311
+ "wc"
1312
+ ],
1313
+ "dependencies": [
1314
+ "@hypoth-ui/tokens",
1315
+ "@hypoth-ui/primitives-dom"
1316
+ ],
1317
+ "registryDependencies": [],
1318
+ "files": [
1319
+ {
1320
+ "path": "context-menu/index.tsx",
1321
+ "target": "index.tsx",
1322
+ "type": "tsx",
1323
+ "framework": "react"
1324
+ }
1325
+ ],
1326
+ "a11y": {
1327
+ "apgPattern": "menu",
1328
+ "keyboardSupport": [
1329
+ "ArrowUp",
1330
+ "ArrowDown",
1331
+ "Enter",
1332
+ "Space",
1333
+ "Escape"
1334
+ ]
1335
+ },
1336
+ "hasTemplates": true
1337
+ },
1338
+ {
1339
+ "name": "hover-card",
1340
+ "displayName": "Hover Card",
1341
+ "description": "Preview card that appears on hover with configurable delays",
1342
+ "version": "1.0.0",
1343
+ "status": "stable",
1344
+ "frameworks": [
1345
+ "react",
1346
+ "wc"
1347
+ ],
1348
+ "dependencies": [
1349
+ "@hypoth-ui/tokens",
1350
+ "@hypoth-ui/primitives-dom"
1351
+ ],
1352
+ "registryDependencies": [],
1353
+ "files": [
1354
+ {
1355
+ "path": "hover-card/index.tsx",
1356
+ "target": "index.tsx",
1357
+ "type": "tsx",
1358
+ "framework": "react"
1359
+ }
1360
+ ],
1361
+ "a11y": {
1362
+ "apgPattern": "tooltip",
1363
+ "keyboardSupport": [
1364
+ "Escape"
1365
+ ]
1366
+ },
1367
+ "hasTemplates": true
1368
+ },
1369
+ {
1370
+ "name": "navigation-menu",
1371
+ "displayName": "Navigation Menu",
1372
+ "description": "Mega-menu style navigation with viewport transitions",
1373
+ "version": "1.0.0",
1374
+ "status": "stable",
1375
+ "frameworks": [
1376
+ "react",
1377
+ "wc"
1378
+ ],
1379
+ "dependencies": [
1380
+ "@hypoth-ui/tokens",
1381
+ "@hypoth-ui/primitives-dom"
1382
+ ],
1383
+ "registryDependencies": [],
1384
+ "files": [
1385
+ {
1386
+ "path": "navigation-menu/index.tsx",
1387
+ "target": "index.tsx",
1388
+ "type": "tsx",
1389
+ "framework": "react"
1390
+ }
1391
+ ],
1392
+ "a11y": {
1393
+ "apgPattern": "menubar",
1394
+ "keyboardSupport": [
1395
+ "ArrowLeft",
1396
+ "ArrowRight",
1397
+ "ArrowDown",
1398
+ "Enter",
1399
+ "Space",
1400
+ "Escape"
1401
+ ]
1402
+ },
1403
+ "hasTemplates": true
1404
+ },
1405
+ {
1406
+ "name": "scroll-area",
1407
+ "displayName": "Scroll Area",
1408
+ "description": "Custom scrollbar container with multiple visibility modes",
1409
+ "version": "1.0.0",
1410
+ "status": "stable",
1411
+ "frameworks": [
1412
+ "react",
1413
+ "wc"
1414
+ ],
1415
+ "dependencies": [
1416
+ "@hypoth-ui/tokens"
1417
+ ],
1418
+ "registryDependencies": [],
1419
+ "files": [
1420
+ {
1421
+ "path": "scroll-area/index.tsx",
1422
+ "target": "index.tsx",
1423
+ "type": "tsx",
1424
+ "framework": "react"
1425
+ }
1426
+ ],
1427
+ "a11y": {
1428
+ "apgPattern": "none",
1429
+ "keyboardSupport": [
1430
+ "ArrowUp",
1431
+ "ArrowDown",
1432
+ "PageUp",
1433
+ "PageDown",
1434
+ "Home",
1435
+ "End"
1436
+ ]
1437
+ },
1438
+ "hasTemplates": true
1439
+ },
1440
+ {
1441
+ "name": "breadcrumb",
1442
+ "displayName": "Breadcrumb",
1443
+ "description": "Navigation trail showing current location in hierarchy",
1444
+ "version": "1.0.0",
1445
+ "status": "stable",
1446
+ "frameworks": [
1447
+ "react",
1448
+ "wc"
1449
+ ],
1450
+ "dependencies": [
1451
+ "@hypoth-ui/tokens"
1452
+ ],
1453
+ "registryDependencies": [
1454
+ "link"
1455
+ ],
1456
+ "files": [
1457
+ {
1458
+ "path": "breadcrumb/index.tsx",
1459
+ "target": "index.tsx",
1460
+ "type": "tsx",
1461
+ "framework": "react"
1462
+ }
1463
+ ],
1464
+ "a11y": {
1465
+ "apgPattern": "breadcrumb",
1466
+ "keyboardSupport": []
1467
+ },
1468
+ "hasTemplates": true
1469
+ },
1470
+ {
1471
+ "name": "pagination",
1472
+ "displayName": "Pagination",
1473
+ "description": "Page navigation with previous/next and page number buttons",
1474
+ "version": "1.0.0",
1475
+ "status": "stable",
1476
+ "frameworks": [
1477
+ "react",
1478
+ "wc"
1479
+ ],
1480
+ "dependencies": [
1481
+ "@hypoth-ui/tokens"
1482
+ ],
1483
+ "registryDependencies": [
1484
+ "button"
1485
+ ],
1486
+ "files": [
1487
+ {
1488
+ "path": "pagination/index.tsx",
1489
+ "target": "index.tsx",
1490
+ "type": "tsx",
1491
+ "framework": "react"
1492
+ }
1493
+ ],
1494
+ "a11y": {
1495
+ "apgPattern": "none",
1496
+ "keyboardSupport": []
1497
+ },
1498
+ "hasTemplates": true
1499
+ },
1500
+ {
1501
+ "name": "stepper",
1502
+ "displayName": "Stepper",
1503
+ "description": "Step-by-step progress indicator for multi-step processes",
1504
+ "version": "1.0.0",
1505
+ "status": "stable",
1506
+ "frameworks": [
1507
+ "react",
1508
+ "wc"
1509
+ ],
1510
+ "dependencies": [
1511
+ "@hypoth-ui/tokens"
1512
+ ],
1513
+ "registryDependencies": [],
1514
+ "files": [
1515
+ {
1516
+ "path": "stepper/index.tsx",
1517
+ "target": "index.tsx",
1518
+ "type": "tsx",
1519
+ "framework": "react"
1520
+ }
1521
+ ],
1522
+ "a11y": {
1523
+ "apgPattern": "none",
1524
+ "keyboardSupport": [
1525
+ "Enter",
1526
+ "Space"
1527
+ ]
1528
+ },
1529
+ "hasTemplates": true
1530
+ },
1531
+ {
1532
+ "name": "command",
1533
+ "displayName": "Command",
1534
+ "description": "Command palette with fuzzy search, keyboard navigation, and grouping",
1535
+ "version": "1.0.0",
1536
+ "status": "stable",
1537
+ "frameworks": [
1538
+ "react",
1539
+ "wc"
1540
+ ],
1541
+ "dependencies": [
1542
+ "@hypoth-ui/tokens",
1543
+ "@hypoth-ui/primitives-dom"
1544
+ ],
1545
+ "registryDependencies": [],
1546
+ "files": [
1547
+ {
1548
+ "path": "command/index.tsx",
1549
+ "target": "index.tsx",
1550
+ "type": "tsx",
1551
+ "framework": "react"
1552
+ }
1553
+ ],
1554
+ "a11y": {
1555
+ "apgPattern": "listbox",
1556
+ "keyboardSupport": [
1557
+ "ArrowUp",
1558
+ "ArrowDown",
1559
+ "Enter",
1560
+ "Escape"
1561
+ ]
1562
+ },
1563
+ "hasTemplates": true
1564
+ },
1565
+ {
1566
+ "name": "alert",
1567
+ "displayName": "Alert",
1568
+ "description": "Contextual feedback message with status variants",
1569
+ "version": "1.0.0",
1570
+ "status": "stable",
1571
+ "frameworks": [
1572
+ "react",
1573
+ "wc"
1574
+ ],
1575
+ "dependencies": [
1576
+ "@hypoth-ui/tokens"
1577
+ ],
1578
+ "registryDependencies": [],
1579
+ "files": [
1580
+ {
1581
+ "path": "alert/index.tsx",
1582
+ "target": "index.tsx",
1583
+ "type": "tsx",
1584
+ "framework": "react"
1585
+ }
1586
+ ],
1587
+ "a11y": {
1588
+ "apgPattern": "alert",
1589
+ "keyboardSupport": []
1590
+ },
1591
+ "hasTemplates": true
1592
+ },
1593
+ {
1594
+ "name": "toast",
1595
+ "displayName": "Toast",
1596
+ "description": "Non-blocking notification with auto-dismiss and positioning",
1597
+ "version": "1.0.0",
1598
+ "status": "stable",
1599
+ "frameworks": [
1600
+ "react",
1601
+ "wc"
1602
+ ],
1603
+ "dependencies": [
1604
+ "@hypoth-ui/tokens",
1605
+ "@hypoth-ui/primitives-dom"
1606
+ ],
1607
+ "registryDependencies": [],
1608
+ "files": [
1609
+ {
1610
+ "path": "toast/index.tsx",
1611
+ "target": "index.tsx",
1612
+ "type": "tsx",
1613
+ "framework": "react"
1614
+ },
1615
+ {
1616
+ "path": "toast/provider.tsx",
1617
+ "target": "provider.tsx",
1618
+ "type": "tsx",
1619
+ "framework": "react"
1620
+ },
1621
+ {
1622
+ "path": "toast/toast.tsx",
1623
+ "target": "toast.tsx",
1624
+ "type": "tsx",
1625
+ "framework": "react"
1626
+ }
1627
+ ],
1628
+ "a11y": {
1629
+ "apgPattern": "alert",
1630
+ "keyboardSupport": [
1631
+ "Escape"
1632
+ ]
1633
+ },
1634
+ "hasTemplates": true
1635
+ },
1636
+ {
1637
+ "name": "progress",
1638
+ "displayName": "Progress",
1639
+ "description": "Linear and circular progress indicators",
1640
+ "version": "1.0.0",
1641
+ "status": "stable",
1642
+ "frameworks": [
1643
+ "react",
1644
+ "wc"
1645
+ ],
1646
+ "dependencies": [
1647
+ "@hypoth-ui/tokens"
1648
+ ],
1649
+ "registryDependencies": [],
1650
+ "files": [
1651
+ {
1652
+ "path": "progress/index.tsx",
1653
+ "target": "index.tsx",
1654
+ "type": "tsx",
1655
+ "framework": "react"
1656
+ }
1657
+ ],
1658
+ "a11y": {
1659
+ "apgPattern": "progressbar",
1660
+ "keyboardSupport": []
1661
+ },
1662
+ "hasTemplates": true
1663
+ },
1664
+ {
1665
+ "name": "avatar",
1666
+ "displayName": "Avatar",
1667
+ "description": "User avatar with image, initials, or fallback icon",
1668
+ "version": "1.0.0",
1669
+ "status": "stable",
1670
+ "frameworks": [
1671
+ "react",
1672
+ "wc"
1673
+ ],
1674
+ "dependencies": [
1675
+ "@hypoth-ui/tokens"
1676
+ ],
1677
+ "registryDependencies": [],
1678
+ "files": [
1679
+ {
1680
+ "path": "avatar/avatar-group.tsx",
1681
+ "target": "avatar-group.tsx",
1682
+ "type": "tsx",
1683
+ "framework": "react"
1684
+ },
1685
+ {
1686
+ "path": "avatar/avatar.tsx",
1687
+ "target": "avatar.tsx",
1688
+ "type": "tsx",
1689
+ "framework": "react"
1690
+ },
1691
+ {
1692
+ "path": "avatar/index.tsx",
1693
+ "target": "index.tsx",
1694
+ "type": "tsx",
1695
+ "framework": "react"
1696
+ }
1697
+ ],
1698
+ "a11y": {
1699
+ "apgPattern": "img",
1700
+ "keyboardSupport": []
1701
+ },
1702
+ "hasTemplates": true
1703
+ },
1704
+ {
1705
+ "name": "table",
1706
+ "displayName": "Table",
1707
+ "description": "Data table with sorting, selection, and sticky headers",
1708
+ "version": "1.0.0",
1709
+ "status": "stable",
1710
+ "frameworks": [
1711
+ "react",
1712
+ "wc"
1713
+ ],
1714
+ "dependencies": [
1715
+ "@hypoth-ui/tokens",
1716
+ "@hypoth-ui/primitives-dom"
1717
+ ],
1718
+ "registryDependencies": [],
1719
+ "files": [
1720
+ {
1721
+ "path": "table/body.tsx",
1722
+ "target": "body.tsx",
1723
+ "type": "tsx",
1724
+ "framework": "react"
1725
+ },
1726
+ {
1727
+ "path": "table/cell.tsx",
1728
+ "target": "cell.tsx",
1729
+ "type": "tsx",
1730
+ "framework": "react"
1731
+ },
1732
+ {
1733
+ "path": "table/head.tsx",
1734
+ "target": "head.tsx",
1735
+ "type": "tsx",
1736
+ "framework": "react"
1737
+ },
1738
+ {
1739
+ "path": "table/header.tsx",
1740
+ "target": "header.tsx",
1741
+ "type": "tsx",
1742
+ "framework": "react"
1743
+ },
1744
+ {
1745
+ "path": "table/index.tsx",
1746
+ "target": "index.tsx",
1747
+ "type": "tsx",
1748
+ "framework": "react"
1749
+ },
1750
+ {
1751
+ "path": "table/root.tsx",
1752
+ "target": "root.tsx",
1753
+ "type": "tsx",
1754
+ "framework": "react"
1755
+ },
1756
+ {
1757
+ "path": "table/row.tsx",
1758
+ "target": "row.tsx",
1759
+ "type": "tsx",
1760
+ "framework": "react"
1761
+ }
1762
+ ],
1763
+ "a11y": {
1764
+ "apgPattern": "table",
1765
+ "keyboardSupport": [
1766
+ "ArrowUp",
1767
+ "ArrowDown",
1768
+ "ArrowLeft",
1769
+ "ArrowRight"
1770
+ ]
1771
+ },
1772
+ "hasTemplates": true
1773
+ },
1774
+ {
1775
+ "name": "data-table",
1776
+ "displayName": "DataTable",
1777
+ "description": "Advanced data table with pagination, virtualization, and filtering",
1778
+ "version": "1.0.0",
1779
+ "status": "stable",
1780
+ "frameworks": [
1781
+ "react",
1782
+ "wc"
1783
+ ],
1784
+ "dependencies": [
1785
+ "@hypoth-ui/tokens",
1786
+ "@hypoth-ui/primitives-dom"
1787
+ ],
1788
+ "registryDependencies": [
1789
+ "table"
1790
+ ],
1791
+ "files": [
1792
+ {
1793
+ "path": "data-table/index.tsx",
1794
+ "target": "index.tsx",
1795
+ "type": "tsx",
1796
+ "framework": "react"
1797
+ }
1798
+ ],
1799
+ "a11y": {
1800
+ "apgPattern": "grid",
1801
+ "keyboardSupport": [
1802
+ "ArrowUp",
1803
+ "ArrowDown",
1804
+ "ArrowLeft",
1805
+ "ArrowRight",
1806
+ "Home",
1807
+ "End"
1808
+ ]
1809
+ },
1810
+ "hasTemplates": true
1811
+ },
1812
+ {
1813
+ "name": "skeleton",
1814
+ "displayName": "Skeleton",
1815
+ "description": "Loading placeholder with shimmer animation",
1816
+ "version": "1.0.0",
1817
+ "status": "stable",
1818
+ "frameworks": [
1819
+ "react",
1820
+ "wc"
1821
+ ],
1822
+ "dependencies": [
1823
+ "@hypoth-ui/tokens"
1824
+ ],
1825
+ "registryDependencies": [],
1826
+ "files": [
1827
+ {
1828
+ "path": "skeleton/index.tsx",
1829
+ "target": "index.tsx",
1830
+ "type": "tsx",
1831
+ "framework": "react"
1832
+ }
1833
+ ],
1834
+ "a11y": {
1835
+ "apgPattern": "none",
1836
+ "keyboardSupport": []
1837
+ },
1838
+ "hasTemplates": true
1839
+ },
1840
+ {
1841
+ "name": "badge",
1842
+ "displayName": "Badge",
1843
+ "description": "Status indicator with variants and dot mode",
1844
+ "version": "1.0.0",
1845
+ "status": "stable",
1846
+ "frameworks": [
1847
+ "react",
1848
+ "wc"
1849
+ ],
1850
+ "dependencies": [
1851
+ "@hypoth-ui/tokens"
1852
+ ],
1853
+ "registryDependencies": [],
1854
+ "files": [
1855
+ {
1856
+ "path": "badge/index.tsx",
1857
+ "target": "index.tsx",
1858
+ "type": "tsx",
1859
+ "framework": "react"
1860
+ }
1861
+ ],
1862
+ "a11y": {
1863
+ "apgPattern": "status",
1864
+ "keyboardSupport": []
1865
+ },
1866
+ "hasTemplates": true
1867
+ },
1868
+ {
1869
+ "name": "tag",
1870
+ "displayName": "Tag",
1871
+ "description": "Removable tag/chip for categories and selections",
1872
+ "version": "1.0.0",
1873
+ "status": "stable",
1874
+ "frameworks": [
1875
+ "react",
1876
+ "wc"
1877
+ ],
1878
+ "dependencies": [
1879
+ "@hypoth-ui/tokens"
1880
+ ],
1881
+ "registryDependencies": [],
1882
+ "files": [
1883
+ {
1884
+ "path": "tag/index.tsx",
1885
+ "target": "index.tsx",
1886
+ "type": "tsx",
1887
+ "framework": "react"
1888
+ }
1889
+ ],
1890
+ "a11y": {
1891
+ "apgPattern": "button",
1892
+ "keyboardSupport": [
1893
+ "Enter",
1894
+ "Space",
1895
+ "Backspace",
1896
+ "Delete"
1897
+ ]
1898
+ },
1899
+ "hasTemplates": true
1900
+ },
1901
+ {
1902
+ "name": "tree",
1903
+ "displayName": "Tree",
1904
+ "description": "Hierarchical tree view with expand/collapse and selection",
1905
+ "version": "1.0.0",
1906
+ "status": "stable",
1907
+ "frameworks": [
1908
+ "react",
1909
+ "wc"
1910
+ ],
1911
+ "dependencies": [
1912
+ "@hypoth-ui/tokens",
1913
+ "@hypoth-ui/primitives-dom"
1914
+ ],
1915
+ "registryDependencies": [],
1916
+ "files": [
1917
+ {
1918
+ "path": "tree/index.tsx",
1919
+ "target": "index.tsx",
1920
+ "type": "tsx",
1921
+ "framework": "react"
1922
+ },
1923
+ {
1924
+ "path": "tree/tree-item.tsx",
1925
+ "target": "tree-item.tsx",
1926
+ "type": "tsx",
1927
+ "framework": "react"
1928
+ },
1929
+ {
1930
+ "path": "tree/tree.tsx",
1931
+ "target": "tree.tsx",
1932
+ "type": "tsx",
1933
+ "framework": "react"
1934
+ }
1935
+ ],
1936
+ "a11y": {
1937
+ "apgPattern": "treeview",
1938
+ "keyboardSupport": [
1939
+ "ArrowUp",
1940
+ "ArrowDown",
1941
+ "ArrowLeft",
1942
+ "ArrowRight",
1943
+ "Enter",
1944
+ "Space",
1945
+ "Home",
1946
+ "End"
1947
+ ]
1948
+ },
1949
+ "hasTemplates": true
1950
+ },
1951
+ {
1952
+ "name": "list",
1953
+ "displayName": "List",
1954
+ "description": "Selectable list with keyboard navigation",
1955
+ "version": "1.0.0",
1956
+ "status": "stable",
1957
+ "frameworks": [
1958
+ "react",
1959
+ "wc"
1960
+ ],
1961
+ "dependencies": [
1962
+ "@hypoth-ui/tokens",
1963
+ "@hypoth-ui/primitives-dom"
1964
+ ],
1965
+ "registryDependencies": [],
1966
+ "files": [
1967
+ {
1968
+ "path": "list/index.tsx",
1969
+ "target": "index.tsx",
1970
+ "type": "tsx",
1971
+ "framework": "react"
1972
+ },
1973
+ {
1974
+ "path": "list/list-item.tsx",
1975
+ "target": "list-item.tsx",
1976
+ "type": "tsx",
1977
+ "framework": "react"
1978
+ },
1979
+ {
1980
+ "path": "list/list.tsx",
1981
+ "target": "list.tsx",
1982
+ "type": "tsx",
1983
+ "framework": "react"
1984
+ }
1985
+ ],
1986
+ "a11y": {
1987
+ "apgPattern": "listbox",
1988
+ "keyboardSupport": [
1989
+ "ArrowUp",
1990
+ "ArrowDown",
1991
+ "Home",
1992
+ "End",
1993
+ "Enter",
1994
+ "Space"
1995
+ ]
1996
+ },
1997
+ "hasTemplates": true
1998
+ },
1999
+ {
2000
+ "name": "calendar",
2001
+ "displayName": "Calendar",
2002
+ "description": "Calendar widget for date selection",
2003
+ "version": "1.0.0",
2004
+ "status": "stable",
2005
+ "frameworks": [
2006
+ "react",
2007
+ "wc"
2008
+ ],
2009
+ "dependencies": [
2010
+ "@hypoth-ui/tokens"
2011
+ ],
2012
+ "registryDependencies": [],
2013
+ "files": [
2014
+ {
2015
+ "path": "calendar/index.tsx",
2016
+ "target": "index.tsx",
2017
+ "type": "tsx",
2018
+ "framework": "react"
2019
+ }
2020
+ ],
2021
+ "a11y": {
2022
+ "apgPattern": "grid",
2023
+ "keyboardSupport": [
2024
+ "ArrowUp",
2025
+ "ArrowDown",
2026
+ "ArrowLeft",
2027
+ "ArrowRight",
2028
+ "PageUp",
2029
+ "PageDown",
2030
+ "Home",
2031
+ "End",
2032
+ "Enter",
2033
+ "Space"
2034
+ ]
2035
+ },
2036
+ "hasTemplates": true
2037
+ },
2038
+ {
2039
+ "name": "layout",
2040
+ "displayName": "Layout Primitives",
2041
+ "description": "Framework-agnostic layout primitives for page composition including Flow, Container, Grid, Box, Page, Section, AppShell, and more",
2042
+ "version": "1.0.0",
2043
+ "status": "stable",
2044
+ "frameworks": [
2045
+ "react",
2046
+ "wc"
2047
+ ],
2048
+ "dependencies": [
2049
+ "@hypoth-ui/tokens"
2050
+ ],
2051
+ "registryDependencies": [],
2052
+ "files": [
2053
+ {
2054
+ "path": "layout/app-shell.tsx",
2055
+ "target": "app-shell.tsx",
2056
+ "type": "tsx",
2057
+ "framework": "react"
2058
+ },
2059
+ {
2060
+ "path": "layout/box.tsx",
2061
+ "target": "box.tsx",
2062
+ "type": "tsx",
2063
+ "framework": "react"
2064
+ },
2065
+ {
2066
+ "path": "layout/center.tsx",
2067
+ "target": "center.tsx",
2068
+ "type": "tsx",
2069
+ "framework": "react"
2070
+ },
2071
+ {
2072
+ "path": "layout/container.tsx",
2073
+ "target": "container.tsx",
2074
+ "type": "tsx",
2075
+ "framework": "react"
2076
+ },
2077
+ {
2078
+ "path": "layout/flow.tsx",
2079
+ "target": "flow.tsx",
2080
+ "type": "tsx",
2081
+ "framework": "react"
2082
+ },
2083
+ {
2084
+ "path": "layout/grid.tsx",
2085
+ "target": "grid.tsx",
2086
+ "type": "tsx",
2087
+ "framework": "react"
2088
+ },
2089
+ {
2090
+ "path": "layout/inline.tsx",
2091
+ "target": "inline.tsx",
2092
+ "type": "tsx",
2093
+ "framework": "react"
2094
+ },
2095
+ {
2096
+ "path": "layout/page.tsx",
2097
+ "target": "page.tsx",
2098
+ "type": "tsx",
2099
+ "framework": "react"
2100
+ },
2101
+ {
2102
+ "path": "layout/section.tsx",
2103
+ "target": "section.tsx",
2104
+ "type": "tsx",
2105
+ "framework": "react"
2106
+ },
2107
+ {
2108
+ "path": "layout/spacer.tsx",
2109
+ "target": "spacer.tsx",
2110
+ "type": "tsx",
2111
+ "framework": "react"
2112
+ },
2113
+ {
2114
+ "path": "layout/split.tsx",
2115
+ "target": "split.tsx",
2116
+ "type": "tsx",
2117
+ "framework": "react"
2118
+ },
2119
+ {
2120
+ "path": "layout/stack.tsx",
2121
+ "target": "stack.tsx",
2122
+ "type": "tsx",
2123
+ "framework": "react"
2124
+ },
2125
+ {
2126
+ "path": "layout/wrap.tsx",
2127
+ "target": "wrap.tsx",
2128
+ "type": "tsx",
2129
+ "framework": "react"
2130
+ }
2131
+ ],
2132
+ "a11y": {
2133
+ "apgPattern": "custom",
2134
+ "keyboardSupport": [
2135
+ "Tab"
2136
+ ]
2137
+ },
2138
+ "hasTemplates": true
2139
+ },
2140
+ {
2141
+ "name": "radio",
2142
+ "displayName": "Radio",
2143
+ "description": "Individual radio button input for use within radio groups",
2144
+ "version": "1.0.0",
2145
+ "status": "stable",
2146
+ "frameworks": [
2147
+ "react",
2148
+ "wc"
2149
+ ],
2150
+ "dependencies": [
2151
+ "@hypoth-ui/tokens"
2152
+ ],
2153
+ "registryDependencies": [
2154
+ "radio-group"
2155
+ ],
2156
+ "files": [
2157
+ {
2158
+ "path": "radio/radio.tsx",
2159
+ "target": "radio.tsx",
2160
+ "type": "tsx",
2161
+ "framework": "react"
2162
+ }
2163
+ ],
2164
+ "a11y": {
2165
+ "apgPattern": "radio-group",
2166
+ "keyboardSupport": [
2167
+ "ArrowUp",
2168
+ "ArrowDown",
2169
+ "ArrowLeft",
2170
+ "ArrowRight",
2171
+ "Space"
2172
+ ]
2173
+ },
2174
+ "hasTemplates": true
561
2175
  }
562
2176
  ]
563
2177
  }