@tempoxyz/ds 0.3.9 → 0.3.11

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 (128) hide show
  1. package/dist/docs/AGENTS.md +9 -0
  2. package/dist/docs/components/accordion.md +489 -0
  3. package/dist/docs/components/address-card.md +147 -0
  4. package/dist/docs/components/agent-logo.md +194 -0
  5. package/dist/docs/components/alert-dialog.md +631 -0
  6. package/dist/docs/components/alert.md +448 -0
  7. package/dist/docs/components/amount-input.md +305 -0
  8. package/dist/docs/components/amount.md +794 -0
  9. package/dist/docs/components/app-shell.md +559 -0
  10. package/dist/docs/components/asset-chip.md +294 -0
  11. package/dist/docs/components/autocomplete.md +619 -0
  12. package/dist/docs/components/avatar.md +321 -0
  13. package/dist/docs/components/badge.md +339 -0
  14. package/dist/docs/components/badged-logo.md +116 -0
  15. package/dist/docs/components/banner.md +379 -0
  16. package/dist/docs/components/bar-chart.md +208 -0
  17. package/dist/docs/components/breadcrumbs.md +380 -0
  18. package/dist/docs/components/button-group.md +286 -0
  19. package/dist/docs/components/button.md +650 -0
  20. package/dist/docs/components/calendar.md +375 -0
  21. package/dist/docs/components/callout.md +96 -0
  22. package/dist/docs/components/checkbox-group.md +521 -0
  23. package/dist/docs/components/checkbox.md +467 -0
  24. package/dist/docs/components/choice-group.md +516 -0
  25. package/dist/docs/components/choicebox.md +641 -0
  26. package/dist/docs/components/code.md +100 -0
  27. package/dist/docs/components/combobox.md +939 -0
  28. package/dist/docs/components/container.md +257 -0
  29. package/dist/docs/components/copy-button.md +642 -0
  30. package/dist/docs/components/date-picker.md +514 -0
  31. package/dist/docs/components/dialog.md +1332 -0
  32. package/dist/docs/components/drawer.md +966 -0
  33. package/dist/docs/components/empty.md +340 -0
  34. package/dist/docs/components/field.md +570 -0
  35. package/dist/docs/components/fieldset.md +398 -0
  36. package/dist/docs/components/frame.md +434 -0
  37. package/dist/docs/components/gauge.md +299 -0
  38. package/dist/docs/components/get-started-visual.md +117 -0
  39. package/dist/docs/components/grid.md +288 -0
  40. package/dist/docs/components/hero-visual.md +155 -0
  41. package/dist/docs/components/hex.md +487 -0
  42. package/dist/docs/components/icon-tile.md +292 -0
  43. package/dist/docs/components/identicon.md +371 -0
  44. package/dist/docs/components/inline.md +233 -0
  45. package/dist/docs/components/inset.md +225 -0
  46. package/dist/docs/components/kbd.md +423 -0
  47. package/dist/docs/components/list-group.md +981 -0
  48. package/dist/docs/components/loading-dots.md +237 -0
  49. package/dist/docs/components/menu.md +934 -0
  50. package/dist/docs/components/native-select.md +204 -0
  51. package/dist/docs/components/network-logo.md +248 -0
  52. package/dist/docs/components/number-field.md +543 -0
  53. package/dist/docs/components/otp-field.md +616 -0
  54. package/dist/docs/components/pagination.md +516 -0
  55. package/dist/docs/components/popover.md +544 -0
  56. package/dist/docs/components/progress.md +388 -0
  57. package/dist/docs/components/qr.md +314 -0
  58. package/dist/docs/components/radio-group.md +528 -0
  59. package/dist/docs/components/secret-value.md +406 -0
  60. package/dist/docs/components/select.md +751 -0
  61. package/dist/docs/components/separator.md +379 -0
  62. package/dist/docs/components/sidebar-menu.md +922 -0
  63. package/dist/docs/components/skeleton.md +517 -0
  64. package/dist/docs/components/slider.md +539 -0
  65. package/dist/docs/components/snippet.md +424 -0
  66. package/dist/docs/components/spinner.md +216 -0
  67. package/dist/docs/components/split-bar.md +139 -0
  68. package/dist/docs/components/split-button.md +464 -0
  69. package/dist/docs/components/stack.md +299 -0
  70. package/dist/docs/components/status-chip.md +226 -0
  71. package/dist/docs/components/status-indicator.md +119 -0
  72. package/dist/docs/components/status-row.md +174 -0
  73. package/dist/docs/components/stepper.md +451 -0
  74. package/dist/docs/components/success-hero.md +157 -0
  75. package/dist/docs/components/surface.md +639 -0
  76. package/dist/docs/components/switch.md +472 -0
  77. package/dist/docs/components/table.md +967 -0
  78. package/dist/docs/components/tabs.md +627 -0
  79. package/dist/docs/components/tempo-logo.md +185 -0
  80. package/dist/docs/components/text-input.md +624 -0
  81. package/dist/docs/components/textarea.md +352 -0
  82. package/dist/docs/components/toast.md +535 -0
  83. package/dist/docs/components/token-logo.md +371 -0
  84. package/dist/docs/components/token.md +247 -0
  85. package/dist/docs/components/tooltip.md +490 -0
  86. package/dist/docs/components/verification-code.md +116 -0
  87. package/dist/docs/components/visual.md +249 -0
  88. package/dist/docs/components.md +203 -0
  89. package/dist/docs/foundations/accessibility.md +377 -0
  90. package/dist/docs/foundations/agents.md +150 -0
  91. package/dist/docs/foundations/color.md +522 -0
  92. package/dist/docs/foundations/content/tone.md +194 -0
  93. package/dist/docs/foundations/content/voice.md +194 -0
  94. package/dist/docs/foundations/content/writing-style.md +406 -0
  95. package/dist/docs/foundations/iconography.md +282 -0
  96. package/dist/docs/foundations/intent.md +360 -0
  97. package/dist/docs/foundations/layout.md +508 -0
  98. package/dist/docs/foundations/linter.md +296 -0
  99. package/dist/docs/foundations/motion.md +151 -0
  100. package/dist/docs/foundations/radius-and-padding.md +86 -0
  101. package/dist/docs/foundations/typography.md +266 -0
  102. package/dist/docs/index.md +137 -0
  103. package/dist/docs/introduction/faq.md +132 -0
  104. package/dist/docs/introduction/getting-started.md +377 -0
  105. package/dist/docs/patterns/blockchain-values.md +709 -0
  106. package/dist/docs/patterns/dashboards.md +638 -0
  107. package/dist/docs/patterns/destructive-actions.md +626 -0
  108. package/dist/docs/patterns/empty-states.md +612 -0
  109. package/dist/docs/patterns/errors-and-validation.md +808 -0
  110. package/dist/docs/patterns/feedback-and-status.md +518 -0
  111. package/dist/docs/patterns/forms.md +679 -0
  112. package/dist/docs/patterns/loading.md +630 -0
  113. package/dist/docs/patterns/navigation.md +397 -0
  114. package/dist/docs/patterns/payments.md +765 -0
  115. package/dist/docs/patterns/responsive-layout.md +997 -0
  116. package/dist/docs/patterns/tables-and-lists.md +964 -0
  117. package/dist/docs/products/tempo-console.md +671 -0
  118. package/dist/docs/products/tempo-performance.md +437 -0
  119. package/dist/docs/products/tempo-wallet.md +438 -0
  120. package/dist/web/components/OtpField.css +1 -1
  121. package/dist/web/components/OtpField.d.ts +1 -1
  122. package/dist/web/components/OtpField.d.ts.map +1 -1
  123. package/dist/web/components/OtpField.js +3 -4
  124. package/dist/web/components/OtpField.js.map +1 -1
  125. package/dist/web/components/OtpField.js.zyzz.json +1 -1
  126. package/dist/web/index.js.zyzz.json +1 -1
  127. package/package.json +1 -1
  128. package/src/web/components/OtpField.tsx +2 -24
