@dxos/ui-theme 0.8.4-main.6fa680abb7 → 0.8.4-main.74a063c4e0

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 (131) hide show
  1. package/dist/lib/browser/index.mjs +355 -443
  2. package/dist/lib/browser/index.mjs.map +4 -4
  3. package/dist/lib/browser/meta.json +1 -1
  4. package/dist/lib/node-esm/index.mjs +355 -443
  5. package/dist/lib/node-esm/index.mjs.map +4 -4
  6. package/dist/lib/node-esm/meta.json +1 -1
  7. package/dist/plugin/node-cjs/{theme.css → main.css} +66 -31
  8. package/dist/plugin/node-cjs/main.css.map +7 -0
  9. package/dist/plugin/node-cjs/meta.json +1 -1
  10. package/dist/plugin/node-cjs/plugins/ThemePlugin.cjs +8 -15
  11. package/dist/plugin/node-cjs/plugins/ThemePlugin.cjs.map +3 -3
  12. package/dist/plugin/node-esm/{theme.css → main.css} +66 -31
  13. package/dist/plugin/node-esm/main.css.map +7 -0
  14. package/dist/plugin/node-esm/meta.json +1 -1
  15. package/dist/plugin/node-esm/plugins/ThemePlugin.mjs +8 -15
  16. package/dist/plugin/node-esm/plugins/ThemePlugin.mjs.map +3 -3
  17. package/dist/types/src/fragments/index.d.ts +0 -5
  18. package/dist/types/src/fragments/index.d.ts.map +1 -1
  19. package/dist/types/src/fragments/text.d.ts +0 -4
  20. package/dist/types/src/fragments/text.d.ts.map +1 -1
  21. package/dist/types/src/index.d.ts +1 -1
  22. package/dist/types/src/index.d.ts.map +1 -1
  23. package/dist/types/src/plugins/ThemePlugin.d.ts.map +1 -1
  24. package/dist/types/src/theme/components/avatar.d.ts.map +1 -1
  25. package/dist/types/src/theme/components/card.d.ts +3 -2
  26. package/dist/types/src/theme/components/card.d.ts.map +1 -1
  27. package/dist/types/src/theme/components/dialog.d.ts.map +1 -1
  28. package/dist/types/src/theme/components/focus.d.ts +6 -0
  29. package/dist/types/src/theme/components/focus.d.ts.map +1 -0
  30. package/dist/types/src/theme/components/icon-button.d.ts.map +1 -1
  31. package/dist/types/src/theme/components/icon.d.ts +3 -0
  32. package/dist/types/src/theme/components/icon.d.ts.map +1 -1
  33. package/dist/types/src/theme/components/index.d.ts +1 -0
  34. package/dist/types/src/theme/components/index.d.ts.map +1 -1
  35. package/dist/types/src/theme/components/input.d.ts.map +1 -1
  36. package/dist/types/src/theme/components/link.d.ts.map +1 -1
  37. package/dist/types/src/theme/components/list.d.ts.map +1 -1
  38. package/dist/types/src/theme/components/message.d.ts.map +1 -1
  39. package/dist/types/src/theme/components/popover.d.ts.map +1 -1
  40. package/dist/types/src/theme/components/scroll-area.d.ts +12 -2
  41. package/dist/types/src/theme/components/scroll-area.d.ts.map +1 -1
  42. package/dist/types/src/theme/components/select.d.ts.map +1 -1
  43. package/dist/types/src/theme/components/status.d.ts +1 -1
  44. package/dist/types/src/theme/components/status.d.ts.map +1 -1
  45. package/dist/types/src/theme/components/toast.d.ts.map +1 -1
  46. package/dist/types/src/theme/components/toolbar.d.ts +0 -1
  47. package/dist/types/src/theme/components/toolbar.d.ts.map +1 -1
  48. package/dist/types/src/theme/components/tooltip.d.ts.map +1 -1
  49. package/dist/types/src/theme/components/treegrid.d.ts.map +1 -1
  50. package/dist/types/src/theme/index.d.ts +1 -0
  51. package/dist/types/src/theme/index.d.ts.map +1 -1
  52. package/dist/types/src/theme/primitives/column.d.ts +8 -3
  53. package/dist/types/src/theme/primitives/column.d.ts.map +1 -1
  54. package/dist/types/src/theme/primitives/panel.d.ts +9 -5
  55. package/dist/types/src/theme/primitives/panel.d.ts.map +1 -1
  56. package/dist/types/src/theme/theme.d.ts.map +1 -1
  57. package/dist/types/src/util/elevation.d.ts.map +1 -0
  58. package/dist/types/src/util/index.d.ts +3 -0
  59. package/dist/types/src/util/index.d.ts.map +1 -1
  60. package/dist/types/src/util/mx.d.ts +28 -284
  61. package/dist/types/src/util/mx.d.ts.map +1 -1
  62. package/dist/types/src/util/size.d.ts +27 -0
  63. package/dist/types/src/util/size.d.ts.map +1 -0
  64. package/dist/types/src/util/valence.d.ts.map +1 -0
  65. package/dist/types/tsconfig.tsbuildinfo +1 -1
  66. package/package.json +8 -4
  67. package/src/css/components/button.css +2 -1
  68. package/src/css/components/{focus-ring.css → focus.css} +15 -1
  69. package/src/css/components/icon.css +9 -0
  70. package/src/css/components/selected.css +30 -0
  71. package/src/css/integrations/codemirror.css +5 -3
  72. package/src/css/integrations/tldraw.css +1 -0
  73. package/src/css/layout/main.css +0 -7
  74. package/src/css/layout/size.css +8 -31
  75. package/src/css/theme/palette.css +8 -0
  76. package/src/css/theme/semantic.css +24 -9
  77. package/src/css/theme/spacing.css +35 -18
  78. package/src/css/utilities.css +72 -3
  79. package/src/fragments/AUDIT.md +58 -0
  80. package/src/fragments/index.ts +1 -6
  81. package/src/fragments/text.ts +0 -5
  82. package/src/index.ts +1 -1
  83. package/src/{theme.css → main.css} +10 -6
  84. package/src/plugins/ThemePlugin.ts +12 -24
  85. package/src/plugins/main.css +45 -0
  86. package/src/theme/components/avatar.ts +3 -4
  87. package/src/theme/components/button.ts +1 -1
  88. package/src/theme/components/card.ts +14 -10
  89. package/src/theme/components/dialog.ts +1 -2
  90. package/src/theme/components/focus.ts +33 -0
  91. package/src/theme/components/icon-button.ts +1 -3
  92. package/src/theme/components/icon.ts +13 -4
  93. package/src/theme/components/index.ts +1 -0
  94. package/src/theme/components/input.ts +10 -25
  95. package/src/theme/components/link.ts +1 -2
  96. package/src/theme/components/list.ts +4 -4
  97. package/src/theme/components/menu.ts +4 -4
  98. package/src/theme/components/message.ts +2 -3
  99. package/src/theme/components/popover.ts +3 -4
  100. package/src/theme/components/scroll-area.ts +47 -40
  101. package/src/theme/components/select.ts +2 -3
  102. package/src/theme/components/status.ts +5 -5
  103. package/src/theme/components/toast.ts +2 -3
  104. package/src/theme/components/toolbar.ts +1 -7
  105. package/src/theme/components/tooltip.ts +1 -2
  106. package/src/theme/components/treegrid.ts +1 -1
  107. package/src/theme/index.ts +1 -0
  108. package/src/theme/primitives/column.ts +27 -10
  109. package/src/theme/primitives/panel.ts +18 -25
  110. package/src/theme/theme.ts +2 -0
  111. package/src/typings.d.ts +3 -0
  112. package/src/util/index.ts +3 -0
  113. package/src/util/mx.ts +106 -7
  114. package/src/util/size.ts +103 -0
  115. package/dist/plugin/node-cjs/theme.css.map +0 -7
  116. package/dist/plugin/node-esm/theme.css.map +0 -7
  117. package/dist/types/src/fragments/elevation.d.ts.map +0 -1
  118. package/dist/types/src/fragments/focus.d.ts +0 -4
  119. package/dist/types/src/fragments/focus.d.ts.map +0 -1
  120. package/dist/types/src/fragments/selected.d.ts +0 -4
  121. package/dist/types/src/fragments/selected.d.ts.map +0 -1
  122. package/dist/types/src/fragments/size.d.ts +0 -7
  123. package/dist/types/src/fragments/size.d.ts.map +0 -1
  124. package/dist/types/src/fragments/valence.d.ts.map +0 -1
  125. package/src/fragments/focus.ts +0 -11
  126. package/src/fragments/selected.ts +0 -12
  127. package/src/fragments/size.ts +0 -117
  128. /package/dist/types/src/{fragments → util}/elevation.d.ts +0 -0
  129. /package/dist/types/src/{fragments → util}/valence.d.ts +0 -0
  130. /package/src/{fragments → util}/elevation.ts +0 -0
  131. /package/src/{fragments → util}/valence.ts +0 -0
