tembro 1.0.3 → 2.0.1

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 (342) hide show
  1. package/README.md +2 -2
  2. package/dist/components/data-table/data-table.cjs +1 -1
  3. package/dist/components/data-table/data-table.js +68 -68
  4. package/dist/components/display/smart-card.d.ts +8 -8
  5. package/dist/components/patterns/index.cjs +1 -1
  6. package/dist/components/patterns/index.js +4 -4
  7. package/dist/components/patterns/public.cjs +1 -1
  8. package/dist/components/patterns/public.js +4 -4
  9. package/dist/index.cjs +1 -1
  10. package/dist/index.d.ts +0 -1
  11. package/dist/index.js +19 -38
  12. package/dist/showcase/index.cjs +1 -1
  13. package/dist/showcase/index.d.ts +0 -1
  14. package/dist/showcase/index.js +36 -38
  15. package/dist/showcase/package-meta.cjs +1 -1
  16. package/dist/showcase/package-meta.d.ts +2 -2
  17. package/dist/showcase/package-meta.js +1 -1
  18. package/dist/showcase/premium/accordion/mock.cjs +4 -4
  19. package/dist/showcase/premium/accordion/mock.js +1 -1
  20. package/dist/showcase/{families/data-table/types.d.ts → premium/data-table-parts/data.d.ts} +4 -0
  21. package/dist/showcase/{families/data-table → premium/data-table-parts}/data.js +1 -1
  22. package/dist/showcase/premium/data-table-parts/showcase.cjs +1 -1
  23. package/dist/showcase/premium/data-table-parts/showcase.js +1 -1
  24. package/dist/showcase/site-data.cjs +1 -1
  25. package/dist/showcase/site-data.d.ts +6 -6
  26. package/dist/showcase/site-data.js +414 -451
  27. package/dist/showcase/tembro-registry.json.cjs +1 -1
  28. package/dist/showcase/tembro-registry.json.js +1 -1
  29. package/package.json +2 -13
  30. package/packages/cli/dist/index.cjs +17 -17
  31. package/packages/cli/vendor/src/components/data-table/data-table.tsx +22 -13
  32. package/packages/cli/vendor/src/components/display/smart-card.tsx +8 -8
  33. package/packages/cli/vendor/src/index.ts +3 -4
  34. package/packages/cli/vendor/src/showcase/index.ts +5 -6
  35. package/packages/cli/vendor/src/showcase/package-meta.ts +1 -1
  36. package/packages/cli/vendor/src/showcase/premium/accordion/mock.ts +4 -4
  37. package/packages/cli/vendor/src/showcase/{families/data-table → premium/data-table-parts}/data.ts +25 -1
  38. package/packages/cli/vendor/src/showcase/premium/data-table-parts/showcase.tsx +1 -2
  39. package/packages/cli/vendor/src/showcase/site-data.tsx +151 -216
  40. package/packages/cli/vendor/src/showcase/tembro-registry.json +1 -1
  41. package/registry.json +1 -1
  42. package/dist/families/badge-family.cjs +0 -1
  43. package/dist/families/badge-family.d.ts +0 -5
  44. package/dist/families/badge-family.js +0 -5
  45. package/dist/families/card-family.cjs +0 -1
  46. package/dist/families/card-family.d.ts +0 -16
  47. package/dist/families/card-family.js +0 -21
  48. package/dist/families/catalog.cjs +0 -1
  49. package/dist/families/catalog.d.ts +0 -11
  50. package/dist/families/catalog.js +0 -140
  51. package/dist/families/data-table-family.cjs +0 -1
  52. package/dist/families/data-table-family.d.ts +0 -18
  53. package/dist/families/data-table-family.js +0 -29
  54. package/dist/families/docs-adoption.cjs +0 -1
  55. package/dist/families/docs-adoption.d.ts +0 -16
  56. package/dist/families/docs-adoption.js +0 -53
  57. package/dist/families/docs-groups.cjs +0 -1
  58. package/dist/families/docs-groups.d.ts +0 -18
  59. package/dist/families/docs-groups.js +0 -262
  60. package/dist/families/docs-queries.cjs +0 -1
  61. package/dist/families/docs-queries.d.ts +0 -37
  62. package/dist/families/docs-queries.js +0 -50
  63. package/dist/families/docs-routing.cjs +0 -1
  64. package/dist/families/docs-routing.d.ts +0 -17
  65. package/dist/families/docs-routing.js +0 -49
  66. package/dist/families/form-family.cjs +0 -1
  67. package/dist/families/form-family.d.ts +0 -20
  68. package/dist/families/form-family.js +0 -35
  69. package/dist/families/index.cjs +0 -1
  70. package/dist/families/index.d.ts +0 -19
  71. package/dist/families/index.js +0 -20
  72. package/dist/families/input-family.cjs +0 -1
  73. package/dist/families/input-family.d.ts +0 -32
  74. package/dist/families/input-family.js +0 -56
  75. package/dist/families/member-metadata.cjs +0 -1
  76. package/dist/families/member-metadata.d.ts +0 -11
  77. package/dist/families/member-metadata.js +0 -1013
  78. package/dist/families/member-queries.cjs +0 -1
  79. package/dist/families/member-queries.d.ts +0 -6
  80. package/dist/families/member-queries.js +0 -14
  81. package/dist/families/member-snippet-queries.cjs +0 -1
  82. package/dist/families/member-snippet-queries.d.ts +0 -8
  83. package/dist/families/member-snippet-queries.js +0 -30
  84. package/dist/families/member-snippets.cjs +0 -484
  85. package/dist/families/member-snippets.d.ts +0 -11
  86. package/dist/families/member-snippets.js +0 -1061
  87. package/dist/families/migration-map.cjs +0 -1
  88. package/dist/families/migration-map.d.ts +0 -10
  89. package/dist/families/migration-map.js +0 -787
  90. package/dist/families/overlay-family.cjs +0 -1
  91. package/dist/families/overlay-family.d.ts +0 -22
  92. package/dist/families/overlay-family.js +0 -29
  93. package/dist/families/public-surface-rationalization.cjs +0 -1
  94. package/dist/families/public-surface-rationalization.d.ts +0 -169
  95. package/dist/families/public-surface-rationalization.js +0 -296
  96. package/dist/families/queries.cjs +0 -1
  97. package/dist/families/queries.d.ts +0 -12
  98. package/dist/families/queries.js +0 -162
  99. package/dist/families/select-family.cjs +0 -1
  100. package/dist/families/select-family.d.ts +0 -22
  101. package/dist/families/select-family.js +0 -27
  102. package/dist/families/views.cjs +0 -1
  103. package/dist/families/views.d.ts +0 -26
  104. package/dist/families/views.js +0 -45
  105. package/dist/showcase/families/actions/index.cjs +0 -1
  106. package/dist/showcase/families/actions/index.d.ts +0 -2
  107. package/dist/showcase/families/actions/index.js +0 -3
  108. package/dist/showcase/families/actions/mock.cjs +0 -5
  109. package/dist/showcase/families/actions/mock.d.ts +0 -2
  110. package/dist/showcase/families/actions/mock.js +0 -40
  111. package/dist/showcase/families/actions/showcase.cjs +0 -1
  112. package/dist/showcase/families/actions/showcase.d.ts +0 -2
  113. package/dist/showcase/families/actions/showcase.js +0 -53
  114. package/dist/showcase/families/calendar/index.cjs +0 -1
  115. package/dist/showcase/families/calendar/index.d.ts +0 -2
  116. package/dist/showcase/families/calendar/index.js +0 -3
  117. package/dist/showcase/families/calendar/mock.cjs +0 -5
  118. package/dist/showcase/families/calendar/mock.d.ts +0 -2
  119. package/dist/showcase/families/calendar/mock.js +0 -40
  120. package/dist/showcase/families/calendar/showcase.cjs +0 -1
  121. package/dist/showcase/families/calendar/showcase.d.ts +0 -2
  122. package/dist/showcase/families/calendar/showcase.js +0 -60
  123. package/dist/showcase/families/command/index.cjs +0 -1
  124. package/dist/showcase/families/command/index.d.ts +0 -2
  125. package/dist/showcase/families/command/index.js +0 -3
  126. package/dist/showcase/families/command/mock.cjs +0 -5
  127. package/dist/showcase/families/command/mock.d.ts +0 -2
  128. package/dist/showcase/families/command/mock.js +0 -40
  129. package/dist/showcase/families/command/showcase.cjs +0 -1
  130. package/dist/showcase/families/command/showcase.d.ts +0 -2
  131. package/dist/showcase/families/command/showcase.js +0 -40
  132. package/dist/showcase/families/data-table/data.d.ts +0 -5
  133. package/dist/showcase/families/data-table/index.cjs +0 -1
  134. package/dist/showcase/families/data-table/index.d.ts +0 -4
  135. package/dist/showcase/families/data-table/index.js +0 -4
  136. package/dist/showcase/families/data-table/mock.cjs +0 -24
  137. package/dist/showcase/families/data-table/mock.d.ts +0 -2
  138. package/dist/showcase/families/data-table/mock.js +0 -48
  139. package/dist/showcase/families/data-table/showcase.cjs +0 -1
  140. package/dist/showcase/families/data-table/showcase.d.ts +0 -3
  141. package/dist/showcase/families/data-table/showcase.js +0 -751
  142. package/dist/showcase/families/data-table/types.cjs +0 -1
  143. package/dist/showcase/families/data-table/types.js +0 -0
  144. package/dist/showcase/families/display/data.cjs +0 -1
  145. package/dist/showcase/families/display/data.d.ts +0 -6
  146. package/dist/showcase/families/display/data.js +0 -24
  147. package/dist/showcase/families/display/index.cjs +0 -1
  148. package/dist/showcase/families/display/index.d.ts +0 -2
  149. package/dist/showcase/families/display/index.js +0 -3
  150. package/dist/showcase/families/display/mock.cjs +0 -5
  151. package/dist/showcase/families/display/mock.d.ts +0 -2
  152. package/dist/showcase/families/display/mock.js +0 -40
  153. package/dist/showcase/families/display/showcase.cjs +0 -1
  154. package/dist/showcase/families/display/showcase.d.ts +0 -2
  155. package/dist/showcase/families/display/showcase.js +0 -201
  156. package/dist/showcase/families/filters/data.cjs +0 -1
  157. package/dist/showcase/families/filters/data.d.ts +0 -31
  158. package/dist/showcase/families/filters/data.js +0 -61
  159. package/dist/showcase/families/filters/index.cjs +0 -1
  160. package/dist/showcase/families/filters/index.d.ts +0 -2
  161. package/dist/showcase/families/filters/index.js +0 -3
  162. package/dist/showcase/families/filters/mock.cjs +0 -5
  163. package/dist/showcase/families/filters/mock.d.ts +0 -2
  164. package/dist/showcase/families/filters/mock.js +0 -40
  165. package/dist/showcase/families/filters/showcase.cjs +0 -1
  166. package/dist/showcase/families/filters/showcase.d.ts +0 -3
  167. package/dist/showcase/families/filters/showcase.js +0 -213
  168. package/dist/showcase/families/form/data.cjs +0 -1
  169. package/dist/showcase/families/form/data.d.ts +0 -22
  170. package/dist/showcase/families/form/data.js +0 -53
  171. package/dist/showcase/families/form/index.cjs +0 -1
  172. package/dist/showcase/families/form/index.d.ts +0 -4
  173. package/dist/showcase/families/form/index.js +0 -4
  174. package/dist/showcase/families/form/mock.cjs +0 -12
  175. package/dist/showcase/families/form/mock.d.ts +0 -2
  176. package/dist/showcase/families/form/mock.js +0 -40
  177. package/dist/showcase/families/form/showcase.cjs +0 -1
  178. package/dist/showcase/families/form/showcase.d.ts +0 -3
  179. package/dist/showcase/families/form/showcase.js +0 -318
  180. package/dist/showcase/families/form/types.cjs +0 -1
  181. package/dist/showcase/families/form/types.d.ts +0 -9
  182. package/dist/showcase/families/form/types.js +0 -0
  183. package/dist/showcase/families/index.cjs +0 -1
  184. package/dist/showcase/families/index.d.ts +0 -3
  185. package/dist/showcase/families/index.js +0 -96
  186. package/dist/showcase/families/inputs/data.cjs +0 -1
  187. package/dist/showcase/families/inputs/data.d.ts +0 -24
  188. package/dist/showcase/families/inputs/data.js +0 -90
  189. package/dist/showcase/families/inputs/index.cjs +0 -1
  190. package/dist/showcase/families/inputs/index.d.ts +0 -2
  191. package/dist/showcase/families/inputs/index.js +0 -3
  192. package/dist/showcase/families/inputs/mock.cjs +0 -5
  193. package/dist/showcase/families/inputs/mock.d.ts +0 -2
  194. package/dist/showcase/families/inputs/mock.js +0 -40
  195. package/dist/showcase/families/inputs/showcase.cjs +0 -1
  196. package/dist/showcase/families/inputs/showcase.d.ts +0 -3
  197. package/dist/showcase/families/inputs/showcase.js +0 -404
  198. package/dist/showcase/families/layout/index.cjs +0 -1
  199. package/dist/showcase/families/layout/index.d.ts +0 -2
  200. package/dist/showcase/families/layout/index.js +0 -3
  201. package/dist/showcase/families/layout/mock.cjs +0 -5
  202. package/dist/showcase/families/layout/mock.d.ts +0 -2
  203. package/dist/showcase/families/layout/mock.js +0 -40
  204. package/dist/showcase/families/layout/showcase.cjs +0 -1
  205. package/dist/showcase/families/layout/showcase.d.ts +0 -2
  206. package/dist/showcase/families/layout/showcase.js +0 -88
  207. package/dist/showcase/families/navigation/index.cjs +0 -1
  208. package/dist/showcase/families/navigation/index.d.ts +0 -2
  209. package/dist/showcase/families/navigation/index.js +0 -3
  210. package/dist/showcase/families/navigation/mock.cjs +0 -5
  211. package/dist/showcase/families/navigation/mock.d.ts +0 -2
  212. package/dist/showcase/families/navigation/mock.js +0 -40
  213. package/dist/showcase/families/navigation/showcase.cjs +0 -1
  214. package/dist/showcase/families/navigation/showcase.d.ts +0 -2
  215. package/dist/showcase/families/navigation/showcase.js +0 -49
  216. package/dist/showcase/families/notifications/index.cjs +0 -1
  217. package/dist/showcase/families/notifications/index.d.ts +0 -2
  218. package/dist/showcase/families/notifications/index.js +0 -3
  219. package/dist/showcase/families/notifications/mock.cjs +0 -5
  220. package/dist/showcase/families/notifications/mock.d.ts +0 -2
  221. package/dist/showcase/families/notifications/mock.js +0 -40
  222. package/dist/showcase/families/notifications/showcase.cjs +0 -1
  223. package/dist/showcase/families/notifications/showcase.d.ts +0 -1
  224. package/dist/showcase/families/notifications/showcase.js +0 -50
  225. package/dist/showcase/families/overlay/index.cjs +0 -1
  226. package/dist/showcase/families/overlay/index.d.ts +0 -2
  227. package/dist/showcase/families/overlay/index.js +0 -3
  228. package/dist/showcase/families/overlay/mock.cjs +0 -5
  229. package/dist/showcase/families/overlay/mock.d.ts +0 -2
  230. package/dist/showcase/families/overlay/mock.js +0 -40
  231. package/dist/showcase/families/overlay/showcase.cjs +0 -1
  232. package/dist/showcase/families/overlay/showcase.d.ts +0 -1
  233. package/dist/showcase/families/overlay/showcase.js +0 -38
  234. package/dist/showcase/families/patterns/index.cjs +0 -1
  235. package/dist/showcase/families/patterns/index.d.ts +0 -2
  236. package/dist/showcase/families/patterns/index.js +0 -3
  237. package/dist/showcase/families/patterns/mock.cjs +0 -5
  238. package/dist/showcase/families/patterns/mock.d.ts +0 -2
  239. package/dist/showcase/families/patterns/mock.js +0 -40
  240. package/dist/showcase/families/patterns/showcase.cjs +0 -1
  241. package/dist/showcase/families/patterns/showcase.d.ts +0 -1
  242. package/dist/showcase/families/patterns/showcase.js +0 -38
  243. package/dist/showcase/families/types.cjs +0 -1
  244. package/dist/showcase/families/types.d.ts +0 -29
  245. package/dist/showcase/families/types.js +0 -10
  246. package/dist/showcase/families/upload/data.cjs +0 -1
  247. package/dist/showcase/families/upload/data.d.ts +0 -1
  248. package/dist/showcase/families/upload/data.js +0 -10
  249. package/dist/showcase/families/upload/index.cjs +0 -1
  250. package/dist/showcase/families/upload/index.d.ts +0 -2
  251. package/dist/showcase/families/upload/index.js +0 -3
  252. package/dist/showcase/families/upload/mock.cjs +0 -5
  253. package/dist/showcase/families/upload/mock.d.ts +0 -2
  254. package/dist/showcase/families/upload/mock.js +0 -40
  255. package/dist/showcase/families/upload/showcase.cjs +0 -1
  256. package/dist/showcase/families/upload/showcase.d.ts +0 -3
  257. package/dist/showcase/families/upload/showcase.js +0 -133
  258. package/dist/showcase/families/wizard/index.cjs +0 -1
  259. package/dist/showcase/families/wizard/index.d.ts +0 -2
  260. package/dist/showcase/families/wizard/index.js +0 -3
  261. package/dist/showcase/families/wizard/mock.cjs +0 -5
  262. package/dist/showcase/families/wizard/mock.d.ts +0 -2
  263. package/dist/showcase/families/wizard/mock.js +0 -40
  264. package/dist/showcase/families/wizard/showcase.cjs +0 -1
  265. package/dist/showcase/families/wizard/showcase.d.ts +0 -2
  266. package/dist/showcase/families/wizard/showcase.js +0 -56
  267. package/packages/cli/vendor/src/families/badge-family.ts +0 -7
  268. package/packages/cli/vendor/src/families/card-family.ts +0 -26
  269. package/packages/cli/vendor/src/families/catalog.ts +0 -125
  270. package/packages/cli/vendor/src/families/data-table-family.ts +0 -31
  271. package/packages/cli/vendor/src/families/docs-adoption.ts +0 -103
  272. package/packages/cli/vendor/src/families/docs-groups.ts +0 -248
  273. package/packages/cli/vendor/src/families/docs-queries.ts +0 -84
  274. package/packages/cli/vendor/src/families/docs-routing.ts +0 -89
  275. package/packages/cli/vendor/src/families/form-family.ts +0 -37
  276. package/packages/cli/vendor/src/families/index.ts +0 -19
  277. package/packages/cli/vendor/src/families/input-family.ts +0 -61
  278. package/packages/cli/vendor/src/families/member-metadata.ts +0 -1033
  279. package/packages/cli/vendor/src/families/member-queries.ts +0 -28
  280. package/packages/cli/vendor/src/families/member-snippet-queries.ts +0 -54
  281. package/packages/cli/vendor/src/families/member-snippets.ts +0 -1563
  282. package/packages/cli/vendor/src/families/migration-map.ts +0 -161
  283. package/packages/cli/vendor/src/families/overlay-family.ts +0 -31
  284. package/packages/cli/vendor/src/families/public-surface-rationalization.ts +0 -206
  285. package/packages/cli/vendor/src/families/queries.ts +0 -131
  286. package/packages/cli/vendor/src/families/select-family.ts +0 -33
  287. package/packages/cli/vendor/src/families/views.ts +0 -85
  288. package/packages/cli/vendor/src/showcase/families/actions/index.ts +0 -2
  289. package/packages/cli/vendor/src/showcase/families/actions/mock.ts +0 -18
  290. package/packages/cli/vendor/src/showcase/families/actions/showcase.tsx +0 -36
  291. package/packages/cli/vendor/src/showcase/families/calendar/index.ts +0 -2
  292. package/packages/cli/vendor/src/showcase/families/calendar/mock.ts +0 -18
  293. package/packages/cli/vendor/src/showcase/families/calendar/showcase.tsx +0 -33
  294. package/packages/cli/vendor/src/showcase/families/command/index.ts +0 -2
  295. package/packages/cli/vendor/src/showcase/families/command/mock.ts +0 -18
  296. package/packages/cli/vendor/src/showcase/families/command/showcase.tsx +0 -33
  297. package/packages/cli/vendor/src/showcase/families/data-table/index.ts +0 -4
  298. package/packages/cli/vendor/src/showcase/families/data-table/mock.ts +0 -42
  299. package/packages/cli/vendor/src/showcase/families/data-table/showcase.tsx +0 -507
  300. package/packages/cli/vendor/src/showcase/families/data-table/types.ts +0 -25
  301. package/packages/cli/vendor/src/showcase/families/display/data.ts +0 -11
  302. package/packages/cli/vendor/src/showcase/families/display/index.ts +0 -2
  303. package/packages/cli/vendor/src/showcase/families/display/mock.ts +0 -18
  304. package/packages/cli/vendor/src/showcase/families/display/showcase.tsx +0 -113
  305. package/packages/cli/vendor/src/showcase/families/filters/data.ts +0 -18
  306. package/packages/cli/vendor/src/showcase/families/filters/index.ts +0 -2
  307. package/packages/cli/vendor/src/showcase/families/filters/mock.ts +0 -18
  308. package/packages/cli/vendor/src/showcase/families/filters/showcase.tsx +0 -137
  309. package/packages/cli/vendor/src/showcase/families/form/data.ts +0 -37
  310. package/packages/cli/vendor/src/showcase/families/form/index.ts +0 -4
  311. package/packages/cli/vendor/src/showcase/families/form/mock.ts +0 -18
  312. package/packages/cli/vendor/src/showcase/families/form/showcase.tsx +0 -230
  313. package/packages/cli/vendor/src/showcase/families/form/types.ts +0 -10
  314. package/packages/cli/vendor/src/showcase/families/index.ts +0 -37
  315. package/packages/cli/vendor/src/showcase/families/inputs/data.ts +0 -40
  316. package/packages/cli/vendor/src/showcase/families/inputs/index.ts +0 -2
  317. package/packages/cli/vendor/src/showcase/families/inputs/mock.ts +0 -18
  318. package/packages/cli/vendor/src/showcase/families/inputs/showcase.tsx +0 -294
  319. package/packages/cli/vendor/src/showcase/families/layout/index.ts +0 -2
  320. package/packages/cli/vendor/src/showcase/families/layout/mock.ts +0 -18
  321. package/packages/cli/vendor/src/showcase/families/layout/showcase.tsx +0 -57
  322. package/packages/cli/vendor/src/showcase/families/navigation/index.ts +0 -2
  323. package/packages/cli/vendor/src/showcase/families/navigation/mock.ts +0 -18
  324. package/packages/cli/vendor/src/showcase/families/navigation/showcase.tsx +0 -31
  325. package/packages/cli/vendor/src/showcase/families/notifications/index.ts +0 -2
  326. package/packages/cli/vendor/src/showcase/families/notifications/mock.ts +0 -18
  327. package/packages/cli/vendor/src/showcase/families/notifications/showcase.tsx +0 -24
  328. package/packages/cli/vendor/src/showcase/families/overlay/index.ts +0 -2
  329. package/packages/cli/vendor/src/showcase/families/overlay/mock.ts +0 -18
  330. package/packages/cli/vendor/src/showcase/families/overlay/showcase.tsx +0 -23
  331. package/packages/cli/vendor/src/showcase/families/patterns/index.ts +0 -2
  332. package/packages/cli/vendor/src/showcase/families/patterns/mock.ts +0 -18
  333. package/packages/cli/vendor/src/showcase/families/patterns/showcase.tsx +0 -23
  334. package/packages/cli/vendor/src/showcase/families/types.ts +0 -40
  335. package/packages/cli/vendor/src/showcase/families/upload/data.ts +0 -7
  336. package/packages/cli/vendor/src/showcase/families/upload/index.ts +0 -2
  337. package/packages/cli/vendor/src/showcase/families/upload/mock.ts +0 -18
  338. package/packages/cli/vendor/src/showcase/families/upload/showcase.tsx +0 -86
  339. package/packages/cli/vendor/src/showcase/families/wizard/index.ts +0 -2
  340. package/packages/cli/vendor/src/showcase/families/wizard/mock.ts +0 -18
  341. package/packages/cli/vendor/src/showcase/families/wizard/showcase.tsx +0 -39
  342. /package/dist/showcase/{families/data-table → premium/data-table-parts}/data.cjs +0 -0
