@tempoxyz/ds 0.3.11 → 0.3.13

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 (212) hide show
  1. package/README.md +7 -6
  2. package/dist/docs/AGENTS.md +8 -5
  3. package/dist/docs/index.md +143 -135
  4. package/dist/docs/marketing/introduction/getting-started.md +241 -0
  5. package/dist/docs/{components → product/components}/accordion.md +8 -8
  6. package/dist/docs/{components → product/components}/address-card.md +5 -5
  7. package/dist/docs/{components → product/components}/agent-logo.md +5 -5
  8. package/dist/docs/{components → product/components}/alert-dialog.md +11 -11
  9. package/dist/docs/{components → product/components}/alert.md +11 -11
  10. package/dist/docs/{components → product/components}/amount-input.md +13 -13
  11. package/dist/docs/{components → product/components}/amount.md +8 -8
  12. package/dist/docs/{components → product/components}/app-shell.md +13 -13
  13. package/dist/docs/{components → product/components}/asset-chip.md +11 -11
  14. package/dist/docs/{components → product/components}/autocomplete.md +10 -9
  15. package/dist/docs/{components → product/components}/avatar.md +8 -8
  16. package/dist/docs/{components → product/components}/badge.md +9 -9
  17. package/dist/docs/{components → product/components}/badged-logo.md +6 -6
  18. package/dist/docs/{components → product/components}/banner.md +8 -8
  19. package/dist/docs/{components → product/components}/bar-chart.md +7 -7
  20. package/dist/docs/{components → product/components}/breadcrumbs.md +8 -8
  21. package/dist/docs/{components → product/components}/button-group.md +8 -8
  22. package/dist/docs/{components → product/components}/button.md +17 -17
  23. package/dist/docs/{components → product/components}/calendar.md +8 -8
  24. package/dist/docs/{components → product/components}/callout.md +5 -5
  25. package/dist/docs/{components → product/components}/checkbox-group.md +13 -13
  26. package/dist/docs/{components → product/components}/checkbox.md +12 -12
  27. package/dist/docs/{components → product/components}/choice-group.md +14 -14
  28. package/dist/docs/{components → product/components}/choicebox.md +9 -9
  29. package/dist/docs/{components → product/components}/code.md +5 -5
  30. package/dist/docs/{components → product/components}/combobox.md +9 -9
  31. package/dist/docs/{components → product/components}/container.md +7 -7
  32. package/dist/docs/{components → product/components}/copy-button.md +13 -13
  33. package/dist/docs/{components → product/components}/date-picker.md +11 -11
  34. package/dist/docs/{components → product/components}/dialog.md +17 -17
  35. package/dist/docs/{components → product/components}/drawer.md +11 -11
  36. package/dist/docs/{components → product/components}/empty.md +9 -9
  37. package/dist/docs/{components → product/components}/field.md +14 -14
  38. package/dist/docs/{components → product/components}/fieldset.md +6 -6
  39. package/dist/docs/{components → product/components}/frame.md +9 -9
  40. package/dist/docs/{components → product/components}/gauge.md +7 -7
  41. package/dist/docs/{components → product/components}/get-started-visual.md +4 -4
  42. package/dist/docs/{components → product/components}/grid.md +7 -7
  43. package/dist/docs/{components → product/components}/hero-visual.md +4 -4
  44. package/dist/docs/{components → product/components}/hex.md +9 -9
  45. package/dist/docs/{components → product/components}/icon-tile.md +8 -8
  46. package/dist/docs/{components → product/components}/identicon.md +7 -7
  47. package/dist/docs/{components → product/components}/inline.md +7 -7
  48. package/dist/docs/{components → product/components}/inset.md +8 -8
  49. package/dist/docs/{components → product/components}/kbd.md +8 -8
  50. package/dist/docs/{components → product/components}/list-group.md +24 -24
  51. package/dist/docs/{components → product/components}/loading-dots.md +8 -8
  52. package/dist/docs/{components → product/components}/menu.md +14 -14
  53. package/dist/docs/{components → product/components}/native-select.md +7 -7
  54. package/dist/docs/{components → product/components}/network-logo.md +7 -7
  55. package/dist/docs/{components → product/components}/number-field.md +8 -8
  56. package/dist/docs/{components → product/components}/otp-field.md +9 -9
  57. package/dist/docs/{components → product/components}/pagination.md +8 -8
  58. package/dist/docs/{components → product/components}/popover.md +11 -11
  59. package/dist/docs/{components → product/components}/progress.md +10 -10
  60. package/dist/docs/{components → product/components}/qr.md +8 -8
  61. package/dist/docs/{components → product/components}/radio-group.md +10 -10
  62. package/dist/docs/{components → product/components}/secret-value.md +8 -8
  63. package/dist/docs/{components → product/components}/select.md +13 -13
  64. package/dist/docs/{components → product/components}/separator.md +7 -7
  65. package/dist/docs/{components → product/components}/sidebar-menu.md +11 -11
  66. package/dist/docs/{components → product/components}/skeleton.md +9 -9
  67. package/dist/docs/{components → product/components}/slider.md +8 -8
  68. package/dist/docs/{components → product/components}/snippet.md +10 -10
  69. package/dist/docs/{components → product/components}/spinner.md +12 -12
  70. package/dist/docs/{components → product/components}/split-bar.md +5 -5
  71. package/dist/docs/{components → product/components}/split-button.md +11 -11
  72. package/dist/docs/{components → product/components}/stack.md +8 -8
  73. package/dist/docs/{components → product/components}/status-chip.md +7 -7
  74. package/dist/docs/{components → product/components}/status-indicator.md +6 -6
  75. package/dist/docs/{components → product/components}/status-row.md +7 -7
  76. package/dist/docs/{components → product/components}/stepper.md +9 -9
  77. package/dist/docs/{components → product/components}/success-hero.md +5 -5
  78. package/dist/docs/{components → product/components}/surface.md +11 -11
  79. package/dist/docs/{components → product/components}/switch.md +11 -11
  80. package/dist/docs/{components → product/components}/table.md +16 -16
  81. package/dist/docs/{components → product/components}/tabs.md +11 -11
  82. package/dist/docs/{components → product/components}/tempo-logo.md +4 -4
  83. package/dist/docs/{components → product/components}/text-input.md +14 -14
  84. package/dist/docs/{components → product/components}/textarea.md +7 -7
  85. package/dist/docs/{components → product/components}/toast.md +11 -11
  86. package/dist/docs/{components → product/components}/token-logo.md +16 -16
  87. package/dist/docs/{components → product/components}/token.md +10 -10
  88. package/dist/docs/{components → product/components}/tooltip.md +11 -11
  89. package/dist/docs/{components → product/components}/verification-code.md +4 -4
  90. package/dist/docs/{components → product/components}/visual.md +5 -5
  91. package/dist/docs/product/components.md +203 -0
  92. package/dist/docs/{foundations → product/foundations}/accessibility.md +16 -16
  93. package/dist/docs/{foundations → product/foundations}/agents.md +17 -17
  94. package/dist/docs/{foundations → product/foundations}/color.md +7 -7
  95. package/dist/docs/{foundations → product/foundations}/content/tone.md +7 -7
  96. package/dist/docs/{foundations → product/foundations}/content/voice.md +2 -2
  97. package/dist/docs/{foundations → product/foundations}/content/writing-style.md +8 -8
  98. package/dist/docs/{foundations → product/foundations}/iconography.md +11 -11
  99. package/dist/docs/{foundations → product/foundations}/intent.md +28 -28
  100. package/dist/docs/{foundations → product/foundations}/layout.md +22 -22
  101. package/dist/docs/product/foundations/linter.md +496 -0
  102. package/dist/docs/{foundations → product/foundations}/motion.md +7 -7
  103. package/dist/docs/{foundations → product/foundations}/radius-and-padding.md +3 -3
  104. package/dist/docs/{foundations → product/foundations}/typography.md +4 -4
  105. package/dist/docs/{introduction → product/introduction}/faq.md +22 -21
  106. package/dist/docs/{introduction → product/introduction}/getting-started.md +4 -4
  107. package/dist/docs/{patterns → product/patterns}/blockchain-values.md +20 -20
  108. package/dist/docs/{patterns → product/patterns}/dashboards.md +28 -28
  109. package/dist/docs/{patterns → product/patterns}/destructive-actions.md +16 -16
  110. package/dist/docs/{patterns → product/patterns}/empty-states.md +14 -14
  111. package/dist/docs/{patterns → product/patterns}/errors-and-validation.md +23 -23
  112. package/dist/docs/{patterns → product/patterns}/feedback-and-status.md +31 -31
  113. package/dist/docs/{patterns → product/patterns}/forms.md +24 -24
  114. package/dist/docs/{patterns → product/patterns}/loading.md +19 -19
  115. package/dist/docs/{patterns → product/patterns}/navigation.md +23 -23
  116. package/dist/docs/{patterns → product/patterns}/payments.md +20 -20
  117. package/dist/docs/{patterns → product/patterns}/responsive-layout.md +23 -23
  118. package/dist/docs/{patterns → product/patterns}/tables-and-lists.md +19 -19
  119. package/dist/docs/{products → product/products}/tempo-console.md +12 -12
  120. package/dist/docs/{products → product/products}/tempo-performance.md +11 -11
  121. package/dist/docs/{products → product/products}/tempo-wallet.md +12 -12
  122. package/dist/marketing/index.d.ts +4 -0
  123. package/dist/marketing/index.d.ts.map +1 -0
  124. package/dist/marketing/index.js +4 -0
  125. package/dist/marketing/index.js.map +1 -0
  126. package/dist/marketing/index.js.zyzz.json +1 -0
  127. package/dist/marketing/vars.d.ts +907 -0
  128. package/dist/marketing/vars.d.ts.map +1 -0
  129. package/dist/marketing/vars.js +15 -0
  130. package/dist/marketing/vars.js.map +1 -0
  131. package/dist/marketing/vars.js.zyzz.json +1 -0
  132. package/dist/marketing/zyzz.config.d.ts +4512 -0
  133. package/dist/marketing/zyzz.config.d.ts.map +1 -0
  134. package/dist/marketing/zyzz.config.js +63 -0
  135. package/dist/marketing/zyzz.config.js.map +1 -0
  136. package/dist/marketing/zyzz.config.js.zyzz.json +1 -0
  137. package/dist/oxlint/index.d.ts +12 -1
  138. package/dist/oxlint/index.d.ts.map +1 -1
  139. package/dist/oxlint/index.js +39 -1
  140. package/dist/oxlint/index.js.map +1 -1
  141. package/dist/oxlint/internal/Docs.d.ts +9 -0
  142. package/dist/oxlint/internal/Docs.d.ts.map +1 -0
  143. package/dist/oxlint/internal/Docs.js +15 -0
  144. package/dist/oxlint/internal/Docs.js.map +1 -0
  145. package/dist/oxlint/internal/Imports.d.ts +1 -1
  146. package/dist/oxlint/internal/Imports.d.ts.map +1 -1
  147. package/dist/oxlint/internal/Imports.js +2 -0
  148. package/dist/oxlint/internal/Imports.js.map +1 -1
  149. package/dist/oxlint/internal/Styles.d.ts +40 -0
  150. package/dist/oxlint/internal/Styles.d.ts.map +1 -0
  151. package/dist/oxlint/internal/Styles.js +194 -0
  152. package/dist/oxlint/internal/Styles.js.map +1 -0
  153. package/dist/oxlint/internal/Tokens.d.ts +16 -0
  154. package/dist/oxlint/internal/Tokens.d.ts.map +1 -0
  155. package/dist/oxlint/internal/Tokens.js +39 -0
  156. package/dist/oxlint/internal/Tokens.js.map +1 -0
  157. package/dist/oxlint/rules/NoCrossSurface.d.ts +2 -2
  158. package/dist/oxlint/rules/NoCrossSurface.js +3 -3
  159. package/dist/oxlint/rules/NoCrossSurface.js.map +1 -1
  160. package/dist/oxlint/rules/NoCustomValues.d.ts +11 -0
  161. package/dist/oxlint/rules/NoCustomValues.d.ts.map +1 -0
  162. package/dist/oxlint/rules/NoCustomValues.js +150 -0
  163. package/dist/oxlint/rules/NoCustomValues.js.map +1 -0
  164. package/dist/oxlint/rules/NoSingleKeyShortcuts.d.ts +11 -0
  165. package/dist/oxlint/rules/NoSingleKeyShortcuts.d.ts.map +1 -0
  166. package/dist/oxlint/rules/NoSingleKeyShortcuts.js +158 -0
  167. package/dist/oxlint/rules/NoSingleKeyShortcuts.js.map +1 -0
  168. package/dist/oxlint/rules/PreferComponent.d.ts +3 -2
  169. package/dist/oxlint/rules/PreferComponent.d.ts.map +1 -1
  170. package/dist/oxlint/rules/PreferComponent.js +11 -4
  171. package/dist/oxlint/rules/PreferComponent.js.map +1 -1
  172. package/dist/oxlint/rules/PreferLayout.d.ts +9 -0
  173. package/dist/oxlint/rules/PreferLayout.d.ts.map +1 -0
  174. package/dist/oxlint/rules/PreferLayout.js +90 -0
  175. package/dist/oxlint/rules/PreferLayout.js.map +1 -0
  176. package/dist/oxlint/rules/PreferProgress.d.ts +9 -0
  177. package/dist/oxlint/rules/PreferProgress.d.ts.map +1 -0
  178. package/dist/oxlint/rules/PreferProgress.js +43 -0
  179. package/dist/oxlint/rules/PreferProgress.js.map +1 -0
  180. package/dist/oxlint/rules/PreferSurface.d.ts +9 -0
  181. package/dist/oxlint/rules/PreferSurface.d.ts.map +1 -0
  182. package/dist/oxlint/rules/PreferSurface.js +55 -0
  183. package/dist/oxlint/rules/PreferSurface.js.map +1 -0
  184. package/dist/oxlint/rules/RequireAccessibleName.d.ts.map +1 -1
  185. package/dist/oxlint/rules/RequireAccessibleName.js +3 -1
  186. package/dist/oxlint/rules/RequireAccessibleName.js.map +1 -1
  187. package/dist/oxlint/rules/RequireScrollRegion.d.ts +11 -0
  188. package/dist/oxlint/rules/RequireScrollRegion.d.ts.map +1 -0
  189. package/dist/oxlint/rules/RequireScrollRegion.js +71 -0
  190. package/dist/oxlint/rules/RequireScrollRegion.js.map +1 -0
  191. package/dist/web/icons/index.js.zyzz.json +1 -0
  192. package/package.json +6 -1
  193. package/src/marketing/README.md +21 -0
  194. package/src/marketing/index.ts +3 -0
  195. package/src/marketing/vars.ts +751 -0
  196. package/src/marketing/zyzz.config.ts +376 -0
  197. package/src/oxlint/index.ts +40 -1
  198. package/src/oxlint/internal/Docs.ts +18 -0
  199. package/src/oxlint/internal/Imports.ts +2 -1
  200. package/src/oxlint/internal/Styles.ts +240 -0
  201. package/src/oxlint/internal/Tokens.ts +43 -0
  202. package/src/oxlint/rules/NoCrossSurface.ts +3 -3
  203. package/src/oxlint/rules/NoCustomValues.ts +170 -0
  204. package/src/oxlint/rules/NoSingleKeyShortcuts.ts +190 -0
  205. package/src/oxlint/rules/PreferComponent.ts +11 -4
  206. package/src/oxlint/rules/PreferLayout.ts +96 -0
  207. package/src/oxlint/rules/PreferProgress.ts +49 -0
  208. package/src/oxlint/rules/PreferSurface.ts +70 -0
  209. package/src/oxlint/rules/RequireAccessibleName.ts +3 -1
  210. package/src/oxlint/rules/RequireScrollRegion.ts +92 -0
  211. package/dist/docs/components.md +0 -203
  212. package/dist/docs/foundations/linter.md +0 -296
