@zevra/ui 0.20.0 → 0.21.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.
- package/DECISIONS.md +54 -0
- package/dist/content.d.ts +24 -5
- package/dist/content.d.ts.map +1 -1
- package/dist/content.js +21 -5
- package/dist/content.js.map +1 -1
- package/dist/css-inline.d.ts.map +1 -1
- package/dist/css-inline.js +1 -1
- package/dist/css-inline.js.map +1 -1
- package/package.json +1 -1
- package/react/content.tsx +48 -8
- package/react/css-inline.ts +1 -1
- package/src/components.css +50 -3
- package/src/layout.css +28 -5
package/dist/css-inline.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"css-inline.js","sourceRoot":"","sources":["../react/css-inline.ts"],"names":[],"mappings":"AAAA,qEAAqE;AACrE,0EAA0E;AAE1E;;;iEAGiE;AACjE,MAAM,CAAC,MAAM,WAAW,GAAW,
|
|
1
|
+
{"version":3,"file":"css-inline.js","sourceRoot":"","sources":["../react/css-inline.ts"],"names":[],"mappings":"AAAA,qEAAqE;AACrE,0EAA0E;AAE1E;;;iEAGiE;AACjE,MAAM,CAAC,MAAM,WAAW,GAAW,osiQAAosiQ,CAAA;AAEvuiQ;;;yBAGyB;AACzB,MAAM,CAAC,MAAM,WAAW,GAAW,03BAA03B,CAAA"}
|
package/package.json
CHANGED
package/react/content.tsx
CHANGED
|
@@ -247,21 +247,61 @@ export function Faq({ className, ...reste }: Div & { className?: string }) {
|
|
|
247
247
|
return <div className={cx('zv-faq', className)} {...reste} />
|
|
248
248
|
}
|
|
249
249
|
|
|
250
|
-
export interface FaqItemProps
|
|
250
|
+
export interface FaqItemProps
|
|
251
|
+
extends Omit<HTMLAttributes<HTMLDetailsElement>, 'className' | 'title'> {
|
|
251
252
|
question: ReactNode
|
|
253
|
+
/** Dépliée au chargement. Une par page au plus : si toutes le sont, le
|
|
254
|
+
* repli ne sert plus à rien et la page redevient un mur. */
|
|
255
|
+
ouvert?: boolean
|
|
252
256
|
className?: string
|
|
253
257
|
children?: ReactNode
|
|
254
258
|
}
|
|
255
259
|
|
|
256
|
-
/**
|
|
257
|
-
*
|
|
258
|
-
*
|
|
259
|
-
|
|
260
|
+
/** Une question qui se replie. `<details>`, donc AUCUN JavaScript : elle
|
|
261
|
+
* s'ouvre au clic, à Entrée et à Espace, elle est annoncée comme repliable,
|
|
262
|
+
* et la recherche du navigateur (⌘F) l'ouvre toute seule pour montrer ce
|
|
263
|
+
* qu'elle a trouvé.
|
|
264
|
+
*
|
|
265
|
+
* ⚠️ La réponse reste DANS LE DOM quand la question est fermée — `details`
|
|
266
|
+
* la masque, il ne la retire pas. C'est ce qui permet à une page de porter
|
|
267
|
+
* un balisage `FAQPage` honnête : ce que le moteur lit est bien ce que le
|
|
268
|
+
* visiteur peut ouvrir. Un accordéon qui démonte son contenu annoncerait
|
|
269
|
+
* des réponses absentes.
|
|
270
|
+
*
|
|
271
|
+
* Le chevron fait partie du composant, comme celui de `Fold` et la flèche
|
|
272
|
+
* de `LinkArrow` : recopié à la main, il finit par diverger.
|
|
273
|
+
*
|
|
274
|
+
* `question` accepte un TITRE (`<h3>Ma question</h3>`) : une FAQ de vitrine
|
|
275
|
+
* veut ses questions dans le plan du document — c'est ce que lisent les
|
|
276
|
+
* moteurs, et ce que parcourt un lecteur d'écran qui saute de titre en
|
|
277
|
+
* titre. Le CSS lui retire ce que le navigateur lui met : le niveau reste
|
|
278
|
+
* au balisage, l'apparence au système. */
|
|
279
|
+
export function FaqItem({
|
|
280
|
+
question,
|
|
281
|
+
ouvert,
|
|
282
|
+
className,
|
|
283
|
+
children,
|
|
284
|
+
...reste
|
|
285
|
+
}: FaqItemProps) {
|
|
260
286
|
return (
|
|
261
|
-
<
|
|
262
|
-
<
|
|
287
|
+
<details className={cx('zv-faq__item', className)} open={ouvert} {...reste}>
|
|
288
|
+
<summary className="zv-faq__q">
|
|
289
|
+
{question}
|
|
290
|
+
<svg
|
|
291
|
+
className="zv-faq__chevron"
|
|
292
|
+
viewBox="0 0 24 24"
|
|
293
|
+
fill="none"
|
|
294
|
+
stroke="currentColor"
|
|
295
|
+
strokeWidth="2"
|
|
296
|
+
strokeLinecap="square"
|
|
297
|
+
strokeLinejoin="miter"
|
|
298
|
+
aria-hidden="true"
|
|
299
|
+
>
|
|
300
|
+
<path d="M6.67 9.33 L12 14.67 L17.33 9.33" />
|
|
301
|
+
</svg>
|
|
302
|
+
</summary>
|
|
263
303
|
<p className="zv-faq__a">{children}</p>
|
|
264
|
-
</
|
|
304
|
+
</details>
|
|
265
305
|
)
|
|
266
306
|
}
|
|
267
307
|
|