tembro 2.0.2 → 2.0.4

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 (265) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/dist/components/calendar/calendar.cjs +1 -1
  3. package/dist/components/calendar/calendar.js +5 -5
  4. package/dist/components/display/index.cjs +1 -1
  5. package/dist/components/display/index.d.ts +0 -5
  6. package/dist/components/display/index.js +22 -27
  7. package/dist/components/form/demo.cjs +1 -1
  8. package/dist/components/form/demo.js +1 -2
  9. package/dist/components/form/index.cjs +1 -1
  10. package/dist/components/form/index.d.ts +0 -1
  11. package/dist/components/form/index.js +8 -9
  12. package/dist/components/form/public.cjs +1 -1
  13. package/dist/components/form/public.d.ts +0 -1
  14. package/dist/components/form/public.js +8 -9
  15. package/dist/components/inputs/clearable-input.cjs +1 -1
  16. package/dist/components/inputs/clearable-input.js +1 -1
  17. package/dist/components/inputs/index.cjs +1 -1
  18. package/dist/components/inputs/index.d.ts +0 -2
  19. package/dist/components/inputs/index.js +3 -5
  20. package/dist/components/inputs/input-chrome.cjs +1 -1
  21. package/dist/components/inputs/input-chrome.js +1 -1
  22. package/dist/components/inputs/public.cjs +1 -1
  23. package/dist/components/inputs/public.d.ts +0 -2
  24. package/dist/components/inputs/public.js +3 -5
  25. package/dist/components/layout/index.cjs +1 -1
  26. package/dist/components/layout/index.d.ts +0 -1
  27. package/dist/components/layout/index.js +4 -5
  28. package/dist/components/layout/public.cjs +1 -1
  29. package/dist/components/layout/public.d.ts +0 -1
  30. package/dist/components/layout/public.js +2 -3
  31. package/dist/components/modern/index.cjs +1 -1
  32. package/dist/components/modern/index.d.ts +0 -4
  33. package/dist/components/modern/index.js +12 -16
  34. package/dist/components/ui/button/index.cjs +1 -1
  35. package/dist/components/ui/button/index.js +2 -2
  36. package/dist/components/ui/input/primitive.cjs +1 -1
  37. package/dist/components/ui/input/primitive.js +1 -1
  38. package/dist/components/ui/select/index.cjs +1 -1
  39. package/dist/components/ui/select/index.js +3 -3
  40. package/dist/index.cjs +1 -1
  41. package/dist/index.js +117 -130
  42. package/dist/public-component-surface.cjs +1 -1
  43. package/dist/public-component-surface.js +0 -65
  44. package/dist/showcase/fallback.cjs +3 -3
  45. package/dist/showcase/fallback.js +140 -314
  46. package/dist/showcase/package-meta.cjs +1 -1
  47. package/dist/showcase/package-meta.d.ts +2 -2
  48. package/dist/showcase/package-meta.js +1 -1
  49. package/dist/showcase/premium/index.cjs +1 -1
  50. package/dist/showcase/premium/index.js +431 -497
  51. package/dist/showcase/registry-quality.cjs +1 -1
  52. package/dist/showcase/registry-quality.js +0 -1
  53. package/dist/showcase/site-data.cjs +1 -1
  54. package/dist/showcase/site-data.js +1 -1
  55. package/dist/showcase/tembro-registry.json.cjs +1 -1
  56. package/dist/showcase/tembro-registry.json.js +3 -11
  57. package/package.json +1 -1
  58. package/packages/cli/dist/index.cjs +7 -7
  59. package/packages/cli/vendor/src/components/calendar/calendar.tsx +5 -5
  60. package/packages/cli/vendor/src/components/display/index.ts +0 -5
  61. package/packages/cli/vendor/src/components/form/demo.tsx +0 -1
  62. package/packages/cli/vendor/src/components/form/index.ts +0 -1
  63. package/packages/cli/vendor/src/components/form/public.ts +0 -2
  64. package/packages/cli/vendor/src/components/inputs/clearable-input.tsx +1 -1
  65. package/packages/cli/vendor/src/components/inputs/index.ts +0 -2
  66. package/packages/cli/vendor/src/components/inputs/input-chrome.tsx +1 -1
  67. package/packages/cli/vendor/src/components/inputs/public.ts +0 -2
  68. package/packages/cli/vendor/src/components/layout/index.ts +0 -1
  69. package/packages/cli/vendor/src/components/layout/public.ts +0 -1
  70. package/packages/cli/vendor/src/components/modern/index.ts +1 -5
  71. package/packages/cli/vendor/src/components/ui/button/index.tsx +2 -2
  72. package/packages/cli/vendor/src/components/ui/input/primitive.tsx +1 -1
  73. package/packages/cli/vendor/src/components/ui/select/index.tsx +3 -3
  74. package/packages/cli/vendor/src/public-component-surface.ts +0 -13
  75. package/packages/cli/vendor/src/showcase/fallback.tsx +3 -164
  76. package/packages/cli/vendor/src/showcase/package-meta.ts +1 -1
  77. package/packages/cli/vendor/src/showcase/premium/index.ts +0 -22
  78. package/packages/cli/vendor/src/showcase/registry-quality.ts +0 -2
  79. package/packages/cli/vendor/src/showcase/tembro-registry.json +224 -251
  80. package/packages/cli/vendor/templates/styles/globals.css +5 -5
  81. package/registry.json +296 -324
  82. package/dist/components/display/aspect-ratio.cjs +0 -1
  83. package/dist/components/display/aspect-ratio.d.ts +0 -6
  84. package/dist/components/display/aspect-ratio.js +0 -21
  85. package/dist/components/display/float-button.cjs +0 -1
  86. package/dist/components/display/float-button.d.ts +0 -6
  87. package/dist/components/display/float-button.js +0 -20
  88. package/dist/components/display/key-value-card.cjs +0 -1
  89. package/dist/components/display/key-value-card.d.ts +0 -16
  90. package/dist/components/display/key-value-card.js +0 -35
  91. package/dist/components/display/keyboard-shortcut.cjs +0 -1
  92. package/dist/components/display/keyboard-shortcut.d.ts +0 -7
  93. package/dist/components/display/keyboard-shortcut.js +0 -18
  94. package/dist/components/display/skeleton-form.cjs +0 -1
  95. package/dist/components/display/skeleton-form.d.ts +0 -9
  96. package/dist/components/display/skeleton-form.js +0 -31
  97. package/dist/components/display/skeleton-table.cjs +0 -1
  98. package/dist/components/display/skeleton-table.d.ts +0 -9
  99. package/dist/components/display/skeleton-table.js +0 -42
  100. package/dist/components/display/tag-list.cjs +0 -1
  101. package/dist/components/display/tag-list.d.ts +0 -17
  102. package/dist/components/display/tag-list.js +0 -30
  103. package/dist/components/display/watermark.cjs +0 -1
  104. package/dist/components/display/watermark.d.ts +0 -6
  105. package/dist/components/display/watermark.js +0 -23
  106. package/dist/components/form/repeater-field.cjs +0 -1
  107. package/dist/components/form/repeater-field.d.ts +0 -16
  108. package/dist/components/form/repeater-field.js +0 -48
  109. package/dist/components/inputs/cascader.cjs +0 -1
  110. package/dist/components/inputs/cascader.d.ts +0 -13
  111. package/dist/components/inputs/cascader.js +0 -58
  112. package/dist/components/inputs/mention-input.cjs +0 -1
  113. package/dist/components/inputs/mention-input.d.ts +0 -18
  114. package/dist/components/inputs/mention-input.js +0 -96
  115. package/dist/components/layout/stack.cjs +0 -1
  116. package/dist/components/layout/stack.d.ts +0 -23
  117. package/dist/components/layout/stack.js +0 -57
  118. package/dist/components/modern/affix.cjs +0 -1
  119. package/dist/components/modern/affix.d.ts +0 -7
  120. package/dist/components/modern/affix.js +0 -18
  121. package/dist/showcase/premium/affix/index.cjs +0 -1
  122. package/dist/showcase/premium/affix/index.d.ts +0 -2
  123. package/dist/showcase/premium/affix/index.js +0 -3
  124. package/dist/showcase/premium/affix/mock.cjs +0 -12
  125. package/dist/showcase/premium/affix/mock.d.ts +0 -2
  126. package/dist/showcase/premium/affix/mock.js +0 -15
  127. package/dist/showcase/premium/affix/showcase.cjs +0 -1
  128. package/dist/showcase/premium/affix/showcase.d.ts +0 -2
  129. package/dist/showcase/premium/affix/showcase.js +0 -64
  130. package/dist/showcase/premium/aspect-ratio/index.cjs +0 -1
  131. package/dist/showcase/premium/aspect-ratio/index.d.ts +0 -2
  132. package/dist/showcase/premium/aspect-ratio/index.js +0 -3
  133. package/dist/showcase/premium/aspect-ratio/mock.cjs +0 -11
  134. package/dist/showcase/premium/aspect-ratio/mock.d.ts +0 -2
  135. package/dist/showcase/premium/aspect-ratio/mock.js +0 -26
  136. package/dist/showcase/premium/aspect-ratio/showcase.cjs +0 -1
  137. package/dist/showcase/premium/aspect-ratio/showcase.d.ts +0 -2
  138. package/dist/showcase/premium/aspect-ratio/showcase.js +0 -53
  139. package/dist/showcase/premium/cascader/index.cjs +0 -1
  140. package/dist/showcase/premium/cascader/index.d.ts +0 -2
  141. package/dist/showcase/premium/cascader/index.js +0 -3
  142. package/dist/showcase/premium/cascader/mock.cjs +0 -9
  143. package/dist/showcase/premium/cascader/mock.d.ts +0 -2
  144. package/dist/showcase/premium/cascader/mock.js +0 -19
  145. package/dist/showcase/premium/cascader/showcase.cjs +0 -1
  146. package/dist/showcase/premium/cascader/showcase.d.ts +0 -2
  147. package/dist/showcase/premium/cascader/showcase.js +0 -43
  148. package/dist/showcase/premium/float-button/index.cjs +0 -1
  149. package/dist/showcase/premium/float-button/index.d.ts +0 -2
  150. package/dist/showcase/premium/float-button/index.js +0 -3
  151. package/dist/showcase/premium/float-button/mock.cjs +0 -10
  152. package/dist/showcase/premium/float-button/mock.d.ts +0 -2
  153. package/dist/showcase/premium/float-button/mock.js +0 -15
  154. package/dist/showcase/premium/float-button/showcase.cjs +0 -1
  155. package/dist/showcase/premium/float-button/showcase.d.ts +0 -2
  156. package/dist/showcase/premium/float-button/showcase.js +0 -28
  157. package/dist/showcase/premium/keyboard-shortcut/index.cjs +0 -1
  158. package/dist/showcase/premium/keyboard-shortcut/index.d.ts +0 -2
  159. package/dist/showcase/premium/keyboard-shortcut/index.js +0 -3
  160. package/dist/showcase/premium/keyboard-shortcut/mock.cjs +0 -5
  161. package/dist/showcase/premium/keyboard-shortcut/mock.d.ts +0 -2
  162. package/dist/showcase/premium/keyboard-shortcut/mock.js +0 -26
  163. package/dist/showcase/premium/keyboard-shortcut/showcase.cjs +0 -1
  164. package/dist/showcase/premium/keyboard-shortcut/showcase.d.ts +0 -1
  165. package/dist/showcase/premium/keyboard-shortcut/showcase.js +0 -64
  166. package/dist/showcase/premium/mention-input/index.cjs +0 -1
  167. package/dist/showcase/premium/mention-input/index.d.ts +0 -2
  168. package/dist/showcase/premium/mention-input/index.js +0 -3
  169. package/dist/showcase/premium/mention-input/mock.cjs +0 -11
  170. package/dist/showcase/premium/mention-input/mock.d.ts +0 -2
  171. package/dist/showcase/premium/mention-input/mock.js +0 -19
  172. package/dist/showcase/premium/mention-input/showcase.cjs +0 -1
  173. package/dist/showcase/premium/mention-input/showcase.d.ts +0 -2
  174. package/dist/showcase/premium/mention-input/showcase.js +0 -35
  175. package/dist/showcase/premium/skeleton-form/index.cjs +0 -1
  176. package/dist/showcase/premium/skeleton-form/index.d.ts +0 -2
  177. package/dist/showcase/premium/skeleton-form/index.js +0 -3
  178. package/dist/showcase/premium/skeleton-form/mock.cjs +0 -5
  179. package/dist/showcase/premium/skeleton-form/mock.d.ts +0 -2
  180. package/dist/showcase/premium/skeleton-form/mock.js +0 -19
  181. package/dist/showcase/premium/skeleton-form/showcase.cjs +0 -1
  182. package/dist/showcase/premium/skeleton-form/showcase.d.ts +0 -2
  183. package/dist/showcase/premium/skeleton-form/showcase.js +0 -52
  184. package/dist/showcase/premium/skeleton-table/index.cjs +0 -1
  185. package/dist/showcase/premium/skeleton-table/index.d.ts +0 -2
  186. package/dist/showcase/premium/skeleton-table/index.js +0 -3
  187. package/dist/showcase/premium/skeleton-table/mock.cjs +0 -5
  188. package/dist/showcase/premium/skeleton-table/mock.d.ts +0 -2
  189. package/dist/showcase/premium/skeleton-table/mock.js +0 -19
  190. package/dist/showcase/premium/skeleton-table/showcase.cjs +0 -1
  191. package/dist/showcase/premium/skeleton-table/showcase.d.ts +0 -2
  192. package/dist/showcase/premium/skeleton-table/showcase.js +0 -59
  193. package/dist/showcase/premium/stack/index.cjs +0 -1
  194. package/dist/showcase/premium/stack/index.d.ts +0 -2
  195. package/dist/showcase/premium/stack/index.js +0 -3
  196. package/dist/showcase/premium/stack/mock.cjs +0 -10
  197. package/dist/showcase/premium/stack/mock.d.ts +0 -2
  198. package/dist/showcase/premium/stack/mock.js +0 -26
  199. package/dist/showcase/premium/stack/showcase.cjs +0 -1
  200. package/dist/showcase/premium/stack/showcase.d.ts +0 -1
  201. package/dist/showcase/premium/stack/showcase.js +0 -47
  202. package/dist/showcase/premium/tag-list/index.cjs +0 -1
  203. package/dist/showcase/premium/tag-list/index.d.ts +0 -2
  204. package/dist/showcase/premium/tag-list/index.js +0 -3
  205. package/dist/showcase/premium/tag-list/mock.cjs +0 -12
  206. package/dist/showcase/premium/tag-list/mock.d.ts +0 -2
  207. package/dist/showcase/premium/tag-list/mock.js +0 -26
  208. package/dist/showcase/premium/tag-list/showcase.cjs +0 -1
  209. package/dist/showcase/premium/tag-list/showcase.d.ts +0 -2
  210. package/dist/showcase/premium/tag-list/showcase.js +0 -83
  211. package/dist/showcase/premium/watermark/index.cjs +0 -1
  212. package/dist/showcase/premium/watermark/index.d.ts +0 -2
  213. package/dist/showcase/premium/watermark/index.js +0 -3
  214. package/dist/showcase/premium/watermark/mock.cjs +0 -11
  215. package/dist/showcase/premium/watermark/mock.d.ts +0 -2
  216. package/dist/showcase/premium/watermark/mock.js +0 -26
  217. package/dist/showcase/premium/watermark/showcase.cjs +0 -1
  218. package/dist/showcase/premium/watermark/showcase.d.ts +0 -2
  219. package/dist/showcase/premium/watermark/showcase.js +0 -34
  220. package/packages/cli/vendor/src/components/display/aspect-ratio.tsx +0 -22
  221. package/packages/cli/vendor/src/components/display/float-button.tsx +0 -27
  222. package/packages/cli/vendor/src/components/display/key-value-card.tsx +0 -50
  223. package/packages/cli/vendor/src/components/display/keyboard-shortcut.tsx +0 -31
  224. package/packages/cli/vendor/src/components/display/skeleton-form.tsx +0 -51
  225. package/packages/cli/vendor/src/components/display/skeleton-table.tsx +0 -59
  226. package/packages/cli/vendor/src/components/display/tag-list.tsx +0 -52
  227. package/packages/cli/vendor/src/components/display/watermark.tsx +0 -20
  228. package/packages/cli/vendor/src/components/form/repeater-field.tsx +0 -93
  229. package/packages/cli/vendor/src/components/inputs/cascader.tsx +0 -41
  230. package/packages/cli/vendor/src/components/inputs/mention-input.tsx +0 -162
  231. package/packages/cli/vendor/src/components/layout/stack.tsx +0 -106
  232. package/packages/cli/vendor/src/components/modern/affix.tsx +0 -21
  233. package/packages/cli/vendor/src/showcase/premium/affix/index.ts +0 -3
  234. package/packages/cli/vendor/src/showcase/premium/affix/mock.ts +0 -26
  235. package/packages/cli/vendor/src/showcase/premium/affix/showcase.tsx +0 -37
  236. package/packages/cli/vendor/src/showcase/premium/aspect-ratio/index.ts +0 -2
  237. package/packages/cli/vendor/src/showcase/premium/aspect-ratio/mock.ts +0 -26
  238. package/packages/cli/vendor/src/showcase/premium/aspect-ratio/showcase.tsx +0 -37
  239. package/packages/cli/vendor/src/showcase/premium/cascader/index.ts +0 -3
  240. package/packages/cli/vendor/src/showcase/premium/cascader/mock.ts +0 -24
  241. package/packages/cli/vendor/src/showcase/premium/cascader/showcase.tsx +0 -20
  242. package/packages/cli/vendor/src/showcase/premium/float-button/index.ts +0 -3
  243. package/packages/cli/vendor/src/showcase/premium/float-button/mock.ts +0 -24
  244. package/packages/cli/vendor/src/showcase/premium/float-button/showcase.tsx +0 -21
  245. package/packages/cli/vendor/src/showcase/premium/keyboard-shortcut/index.ts +0 -2
  246. package/packages/cli/vendor/src/showcase/premium/keyboard-shortcut/mock.ts +0 -20
  247. package/packages/cli/vendor/src/showcase/premium/keyboard-shortcut/showcase.tsx +0 -42
  248. package/packages/cli/vendor/src/showcase/premium/mention-input/index.ts +0 -3
  249. package/packages/cli/vendor/src/showcase/premium/mention-input/mock.ts +0 -26
  250. package/packages/cli/vendor/src/showcase/premium/mention-input/showcase.tsx +0 -27
  251. package/packages/cli/vendor/src/showcase/premium/skeleton-form/index.ts +0 -3
  252. package/packages/cli/vendor/src/showcase/premium/skeleton-form/mock.ts +0 -20
  253. package/packages/cli/vendor/src/showcase/premium/skeleton-form/showcase.tsx +0 -34
  254. package/packages/cli/vendor/src/showcase/premium/skeleton-table/index.ts +0 -3
  255. package/packages/cli/vendor/src/showcase/premium/skeleton-table/mock.ts +0 -20
  256. package/packages/cli/vendor/src/showcase/premium/skeleton-table/showcase.tsx +0 -37
  257. package/packages/cli/vendor/src/showcase/premium/stack/index.ts +0 -2
  258. package/packages/cli/vendor/src/showcase/premium/stack/mock.ts +0 -25
  259. package/packages/cli/vendor/src/showcase/premium/stack/showcase.tsx +0 -22
  260. package/packages/cli/vendor/src/showcase/premium/tag-list/index.ts +0 -2
  261. package/packages/cli/vendor/src/showcase/premium/tag-list/mock.ts +0 -27
  262. package/packages/cli/vendor/src/showcase/premium/tag-list/showcase.tsx +0 -55
  263. package/packages/cli/vendor/src/showcase/premium/watermark/index.ts +0 -2
  264. package/packages/cli/vendor/src/showcase/premium/watermark/mock.ts +0 -26
  265. package/packages/cli/vendor/src/showcase/premium/watermark/showcase.tsx +0 -26