@@ -1,293 +1,37 @@
1
- import { type HTMLAttributes } from 'react';
2
- import { type ClassNameValue } from 'tailwind-merge';
3
- import { type ComposableProps } from '@dxos/ui-types';
4
- export declare const mx: (...classLists: ClassNameValue[]) => string;
1
+ import { type ForwardRefExoticComponent, type ForwardedRef, type HTMLAttributes, type ReactNode, type RefAttributes } from 'react';
2
+ import { ThemedClassName, type ComposableProps, type SlottableProps } from '@dxos/ui-types';
3
+ export declare const mx: (...classLists: import("tailwind-merge").ClassNameValue[]) => string;
5
4
  /**
6
5
  * Reconciles className properties from a parent slot.
7
6
  * - `className` is set by the Slot merge mechanism.
8
7
  * - `classNames` is the consumer-facing prop for theming overrides.
9
8
  * Use `composableProps` to reconcile both into a single `className`.
10
9
  */
11
- export declare const composableProps: <P extends HTMLElement = HTMLElement>({ className, classNames, ...props }: ComposableProps, { className: defaultClassNames, ...defaults }?: Partial<HTMLAttributes<P>> | undefined) => {
10
+ export declare const composableProps: <P extends HTMLElement = HTMLElement>({ className, classNames, role, ...props }: ComposableProps, { classNames: defaultClassNames, ...defaults }?: ThemedClassName<Partial<HTMLAttributes<P>>> | undefined) => {
12
11
  className: string;
13
- defaultChecked?: boolean | undefined;
14
- defaultValue?: string | number | readonly string[] | undefined;
15
- suppressContentEditableWarning?: boolean | undefined;
16
- suppressHydrationWarning?: boolean | undefined;
17
- accessKey?: string | undefined;
18
- autoCapitalize?: "off" | "none" | "on" | "sentences" | "words" | "characters" | undefined | (string & {});
19
- autoFocus?: boolean | undefined;
20
- contentEditable?: (boolean | "true" | "false") | "inherit" | "plaintext-only" | undefined;
21
- contextMenu?: string | undefined;
22
- dir?: string | undefined;
23
- draggable?: (boolean | "true" | "false") | undefined;
24
- enterKeyHint?: "enter" | "done" | "go" | "next" | "previous" | "search" | "send" | undefined;
25
- hidden?: boolean | undefined;
26
- id?: string | undefined;
27
- lang?: string | undefined;
28
- nonce?: string | undefined;
29
- slot?: string | undefined;
30
- spellCheck?: (boolean | "true" | "false") | undefined;
31
- style?: import("react").CSSProperties | undefined;
32
- tabIndex?: number | undefined;
33
- title?: string | undefined;
34
- translate?: "yes" | "no" | undefined;
35
- radioGroup?: string | undefined;
36
- role?: import("react").AriaRole | undefined;
37
- about?: string | undefined;
38
- content?: string | undefined;
39
- datatype?: string | undefined;
40
- inlist?: any;
41
- prefix?: string | undefined;
42
- property?: string | undefined;
43
- rel?: string | undefined;
44
- resource?: string | undefined;
45
- rev?: string | undefined;
46
- typeof?: string | undefined;
47
- vocab?: string | undefined;
48
- autoCorrect?: string | undefined;
49
- autoSave?: string | undefined;
50
- color?: string | undefined;
51
- itemProp?: string | undefined;
52
- itemScope?: boolean | undefined;
53
- itemType?: string | undefined;
54
- itemID?: string | undefined;
55
- itemRef?: string | undefined;
56
- results?: number | undefined;
57
- security?: string | undefined;
58
- unselectable?: "on" | "off" | undefined;
59
- popover?: "" | "auto" | "manual" | "hint" | undefined;
60
- popoverTargetAction?: "toggle" | "show" | "hide" | undefined;
61
- popoverTarget?: string | undefined;
62
- inert?: boolean | undefined;
63
- inputMode?: "none" | "text" | "tel" | "url" | "email" | "numeric" | "decimal" | "search" | undefined;
64
- is?: string | undefined;
65
- exportparts?: string | undefined;
66
- part?: string | undefined;
67
- "aria-activedescendant"?: string | undefined;
68
- "aria-atomic"?: (boolean | "true" | "false") | undefined;
69
- "aria-autocomplete"?: "none" | "inline" | "list" | "both" | undefined;
70
- "aria-braillelabel"?: string | undefined;
71
- "aria-brailleroledescription"?: string | undefined;
72
- "aria-busy"?: (boolean | "true" | "false") | undefined;
73
- "aria-checked"?: boolean | "false" | "mixed" | "true" | undefined;
74
- "aria-colcount"?: number | undefined;
75
- "aria-colindex"?: number | undefined;
76
- "aria-colindextext"?: string | undefined;
77
- "aria-colspan"?: number | undefined;
78
- "aria-controls"?: string | undefined;
79
- "aria-current"?: boolean | "false" | "true" | "page" | "step" | "location" | "date" | "time" | undefined;
80
- "aria-describedby"?: string | undefined;
81
- "aria-description"?: string | undefined;
82
- "aria-details"?: string | undefined;
83
- "aria-disabled"?: (boolean | "true" | "false") | undefined;
84
- "aria-dropeffect"?: "none" | "copy" | "execute" | "link" | "move" | "popup" | undefined;
85
- "aria-errormessage"?: string | undefined;
86
- "aria-expanded"?: (boolean | "true" | "false") | undefined;
87
- "aria-flowto"?: string | undefined;
88
- "aria-grabbed"?: (boolean | "true" | "false") | undefined;
89
- "aria-haspopup"?: boolean | "false" | "true" | "menu" | "listbox" | "tree" | "grid" | "dialog" | undefined;
90
- "aria-hidden"?: (boolean | "true" | "false") | undefined;
91
- "aria-invalid"?: boolean | "false" | "true" | "grammar" | "spelling" | undefined;
92
- "aria-keyshortcuts"?: string | undefined;
93
- "aria-label"?: string | undefined;
94
- "aria-labelledby"?: string | undefined;
95
- "aria-level"?: number | undefined;
96
- "aria-live"?: "off" | "assertive" | "polite" | undefined;
97
- "aria-modal"?: (boolean | "true" | "false") | undefined;
98
- "aria-multiline"?: (boolean | "true" | "false") | undefined;
99
- "aria-multiselectable"?: (boolean | "true" | "false") | undefined;
100
- "aria-orientation"?: "horizontal" | "vertical" | undefined;
101
- "aria-owns"?: string | undefined;
102
- "aria-placeholder"?: string | undefined;
103
- "aria-posinset"?: number | undefined;
104
- "aria-pressed"?: boolean | "false" | "mixed" | "true" | undefined;
105
- "aria-readonly"?: (boolean | "true" | "false") | undefined;
106
- "aria-relevant"?: "additions" | "additions removals" | "additions text" | "all" | "removals" | "removals additions" | "removals text" | "text" | "text additions" | "text removals" | undefined;
107
- "aria-required"?: (boolean | "true" | "false") | undefined;
108
- "aria-roledescription"?: string | undefined;
109
- "aria-rowcount"?: number | undefined;
110
- "aria-rowindex"?: number | undefined;
111
- "aria-rowindextext"?: string | undefined;
112
- "aria-rowspan"?: number | undefined;
113
- "aria-selected"?: (boolean | "true" | "false") | undefined;
114
- "aria-setsize"?: number | undefined;
115
- "aria-sort"?: "none" | "ascending" | "descending" | "other" | undefined;
116
- "aria-valuemax"?: number | undefined;
117
- "aria-valuemin"?: number | undefined;
118
- "aria-valuenow"?: number | undefined;
119
- "aria-valuetext"?: string | undefined;
120
- children?: import("react").ReactNode | undefined;
121
- dangerouslySetInnerHTML?: {
122
- __html: string | TrustedHTML;
123
- } | undefined;
124
- onCopy?: import("react").ClipboardEventHandler<HTMLElement> | undefined;
125
- onCopyCapture?: import("react").ClipboardEventHandler<HTMLElement> | undefined;
126
- onCut?: import("react").ClipboardEventHandler<HTMLElement> | undefined;
127
- onCutCapture?: import("react").ClipboardEventHandler<HTMLElement> | undefined;
128
- onPaste?: import("react").ClipboardEventHandler<HTMLElement> | undefined;
129
- onPasteCapture?: import("react").ClipboardEventHandler<HTMLElement> | undefined;
130
- onCompositionEnd?: import("react").CompositionEventHandler<HTMLElement> | undefined;
131
- onCompositionEndCapture?: import("react").CompositionEventHandler<HTMLElement> | undefined;
132
- onCompositionStart?: import("react").CompositionEventHandler<HTMLElement> | undefined;
133
- onCompositionStartCapture?: import("react").CompositionEventHandler<HTMLElement> | undefined;
134
- onCompositionUpdate?: import("react").CompositionEventHandler<HTMLElement> | undefined;
135
- onCompositionUpdateCapture?: import("react").CompositionEventHandler<HTMLElement> | undefined;
136
- onFocus?: import("react").FocusEventHandler<HTMLElement> | undefined;
137
- onFocusCapture?: import("react").FocusEventHandler<HTMLElement> | undefined;
138
- onBlur?: import("react").FocusEventHandler<HTMLElement> | undefined;
139
- onBlurCapture?: import("react").FocusEventHandler<HTMLElement> | undefined;
140
- onChange?: import("react").FormEventHandler<HTMLElement> | undefined;
141
- onChangeCapture?: import("react").FormEventHandler<HTMLElement> | undefined;
142
- onBeforeInput?: import("react").InputEventHandler<HTMLElement> | undefined;
143
- onBeforeInputCapture?: import("react").FormEventHandler<HTMLElement> | undefined;
144
- onInput?: import("react").FormEventHandler<HTMLElement> | undefined;
145
- onInputCapture?: import("react").FormEventHandler<HTMLElement> | undefined;
146
- onReset?: import("react").FormEventHandler<HTMLElement> | undefined;
147
- onResetCapture?: import("react").FormEventHandler<HTMLElement> | undefined;
148
- onSubmit?: import("react").FormEventHandler<HTMLElement> | undefined;
149
- onSubmitCapture?: import("react").FormEventHandler<HTMLElement> | undefined;
150
- onInvalid?: import("react").FormEventHandler<HTMLElement> | undefined;
151
- onInvalidCapture?: import("react").FormEventHandler<HTMLElement> | undefined;
152
- onLoad?: import("react").ReactEventHandler<HTMLElement> | undefined;
153
- onLoadCapture?: import("react").ReactEventHandler<HTMLElement> | undefined;
154
- onError?: import("react").ReactEventHandler<HTMLElement> | undefined;
155
- onErrorCapture?: import("react").ReactEventHandler<HTMLElement> | undefined;
156
- onKeyDown?: import("react").KeyboardEventHandler<HTMLElement> | undefined;
157
- onKeyDownCapture?: import("react").KeyboardEventHandler<HTMLElement> | undefined;
158
- onKeyPress?: import("react").KeyboardEventHandler<HTMLElement> | undefined;
159
- onKeyPressCapture?: import("react").KeyboardEventHandler<HTMLElement> | undefined;
160
- onKeyUp?: import("react").KeyboardEventHandler<HTMLElement> | undefined;
161
- onKeyUpCapture?: import("react").KeyboardEventHandler<HTMLElement> | undefined;
162
- onAbort?: import("react").ReactEventHandler<HTMLElement> | undefined;
163
- onAbortCapture?: import("react").ReactEventHandler<HTMLElement> | undefined;
164
- onCanPlay?: import("react").ReactEventHandler<HTMLElement> | undefined;
165
- onCanPlayCapture?: import("react").ReactEventHandler<HTMLElement> | undefined;
166
- onCanPlayThrough?: import("react").ReactEventHandler<HTMLElement> | undefined;
167
- onCanPlayThroughCapture?: import("react").ReactEventHandler<HTMLElement> | undefined;
168
- onDurationChange?: import("react").ReactEventHandler<HTMLElement> | undefined;
169
- onDurationChangeCapture?: import("react").ReactEventHandler<HTMLElement> | undefined;
170
- onEmptied?: import("react").ReactEventHandler<HTMLElement> | undefined;
171
- onEmptiedCapture?: import("react").ReactEventHandler<HTMLElement> | undefined;
172
- onEncrypted?: import("react").ReactEventHandler<HTMLElement> | undefined;
173
- onEncryptedCapture?: import("react").ReactEventHandler<HTMLElement> | undefined;
174
- onEnded?: import("react").ReactEventHandler<HTMLElement> | undefined;
175
- onEndedCapture?: import("react").ReactEventHandler<HTMLElement> | undefined;
176
- onLoadedData?: import("react").ReactEventHandler<HTMLElement> | undefined;
177
- onLoadedDataCapture?: import("react").ReactEventHandler<HTMLElement> | undefined;
178
- onLoadedMetadata?: import("react").ReactEventHandler<HTMLElement> | undefined;
179
- onLoadedMetadataCapture?: import("react").ReactEventHandler<HTMLElement> | undefined;
180
- onLoadStart?: import("react").ReactEventHandler<HTMLElement> | undefined;
181
- onLoadStartCapture?: import("react").ReactEventHandler<HTMLElement> | undefined;
182
- onPause?: import("react").ReactEventHandler<HTMLElement> | undefined;
183
- onPauseCapture?: import("react").ReactEventHandler<HTMLElement> | undefined;
184
- onPlay?: import("react").ReactEventHandler<HTMLElement> | undefined;
185
- onPlayCapture?: import("react").ReactEventHandler<HTMLElement> | undefined;
186
- onPlaying?: import("react").ReactEventHandler<HTMLElement> | undefined;
187
- onPlayingCapture?: import("react").ReactEventHandler<HTMLElement> | undefined;
188
- onProgress?: import("react").ReactEventHandler<HTMLElement> | undefined;
189
- onProgressCapture?: import("react").ReactEventHandler<HTMLElement> | undefined;
190
- onRateChange?: import("react").ReactEventHandler<HTMLElement> | undefined;
191
- onRateChangeCapture?: import("react").ReactEventHandler<HTMLElement> | undefined;
192
- onSeeked?: import("react").ReactEventHandler<HTMLElement> | undefined;
193
- onSeekedCapture?: import("react").ReactEventHandler<HTMLElement> | undefined;
194
- onSeeking?: import("react").ReactEventHandler<HTMLElement> | undefined;
195
- onSeekingCapture?: import("react").ReactEventHandler<HTMLElement> | undefined;
196
- onStalled?: import("react").ReactEventHandler<HTMLElement> | undefined;
197
- onStalledCapture?: import("react").ReactEventHandler<HTMLElement> | undefined;
198
- onSuspend?: import("react").ReactEventHandler<HTMLElement> | undefined;
199
- onSuspendCapture?: import("react").ReactEventHandler<HTMLElement> | undefined;
200
- onTimeUpdate?: import("react").ReactEventHandler<HTMLElement> | undefined;
201
- onTimeUpdateCapture?: import("react").ReactEventHandler<HTMLElement> | undefined;
202
- onVolumeChange?: import("react").ReactEventHandler<HTMLElement> | undefined;
203
- onVolumeChangeCapture?: import("react").ReactEventHandler<HTMLElement> | undefined;
204
- onWaiting?: import("react").ReactEventHandler<HTMLElement> | undefined;
205
- onWaitingCapture?: import("react").ReactEventHandler<HTMLElement> | undefined;
206
- onAuxClick?: import("react").MouseEventHandler<HTMLElement> | undefined;
207
- onAuxClickCapture?: import("react").MouseEventHandler<HTMLElement> | undefined;
208
- onClick?: import("react").MouseEventHandler<HTMLElement> | undefined;
209
- onClickCapture?: import("react").MouseEventHandler<HTMLElement> | undefined;
210
- onContextMenu?: import("react").MouseEventHandler<HTMLElement> | undefined;
211
- onContextMenuCapture?: import("react").MouseEventHandler<HTMLElement> | undefined;
212
- onDoubleClick?: import("react").MouseEventHandler<HTMLElement> | undefined;
213
- onDoubleClickCapture?: import("react").MouseEventHandler<HTMLElement> | undefined;
214
- onDrag?: import("react").DragEventHandler<HTMLElement> | undefined;
215
- onDragCapture?: import("react").DragEventHandler<HTMLElement> | undefined;
216
- onDragEnd?: import("react").DragEventHandler<HTMLElement> | undefined;
217
- onDragEndCapture?: import("react").DragEventHandler<HTMLElement> | undefined;
218
- onDragEnter?: import("react").DragEventHandler<HTMLElement> | undefined;
219
- onDragEnterCapture?: import("react").DragEventHandler<HTMLElement> | undefined;
220
- onDragExit?: import("react").DragEventHandler<HTMLElement> | undefined;
221
- onDragExitCapture?: import("react").DragEventHandler<HTMLElement> | undefined;
222
- onDragLeave?: import("react").DragEventHandler<HTMLElement> | undefined;
223
- onDragLeaveCapture?: import("react").DragEventHandler<HTMLElement> | undefined;
224
- onDragOver?: import("react").DragEventHandler<HTMLElement> | undefined;
225
- onDragOverCapture?: import("react").DragEventHandler<HTMLElement> | undefined;
226
- onDragStart?: import("react").DragEventHandler<HTMLElement> | undefined;
227
- onDragStartCapture?: import("react").DragEventHandler<HTMLElement> | undefined;
228
- onDrop?: import("react").DragEventHandler<HTMLElement> | undefined;
229
- onDropCapture?: import("react").DragEventHandler<HTMLElement> | undefined;
230
- onMouseDown?: import("react").MouseEventHandler<HTMLElement> | undefined;
231
- onMouseDownCapture?: import("react").MouseEventHandler<HTMLElement> | undefined;
232
- onMouseEnter?: import("react").MouseEventHandler<HTMLElement> | undefined;
233
- onMouseLeave?: import("react").MouseEventHandler<HTMLElement> | undefined;
234
- onMouseMove?: import("react").MouseEventHandler<HTMLElement> | undefined;
235
- onMouseMoveCapture?: import("react").MouseEventHandler<HTMLElement> | undefined;
236
- onMouseOut?: import("react").MouseEventHandler<HTMLElement> | undefined;
237
- onMouseOutCapture?: import("react").MouseEventHandler<HTMLElement> | undefined;
238
- onMouseOver?: import("react").MouseEventHandler<HTMLElement> | undefined;
239
- onMouseOverCapture?: import("react").MouseEventHandler<HTMLElement> | undefined;
240
- onMouseUp?: import("react").MouseEventHandler<HTMLElement> | undefined;
241
- onMouseUpCapture?: import("react").MouseEventHandler<HTMLElement> | undefined;
242
- onSelect?: import("react").ReactEventHandler<HTMLElement> | undefined;
243
- onSelectCapture?: import("react").ReactEventHandler<HTMLElement> | undefined;
244
- onTouchCancel?: import("react").TouchEventHandler<HTMLElement> | undefined;
245
- onTouchCancelCapture?: import("react").TouchEventHandler<HTMLElement> | undefined;
246
- onTouchEnd?: import("react").TouchEventHandler<HTMLElement> | undefined;
247
- onTouchEndCapture?: import("react").TouchEventHandler<HTMLElement> | undefined;
248
- onTouchMove?: import("react").TouchEventHandler<HTMLElement> | undefined;
249
- onTouchMoveCapture?: import("react").TouchEventHandler<HTMLElement> | undefined;
250
- onTouchStart?: import("react").TouchEventHandler<HTMLElement> | undefined;
251
- onTouchStartCapture?: import("react").TouchEventHandler<HTMLElement> | undefined;
252
- onPointerDown?: import("react").PointerEventHandler<HTMLElement> | undefined;
253
- onPointerDownCapture?: import("react").PointerEventHandler<HTMLElement> | undefined;
254
- onPointerMove?: import("react").PointerEventHandler<HTMLElement> | undefined;
255
- onPointerMoveCapture?: import("react").PointerEventHandler<HTMLElement> | undefined;
256
- onPointerUp?: import("react").PointerEventHandler<HTMLElement> | undefined;
257
- onPointerUpCapture?: import("react").PointerEventHandler<HTMLElement> | undefined;
258
- onPointerCancel?: import("react").PointerEventHandler<HTMLElement> | undefined;
259
- onPointerCancelCapture?: import("react").PointerEventHandler<HTMLElement> | undefined;
260
- onPointerEnter?: import("react").PointerEventHandler<HTMLElement> | undefined;
261
- onPointerLeave?: import("react").PointerEventHandler<HTMLElement> | undefined;
262
- onPointerOver?: import("react").PointerEventHandler<HTMLElement> | undefined;
263
- onPointerOverCapture?: import("react").PointerEventHandler<HTMLElement> | undefined;
264
- onPointerOut?: import("react").PointerEventHandler<HTMLElement> | undefined;
265
- onPointerOutCapture?: import("react").PointerEventHandler<HTMLElement> | undefined;
266
- onGotPointerCapture?: import("react").PointerEventHandler<HTMLElement> | undefined;
267
- onGotPointerCaptureCapture?: import("react").PointerEventHandler<HTMLElement> | undefined;
268
- onLostPointerCapture?: import("react").PointerEventHandler<HTMLElement> | undefined;
269
- onLostPointerCaptureCapture?: import("react").PointerEventHandler<HTMLElement> | undefined;
270
- onScroll?: import("react").UIEventHandler<HTMLElement> | undefined;
271
- onScrollCapture?: import("react").UIEventHandler<HTMLElement> | undefined;
272
- onScrollEnd?: import("react").UIEventHandler<HTMLElement> | undefined;
273
- onScrollEndCapture?: import("react").UIEventHandler<HTMLElement> | undefined;
274
- onWheel?: import("react").WheelEventHandler<HTMLElement> | undefined;
275
- onWheelCapture?: import("react").WheelEventHandler<HTMLElement> | undefined;
276
- onAnimationStart?: import("react").AnimationEventHandler<HTMLElement> | undefined;
277
- onAnimationStartCapture?: import("react").AnimationEventHandler<HTMLElement> | undefined;
278
- onAnimationEnd?: import("react").AnimationEventHandler<HTMLElement> | undefined;
279
- onAnimationEndCapture?: import("react").AnimationEventHandler<HTMLElement> | undefined;
280
- onAnimationIteration?: import("react").AnimationEventHandler<HTMLElement> | undefined;
281
- onAnimationIterationCapture?: import("react").AnimationEventHandler<HTMLElement> | undefined;
282
- onToggle?: import("react").ToggleEventHandler<HTMLElement> | undefined;
283
- onBeforeToggle?: import("react").ToggleEventHandler<HTMLElement> | undefined;
284
- onTransitionCancel?: import("react").TransitionEventHandler<HTMLElement> | undefined;
285
- onTransitionCancelCapture?: import("react").TransitionEventHandler<HTMLElement> | undefined;
286
- onTransitionEnd?: import("react").TransitionEventHandler<HTMLElement> | undefined;
287
- onTransitionEndCapture?: import("react").TransitionEventHandler<HTMLElement> | undefined;
288
- onTransitionRun?: import("react").TransitionEventHandler<HTMLElement> | undefined;
289
- onTransitionRunCapture?: import("react").TransitionEventHandler<HTMLElement> | undefined;
290
- onTransitionStart?: import("react").TransitionEventHandler<HTMLElement> | undefined;
291
- onTransitionStartCapture?: import("react").TransitionEventHandler<HTMLElement> | undefined;
12
+ children?: ReactNode;
13
+ role: string;
292
14
  };
15
+ export declare function slottable<E extends HTMLElement, P extends object = {}>(render: (props: SlottableProps<P> & HTMLAttributes<E>, forwardedRef: ForwardedRef<E>) => ReactNode): ForwardRefExoticComponent<SlottableProps<P> & RefAttributes<E>>;
16
+ /**
17
+ * Factory for composable (leaf) components.
18
+ * The implementation receives full `HTMLAttributes<E>` so it can destructure `role`, `style`, etc.
19
+ * Consumers see only `ComposableProps<P>` — a narrow type exposing `classNames`, `className`,
20
+ * `children`, and the custom props `P`.
21
+ *
22
+ * For generic components, use `any` for the type parameter inside `composable` and
23
+ * cast the result to restore the generic signature for consumers.
24
+ *
25
+ * @example
26
+ * ```tsx
27
+ * const Leaf = composable<HTMLButtonElement>(({ children, ...props }, forwardedRef) => {
28
+ * return (
29
+ * <button {...composableProps(props, { classNames: 'btn' })} ref={forwardedRef}>
30
+ * {children}
31
+ * </button>
32
+ * );
33
+ * });
34
+ * ```
35
+ */
36
+ export declare function composable<E extends HTMLElement, P extends object = {}>(render: (props: ComposableProps<P> & HTMLAttributes<E>, forwardedRef: ForwardedRef<E>) => ReactNode): ForwardRefExoticComponent<ComposableProps<P> & RefAttributes<E>>;
293
37
  //# sourceMappingURL=mx.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"mx.d.ts","sourceRoot":"","sources":["../../../../src/util/mx.ts"],"names":[],"mappings":"AAIA,OAAO,EAAoB,KAAK,cAAc,EAAE,MAAM,OAAO,CAAC;AAC9D,OAAO,EAAE,KAAK,cAAc,EAAmC,MAAM,gBAAgB,CAAC;AAItF,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAItD,eAAO,MAAM,EAAE,6CAuCb,CAAC;AAEH;;;;;GAKG;AACH,eAAO,MAAM,eAAe,GAAI,CAAC,SAAS,WAAW,GAAG,WAAW,EACjE,qCAAqC,eAAe,EACpD,gDAA+C,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,GAAG,SAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAK1F,CAAC"}
1
+ {"version":3,"file":"mx.d.ts","sourceRoot":"","sources":["../../../../src/util/mx.ts"],"names":[],"mappings":"AAIA,OAAO,EAIL,KAAK,yBAAyB,EAC9B,KAAK,YAAY,EACjB,KAAK,cAAc,EAEnB,KAAK,SAAS,EACd,KAAK,aAAa,EACnB,MAAM,OAAO,CAAC;AAIf,OAAO,EAAE,eAAe,EAAE,KAAK,eAAe,EAAE,KAAK,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAI5F,eAAO,MAAM,EAAE,sEAuCb,CAAC;AAEH;;;;;GAKG;AAEH,eAAO,MAAM,eAAe,GAAI,CAAC,SAAS,WAAW,GAAG,WAAW,EACjE,2CAA2C,eAAe,EAC1D,iDAAgD,eAAe,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,SAAc;;;UAMrC,MAAM;CAK7E,CAAC;AAyBH,wBAAgB,SAAS,CAAC,CAAC,SAAS,WAAW,EAAE,CAAC,SAAS,MAAM,GAAG,EAAE,EACpE,MAAM,EAAE,CAAC,KAAK,EAAE,cAAc,CAAC,CAAC,CAAC,GAAG,cAAc,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,YAAY,CAAC,CAAC,CAAC,KAAK,SAAS,GACjG,yBAAyB,CAAC,cAAc,CAAC,CAAC,CAAC,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC,CA4BjE;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,UAAU,CAAC,CAAC,SAAS,WAAW,EAAE,CAAC,SAAS,MAAM,GAAG,EAAE,EACrE,MAAM,EAAE,CAAC,KAAK,EAAE,eAAe,CAAC,CAAC,CAAC,GAAG,cAAc,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,YAAY,CAAC,CAAC,CAAC,KAAK,SAAS,GAClG,yBAAyB,CAAC,eAAe,CAAC,CAAC,CAAC,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC,CAIlE"}
@@ -0,0 +1,27 @@
1
+ import { type CSSProperties } from 'react';
2
+ import { type Size } from '@dxos/ui-types';
3
+ export declare const getHeight: (size: Size) => string;
4
+ export declare const getWidth: (size: Size) => string;
5
+ export declare const getSize: (size: Size) => string;
6
+ export declare const sizeValue: (size: Size) => number;
7
+ export declare const sizeToRem: (size: Size) => string;
8
+ export declare const iconSize: (size: Size | null) => CSSProperties;
9
+ /**
10
+ * Snaps an arbitrary numeric value to the nearest valid Tailwind size token.
11
+ *
12
+ * The function tries progressively coarser series in order until a match is found:
13
+ * 1. Exact match — returns the value as-is if it is already a valid `Size`.
14
+ * 2. Zero or negative — clamps to `0`.
15
+ * 3. Sub-half values (`< 0.5`) — maps to the `'px'` token (1 px).
16
+ * 4. Half-step series (0.5 increments, e.g. 1.5, 2.5 …).
17
+ * 5. Whole-number series (1, 2, 3 …).
18
+ * 6. Double series (even numbers: 2, 4, 6 …).
19
+ * 7. Quadruple series (multiples of 4: 4, 8, 12 …).
20
+ * 8. Falls back to `defaultSize` if no series matches.
21
+ *
22
+ * @param value - Numeric size to snap (in Tailwind spacing units, where 1 unit = 0.25 rem).
23
+ * @param defaultSize - Fallback `Size` token used when no series produces a valid match.
24
+ * @returns The nearest valid `Size` token.
25
+ */
26
+ export declare const snapSize: (value: number, defaultSize: Size) => Size;
27
+ //# sourceMappingURL=size.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"size.d.ts","sourceRoot":"","sources":["../../../../src/util/size.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,OAAO,CAAC;AAE3C,OAAO,EAAE,KAAK,IAAI,EAAE,MAAM,gBAAgB,CAAC;AA6C3C,eAAO,MAAM,SAAS,GAAI,MAAM,IAAI,WAAqB,CAAC;AAC1D,eAAO,MAAM,QAAQ,GAAI,MAAM,IAAI,WAAqB,CAAC;AACzD,eAAO,MAAM,OAAO,GAAI,MAAM,IAAI,WAAwC,CAAC;AAE3E,eAAO,MAAM,SAAS,GAAI,MAAM,IAAI,KAAG,MAAoC,CAAC;AAC5E,eAAO,MAAM,SAAS,GAAI,MAAM,IAAI,KAAG,MAAmE,CAAC;AAE3G,eAAO,MAAM,QAAQ,GAAI,MAAM,IAAI,GAAG,IAAI,KAAG,aAC6B,CAAC;AAE3E;;;;;;;;;;;;;;;;GAgBG;AACH,eAAO,MAAM,QAAQ,GAAI,OAAO,MAAM,EAAE,aAAa,IAAI,KAAG,IAwB3D,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"valence.d.ts","sourceRoot":"","sources":["../../../../src/util/valence.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAErD,eAAO,MAAM,WAAW,GAAI,UAAU,cAAc,iJAWnD,CAAC;AAEF,eAAO,MAAM,cAAc,GAAI,UAAU,cAAc,gWAatD,CAAC"}