poseui 0.0.1

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.
@@ -0,0 +1,824 @@
1
+ //#region src/index.d.ts
2
+ interface StandardSchemaV1<Input = unknown, Output = Input> {
3
+ readonly "~standard": StandardSchemaV1.Props<Input, Output>;
4
+ }
5
+ declare namespace StandardSchemaV1 {
6
+ interface Props<Input = unknown, Output = Input> {
7
+ readonly version: 1;
8
+ readonly vendor: string;
9
+ readonly validate: (value: unknown, options?: Options | undefined) => Result<Output> | Promise<Result<Output>>;
10
+ readonly types?: Types<Input, Output> | undefined;
11
+ }
12
+ type Result<Output> = SuccessResult<Output> | FailureResult;
13
+ interface SuccessResult<Output> {
14
+ readonly value: Output;
15
+ readonly issues?: undefined;
16
+ }
17
+ interface Options {
18
+ readonly libraryOptions?: Record<string, unknown> | undefined;
19
+ }
20
+ interface FailureResult {
21
+ readonly issues: ReadonlyArray<Issue>;
22
+ }
23
+ interface Issue {
24
+ readonly message: string;
25
+ readonly path?: ReadonlyArray<PropertyKey | PathSegment> | undefined;
26
+ }
27
+ interface PathSegment {
28
+ readonly key: PropertyKey;
29
+ }
30
+ interface Types<Input = unknown, Output = Input> {
31
+ readonly input: Input;
32
+ readonly output: Output;
33
+ }
34
+ type InferInput<S extends StandardSchemaV1> = NonNullable<S["~standard"]["types"]>["input"];
35
+ type InferOutput<S extends StandardSchemaV1> = NonNullable<S["~standard"]["types"]>["output"];
36
+ }
37
+ declare class PoseValidationError extends Error {
38
+ readonly issues: ReadonlyArray<StandardSchemaV1.Issue>;
39
+ constructor(issues: ReadonlyArray<StandardSchemaV1.Issue>);
40
+ }
41
+ type Dyn<TProps, T> = T | ((props: TProps) => T);
42
+ type ChildValue = string | number | PoseElement<any, any> | Array<string | number | PoseElement<any, any>>;
43
+ type Child<TProps> = ChildValue | ((props: TProps) => ChildValue);
44
+ type RenderReturn<TSchema extends StandardSchemaV1 | undefined> = TSchema extends StandardSchemaV1 ? ReturnType<TSchema["~standard"]["validate"]> extends Promise<any> ? Promise<string> : string : string;
45
+ type CallArgs<TProps extends Record<string, unknown>> = [keyof TProps] extends [never] ? [] | [TProps] : [TProps];
46
+ type ClassEntry<TProps> = string | ((props: TProps) => string);
47
+ interface PoseElement<TProps extends Record<string, unknown>, TSchema extends StandardSchemaV1 | undefined = undefined> {
48
+ (...args: CallArgs<TProps>): RenderReturn<TSchema>;
49
+ readonly classes: ReadonlyArray<ClassEntry<TProps>>;
50
+ /**
51
+ * Bind a Standard Schema (Zod, Valibot, ArkType, …).
52
+ * Infers TProps from output type; validates on every render.
53
+ */
54
+ input<S extends StandardSchemaV1<any, Record<string, unknown>>>(schema: S): PoseElement<StandardSchemaV1.InferOutput<S>, S>;
55
+ /** block */
56
+ block(): PoseElement<TProps, TSchema>;
57
+ /** inline */
58
+ inline(): PoseElement<TProps, TSchema>;
59
+ /** inline-block */
60
+ inline_block(): PoseElement<TProps, TSchema>;
61
+ /** flex */
62
+ flex(): PoseElement<TProps, TSchema>;
63
+ /** inline-flex */
64
+ inline_flex(): PoseElement<TProps, TSchema>;
65
+ /** grid */
66
+ grid(): PoseElement<TProps, TSchema>;
67
+ /** inline-grid */
68
+ inline_grid(): PoseElement<TProps, TSchema>;
69
+ /** flow-root */
70
+ flow_root(): PoseElement<TProps, TSchema>;
71
+ /** hidden (display:none) */
72
+ hidden(): PoseElement<TProps, TSchema>;
73
+ /** contents */
74
+ contents(): PoseElement<TProps, TSchema>;
75
+ /** table */
76
+ table(): PoseElement<TProps, TSchema>;
77
+ /** table-caption */
78
+ table_caption(): PoseElement<TProps, TSchema>;
79
+ /** table-cell */
80
+ table_cell(): PoseElement<TProps, TSchema>;
81
+ /** table-column */
82
+ table_column(): PoseElement<TProps, TSchema>;
83
+ /** table-column-group */
84
+ table_column_group(): PoseElement<TProps, TSchema>;
85
+ /** table-footer-group */
86
+ table_footer_group(): PoseElement<TProps, TSchema>;
87
+ /** table-header-group */
88
+ table_header_group(): PoseElement<TProps, TSchema>;
89
+ /** table-row-group */
90
+ table_row_group(): PoseElement<TProps, TSchema>;
91
+ /** table-row */
92
+ table_row(): PoseElement<TProps, TSchema>;
93
+ /** flex-row */
94
+ flex_row(): PoseElement<TProps, TSchema>;
95
+ /** flex-row-reverse */
96
+ flex_row_reverse(): PoseElement<TProps, TSchema>;
97
+ /** flex-col */
98
+ flex_col(): PoseElement<TProps, TSchema>;
99
+ /** flex-col-reverse */
100
+ flex_col_reverse(): PoseElement<TProps, TSchema>;
101
+ /** flex-wrap */
102
+ flex_wrap(): PoseElement<TProps, TSchema>;
103
+ /** flex-wrap-reverse */
104
+ flex_wrap_reverse(): PoseElement<TProps, TSchema>;
105
+ /** flex-nowrap */
106
+ flex_nowrap(): PoseElement<TProps, TSchema>;
107
+ /** flex-1 */
108
+ flex_1(): PoseElement<TProps, TSchema>;
109
+ /** flex-auto */
110
+ flex_auto(): PoseElement<TProps, TSchema>;
111
+ /** flex-initial */
112
+ flex_initial(): PoseElement<TProps, TSchema>;
113
+ /** flex-none */
114
+ flex_none(): PoseElement<TProps, TSchema>;
115
+ /** grow / flex-grow */
116
+ grow(): PoseElement<TProps, TSchema>;
117
+ /** grow-0 / flex-grow-0 */
118
+ grow_0(): PoseElement<TProps, TSchema>;
119
+ /** shrink / flex-shrink */
120
+ shrink(): PoseElement<TProps, TSchema>;
121
+ /** shrink-0 / flex-shrink-0 */
122
+ shrink_0(): PoseElement<TProps, TSchema>;
123
+ /** order-{n} */
124
+ order(n: Dyn<TProps, number | string>): PoseElement<TProps, TSchema>;
125
+ /** order-first */
126
+ order_first(): PoseElement<TProps, TSchema>;
127
+ /** order-last */
128
+ order_last(): PoseElement<TProps, TSchema>;
129
+ /** order-none */
130
+ order_none(): PoseElement<TProps, TSchema>;
131
+ /** grid-cols-{n} */
132
+ grid_cols(n: Dyn<TProps, number | string>): PoseElement<TProps, TSchema>;
133
+ /** grid-rows-{n} */
134
+ grid_rows(n: Dyn<TProps, number | string>): PoseElement<TProps, TSchema>;
135
+ /** col-span-{n} */
136
+ col_span(n: Dyn<TProps, number | string>): PoseElement<TProps, TSchema>;
137
+ /** col-start-{n} */
138
+ col_start(n: Dyn<TProps, number | string>): PoseElement<TProps, TSchema>;
139
+ /** col-end-{n} */
140
+ col_end(n: Dyn<TProps, number | string>): PoseElement<TProps, TSchema>;
141
+ /** row-span-{n} */
142
+ row_span(n: Dyn<TProps, number | string>): PoseElement<TProps, TSchema>;
143
+ /** row-start-{n} */
144
+ row_start(n: Dyn<TProps, number | string>): PoseElement<TProps, TSchema>;
145
+ /** row-end-{n} */
146
+ row_end(n: Dyn<TProps, number | string>): PoseElement<TProps, TSchema>;
147
+ /** grid-flow-row */
148
+ grid_flow_row(): PoseElement<TProps, TSchema>;
149
+ /** grid-flow-col */
150
+ grid_flow_col(): PoseElement<TProps, TSchema>;
151
+ /** grid-flow-dense */
152
+ grid_flow_dense(): PoseElement<TProps, TSchema>;
153
+ /** auto-cols-{value} */
154
+ auto_cols(value: Dyn<TProps, string>): PoseElement<TProps, TSchema>;
155
+ /** auto-rows-{value} */
156
+ auto_rows(value: Dyn<TProps, string>): PoseElement<TProps, TSchema>;
157
+ /** justify-start */
158
+ justify_start(): PoseElement<TProps, TSchema>;
159
+ /** justify-end */
160
+ justify_end(): PoseElement<TProps, TSchema>;
161
+ /** justify-center */
162
+ justify_center(): PoseElement<TProps, TSchema>;
163
+ /** justify-between */
164
+ justify_between(): PoseElement<TProps, TSchema>;
165
+ /** justify-around */
166
+ justify_around(): PoseElement<TProps, TSchema>;
167
+ /** justify-evenly */
168
+ justify_evenly(): PoseElement<TProps, TSchema>;
169
+ /** justify-items-start */
170
+ justify_items_start(): PoseElement<TProps, TSchema>;
171
+ /** justify-items-end */
172
+ justify_items_end(): PoseElement<TProps, TSchema>;
173
+ /** justify-items-center */
174
+ justify_items_center(): PoseElement<TProps, TSchema>;
175
+ /** justify-items-stretch */
176
+ justify_items_stretch(): PoseElement<TProps, TSchema>;
177
+ /** justify-self-auto */
178
+ justify_self_auto(): PoseElement<TProps, TSchema>;
179
+ /** justify-self-start */
180
+ justify_self_start(): PoseElement<TProps, TSchema>;
181
+ /** justify-self-end */
182
+ justify_self_end(): PoseElement<TProps, TSchema>;
183
+ /** justify-self-center */
184
+ justify_self_center(): PoseElement<TProps, TSchema>;
185
+ /** justify-self-stretch */
186
+ justify_self_stretch(): PoseElement<TProps, TSchema>;
187
+ /** items-start */
188
+ items_start(): PoseElement<TProps, TSchema>;
189
+ /** items-end */
190
+ items_end(): PoseElement<TProps, TSchema>;
191
+ /** items-center */
192
+ items_center(): PoseElement<TProps, TSchema>;
193
+ /** items-stretch */
194
+ items_stretch(): PoseElement<TProps, TSchema>;
195
+ /** items-baseline */
196
+ items_baseline(): PoseElement<TProps, TSchema>;
197
+ /** self-auto */
198
+ self_auto(): PoseElement<TProps, TSchema>;
199
+ /** self-start */
200
+ self_start(): PoseElement<TProps, TSchema>;
201
+ /** self-end */
202
+ self_end(): PoseElement<TProps, TSchema>;
203
+ /** self-center */
204
+ self_center(): PoseElement<TProps, TSchema>;
205
+ /** self-stretch */
206
+ self_stretch(): PoseElement<TProps, TSchema>;
207
+ /** self-baseline */
208
+ self_baseline(): PoseElement<TProps, TSchema>;
209
+ /** content-start */
210
+ content_start(): PoseElement<TProps, TSchema>;
211
+ /** content-end */
212
+ content_end(): PoseElement<TProps, TSchema>;
213
+ /** content-center */
214
+ content_center(): PoseElement<TProps, TSchema>;
215
+ /** content-between */
216
+ content_between(): PoseElement<TProps, TSchema>;
217
+ /** content-around */
218
+ content_around(): PoseElement<TProps, TSchema>;
219
+ /** content-evenly */
220
+ content_evenly(): PoseElement<TProps, TSchema>;
221
+ /** place-content-{value} */
222
+ place_content(value: Dyn<TProps, string>): PoseElement<TProps, TSchema>;
223
+ /** place-items-{value} */
224
+ place_items(value: Dyn<TProps, string>): PoseElement<TProps, TSchema>;
225
+ /** place-self-{value} */
226
+ place_self(value: Dyn<TProps, string>): PoseElement<TProps, TSchema>;
227
+ /** gap-{n} */
228
+ gap(n: Dyn<TProps, number | string>): PoseElement<TProps, TSchema>;
229
+ gap_0(): PoseElement<TProps, TSchema>;
230
+ gap_1(): PoseElement<TProps, TSchema>;
231
+ gap_2(): PoseElement<TProps, TSchema>;
232
+ gap_3(): PoseElement<TProps, TSchema>;
233
+ gap_4(): PoseElement<TProps, TSchema>;
234
+ gap_5(): PoseElement<TProps, TSchema>;
235
+ gap_6(): PoseElement<TProps, TSchema>;
236
+ gap_7(): PoseElement<TProps, TSchema>;
237
+ gap_8(): PoseElement<TProps, TSchema>;
238
+ /** gap-x-{n} */
239
+ gap_x(n: Dyn<TProps, number | string>): PoseElement<TProps, TSchema>;
240
+ /** gap-y-{n} */
241
+ gap_y(n: Dyn<TProps, number | string>): PoseElement<TProps, TSchema>;
242
+ /** space-x-{n} — margin between horizontal children */
243
+ space_x(n: Dyn<TProps, number | string>): PoseElement<TProps, TSchema>;
244
+ /** space-y-{n} — margin between vertical children */
245
+ space_y(n: Dyn<TProps, number | string>): PoseElement<TProps, TSchema>;
246
+ /** space-x-reverse */
247
+ space_x_reverse(): PoseElement<TProps, TSchema>;
248
+ /** space-y-reverse */
249
+ space_y_reverse(): PoseElement<TProps, TSchema>;
250
+ /** p-{n} */
251
+ p(n: Dyn<TProps, number | string>): PoseElement<TProps, TSchema>;
252
+ /** px-{n} */
253
+ px(n: Dyn<TProps, number | string>): PoseElement<TProps, TSchema>;
254
+ /** py-{n} */
255
+ py(n: Dyn<TProps, number | string>): PoseElement<TProps, TSchema>;
256
+ /** pt-{n} */
257
+ pt(n: Dyn<TProps, number | string>): PoseElement<TProps, TSchema>;
258
+ /** pr-{n} */
259
+ pr(n: Dyn<TProps, number | string>): PoseElement<TProps, TSchema>;
260
+ /** pb-{n} */
261
+ pb(n: Dyn<TProps, number | string>): PoseElement<TProps, TSchema>;
262
+ /** pl-{n} */
263
+ pl(n: Dyn<TProps, number | string>): PoseElement<TProps, TSchema>;
264
+ /** m-{n} */
265
+ m(n: Dyn<TProps, number | string>): PoseElement<TProps, TSchema>;
266
+ /** mx-{n} */
267
+ mx(n: Dyn<TProps, number | string>): PoseElement<TProps, TSchema>;
268
+ /** my-{n} */
269
+ my(n: Dyn<TProps, number | string>): PoseElement<TProps, TSchema>;
270
+ /** mt-{n} */
271
+ mt(n: Dyn<TProps, number | string>): PoseElement<TProps, TSchema>;
272
+ /** mr-{n} */
273
+ mr(n: Dyn<TProps, number | string>): PoseElement<TProps, TSchema>;
274
+ /** mb-{n} */
275
+ mb(n: Dyn<TProps, number | string>): PoseElement<TProps, TSchema>;
276
+ /** ml-{n} */
277
+ ml(n: Dyn<TProps, number | string>): PoseElement<TProps, TSchema>;
278
+ /** m-auto */
279
+ m_auto(): PoseElement<TProps, TSchema>;
280
+ /** mx-auto */
281
+ mx_auto(): PoseElement<TProps, TSchema>;
282
+ /** my-auto */
283
+ my_auto(): PoseElement<TProps, TSchema>;
284
+ /** size-{n} */
285
+ size(n: Dyn<TProps, number | string>): PoseElement<TProps, TSchema>;
286
+ /** w-{n} */
287
+ w(n: Dyn<TProps, number | string>): PoseElement<TProps, TSchema>;
288
+ /** w-full */
289
+ w_full(): PoseElement<TProps, TSchema>;
290
+ /** w-screen */
291
+ w_screen(): PoseElement<TProps, TSchema>;
292
+ /** w-min */
293
+ w_min(): PoseElement<TProps, TSchema>;
294
+ /** w-max */
295
+ w_max(): PoseElement<TProps, TSchema>;
296
+ /** w-fit */
297
+ w_fit(): PoseElement<TProps, TSchema>;
298
+ /** h-{n} */
299
+ h(n: Dyn<TProps, number | string>): PoseElement<TProps, TSchema>;
300
+ /** h-full */
301
+ h_full(): PoseElement<TProps, TSchema>;
302
+ /** h-screen */
303
+ h_screen(): PoseElement<TProps, TSchema>;
304
+ /** h-min */
305
+ h_min(): PoseElement<TProps, TSchema>;
306
+ /** h-max */
307
+ h_max(): PoseElement<TProps, TSchema>;
308
+ /** h-fit */
309
+ h_fit(): PoseElement<TProps, TSchema>;
310
+ /** min-w-{n} */
311
+ min_w(n: Dyn<TProps, number | string>): PoseElement<TProps, TSchema>;
312
+ /** max-w-{n} */
313
+ max_w(n: Dyn<TProps, number | string>): PoseElement<TProps, TSchema>;
314
+ /** min-h-{n} */
315
+ min_h(n: Dyn<TProps, number | string>): PoseElement<TProps, TSchema>;
316
+ /** max-h-{n} */
317
+ max_h(n: Dyn<TProps, number | string>): PoseElement<TProps, TSchema>;
318
+ /** aspect-{value} e.g. "auto", "square", "video" */
319
+ aspect(value: Dyn<TProps, string>): PoseElement<TProps, TSchema>;
320
+ /** aspect-auto */
321
+ aspect_auto(): PoseElement<TProps, TSchema>;
322
+ /** aspect-square */
323
+ aspect_square(): PoseElement<TProps, TSchema>;
324
+ /** aspect-video */
325
+ aspect_video(): PoseElement<TProps, TSchema>;
326
+ /** static */
327
+ static_pos(): PoseElement<TProps, TSchema>;
328
+ /** relative */
329
+ relative(): PoseElement<TProps, TSchema>;
330
+ /** absolute */
331
+ absolute(): PoseElement<TProps, TSchema>;
332
+ /** fixed */
333
+ fixed(): PoseElement<TProps, TSchema>;
334
+ /** sticky */
335
+ sticky(): PoseElement<TProps, TSchema>;
336
+ /** inset-{n} */
337
+ inset(n: Dyn<TProps, number | string>): PoseElement<TProps, TSchema>;
338
+ /** inset-0 */
339
+ inset_0(): PoseElement<TProps, TSchema>;
340
+ /** inset-x-{n} */
341
+ inset_x(n: Dyn<TProps, number | string>): PoseElement<TProps, TSchema>;
342
+ /** inset-y-{n} */
343
+ inset_y(n: Dyn<TProps, number | string>): PoseElement<TProps, TSchema>;
344
+ /** top-{n} */
345
+ top(n: Dyn<TProps, number | string>): PoseElement<TProps, TSchema>;
346
+ /** right-{n} */
347
+ right(n: Dyn<TProps, number | string>): PoseElement<TProps, TSchema>;
348
+ /** bottom-{n} */
349
+ bottom(n: Dyn<TProps, number | string>): PoseElement<TProps, TSchema>;
350
+ /** left-{n} */
351
+ left(n: Dyn<TProps, number | string>): PoseElement<TProps, TSchema>;
352
+ /** z-{n} */
353
+ z(n: Dyn<TProps, number | string>): PoseElement<TProps, TSchema>;
354
+ /** visible */
355
+ visible(): PoseElement<TProps, TSchema>;
356
+ /** invisible */
357
+ invisible(): PoseElement<TProps, TSchema>;
358
+ /** float-left */
359
+ float_left(): PoseElement<TProps, TSchema>;
360
+ /** float-right */
361
+ float_right(): PoseElement<TProps, TSchema>;
362
+ /** float-none */
363
+ float_none(): PoseElement<TProps, TSchema>;
364
+ /** clear-left */
365
+ clear_left(): PoseElement<TProps, TSchema>;
366
+ /** clear-right */
367
+ clear_right(): PoseElement<TProps, TSchema>;
368
+ /** clear-both */
369
+ clear_both(): PoseElement<TProps, TSchema>;
370
+ /** clear-none */
371
+ clear_none(): PoseElement<TProps, TSchema>;
372
+ /** box-border */
373
+ box_border(): PoseElement<TProps, TSchema>;
374
+ /** box-content */
375
+ box_content(): PoseElement<TProps, TSchema>;
376
+ /** overflow-auto */
377
+ overflow_auto(): PoseElement<TProps, TSchema>;
378
+ /** overflow-hidden */
379
+ overflow_hidden(): PoseElement<TProps, TSchema>;
380
+ /** overflow-clip */
381
+ overflow_clip(): PoseElement<TProps, TSchema>;
382
+ /** overflow-visible */
383
+ overflow_visible(): PoseElement<TProps, TSchema>;
384
+ /** overflow-scroll */
385
+ overflow_scroll(): PoseElement<TProps, TSchema>;
386
+ /** overflow-x-auto */
387
+ overflow_x_auto(): PoseElement<TProps, TSchema>;
388
+ /** overflow-x-hidden */
389
+ overflow_x_hidden(): PoseElement<TProps, TSchema>;
390
+ /** overflow-x-clip */
391
+ overflow_x_clip(): PoseElement<TProps, TSchema>;
392
+ /** overflow-x-visible */
393
+ overflow_x_visible(): PoseElement<TProps, TSchema>;
394
+ /** overflow-x-scroll */
395
+ overflow_x_scroll(): PoseElement<TProps, TSchema>;
396
+ /** overflow-y-auto */
397
+ overflow_y_auto(): PoseElement<TProps, TSchema>;
398
+ /** overflow-y-hidden */
399
+ overflow_y_hidden(): PoseElement<TProps, TSchema>;
400
+ /** overflow-y-clip */
401
+ overflow_y_clip(): PoseElement<TProps, TSchema>;
402
+ /** overflow-y-visible */
403
+ overflow_y_visible(): PoseElement<TProps, TSchema>;
404
+ /** overflow-y-scroll */
405
+ overflow_y_scroll(): PoseElement<TProps, TSchema>;
406
+ /** bg-{color} */
407
+ bg(color: Dyn<TProps, string>): PoseElement<TProps, TSchema>;
408
+ /** bg-opacity-{value} */
409
+ bg_opacity(value: Dyn<TProps, number | string>): PoseElement<TProps, TSchema>;
410
+ /** text-{color} */
411
+ text_color(color: Dyn<TProps, string>): PoseElement<TProps, TSchema>;
412
+ /** opacity-{value} */
413
+ opacity(value: Dyn<TProps, number | string>): PoseElement<TProps, TSchema>;
414
+ /** bg-clip-{value}: border | padding | content | text */
415
+ bg_clip(value: Dyn<TProps, "border" | "padding" | "content" | "text">): PoseElement<TProps, TSchema>;
416
+ /** bg-{size}: auto | cover | contain */
417
+ bg_size(value: Dyn<TProps, "auto" | "cover" | "contain">): PoseElement<TProps, TSchema>;
418
+ /** bg-{position}: center | top | bottom | left | right | etc */
419
+ bg_position(value: Dyn<TProps, string>): PoseElement<TProps, TSchema>;
420
+ /** bg-repeat / bg-no-repeat / bg-repeat-x / bg-repeat-y */
421
+ bg_repeat(value?: Dyn<TProps, "x" | "y" | "round" | "space" | "none">): PoseElement<TProps, TSchema>;
422
+ /** bg-attachment: fixed | local | scroll */
423
+ bg_attachment(value: Dyn<TProps, "fixed" | "local" | "scroll">): PoseElement<TProps, TSchema>;
424
+ /** bg-gradient-to-{dir}: t | tr | r | br | b | bl | l | tl */
425
+ bg_gradient(dir: Dyn<TProps, "t" | "tr" | "r" | "br" | "b" | "bl" | "l" | "tl">): PoseElement<TProps, TSchema>;
426
+ /** from-{color} */
427
+ from(color: Dyn<TProps, string>): PoseElement<TProps, TSchema>;
428
+ /** via-{color} */
429
+ via(color: Dyn<TProps, string>): PoseElement<TProps, TSchema>;
430
+ /** to-{color} */
431
+ to(color: Dyn<TProps, string>): PoseElement<TProps, TSchema>;
432
+ /** border (all sides, 1px) */
433
+ border(): PoseElement<TProps, TSchema>;
434
+ /** border-{n} */
435
+ border_w(n: Dyn<TProps, number | string>): PoseElement<TProps, TSchema>;
436
+ /** border-t / border-t-{n} */
437
+ border_t(n?: Dyn<TProps, number | string>): PoseElement<TProps, TSchema>;
438
+ /** border-r / border-r-{n} */
439
+ border_r(n?: Dyn<TProps, number | string>): PoseElement<TProps, TSchema>;
440
+ /** border-b / border-b-{n} */
441
+ border_b(n?: Dyn<TProps, number | string>): PoseElement<TProps, TSchema>;
442
+ /** border-l / border-l-{n} */
443
+ border_l(n?: Dyn<TProps, number | string>): PoseElement<TProps, TSchema>;
444
+ /** border-x-{n} */
445
+ border_x(n?: Dyn<TProps, number | string>): PoseElement<TProps, TSchema>;
446
+ /** border-y-{n} */
447
+ border_y(n?: Dyn<TProps, number | string>): PoseElement<TProps, TSchema>;
448
+ /** border-{color} */
449
+ border_color(color: Dyn<TProps, string>): PoseElement<TProps, TSchema>;
450
+ /** border-solid */
451
+ border_solid(): PoseElement<TProps, TSchema>;
452
+ /** border-dashed */
453
+ border_dashed(): PoseElement<TProps, TSchema>;
454
+ /** border-dotted */
455
+ border_dotted(): PoseElement<TProps, TSchema>;
456
+ /** border-double */
457
+ border_double(): PoseElement<TProps, TSchema>;
458
+ /** border-none */
459
+ border_none(): PoseElement<TProps, TSchema>;
460
+ /** border-collapse */
461
+ border_collapse(): PoseElement<TProps, TSchema>;
462
+ /** border-separate */
463
+ border_separate(): PoseElement<TProps, TSchema>;
464
+ /** rounded / rounded-{size} */
465
+ rounded(size?: Dyn<TProps, string>): PoseElement<TProps, TSchema>;
466
+ /** rounded-full */
467
+ rounded_full(): PoseElement<TProps, TSchema>;
468
+ /** rounded-t-{size} */
469
+ rounded_t(size?: Dyn<TProps, string>): PoseElement<TProps, TSchema>;
470
+ /** rounded-r-{size} */
471
+ rounded_r(size?: Dyn<TProps, string>): PoseElement<TProps, TSchema>;
472
+ /** rounded-b-{size} */
473
+ rounded_b(size?: Dyn<TProps, string>): PoseElement<TProps, TSchema>;
474
+ /** rounded-l-{size} */
475
+ rounded_l(size?: Dyn<TProps, string>): PoseElement<TProps, TSchema>;
476
+ /** divide-x-{n} — border between horizontal children */
477
+ divide_x(n?: Dyn<TProps, number | string>): PoseElement<TProps, TSchema>;
478
+ /** divide-y-{n} — border between vertical children */
479
+ divide_y(n?: Dyn<TProps, number | string>): PoseElement<TProps, TSchema>;
480
+ /** divide-x-reverse */
481
+ divide_x_reverse(): PoseElement<TProps, TSchema>;
482
+ /** divide-y-reverse */
483
+ divide_y_reverse(): PoseElement<TProps, TSchema>;
484
+ /** divide-{color} */
485
+ divide_color(color: Dyn<TProps, string>): PoseElement<TProps, TSchema>;
486
+ /** divide-solid */
487
+ divide_solid(): PoseElement<TProps, TSchema>;
488
+ /** divide-dashed */
489
+ divide_dashed(): PoseElement<TProps, TSchema>;
490
+ /** divide-dotted */
491
+ divide_dotted(): PoseElement<TProps, TSchema>;
492
+ /** divide-none */
493
+ divide_none(): PoseElement<TProps, TSchema>;
494
+ /** ring */
495
+ ring(): PoseElement<TProps, TSchema>;
496
+ /** ring-{n} */
497
+ ring_w(n: Dyn<TProps, number | string>): PoseElement<TProps, TSchema>;
498
+ /** ring-inset */
499
+ ring_inset(): PoseElement<TProps, TSchema>;
500
+ /** ring-{color} */
501
+ ring_color(color: Dyn<TProps, string>): PoseElement<TProps, TSchema>;
502
+ /** ring-offset-{n} */
503
+ ring_offset(n: Dyn<TProps, number | string>): PoseElement<TProps, TSchema>;
504
+ /** ring-offset-{color} */
505
+ ring_offset_color(color: Dyn<TProps, string>): PoseElement<TProps, TSchema>;
506
+ /** outline-none */
507
+ outline_none(): PoseElement<TProps, TSchema>;
508
+ /** outline */
509
+ outline(): PoseElement<TProps, TSchema>;
510
+ /** outline-dashed */
511
+ outline_dashed(): PoseElement<TProps, TSchema>;
512
+ /** outline-dotted */
513
+ outline_dotted(): PoseElement<TProps, TSchema>;
514
+ /** outline-double */
515
+ outline_double(): PoseElement<TProps, TSchema>;
516
+ /** outline-{color} */
517
+ outline_color(color: Dyn<TProps, string>): PoseElement<TProps, TSchema>;
518
+ /** outline-{n} */
519
+ outline_w(n: Dyn<TProps, number | string>): PoseElement<TProps, TSchema>;
520
+ /** outline-offset-{n} */
521
+ outline_offset(n: Dyn<TProps, number | string>): PoseElement<TProps, TSchema>;
522
+ /** shadow */
523
+ shadow(): PoseElement<TProps, TSchema>;
524
+ /** shadow-sm */
525
+ shadow_sm(): PoseElement<TProps, TSchema>;
526
+ /** shadow-md */
527
+ shadow_md(): PoseElement<TProps, TSchema>;
528
+ /** shadow-lg */
529
+ shadow_lg(): PoseElement<TProps, TSchema>;
530
+ /** shadow-xl */
531
+ shadow_xl(): PoseElement<TProps, TSchema>;
532
+ /** shadow-2xl */
533
+ shadow_2xl(): PoseElement<TProps, TSchema>;
534
+ /** shadow-inner */
535
+ shadow_inner(): PoseElement<TProps, TSchema>;
536
+ /** shadow-none */
537
+ shadow_none(): PoseElement<TProps, TSchema>;
538
+ /** shadow-{color} */
539
+ shadow_color(color: Dyn<TProps, string>): PoseElement<TProps, TSchema>;
540
+ /** text-{size} */
541
+ text(size: Dyn<TProps, string>): PoseElement<TProps, TSchema>;
542
+ text_xs(): PoseElement<TProps, TSchema>;
543
+ text_sm(): PoseElement<TProps, TSchema>;
544
+ text_base(): PoseElement<TProps, TSchema>;
545
+ text_lg(): PoseElement<TProps, TSchema>;
546
+ text_xl(): PoseElement<TProps, TSchema>;
547
+ text_2xl(): PoseElement<TProps, TSchema>;
548
+ text_3xl(): PoseElement<TProps, TSchema>;
549
+ text_4xl(): PoseElement<TProps, TSchema>;
550
+ text_5xl(): PoseElement<TProps, TSchema>;
551
+ text_6xl(): PoseElement<TProps, TSchema>;
552
+ text_7xl(): PoseElement<TProps, TSchema>;
553
+ text_8xl(): PoseElement<TProps, TSchema>;
554
+ text_9xl(): PoseElement<TProps, TSchema>;
555
+ /** font-{weight} */
556
+ font_thin(): PoseElement<TProps, TSchema>;
557
+ font_extralight(): PoseElement<TProps, TSchema>;
558
+ font_light(): PoseElement<TProps, TSchema>;
559
+ font_normal(): PoseElement<TProps, TSchema>;
560
+ font_medium(): PoseElement<TProps, TSchema>;
561
+ font_semibold(): PoseElement<TProps, TSchema>;
562
+ font_bold(): PoseElement<TProps, TSchema>;
563
+ font_extrabold(): PoseElement<TProps, TSchema>;
564
+ font_black(): PoseElement<TProps, TSchema>;
565
+ /** italic */
566
+ italic(): PoseElement<TProps, TSchema>;
567
+ /** not-italic */
568
+ not_italic(): PoseElement<TProps, TSchema>;
569
+ /** text-left */
570
+ text_left(): PoseElement<TProps, TSchema>;
571
+ /** text-center */
572
+ text_center(): PoseElement<TProps, TSchema>;
573
+ /** text-right */
574
+ text_right(): PoseElement<TProps, TSchema>;
575
+ /** text-justify */
576
+ text_justify(): PoseElement<TProps, TSchema>;
577
+ /** text-wrap */
578
+ text_wrap(): PoseElement<TProps, TSchema>;
579
+ /** text-nowrap */
580
+ text_nowrap(): PoseElement<TProps, TSchema>;
581
+ /** text-balance */
582
+ text_balance(): PoseElement<TProps, TSchema>;
583
+ /** text-pretty */
584
+ text_pretty(): PoseElement<TProps, TSchema>;
585
+ /** truncate */
586
+ truncate(): PoseElement<TProps, TSchema>;
587
+ /** text-ellipsis */
588
+ text_ellipsis(): PoseElement<TProps, TSchema>;
589
+ /** text-clip */
590
+ text_clip(): PoseElement<TProps, TSchema>;
591
+ /** leading-{value} */
592
+ leading(value: Dyn<TProps, string | number>): PoseElement<TProps, TSchema>;
593
+ /** tracking-{value} */
594
+ tracking(value: Dyn<TProps, string>): PoseElement<TProps, TSchema>;
595
+ /** line-clamp-{n} */
596
+ line_clamp(n: Dyn<TProps, number | string>): PoseElement<TProps, TSchema>;
597
+ /** whitespace-{value}: normal | nowrap | pre | pre-line | pre-wrap | break-spaces */
598
+ whitespace(value: Dyn<TProps, string>): PoseElement<TProps, TSchema>;
599
+ /** break-normal */
600
+ break_normal(): PoseElement<TProps, TSchema>;
601
+ /** break-words */
602
+ break_words(): PoseElement<TProps, TSchema>;
603
+ /** break-all */
604
+ break_all(): PoseElement<TProps, TSchema>;
605
+ /** break-keep */
606
+ break_keep(): PoseElement<TProps, TSchema>;
607
+ /** uppercase */
608
+ uppercase(): PoseElement<TProps, TSchema>;
609
+ /** lowercase */
610
+ lowercase(): PoseElement<TProps, TSchema>;
611
+ /** capitalize */
612
+ capitalize(): PoseElement<TProps, TSchema>;
613
+ /** normal-case */
614
+ normal_case(): PoseElement<TProps, TSchema>;
615
+ /** underline */
616
+ underline(): PoseElement<TProps, TSchema>;
617
+ /** overline */
618
+ overline(): PoseElement<TProps, TSchema>;
619
+ /** line-through */
620
+ line_through(): PoseElement<TProps, TSchema>;
621
+ /** no-underline */
622
+ no_underline(): PoseElement<TProps, TSchema>;
623
+ /** decoration-{color} */
624
+ decoration_color(color: Dyn<TProps, string>): PoseElement<TProps, TSchema>;
625
+ /** indent-{n} */
626
+ indent(n: Dyn<TProps, number | string>): PoseElement<TProps, TSchema>;
627
+ /** align-{value}: baseline | top | middle | bottom | text-top | text-bottom | sub | super */
628
+ align(value: Dyn<TProps, string>): PoseElement<TProps, TSchema>;
629
+ /** font-{family}: sans | serif | mono */
630
+ font_family(family: Dyn<TProps, "sans" | "serif" | "mono">): PoseElement<TProps, TSchema>;
631
+ /** list-none */
632
+ list_none(): PoseElement<TProps, TSchema>;
633
+ /** list-disc */
634
+ list_disc(): PoseElement<TProps, TSchema>;
635
+ /** list-decimal */
636
+ list_decimal(): PoseElement<TProps, TSchema>;
637
+ /** list-inside */
638
+ list_inside(): PoseElement<TProps, TSchema>;
639
+ /** list-outside */
640
+ list_outside(): PoseElement<TProps, TSchema>;
641
+ /** object-contain */
642
+ object_contain(): PoseElement<TProps, TSchema>;
643
+ /** object-cover */
644
+ object_cover(): PoseElement<TProps, TSchema>;
645
+ /** object-fill */
646
+ object_fill(): PoseElement<TProps, TSchema>;
647
+ /** object-none */
648
+ object_none(): PoseElement<TProps, TSchema>;
649
+ /** object-scale-down */
650
+ object_scale_down(): PoseElement<TProps, TSchema>;
651
+ /** object-{position}: center | top | bottom | left | right | etc */
652
+ object_position(value: Dyn<TProps, string>): PoseElement<TProps, TSchema>;
653
+ /** scale-{n} */
654
+ scale(n: Dyn<TProps, number | string>): PoseElement<TProps, TSchema>;
655
+ /** scale-x-{n} */
656
+ scale_x(n: Dyn<TProps, number | string>): PoseElement<TProps, TSchema>;
657
+ /** scale-y-{n} */
658
+ scale_y(n: Dyn<TProps, number | string>): PoseElement<TProps, TSchema>;
659
+ /** rotate-{n} */
660
+ rotate(n: Dyn<TProps, number | string>): PoseElement<TProps, TSchema>;
661
+ /** translate-x-{n} */
662
+ translate_x(n: Dyn<TProps, number | string>): PoseElement<TProps, TSchema>;
663
+ /** translate-y-{n} */
664
+ translate_y(n: Dyn<TProps, number | string>): PoseElement<TProps, TSchema>;
665
+ /** skew-x-{n} */
666
+ skew_x(n: Dyn<TProps, number | string>): PoseElement<TProps, TSchema>;
667
+ /** skew-y-{n} */
668
+ skew_y(n: Dyn<TProps, number | string>): PoseElement<TProps, TSchema>;
669
+ /** origin-{value}: center | top | top-right | right | bottom-right | bottom | bottom-left | left | top-left */
670
+ origin(value: Dyn<TProps, string>): PoseElement<TProps, TSchema>;
671
+ /** blur / blur-{size} */
672
+ blur(size?: Dyn<TProps, string>): PoseElement<TProps, TSchema>;
673
+ /** brightness-{n} */
674
+ brightness(n: Dyn<TProps, number | string>): PoseElement<TProps, TSchema>;
675
+ /** contrast-{n} */
676
+ contrast(n: Dyn<TProps, number | string>): PoseElement<TProps, TSchema>;
677
+ /** grayscale / grayscale-0 */
678
+ grayscale(n?: Dyn<TProps, number | string>): PoseElement<TProps, TSchema>;
679
+ /** hue-rotate-{n} */
680
+ hue_rotate(n: Dyn<TProps, number | string>): PoseElement<TProps, TSchema>;
681
+ /** invert / invert-0 */
682
+ invert(n?: Dyn<TProps, number | string>): PoseElement<TProps, TSchema>;
683
+ /** saturate-{n} */
684
+ saturate(n: Dyn<TProps, number | string>): PoseElement<TProps, TSchema>;
685
+ /** sepia / sepia-0 */
686
+ sepia(n?: Dyn<TProps, number | string>): PoseElement<TProps, TSchema>;
687
+ /** drop-shadow / drop-shadow-{size} */
688
+ drop_shadow(size?: Dyn<TProps, string>): PoseElement<TProps, TSchema>;
689
+ /** backdrop-blur / backdrop-blur-{size} */
690
+ backdrop_blur(size?: Dyn<TProps, string>): PoseElement<TProps, TSchema>;
691
+ /** backdrop-brightness-{n} */
692
+ backdrop_brightness(n: Dyn<TProps, number | string>): PoseElement<TProps, TSchema>;
693
+ /** animate-none */
694
+ animate_none(): PoseElement<TProps, TSchema>;
695
+ /** animate-spin */
696
+ animate_spin(): PoseElement<TProps, TSchema>;
697
+ /** animate-ping */
698
+ animate_ping(): PoseElement<TProps, TSchema>;
699
+ /** animate-pulse */
700
+ animate_pulse(): PoseElement<TProps, TSchema>;
701
+ /** animate-bounce */
702
+ animate_bounce(): PoseElement<TProps, TSchema>;
703
+ /** transition */
704
+ transition(): PoseElement<TProps, TSchema>;
705
+ /** transition-{property}: none | all | colors | opacity | shadow | transform */
706
+ transition_prop(prop: Dyn<TProps, string>): PoseElement<TProps, TSchema>;
707
+ /** duration-{n} */
708
+ duration(n: Dyn<TProps, number | string>): PoseElement<TProps, TSchema>;
709
+ /** delay-{n} */
710
+ delay(n: Dyn<TProps, number | string>): PoseElement<TProps, TSchema>;
711
+ /** ease-{value}: linear | in | out | in-out */
712
+ ease(value: Dyn<TProps, "linear" | "in" | "out" | "in-out">): PoseElement<TProps, TSchema>;
713
+ /** will-change-{value}: auto | scroll | contents | transform */
714
+ will_change(value: Dyn<TProps, string>): PoseElement<TProps, TSchema>;
715
+ /** cursor-auto */
716
+ cursor_auto(): PoseElement<TProps, TSchema>;
717
+ /** cursor-default */
718
+ cursor_default(): PoseElement<TProps, TSchema>;
719
+ /** cursor-pointer */
720
+ cursor_pointer(): PoseElement<TProps, TSchema>;
721
+ /** cursor-wait */
722
+ cursor_wait(): PoseElement<TProps, TSchema>;
723
+ /** cursor-text */
724
+ cursor_text(): PoseElement<TProps, TSchema>;
725
+ /** cursor-move */
726
+ cursor_move(): PoseElement<TProps, TSchema>;
727
+ /** cursor-not-allowed */
728
+ cursor_not_allowed(): PoseElement<TProps, TSchema>;
729
+ /** cursor-grab */
730
+ cursor_grab(): PoseElement<TProps, TSchema>;
731
+ /** cursor-grabbing */
732
+ cursor_grabbing(): PoseElement<TProps, TSchema>;
733
+ /** cursor-crosshair */
734
+ cursor_crosshair(): PoseElement<TProps, TSchema>;
735
+ /** select-none */
736
+ select_none(): PoseElement<TProps, TSchema>;
737
+ /** select-text */
738
+ select_text(): PoseElement<TProps, TSchema>;
739
+ /** select-all */
740
+ select_all(): PoseElement<TProps, TSchema>;
741
+ /** select-auto */
742
+ select_auto(): PoseElement<TProps, TSchema>;
743
+ /** resize-none */
744
+ resize_none(): PoseElement<TProps, TSchema>;
745
+ /** resize */
746
+ resize(): PoseElement<TProps, TSchema>;
747
+ /** resize-x */
748
+ resize_x(): PoseElement<TProps, TSchema>;
749
+ /** resize-y */
750
+ resize_y(): PoseElement<TProps, TSchema>;
751
+ /** pointer-events-none */
752
+ pointer_events_none(): PoseElement<TProps, TSchema>;
753
+ /** pointer-events-auto */
754
+ pointer_events_auto(): PoseElement<TProps, TSchema>;
755
+ /** touch-auto */
756
+ touch_auto(): PoseElement<TProps, TSchema>;
757
+ /** touch-none */
758
+ touch_none(): PoseElement<TProps, TSchema>;
759
+ /** touch-pan-x */
760
+ touch_pan_x(): PoseElement<TProps, TSchema>;
761
+ /** touch-pan-y */
762
+ touch_pan_y(): PoseElement<TProps, TSchema>;
763
+ /** touch-manipulation */
764
+ touch_manipulation(): PoseElement<TProps, TSchema>;
765
+ /** appearance-none */
766
+ appearance_none(): PoseElement<TProps, TSchema>;
767
+ /** mix-blend-{mode} */
768
+ mix_blend(mode: Dyn<TProps, string>): PoseElement<TProps, TSchema>;
769
+ /** fill-{color} */
770
+ fill(color: Dyn<TProps, string>): PoseElement<TProps, TSchema>;
771
+ /** stroke-{color} */
772
+ stroke(color: Dyn<TProps, string>): PoseElement<TProps, TSchema>;
773
+ /** stroke-{n} */
774
+ stroke_w(n: Dyn<TProps, number | string>): PoseElement<TProps, TSchema>;
775
+ /** sr-only */
776
+ sr_only(): PoseElement<TProps, TSchema>;
777
+ /** not-sr-only */
778
+ not_sr_only(): PoseElement<TProps, TSchema>;
779
+ /**
780
+ * Apply styles conditionally — predicate form or value-switch form.
781
+ *
782
+ * Predicate form (apply when true):
783
+ * ```ts
784
+ * .when(({ disabled }) => disabled, (b) => b.opacity(50).cursor_not_allowed())
785
+ * ```
786
+ *
787
+ * Value form (switch on a prop key):
788
+ * ```ts
789
+ * .when("variant", {
790
+ * primary: (b) => b.bg("indigo-600").text_color("white"),
791
+ * secondary: (b) => b.bg("slate-200").text_color("slate-900"),
792
+ * })
793
+ * ```
794
+ * Cases are Partial — unmatched values emit no classes.
795
+ * Multiple .when() calls are independent and all evaluated at render time.
796
+ */
797
+ when(pred: (props: TProps) => boolean, apply: (b: PoseElement<TProps, undefined>) => PoseElement<TProps, any>): PoseElement<TProps, TSchema>;
798
+ when<K extends keyof TProps>(key: K, cases: Partial<Record<TProps[K] & PropertyKey, (b: PoseElement<TProps, undefined>) => PoseElement<TProps, any>>>): PoseElement<TProps, TSchema>;
799
+ /**
800
+ * Append any raw Tailwind class — static or derived from props.
801
+ * @example
802
+ * .cls('hover:opacity-75')
803
+ * .cls(({ active }) => active ? 'ring-2 ring-blue-500' : '')
804
+ */
805
+ cls(value: Dyn<TProps, string>): PoseElement<TProps, TSchema>;
806
+ child(fn: (props: TProps) => ChildValue): PoseElement<TProps, TSchema>;
807
+ child(value: ChildValue): PoseElement<TProps, TSchema>;
808
+ /**
809
+ * Render to `{ html, css }` using UnoCSS + presetWind4.
810
+ * @example
811
+ * const { html, css } = await card.render({ name: 'Ada' })
812
+ */
813
+ render(...args: CallArgs<TProps>): Promise<{
814
+ html: string;
815
+ css: string;
816
+ }>;
817
+ }
818
+ interface Pose {
819
+ as<Tag extends keyof HTMLElementTagNameMap>(tag: Tag): PoseElement<Record<never, never>, undefined>;
820
+ }
821
+ declare const pose: Pose;
822
+ declare const div: PoseElement<Record<never, never>, undefined>;
823
+ //#endregion
824
+ export { Child, ChildValue, Dyn, Pose, PoseElement, PoseValidationError, StandardSchemaV1, pose as default, div };