tembro 1.0.2 → 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 (370) hide show
  1. package/README.md +2 -2
  2. package/dist/components/calendar/calendar.cjs +1 -1
  3. package/dist/components/calendar/calendar.js +3 -3
  4. package/dist/components/calendar/date-picker.cjs +1 -1
  5. package/dist/components/calendar/date-picker.js +2 -2
  6. package/dist/components/calendar/date-range-picker.cjs +1 -1
  7. package/dist/components/calendar/date-range-picker.js +2 -4
  8. package/dist/components/data-table/data-table-toolbar.cjs +1 -1
  9. package/dist/components/data-table/data-table-toolbar.js +2 -2
  10. package/dist/components/data-table/data-table.cjs +1 -1
  11. package/dist/components/data-table/data-table.js +3 -3
  12. package/dist/components/display/smart-card.d.ts +8 -8
  13. package/dist/components/inputs/combobox.cjs +1 -1
  14. package/dist/components/inputs/combobox.d.ts +5 -1
  15. package/dist/components/inputs/combobox.js +69 -59
  16. package/dist/components/inputs/simple-select.cjs +1 -1
  17. package/dist/components/inputs/simple-select.d.ts +1 -1
  18. package/dist/components/inputs/simple-select.js +5 -5
  19. package/dist/components/patterns/index.cjs +1 -1
  20. package/dist/components/patterns/index.js +4 -4
  21. package/dist/components/patterns/public.cjs +1 -1
  22. package/dist/components/patterns/public.js +4 -4
  23. package/dist/components/ui/button.cjs +1 -0
  24. package/dist/components/ui/button.d.ts +1 -0
  25. package/dist/components/ui/button.js +2 -0
  26. package/dist/components/ui/input.cjs +1 -0
  27. package/dist/components/ui/input.d.ts +1 -0
  28. package/dist/components/ui/input.js +3 -0
  29. package/dist/index.cjs +1 -1
  30. package/dist/index.d.ts +0 -1
  31. package/dist/index.js +19 -38
  32. package/dist/showcase/index.cjs +1 -1
  33. package/dist/showcase/index.d.ts +0 -1
  34. package/dist/showcase/index.js +36 -38
  35. package/dist/showcase/package-meta.cjs +1 -1
  36. package/dist/showcase/package-meta.d.ts +2 -2
  37. package/dist/showcase/package-meta.js +1 -1
  38. package/dist/showcase/premium/accordion/mock.cjs +4 -4
  39. package/dist/showcase/premium/accordion/mock.js +1 -1
  40. package/dist/showcase/{families/data-table/types.d.ts → premium/data-table-parts/data.d.ts} +4 -0
  41. package/dist/showcase/{families/data-table → premium/data-table-parts}/data.js +1 -1
  42. package/dist/showcase/premium/data-table-parts/showcase.cjs +1 -1
  43. package/dist/showcase/premium/data-table-parts/showcase.js +1 -1
  44. package/dist/showcase/site-data.cjs +1 -1
  45. package/dist/showcase/site-data.d.ts +6 -6
  46. package/dist/showcase/site-data.js +414 -451
  47. package/dist/showcase/tembro-registry.json.cjs +1 -1
  48. package/dist/showcase/tembro-registry.json.js +1 -1
  49. package/package.json +3 -14
  50. package/packages/cli/dist/index.cjs +17 -17
  51. package/packages/cli/vendor/src/components/calendar/calendar.tsx +3 -3
  52. package/packages/cli/vendor/src/components/calendar/date-picker.tsx +2 -2
  53. package/packages/cli/vendor/src/components/calendar/date-range-picker.tsx +4 -5
  54. package/packages/cli/vendor/src/components/data-table/data-table-toolbar.tsx +2 -2
  55. package/packages/cli/vendor/src/components/data-table/data-table.tsx +3 -3
  56. package/packages/cli/vendor/src/components/display/smart-card.tsx +8 -8
  57. package/packages/cli/vendor/src/components/inputs/combobox.tsx +71 -41
  58. package/packages/cli/vendor/src/components/inputs/simple-select.tsx +6 -6
  59. package/packages/cli/vendor/src/components/ui/button.tsx +2 -0
  60. package/packages/cli/vendor/src/components/ui/input.tsx +2 -0
  61. package/packages/cli/vendor/src/index.ts +3 -4
  62. package/packages/cli/vendor/src/showcase/index.ts +5 -6
  63. package/packages/cli/vendor/src/showcase/package-meta.ts +1 -1
  64. package/packages/cli/vendor/src/showcase/premium/accordion/mock.ts +4 -4
  65. package/packages/cli/vendor/src/showcase/{families/data-table → premium/data-table-parts}/data.ts +25 -1
  66. package/packages/cli/vendor/src/showcase/premium/data-table-parts/showcase.tsx +1 -2
  67. package/packages/cli/vendor/src/showcase/site-data.tsx +151 -216
  68. package/packages/cli/vendor/src/showcase/tembro-registry.json +1 -1
  69. package/registry.json +1 -1
  70. package/dist/families/badge-family.cjs +0 -1
  71. package/dist/families/badge-family.d.ts +0 -5
  72. package/dist/families/badge-family.js +0 -5
  73. package/dist/families/card-family.cjs +0 -1
  74. package/dist/families/card-family.d.ts +0 -16
  75. package/dist/families/card-family.js +0 -21
  76. package/dist/families/catalog.cjs +0 -1
  77. package/dist/families/catalog.d.ts +0 -11
  78. package/dist/families/catalog.js +0 -140
  79. package/dist/families/data-table-family.cjs +0 -1
  80. package/dist/families/data-table-family.d.ts +0 -18
  81. package/dist/families/data-table-family.js +0 -29
  82. package/dist/families/docs-adoption.cjs +0 -1
  83. package/dist/families/docs-adoption.d.ts +0 -16
  84. package/dist/families/docs-adoption.js +0 -53
  85. package/dist/families/docs-groups.cjs +0 -1
  86. package/dist/families/docs-groups.d.ts +0 -18
  87. package/dist/families/docs-groups.js +0 -262
  88. package/dist/families/docs-queries.cjs +0 -1
  89. package/dist/families/docs-queries.d.ts +0 -37
  90. package/dist/families/docs-queries.js +0 -50
  91. package/dist/families/docs-routing.cjs +0 -1
  92. package/dist/families/docs-routing.d.ts +0 -17
  93. package/dist/families/docs-routing.js +0 -49
  94. package/dist/families/form-family.cjs +0 -1
  95. package/dist/families/form-family.d.ts +0 -20
  96. package/dist/families/form-family.js +0 -35
  97. package/dist/families/index.cjs +0 -1
  98. package/dist/families/index.d.ts +0 -19
  99. package/dist/families/index.js +0 -20
  100. package/dist/families/input-family.cjs +0 -1
  101. package/dist/families/input-family.d.ts +0 -32
  102. package/dist/families/input-family.js +0 -56
  103. package/dist/families/member-metadata.cjs +0 -1
  104. package/dist/families/member-metadata.d.ts +0 -11
  105. package/dist/families/member-metadata.js +0 -1013
  106. package/dist/families/member-queries.cjs +0 -1
  107. package/dist/families/member-queries.d.ts +0 -6
  108. package/dist/families/member-queries.js +0 -14
  109. package/dist/families/member-snippet-queries.cjs +0 -1
  110. package/dist/families/member-snippet-queries.d.ts +0 -8
  111. package/dist/families/member-snippet-queries.js +0 -30
  112. package/dist/families/member-snippets.cjs +0 -484
  113. package/dist/families/member-snippets.d.ts +0 -11
  114. package/dist/families/member-snippets.js +0 -1061
  115. package/dist/families/migration-map.cjs +0 -1
  116. package/dist/families/migration-map.d.ts +0 -10
  117. package/dist/families/migration-map.js +0 -787
  118. package/dist/families/overlay-family.cjs +0 -1
  119. package/dist/families/overlay-family.d.ts +0 -22
  120. package/dist/families/overlay-family.js +0 -29
  121. package/dist/families/public-surface-rationalization.cjs +0 -1
  122. package/dist/families/public-surface-rationalization.d.ts +0 -169
  123. package/dist/families/public-surface-rationalization.js +0 -296
  124. package/dist/families/queries.cjs +0 -1
  125. package/dist/families/queries.d.ts +0 -12
  126. package/dist/families/queries.js +0 -162
  127. package/dist/families/select-family.cjs +0 -1
  128. package/dist/families/select-family.d.ts +0 -22
  129. package/dist/families/select-family.js +0 -27
  130. package/dist/families/views.cjs +0 -1
  131. package/dist/families/views.d.ts +0 -26
  132. package/dist/families/views.js +0 -45
  133. package/dist/showcase/families/actions/index.cjs +0 -1
  134. package/dist/showcase/families/actions/index.d.ts +0 -2
  135. package/dist/showcase/families/actions/index.js +0 -3
  136. package/dist/showcase/families/actions/mock.cjs +0 -5
  137. package/dist/showcase/families/actions/mock.d.ts +0 -2
  138. package/dist/showcase/families/actions/mock.js +0 -40
  139. package/dist/showcase/families/actions/showcase.cjs +0 -1
  140. package/dist/showcase/families/actions/showcase.d.ts +0 -2
  141. package/dist/showcase/families/actions/showcase.js +0 -53
  142. package/dist/showcase/families/calendar/index.cjs +0 -1
  143. package/dist/showcase/families/calendar/index.d.ts +0 -2
  144. package/dist/showcase/families/calendar/index.js +0 -3
  145. package/dist/showcase/families/calendar/mock.cjs +0 -5
  146. package/dist/showcase/families/calendar/mock.d.ts +0 -2
  147. package/dist/showcase/families/calendar/mock.js +0 -40
  148. package/dist/showcase/families/calendar/showcase.cjs +0 -1
  149. package/dist/showcase/families/calendar/showcase.d.ts +0 -2
  150. package/dist/showcase/families/calendar/showcase.js +0 -60
  151. package/dist/showcase/families/command/index.cjs +0 -1
  152. package/dist/showcase/families/command/index.d.ts +0 -2
  153. package/dist/showcase/families/command/index.js +0 -3
  154. package/dist/showcase/families/command/mock.cjs +0 -5
  155. package/dist/showcase/families/command/mock.d.ts +0 -2
  156. package/dist/showcase/families/command/mock.js +0 -40
  157. package/dist/showcase/families/command/showcase.cjs +0 -1
  158. package/dist/showcase/families/command/showcase.d.ts +0 -2
  159. package/dist/showcase/families/command/showcase.js +0 -40
  160. package/dist/showcase/families/data-table/data.d.ts +0 -5
  161. package/dist/showcase/families/data-table/index.cjs +0 -1
  162. package/dist/showcase/families/data-table/index.d.ts +0 -4
  163. package/dist/showcase/families/data-table/index.js +0 -4
  164. package/dist/showcase/families/data-table/mock.cjs +0 -24
  165. package/dist/showcase/families/data-table/mock.d.ts +0 -2
  166. package/dist/showcase/families/data-table/mock.js +0 -48
  167. package/dist/showcase/families/data-table/showcase.cjs +0 -1
  168. package/dist/showcase/families/data-table/showcase.d.ts +0 -3
  169. package/dist/showcase/families/data-table/showcase.js +0 -751
  170. package/dist/showcase/families/data-table/types.cjs +0 -1
  171. package/dist/showcase/families/data-table/types.js +0 -0
  172. package/dist/showcase/families/display/data.cjs +0 -1
  173. package/dist/showcase/families/display/data.d.ts +0 -6
  174. package/dist/showcase/families/display/data.js +0 -24
  175. package/dist/showcase/families/display/index.cjs +0 -1
  176. package/dist/showcase/families/display/index.d.ts +0 -2
  177. package/dist/showcase/families/display/index.js +0 -3
  178. package/dist/showcase/families/display/mock.cjs +0 -5
  179. package/dist/showcase/families/display/mock.d.ts +0 -2
  180. package/dist/showcase/families/display/mock.js +0 -40
  181. package/dist/showcase/families/display/showcase.cjs +0 -1
  182. package/dist/showcase/families/display/showcase.d.ts +0 -2
  183. package/dist/showcase/families/display/showcase.js +0 -201
  184. package/dist/showcase/families/filters/data.cjs +0 -1
  185. package/dist/showcase/families/filters/data.d.ts +0 -31
  186. package/dist/showcase/families/filters/data.js +0 -61
  187. package/dist/showcase/families/filters/index.cjs +0 -1
  188. package/dist/showcase/families/filters/index.d.ts +0 -2
  189. package/dist/showcase/families/filters/index.js +0 -3
  190. package/dist/showcase/families/filters/mock.cjs +0 -5
  191. package/dist/showcase/families/filters/mock.d.ts +0 -2
  192. package/dist/showcase/families/filters/mock.js +0 -40
  193. package/dist/showcase/families/filters/showcase.cjs +0 -1
  194. package/dist/showcase/families/filters/showcase.d.ts +0 -3
  195. package/dist/showcase/families/filters/showcase.js +0 -213
  196. package/dist/showcase/families/form/data.cjs +0 -1
  197. package/dist/showcase/families/form/data.d.ts +0 -22
  198. package/dist/showcase/families/form/data.js +0 -53
  199. package/dist/showcase/families/form/index.cjs +0 -1
  200. package/dist/showcase/families/form/index.d.ts +0 -4
  201. package/dist/showcase/families/form/index.js +0 -4
  202. package/dist/showcase/families/form/mock.cjs +0 -12
  203. package/dist/showcase/families/form/mock.d.ts +0 -2
  204. package/dist/showcase/families/form/mock.js +0 -40
  205. package/dist/showcase/families/form/showcase.cjs +0 -1
  206. package/dist/showcase/families/form/showcase.d.ts +0 -3
  207. package/dist/showcase/families/form/showcase.js +0 -318
  208. package/dist/showcase/families/form/types.cjs +0 -1
  209. package/dist/showcase/families/form/types.d.ts +0 -9
  210. package/dist/showcase/families/form/types.js +0 -0
  211. package/dist/showcase/families/index.cjs +0 -1
  212. package/dist/showcase/families/index.d.ts +0 -3
  213. package/dist/showcase/families/index.js +0 -96
  214. package/dist/showcase/families/inputs/data.cjs +0 -1
  215. package/dist/showcase/families/inputs/data.d.ts +0 -24
  216. package/dist/showcase/families/inputs/data.js +0 -90
  217. package/dist/showcase/families/inputs/index.cjs +0 -1
  218. package/dist/showcase/families/inputs/index.d.ts +0 -2
  219. package/dist/showcase/families/inputs/index.js +0 -3
  220. package/dist/showcase/families/inputs/mock.cjs +0 -5
  221. package/dist/showcase/families/inputs/mock.d.ts +0 -2
  222. package/dist/showcase/families/inputs/mock.js +0 -40
  223. package/dist/showcase/families/inputs/showcase.cjs +0 -1
  224. package/dist/showcase/families/inputs/showcase.d.ts +0 -3
  225. package/dist/showcase/families/inputs/showcase.js +0 -404
  226. package/dist/showcase/families/layout/index.cjs +0 -1
  227. package/dist/showcase/families/layout/index.d.ts +0 -2
  228. package/dist/showcase/families/layout/index.js +0 -3
  229. package/dist/showcase/families/layout/mock.cjs +0 -5
  230. package/dist/showcase/families/layout/mock.d.ts +0 -2
  231. package/dist/showcase/families/layout/mock.js +0 -40
  232. package/dist/showcase/families/layout/showcase.cjs +0 -1
  233. package/dist/showcase/families/layout/showcase.d.ts +0 -2
  234. package/dist/showcase/families/layout/showcase.js +0 -88
  235. package/dist/showcase/families/navigation/index.cjs +0 -1
  236. package/dist/showcase/families/navigation/index.d.ts +0 -2
  237. package/dist/showcase/families/navigation/index.js +0 -3
  238. package/dist/showcase/families/navigation/mock.cjs +0 -5
  239. package/dist/showcase/families/navigation/mock.d.ts +0 -2
  240. package/dist/showcase/families/navigation/mock.js +0 -40
  241. package/dist/showcase/families/navigation/showcase.cjs +0 -1
  242. package/dist/showcase/families/navigation/showcase.d.ts +0 -2
  243. package/dist/showcase/families/navigation/showcase.js +0 -49
  244. package/dist/showcase/families/notifications/index.cjs +0 -1
  245. package/dist/showcase/families/notifications/index.d.ts +0 -2
  246. package/dist/showcase/families/notifications/index.js +0 -3
  247. package/dist/showcase/families/notifications/mock.cjs +0 -5
  248. package/dist/showcase/families/notifications/mock.d.ts +0 -2
  249. package/dist/showcase/families/notifications/mock.js +0 -40
  250. package/dist/showcase/families/notifications/showcase.cjs +0 -1
  251. package/dist/showcase/families/notifications/showcase.d.ts +0 -1
  252. package/dist/showcase/families/notifications/showcase.js +0 -50
  253. package/dist/showcase/families/overlay/index.cjs +0 -1
  254. package/dist/showcase/families/overlay/index.d.ts +0 -2
  255. package/dist/showcase/families/overlay/index.js +0 -3
  256. package/dist/showcase/families/overlay/mock.cjs +0 -5
  257. package/dist/showcase/families/overlay/mock.d.ts +0 -2
  258. package/dist/showcase/families/overlay/mock.js +0 -40
  259. package/dist/showcase/families/overlay/showcase.cjs +0 -1
  260. package/dist/showcase/families/overlay/showcase.d.ts +0 -1
  261. package/dist/showcase/families/overlay/showcase.js +0 -38
  262. package/dist/showcase/families/patterns/index.cjs +0 -1
  263. package/dist/showcase/families/patterns/index.d.ts +0 -2
  264. package/dist/showcase/families/patterns/index.js +0 -3
  265. package/dist/showcase/families/patterns/mock.cjs +0 -5
  266. package/dist/showcase/families/patterns/mock.d.ts +0 -2
  267. package/dist/showcase/families/patterns/mock.js +0 -40
  268. package/dist/showcase/families/patterns/showcase.cjs +0 -1
  269. package/dist/showcase/families/patterns/showcase.d.ts +0 -1
  270. package/dist/showcase/families/patterns/showcase.js +0 -38
  271. package/dist/showcase/families/types.cjs +0 -1
  272. package/dist/showcase/families/types.d.ts +0 -29
  273. package/dist/showcase/families/types.js +0 -10
  274. package/dist/showcase/families/upload/data.cjs +0 -1
  275. package/dist/showcase/families/upload/data.d.ts +0 -1
  276. package/dist/showcase/families/upload/data.js +0 -10
  277. package/dist/showcase/families/upload/index.cjs +0 -1
  278. package/dist/showcase/families/upload/index.d.ts +0 -2
  279. package/dist/showcase/families/upload/index.js +0 -3
  280. package/dist/showcase/families/upload/mock.cjs +0 -5
  281. package/dist/showcase/families/upload/mock.d.ts +0 -2
  282. package/dist/showcase/families/upload/mock.js +0 -40
  283. package/dist/showcase/families/upload/showcase.cjs +0 -1
  284. package/dist/showcase/families/upload/showcase.d.ts +0 -3
  285. package/dist/showcase/families/upload/showcase.js +0 -133
  286. package/dist/showcase/families/wizard/index.cjs +0 -1
  287. package/dist/showcase/families/wizard/index.d.ts +0 -2
  288. package/dist/showcase/families/wizard/index.js +0 -3
  289. package/dist/showcase/families/wizard/mock.cjs +0 -5
  290. package/dist/showcase/families/wizard/mock.d.ts +0 -2
  291. package/dist/showcase/families/wizard/mock.js +0 -40
  292. package/dist/showcase/families/wizard/showcase.cjs +0 -1
  293. package/dist/showcase/families/wizard/showcase.d.ts +0 -2
  294. package/dist/showcase/families/wizard/showcase.js +0 -56
  295. package/packages/cli/vendor/src/families/badge-family.ts +0 -7
  296. package/packages/cli/vendor/src/families/card-family.ts +0 -26
  297. package/packages/cli/vendor/src/families/catalog.ts +0 -125
  298. package/packages/cli/vendor/src/families/data-table-family.ts +0 -31
  299. package/packages/cli/vendor/src/families/docs-adoption.ts +0 -103
  300. package/packages/cli/vendor/src/families/docs-groups.ts +0 -248
  301. package/packages/cli/vendor/src/families/docs-queries.ts +0 -84
  302. package/packages/cli/vendor/src/families/docs-routing.ts +0 -89
  303. package/packages/cli/vendor/src/families/form-family.ts +0 -37
  304. package/packages/cli/vendor/src/families/index.ts +0 -19
  305. package/packages/cli/vendor/src/families/input-family.ts +0 -61
  306. package/packages/cli/vendor/src/families/member-metadata.ts +0 -1033
  307. package/packages/cli/vendor/src/families/member-queries.ts +0 -28
  308. package/packages/cli/vendor/src/families/member-snippet-queries.ts +0 -54
  309. package/packages/cli/vendor/src/families/member-snippets.ts +0 -1563
  310. package/packages/cli/vendor/src/families/migration-map.ts +0 -161
  311. package/packages/cli/vendor/src/families/overlay-family.ts +0 -31
  312. package/packages/cli/vendor/src/families/public-surface-rationalization.ts +0 -206
  313. package/packages/cli/vendor/src/families/queries.ts +0 -131
  314. package/packages/cli/vendor/src/families/select-family.ts +0 -33
  315. package/packages/cli/vendor/src/families/views.ts +0 -85
  316. package/packages/cli/vendor/src/showcase/families/actions/index.ts +0 -2
  317. package/packages/cli/vendor/src/showcase/families/actions/mock.ts +0 -18
  318. package/packages/cli/vendor/src/showcase/families/actions/showcase.tsx +0 -36
  319. package/packages/cli/vendor/src/showcase/families/calendar/index.ts +0 -2
  320. package/packages/cli/vendor/src/showcase/families/calendar/mock.ts +0 -18
  321. package/packages/cli/vendor/src/showcase/families/calendar/showcase.tsx +0 -33
  322. package/packages/cli/vendor/src/showcase/families/command/index.ts +0 -2
  323. package/packages/cli/vendor/src/showcase/families/command/mock.ts +0 -18
  324. package/packages/cli/vendor/src/showcase/families/command/showcase.tsx +0 -33
  325. package/packages/cli/vendor/src/showcase/families/data-table/index.ts +0 -4
  326. package/packages/cli/vendor/src/showcase/families/data-table/mock.ts +0 -42
  327. package/packages/cli/vendor/src/showcase/families/data-table/showcase.tsx +0 -507
  328. package/packages/cli/vendor/src/showcase/families/data-table/types.ts +0 -25
  329. package/packages/cli/vendor/src/showcase/families/display/data.ts +0 -11
  330. package/packages/cli/vendor/src/showcase/families/display/index.ts +0 -2
  331. package/packages/cli/vendor/src/showcase/families/display/mock.ts +0 -18
  332. package/packages/cli/vendor/src/showcase/families/display/showcase.tsx +0 -113
  333. package/packages/cli/vendor/src/showcase/families/filters/data.ts +0 -18
  334. package/packages/cli/vendor/src/showcase/families/filters/index.ts +0 -2
  335. package/packages/cli/vendor/src/showcase/families/filters/mock.ts +0 -18
  336. package/packages/cli/vendor/src/showcase/families/filters/showcase.tsx +0 -137
  337. package/packages/cli/vendor/src/showcase/families/form/data.ts +0 -37
  338. package/packages/cli/vendor/src/showcase/families/form/index.ts +0 -4
  339. package/packages/cli/vendor/src/showcase/families/form/mock.ts +0 -18
  340. package/packages/cli/vendor/src/showcase/families/form/showcase.tsx +0 -230
  341. package/packages/cli/vendor/src/showcase/families/form/types.ts +0 -10
  342. package/packages/cli/vendor/src/showcase/families/index.ts +0 -37
  343. package/packages/cli/vendor/src/showcase/families/inputs/data.ts +0 -40
  344. package/packages/cli/vendor/src/showcase/families/inputs/index.ts +0 -2
  345. package/packages/cli/vendor/src/showcase/families/inputs/mock.ts +0 -18
  346. package/packages/cli/vendor/src/showcase/families/inputs/showcase.tsx +0 -294
  347. package/packages/cli/vendor/src/showcase/families/layout/index.ts +0 -2
  348. package/packages/cli/vendor/src/showcase/families/layout/mock.ts +0 -18
  349. package/packages/cli/vendor/src/showcase/families/layout/showcase.tsx +0 -57
  350. package/packages/cli/vendor/src/showcase/families/navigation/index.ts +0 -2
  351. package/packages/cli/vendor/src/showcase/families/navigation/mock.ts +0 -18
  352. package/packages/cli/vendor/src/showcase/families/navigation/showcase.tsx +0 -31
  353. package/packages/cli/vendor/src/showcase/families/notifications/index.ts +0 -2
  354. package/packages/cli/vendor/src/showcase/families/notifications/mock.ts +0 -18
  355. package/packages/cli/vendor/src/showcase/families/notifications/showcase.tsx +0 -24
  356. package/packages/cli/vendor/src/showcase/families/overlay/index.ts +0 -2
  357. package/packages/cli/vendor/src/showcase/families/overlay/mock.ts +0 -18
  358. package/packages/cli/vendor/src/showcase/families/overlay/showcase.tsx +0 -23
  359. package/packages/cli/vendor/src/showcase/families/patterns/index.ts +0 -2
  360. package/packages/cli/vendor/src/showcase/families/patterns/mock.ts +0 -18
  361. package/packages/cli/vendor/src/showcase/families/patterns/showcase.tsx +0 -23
  362. package/packages/cli/vendor/src/showcase/families/types.ts +0 -40
  363. package/packages/cli/vendor/src/showcase/families/upload/data.ts +0 -7
  364. package/packages/cli/vendor/src/showcase/families/upload/index.ts +0 -2
  365. package/packages/cli/vendor/src/showcase/families/upload/mock.ts +0 -18
  366. package/packages/cli/vendor/src/showcase/families/upload/showcase.tsx +0 -86
  367. package/packages/cli/vendor/src/showcase/families/wizard/index.ts +0 -2
  368. package/packages/cli/vendor/src/showcase/families/wizard/mock.ts +0 -18
  369. package/packages/cli/vendor/src/showcase/families/wizard/showcase.tsx +0 -39
  370. /package/dist/showcase/{families/data-table → premium/data-table-parts}/data.cjs +0 -0