@@ -1,161 +0,0 @@
1
- import type { ComponentFamilyName } from "@/families/catalog"
2
-
3
- export type FamilyMigrationStatus =
4
- | "canonical"
5
- | "family-member"
6
- | "family-member helper"
7
- | "canonical composed member"
8
- | "transitional"
9
- | "advanced"
10
-
11
- export type FamilyMigrationEntry = {
12
- component: string
13
- family: ComponentFamilyName
14
- member?: string
15
- status: FamilyMigrationStatus
16
- notes?: string
17
- }
18
-
19
- export const componentFamilyMigrationMap: FamilyMigrationEntry[] = [
20
- { component: "Input", family: "InputFamily", member: "Root", status: "canonical" },
21
- { component: "Textarea", family: "InputFamily", member: "Textarea", status: "canonical composed member" },
22
- { component: "FormInput", family: "InputFamily", member: "FormInput", status: "family-member helper" },
23
- { component: "ClearableInput", family: "InputFamily", member: "Clearable", status: "transitional" },
24
- { component: "SearchInput", family: "InputFamily", member: "Search", status: "transitional" },
25
- { component: "PasswordInput", family: "InputFamily", member: "Password", status: "family-member" },
26
- { component: "NumberInput", family: "InputFamily", member: "Number", status: "family-member" },
27
- { component: "Slider", family: "InputFamily", member: "Slider", status: "advanced" },
28
- { component: "RangeSlider", family: "InputFamily", member: "RangeSlider", status: "advanced" },
29
- { component: "Rating", family: "InputFamily", member: "Rating", status: "advanced" },
30
- { component: "DateInput", family: "InputFamily", member: "Date", status: "family-member" },
31
- { component: "DateRangeInput", family: "InputFamily", member: "DateRange", status: "family-member" },
32
- { component: "MoneyInput", family: "InputFamily", member: "Money", status: "family-member" },
33
- { component: "QuantityInput", family: "InputFamily", member: "Quantity", status: "transitional" },
34
- { component: "MaskedInput", family: "InputFamily", member: "Masked", status: "transitional" },
35
- { component: "PhoneInput", family: "InputFamily", member: "Phone", status: "family-member" },
36
- { component: "OtpInput", family: "InputFamily", member: "Otp", status: "advanced" },
37
- { component: "ColorInput", family: "InputFamily", member: "Color", status: "advanced" },
38
- { component: "TagInput", family: "InputFamily", member: "Tag", status: "advanced" },
39
- { component: "QuantityStepper", family: "InputFamily", member: "QuantityStepper", status: "advanced" },
40
-
41
- { component: "Select", family: "SelectFamily", member: "Root", status: "canonical" },
42
- { component: "SimpleSelect", family: "SelectFamily", member: "Simple", status: "transitional" },
43
- { component: "AsyncSelect", family: "SelectFamily", member: "Async", status: "family-member" },
44
- { component: "AsyncMultiSelect", family: "SelectFamily", member: "AsyncMulti", status: "advanced" },
45
- { component: "Combobox", family: "SelectFamily", member: "Combobox", status: "family-member" },
46
- { component: "FormSelect", family: "SelectFamily", member: "Form.Select", status: "family-member" },
47
- { component: "FormAsyncSelect", family: "SelectFamily", member: "Form.Async", status: "transitional" },
48
-
49
- { component: "Card", family: "CardFamily", member: "Root", status: "canonical" },
50
- { component: "InfoCard", family: "CardFamily", member: "Info", status: "canonical composed member" },
51
- { component: "SmartCard", family: "CardFamily", member: "Info", status: "transitional", notes: "Prefer InfoCard or CardFamily.Info in docs and new usage." },
52
- { component: "StatCard", family: "CardFamily", member: "Stat", status: "transitional", notes: "Prefer StatisticCard or InfoCard for new usage." },
53
- { component: "StatisticCard", family: "CardFamily", member: "Statistic", status: "family-member" },
54
- { component: "EntityCard", family: "CardFamily", member: "Entity", status: "family-member" },
55
- { component: "FileCard", family: "CardFamily", member: "File", status: "family-member" },
56
-
57
- { component: "Badge", family: "BadgeFamily", member: "Root", status: "canonical" },
58
-
59
- { component: "Dialog", family: "OverlayFamily", member: "Dialog", status: "canonical" },
60
- { component: "Popover", family: "OverlayFamily", member: "Popover", status: "canonical" },
61
- { component: "DropdownMenu", family: "OverlayFamily", member: "DropdownMenu", status: "canonical" },
62
- { component: "Tooltip", family: "OverlayFamily", member: "Tooltip", status: "family-member" },
63
- { component: "HoverCard", family: "OverlayFamily", member: "HoverCard", status: "family-member" },
64
- { component: "RightClickMenu", family: "OverlayFamily", member: "RightClickMenu", status: "transitional" },
65
- { component: "AlertDialog", family: "OverlayFamily", member: "AlertDialog", status: "transitional" },
66
- { component: "ConfirmDialog", family: "OverlayFamily", member: "ConfirmDialog", status: "family-member" },
67
- { component: "ModalShell", family: "OverlayFamily", member: "ModalShell", status: "transitional" },
68
- { component: "SheetShell", family: "OverlayFamily", member: "SheetShell", status: "family-member" },
69
- { component: "Drawer", family: "OverlayFamily", member: "Drawer", status: "transitional" },
70
- { component: "DialogActions", family: "OverlayFamily", member: "DialogActions", status: "transitional" },
71
-
72
- { component: "FormFieldShell", family: "FormFamily", member: "Field", status: "canonical" },
73
- { component: "FormInput", family: "FormFamily", member: "Input", status: "family-member" },
74
- { component: "FormTextarea", family: "FormFamily", member: "Textarea", status: "family-member" },
75
- { component: "FormSelect", family: "FormFamily", member: "Select", status: "family-member" },
76
- { component: "FormAsyncSelect", family: "FormFamily", member: "AsyncSelect", status: "family-member" },
77
- { component: "FormSwitch", family: "FormFamily", member: "Switch", status: "family-member" },
78
- { component: "FormSearchInput", family: "FormFamily", member: "Search", status: "transitional" },
79
- { component: "FormPasswordInput", family: "FormFamily", member: "Password", status: "transitional" },
80
- { component: "FormNumberInput", family: "FormFamily", member: "Number", status: "transitional" },
81
- { component: "FormPhoneInput", family: "FormFamily", member: "Phone", status: "transitional" },
82
- { component: "FormDateInput", family: "FormFamily", member: "Date", status: "transitional" },
83
- { component: "FormDateRangeInput", family: "FormFamily", member: "DateRange", status: "transitional" },
84
- { component: "FormDatePicker", family: "FormFamily", member: "DatePicker", status: "family-member" },
85
- { component: "FormDateRangePicker", family: "FormFamily", member: "DateRangePicker", status: "family-member" },
86
- { component: "FormBuilder", family: "FormFamily", member: "Builder", status: "advanced" },
87
-
88
- { component: "DataTable", family: "DataTableFamily", member: "Root", status: "canonical" },
89
- { component: "DataTableToolbar", family: "DataTableFamily", member: "Toolbar", status: "family-member" },
90
- { component: "DataTablePagination", family: "DataTableFamily", member: "Pagination", status: "family-member" },
91
- { component: "DataTableColumnVisibilityMenu", family: "DataTableFamily", member: "ColumnVisibilityMenu", status: "advanced" },
92
- { component: "DataTableSortableHeader", family: "DataTableFamily", member: "SortableHeader", status: "advanced" },
93
- { component: "DataTableRowActions", family: "DataTableFamily", member: "RowActions", status: "family-member" },
94
- { component: "DataTableBulkActions", family: "DataTableFamily", member: "BulkActions", status: "family-member" },
95
- { component: "DataTableViewPresets", family: "DataTableFamily", member: "ViewPresets", status: "family-member" },
96
- { component: "createDataTableSelectColumn", family: "DataTableFamily", member: "createSelectColumn", status: "advanced" },
97
- { component: "createDataTableActionsColumn", family: "DataTableFamily", member: "createActionsColumn", status: "advanced" },
98
- { component: "TableExportMenu", family: "DataTableFamily", member: "ExportMenu", status: "advanced" },
99
- { component: "TableImportButton", family: "DataTableFamily", member: "ImportButton", status: "advanced" },
100
- { component: "InlineEditable", family: "InputFamily", member: "InlineEditable", status: "advanced" },
101
- { component: "TrendCard", family: "CardFamily", member: "Trend", status: "family-member" },
102
- { component: "ComparisonCard", family: "CardFamily", member: "Comparison", status: "family-member" },
103
- { component: "DeltaBadge", family: "BadgeFamily", member: "Delta", status: "family-member" },
104
- { component: "RepeaterField", family: "FormFamily", member: "Repeater", status: "family-member" },
105
- { component: "Button", family: "ActionFamily", member: "Root", status: "canonical" },
106
- { component: "ActionMenu", family: "ActionFamily", member: "Menu", status: "family-member" },
107
- { component: "CopyButton", family: "ActionFamily", member: "CopyButton", status: "family-member" },
108
- { component: "ButtonGroup", family: "ActionFamily", member: "Group", status: "transitional" },
109
- { component: "CopyField", family: "ActionFamily", member: "CopyField", status: "transitional" },
110
- { component: "QuickActionGrid", family: "ActionFamily", member: "QuickActionGrid", status: "transitional" },
111
-
112
- { component: "Alert", family: "FeedbackFamily", member: "Alert", status: "canonical" },
113
- { component: "EmptyState", family: "FeedbackFamily", member: "EmptyState", status: "canonical" },
114
- { component: "LoadingState", family: "FeedbackFamily", member: "LoadingState", status: "canonical" },
115
- { component: "Progress", family: "ProgressFamily", member: "Progress", status: "canonical" },
116
- { component: "ProgressCircle", family: "ProgressFamily", member: "ProgressCircle", status: "family-member" },
117
- { component: "ToastProvider", family: "FeedbackFamily", member: "ToastProvider", status: "canonical" },
118
- { component: "InlineState", family: "FeedbackFamily", member: "InlineState", status: "family-member" },
119
- { component: "LoadingOverlay", family: "FeedbackFamily", member: "LoadingOverlay", status: "family-member" },
120
- { component: "Spinner", family: "FeedbackFamily", member: "Spinner", status: "family-member" },
121
- { component: "Skeleton", family: "FeedbackFamily", member: "Skeleton", status: "family-member" },
122
- { component: "useToast", family: "FeedbackFamily", member: "useToast", status: "advanced" },
123
-
124
- { component: "BarChart", family: "ChartFamily", member: "BarChart", status: "canonical" },
125
- { component: "LineChart", family: "ChartFamily", member: "LineChart", status: "canonical" },
126
- { component: "DonutChart", family: "ChartFamily", member: "DonutChart", status: "canonical" },
127
- { component: "MetricGrid", family: "ChartFamily", member: "MetricGrid", status: "family-member" },
128
- { component: "ChartFrame", family: "ChartFamily", member: "ChartFrame", status: "family-member" },
129
- { component: "ChartLegend", family: "ChartFamily", member: "ChartLegend", status: "family-member" },
130
- { component: "Sparkline", family: "ChartFamily", member: "Sparkline", status: "family-member" },
131
- { component: "MetricTrend", family: "ChartFamily", member: "MetricTrend", status: "family-member" },
132
- { component: "Statistic", family: "ChartFamily", member: "Statistic", status: "family-member" },
133
- { component: "StatisticGrid", family: "ChartFamily", member: "StatisticGrid", status: "family-member" },
134
- { component: "StatisticCard", family: "ChartFamily", member: "StatisticCard", status: "family-member" },
135
-
136
- { component: "Sidebar", family: "NavigationFamily", member: "Sidebar", status: "canonical" },
137
- { component: "PageContainer", family: "NavigationFamily", member: "PageContainer", status: "canonical" },
138
- { component: "Tabs", family: "NavigationFamily", member: "Tabs", status: "canonical" },
139
- { component: "Pagination", family: "NavigationFamily", member: "Pagination", status: "canonical" },
140
- { component: "Breadcrumbs", family: "NavigationFamily", member: "Breadcrumbs", status: "canonical" },
141
- { component: "Wizard", family: "NavigationFamily", member: "Wizard", status: "canonical" },
142
- { component: "Section", family: "NavigationFamily", member: "Section", status: "transitional" },
143
- { component: "AnchorNav", family: "NavigationFamily", member: "AnchorNav", status: "transitional" },
144
- { component: "Stepper", family: "NavigationFamily", member: "Stepper", status: "transitional" },
145
- { component: "StepperTabs", family: "NavigationFamily", member: "StepperTabs", status: "transitional" },
146
- { component: "SegmentedControl", family: "NavigationFamily", member: "SegmentedControl", status: "transitional" },
147
-
148
- { component: "FileUpload", family: "UploadFamily", member: "FileUpload", status: "canonical" },
149
- { component: "ImageUpload", family: "UploadFamily", member: "ImageUpload", status: "canonical composed member" },
150
-
151
- { component: "Checkbox", family: "PrimitiveFamily", member: "Checkbox", status: "canonical" },
152
- { component: "RadioGroup", family: "PrimitiveFamily", member: "RadioGroup", status: "canonical" },
153
- { component: "Switch", family: "PrimitiveFamily", member: "Switch", status: "canonical" },
154
- { component: "Table", family: "PrimitiveFamily", member: "Table", status: "canonical" },
155
- { component: "Accordion", family: "PrimitiveFamily", member: "Accordion", status: "canonical" },
156
- { component: "Collapse", family: "PrimitiveFamily", member: "Collapse", status: "transitional" },
157
- { component: "Calendar", family: "PrimitiveFamily", member: "Calendar", status: "transitional" },
158
- { component: "Divider", family: "PrimitiveFamily", member: "Divider", status: "transitional" },
159
- { component: "Kbd", family: "PrimitiveFamily", member: "Kbd", status: "transitional" },
160
- { component: "ScrollBox", family: "PrimitiveFamily", member: "ScrollBox", status: "transitional" },
161
- ] as const
@@ -1,31 +0,0 @@
1
- import {
2
- AlertDialog,
3
- ConfirmDialog,
4
- DialogActions,
5
- Drawer,
6
- ModalShell,
7
- SheetShell,
8
- } from "@/components/overlay"
9
- import { DropdownMenu } from "@/components/ui/dropdown-menu"
10
- import { HoverCard } from "@/components/ui/hover-card"
11
- import { Popover } from "@/components/ui/popover"
12
- import { RightClickMenu } from "@/components/ui/right-click-menu"
13
- import { Tooltip } from "@/components/ui/tooltip"
14
- import { Dialog } from "@/components/ui/dialog"
15
-
16
- const OverlayFamily = {
17
- Dialog,
18
- Popover,
19
- DropdownMenu,
20
- Tooltip,
21
- HoverCard,
22
- RightClickMenu,
23
- AlertDialog,
24
- ConfirmDialog,
25
- ModalShell,
26
- SheetShell,
27
- Drawer,
28
- DialogActions,
29
- } as const
30
-
31
- export { OverlayFamily }
@@ -1,206 +0,0 @@
1
- export const additionalPublicFamilies = [
2
- {
3
- family: "ActionFamily",
4
- label: "Actions",
5
- description: "Primary action surface led by Button, then expanded with menus, copy flows, and grouped actions.",
6
- canonical: ["Button"],
7
- members: ["ActionMenu", "CopyButton"],
8
- transitional: ["ButtonGroup", "CopyField", "QuickActionGrid"],
9
- },
10
- {
11
- family: "FeedbackFamily",
12
- label: "Feedback",
13
- description: "Status, loading, and notification surfaces grouped under one product feedback mental model.",
14
- canonical: ["Alert", "EmptyState", "LoadingState", "ToastProvider"],
15
- members: ["InlineState", "LoadingOverlay", "Spinner", "Skeleton"],
16
- advanced: ["useToast"],
17
- },
18
- {
19
- family: "ProgressFamily",
20
- label: "Progress",
21
- description: "Completion and progress surfaces with linear and circular indicators.",
22
- canonical: ["Progress"],
23
- members: ["ProgressCircle"],
24
- },
25
- {
26
- family: "ChartFamily",
27
- label: "Charts",
28
- description: "Dashboard chart and metric surfaces with one clear chart-led public route.",
29
- canonical: ["BarChart", "LineChart", "DonutChart"],
30
- members: ["MetricGrid", "ChartFrame", "ChartLegend", "Sparkline", "MetricTrend", "Statistic", "StatisticGrid", "StatisticCard"],
31
- },
32
- {
33
- family: "NavigationFamily",
34
- label: "Navigation",
35
- description: "Navigation, page framing, and guided-flow surfaces grouped around one layout-first route.",
36
- canonical: ["Sidebar", "PageContainer", "Tabs", "Pagination", "Breadcrumbs", "Wizard"],
37
- members: [],
38
- transitional: ["Section", "AnchorNav", "Stepper", "StepperTabs", "SegmentedControl"],
39
- },
40
- {
41
- family: "UploadFamily",
42
- label: "Upload",
43
- description: "File and image upload surfaces with source-ready product behavior.",
44
- canonical: ["FileUpload", "ImageUpload"],
45
- members: [],
46
- },
47
- {
48
- family: "PrimitiveFamily",
49
- label: "Primitives",
50
- description: "Form and content primitives that support higher-level product surfaces without crowding the catalog.",
51
- canonical: ["Checkbox", "RadioGroup", "Switch", "Table", "Accordion"],
52
- members: [],
53
- transitional: ["Collapse", "Calendar", "Divider", "Kbd", "ScrollBox"],
54
- },
55
- ] as const
56
-
57
- export const additionalDocsGroups = [
58
- {
59
- group: "Button",
60
- family: "ActionFamily",
61
- slug: "button",
62
- label: "Button",
63
- primaryComponent: "Button",
64
- description: "Button-first action route with menu, copy, and grouped-action helpers introduced only after the main trigger is clear.",
65
- sections: [
66
- {
67
- id: "core-actions",
68
- label: "Core actions",
69
- description: "Start from the primary action trigger, then expand into menu and copy patterns only when the flow needs them.",
70
- components: ["Button", "ActionMenu", "CopyButton"],
71
- },
72
- {
73
- id: "secondary-patterns",
74
- label: "Secondary patterns",
75
- description: "Grouped and embedded action helpers should stay secondary to the core action surface.",
76
- components: ["ButtonGroup", "CopyField", "QuickActionGrid"],
77
- },
78
- ],
79
- },
80
- {
81
- group: "Alert",
82
- family: "FeedbackFamily",
83
- slug: "alert",
84
- label: "Alert",
85
- primaryComponent: "Alert",
86
- description: "Feedback route for product status, empty, loading, progress, and notifications.",
87
- sections: [
88
- {
89
- id: "core-feedback",
90
- label: "Core feedback",
91
- description: "These are the product feedback surfaces teams should reach for first.",
92
- components: ["Alert", "EmptyState", "LoadingState", "ToastProvider"],
93
- },
94
- {
95
- id: "secondary-feedback",
96
- label: "Secondary feedback",
97
- description: "Loading helpers and inline state affordances should stay behind the core feedback model.",
98
- components: ["InlineState", "LoadingOverlay", "Spinner", "Skeleton", "useToast"],
99
- },
100
- ],
101
- },
102
- {
103
- group: "BarChart",
104
- family: "ChartFamily",
105
- slug: "bar-chart",
106
- label: "Bar Chart",
107
- primaryComponent: "BarChart",
108
- description: "Chart-first route for dashboard visuals and metric companions.",
109
- sections: [
110
- {
111
- id: "core-charts",
112
- label: "Core charts",
113
- description: "Lead with the chart surfaces that carry direct dashboard value.",
114
- components: ["BarChart", "LineChart", "DonutChart", "MetricGrid"],
115
- },
116
- {
117
- id: "chart-helpers",
118
- label: "Chart helpers",
119
- description: "Frames, legends, and metric add-ons stay as secondary pieces around the chart route.",
120
- components: ["ChartFrame", "ChartLegend", "Sparkline", "MetricTrend", "Statistic", "StatisticGrid", "StatisticCard"],
121
- },
122
- ],
123
- },
124
- {
125
- group: "Sidebar",
126
- family: "NavigationFamily",
127
- slug: "sidebar",
128
- label: "Sidebar",
129
- primaryComponent: "Sidebar",
130
- description: "Navigation and layout route with page framing, tabs, pagination, and guided flows grouped together.",
131
- sections: [
132
- {
133
- id: "core-navigation",
134
- label: "Core navigation",
135
- description: "Start from the main navigational and framing surfaces.",
136
- components: ["Sidebar", "PageContainer", "Tabs", "Pagination", "Breadcrumbs", "Wizard"],
137
- },
138
- {
139
- id: "secondary-navigation",
140
- label: "Secondary navigation",
141
- description: "Structural helpers and guided-flow variants should stay behind the main navigation route.",
142
- components: ["Section", "AnchorNav", "Stepper", "StepperTabs", "SegmentedControl"],
143
- },
144
- ],
145
- },
146
- {
147
- group: "FileUpload",
148
- family: "UploadFamily",
149
- slug: "file-upload",
150
- label: "File Upload",
151
- primaryComponent: "FileUpload",
152
- description: "Upload route that starts from the generic file workflow and then expands into image-specific behavior.",
153
- sections: [
154
- {
155
- id: "upload-core",
156
- label: "Upload core",
157
- description: "Generic file and image upload flows with direct product behavior.",
158
- components: ["FileUpload", "ImageUpload"],
159
- },
160
- ],
161
- },
162
- {
163
- group: "Checkbox",
164
- family: "PrimitiveFamily",
165
- slug: "checkbox",
166
- label: "Checkbox",
167
- primaryComponent: "Checkbox",
168
- description: "Primitive route for selection, tables, and supporting building blocks that should not dominate the main catalog.",
169
- sections: [
170
- {
171
- id: "core-primitives",
172
- label: "Core primitives",
173
- description: "Lead with the selection and content primitives used most often in real product screens.",
174
- components: ["Checkbox", "RadioGroup", "Switch", "Table", "Accordion"],
175
- },
176
- {
177
- id: "supporting-primitives",
178
- label: "Supporting primitives",
179
- description: "Supporting content and layout primitives should stay secondary to the core controls.",
180
- components: ["Collapse", "Calendar", "Divider", "Kbd", "ScrollBox"],
181
- },
182
- ],
183
- },
184
- {
185
- group: "Progress",
186
- family: "ProgressFamily",
187
- slug: "progress",
188
- label: "Progress",
189
- primaryComponent: "Progress",
190
- description: "Progress surfaces grouped with linear and circular indicators, value formatting, and status tone.",
191
- sections: [
192
- {
193
- id: "core-progress",
194
- label: "Core progress",
195
- description: "Start with linear progress states before composing status and circular variants.",
196
- components: ["Progress", "ProgressCircle"],
197
- },
198
- {
199
- id: "supporting-progress",
200
- label: "Supporting signals",
201
- description: "Small, reusable status helpers for quick loading feedback and skeleton-driven async states.",
202
- components: [],
203
- },
204
- ],
205
- },
206
- ] as const
@@ -1,131 +0,0 @@
1
- import { componentFamilyCatalog, type ComponentFamilyCatalogEntry, type ComponentFamilyName } from "@/families/catalog"
2
- import {
3
- componentFamilyMigrationMap,
4
- type FamilyMigrationEntry,
5
- type FamilyMigrationStatus,
6
- } from "@/families/migration-map"
7
-
8
- const publicFamilyOverrides: Partial<Record<ComponentFamilyName, ComponentFamilyCatalogEntry>> = {
9
- InputFamily: {
10
- family: "InputFamily",
11
- label: "Input",
12
- description: "Small core input surface for the input types used most often in dashboard screens.",
13
- canonical: ["Input", "Textarea"],
14
- members: ["NumberInput", "DateInput", "DateRangeInput", "MoneyInput", "PhoneInput", "FormInput"],
15
- transitional: ["ClearableInput", "SearchInput", "MaskedInput", "QuantityInput"],
16
- advanced: ["Slider", "RangeSlider", "Rating", "OtpInput", "ColorInput", "InlineEditable", "TagInput", "QuantityStepper"],
17
- },
18
- SelectFamily: {
19
- family: "SelectFamily",
20
- label: "Select",
21
- description: "Choice-picking surface with async, multi-select, and combobox only when the interaction needs them.",
22
- canonical: ["Select"],
23
- members: ["AsyncSelect", "Combobox", "FormSelect"],
24
- transitional: ["SimpleSelect", "FormAsyncSelect"],
25
- advanced: ["AsyncMultiSelect"],
26
- },
27
- CardFamily: {
28
- family: "CardFamily",
29
- label: "Card",
30
- description: "Primitive card plus only the card presets that provide reusable product value.",
31
- canonical: ["Card", "InfoCard"],
32
- members: ["EntityCard", "FileCard", "TrendCard", "ComparisonCard"],
33
- transitional: ["SmartCard", "StatCard"],
34
- },
35
- OverlayFamily: {
36
- family: "OverlayFamily",
37
- label: "Overlay",
38
- description: "Floating interaction surfaces grouped by behavior, not by card-like visual appearance.",
39
- canonical: ["Dialog", "Popover", "DropdownMenu"],
40
- members: ["Tooltip", "ConfirmDialog", "SheetShell", "HoverCard"],
41
- transitional: ["RightClickMenu", "AlertDialog", "ModalShell", "Drawer", "DialogActions"],
42
- },
43
- FormFamily: {
44
- family: "FormFamily",
45
- label: "Form",
46
- description: "Field shell and a compact set of broad wrappers instead of many small aliases.",
47
- canonical: ["FormFieldShell"],
48
- members: ["FormInput", "FormTextarea", "FormSelect", "FormSwitch", "FormDatePicker", "FormDateRangePicker", "RepeaterField"],
49
- transitional: ["FormSearchInput", "FormPasswordInput", "FormNumberInput", "FormPhoneInput", "FormDateInput", "FormDateRangeInput"],
50
- advanced: ["FormBuilder"],
51
- },
52
- DataTableFamily: {
53
- family: "DataTableFamily",
54
- label: "Data Table",
55
- description: "Table shell with toolbar and pagination as the only first-level companions.",
56
- canonical: ["DataTable"],
57
- members: ["DataTableToolbar", "DataTablePagination", "DataTableRowActions", "DataTableBulkActions", "DataTableViewPresets"],
58
- advanced: [
59
- "DataTableColumnVisibilityMenu",
60
- "DataTableSortableHeader",
61
- "createDataTableSelectColumn",
62
- "createDataTableActionsColumn",
63
- "TableExportMenu",
64
- "TableImportButton",
65
- ],
66
- },
67
- }
68
-
69
- const publicFamilyCatalog = componentFamilyCatalog.map((entry) => publicFamilyOverrides[entry.family] ?? entry)
70
-
71
- const familyCatalogMap = new Map<ComponentFamilyName, ComponentFamilyCatalogEntry>(
72
- publicFamilyCatalog.map((entry) => [entry.family, entry])
73
- )
74
-
75
- const componentMigrationMap = new Map<string, FamilyMigrationEntry[]>()
76
-
77
- for (const entry of componentFamilyMigrationMap) {
78
- const existingEntries = componentMigrationMap.get(entry.component) ?? []
79
- existingEntries.push(entry)
80
- componentMigrationMap.set(entry.component, existingEntries)
81
- }
82
-
83
- function getFamilyCatalogEntry(family: ComponentFamilyName) {
84
- return familyCatalogMap.get(family)
85
- }
86
-
87
- function listFamilyCatalogEntries() {
88
- return publicFamilyCatalog
89
- }
90
-
91
- function getFamilyMembers(family: ComponentFamilyName) {
92
- return componentFamilyMigrationMap.filter((entry) => entry.family === family)
93
- }
94
-
95
- function getComponentFamilyEntry(component: string) {
96
- return componentMigrationMap.get(component)?.[0]
97
- }
98
-
99
- function getComponentFamilyEntries(component: string) {
100
- return componentMigrationMap.get(component) ?? []
101
- }
102
-
103
- function listComponentsByStatus(status: FamilyMigrationStatus) {
104
- return componentFamilyMigrationMap.filter((entry) => entry.status === status)
105
- }
106
-
107
- function listTransitionalComponents() {
108
- return listComponentsByStatus("transitional")
109
- }
110
-
111
- function listAdvancedComponents() {
112
- return listComponentsByStatus("advanced")
113
- }
114
-
115
- function listCanonicalComponents() {
116
- return componentFamilyMigrationMap.filter(
117
- (entry) => entry.status === "canonical" || entry.status === "canonical composed member"
118
- )
119
- }
120
-
121
- export {
122
- getComponentFamilyEntry,
123
- getComponentFamilyEntries,
124
- getFamilyCatalogEntry,
125
- getFamilyMembers,
126
- listAdvancedComponents,
127
- listCanonicalComponents,
128
- listComponentsByStatus,
129
- listFamilyCatalogEntries,
130
- listTransitionalComponents,
131
- }
@@ -1,33 +0,0 @@
1
- import { FormAsyncSelect, FormSelect } from "@/components/form"
2
- import { AsyncMultiSelect, AsyncSelect, Combobox, SimpleSelect } from "@/components/inputs"
3
- import {
4
- Select,
5
- SelectContent,
6
- SelectGroup,
7
- SelectItem,
8
- SelectLabel,
9
- SelectSeparator,
10
- SelectTrigger,
11
- SelectValue,
12
- } from "@/components/ui/select"
13
-
14
- const SelectFamily = {
15
- Root: Select,
16
- Trigger: SelectTrigger,
17
- Value: SelectValue,
18
- Content: SelectContent,
19
- Group: SelectGroup,
20
- Label: SelectLabel,
21
- Item: SelectItem,
22
- Separator: SelectSeparator,
23
- Simple: SimpleSelect,
24
- Async: AsyncSelect,
25
- AsyncMulti: AsyncMultiSelect,
26
- Combobox,
27
- Form: {
28
- Select: FormSelect,
29
- Async: FormAsyncSelect,
30
- },
31
- } as const
32
-
33
- export { SelectFamily }
@@ -1,85 +0,0 @@
1
- import type { ComponentFamilyCatalogEntry, ComponentFamilyName } from "@/families/catalog"
2
- import type { FamilyMigrationEntry } from "@/families/migration-map"
3
- import {
4
- getFamilyCatalogEntry,
5
- getFamilyMembers,
6
- listAdvancedComponents,
7
- listCanonicalComponents,
8
- listFamilyCatalogEntries,
9
- listTransitionalComponents,
10
- } from "@/families/queries"
11
-
12
- export type ComponentFamilyView = ComponentFamilyCatalogEntry & {
13
- canonicalEntries: FamilyMigrationEntry[]
14
- memberEntries: FamilyMigrationEntry[]
15
- transitionalEntries: FamilyMigrationEntry[]
16
- advancedEntries: FamilyMigrationEntry[]
17
- }
18
-
19
- function toSortedEntries(entries: FamilyMigrationEntry[]) {
20
- return [...entries].sort((left, right) => left.component.localeCompare(right.component))
21
- }
22
-
23
- function pickCatalogEntries(entries: FamilyMigrationEntry[], components: readonly string[]) {
24
- const allowed = new Set(components)
25
- return toSortedEntries(entries.filter((entry) => allowed.has(entry.component)))
26
- }
27
-
28
- function getFamilyView(family: ComponentFamilyName): ComponentFamilyView | undefined {
29
- const catalogEntry = getFamilyCatalogEntry(family)
30
-
31
- if (!catalogEntry) return undefined
32
-
33
- const familyMembers = getFamilyMembers(family)
34
- const canonicalEntries = pickCatalogEntries(
35
- familyMembers.filter((entry) => entry.status === "canonical" || entry.status === "canonical composed member"),
36
- catalogEntry.canonical
37
- )
38
- const transitionalEntries = pickCatalogEntries(
39
- familyMembers.filter((entry) => entry.status === "transitional"),
40
- catalogEntry.transitional ?? []
41
- )
42
- const advancedEntries = pickCatalogEntries(
43
- familyMembers.filter((entry) => entry.status === "advanced"),
44
- catalogEntry.advanced ?? []
45
- )
46
- const memberEntries = pickCatalogEntries(
47
- familyMembers.filter((entry) => entry.status === "family-member" || entry.status === "family-member helper"),
48
- catalogEntry.members
49
- )
50
-
51
- return {
52
- ...catalogEntry,
53
- canonicalEntries,
54
- memberEntries,
55
- transitionalEntries,
56
- advancedEntries,
57
- }
58
- }
59
-
60
- function listFamilyViews() {
61
- return listFamilyCatalogEntries().map((entry) => getFamilyView(entry.family)).filter(Boolean) as ComponentFamilyView[]
62
- }
63
-
64
- function getFamilyNavigation() {
65
- return listFamilyCatalogEntries().map((entry) => ({
66
- family: entry.family,
67
- label: entry.label,
68
- description: entry.description,
69
- canonicalCount: entry.canonical.length,
70
- memberCount: entry.members.length,
71
- transitionalCount: entry.transitional?.length ?? 0,
72
- advancedCount: entry.advanced?.length ?? 0,
73
- }))
74
- }
75
-
76
- function getMetadataSummary() {
77
- return {
78
- families: listFamilyCatalogEntries().length,
79
- canonical: listCanonicalComponents().length,
80
- transitional: listTransitionalComponents().length,
81
- advanced: listAdvancedComponents().length,
82
- }
83
- }
84
-
85
- export { getFamilyNavigation, getFamilyView, getMetadataSummary, listFamilyViews }
@@ -1,2 +0,0 @@
1
- export { ActionsFamilyShowcase } from "./showcase"
2
- export { actionsFamilyMock } from "./mock"