tembro 1.0.3 → 2.0.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 (339) hide show
  1. package/README.md +2 -2
  2. package/dist/components/display/smart-card.d.ts +8 -8
  3. package/dist/components/patterns/index.cjs +1 -1
  4. package/dist/components/patterns/index.js +4 -4
  5. package/dist/components/patterns/public.cjs +1 -1
  6. package/dist/components/patterns/public.js +4 -4
  7. package/dist/index.cjs +1 -1
  8. package/dist/index.d.ts +0 -1
  9. package/dist/index.js +19 -38
  10. package/dist/showcase/index.cjs +1 -1
  11. package/dist/showcase/index.d.ts +0 -1
  12. package/dist/showcase/index.js +36 -38
  13. package/dist/showcase/package-meta.cjs +1 -1
  14. package/dist/showcase/package-meta.d.ts +2 -2
  15. package/dist/showcase/package-meta.js +1 -1
  16. package/dist/showcase/premium/accordion/mock.cjs +4 -4
  17. package/dist/showcase/premium/accordion/mock.js +1 -1
  18. package/dist/showcase/{families/data-table/types.d.ts → premium/data-table-parts/data.d.ts} +4 -0
  19. package/dist/showcase/{families/data-table → premium/data-table-parts}/data.js +1 -1
  20. package/dist/showcase/premium/data-table-parts/showcase.cjs +1 -1
  21. package/dist/showcase/premium/data-table-parts/showcase.js +1 -1
  22. package/dist/showcase/site-data.cjs +1 -1
  23. package/dist/showcase/site-data.d.ts +6 -6
  24. package/dist/showcase/site-data.js +414 -451
  25. package/dist/showcase/tembro-registry.json.cjs +1 -1
  26. package/dist/showcase/tembro-registry.json.js +1 -1
  27. package/package.json +2 -13
  28. package/packages/cli/dist/index.cjs +17 -17
  29. package/packages/cli/vendor/src/components/display/smart-card.tsx +8 -8
  30. package/packages/cli/vendor/src/index.ts +3 -4
  31. package/packages/cli/vendor/src/showcase/index.ts +5 -6
  32. package/packages/cli/vendor/src/showcase/package-meta.ts +1 -1
  33. package/packages/cli/vendor/src/showcase/premium/accordion/mock.ts +4 -4
  34. package/packages/cli/vendor/src/showcase/{families/data-table → premium/data-table-parts}/data.ts +25 -1
  35. package/packages/cli/vendor/src/showcase/premium/data-table-parts/showcase.tsx +1 -2
  36. package/packages/cli/vendor/src/showcase/site-data.tsx +151 -216
  37. package/packages/cli/vendor/src/showcase/tembro-registry.json +1 -1
  38. package/registry.json +1 -1
  39. package/dist/families/badge-family.cjs +0 -1
  40. package/dist/families/badge-family.d.ts +0 -5
  41. package/dist/families/badge-family.js +0 -5
  42. package/dist/families/card-family.cjs +0 -1
  43. package/dist/families/card-family.d.ts +0 -16
  44. package/dist/families/card-family.js +0 -21
  45. package/dist/families/catalog.cjs +0 -1
  46. package/dist/families/catalog.d.ts +0 -11
  47. package/dist/families/catalog.js +0 -140
  48. package/dist/families/data-table-family.cjs +0 -1
  49. package/dist/families/data-table-family.d.ts +0 -18
  50. package/dist/families/data-table-family.js +0 -29
  51. package/dist/families/docs-adoption.cjs +0 -1
  52. package/dist/families/docs-adoption.d.ts +0 -16
  53. package/dist/families/docs-adoption.js +0 -53
  54. package/dist/families/docs-groups.cjs +0 -1
  55. package/dist/families/docs-groups.d.ts +0 -18
  56. package/dist/families/docs-groups.js +0 -262
  57. package/dist/families/docs-queries.cjs +0 -1
  58. package/dist/families/docs-queries.d.ts +0 -37
  59. package/dist/families/docs-queries.js +0 -50
  60. package/dist/families/docs-routing.cjs +0 -1
  61. package/dist/families/docs-routing.d.ts +0 -17
  62. package/dist/families/docs-routing.js +0 -49
  63. package/dist/families/form-family.cjs +0 -1
  64. package/dist/families/form-family.d.ts +0 -20
  65. package/dist/families/form-family.js +0 -35
  66. package/dist/families/index.cjs +0 -1
  67. package/dist/families/index.d.ts +0 -19
  68. package/dist/families/index.js +0 -20
  69. package/dist/families/input-family.cjs +0 -1
  70. package/dist/families/input-family.d.ts +0 -32
  71. package/dist/families/input-family.js +0 -56
  72. package/dist/families/member-metadata.cjs +0 -1
  73. package/dist/families/member-metadata.d.ts +0 -11
  74. package/dist/families/member-metadata.js +0 -1013
  75. package/dist/families/member-queries.cjs +0 -1
  76. package/dist/families/member-queries.d.ts +0 -6
  77. package/dist/families/member-queries.js +0 -14
  78. package/dist/families/member-snippet-queries.cjs +0 -1
  79. package/dist/families/member-snippet-queries.d.ts +0 -8
  80. package/dist/families/member-snippet-queries.js +0 -30
  81. package/dist/families/member-snippets.cjs +0 -484
  82. package/dist/families/member-snippets.d.ts +0 -11
  83. package/dist/families/member-snippets.js +0 -1061
  84. package/dist/families/migration-map.cjs +0 -1
  85. package/dist/families/migration-map.d.ts +0 -10
  86. package/dist/families/migration-map.js +0 -787
  87. package/dist/families/overlay-family.cjs +0 -1
  88. package/dist/families/overlay-family.d.ts +0 -22
  89. package/dist/families/overlay-family.js +0 -29
  90. package/dist/families/public-surface-rationalization.cjs +0 -1
  91. package/dist/families/public-surface-rationalization.d.ts +0 -169
  92. package/dist/families/public-surface-rationalization.js +0 -296
  93. package/dist/families/queries.cjs +0 -1
  94. package/dist/families/queries.d.ts +0 -12
  95. package/dist/families/queries.js +0 -162
  96. package/dist/families/select-family.cjs +0 -1
  97. package/dist/families/select-family.d.ts +0 -22
  98. package/dist/families/select-family.js +0 -27
  99. package/dist/families/views.cjs +0 -1
  100. package/dist/families/views.d.ts +0 -26
  101. package/dist/families/views.js +0 -45
  102. package/dist/showcase/families/actions/index.cjs +0 -1
  103. package/dist/showcase/families/actions/index.d.ts +0 -2
  104. package/dist/showcase/families/actions/index.js +0 -3
  105. package/dist/showcase/families/actions/mock.cjs +0 -5
  106. package/dist/showcase/families/actions/mock.d.ts +0 -2
  107. package/dist/showcase/families/actions/mock.js +0 -40
  108. package/dist/showcase/families/actions/showcase.cjs +0 -1
  109. package/dist/showcase/families/actions/showcase.d.ts +0 -2
  110. package/dist/showcase/families/actions/showcase.js +0 -53
  111. package/dist/showcase/families/calendar/index.cjs +0 -1
  112. package/dist/showcase/families/calendar/index.d.ts +0 -2
  113. package/dist/showcase/families/calendar/index.js +0 -3
  114. package/dist/showcase/families/calendar/mock.cjs +0 -5
  115. package/dist/showcase/families/calendar/mock.d.ts +0 -2
  116. package/dist/showcase/families/calendar/mock.js +0 -40
  117. package/dist/showcase/families/calendar/showcase.cjs +0 -1
  118. package/dist/showcase/families/calendar/showcase.d.ts +0 -2
  119. package/dist/showcase/families/calendar/showcase.js +0 -60
  120. package/dist/showcase/families/command/index.cjs +0 -1
  121. package/dist/showcase/families/command/index.d.ts +0 -2
  122. package/dist/showcase/families/command/index.js +0 -3
  123. package/dist/showcase/families/command/mock.cjs +0 -5
  124. package/dist/showcase/families/command/mock.d.ts +0 -2
  125. package/dist/showcase/families/command/mock.js +0 -40
  126. package/dist/showcase/families/command/showcase.cjs +0 -1
  127. package/dist/showcase/families/command/showcase.d.ts +0 -2
  128. package/dist/showcase/families/command/showcase.js +0 -40
  129. package/dist/showcase/families/data-table/data.d.ts +0 -5
  130. package/dist/showcase/families/data-table/index.cjs +0 -1
  131. package/dist/showcase/families/data-table/index.d.ts +0 -4
  132. package/dist/showcase/families/data-table/index.js +0 -4
  133. package/dist/showcase/families/data-table/mock.cjs +0 -24
  134. package/dist/showcase/families/data-table/mock.d.ts +0 -2
  135. package/dist/showcase/families/data-table/mock.js +0 -48
  136. package/dist/showcase/families/data-table/showcase.cjs +0 -1
  137. package/dist/showcase/families/data-table/showcase.d.ts +0 -3
  138. package/dist/showcase/families/data-table/showcase.js +0 -751
  139. package/dist/showcase/families/data-table/types.cjs +0 -1
  140. package/dist/showcase/families/data-table/types.js +0 -0
  141. package/dist/showcase/families/display/data.cjs +0 -1
  142. package/dist/showcase/families/display/data.d.ts +0 -6
  143. package/dist/showcase/families/display/data.js +0 -24
  144. package/dist/showcase/families/display/index.cjs +0 -1
  145. package/dist/showcase/families/display/index.d.ts +0 -2
  146. package/dist/showcase/families/display/index.js +0 -3
  147. package/dist/showcase/families/display/mock.cjs +0 -5
  148. package/dist/showcase/families/display/mock.d.ts +0 -2
  149. package/dist/showcase/families/display/mock.js +0 -40
  150. package/dist/showcase/families/display/showcase.cjs +0 -1
  151. package/dist/showcase/families/display/showcase.d.ts +0 -2
  152. package/dist/showcase/families/display/showcase.js +0 -201
  153. package/dist/showcase/families/filters/data.cjs +0 -1
  154. package/dist/showcase/families/filters/data.d.ts +0 -31
  155. package/dist/showcase/families/filters/data.js +0 -61
  156. package/dist/showcase/families/filters/index.cjs +0 -1
  157. package/dist/showcase/families/filters/index.d.ts +0 -2
  158. package/dist/showcase/families/filters/index.js +0 -3
  159. package/dist/showcase/families/filters/mock.cjs +0 -5
  160. package/dist/showcase/families/filters/mock.d.ts +0 -2
  161. package/dist/showcase/families/filters/mock.js +0 -40
  162. package/dist/showcase/families/filters/showcase.cjs +0 -1
  163. package/dist/showcase/families/filters/showcase.d.ts +0 -3
  164. package/dist/showcase/families/filters/showcase.js +0 -213
  165. package/dist/showcase/families/form/data.cjs +0 -1
  166. package/dist/showcase/families/form/data.d.ts +0 -22
  167. package/dist/showcase/families/form/data.js +0 -53
  168. package/dist/showcase/families/form/index.cjs +0 -1
  169. package/dist/showcase/families/form/index.d.ts +0 -4
  170. package/dist/showcase/families/form/index.js +0 -4
  171. package/dist/showcase/families/form/mock.cjs +0 -12
  172. package/dist/showcase/families/form/mock.d.ts +0 -2
  173. package/dist/showcase/families/form/mock.js +0 -40
  174. package/dist/showcase/families/form/showcase.cjs +0 -1
  175. package/dist/showcase/families/form/showcase.d.ts +0 -3
  176. package/dist/showcase/families/form/showcase.js +0 -318
  177. package/dist/showcase/families/form/types.cjs +0 -1
  178. package/dist/showcase/families/form/types.d.ts +0 -9
  179. package/dist/showcase/families/form/types.js +0 -0
  180. package/dist/showcase/families/index.cjs +0 -1
  181. package/dist/showcase/families/index.d.ts +0 -3
  182. package/dist/showcase/families/index.js +0 -96
  183. package/dist/showcase/families/inputs/data.cjs +0 -1
  184. package/dist/showcase/families/inputs/data.d.ts +0 -24
  185. package/dist/showcase/families/inputs/data.js +0 -90
  186. package/dist/showcase/families/inputs/index.cjs +0 -1
  187. package/dist/showcase/families/inputs/index.d.ts +0 -2
  188. package/dist/showcase/families/inputs/index.js +0 -3
  189. package/dist/showcase/families/inputs/mock.cjs +0 -5
  190. package/dist/showcase/families/inputs/mock.d.ts +0 -2
  191. package/dist/showcase/families/inputs/mock.js +0 -40
  192. package/dist/showcase/families/inputs/showcase.cjs +0 -1
  193. package/dist/showcase/families/inputs/showcase.d.ts +0 -3
  194. package/dist/showcase/families/inputs/showcase.js +0 -404
  195. package/dist/showcase/families/layout/index.cjs +0 -1
  196. package/dist/showcase/families/layout/index.d.ts +0 -2
  197. package/dist/showcase/families/layout/index.js +0 -3
  198. package/dist/showcase/families/layout/mock.cjs +0 -5
  199. package/dist/showcase/families/layout/mock.d.ts +0 -2
  200. package/dist/showcase/families/layout/mock.js +0 -40
  201. package/dist/showcase/families/layout/showcase.cjs +0 -1
  202. package/dist/showcase/families/layout/showcase.d.ts +0 -2
  203. package/dist/showcase/families/layout/showcase.js +0 -88
  204. package/dist/showcase/families/navigation/index.cjs +0 -1
  205. package/dist/showcase/families/navigation/index.d.ts +0 -2
  206. package/dist/showcase/families/navigation/index.js +0 -3
  207. package/dist/showcase/families/navigation/mock.cjs +0 -5
  208. package/dist/showcase/families/navigation/mock.d.ts +0 -2
  209. package/dist/showcase/families/navigation/mock.js +0 -40
  210. package/dist/showcase/families/navigation/showcase.cjs +0 -1
  211. package/dist/showcase/families/navigation/showcase.d.ts +0 -2
  212. package/dist/showcase/families/navigation/showcase.js +0 -49
  213. package/dist/showcase/families/notifications/index.cjs +0 -1
  214. package/dist/showcase/families/notifications/index.d.ts +0 -2
  215. package/dist/showcase/families/notifications/index.js +0 -3
  216. package/dist/showcase/families/notifications/mock.cjs +0 -5
  217. package/dist/showcase/families/notifications/mock.d.ts +0 -2
  218. package/dist/showcase/families/notifications/mock.js +0 -40
  219. package/dist/showcase/families/notifications/showcase.cjs +0 -1
  220. package/dist/showcase/families/notifications/showcase.d.ts +0 -1
  221. package/dist/showcase/families/notifications/showcase.js +0 -50
  222. package/dist/showcase/families/overlay/index.cjs +0 -1
  223. package/dist/showcase/families/overlay/index.d.ts +0 -2
  224. package/dist/showcase/families/overlay/index.js +0 -3
  225. package/dist/showcase/families/overlay/mock.cjs +0 -5
  226. package/dist/showcase/families/overlay/mock.d.ts +0 -2
  227. package/dist/showcase/families/overlay/mock.js +0 -40
  228. package/dist/showcase/families/overlay/showcase.cjs +0 -1
  229. package/dist/showcase/families/overlay/showcase.d.ts +0 -1
  230. package/dist/showcase/families/overlay/showcase.js +0 -38
  231. package/dist/showcase/families/patterns/index.cjs +0 -1
  232. package/dist/showcase/families/patterns/index.d.ts +0 -2
  233. package/dist/showcase/families/patterns/index.js +0 -3
  234. package/dist/showcase/families/patterns/mock.cjs +0 -5
  235. package/dist/showcase/families/patterns/mock.d.ts +0 -2
  236. package/dist/showcase/families/patterns/mock.js +0 -40
  237. package/dist/showcase/families/patterns/showcase.cjs +0 -1
  238. package/dist/showcase/families/patterns/showcase.d.ts +0 -1
  239. package/dist/showcase/families/patterns/showcase.js +0 -38
  240. package/dist/showcase/families/types.cjs +0 -1
  241. package/dist/showcase/families/types.d.ts +0 -29
  242. package/dist/showcase/families/types.js +0 -10
  243. package/dist/showcase/families/upload/data.cjs +0 -1
  244. package/dist/showcase/families/upload/data.d.ts +0 -1
  245. package/dist/showcase/families/upload/data.js +0 -10
  246. package/dist/showcase/families/upload/index.cjs +0 -1
  247. package/dist/showcase/families/upload/index.d.ts +0 -2
  248. package/dist/showcase/families/upload/index.js +0 -3
  249. package/dist/showcase/families/upload/mock.cjs +0 -5
  250. package/dist/showcase/families/upload/mock.d.ts +0 -2
  251. package/dist/showcase/families/upload/mock.js +0 -40
  252. package/dist/showcase/families/upload/showcase.cjs +0 -1
  253. package/dist/showcase/families/upload/showcase.d.ts +0 -3
  254. package/dist/showcase/families/upload/showcase.js +0 -133
  255. package/dist/showcase/families/wizard/index.cjs +0 -1
  256. package/dist/showcase/families/wizard/index.d.ts +0 -2
  257. package/dist/showcase/families/wizard/index.js +0 -3
  258. package/dist/showcase/families/wizard/mock.cjs +0 -5
  259. package/dist/showcase/families/wizard/mock.d.ts +0 -2
  260. package/dist/showcase/families/wizard/mock.js +0 -40
  261. package/dist/showcase/families/wizard/showcase.cjs +0 -1
  262. package/dist/showcase/families/wizard/showcase.d.ts +0 -2
  263. package/dist/showcase/families/wizard/showcase.js +0 -56
  264. package/packages/cli/vendor/src/families/badge-family.ts +0 -7
  265. package/packages/cli/vendor/src/families/card-family.ts +0 -26
  266. package/packages/cli/vendor/src/families/catalog.ts +0 -125
  267. package/packages/cli/vendor/src/families/data-table-family.ts +0 -31
  268. package/packages/cli/vendor/src/families/docs-adoption.ts +0 -103
  269. package/packages/cli/vendor/src/families/docs-groups.ts +0 -248
  270. package/packages/cli/vendor/src/families/docs-queries.ts +0 -84
  271. package/packages/cli/vendor/src/families/docs-routing.ts +0 -89
  272. package/packages/cli/vendor/src/families/form-family.ts +0 -37
  273. package/packages/cli/vendor/src/families/index.ts +0 -19
  274. package/packages/cli/vendor/src/families/input-family.ts +0 -61
  275. package/packages/cli/vendor/src/families/member-metadata.ts +0 -1033
  276. package/packages/cli/vendor/src/families/member-queries.ts +0 -28
  277. package/packages/cli/vendor/src/families/member-snippet-queries.ts +0 -54
  278. package/packages/cli/vendor/src/families/member-snippets.ts +0 -1563
  279. package/packages/cli/vendor/src/families/migration-map.ts +0 -161
  280. package/packages/cli/vendor/src/families/overlay-family.ts +0 -31
  281. package/packages/cli/vendor/src/families/public-surface-rationalization.ts +0 -206
  282. package/packages/cli/vendor/src/families/queries.ts +0 -131
  283. package/packages/cli/vendor/src/families/select-family.ts +0 -33
  284. package/packages/cli/vendor/src/families/views.ts +0 -85
  285. package/packages/cli/vendor/src/showcase/families/actions/index.ts +0 -2
  286. package/packages/cli/vendor/src/showcase/families/actions/mock.ts +0 -18
  287. package/packages/cli/vendor/src/showcase/families/actions/showcase.tsx +0 -36
  288. package/packages/cli/vendor/src/showcase/families/calendar/index.ts +0 -2
  289. package/packages/cli/vendor/src/showcase/families/calendar/mock.ts +0 -18
  290. package/packages/cli/vendor/src/showcase/families/calendar/showcase.tsx +0 -33
  291. package/packages/cli/vendor/src/showcase/families/command/index.ts +0 -2
  292. package/packages/cli/vendor/src/showcase/families/command/mock.ts +0 -18
  293. package/packages/cli/vendor/src/showcase/families/command/showcase.tsx +0 -33
  294. package/packages/cli/vendor/src/showcase/families/data-table/index.ts +0 -4
  295. package/packages/cli/vendor/src/showcase/families/data-table/mock.ts +0 -42
  296. package/packages/cli/vendor/src/showcase/families/data-table/showcase.tsx +0 -507
  297. package/packages/cli/vendor/src/showcase/families/data-table/types.ts +0 -25
  298. package/packages/cli/vendor/src/showcase/families/display/data.ts +0 -11
  299. package/packages/cli/vendor/src/showcase/families/display/index.ts +0 -2
  300. package/packages/cli/vendor/src/showcase/families/display/mock.ts +0 -18
  301. package/packages/cli/vendor/src/showcase/families/display/showcase.tsx +0 -113
  302. package/packages/cli/vendor/src/showcase/families/filters/data.ts +0 -18
  303. package/packages/cli/vendor/src/showcase/families/filters/index.ts +0 -2
  304. package/packages/cli/vendor/src/showcase/families/filters/mock.ts +0 -18
  305. package/packages/cli/vendor/src/showcase/families/filters/showcase.tsx +0 -137
  306. package/packages/cli/vendor/src/showcase/families/form/data.ts +0 -37
  307. package/packages/cli/vendor/src/showcase/families/form/index.ts +0 -4
  308. package/packages/cli/vendor/src/showcase/families/form/mock.ts +0 -18
  309. package/packages/cli/vendor/src/showcase/families/form/showcase.tsx +0 -230
  310. package/packages/cli/vendor/src/showcase/families/form/types.ts +0 -10
  311. package/packages/cli/vendor/src/showcase/families/index.ts +0 -37
  312. package/packages/cli/vendor/src/showcase/families/inputs/data.ts +0 -40
  313. package/packages/cli/vendor/src/showcase/families/inputs/index.ts +0 -2
  314. package/packages/cli/vendor/src/showcase/families/inputs/mock.ts +0 -18
  315. package/packages/cli/vendor/src/showcase/families/inputs/showcase.tsx +0 -294
  316. package/packages/cli/vendor/src/showcase/families/layout/index.ts +0 -2
  317. package/packages/cli/vendor/src/showcase/families/layout/mock.ts +0 -18
  318. package/packages/cli/vendor/src/showcase/families/layout/showcase.tsx +0 -57
  319. package/packages/cli/vendor/src/showcase/families/navigation/index.ts +0 -2
  320. package/packages/cli/vendor/src/showcase/families/navigation/mock.ts +0 -18
  321. package/packages/cli/vendor/src/showcase/families/navigation/showcase.tsx +0 -31
  322. package/packages/cli/vendor/src/showcase/families/notifications/index.ts +0 -2
  323. package/packages/cli/vendor/src/showcase/families/notifications/mock.ts +0 -18
  324. package/packages/cli/vendor/src/showcase/families/notifications/showcase.tsx +0 -24
  325. package/packages/cli/vendor/src/showcase/families/overlay/index.ts +0 -2
  326. package/packages/cli/vendor/src/showcase/families/overlay/mock.ts +0 -18
  327. package/packages/cli/vendor/src/showcase/families/overlay/showcase.tsx +0 -23
  328. package/packages/cli/vendor/src/showcase/families/patterns/index.ts +0 -2
  329. package/packages/cli/vendor/src/showcase/families/patterns/mock.ts +0 -18
  330. package/packages/cli/vendor/src/showcase/families/patterns/showcase.tsx +0 -23
  331. package/packages/cli/vendor/src/showcase/families/types.ts +0 -40
  332. package/packages/cli/vendor/src/showcase/families/upload/data.ts +0 -7
  333. package/packages/cli/vendor/src/showcase/families/upload/index.ts +0 -2
  334. package/packages/cli/vendor/src/showcase/families/upload/mock.ts +0 -18
  335. package/packages/cli/vendor/src/showcase/families/upload/showcase.tsx +0 -86
  336. package/packages/cli/vendor/src/showcase/families/wizard/index.ts +0 -2
  337. package/packages/cli/vendor/src/showcase/families/wizard/mock.ts +0 -18
  338. package/packages/cli/vendor/src/showcase/families/wizard/showcase.tsx +0 -39
  339. /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"