@@ -1,40 +0,0 @@
1
- export type WorkspaceOption = {
2
- value: string
3
- label: string
4
- description: string
5
- data: {
6
- team: string
7
- status: "Live" | "Draft" | "Review"
8
- }
9
- }
10
-
11
- export const workspaceOptions: WorkspaceOption[] = [
12
- { value: "acme-dashboard", label: "Acme Dashboard", description: "Core analytics workspace", data: { team: "Growth", status: "Live" } },
13
- { value: "crm-workspace", label: "CRM Workspace", description: "Deals and pipeline control", data: { team: "Sales", status: "Review" } },
14
- { value: "store-command", label: "Store Command", description: "Commerce operations shell", data: { team: "Commerce", status: "Live" } },
15
- { value: "finance-dock", label: "Finance Dock", description: "Billing and payout center", data: { team: "Finance", status: "Draft" } },
16
- { value: "creator-hub", label: "Creator Hub", description: "Content and campaign surface", data: { team: "Marketing", status: "Live" } },
17
- { value: "ops-center", label: "Ops Center", description: "Internal service operations", data: { team: "Operations", status: "Review" } },
18
- ]
19
-
20
- export const defaultWorkspaceGroups = [
21
- {
22
- label: "Pinned",
23
- options: workspaceOptions.slice(0, 2),
24
- },
25
- {
26
- label: "All workspaces",
27
- options: workspaceOptions.slice(2),
28
- },
29
- ]
30
-
31
- export const environmentOptions = [
32
- { value: "production", label: "Production", description: "Public customer-facing traffic", keywords: ["prod", "live"] },
33
- { value: "staging", label: "Staging", description: "Pre-release QA and review", keywords: ["preview", "qa"] },
34
- { value: "development", label: "Development", description: "Internal local build flow", keywords: ["dev", "sandbox"] },
35
- ]
36
-
37
- export const densityOptions = [
38
- { value: "comfortable", label: "Comfortable" },
39
- { value: "compact", label: "Compact" },
40
- ]
@@ -1,2 +0,0 @@
1
- export { InputsFamilyShowcase } from "./showcase"
2
- export { inputsFamilyMock } from "./mock"
@@ -1,18 +0,0 @@
1
- import type { FamilyDemoMock } from "../types"
2
-
3
- export const inputsFamilyMock: FamilyDemoMock = {
4
- code: `import { AsyncSelect, AsyncMultiSelect } from "tembro"\n\nexport function Example() {\n return <AsyncSelect loadOptions={loadOptions} />\n}`,
5
- highlights: ["AsyncSelect hydration", "AsyncMultiSelect limits", "Create option flow", "Grouped remote results"],
6
- scenarios: [
7
- { title: "Workspace switching", description: "Load large remote workspace lists without blocking the form shell." },
8
- { title: "Linked module setup", description: "Attach multiple modules with max selection and select-all rules." },
9
- { title: "Editable resource forms", description: "Hydrate saved values back into async inputs on edit routes." },
10
- ],
11
- metrics: [
12
- { label: "Exports", value: "14" },
13
- { label: "Async flows", value: "6+" },
14
- { label: "Status", value: "Stable" },
15
- ],
16
- }
17
-
18
-
@@ -1,294 +0,0 @@
1
- import * as React from "react"
2
-
3
- import {
4
- AsyncMultiSelect,
5
- AsyncSelect,
6
- Badge,
7
- Button,
8
- SimpleSelect,
9
- Textarea,
10
- } from "@/index"
11
-
12
- import type { FamilyDemoProps } from "../types"
13
-
14
- import {
15
- defaultWorkspaceGroups,
16
- densityOptions,
17
- environmentOptions,
18
- workspaceOptions,
19
- type WorkspaceOption,
20
- } from "./data"
21
-
22
- export function InputsFamilyShowcase({ state, setState }: FamilyDemoProps) {
23
- const [mode, setMode] = React.useState<"default" | "error" | "strict">("default")
24
- const [singleValue, setSingleValue] = React.useState<string | undefined>("acme-dashboard")
25
- const [singleOption, setSingleOption] = React.useState<WorkspaceOption | null>(workspaceOptions[0])
26
- const [multiValue, setMultiValue] = React.useState<string[]>(["crm-workspace", "store-command"])
27
- const [multiOptions, setMultiOptions] = React.useState<WorkspaceOption[]>([workspaceOptions[1], workspaceOptions[2]])
28
- const [environment, setEnvironment] = React.useState<string | undefined>("production")
29
-
30
- const loadOptions = React.useCallback(
31
- async (search: string) => {
32
- await new Promise((resolve) => window.setTimeout(resolve, 320))
33
-
34
- if (mode === "error") {
35
- throw new Error("Failed to load")
36
- }
37
-
38
- const query = search.trim().toLowerCase()
39
- const filtered = workspaceOptions.filter((item) =>
40
- [item.label, item.description, item.data.team, item.data.status].join(" ").toLowerCase().includes(query)
41
- )
42
-
43
- if (!query) return defaultWorkspaceGroups
44
- return [{ label: "Search results", options: filtered }]
45
- },
46
- [mode]
47
- )
48
-
49
- const loadSelectedOption = React.useCallback(async (value: string) => {
50
- await new Promise((resolve) => window.setTimeout(resolve, 120))
51
- return workspaceOptions.find((item) => item.value === value) ?? null
52
- }, [])
53
-
54
- const loadSelectedOptions = React.useCallback(async (values: string[]) => {
55
- await new Promise((resolve) => window.setTimeout(resolve, 120))
56
- return workspaceOptions.filter((item) => values.includes(item.value))
57
- }, [])
58
-
59
- const activeSingle = singleOption ?? workspaceOptions.find((item) => item.value === singleValue) ?? null
60
-
61
- return (
62
- <div className="space-y-4">
63
- <div className="rounded-[22px] border border-[color:var(--aui-surface-border)] bg-[color:var(--aui-surface)] p-4">
64
- <div className="flex flex-col gap-4 xl:flex-row xl:items-start xl:justify-between">
65
- <div className="space-y-3">
66
- <div className="flex flex-wrap gap-2">
67
- <Badge variant="outline">AsyncSelect</Badge>
68
- <Badge variant="outline">AsyncMultiSelect</Badge>
69
- <Badge variant="outline">SimpleSelect</Badge>
70
- <Badge variant="outline">{mode === "strict" ? "Min search 2" : mode === "error" ? "Error mode" : "Default mode"}</Badge>
71
- </div>
72
- <div>
73
- <p className="aui-text-strong text-sm font-medium">Select family coverage</p>
74
- <p className="aui-text-muted mt-1 text-sm leading-6">
75
- Static select, async search, hydrated edit mode, create flow, multiselect limits, clear actions and selection summaries all stay visible here.
76
- </p>
77
- </div>
78
- </div>
79
- <div className="flex flex-wrap gap-2">
80
- <Button variant={mode === "default" ? "default" : "outline"} size="sm" onClick={() => setMode("default")}>Default</Button>
81
- <Button variant={mode === "strict" ? "default" : "outline"} size="sm" onClick={() => setMode("strict")}>Strict</Button>
82
- <Button variant={mode === "error" ? "default" : "outline"} size="sm" onClick={() => setMode("error")}>Error</Button>
83
- <Button
84
- variant="outline"
85
- size="sm"
86
- onClick={() => {
87
- setMode("default")
88
- setSingleValue("acme-dashboard")
89
- setSingleOption(workspaceOptions[0])
90
- setMultiValue(["crm-workspace", "store-command"])
91
- setMultiOptions([workspaceOptions[1], workspaceOptions[2]])
92
- setEnvironment("production")
93
- }}
94
- >
95
- Reset
96
- </Button>
97
- </div>
98
- </div>
99
- </div>
100
-
101
- <div className="grid gap-4 xl:grid-cols-[1.12fr_0.88fr]">
102
- <div className="space-y-4">
103
- <div className="grid gap-4 xl:grid-cols-2">
104
- <div className="rounded-[20px] border border-[color:var(--aui-surface-border)] bg-[color:var(--aui-surface)] p-4">
105
- <p className="aui-text-strong text-sm font-medium">Simple select</p>
106
- <p className="aui-text-muted mt-1 text-sm leading-6">Static option set with search and clear action for lightweight forms.</p>
107
- <div className="mt-4">
108
- <SimpleSelect
109
- value={environment}
110
- onValueChange={(value) => {
111
- setEnvironment(value)
112
- setState({ notes: `${value ?? "No environment"} selected for deploy routing.` })
113
- }}
114
- options={environmentOptions}
115
- placeholder="Choose environment"
116
- searchable
117
- clearable
118
- />
119
- </div>
120
- </div>
121
-
122
- <div className="rounded-[20px] border border-[color:var(--aui-surface-border)] bg-[color:var(--aui-surface)] p-4">
123
- <p className="aui-text-strong text-sm font-medium">Single async select</p>
124
- <p className="aui-text-muted mt-1 text-sm leading-6">Hydrate selected value, search grouped results and create custom workspace.</p>
125
- <div className="mt-4">
126
- <AsyncSelect<string, WorkspaceOption["data"], WorkspaceOption>
127
- value={singleValue}
128
- selectedOption={singleOption}
129
- onValueChange={(value, option) => {
130
- setSingleValue(value)
131
- setSingleOption(option ?? null)
132
- setState({ notes: `${option?.label ?? "Selection cleared"} connected to downstream workspace flow.` })
133
- }}
134
- loadOptions={loadOptions}
135
- loadSelectedOption={loadSelectedOption}
136
- defaultOptions={defaultWorkspaceGroups}
137
- minSearchLength={mode === "strict" ? 2 : 0}
138
- cacheOptions
139
- clearable
140
- labels={{
141
- placeholder: "Select workspace",
142
- searchPlaceholder: "Search workspaces...",
143
- loading: "Loading workspaces...",
144
- error: "Could not load workspaces",
145
- empty: "No workspace found",
146
- minSearchLength: (length) => `Type at least ${length} characters`,
147
- }}
148
- renderValue={(option) => (
149
- <span className="inline-flex min-w-0 flex-col text-left">
150
- <span className="truncate">{option.label}</span>
151
- <span className="aui-text-muted truncate text-xs">{option.data.team}</span>
152
- </span>
153
- )}
154
- renderOption={(option, optionState) => (
155
- <span className="flex min-w-0 items-start justify-between gap-3">
156
- <span className="min-w-0">
157
- <span className="block truncate font-medium">{option.label}</span>
158
- <span className="aui-text-muted block truncate text-xs">{option.description}</span>
159
- </span>
160
- <span className={optionState.selected ? "rounded-full aui-surface-strong px-2 py-0.5 text-[11px]" : "rounded-full bg-[color:var(--aui-page-bg-alt)] px-2 py-0.5 text-[11px] aui-text-strong"}>
161
- {option.data.status}
162
- </span>
163
- </span>
164
- )}
165
- onCreateOption={(search) => ({
166
- value: search.trim().toLowerCase().replace(/\s+/g, "-"),
167
- label: search.trim(),
168
- description: "Created from the current route",
169
- data: { team: "Custom", status: "Draft" },
170
- })}
171
- createOptionLabel={(search) => `Create workspace "${search}"`}
172
- />
173
- </div>
174
- </div>
175
- </div>
176
-
177
- <div className="rounded-[20px] border border-[color:var(--aui-surface-border)] bg-[color:var(--aui-surface)] p-4">
178
- <div className="flex flex-col gap-3 lg:flex-row lg:items-start lg:justify-between">
179
- <div>
180
- <p className="aui-text-strong text-sm font-medium">Async multi select</p>
181
- <p className="aui-text-muted mt-1 text-sm leading-6">Select all visible options, cap selection count and keep tag removal independent from trigger open state.</p>
182
- </div>
183
- <div className="flex flex-wrap gap-2">
184
- <Badge variant="outline">{multiValue.length} linked</Badge>
185
- <Badge variant="outline">Max 3</Badge>
186
- <Badge variant="outline">Select visible</Badge>
187
- </div>
188
- </div>
189
- <div className="mt-4">
190
- <AsyncMultiSelect<string, WorkspaceOption["data"], WorkspaceOption>
191
- value={multiValue}
192
- selectedOptions={multiOptions}
193
- onValueChange={(value, options) => {
194
- setMultiValue(value)
195
- setMultiOptions(options)
196
- setState({ notes: `${options.length} linked modules attached to the workspace form.` })
197
- }}
198
- loadOptions={loadOptions}
199
- loadSelectedOptions={loadSelectedOptions}
200
- defaultOptions={defaultWorkspaceGroups}
201
- minSearchLength={mode === "strict" ? 2 : 0}
202
- maxSelected={3}
203
- showSelectAll
204
- clearable
205
- labels={{
206
- placeholder: "Attach modules",
207
- searchPlaceholder: "Search modules...",
208
- loading: "Loading modules...",
209
- error: "Could not load modules",
210
- empty: "No module found",
211
- clearAll: "Clear all",
212
- selectAll: "Select visible",
213
- selectedCount: (count) => `${count} selected`,
214
- maxSelected: (count) => `Maximum ${count} modules`,
215
- minSearchLength: (length) => `Type at least ${length} characters`,
216
- }}
217
- renderOption={(option) => (
218
- <span className="flex min-w-0 items-start justify-between gap-3">
219
- <span className="min-w-0">
220
- <span className="block truncate font-medium">{option.label}</span>
221
- <span className="aui-text-muted block truncate text-xs">{option.data.team}</span>
222
- </span>
223
- <span className="aui-text-muted text-[11px]">{option.data.status}</span>
224
- </span>
225
- )}
226
- />
227
- </div>
228
- </div>
229
-
230
- <div className="grid gap-4 md:grid-cols-3">
231
- {[
232
- {
233
- title: "Row-safe clear",
234
- body: "Clear icons and tag remove actions stay isolated from the parent trigger or row click surface.",
235
- },
236
- {
237
- title: "Hydrated edit mode",
238
- body: "Selected values can be restored from remote data without forcing the full option list to preload.",
239
- },
240
- {
241
- title: "Large option sets",
242
- body: "Use async search when a plain select would overload the route or the user needs remote filtering.",
243
- },
244
- ].map((item) => (
245
- <div key={item.title} className="rounded-[20px] border border-[color:var(--aui-surface-border)] bg-[color:var(--aui-page-bg-alt)] px-4 py-3">
246
- <p className="aui-text-strong text-sm font-medium">{item.title}</p>
247
- <p className="aui-text-subtle mt-2 text-sm leading-6">{item.body}</p>
248
- </div>
249
- ))}
250
- </div>
251
- </div>
252
-
253
- <div className="space-y-4 rounded-[22px] border border-[color:var(--aui-surface-border)] bg-[color:var(--aui-surface)] p-4">
254
- <Textarea value={state.notes} onChange={(event: React.ChangeEvent<HTMLTextAreaElement>) => setState({ notes: event.target.value })} className="min-h-24" />
255
- <div className="grid gap-3 md:grid-cols-2 xl:grid-cols-1">
256
- <div className="rounded-[20px] border border-[color:var(--aui-surface-border)] bg-[color:var(--aui-page-bg-alt)] p-4">
257
- <p className="aui-text-muted text-sm">Mode</p>
258
- <p className="aui-text-strong mt-2 text-lg font-semibold">{mode}</p>
259
- <p className="aui-text-strong mt-2 text-sm">
260
- {mode === "error" ? "Forces renderError state." : mode === "strict" ? "Requires min search before loading." : "Immediate async search with grouped defaults."}
261
- </p>
262
- </div>
263
- <div className="rounded-[20px] border border-[color:var(--aui-surface-border)] bg-[color:var(--aui-page-bg-alt)] p-4">
264
- <p className="aui-text-muted text-sm">Selected workspace</p>
265
- <p className="aui-text-strong mt-2 text-lg font-semibold">{activeSingle?.label ?? "Nothing selected"}</p>
266
- <p className="aui-text-subtle mt-2 text-sm">{activeSingle?.description ?? "Choose a workspace to hydrate its shell."}</p>
267
- </div>
268
- <div className="rounded-[20px] border border-[color:var(--aui-surface-border)] bg-[color:var(--aui-page-bg-alt)] p-4">
269
- <p className="aui-text-muted text-sm">Linked modules</p>
270
- <p className="aui-text-strong mt-2 text-lg font-semibold">{multiValue.length} attached</p>
271
- <p className="aui-text-subtle mt-2 text-sm">Tags, clear all and select visible stay synchronized with controlled value state.</p>
272
- </div>
273
- <div className="rounded-[20px] border border-[color:var(--aui-surface-border)] bg-[color:var(--aui-page-bg-alt)] p-4">
274
- <p className="aui-text-muted text-sm">Environment</p>
275
- <p className="aui-text-strong mt-2 text-lg font-semibold">{environmentOptions.find((item) => item.value === environment)?.label ?? "Not selected"}</p>
276
- <p className="aui-text-subtle mt-2 text-sm">SimpleSelect covers the static branch of the same select family.</p>
277
- </div>
278
- </div>
279
- <div className="flex flex-wrap gap-2">
280
- {["grouped", "hydration", "create-option", "multi-select", "clearable", "searchable"].map((tag) => (
281
- <Badge key={tag} variant="outline">{tag}</Badge>
282
- ))}
283
- </div>
284
- <SimpleSelect
285
- value={state.density}
286
- onValueChange={(value) => setState({ density: (value as FamilyDemoProps["state"]["density"] | undefined) ?? "comfortable" })}
287
- options={densityOptions}
288
- placeholder="Preview density"
289
- />
290
- </div>
291
- </div>
292
- </div>
293
- )
294
- }
@@ -1,2 +0,0 @@
1
- export { LayoutFamilyShowcase } from "./showcase"
2
- export { layoutFamilyMock } from "./mock"
@@ -1,18 +0,0 @@
1
- import type { FamilyDemoMock } from "../types"
2
-
3
- export const layoutFamilyMock: FamilyDemoMock = {
4
- code: `import { AppShell, AppHeader, AppSidebar, PageHeader, StatCard } from "tembro"\n\nexport function Example() {\n return <AppShell />\n}`,
5
- highlights: ["App shell composition", "Sidebar navigation", "Page headers", "Dashboard stat surfaces"],
6
- scenarios: [
7
- { title: "Admin workspace", description: "Combine shell, sidebar and stat cards into a dense admin product." },
8
- { title: "Analytics overview", description: "Use cards and page headers to structure KPI-heavy screens." },
9
- { title: "Nested navigation", description: "Keep route context visible with breadcrumbs and section headers." },
10
- ],
11
- metrics: [
12
- { label: "Exports", value: "8" },
13
- { label: "Layouts", value: "3" },
14
- { label: "Status", value: "Stable" },
15
- ],
16
- }
17
-
18
-
@@ -1,57 +0,0 @@
1
- import type { ChangeEvent } from "react"
2
-
3
- import { Badge, Button, Input } from "@/index"
4
-
5
- import type { FamilyDemoProps } from "../types"
6
-
7
- export function LayoutFamilyShowcase({ state, setState }: FamilyDemoProps) {
8
- return (
9
- <div className="grid gap-4 xl:grid-cols-[0.24fr_1fr]">
10
- <div className="rounded-[22px] border border-[color:var(--aui-surface-border)] bg-[color:var(--aui-surface-muted)] p-4">
11
- {["Overview", "Analytics", "Customers", "Orders", "Settings"].map((item, index) => (
12
- <div key={item} className={`mb-2 rounded-xl px-3 py-2.5 text-sm ${index === 0 ? "aui-surface-strong" : "bg-[color:var(--aui-surface)] aui-text-muted"}`}>
13
- {item}
14
- </div>
15
- ))}
16
- </div>
17
- <div className="space-y-4">
18
- <div className="flex flex-col gap-4 rounded-[22px] border border-[color:var(--aui-surface-border)] bg-[color:var(--aui-surface)] p-4 md:flex-row md:items-center md:justify-between">
19
- <div>
20
- <p className="text-2xl font-semibold tracking-tight">Revenue overview</p>
21
- <p className="aui-text-muted text-sm">Structured layout with reusable surface hierarchy.</p>
22
- </div>
23
- <div className="flex gap-3">
24
- <Input value={state.search} onChange={(event: ChangeEvent<HTMLInputElement>) => setState({ search: event.target.value })} placeholder="Search workspace..." className="w-48" />
25
- <Button>New report</Button>
26
- </div>
27
- </div>
28
- <div className="grid gap-4 md:grid-cols-3">
29
- {[
30
- ["Revenue", "$24,780"],
31
- ["Active users", "18,390"],
32
- ["Conversion", "6.3%"],
33
- ].map(([label, value]) => (
34
- <div key={label} className="rounded-[22px] border border-[color:var(--aui-surface-border)] bg-[color:var(--aui-surface)] p-4">
35
- <p className="aui-text-muted text-sm">{label}</p>
36
- <p className="mt-2 text-3xl font-semibold tracking-tight">{value}</p>
37
- <Badge className="mt-3 rounded-full bg-emerald-50 text-emerald-700 hover:bg-emerald-50">Live</Badge>
38
- </div>
39
- ))}
40
- </div>
41
- <div className="grid gap-4 md:grid-cols-[1fr_0.38fr]">
42
- <div className="h-48 rounded-[22px] border border-[color:var(--aui-surface-border)] bg-[linear-gradient(180deg,rgba(59,130,246,0.12),transparent),radial-gradient(circle_at_bottom_left,rgba(34,197,94,0.18),transparent_40%)]" />
43
- <div className="rounded-[22px] border border-[color:var(--aui-surface-border)] bg-[color:var(--aui-surface)] p-4">
44
- <p className="font-medium">Recent updates</p>
45
- <div className="aui-text-muted mt-4 space-y-3 text-sm">
46
- <div>Dashboard tokens synced</div>
47
- <div>Sidebar nav refreshed</div>
48
- <div>Header metrics updated</div>
49
- </div>
50
- </div>
51
- </div>
52
- </div>
53
- </div>
54
- )
55
- }
56
-
57
-
@@ -1,2 +0,0 @@
1
- export { NavigationFamilyShowcase } from "./showcase"
2
- export { navigationFamilyMock } from "./mock"
@@ -1,18 +0,0 @@
1
- import type { FamilyDemoMock } from "../types"
2
-
3
- export const navigationFamilyMock: FamilyDemoMock = {
4
- code: `import { Pagination, PageTabs, StepperTabs } from "tembro"\n\nexport function Example() {\n return <Pagination />\n}`,
5
- highlights: ["Pagination controls", "Page tabs", "Stepper tabs", "Route-aware segmentation"],
6
- scenarios: [
7
- { title: "Paged reports", description: "Move through dense result sets with explicit page state." },
8
- { title: "Section tabs", description: "Segment detail pages into clear content groups." },
9
- { title: "Stepper flow", description: "Represent ordered multi-stage progress in navigation." },
10
- ],
11
- metrics: [
12
- { label: "Exports", value: "3" },
13
- { label: "Navigation modes", value: "3" },
14
- { label: "Status", value: "Stable" },
15
- ],
16
- }
17
-
18
-
@@ -1,31 +0,0 @@
1
- import { Button } from "@/index"
2
-
3
- import type { FamilyDemoProps } from "../types"
4
-
5
- export function NavigationFamilyShowcase({ state, setState }: FamilyDemoProps) {
6
- const pages = [1, 2, 3, 8]
7
-
8
- return (
9
- <div className="space-y-4">
10
- <div className="flex flex-wrap gap-3">
11
- {["Overview", "Analytics", "Reports"].map((item, index) => (
12
- <button key={item} className={`rounded-2xl border px-5 py-3 text-sm ${index === 0 ? "aui-surface-strong border-[color:var(--aui-surface-strong)]" : "aui-text-muted border-[color:var(--aui-surface-border)] bg-[color:var(--aui-surface)]"}`}>
13
- {item}
14
- </button>
15
- ))}
16
- </div>
17
- <div className="flex items-center justify-between rounded-[22px] border border-[color:var(--aui-surface-border)] bg-[color:var(--aui-surface)] px-4 py-3">
18
- <Button variant="outline" size="sm" onClick={() => setState({ step: Math.max(1, state.step - 1) })}>Prev</Button>
19
- <div className="flex gap-2">
20
- {pages.map((page) => (
21
- <button key={page} onClick={() => setState({ step: page === 8 ? 4 : page })} className={`rounded-xl border px-4 py-2 text-sm ${state.step === (page === 8 ? 4 : page) ? "aui-surface-strong border-[color:var(--aui-surface-strong)]" : "aui-text-muted border-[color:var(--aui-surface-border)]"}`}>
22
- {page}
23
- </button>
24
- ))}
25
- </div>
26
- <Button size="sm" onClick={() => setState({ step: Math.min(4, state.step + 1) })}>Next</Button>
27
- </div>
28
- </div>
29
- )
30
- }
31
-
@@ -1,2 +0,0 @@
1
- export { NotificationsFamilyShowcase } from "./showcase"
2
- export { notificationsFamilyMock } from "./mock"
@@ -1,18 +0,0 @@
1
- import type { FamilyDemoMock } from "../types"
2
-
3
- export const notificationsFamilyMock: FamilyDemoMock = {
4
- code: `import { Toast } from "tembro"\n\nexport function Example() {\n return <Toast />\n}`,
5
- highlights: ["Toast messages", "Transient feedback", "Success and warning states", "Async completion"],
6
- scenarios: [
7
- { title: "Success feedback", description: "Acknowledge completed actions without interrupting the user." },
8
- { title: "Warning states", description: "Surface short-lived problems or validation reminders." },
9
- { title: "Background jobs", description: "Notify users when async tasks finish." },
10
- ],
11
- metrics: [
12
- { label: "Exports", value: "1" },
13
- { label: "Modes", value: "Success + warning" },
14
- { label: "Status", value: "Preview" },
15
- ],
16
- }
17
-
18
-
@@ -1,24 +0,0 @@
1
- import { Badge, Button } from "@/index"
2
-
3
- export function NotificationsFamilyShowcase() {
4
- return (
5
- <div className="grid gap-4 md:grid-cols-2">
6
- <div className="aui-status-success rounded-[22px] p-4">
7
- <div className="flex items-center justify-between">
8
- <p className="font-medium">Changes saved</p>
9
- <Badge variant="secondary">Success</Badge>
10
- </div>
11
- <p className="mt-2 text-sm">Your workspace updates have been published successfully.</p>
12
- </div>
13
- <div className="aui-status-warning rounded-[22px] p-4">
14
- <div className="flex items-center justify-between">
15
- <p className="font-medium">Review needed</p>
16
- <Badge variant="outline">Warning</Badge>
17
- </div>
18
- <p className="mt-2 text-sm">Two components still need accessibility review before release.</p>
19
- <Button variant="outline" className="mt-4">Open review queue</Button>
20
- </div>
21
- </div>
22
- )
23
- }
24
-
@@ -1,2 +0,0 @@
1
- export { OverlayFamilyShowcase } from "./showcase"
2
- export { overlayFamilyMock } from "./mock"
@@ -1,18 +0,0 @@
1
- import type { FamilyDemoMock } from "../types"
2
-
3
- export const overlayFamilyMock: FamilyDemoMock = {
4
- code: `import { ConfirmDialog, ModalShell, SheetShell } from "tembro"\n\nexport function Example() {\n return <ConfirmDialog />\n}`,
5
- highlights: ["Confirm dialogs", "Sheet surfaces", "Modal actions", "Focused flows"],
6
- scenarios: [
7
- { title: "Deletion confirm", description: "Protect destructive actions with explicit confirmation." },
8
- { title: "Edit sheet", description: "Slide contextual editing surfaces without leaving the page." },
9
- { title: "Compact modal", description: "Collect short forms in a focused overlay." },
10
- ],
11
- metrics: [
12
- { label: "Exports", value: "4" },
13
- { label: "Surfaces", value: "Dialog + sheet" },
14
- { label: "Status", value: "Stable" },
15
- ],
16
- }
17
-
18
-
@@ -1,23 +0,0 @@
1
- import { Badge, Button } from "@/index"
2
-
3
- export function OverlayFamilyShowcase() {
4
- return (
5
- <div className="grid gap-4 md:grid-cols-3">
6
- {[
7
- ["Confirm dialog", "Irreversible actions with strong intent and footer controls."],
8
- ["Edit sheet", "Context-aware panel for quick updates and side tasks."],
9
- ["Modal shell", "Focused overlay for short forms and approvals."],
10
- ].map(([title, text], index) => (
11
- <div key={title} className="rounded-[22px] border border-[color:var(--aui-surface-border)] bg-[color:var(--aui-surface)] p-5">
12
- <div className="flex items-center justify-between">
13
- <p className="aui-text-strong text-lg font-semibold">{title}</p>
14
- <Badge variant={index === 0 ? "destructive" : "outline"}>{index === 0 ? "Confirm" : "Overlay"}</Badge>
15
- </div>
16
- <p className="aui-text-muted mt-3 text-sm leading-6">{text}</p>
17
- <Button className="mt-4 w-full">{index === 0 ? "Open confirm" : index === 1 ? "Open sheet" : "Open modal"}</Button>
18
- </div>
19
- ))}
20
- </div>
21
- )
22
- }
23
-
@@ -1,2 +0,0 @@
1
- export { PatternsFamilyShowcase } from "./showcase"
2
- export { patternsFamilyMock } from "./mock"
@@ -1,18 +0,0 @@
1
- import type { FamilyDemoMock } from "../types"
2
-
3
- export const patternsFamilyMock: FamilyDemoMock = {
4
- code: `import { ResourcePage, ResourceDetailPage, FormBuilder } from "tembro"\n\nexport function Example() {\n return <ResourcePage />\n}`,
5
- highlights: ["Resource pages", "Detail layouts", "Form builder presets", "Composed product patterns"],
6
- scenarios: [
7
- { title: "CMS resource page", description: "List, filter and inspect resources in a pattern-driven layout." },
8
- { title: "Detail view", description: "Break detail screens into overview, activity and settings content." },
9
- { title: "Form builder", description: "Generate field structures from reusable form presets." },
10
- ],
11
- metrics: [
12
- { label: "Exports", value: "4" },
13
- { label: "Pattern types", value: "Page + builder" },
14
- { label: "Status", value: "Stable" },
15
- ],
16
- }
17
-
18
-
@@ -1,23 +0,0 @@
1
- import { Badge, Button } from "@/index"
2
-
3
- export function PatternsFamilyShowcase() {
4
- return (
5
- <div className="grid gap-4 md:grid-cols-3">
6
- {[
7
- ["Resource page", "List-heavy surface with filters, cards and actions."],
8
- ["Detail page", "Focused record view with modular content blocks."],
9
- ["Form builder", "Preset-driven field composer for internal tools."],
10
- ].map(([title, text], index) => (
11
- <div key={title} className="rounded-[22px] border border-[color:var(--aui-surface-border)] bg-[color:var(--aui-surface)] p-5">
12
- <div className="flex items-center justify-between">
13
- <p className="aui-text-strong text-lg font-semibold">{title}</p>
14
- <Badge variant={index === 2 ? "secondary" : "outline"}>{index === 2 ? "Preset" : "Pattern"}</Badge>
15
- </div>
16
- <p className="aui-text-muted mt-3 text-sm leading-6">{text}</p>
17
- <Button className="mt-4 w-full">{index === 0 ? "Open resources" : index === 1 ? "Open detail" : "Open builder"}</Button>
18
- </div>
19
- ))}
20
- </div>
21
- )
22
- }
23
-