@@ -0,0 +1,241 @@
1
+ # Getting Started
2
+
3
+ Install the Marketing system and style your first section.
4
+
5
+ ## Overview
6
+
7
+ Marketing pages present Tempo to the public. They explain what Tempo is, who it is for, and why it matters, and lead the reader to a next step. `@tempoxyz/ds/marketing` ships the variables and authoring helpers for these pages.
8
+
9
+ * **Home Page (tempo.xyz):** Introduces Tempo and routes each reader onward.
10
+ * **Campaigns (Landing pages):** Carry one message to one audience at a time.
11
+ * **Launches (Announcements):** Present a new feature, partner, or upgrade.
12
+ * **Events (Event pages):** Show the agenda, the speakers, and registration.
13
+
14
+ ## Agent Prompt
15
+
16
+ Paste this prompt into your coding agent:
17
+
18
+ Read ds.tehq.dev/marketing/introduction/getting-started and help me build a Tempo marketing page
19
+ with Tempo Design System.
20
+
21
+ ## Setup
22
+
23
+ ### Install the Library
24
+
25
+ Install `@tempoxyz/ds` and its Zyzz peer. Marketing ships from the same package.
26
+
27
+ ```sh
28
+ npm install @tempoxyz/ds zyzz
29
+ ```
30
+
31
+ ### Choose Framework
32
+
33
+ Choose a compilation target and a variable mode:
34
+
35
+ * **TDS Variables (Quick):** Uses the Marketing variables as they ship.
36
+ * **Custom Variables (Advanced):** Extends the Marketing variables with site tokens.
37
+
38
+ ### Vite
39
+
40
+ ### Configure Vite
41
+
42
+ Add Zyzz beside the existing framework plugin.
43
+
44
+ ```ts title="vite.config.ts"
45
+ import { defineConfig } from 'vite'
46
+ import { zyzz } from 'zyzz/vite'
47
+
48
+ export default defineConfig({
49
+ plugins: [zyzz()],
50
+ ssr: { noExternal: ['@tempoxyz/ds', 'zyzz'] },
51
+ })
52
+ ```
53
+
54
+ Run the existing dev or build command. The plugin emits the Marketing variables, the Inter, Pilat, and JetBrains Mono fonts, and keyframes once, and each module emits its own rules. You import no stylesheet.
55
+
56
+ With `ssr.noExternal`, the plugin reads the library's contracts in a server build.
57
+
58
+ #### TDS Variables (Quick)
59
+
60
+ ### Style a Section
61
+
62
+ Import `style` from `@tempoxyz/ds/marketing`, and style your markup with Marketing tokens.
63
+
64
+ ```tsx title="Hero.tsx"
65
+ import { style } from '@tempoxyz/ds/marketing'
66
+
67
+ export function Hero() {
68
+ return (
69
+ <section {...styles.hero()}>
70
+ <h1 {...styles.title()}>Payments at internet speed</h1>
71
+ <p {...styles.lead()}>Move money anywhere in under a second.</p>
72
+ </section>
73
+ )
74
+ }
75
+
76
+ namespace styles {
77
+ export const hero = style({
78
+ backgroundColor: 'background.primary',
79
+ paddingBlock: '64',
80
+ paddingInline: '24',
81
+ })
82
+
83
+ export const lead = style({ color: 'content.secondary', typography: 'body.b1' })
84
+
85
+ export const title = style({ color: 'content.primary', typography: 'display.d1' })
86
+ }
87
+ ```
88
+
89
+ Tokens such as `content.primary`, `'64'`, and `display.d1` type-check against the Marketing variables. Light and dark values follow the inherited `color-scheme`.
90
+
91
+ #### Custom Variables (Advanced)
92
+
93
+ ### Define Config
94
+
95
+ Extend the Marketing variables with site tokens, and export the bound helpers.
96
+
97
+ ```ts title="zyzz.config.ts"
98
+ import { variables } from '@tempoxyz/ds/marketing'
99
+ import { Config, Vars } from 'zyzz'
100
+
101
+ export const { style, vars } = Config.create({
102
+ id: 'site',
103
+ vars: Vars.extend(variables, { spacing: { section: '7.5rem' } }, { id: 'site/vars' }),
104
+ })
105
+ ```
106
+
107
+ Place `zyzz.config.ts` at the root of the site source, such as `src/zyzz.config.ts`. The Vite plugin scans its directory for global styles.
108
+
109
+ ### Style a Section
110
+
111
+ Apply `vars()` to the site root. Style your markup with the bound `style` helper, which accepts Marketing and site tokens.
112
+
113
+ ```tsx title="Hero.tsx"
114
+ import { style, vars } from './zyzz.config.js'
115
+
116
+ export function Site() {
117
+ return (
118
+ <main {...vars()}>
119
+ <Hero />
120
+ </main>
121
+ )
122
+ }
123
+
124
+ function Hero() {
125
+ return (
126
+ <section {...styles.hero()}>
127
+ <h1 {...styles.title()}>Payments at internet speed</h1>
128
+ </section>
129
+ )
130
+ }
131
+
132
+ namespace styles {
133
+ export const hero = style({ paddingBlock: 'section', paddingInline: '24' })
134
+
135
+ export const title = style({ color: 'content.primary', typography: 'display.d1' })
136
+ }
137
+ ```
138
+
139
+ ### Other Bundlers
140
+
141
+ ### Configure the Bundler
142
+
143
+ Add the matching unplugin adapter to the bundler configuration. Keep the existing TypeScript and JSX transforms.
144
+
145
+ ```ts title="rollup.config.ts"
146
+ import { zyzz } from 'zyzz/unplugin'
147
+
148
+ const plugins = [zyzz.rollup()]
149
+ // Use zyzz.webpack() or zyzz.esbuild() for those bundlers.
150
+ ```
151
+
152
+ Load the emitted stylesheet and script in the document. Adjust the paths to the deployment base.
153
+
154
+ ```html title="index.html"
155
+ <link rel="stylesheet" href="/zyzz.css" />
156
+ <script src="/zyzz.js"></script>
157
+ ```
158
+
159
+ Run the existing build command. [Bundler Setup](https://zyzz.style/docs/api/unplugin) lists the configuration for each bundler.
160
+
161
+ #### TDS Variables (Quick)
162
+
163
+ ### Style a Section
164
+
165
+ Import `style` from `@tempoxyz/ds/marketing`, and style your markup with Marketing tokens.
166
+
167
+ ```tsx title="Hero.tsx"
168
+ import { style } from '@tempoxyz/ds/marketing'
169
+
170
+ export function Hero() {
171
+ return (
172
+ <section {...styles.hero()}>
173
+ <h1 {...styles.title()}>Payments at internet speed</h1>
174
+ <p {...styles.lead()}>Move money anywhere in under a second.</p>
175
+ </section>
176
+ )
177
+ }
178
+
179
+ namespace styles {
180
+ export const hero = style({
181
+ backgroundColor: 'background.primary',
182
+ paddingBlock: '64',
183
+ paddingInline: '24',
184
+ })
185
+
186
+ export const lead = style({ color: 'content.secondary', typography: 'body.b1' })
187
+
188
+ export const title = style({ color: 'content.primary', typography: 'display.d1' })
189
+ }
190
+ ```
191
+
192
+ Tokens such as `content.primary`, `'64'`, and `display.d1` type-check against the Marketing variables. Light and dark values follow the inherited `color-scheme`.
193
+
194
+ #### Custom Variables (Advanced)
195
+
196
+ ### Define Config
197
+
198
+ Extend the Marketing variables with site tokens, and export the bound helpers.
199
+
200
+ ```ts title="zyzz.config.ts"
201
+ import { variables } from '@tempoxyz/ds/marketing'
202
+ import { Config, Vars } from 'zyzz'
203
+
204
+ export const { style, vars } = Config.create({
205
+ id: 'site',
206
+ vars: Vars.extend(variables, { spacing: { section: '7.5rem' } }, { id: 'site/vars' }),
207
+ })
208
+ ```
209
+
210
+ ### Style a Section
211
+
212
+ Apply `vars()` to the site root. Style your markup with the bound `style` helper, which accepts Marketing and site tokens.
213
+
214
+ ```tsx title="Hero.tsx"
215
+ import { style, vars } from './zyzz.config.js'
216
+
217
+ export function Site() {
218
+ return (
219
+ <main {...vars()}>
220
+ <Hero />
221
+ </main>
222
+ )
223
+ }
224
+
225
+ function Hero() {
226
+ return (
227
+ <section {...styles.hero()}>
228
+ <h1 {...styles.title()}>Payments at internet speed</h1>
229
+ </section>
230
+ )
231
+ }
232
+
233
+ namespace styles {
234
+ export const hero = style({ paddingBlock: 'section', paddingInline: '24' })
235
+
236
+ export const title = style({ color: 'content.primary', typography: 'display.d1' })
237
+ }
238
+ ```
239
+
240
+ > [!NOTE]
241
+ > The Marketing variables change as the Marketing designs define their own values. Marketing ships no components yet.
@@ -162,10 +162,10 @@ import { Accordion } from '@tempoxyz/ds'
162
162
 
163
163
  ### When Not to Use
164
164
 
165
- * Use [Tabs](/docs/components/tabs) to switch between views of equal weight, such as Balances and Activity.
166
- * Use [ListGroup](/docs/components/list-group) for facts people check at a glance, such as the amount and fee of a payment.
167
- * Use [Stepper](/docs/components/stepper) for steps people complete in order.
168
- * If most people need the content, keep it visible in a [Surface](/docs/components/surface), such as the amount and fee on a payment review.
165
+ * Use [Tabs](tabs.md) to switch between views of equal weight, such as Balances and Activity.
166
+ * Use [ListGroup](list-group.md) for facts people check at a glance, such as the amount and fee of a payment.
167
+ * Use [Stepper](stepper.md) for steps people complete in order.
168
+ * If most people need the content, keep it visible in a [Surface](surface.md), such as the amount and fee on a payment review.
169
169
 
170
170
  ### Summarize the Panel in the Trigger
171
171
 
@@ -472,18 +472,18 @@ The arrow keys do not move focus between triggers.
472
472
 
473
473
  ## Related
474
474
 
475
- [Tabs](/docs/components/tabs)
475
+ [Tabs](tabs.md)
476
476
 
477
477
  Use for switching between views.
478
478
 
479
- [ListGroup](/docs/components/list-group)
479
+ [ListGroup](list-group.md)
480
480
 
481
481
  Use for expanding a detail under one row.
482
482
 
483
- [Stepper](/docs/components/stepper)
483
+ [Stepper](stepper.md)
484
484
 
485
485
  Use for sequential steps.
486
486
 
487
- [Surface](/docs/components/surface)
487
+ [Surface](surface.md)
488
488
 
489
489
  Use for content that stays visible.
@@ -90,8 +90,8 @@ import { AddressCard } from '@tempoxyz/ds'
90
90
 
91
91
  ### When Not to Use
92
92
 
93
- * Use [Hex](/docs/components/hex) for an address inside a row or a sentence.
94
- * Use [Qr](/docs/components/qr) alone for a code that encodes something other than an address.
93
+ * Use [Hex](hex.md) for an address inside a row or a sentence.
94
+ * Use [Qr](qr.md) alone for a code that encodes something other than an address.
95
95
 
96
96
  ### List Only the Accepted Networks
97
97
 
@@ -134,14 +134,14 @@ The card renders a `<div>` with no role. Screen readers read the full address, t
134
134
 
135
135
  ## Related
136
136
 
137
- [Hex](/docs/components/hex)
137
+ [Hex](hex.md)
138
138
 
139
139
  Use for an address inside a row or a sentence.
140
140
 
141
- [Qr](/docs/components/qr)
141
+ [Qr](qr.md)
142
142
 
143
143
  Use for a QR code of another value.
144
144
 
145
- [AssetChip](/docs/components/asset-chip)
145
+ [AssetChip](asset-chip.md)
146
146
 
147
147
  Use for the chips of supported assets.
@@ -117,8 +117,8 @@ import { AgentLogo } from '@tempoxyz/ds'
117
117
 
118
118
  ### When Not to Use
119
119
 
120
- * Use [Avatar](/docs/components/avatar) for a person or an account.
121
- * Use [TokenLogo](/docs/components/token-logo) for a token, and [NetworkLogo](/docs/components/network-logo) for a network.
120
+ * Use [Avatar](avatar.md) for a person or an account.
121
+ * Use [TokenLogo](token-logo.md) for a token, and [NetworkLogo](network-logo.md) for a network.
122
122
 
123
123
  ### Name the Agent
124
124
 
@@ -181,14 +181,14 @@ An agent logo renders a `<span>` that is hidden from screen readers by default.
181
181
 
182
182
  ## Related
183
183
 
184
- [Avatar](/docs/components/avatar)
184
+ [Avatar](avatar.md)
185
185
 
186
186
  Use for people and accounts.
187
187
 
188
- [ListGroup](/docs/components/list-group)
188
+ [ListGroup](list-group.md)
189
189
 
190
190
  Use for lists of agents.
191
191
 
192
- [BarChart](/docs/components/bar-chart)
192
+ [BarChart](bar-chart.md)
193
193
 
194
194
  Use for the spend of each agent over time.
@@ -6,7 +6,7 @@ Asks you to confirm a critical action before it happens.
6
6
 
7
7
  ## Overview
8
8
 
9
- A modal confirmation that blocks the page until the user decides. It never closes on an outside press. It takes the parts and the `small` size of a [Dialog](/docs/components/dialog). Reserve it for decisions that need an explicit answer.
9
+ A modal confirmation that blocks the page until the user decides. It never closes on an outside press. It takes the parts and the `small` size of a [Dialog](dialog.md). Reserve it for decisions that need an explicit answer.
10
10
 
11
11
  ## Examples
12
12
 
@@ -73,10 +73,10 @@ import { AlertDialog, ButtonGroup } from '@tempoxyz/ds'
73
73
 
74
74
  ### When Not to Use
75
75
 
76
- * Use a [Dialog](/docs/components/dialog) for a task with fields, or to review a payment before sending it.
77
- * For reversible actions, such as archiving an address, act at once and offer Undo in a [Toast](/docs/components/toast). The toast dismisses itself, so keep another way to restore the item.
78
- * Use an [Alert](/docs/components/alert) or [Banner](/docs/components/banner) for a warning that needs no decision.
79
- * Use a [Toast](/docs/components/toast) to report that an action finished.
76
+ * Use a [Dialog](dialog.md) for a task with fields, or to review a payment before sending it.
77
+ * For reversible actions, such as archiving an address, act at once and offer Undo in a [Toast](toast.md). The toast dismisses itself, so keep another way to restore the item.
78
+ * Use an [Alert](alert.md) or [Banner](banner.md) for a warning that needs no decision.
79
+ * Use a [Toast](toast.md) to report that an action finished.
80
80
 
81
81
  ### Focus the Safe Action
82
82
 
@@ -606,26 +606,26 @@ Follows the [WAI-ARIA alert dialog pattern](https://www.w3.org/WAI/ARIA/apg/patt
606
606
 
607
607
  ## Related
608
608
 
609
- [Dialog](/docs/components/dialog)
609
+ [Dialog](dialog.md)
610
610
 
611
611
  Use for focused tasks with fields.
612
612
 
613
- [Button](/docs/components/button)
613
+ [Button](button.md)
614
614
 
615
615
  Use for each action in the footer.
616
616
 
617
- [ButtonGroup](/docs/components/button-group)
617
+ [ButtonGroup](button-group.md)
618
618
 
619
619
  Use for the Cancel and confirm actions.
620
620
 
621
- [Menu](/docs/components/menu)
621
+ [Menu](menu.md)
622
622
 
623
623
  Use for opening a confirmation from a destructive item.
624
624
 
625
- [Toast](/docs/components/toast)
625
+ [Toast](toast.md)
626
626
 
627
627
  Use for Undo after reversible actions.
628
628
 
629
- [Destructive Actions](/docs/patterns/destructive-actions)
629
+ [Destructive Actions](../patterns/destructive-actions.md)
630
630
 
631
631
  Covers deleting and revoking.
@@ -169,11 +169,11 @@ import { Alert } from '@tempoxyz/ds'
169
169
 
170
170
  ### When Not to Use
171
171
 
172
- * Use [Banner](/docs/components/banner) for a message about the whole product or page, such as an outage.
173
- * Use [Toast](/docs/components/toast) to confirm that an action finished, such as Payment sent.
174
- * If an action needs a decision before it continues, use [AlertDialog](/docs/components/alert-dialog).
175
- * Use `Field.Error` from [Field](/docs/components/field) for a validation message on one input.
176
- * Use [Badge](/docs/components/badge) for a one-word status on a table row or card, such as Pending.
172
+ * Use [Banner](banner.md) for a message about the whole product or page, such as an outage.
173
+ * Use [Toast](toast.md) to confirm that an action finished, such as Payment sent.
174
+ * If an action needs a decision before it continues, use [AlertDialog](alert-dialog.md).
175
+ * Use `Field.Error` from [Field](field.md) for a validation message on one input.
176
+ * Use [Badge](badge.md) for a one-word status on a table row or card, such as Pending.
177
177
 
178
178
  ### Choose an Intent by Severity
179
179
 
@@ -239,7 +239,7 @@ export function Demo() {
239
239
 
240
240
  ### Place It Beside What It Describes
241
241
 
242
- Remove the alert when its condition ends, such as when fees return to normal. In a [Dialog](/docs/components/dialog), show one alert at full width, below the input it describes.
242
+ Remove the alert when its condition ends, such as when fees return to normal. In a [Dialog](dialog.md), show one alert at full width, below the input it describes.
243
243
 
244
244
  **Do:** Put the alert directly above the form it describes, or directly below its control.
245
245
 
@@ -427,22 +427,22 @@ An alert is a live region whose role depends on `intent`. It does not move focus
427
427
 
428
428
  ## Related
429
429
 
430
- [Banner](/docs/components/banner)
430
+ [Banner](banner.md)
431
431
 
432
432
  Use for a message about the whole page.
433
433
 
434
- [Toast](/docs/components/toast)
434
+ [Toast](toast.md)
435
435
 
436
436
  Use for confirming a finished action.
437
437
 
438
- [Field](/docs/components/field)
438
+ [Field](field.md)
439
439
 
440
440
  Use for validation messages on an input.
441
441
 
442
- [Errors and Validation](/docs/patterns/errors-and-validation)
442
+ [Errors and Validation](../patterns/errors-and-validation.md)
443
443
 
444
444
  Covers reporting failures.
445
445
 
446
- [Feedback and Status](/docs/patterns/feedback-and-status)
446
+ [Feedback and Status](../patterns/feedback-and-status.md)
447
447
 
448
448
  Covers choosing a message component.
@@ -14,7 +14,7 @@ An amount input is a filled card with the label, the amount in heading-size digi
14
14
 
15
15
  ### Basic
16
16
 
17
- Place the `Field.Label`, a [Token](/docs/components/token), and a `Field.Description` inside `AmountInput.Root`. They take their own rows above and below the amount.
17
+ Place the `Field.Label`, a [Token](token.md), and a `Field.Description` inside `AmountInput.Root`. They take their own rows above and below the amount.
18
18
 
19
19
  ```tsx
20
20
  import { AmountInput, Field, style, Token } from '@tempoxyz/ds'
@@ -61,16 +61,16 @@ import { AmountInput, Token } from '@tempoxyz/ds'
61
61
 
62
62
  ### When Not to Use
63
63
 
64
- * Use [NumberField](/docs/components/number-field) for whole quantities adjusted in steps, such as webhook retries.
65
- * Use [TextInput](/docs/components/text-input) for identifiers with digits, such as a 0x address or a bank account number.
66
- * Use [OtpField](/docs/components/otp-field) for one-time verification codes.
67
- * Use [Amount](/docs/components/amount) to show a read-only value, such as a balance or a network fee.
64
+ * Use [NumberField](number-field.md) for whole quantities adjusted in steps, such as webhook retries.
65
+ * Use [TextInput](text-input.md) for identifiers with digits, such as a 0x address or a bank account number.
66
+ * Use [OtpField](otp-field.md) for one-time verification codes.
67
+ * Use [Amount](amount.md) to show a read-only value, such as a balance or a network fee.
68
68
 
69
69
  ### Name the Token Beside the Digits
70
70
 
71
- Put a [Token](/docs/components/token) after `AmountInput.Control`. Give it `readOnly` when the token is fixed, and pass it to a picker trigger's `render` when the token can change.
71
+ Put a [Token](token.md) after `AmountInput.Control`. Give it `readOnly` when the token is fixed, and pass it to a picker trigger's `render` when the token can change.
72
72
 
73
- **Do:** Name the token beside the amount with a [Token](/docs/components/token).
73
+ **Do:** Name the token beside the amount with a [Token](token.md).
74
74
 
75
75
  ```tsx
76
76
  /**
@@ -252,7 +252,7 @@ namespace styles {
252
252
 
253
253
  ### Stack Two Cards for a Conversion
254
254
 
255
- For a conversion, place a From card and a To card one above the other, with a small arrow [Button](/docs/components/button) between them that swaps the two.
255
+ For a conversion, place a From card and a To card one above the other, with a small arrow [Button](button.md) between them that swaps the two.
256
256
 
257
257
  ## Content
258
258
 
@@ -284,22 +284,22 @@ The ignored keystrokes have no announcement. State the accepted format, such as
284
284
 
285
285
  ## Related
286
286
 
287
- [Amount](/docs/components/amount)
287
+ [Amount](amount.md)
288
288
 
289
289
  Use for displaying amounts.
290
290
 
291
- [Field](/docs/components/field)
291
+ [Field](field.md)
292
292
 
293
293
  Use for the label, balance, and error.
294
294
 
295
- [NumberField](/docs/components/number-field)
295
+ [NumberField](number-field.md)
296
296
 
297
297
  Use for stepped quantities.
298
298
 
299
- [Token](/docs/components/token)
299
+ [Token](token.md)
300
300
 
301
301
  Use for the token pill beside the amount.
302
302
 
303
- [Payments](/docs/patterns/payments)
303
+ [Payments](../patterns/payments.md)
304
304
 
305
305
  Covers send, review, and confirmation flows.
@@ -235,8 +235,8 @@ import { Amount } from '@tempoxyz/ds'
235
235
 
236
236
  ### When Not to Use
237
237
 
238
- * Use [AmountInput](/docs/components/amount-input) when people enter an amount.
239
- * Use `Table.Cell` with `numeric` in a [Table](/docs/components/table) for counts and metrics without a unit, such as TPS or block height.
238
+ * Use [AmountInput](amount-input.md) when people enter an amount.
239
+ * Use `Table.Cell` with `numeric` in a [Table](table.md) for counts and metrics without a unit, such as TPS or block height.
240
240
 
241
241
  ### Always Show the Unit
242
242
 
@@ -769,26 +769,26 @@ Renders a `<span>` with no role. Screen readers read the formatted text as writt
769
769
 
770
770
  ## Related
771
771
 
772
- [AmountInput](/docs/components/amount-input)
772
+ [AmountInput](amount-input.md)
773
773
 
774
774
  Use for entering amounts.
775
775
 
776
- [TokenLogo](/docs/components/token-logo)
776
+ [TokenLogo](token-logo.md)
777
777
 
778
778
  Use for the token icon beside an amount.
779
779
 
780
- [Table](/docs/components/table)
780
+ [Table](table.md)
781
781
 
782
782
  Use for laying out amounts.
783
783
 
784
- [ListGroup](/docs/components/list-group)
784
+ [ListGroup](list-group.md)
785
785
 
786
786
  Use for laying out amounts.
787
787
 
788
- [Payments](/docs/patterns/payments)
788
+ [Payments](../patterns/payments.md)
789
789
 
790
790
  Covers send and review screens.
791
791
 
792
- [Blockchain Values](/docs/patterns/blockchain-values)
792
+ [Blockchain Values](../patterns/blockchain-values.md)
793
793
 
794
794
  Covers token amounts and fees.
@@ -179,14 +179,14 @@ import { AppShell } from '@tempoxyz/ds'
179
179
  ### When to Use
180
180
 
181
181
  * Frame a product with persistent navigation, such as Tempo Console or the web wallet. Render it once, in the root layout.
182
- * Pair a [SidebarMenu](/docs/components/sidebar-menu) with a content column of tables, cards, or settings.
182
+ * Pair a [SidebarMenu](sidebar-menu.md) with a content column of tables, cards, or settings.
183
183
 
184
184
  ### When Not to Use
185
185
 
186
- * Use [Container](/docs/components/container) for pages without persistent navigation, such as sign-in, onboarding, or a public receipt.
187
- * Use [Dialog](/docs/components/dialog), or a full-screen flow in a [Container](/docs/components/container), for focused tasks such as Send payment.
188
- * Use [Drawer](/docs/components/drawer) for a details or filter panel that opens on demand. The shell's drawer holds only primary navigation.
189
- * Use [Frame](/docs/components/frame) for a header, body, and footer inside a card or popup.
186
+ * Use [Container](container.md) for pages without persistent navigation, such as sign-in, onboarding, or a public receipt.
187
+ * Use [Dialog](dialog.md), or a full-screen flow in a [Container](container.md), for focused tasks such as Send payment.
188
+ * Use [Drawer](drawer.md) for a details or filter panel that opens on demand. The shell's drawer holds only primary navigation.
189
+ * Use [Frame](frame.md) for a header, body, and footer inside a card or popup.
190
190
 
191
191
  ### Plan for Each Layout
192
192
 
@@ -292,7 +292,7 @@ Keep the header and footer short so the menu keeps most of the height. Set `--si
292
292
 
293
293
  ### Choose the Bottom Bar Items
294
294
 
295
- Wherever the drawer replaces the sidebar, a bottom bar repeats the [SidebarMenu](/docs/components/sidebar-menu) items that set `tabBar`, in sidebar order, and ends with the menu button. Keep the rest in the drawer.
295
+ Wherever the drawer replaces the sidebar, a bottom bar repeats the [SidebarMenu](sidebar-menu.md) items that set `tabBar`, in sidebar order, and ends with the menu button. Keep the rest in the drawer.
296
296
 
297
297
  * **Tab (tabBar="tab"):** Shows the icon in the tab bar pill. Choose up to three top destinations.
298
298
  * **Action (tabBar="action"):** Shows the icon in a floating button beside the pill. Choose one main action.
@@ -308,7 +308,7 @@ Wherever the drawer replaces the sidebar, a bottom bar repeats the [SidebarMenu]
308
308
 
309
309
  `AppShell.Title` renders the page's `h1` in the header bar across the top of the content column. Keep one primary action in the header.
310
310
 
311
- **Do:** Put the title first, then page actions, such as a `small` [Button](/docs/components/button).
311
+ **Do:** Put the title first, then page actions, such as a `small` [Button](button.md).
312
312
 
313
313
  ```tsx
314
314
  /**
@@ -497,7 +497,7 @@ namespace styles {
497
497
 
498
498
  ## Content
499
499
 
500
- * Match `AppShell.Title` to the label of the active [SidebarMenu](/docs/components/sidebar-menu) item, such as API keys.
500
+ * Match `AppShell.Title` to the label of the active [SidebarMenu](sidebar-menu.md) item, such as API keys.
501
501
  * Keep titles short enough to share the header row with its actions at 360px.
502
502
 
503
503
  ## Accessibility
@@ -538,22 +538,22 @@ Provides the page landmarks and the `h1`. Below 1024px, the sidebar drawer follo
538
538
 
539
539
  ## Related
540
540
 
541
- [SidebarMenu](/docs/components/sidebar-menu)
541
+ [SidebarMenu](sidebar-menu.md)
542
542
 
543
543
  Use for the navigation inside the sidebar.
544
544
 
545
- [Container](/docs/components/container)
545
+ [Container](container.md)
546
546
 
547
547
  Use for pages without a sidebar.
548
548
 
549
- [Drawer](/docs/components/drawer)
549
+ [Drawer](drawer.md)
550
550
 
551
551
  Use for panels that open on demand.
552
552
 
553
- [Responsive Layout](/docs/patterns/responsive-layout)
553
+ [Responsive Layout](../patterns/responsive-layout.md)
554
554
 
555
555
  Covers adapting pages across breakpoints.
556
556
 
557
- [Navigation](/docs/patterns/navigation)
557
+ [Navigation](../patterns/navigation.md)
558
558
 
559
559
  Covers choosing between navigation components.