@@ -0,0 +1,237 @@
1
+ # LoadingDots
2
+
3
+ Shows three pulsing dots for inline loading.
4
+
5
+ [View source and API](https://github.com/tempoxyz/ds/blob/main/src/web/components/LoadingDots.tsx)
6
+
7
+ ## Overview
8
+
9
+ LoadingDots renders three pulsing dots inline, such as inside a button or beside text.
10
+
11
+ ## Examples
12
+
13
+ ### Basic
14
+
15
+ ```tsx
16
+ import { LoadingDots } from '@tempoxyz/ds'
17
+
18
+ export function Demo() {
19
+ return <LoadingDots />
20
+ }
21
+ ```
22
+
23
+ [View example source](https://github.com/tempoxyz/ds/blob/main/docs/src/examples/demos/LoadingDots/Basic.tsx)
24
+
25
+ ### Size
26
+
27
+ Set `size` to `small`, `medium` (default), or `large`.
28
+
29
+ ```tsx
30
+ import { LoadingDots, style } from '@tempoxyz/ds'
31
+
32
+ export function Demo() {
33
+ return (
34
+ <div {...styles.row()}>
35
+ {(['small', 'medium', 'large'] as const).map((size) => (
36
+ <LoadingDots key={size} size={size} />
37
+ ))}
38
+ </div>
39
+ )
40
+ }
41
+
42
+ namespace styles {
43
+ export const row = style({ alignItems: 'center', display: 'flex', gap: '24' })
44
+ }
45
+ ```
46
+
47
+ [View example source](https://github.com/tempoxyz/ds/blob/main/docs/src/examples/demos/LoadingDots/Size.tsx)
48
+
49
+ ## Anatomy
50
+
51
+ Import the component and assemble its parts.
52
+
53
+ ```tsx
54
+ import { LoadingDots } from '@tempoxyz/ds'
55
+
56
+ <LoadingDots />
57
+ ```
58
+
59
+ ## Guidelines
60
+
61
+ ### When to Use
62
+
63
+ * Show a short wait inside a line of text, such as Estimating network fee.
64
+ * Hold the place of one inline value, such as an exchange rate or a recipient name.
65
+
66
+ ### When Not to Use
67
+
68
+ * Use `loading` on a [Button](/docs/components/button) while its action runs.
69
+ * Use [Spinner](/docs/components/spinner) for a busy region or control.
70
+ * Use [Skeleton](/docs/components/skeleton) for content with a known shape, such as rows or cards.
71
+ * Use [Progress](/docs/components/progress) for measurable work, or any wait longer than about 10 seconds.
72
+
73
+ ### Keep Them in Line With Text
74
+
75
+ The dots render as an inline `span`, aligned to the middle of the line in the current text color.
76
+
77
+ **Do:** Put the dots after the words that describe the wait.
78
+
79
+ ```tsx
80
+ /**
81
+ * Do example for "Keep Them in Line With Text" on the LoadingDots page.
82
+ * Put the dots after the words that describe the wait.
83
+ * @module
84
+ */
85
+ import { LoadingDots, style } from '@tempoxyz/ds'
86
+
87
+ /** Renders the static preview, which the guideline card shows inert. */
88
+ export function Demo() {
89
+ return (
90
+ <div {...styles.text()}>
91
+ Estimating network fee <LoadingDots aria-label="Estimating network fee" size="small" />
92
+ </div>
93
+ )
94
+ }
95
+
96
+ namespace styles {
97
+ export const text = style({ color: 'content.secondary', typography: 'body.b2' })
98
+ }
99
+ ```
100
+
101
+ **Don't:** Fill an empty card with dots in place of its content.
102
+
103
+ ```tsx
104
+ /**
105
+ * Don't example for "Keep Them in Line With Text" on the LoadingDots page.
106
+ * Don't fill an empty card with dots in place of its content.
107
+ * @module
108
+ */
109
+ import { LoadingDots, style } from '@tempoxyz/ds'
110
+
111
+ /** Renders the static preview, which the guideline card shows inert. */
112
+ export function Demo() {
113
+ return (
114
+ <div {...styles.card()}>
115
+ <div {...styles.title()}>Activity</div>
116
+ <div {...styles.body()}>
117
+ <LoadingDots size="large" />
118
+ </div>
119
+ </div>
120
+ )
121
+ }
122
+
123
+ namespace styles {
124
+ export const body = style({
125
+ alignItems: 'center',
126
+ display: 'flex',
127
+ height: '100',
128
+ justifyContent: 'center',
129
+ })
130
+
131
+ export const card = style({
132
+ borderColor: 'line.secondary',
133
+ borderRadius: 'xs',
134
+ borderStyle: 'solid',
135
+ borderWidth: 'regular',
136
+ boxSizing: 'border-box',
137
+ padding: '16',
138
+ width: '100% !custom',
139
+ })
140
+
141
+ export const title = style({ color: 'content.primary', typography: 'body.b2Strong' })
142
+ }
143
+ ```
144
+
145
+ ### Show Them Only After a Delay
146
+
147
+ * **Fast Responses (Under 300 ms):** Show no dots. Render the value when it arrives.
148
+ * **Longer Waits (Over 300 ms):** Show the dots after the delay, to avoid a flash.
149
+
150
+ ### Replace Them With the Result
151
+
152
+ Keep the text length stable so the line does not reflow. If loading fails, show an error message in place of the dots.
153
+
154
+ **Do:** Replace the dots with the value when loading finishes.
155
+
156
+ ```tsx
157
+ /**
158
+ * Do example for "Replace Them With the Result" on the LoadingDots page.
159
+ * Replace the dots with the value when loading finishes.
160
+ * @module
161
+ */
162
+ import { style } from '@tempoxyz/ds'
163
+
164
+ /** Renders the static preview, which the guideline card shows inert. */
165
+ export function Demo() {
166
+ return <div {...styles.text()}>Network fee: $0.01</div>
167
+ }
168
+
169
+ namespace styles {
170
+ export const text = style({ color: 'content.secondary', typography: 'body.b2' })
171
+ }
172
+ ```
173
+
174
+ **Don't:** Leave the dots beside the value after it arrives.
175
+
176
+ ```tsx
177
+ /**
178
+ * Don't example for "Replace Them With the Result" on the LoadingDots page.
179
+ * Don't leave the dots beside the value after it arrives.
180
+ * @module
181
+ */
182
+ import { LoadingDots, style } from '@tempoxyz/ds'
183
+
184
+ /** Renders the static preview, which the guideline card shows inert. */
185
+ export function Demo() {
186
+ return (
187
+ <div {...styles.text()}>
188
+ Network fee: $0.01 <LoadingDots aria-label="Estimating network fee" size="small" />
189
+ </div>
190
+ )
191
+ }
192
+
193
+ namespace styles {
194
+ export const text = style({ color: 'content.secondary', typography: 'body.b2' })
195
+ }
196
+ ```
197
+
198
+ ### Size Them to the Text
199
+
200
+ * **Small (small):** Dense text, such as table cells.
201
+ * **Medium (medium):** The default, beside body text.
202
+ * **Large (large):** Beside larger values or headings.
203
+
204
+ ## Accessibility
205
+
206
+ LoadingDots renders a polite live region named "Loading". The dots carry no text.
207
+
208
+ ### Semantics
209
+
210
+ * **Root (status):** Announced politely as "Loading" by default, after current speech.
211
+ * **Custom Name (aria-label):** Replaces the default "Loading" name with a more specific one.
212
+ * **Reduced Motion (reduce):** If the reader prefers reduced motion, the dots hold still at reduced opacity.
213
+
214
+ ### Your Responsibilities
215
+
216
+ * **Say What Is Loading (aria-label):** Name it, such as "Estimating network fee", when "Loading" is too vague.
217
+ * **Keep Visible Text:** The dots are not focusable, and the accessible name is not visible. Keep text beside them.
218
+ * **Show One per Region:** Many status regions at once, such as one per table row, repeat the announcement.
219
+ * **Announce the Outcome (SC 4.1.3):** Announce the result or error in a live region when loading finishes.
220
+
221
+ ## Related
222
+
223
+ [Spinner](/docs/components/spinner)
224
+
225
+ Use for a busy region or control.
226
+
227
+ [Skeleton](/docs/components/skeleton)
228
+
229
+ Use for content with a known shape.
230
+
231
+ [Button](/docs/components/button)
232
+
233
+ Use for an action's loading state.
234
+
235
+ [Loading](/docs/patterns/loading)
236
+
237
+ Covers choosing a loading indicator.