@usableapp/cardds 0.3.0 → 0.4.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 (89) hide show
  1. package/README.md +9 -5
  2. package/css/actions.css +38 -27
  3. package/css/base.css +9 -9
  4. package/css/card.css +24 -23
  5. package/css/choice.css +50 -50
  6. package/css/forms.css +18 -18
  7. package/css/journey.css +16 -16
  8. package/css/layover.css +45 -45
  9. package/css/lists.css +43 -43
  10. package/css/media.css +33 -33
  11. package/css/numbers.css +25 -25
  12. package/css/people.css +11 -11
  13. package/css/sheet.css +21 -21
  14. package/css/theme.template.css +6 -3
  15. package/dist/actions/Btn.d.ts +109 -108
  16. package/dist/actions/BtnRow.d.ts +2 -2
  17. package/dist/actions/Chip.d.ts +102 -101
  18. package/dist/actions/Dot.d.ts +2 -2
  19. package/dist/actions/Dropdown.d.ts +4 -4
  20. package/dist/actions/Fab.d.ts +2 -2
  21. package/dist/actions/IconBtn.d.ts +107 -106
  22. package/dist/actions/Link.d.ts +105 -104
  23. package/dist/actions/Segment.d.ts +3 -3
  24. package/dist/cardds.css +333 -321
  25. package/dist/cards/Card.d.ts +99 -98
  26. package/dist/cards/CardFoot.d.ts +2 -2
  27. package/dist/cards/CardHead.d.ts +2 -2
  28. package/dist/cards/CardParts.d.ts +7 -7
  29. package/dist/cards/Placeholder.d.ts +2 -2
  30. package/dist/cards/Stat.d.ts +7 -5
  31. package/dist/cards/Stat.js +2 -2
  32. package/dist/choice/Calendar.d.ts +2 -2
  33. package/dist/choice/Check.d.ts +3 -3
  34. package/dist/choice/DayStrip.d.ts +3 -3
  35. package/dist/choice/Mood.d.ts +2 -2
  36. package/dist/choice/Slider.d.ts +2 -2
  37. package/dist/forms/AddRow.d.ts +2 -2
  38. package/dist/forms/Composer.d.ts +2 -2
  39. package/dist/forms/Field.d.ts +2 -2
  40. package/dist/forms/FileBtn.d.ts +2 -2
  41. package/dist/forms/Pin.d.ts +2 -2
  42. package/dist/journey/NoteRow.d.ts +2 -2
  43. package/dist/journey/Route.d.ts +2 -2
  44. package/dist/journey/TileBadge.d.ts +2 -2
  45. package/dist/layover/Banner.d.ts +2 -2
  46. package/dist/layover/Callout.d.ts +2 -2
  47. package/dist/layover/Deck.d.ts +3 -3
  48. package/dist/lists/Bubble.d.ts +3 -3
  49. package/dist/lists/Kv.d.ts +5 -5
  50. package/dist/lists/Legend.d.ts +3 -3
  51. package/dist/lists/Row.d.ts +5 -4
  52. package/dist/lists/Timeline.d.ts +3 -3
  53. package/dist/media/MapArea.d.ts +2 -2
  54. package/dist/media/Mosaic.d.ts +3 -3
  55. package/dist/media/Postcard.d.ts +2 -2
  56. package/dist/media/Quote.d.ts +2 -2
  57. package/dist/media/Tile.d.ts +5 -4
  58. package/dist/numbers/Badge.d.ts +2 -2
  59. package/dist/numbers/Band.d.ts +3 -3
  60. package/dist/numbers/Bars.d.ts +3 -3
  61. package/dist/numbers/DotGrid.d.ts +2 -2
  62. package/dist/numbers/Picker.d.ts +3 -3
  63. package/dist/numbers/Ring.d.ts +2 -2
  64. package/dist/numbers/Track.d.ts +3 -3
  65. package/dist/people/Avatar.d.ts +100 -99
  66. package/dist/people/AvatarPick.d.ts +3 -3
  67. package/dist/scaffold/ActionBar.d.ts +3 -3
  68. package/dist/scaffold/AppBar.d.ts +2 -2
  69. package/dist/scaffold/BaseContent.d.ts +3 -3
  70. package/dist/scaffold/Centre.d.ts +3 -3
  71. package/dist/scaffold/EmptyState.d.ts +2 -2
  72. package/dist/scaffold/FilterRow.d.ts +2 -2
  73. package/dist/scaffold/FloatBar.d.ts +105 -104
  74. package/dist/scaffold/PagerAt.d.ts +2 -2
  75. package/dist/scaffold/Screen.d.ts +100 -99
  76. package/dist/scaffold/TopBar.d.ts +2 -2
  77. package/dist/sheets/CardBack.d.ts +2 -2
  78. package/dist/sheets/Drawer.d.ts +5 -5
  79. package/dist/sheets/Sheet.d.ts +2 -2
  80. package/dist/sheets/SheetBody.d.ts +2 -2
  81. package/dist/sheets/SheetHead.d.ts +2 -2
  82. package/dist/sheets/SheetStack.d.ts +2 -2
  83. package/dist/sheets/SheetStage.d.ts +2 -2
  84. package/dist/sheets/Step.d.ts +2 -2
  85. package/dist/type/Icon.d.ts +22 -7
  86. package/dist/type/Icon.js +27 -4
  87. package/dist/type/Text.d.ts +7 -1
  88. package/dist/type/Text.js +2 -2
  89. package/package.json +3 -2