@@ -1,20 +0,0 @@
1
- import type { ComponentDemoMock } from "../types"
2
-
3
- export const skeletonFormMock: ComponentDemoMock = {
4
- code: `import { SkeletonForm } from "@/index"
5
-
6
- export function Example() {
7
- return <SkeletonForm fields={3} showTitle columns={2} />
8
- }`,
9
- cliCommand: "npx tembro add skeleton-form",
10
- highlights: [
11
- "Form-first loading states that preserve field rhythm",
12
- "Supports one- or two-column layouts",
13
- "Optional title and action skeleton areas",
14
- ],
15
- scenarios: [
16
- { title: "Settings", description: "Keep form layout stable while waiting for data." },
17
- { title: "Create form", description: "Match final structure without exposing layout jitter." },
18
- ],
19
- }
20
-
@@ -1,34 +0,0 @@
1
- import * as React from "react"
2
-
3
- import { Button, SkeletonForm } from "@/index"
4
-
5
- export function SkeletonFormShowcase() {
6
- const [fields, setFields] = React.useState(4)
7
- const [columns, setColumns] = React.useState<1 | 2>(1)
8
- const [showActions, setShowActions] = React.useState(true)
9
-
10
- return (
11
- <div className="space-y-3">
12
- <div className="flex flex-wrap gap-2">
13
- <Button size="sm" variant={fields === 3 ? "default" : "outline"} onClick={() => setFields(3)}>
14
- 3 fields
15
- </Button>
16
- <Button size="sm" variant={fields === 4 ? "default" : "outline"} onClick={() => setFields(4)}>
17
- 4 fields
18
- </Button>
19
- <Button size="sm" variant={columns === 1 ? "default" : "outline"} onClick={() => setColumns(1)}>
20
- 1 column
21
- </Button>
22
- <Button size="sm" variant={columns === 2 ? "default" : "outline"} onClick={() => setColumns(2)}>
23
- 2 columns
24
- </Button>
25
- <Button size="sm" variant={showActions ? "default" : "outline"} onClick={() => setShowActions((value) => !value)}>
26
- {showActions ? "Actions" : "No actions"}
27
- </Button>
28
- </div>
29
-
30
- <SkeletonForm fields={fields} columns={columns} showActions={showActions} />
31
- </div>
32
- )
33
- }
34
-
@@ -1,3 +0,0 @@
1
- export { skeletonTableMock } from "./mock"
2
- export { SkeletonTableShowcase } from "./showcase"
3
-
@@ -1,20 +0,0 @@
1
- import type { ComponentDemoMock } from "../types"
2
-
3
- export const skeletonTableMock: ComponentDemoMock = {
4
- code: `import { SkeletonTable } from "@/index"
5
-
6
- export function Example() {
7
- return <SkeletonTable rows={4} columns={4} showHeader showToolbar />
8
- }`,
9
- cliCommand: "npx tembro add skeleton-table",
10
- highlights: [
11
- "Compact placeholder for async table loading",
12
- "Supports header and action bar variants",
13
- "Good fit during first-load and refetch states",
14
- ],
15
- scenarios: [
16
- { title: "Data pages", description: "Replace with table body after fetch completes." },
17
- { title: "Search results", description: "Keep layout stable while filters run." },
18
- ],
19
- }
20
-
@@ -1,37 +0,0 @@
1
- import * as React from "react"
2
-
3
- import { Button, SkeletonTable } from "@/index"
4
-
5
- export function SkeletonTableShowcase() {
6
- const [showToolbar, setShowToolbar] = React.useState(true)
7
- const [columns, setColumns] = React.useState(4)
8
- const [rows, setRows] = React.useState(4)
9
-
10
- return (
11
- <div className="space-y-3">
12
- <div className="flex flex-wrap gap-2">
13
- <Button size="sm" variant={showToolbar ? "default" : "outline"} onClick={() => setShowToolbar((value) => !value)}>
14
- Toolbar
15
- </Button>
16
- <Button size="sm" onClick={() => setColumns(3)} variant="outline">
17
- 3 cols
18
- </Button>
19
- <Button size="sm" onClick={() => setColumns(4)} variant="outline">
20
- 4 cols
21
- </Button>
22
- <Button size="sm" onClick={() => setColumns(5)} variant="outline">
23
- 5 cols
24
- </Button>
25
- <Button size="sm" onClick={() => setRows(3)} variant="outline">
26
- 3 rows
27
- </Button>
28
- <Button size="sm" onClick={() => setRows(6)} variant="outline">
29
- 6 rows
30
- </Button>
31
- </div>
32
-
33
- <SkeletonTable rows={rows} columns={columns} showHeader showToolbar={showToolbar} />
34
- </div>
35
- )
36
- }
37
-
@@ -1,2 +0,0 @@
1
- export { stackMock } from "./mock"
2
- export { StackShowcase } from "./showcase"
@@ -1,25 +0,0 @@
1
- import type { ComponentDemoMock } from "../types"
2
-
3
- export const stackMock: ComponentDemoMock = {
4
- code: `import { Button, Stack } from "@/index"
5
-
6
- export function Example() {
7
- return (
8
- <Stack gap="lg" splitAfter={<Button size="sm">Secondary</Button>}>
9
- <div className="text-sm">Primary action</div>
10
- <div className="text-sm">Status line</div>
11
- </Stack>
12
- )
13
- }`,
14
- cliCommand: "npx tembro add stack",
15
- highlights: [
16
- "Flexible vertical layout helper",
17
- "Split insert points without extra wrappers",
18
- "Consistent spacing with simple gap presets",
19
- ],
20
- scenarios: [
21
- { title: "Form stack", description: "Stable form section spacing." },
22
- { title: "Card body", description: "Build readable content groups quickly." },
23
- { title: "Settings page", description: "Keep labels and controls in order." },
24
- ],
25
- }
@@ -1,22 +0,0 @@
1
- import { Button, Divider, Stack } from "@/index"
2
-
3
- export function StackShowcase() {
4
- return (
5
- <div className="space-y-4">
6
- <Stack gap="sm">
7
- <p className="text-sm text-muted-foreground">Small gap stack keeps controls close.</p>
8
- <Button size="sm">Primary</Button>
9
- <Button size="sm" variant="outline">
10
- Secondary
11
- </Button>
12
- </Stack>
13
-
14
- <Divider />
15
-
16
- <Stack gap="xl" splitAfter={<p className="text-sm text-muted-foreground">Action barrier</p>}>
17
- <p className="text-sm">Large gap for grouped blocks.</p>
18
- <p className="text-sm">SplitAfter inserts a stable divider point without nested wrappers.</p>
19
- </Stack>
20
- </div>
21
- )
22
- }
@@ -1,2 +0,0 @@
1
- export { tagListMock } from "./mock"
2
- export { TagListShowcase } from "./showcase"
@@ -1,27 +0,0 @@
1
- import type { ComponentDemoMock } from "../types"
2
-
3
- export const tagListMock: ComponentDemoMock = {
4
- code: `import * as React from "react"
5
- import { TagList } from "@/index"
6
-
7
- export function Example() {
8
- const [items, setItems] = React.useState([
9
- { key: "react", label: "React" },
10
- { key: "typescript", label: "TypeScript" },
11
- { key: "design-system", label: "Design system" },
12
- ])
13
-
14
- return <TagList items={items} removable onRemove={(item) => setItems((list) => list.filter((entry) => entry.key !== item.key))} />
15
- }`,
16
- cliCommand: "npx tembro add tag-list",
17
- highlights: [
18
- "Compact badge-based collection of labels",
19
- "Optional remove actions for editable taxonomies",
20
- "Useful for skills, filters, product areas, and metadata chips",
21
- ],
22
- scenarios: [
23
- { title: "Skill chips", description: "Show categorized labels without building a full tag input field." },
24
- { title: "Selected filters", description: "Summarize active states at the top of a page." },
25
- { title: "Editable metadata", description: "Allow small remove actions on existing labels." },
26
- ],
27
- }
@@ -1,55 +0,0 @@
1
- import * as React from "react"
2
-
3
- import { TagList } from "@/index"
4
-
5
- const panelClass = "border-t border-[color:var(--aui-divider)] py-6"
6
-
7
- const initialItems = [
8
- { key: "react", label: "React" },
9
- { key: "typescript", label: "TypeScript" },
10
- { key: "dashboard", label: "Dashboard" },
11
- { key: "design-system", label: "Design system" },
12
- { key: "release", label: "Release" },
13
- ]
14
-
15
- export function TagListShowcase() {
16
- const [items, setItems] = React.useState(initialItems)
17
-
18
- return (
19
- <div className="space-y-0">
20
- <section className="pb-6">
21
- <p className="text-xs font-semibold uppercase tracking-[0.24em] aui-text-muted">Installed display primitive</p>
22
- <h3 className="mt-3 text-2xl font-semibold tracking-tight aui-text-strong">TagList shows existing labels, not text entry</h3>
23
- <p className="mt-3 max-w-2xl text-sm leading-6 aui-text-muted">
24
- Use TagList to display or lightly edit known labels. If the user must type new values, move to TagInput instead.
25
- </p>
26
- </section>
27
-
28
- <section className={panelClass}>
29
- <div className="grid gap-6 xl:grid-cols-[1fr_360px]">
30
- <div>
31
- <p className="text-lg font-semibold aui-text-strong">Editable metadata chips</p>
32
- <p className="mt-2 max-w-xl text-sm leading-6 aui-text-muted">
33
- Remove actions should stay small and secondary so the tags remain readable as content first.
34
- </p>
35
- <div className="mt-5 rounded-xl border border-[color:var(--aui-divider)] bg-[color:var(--aui-page-bg-alt)] p-4">
36
- <TagList
37
- items={items}
38
- removable
39
- onRemove={(item) => setItems((current) => current.filter((entry) => entry.key !== item.key))}
40
- />
41
- </div>
42
- </div>
43
-
44
- <div className="rounded-xl border border-[color:var(--aui-divider)] p-4">
45
- <p className="text-sm font-semibold aui-text-strong">Guidance</p>
46
- <div className="mt-3 space-y-3 text-sm leading-6 aui-text-muted">
47
- <p>TagList is display-first. It should not impersonate a full input when creation is not available.</p>
48
- <p>Use `max` when pages need a condensed summary and overflow should collapse into a count chip.</p>
49
- </div>
50
- </div>
51
- </div>
52
- </section>
53
- </div>
54
- )
55
- }
@@ -1,2 +0,0 @@
1
- export { watermarkMock } from "./mock"
2
- export { WatermarkShowcase } from "./showcase"
@@ -1,26 +0,0 @@
1
- import type { ComponentDemoMock } from "../types"
2
-
3
- export const watermarkMock: ComponentDemoMock = {
4
- code: `import { Watermark } from "@/index"
5
-
6
- export function Example() {
7
- return (
8
- <Watermark text="PRIVATE BETA">
9
- <div className="grid h-28 place-items-center rounded-xl border bg-card">
10
- Document surface
11
- </div>
12
- </Watermark>
13
- )
14
- }`,
15
- cliCommand: "npx tembro add watermark",
16
- highlights: [
17
- "Optional watermark for document and export previews",
18
- "Works on any container content",
19
- "Configurable watermark text and overlay style",
20
- ],
21
- scenarios: [
22
- { title: "Confidential docs", description: "Show usage watermark without blocking interaction." },
23
- { title: "Design previews", description: "Brand mark on generated screenshots." },
24
- { title: "Shared exports", description: "Visual indicator for internal staging artifacts." },
25
- ],
26
- }
@@ -1,26 +0,0 @@
1
- import * as React from "react"
2
-
3
- import { Button, Watermark } from "@/index"
4
-
5
- const labels = ["tembro", "STAGING", "DRAFT", "PRIVATE BETA"]
6
-
7
- export function WatermarkShowcase() {
8
- const [label, setLabel] = React.useState(labels[0])
9
-
10
- return (
11
- <div className="space-y-4">
12
- <div className="flex flex-wrap gap-2">
13
- {labels.map((item) => (
14
- <Button key={item} size="sm" variant={label === item ? "default" : "outline"} onClick={() => setLabel(item)}>
15
- {item}
16
- </Button>
17
- ))}
18
- </div>
19
- <Watermark text={label}>
20
- <div className="grid h-36 place-items-center rounded-xl border bg-card p-5 text-sm text-muted-foreground">
21
- This content keeps full interaction while visually marking environment.
22
- </div>
23
- </Watermark>
24
- </div>
25
- )
26
- }