@@ -1,5 +1,5 @@
1
- import { type ComponentPropsWithoutRef, type ReactNode } from 'react';
2
- export interface FloatBarProps extends ComponentPropsWithoutRef<'nav'> {
1
+ import { type ComponentProps, type ReactNode } from 'react';
2
+ export interface FloatBarProps extends ComponentProps<'nav'> {
3
3
  /** the detached round button beside the pill (an IconBtn — search, add) */
4
4
  action?: ReactNode;
5
5
  }
@@ -9,7 +9,7 @@ export interface FloatBarProps extends ComponentPropsWithoutRef<'nav'> {
9
9
  * on a browsing screen (home, map) — never both.
10
10
  */
11
11
  export declare function FloatBar({ action, className, children, ...rest }: FloatBarProps): import("react").JSX.Element;
12
- export interface FloatBarItemProps extends ComponentPropsWithoutRef<'a'> {
12
+ export interface FloatBarItemProps extends ComponentProps<'a'> {
13
13
  /** the destination; without one it renders as a button */
14
14
  href?: string;
15
15
  /** this is the screen the member is on */
@@ -19,76 +19,125 @@ export interface FloatBarItemProps extends ComponentPropsWithoutRef<'a'> {
19
19
  }
20
20
  /** FloatBarItem — one tab in the FloatBar pill: icon over a caption; the current one is filled. */
21
21
  export declare function FloatBarItem({ href, current, icon, className, children, ...rest }: FloatBarItemProps): import("react").DetailedReactHTMLElement<{
22
- slot?: string | undefined | undefined;
23
- style?: import("react").CSSProperties | undefined;
24
- title?: string | undefined | undefined;
25
- suppressHydrationWarning?: boolean | undefined | undefined;
26
- color?: string | undefined | undefined;
27
- id?: string | undefined | undefined;
28
- lang?: string | undefined | undefined;
29
- media?: string | undefined | undefined;
30
- nonce?: string | undefined | undefined;
31
- part?: string | undefined | undefined;
22
+ ref?: import("react").Ref<HTMLAnchorElement> | undefined;
23
+ key?: import("react").Key | null | undefined;
24
+ download?: any;
25
+ hrefLang?: string | undefined;
26
+ media?: string | undefined;
27
+ ping?: string | undefined;
32
28
  target?: import("react").HTMLAttributeAnchorTarget | undefined;
33
29
  type: string | undefined;
30
+ referrerPolicy?: import("react").HTMLAttributeReferrerPolicy | undefined;
31
+ defaultChecked?: boolean | undefined;
32
+ defaultValue?: string | number | readonly string[] | undefined;
33
+ suppressContentEditableWarning?: boolean | undefined;
34
+ suppressHydrationWarning?: boolean | undefined;
35
+ accessKey?: string | undefined;
36
+ autoCapitalize?: "off" | "none" | "on" | "sentences" | "words" | "characters" | undefined | (string & {});
37
+ autoFocus?: boolean | undefined;
38
+ contentEditable?: (boolean | "true" | "false") | "inherit" | "plaintext-only" | undefined;
39
+ contextMenu?: string | undefined;
40
+ dir?: string | undefined;
41
+ draggable?: (boolean | "true" | "false") | undefined;
42
+ enterKeyHint?: "enter" | "done" | "go" | "next" | "previous" | "search" | "send" | undefined;
43
+ hidden?: boolean | undefined;
44
+ id?: string | undefined;
45
+ lang?: string | undefined;
46
+ nonce?: string | undefined;
47
+ slot?: string | undefined;
48
+ spellCheck?: (boolean | "true" | "false") | undefined;
49
+ style?: import("react").CSSProperties | undefined;
50
+ tabIndex?: number | undefined;
51
+ title?: string | undefined;
52
+ translate?: "yes" | "no" | undefined;
53
+ radioGroup?: string | undefined;
34
54
  role?: import("react").AriaRole | undefined;
35
- tabIndex?: number | undefined | undefined;
36
- "aria-activedescendant"?: string | undefined | undefined;
55
+ about?: string | undefined;
56
+ content?: string | undefined;
57
+ datatype?: string | undefined;
58
+ inlist?: any;
59
+ prefix?: string | undefined;
60
+ property?: string | undefined;
61
+ rel?: string | undefined;
62
+ resource?: string | undefined;
63
+ rev?: string | undefined;
64
+ typeof?: string | undefined;
65
+ vocab?: string | undefined;
66
+ autoCorrect?: string | undefined;
67
+ autoSave?: string | undefined;
68
+ color?: string | undefined;
69
+ itemProp?: string | undefined;
70
+ itemScope?: boolean | undefined;
71
+ itemType?: string | undefined;
72
+ itemID?: string | undefined;
73
+ itemRef?: string | undefined;
74
+ results?: number | undefined;
75
+ security?: string | undefined;
76
+ unselectable?: "on" | "off" | undefined;
77
+ popover?: "" | "auto" | "manual" | "hint" | undefined;
78
+ popoverTargetAction?: "toggle" | "show" | "hide" | undefined;
79
+ popoverTarget?: string | undefined;
80
+ inert?: boolean | undefined;
81
+ inputMode?: "none" | "text" | "tel" | "url" | "email" | "numeric" | "decimal" | "search" | undefined;
82
+ is?: string | undefined;
83
+ exportparts?: string | undefined;
84
+ part?: string | undefined;
85
+ "aria-activedescendant"?: string | undefined;
37
86
  "aria-atomic"?: (boolean | "true" | "false") | undefined;
38
- "aria-autocomplete"?: "none" | "inline" | "list" | "both" | undefined | undefined;
39
- "aria-braillelabel"?: string | undefined | undefined;
40
- "aria-brailleroledescription"?: string | undefined | undefined;
87
+ "aria-autocomplete"?: "none" | "inline" | "list" | "both" | undefined;
88
+ "aria-braillelabel"?: string | undefined;
89
+ "aria-brailleroledescription"?: string | undefined;
41
90
  "aria-busy"?: (boolean | "true" | "false") | undefined;
42
- "aria-checked"?: boolean | "false" | "mixed" | "true" | undefined | undefined;
43
- "aria-colcount"?: number | undefined | undefined;
44
- "aria-colindex"?: number | undefined | undefined;
45
- "aria-colindextext"?: string | undefined | undefined;
46
- "aria-colspan"?: number | undefined | undefined;
47
- "aria-controls"?: string | undefined | undefined;
91
+ "aria-checked"?: boolean | "false" | "mixed" | "true" | undefined;
92
+ "aria-colcount"?: number | undefined;
93
+ "aria-colindex"?: number | undefined;
94
+ "aria-colindextext"?: string | undefined;
95
+ "aria-colspan"?: number | undefined;
96
+ "aria-controls"?: string | undefined;
48
97
  "aria-current": boolean | "false" | "true" | "page" | "step" | "location" | "date" | "time" | undefined;
49
- "aria-describedby"?: string | undefined | undefined;
50
- "aria-description"?: string | undefined | undefined;
51
- "aria-details"?: string | undefined | undefined;
98
+ "aria-describedby"?: string | undefined;
99
+ "aria-description"?: string | undefined;
100
+ "aria-details"?: string | undefined;
52
101
  "aria-disabled"?: (boolean | "true" | "false") | undefined;
53
- "aria-dropeffect"?: "none" | "copy" | "execute" | "link" | "move" | "popup" | undefined | undefined;
54
- "aria-errormessage"?: string | undefined | undefined;
102
+ "aria-dropeffect"?: "none" | "copy" | "execute" | "link" | "move" | "popup" | undefined;
103
+ "aria-errormessage"?: string | undefined;
55
104
  "aria-expanded"?: (boolean | "true" | "false") | undefined;
56
- "aria-flowto"?: string | undefined | undefined;
105
+ "aria-flowto"?: string | undefined;
57
106
  "aria-grabbed"?: (boolean | "true" | "false") | undefined;
58
- "aria-haspopup"?: boolean | "false" | "true" | "menu" | "listbox" | "tree" | "grid" | "dialog" | undefined | undefined;
107
+ "aria-haspopup"?: boolean | "false" | "true" | "menu" | "listbox" | "tree" | "grid" | "dialog" | undefined;
59
108
  "aria-hidden"?: (boolean | "true" | "false") | undefined;
60
- "aria-invalid"?: boolean | "false" | "true" | "grammar" | "spelling" | undefined | undefined;
61
- "aria-keyshortcuts"?: string | undefined | undefined;
62
- "aria-label"?: string | undefined | undefined;
63
- "aria-labelledby"?: string | undefined | undefined;
64
- "aria-level"?: number | undefined | undefined;
65
- "aria-live"?: "off" | "assertive" | "polite" | undefined | undefined;
109
+ "aria-invalid"?: boolean | "false" | "true" | "grammar" | "spelling" | undefined;
110
+ "aria-keyshortcuts"?: string | undefined;
111
+ "aria-label"?: string | undefined;
112
+ "aria-labelledby"?: string | undefined;
113
+ "aria-level"?: number | undefined;
114
+ "aria-live"?: "off" | "assertive" | "polite" | undefined;
66
115
  "aria-modal"?: (boolean | "true" | "false") | undefined;
67
116
  "aria-multiline"?: (boolean | "true" | "false") | undefined;
68
117
  "aria-multiselectable"?: (boolean | "true" | "false") | undefined;
69
- "aria-orientation"?: "horizontal" | "vertical" | undefined | undefined;
70
- "aria-owns"?: string | undefined | undefined;
71
- "aria-placeholder"?: string | undefined | undefined;
72
- "aria-posinset"?: number | undefined | undefined;
73
- "aria-pressed"?: boolean | "false" | "mixed" | "true" | undefined | undefined;
118
+ "aria-orientation"?: "horizontal" | "vertical" | undefined;
119
+ "aria-owns"?: string | undefined;
120
+ "aria-placeholder"?: string | undefined;
121
+ "aria-posinset"?: number | undefined;
122
+ "aria-pressed"?: boolean | "false" | "mixed" | "true" | undefined;
74
123
  "aria-readonly"?: (boolean | "true" | "false") | undefined;
75
- "aria-relevant"?: "additions" | "additions removals" | "additions text" | "all" | "removals" | "removals additions" | "removals text" | "text" | "text additions" | "text removals" | undefined | undefined;
124
+ "aria-relevant"?: "additions" | "additions removals" | "additions text" | "all" | "removals" | "removals additions" | "removals text" | "text" | "text additions" | "text removals" | undefined;
76
125
  "aria-required"?: (boolean | "true" | "false") | undefined;
77
- "aria-roledescription"?: string | undefined | undefined;
78
- "aria-rowcount"?: number | undefined | undefined;
79
- "aria-rowindex"?: number | undefined | undefined;
80
- "aria-rowindextext"?: string | undefined | undefined;
81
- "aria-rowspan"?: number | undefined | undefined;
126
+ "aria-roledescription"?: string | undefined;
127
+ "aria-rowcount"?: number | undefined;
128
+ "aria-rowindex"?: number | undefined;
129
+ "aria-rowindextext"?: string | undefined;
130
+ "aria-rowspan"?: number | undefined;
82
131
  "aria-selected"?: (boolean | "true" | "false") | undefined;
83
- "aria-setsize"?: number | undefined | undefined;
84
- "aria-sort"?: "none" | "ascending" | "descending" | "other" | undefined | undefined;
85
- "aria-valuemax"?: number | undefined | undefined;
86
- "aria-valuemin"?: number | undefined | undefined;
87
- "aria-valuenow"?: number | undefined | undefined;
88
- "aria-valuetext"?: string | undefined | undefined;
132
+ "aria-setsize"?: number | undefined;
133
+ "aria-sort"?: "none" | "ascending" | "descending" | "other" | undefined;
134
+ "aria-valuemax"?: number | undefined;
135
+ "aria-valuemin"?: number | undefined;
136
+ "aria-valuenow"?: number | undefined;
137
+ "aria-valuetext"?: string | undefined;
89
138
  dangerouslySetInnerHTML?: {
90
139
  __html: string | TrustedHTML;
91
- } | undefined | undefined;
140
+ } | undefined;
92
141
  onCopy?: import("react").ClipboardEventHandler<HTMLAnchorElement> | undefined;
93
142
  onCopyCapture?: import("react").ClipboardEventHandler<HTMLAnchorElement> | undefined;
94
143
  onCut?: import("react").ClipboardEventHandler<HTMLAnchorElement> | undefined;
@@ -257,54 +306,6 @@ export declare function FloatBarItem({ href, current, icon, className, children,
257
306
  onTransitionRunCapture?: import("react").TransitionEventHandler<HTMLAnchorElement> | undefined;
258
307
  onTransitionStart?: import("react").TransitionEventHandler<HTMLAnchorElement> | undefined;
259
308
  onTransitionStartCapture?: import("react").TransitionEventHandler<HTMLAnchorElement> | undefined;
260
- key?: import("react").Key | null | undefined;
261
- defaultChecked?: boolean | undefined | undefined;
262
- defaultValue?: string | number | readonly string[] | undefined;
263
- suppressContentEditableWarning?: boolean | undefined | undefined;
264
- accessKey?: string | undefined | undefined;
265
- autoCapitalize?: "off" | "none" | "on" | "sentences" | "words" | "characters" | undefined | (string & {}) | undefined;
266
- autoFocus?: boolean | undefined | undefined;
267
- contentEditable?: (boolean | "true" | "false") | "inherit" | "plaintext-only" | undefined;
268
- contextMenu?: string | undefined | undefined;
269
- dir?: string | undefined | undefined;
270
- draggable?: (boolean | "true" | "false") | undefined;
271
- enterKeyHint?: "enter" | "done" | "go" | "next" | "previous" | "search" | "send" | undefined | undefined;
272
- hidden?: boolean | undefined | undefined;
273
- spellCheck?: (boolean | "true" | "false") | undefined;
274
- translate?: "yes" | "no" | undefined | undefined;
275
- radioGroup?: string | undefined | undefined;
276
- about?: string | undefined | undefined;
277
- content?: string | undefined | undefined;
278
- datatype?: string | undefined | undefined;
279
- inlist?: any;
280
- prefix?: string | undefined | undefined;
281
- property?: string | undefined | undefined;
282
- rel?: string | undefined | undefined;
283
- resource?: string | undefined | undefined;
284
- rev?: string | undefined | undefined;
285
- typeof?: string | undefined | undefined;
286
- vocab?: string | undefined | undefined;
287
- autoCorrect?: string | undefined | undefined;
288
- autoSave?: string | undefined | undefined;
289
- itemProp?: string | undefined | undefined;
290
- itemScope?: boolean | undefined | undefined;
291
- itemType?: string | undefined | undefined;
292
- itemID?: string | undefined | undefined;
293
- itemRef?: string | undefined | undefined;
294
- results?: number | undefined | undefined;
295
- security?: string | undefined | undefined;
296
- unselectable?: "on" | "off" | undefined | undefined;
297
- popover?: "" | "auto" | "manual" | "hint" | undefined | undefined;
298
- popoverTargetAction?: "toggle" | "show" | "hide" | undefined | undefined;
299
- popoverTarget?: string | undefined | undefined;
300
- inert?: boolean | undefined | undefined;
301
- inputMode?: "none" | "text" | "tel" | "url" | "email" | "numeric" | "decimal" | "search" | undefined | undefined;
302
- is?: string | undefined | undefined;
303
- exportparts?: string | undefined | undefined;
304
- download?: any;
305
- hrefLang?: string | undefined | undefined;
306
- ping?: string | undefined | undefined;
307
- referrerPolicy?: import("react").HTMLAttributeReferrerPolicy | undefined;
308
309
  href: string | undefined;
309
310
  className: string;
310
- }, HTMLElement>;
311
+ }, HTMLAnchorElement>;
@@ -1,5 +1,5 @@
1
- import type { ComponentPropsWithoutRef } from 'react';
2
- export interface PagerAtProps extends Omit<ComponentPropsWithoutRef<'span'>, 'children'> {
1
+ import type { ComponentProps } from 'react';
2
+ export interface PagerAtProps extends Omit<ComponentProps<'span'>, 'children'> {
3
3
  /** the current page, 1-based */
4
4
  at: number;
5
5
  /** how many pages */
@@ -1,6 +1,6 @@
1
- import { type ComponentPropsWithoutRef } from 'react';
1
+ import { type ComponentProps } from 'react';
2
2
  export type Palette = 'clay' | 'shine' | 'field' | 'roast' | 'hydro';
3
- export interface ScreenProps extends ComponentPropsWithoutRef<'div'> {
3
+ export interface ScreenProps extends ComponentProps<'div'> {
4
4
  /** exactly one phone height (100dvh), clipped: the box a Step or a SheetStack fills — an app screen, not a scrolling page */
5
5
  fill?: boolean;
6
6
  /** a colour preset from palette.css; omit for the black-and-white wireframe */
@@ -14,74 +14,119 @@ export interface ScreenProps extends ComponentPropsWithoutRef<'div'> {
14
14
  * Put an AppBar/TopBar first, the content next, and an ActionBar AFTER the screen (outside it).
15
15
  */
16
16
  export declare function Screen({ fill, palette, as, className, ...rest }: ScreenProps): import("react").DetailedReactHTMLElement<{
17
- slot?: string | undefined | undefined;
17
+ ref?: import("react").Ref<HTMLDivElement> | undefined;
18
+ key?: import("react").Key | null | undefined;
19
+ defaultChecked?: boolean | undefined;
20
+ defaultValue?: string | number | readonly string[] | undefined;
21
+ suppressContentEditableWarning?: boolean | undefined;
22
+ suppressHydrationWarning?: boolean | undefined;
23
+ accessKey?: string | undefined;
24
+ autoCapitalize?: "off" | "none" | "on" | "sentences" | "words" | "characters" | undefined | (string & {});
25
+ autoFocus?: boolean | undefined;
26
+ contentEditable?: (boolean | "true" | "false") | "inherit" | "plaintext-only" | undefined;
27
+ contextMenu?: string | undefined;
28
+ dir?: string | undefined;
29
+ draggable?: (boolean | "true" | "false") | undefined;
30
+ enterKeyHint?: "enter" | "done" | "go" | "next" | "previous" | "search" | "send" | undefined;
31
+ hidden?: boolean | undefined;
32
+ id?: string | undefined;
33
+ lang?: string | undefined;
34
+ nonce?: string | undefined;
35
+ slot?: string | undefined;
36
+ spellCheck?: (boolean | "true" | "false") | undefined;
18
37
  style?: import("react").CSSProperties | undefined;
19
- title?: string | undefined | undefined;
20
- suppressHydrationWarning?: boolean | undefined | undefined;
21
- color?: string | undefined | undefined;
22
- id?: string | undefined | undefined;
23
- lang?: string | undefined | undefined;
24
- nonce?: string | undefined | undefined;
25
- part?: string | undefined | undefined;
38
+ tabIndex?: number | undefined;
39
+ title?: string | undefined;
40
+ translate?: "yes" | "no" | undefined;
41
+ radioGroup?: string | undefined;
26
42
  role?: import("react").AriaRole | undefined;
27
- tabIndex?: number | undefined | undefined;
28
- "aria-activedescendant"?: string | undefined | undefined;
43
+ about?: string | undefined;
44
+ content?: string | undefined;
45
+ datatype?: string | undefined;
46
+ inlist?: any;
47
+ prefix?: string | undefined;
48
+ property?: string | undefined;
49
+ rel?: string | undefined;
50
+ resource?: string | undefined;
51
+ rev?: string | undefined;
52
+ typeof?: string | undefined;
53
+ vocab?: string | undefined;
54
+ autoCorrect?: string | undefined;
55
+ autoSave?: string | undefined;
56
+ color?: string | undefined;
57
+ itemProp?: string | undefined;
58
+ itemScope?: boolean | undefined;
59
+ itemType?: string | undefined;
60
+ itemID?: string | undefined;
61
+ itemRef?: string | undefined;
62
+ results?: number | undefined;
63
+ security?: string | undefined;
64
+ unselectable?: "on" | "off" | undefined;
65
+ popover?: "" | "auto" | "manual" | "hint" | undefined;
66
+ popoverTargetAction?: "toggle" | "show" | "hide" | undefined;
67
+ popoverTarget?: string | undefined;
68
+ inert?: boolean | undefined;
69
+ inputMode?: "none" | "text" | "tel" | "url" | "email" | "numeric" | "decimal" | "search" | undefined;
70
+ is?: string | undefined;
71
+ exportparts?: string | undefined;
72
+ part?: string | undefined;
73
+ "aria-activedescendant"?: string | undefined;
29
74
  "aria-atomic"?: (boolean | "true" | "false") | undefined;
30
- "aria-autocomplete"?: "none" | "inline" | "list" | "both" | undefined | undefined;
31
- "aria-braillelabel"?: string | undefined | undefined;
32
- "aria-brailleroledescription"?: string | undefined | undefined;
75
+ "aria-autocomplete"?: "none" | "inline" | "list" | "both" | undefined;
76
+ "aria-braillelabel"?: string | undefined;
77
+ "aria-brailleroledescription"?: string | undefined;
33
78
  "aria-busy"?: (boolean | "true" | "false") | undefined;
34
- "aria-checked"?: boolean | "false" | "mixed" | "true" | undefined | undefined;
35
- "aria-colcount"?: number | undefined | undefined;
36
- "aria-colindex"?: number | undefined | undefined;
37
- "aria-colindextext"?: string | undefined | undefined;
38
- "aria-colspan"?: number | undefined | undefined;
39
- "aria-controls"?: string | undefined | undefined;
40
- "aria-current"?: boolean | "false" | "true" | "page" | "step" | "location" | "date" | "time" | undefined | undefined;
41
- "aria-describedby"?: string | undefined | undefined;
42
- "aria-description"?: string | undefined | undefined;
43
- "aria-details"?: string | undefined | undefined;
79
+ "aria-checked"?: boolean | "false" | "mixed" | "true" | undefined;
80
+ "aria-colcount"?: number | undefined;
81
+ "aria-colindex"?: number | undefined;
82
+ "aria-colindextext"?: string | undefined;
83
+ "aria-colspan"?: number | undefined;
84
+ "aria-controls"?: string | undefined;
85
+ "aria-current"?: boolean | "false" | "true" | "page" | "step" | "location" | "date" | "time" | undefined;
86
+ "aria-describedby"?: string | undefined;
87
+ "aria-description"?: string | undefined;
88
+ "aria-details"?: string | undefined;
44
89
  "aria-disabled"?: (boolean | "true" | "false") | undefined;
45
- "aria-dropeffect"?: "none" | "copy" | "execute" | "link" | "move" | "popup" | undefined | undefined;
46
- "aria-errormessage"?: string | undefined | undefined;
90
+ "aria-dropeffect"?: "none" | "copy" | "execute" | "link" | "move" | "popup" | undefined;
91
+ "aria-errormessage"?: string | undefined;
47
92
  "aria-expanded"?: (boolean | "true" | "false") | undefined;
48
- "aria-flowto"?: string | undefined | undefined;
93
+ "aria-flowto"?: string | undefined;
49
94
  "aria-grabbed"?: (boolean | "true" | "false") | undefined;
50
- "aria-haspopup"?: boolean | "false" | "true" | "menu" | "listbox" | "tree" | "grid" | "dialog" | undefined | undefined;
95
+ "aria-haspopup"?: boolean | "false" | "true" | "menu" | "listbox" | "tree" | "grid" | "dialog" | undefined;
51
96
  "aria-hidden"?: (boolean | "true" | "false") | undefined;
52
- "aria-invalid"?: boolean | "false" | "true" | "grammar" | "spelling" | undefined | undefined;
53
- "aria-keyshortcuts"?: string | undefined | undefined;
54
- "aria-label"?: string | undefined | undefined;
55
- "aria-labelledby"?: string | undefined | undefined;
56
- "aria-level"?: number | undefined | undefined;
57
- "aria-live"?: "off" | "assertive" | "polite" | undefined | undefined;
97
+ "aria-invalid"?: boolean | "false" | "true" | "grammar" | "spelling" | undefined;
98
+ "aria-keyshortcuts"?: string | undefined;
99
+ "aria-label"?: string | undefined;
100
+ "aria-labelledby"?: string | undefined;
101
+ "aria-level"?: number | undefined;
102
+ "aria-live"?: "off" | "assertive" | "polite" | undefined;
58
103
  "aria-modal"?: (boolean | "true" | "false") | undefined;
59
104
  "aria-multiline"?: (boolean | "true" | "false") | undefined;
60
105
  "aria-multiselectable"?: (boolean | "true" | "false") | undefined;
61
- "aria-orientation"?: "horizontal" | "vertical" | undefined | undefined;
62
- "aria-owns"?: string | undefined | undefined;
63
- "aria-placeholder"?: string | undefined | undefined;
64
- "aria-posinset"?: number | undefined | undefined;
65
- "aria-pressed"?: boolean | "false" | "mixed" | "true" | undefined | undefined;
106
+ "aria-orientation"?: "horizontal" | "vertical" | undefined;
107
+ "aria-owns"?: string | undefined;
108
+ "aria-placeholder"?: string | undefined;
109
+ "aria-posinset"?: number | undefined;
110
+ "aria-pressed"?: boolean | "false" | "mixed" | "true" | undefined;
66
111
  "aria-readonly"?: (boolean | "true" | "false") | undefined;
67
- "aria-relevant"?: "additions" | "additions removals" | "additions text" | "all" | "removals" | "removals additions" | "removals text" | "text" | "text additions" | "text removals" | undefined | undefined;
112
+ "aria-relevant"?: "additions" | "additions removals" | "additions text" | "all" | "removals" | "removals additions" | "removals text" | "text" | "text additions" | "text removals" | undefined;
68
113
  "aria-required"?: (boolean | "true" | "false") | undefined;
69
- "aria-roledescription"?: string | undefined | undefined;
70
- "aria-rowcount"?: number | undefined | undefined;
71
- "aria-rowindex"?: number | undefined | undefined;
72
- "aria-rowindextext"?: string | undefined | undefined;
73
- "aria-rowspan"?: number | undefined | undefined;
114
+ "aria-roledescription"?: string | undefined;
115
+ "aria-rowcount"?: number | undefined;
116
+ "aria-rowindex"?: number | undefined;
117
+ "aria-rowindextext"?: string | undefined;
118
+ "aria-rowspan"?: number | undefined;
74
119
  "aria-selected"?: (boolean | "true" | "false") | undefined;
75
- "aria-setsize"?: number | undefined | undefined;
76
- "aria-sort"?: "none" | "ascending" | "descending" | "other" | undefined | undefined;
77
- "aria-valuemax"?: number | undefined | undefined;
78
- "aria-valuemin"?: number | undefined | undefined;
79
- "aria-valuenow"?: number | undefined | undefined;
80
- "aria-valuetext"?: string | undefined | undefined;
81
- children?: import("react").ReactNode;
120
+ "aria-setsize"?: number | undefined;
121
+ "aria-sort"?: "none" | "ascending" | "descending" | "other" | undefined;
122
+ "aria-valuemax"?: number | undefined;
123
+ "aria-valuemin"?: number | undefined;
124
+ "aria-valuenow"?: number | undefined;
125
+ "aria-valuetext"?: string | undefined;
126
+ children?: import("react").ReactNode | undefined;
82
127
  dangerouslySetInnerHTML?: {
83
128
  __html: string | TrustedHTML;
84
- } | undefined | undefined;
129
+ } | undefined;
85
130
  onCopy?: import("react").ClipboardEventHandler<HTMLDivElement> | undefined;
86
131
  onCopyCapture?: import("react").ClipboardEventHandler<HTMLDivElement> | undefined;
87
132
  onCut?: import("react").ClipboardEventHandler<HTMLDivElement> | undefined;
@@ -250,50 +295,6 @@ export declare function Screen({ fill, palette, as, className, ...rest }: Screen
250
295
  onTransitionRunCapture?: import("react").TransitionEventHandler<HTMLDivElement> | undefined;
251
296
  onTransitionStart?: import("react").TransitionEventHandler<HTMLDivElement> | undefined;
252
297
  onTransitionStartCapture?: import("react").TransitionEventHandler<HTMLDivElement> | undefined;
253
- key?: import("react").Key | null | undefined;
254
- defaultChecked?: boolean | undefined | undefined;
255
- defaultValue?: string | number | readonly string[] | undefined;
256
- suppressContentEditableWarning?: boolean | undefined | undefined;
257
- accessKey?: string | undefined | undefined;
258
- autoCapitalize?: "off" | "none" | "on" | "sentences" | "words" | "characters" | undefined | (string & {}) | undefined;
259
- autoFocus?: boolean | undefined | undefined;
260
- contentEditable?: (boolean | "true" | "false") | "inherit" | "plaintext-only" | undefined;
261
- contextMenu?: string | undefined | undefined;
262
- dir?: string | undefined | undefined;
263
- draggable?: (boolean | "true" | "false") | undefined;
264
- enterKeyHint?: "enter" | "done" | "go" | "next" | "previous" | "search" | "send" | undefined | undefined;
265
- hidden?: boolean | undefined | undefined;
266
- spellCheck?: (boolean | "true" | "false") | undefined;
267
- translate?: "yes" | "no" | undefined | undefined;
268
- radioGroup?: string | undefined | undefined;
269
- about?: string | undefined | undefined;
270
- content?: string | undefined | undefined;
271
- datatype?: string | undefined | undefined;
272
- inlist?: any;
273
- prefix?: string | undefined | undefined;
274
- property?: string | undefined | undefined;
275
- rel?: string | undefined | undefined;
276
- resource?: string | undefined | undefined;
277
- rev?: string | undefined | undefined;
278
- typeof?: string | undefined | undefined;
279
- vocab?: string | undefined | undefined;
280
- autoCorrect?: string | undefined | undefined;
281
- autoSave?: string | undefined | undefined;
282
- itemProp?: string | undefined | undefined;
283
- itemScope?: boolean | undefined | undefined;
284
- itemType?: string | undefined | undefined;
285
- itemID?: string | undefined | undefined;
286
- itemRef?: string | undefined | undefined;
287
- results?: number | undefined | undefined;
288
- security?: string | undefined | undefined;
289
- unselectable?: "on" | "off" | undefined | undefined;
290
- popover?: "" | "auto" | "manual" | "hint" | undefined | undefined;
291
- popoverTargetAction?: "toggle" | "show" | "hide" | undefined | undefined;
292
- popoverTarget?: string | undefined | undefined;
293
- inert?: boolean | undefined | undefined;
294
- inputMode?: "none" | "text" | "tel" | "url" | "email" | "numeric" | "decimal" | "search" | undefined | undefined;
295
- is?: string | undefined | undefined;
296
- exportparts?: string | undefined | undefined;
297
298
  className: string;
298
299
  'data-palette': Palette | undefined;
299
- }, HTMLElement>;
300
+ }, HTMLDivElement>;
@@ -1,5 +1,5 @@
1
- import type { ComponentPropsWithoutRef, ReactNode } from 'react';
2
- export interface TopBarProps extends Omit<ComponentPropsWithoutRef<'header'>, 'title'> {
1
+ import type { ComponentProps, ReactNode } from 'react';
2
+ export interface TopBarProps extends Omit<ComponentProps<'header'>, 'title'> {
3
3
  /** the screen title (uppercase, ellipsised on one line) */
4
4
  title: ReactNode;
5
5
  /** a leading control — usually `<IconBtn sm icon="arrow-left" label="Back" />` */
@@ -1,5 +1,5 @@
1
- import type { ComponentPropsWithoutRef } from 'react';
2
- export interface CardBackProps extends ComponentPropsWithoutRef<'button'> {
1
+ import type { ComponentProps } from 'react';
2
+ export interface CardBackProps extends ComponentProps<'button'> {
3
3
  /** accessible name */
4
4
  label?: string;
5
5
  }
@@ -1,5 +1,5 @@
1
- import { type ComponentPropsWithoutRef, type ReactNode } from 'react';
2
- export interface ModalProps extends ComponentPropsWithoutRef<'article'> {
1
+ import { type ComponentProps, type ReactNode } from 'react';
2
+ export interface ModalProps extends ComponentProps<'article'> {
3
3
  /** CONTROLLED: on the screen or not (default `true`). The app owns it. Set it `false` and the modal leaves the way it came — its
4
4
  * opening played backwards — then calls `onClosed`, where the app stops rendering it (and its `SheetStage ask`). */
5
5
  open?: boolean;
@@ -14,11 +14,11 @@ export interface ModalProps extends ComponentPropsWithoutRef<'article'> {
14
14
  * records the answer and sets `open={false}`; the modal's one behaviour is how it leaves.
15
15
  */
16
16
  export declare function Modal({ open, onClosed, className, ...rest }: ModalProps): import("react").JSX.Element;
17
- export interface LiftProps extends ComponentPropsWithoutRef<'div'> {
17
+ export interface LiftProps extends ComponentProps<'div'> {
18
18
  }
19
19
  /** Lift — the light part of a `Modal`: the case, request or item the question is about (a CardHead, rows, a timeline); scrolls inside when tall. */
20
20
  export declare function Lift({ className, ...rest }: LiftProps): import("react").JSX.Element;
21
- export interface DrawerProps extends Omit<ComponentPropsWithoutRef<'div'>, 'title'> {
21
+ export interface DrawerProps extends Omit<ComponentProps<'div'>, 'title'> {
22
22
  /** the question */
23
23
  title: ReactNode;
24
24
  /** the fine print under it */
@@ -26,7 +26,7 @@ export interface DrawerProps extends Omit<ComponentPropsWithoutRef<'div'>, 'titl
26
26
  }
27
27
  /** Drawer — the dark end of a `Modal`: the question, its fine print, and a `BtnTrio` (or two buttons) — plain buttons with the app's `onClick`; the Drawer does nothing with them. */
28
28
  export declare function Drawer({ title, caption, className, children, ...rest }: DrawerProps): import("react").JSX.Element;
29
- export interface BtnTrioProps extends ComponentPropsWithoutRef<'div'> {
29
+ export interface BtnTrioProps extends ComponentProps<'div'> {
30
30
  }
31
31
  /** BtnTrio — three round buttons with dotted connectors between them (× · ? · ✓); the middle one inverted. */
32
32
  export declare function BtnTrio({ className, children, ...rest }: BtnTrioProps): import("react").JSX.Element;
@@ -1,11 +1,11 @@
1
- import type { ComponentPropsWithoutRef } from 'react';
1
+ import type { ComponentProps } from 'react';
2
2
  /** how far the sheet slid. `away` = not on the screen (slid out, inert) — a state the app sets, never one a drag or a tap lands on */
3
3
  export type SheetState = 'peek' | 'half' | '3q' | 'full' | 'away';
4
4
  /** what asked for the change: the handle's `tap`, a `drag` released, `focus` in a peeked sheet, the `keyboard` (or anything else) moving the cut */
5
5
  export type SheetChangeReason = 'tap' | 'drag' | 'focus' | 'keyboard';
6
6
  declare const ORDER: readonly ["peek", "half", "3q", "full"];
7
7
  type Resting = (typeof ORDER)[number];
8
- export interface SheetProps extends Omit<ComponentPropsWithoutRef<'article'>, 'onChange'> {
8
+ export interface SheetProps extends Omit<ComponentProps<'article'>, 'onChange'> {
9
9
  /** CONTROLLED: where the sheet is. The app owns it — pair it with `onStateChange`, or the sheet cannot move (like `value` without `onChange`).
10
10
  * `peek` (handle + title row) · `half` · `3q` · `full` (its top edge at the top bar) · `away` (not on the screen). A class, never a height. */
11
11
  state?: SheetState;
@@ -1,5 +1,5 @@
1
- import type { ComponentPropsWithoutRef } from 'react';
2
- export interface SheetBodyProps extends ComponentPropsWithoutRef<'div'> {
1
+ import type { ComponentProps } from 'react';
2
+ export interface SheetBodyProps extends ComponentProps<'div'> {
3
3
  }
4
4
  /** SheetBody — everything under a Sheet's head: the one thing that scrolls; its scroll padding keeps a focused control above the cut. Content never goes straight into the Sheet. */
5
5
  export declare function SheetBody({ className, ...rest }: SheetBodyProps): import("react").JSX.Element;
@@ -1,5 +1,5 @@
1
- import type { ComponentPropsWithoutRef, ReactNode } from 'react';
2
- export interface SheetHeadProps extends Omit<ComponentPropsWithoutRef<'div'>, 'title'> {
1
+ import type { ComponentProps, ReactNode } from 'react';
2
+ export interface SheetHeadProps extends Omit<ComponentProps<'div'>, 'title'> {
3
3
  /** the round button on the left (an IconBtn sm) */
4
4
  lead?: ReactNode;
5
5
  /** the centred title */
@@ -1,5 +1,5 @@
1
- import type { ComponentPropsWithoutRef, ReactNode } from 'react';
2
- export interface SheetStackProps extends ComponentPropsWithoutRef<'div'> {
1
+ import type { ComponentProps, ReactNode } from 'react';
2
+ export interface SheetStackProps extends ComponentProps<'div'> {
3
3
  /** `tap` (default): a tapped head brings its sheet to the front, its back button returns it · `display`: the giant title is the peek (recents, a library) · `static`: peeks only, the last sheet open */
4
4
  mode?: 'tap' | 'display' | 'static';
5
5
  /** CONTROLLED (tap mode): which sheet is open — its index among the children, first = 0 — or `null` for none. The app owns it (a route, a
@@ -1,5 +1,5 @@
1
- import type { ComponentPropsWithoutRef, ReactNode } from 'react';
2
- export interface SheetStageProps extends ComponentPropsWithoutRef<'div'> {
1
+ import type { ComponentProps, ReactNode } from 'react';
2
+ export interface SheetStageProps extends ComponentProps<'div'> {
3
3
  /** what sits behind the sheet: a map, previous cards, page copy */
4
4
  bg?: ReactNode;
5
5
  /** ONE thing shown in the band a half sheet leaves open (a postcard being made), centred there */
@@ -1,5 +1,5 @@
1
- import type { ComponentPropsWithoutRef } from 'react';
2
- export interface StepProps extends ComponentPropsWithoutRef<'section'> {
1
+ import type { ComponentProps } from 'react';
2
+ export interface StepProps extends ComponentProps<'section'> {
3
3
  }
4
4
  /**
5
5
  * Step — one screen, one task. Children: a BaseContent first (what the member READS — words on the base, not a card), an optional Sheet last