xref: /php-src/ext/dom/lexbor/lexbor/css/property.h (revision f0934090)
1 /*
2  * Copyright (C) 2021-2023 Alexander Borisov
3  *
4  * Author: Alexander Borisov <borisov@lexbor.com>
5  */
6 
7 #ifndef LXB_CSS_PROPERTY_H
8 #define LXB_CSS_PROPERTY_H
9 
10 #ifdef __cplusplus
11 extern "C" {
12 #endif
13 
14 #include "lexbor/core/serialize.h"
15 #include "lexbor/core/array_obj.h"
16 #include "lexbor/css/base.h"
17 #include "lexbor/css/value.h"
18 #include "lexbor/css/unit/const.h"
19 #include "lexbor/css/property/const.h"
20 
21 
22 typedef struct {
23     lxb_css_property_type_t type;
24     lexbor_str_t            value;
25 }
26 lxb_css_property__undef_t;
27 
28 typedef struct {
29     lexbor_str_t name;
30     lexbor_str_t value;
31 }
32 lxb_css_property__custom_t;
33 
34 typedef struct {
35     lxb_css_display_type_t a;
36     lxb_css_display_type_t b;
37     lxb_css_display_type_t c;
38 }
39 lxb_css_property_display_t;
40 
41 typedef lxb_css_value_integer_type_t lxb_css_property_order_t;
42 
43 typedef struct {
44     lxb_css_visibility_type_t type;
45 }
46 lxb_css_property_visibility_t;
47 
48 typedef lxb_css_value_length_percentage_t lxb_css_property_width_t;
49 typedef lxb_css_value_length_percentage_t lxb_css_property_height_t;
50 typedef lxb_css_value_length_percentage_t lxb_css_property_min_width_t;
51 typedef lxb_css_value_length_percentage_t lxb_css_property_min_height_t;
52 typedef lxb_css_value_length_percentage_t lxb_css_property_max_width_t;
53 typedef lxb_css_value_length_percentage_t lxb_css_property_max_height_t;
54 typedef lxb_css_value_length_percentage_t lxb_css_property_margin_top_t;
55 typedef lxb_css_value_length_percentage_t lxb_css_property_margin_right_t;
56 typedef lxb_css_value_length_percentage_t lxb_css_property_margin_bottom_t;
57 typedef lxb_css_value_length_percentage_t lxb_css_property_margin_left_t;
58 typedef lxb_css_value_length_percentage_t lxb_css_property_padding_top_t;
59 typedef lxb_css_value_length_percentage_t lxb_css_property_padding_right_t;
60 typedef lxb_css_value_length_percentage_t lxb_css_property_padding_bottom_t;
61 typedef lxb_css_value_length_percentage_t lxb_css_property_padding_left_t;
62 
63 typedef struct {
64     lxb_css_box_sizing_type_t type;
65 }
66 lxb_css_property_box_sizing_t;
67 
68 typedef struct {
69     lxb_css_property_margin_top_t    top;
70     lxb_css_property_margin_right_t  right;
71     lxb_css_property_margin_bottom_t bottom;
72     lxb_css_property_margin_left_t   left;
73 }
74 lxb_css_property_margin_t;
75 
76 typedef struct {
77     lxb_css_property_padding_top_t    top;
78     lxb_css_property_padding_right_t  right;
79     lxb_css_property_padding_bottom_t bottom;
80     lxb_css_property_padding_left_t   left;
81 }
82 lxb_css_property_padding_t;
83 
84 typedef struct {
85     lxb_css_value_type_t        style;
86     lxb_css_value_length_type_t width;
87     lxb_css_value_color_t       color;
88 }
89 lxb_css_property_border_t;
90 
91 typedef lxb_css_property_border_t lxb_css_property_border_top_t;
92 typedef lxb_css_property_border_t lxb_css_property_border_right_t;
93 typedef lxb_css_property_border_t lxb_css_property_border_bottom_t;
94 typedef lxb_css_property_border_t lxb_css_property_border_left_t;
95 
96 typedef lxb_css_value_color_t lxb_css_property_border_top_color_t;
97 typedef lxb_css_value_color_t lxb_css_property_border_right_color_t;
98 typedef lxb_css_value_color_t lxb_css_property_border_bottom_color_t;
99 typedef lxb_css_value_color_t lxb_css_property_border_left_color_t;
100 
101 typedef lxb_css_value_color_t lxb_css_property_background_color_t;
102 
103 typedef lxb_css_value_color_t lxb_css_property_color_t;
104 typedef lxb_css_value_number_percentage_t lxb_css_property_opacity_t;
105 
106 typedef struct {
107     lxb_css_position_type_t type;
108 }
109 lxb_css_property_position_t;
110 
111 typedef lxb_css_value_length_percentage_t lxb_css_property_top_t;
112 typedef lxb_css_value_length_percentage_t lxb_css_property_right_t;
113 typedef lxb_css_value_length_percentage_t lxb_css_property_bottom_t;
114 typedef lxb_css_value_length_percentage_t lxb_css_property_left_t;
115 
116 typedef lxb_css_value_length_percentage_t lxb_css_property_inset_block_start_t;
117 typedef lxb_css_value_length_percentage_t lxb_css_property_inset_inline_start_t;
118 typedef lxb_css_value_length_percentage_t lxb_css_property_inset_block_end_t;
119 typedef lxb_css_value_length_percentage_t lxb_css_property_inset_inline_end_t;
120 
121 typedef struct {
122     lxb_css_text_transform_type_t type_case;
123     lxb_css_text_transform_type_t full_width;
124     lxb_css_text_transform_type_t full_size_kana;
125 }
126 lxb_css_property_text_transform_t;
127 
128 typedef struct {
129     lxb_css_text_align_type_t type;
130 }
131 lxb_css_property_text_align_t;
132 
133 typedef struct {
134     lxb_css_text_align_all_type_t type;
135 }
136 lxb_css_property_text_align_all_t;
137 
138 typedef struct {
139     lxb_css_text_align_last_type_t type;
140 }
141 lxb_css_property_text_align_last_t;
142 
143 typedef struct {
144     lxb_css_text_justify_type_t type;
145 }
146 lxb_css_property_text_justify_t;
147 
148 typedef struct {
149     lxb_css_value_length_percentage_t length;
150     lxb_css_text_indent_type_t        type;
151     lxb_css_text_indent_type_t        hanging;
152     lxb_css_text_indent_type_t        each_line;
153 }
154 lxb_css_property_text_indent_t;
155 
156 typedef struct {
157     lxb_css_white_space_type_t type;
158 }
159 lxb_css_property_white_space_t;
160 
161 typedef lxb_css_value_number_length_t lxb_css_property_tab_size_t;
162 
163 typedef struct {
164     lxb_css_word_break_type_t type;
165 }
166 lxb_css_property_word_break_t;
167 
168 typedef struct {
169     lxb_css_line_break_type_t type;
170 }
171 lxb_css_property_line_break_t;
172 
173 typedef struct {
174     lxb_css_hyphens_type_t type;
175 }
176 lxb_css_property_hyphens_t;
177 
178 typedef struct {
179     lxb_css_overflow_wrap_type_t type;
180 }
181 lxb_css_property_overflow_wrap_t;
182 
183 typedef struct {
184     lxb_css_word_wrap_type_t type;
185 }
186 lxb_css_property_word_wrap_t;
187 
188 typedef lxb_css_value_length_type_t lxb_css_property_word_spacing_t;
189 typedef lxb_css_value_length_type_t lxb_css_property_letter_spacing_t;
190 
191 typedef struct {
192     lxb_css_hanging_punctuation_type_t type_first;
193     lxb_css_hanging_punctuation_type_t force_allow;
194     lxb_css_hanging_punctuation_type_t last;
195 }
196 lxb_css_property_hanging_punctuation_t;
197 
198 typedef struct lxb_css_property_family_name lxb_css_property_family_name_t;
199 
200 struct lxb_css_property_family_name {
201     bool generic;
202 
203     union {
204         lxb_css_font_family_type_t type;
205         lexbor_str_t               str;
206     } u;
207 
208     lxb_css_property_family_name_t *next;
209     lxb_css_property_family_name_t *prev;
210 };
211 
212 typedef struct {
213     lxb_css_property_family_name_t *first;
214     lxb_css_property_family_name_t *last;
215 
216     size_t                         count;
217 }
218 lxb_css_property_font_family_t;
219 
220 typedef lxb_css_value_number_type_t lxb_css_property_font_weight_t;
221 typedef lxb_css_value_percentage_type_t lxb_css_property_font_stretch_t;
222 typedef lxb_css_value_angle_type_t lxb_css_property_font_style_t;
223 typedef lxb_css_value_length_percentage_type_t lxb_css_property_font_size_t;
224 
225 typedef struct {
226     lxb_css_float_reference_type_t type;
227 }
228 lxb_css_property_float_reference_t;
229 
230 typedef struct {
231     lxb_css_float_type_t        type;
232     lxb_css_value_length_type_t length;
233     lxb_css_float_type_t        snap_type;
234 }
235 lxb_css_property_float_t;
236 
237 typedef struct {
238     lxb_css_clear_type_t type;
239 }
240 lxb_css_property_clear_t;
241 
242 typedef lxb_css_value_length_percentage_t lxb_css_property_float_offset_t;
243 typedef lxb_css_value_integer_type_t lxb_css_property_float_defer_t;
244 
245 typedef struct {
246     lxb_css_wrap_flow_type_t type;
247 }
248 lxb_css_property_wrap_flow_t;
249 
250 typedef struct {
251     lxb_css_wrap_through_type_t type;
252 }
253 lxb_css_property_wrap_through_t;
254 
255 typedef struct {
256     lxb_css_flex_direction_type_t type;
257 }
258 lxb_css_property_flex_direction_t;
259 
260 typedef struct {
261     lxb_css_flex_wrap_type_t type;
262 }
263 lxb_css_property_flex_wrap_t;
264 
265 typedef struct {
266     lxb_css_flex_direction_type_t type_direction;
267     lxb_css_flex_wrap_type_t      wrap;
268 }
269 lxb_css_property_flex_flow_t;
270 
271 typedef lxb_css_value_number_type_t lxb_css_property_flex_grow_t;
272 typedef lxb_css_value_number_type_t lxb_css_property_flex_shrink_t;
273 typedef lxb_css_property_width_t lxb_css_property_flex_basis_t;
274 
275 typedef struct {
276     lxb_css_flex_type_t            type;
277     lxb_css_property_flex_grow_t   grow;
278     lxb_css_property_flex_shrink_t shrink;
279     lxb_css_property_flex_basis_t  basis;
280 }
281 lxb_css_property_flex_t;
282 
283 typedef struct {
284     lxb_css_justify_content_type_t type;
285 }
286 lxb_css_property_justify_content_t;
287 
288 typedef struct {
289     lxb_css_align_items_type_t type;
290 }
291 lxb_css_property_align_items_t;
292 
293 typedef struct {
294     lxb_css_align_self_type_t type;
295 }
296 lxb_css_property_align_self_t;
297 
298 typedef struct {
299     lxb_css_align_content_type_t type;
300 }
301 lxb_css_property_align_content_t;
302 
303 typedef struct {
304     lxb_css_dominant_baseline_type_t type;
305 }
306 lxb_css_property_dominant_baseline_t;
307 
308 typedef struct {
309     lxb_css_baseline_source_type_t type;
310 }
311 lxb_css_property_baseline_source_t;
312 
313 typedef struct {
314     lxb_css_alignment_baseline_type_t type;
315 }
316 lxb_css_property_alignment_baseline_t;
317 
318 typedef lxb_css_value_length_percentage_t lxb_css_property_baseline_shift_t;
319 
320 typedef struct {
321     lxb_css_vertical_align_type_t         type;
322     lxb_css_property_alignment_baseline_t alignment;
323     lxb_css_property_baseline_shift_t     shift;
324 }
325 lxb_css_property_vertical_align_t;
326 
327 typedef lxb_css_value_number_length_percentage_t lxb_css_property_line_height_t;
328 
329 typedef lxb_css_value_integer_type_t lxb_css_property_z_index_t;
330 
331 typedef struct {
332     lxb_css_direction_type_t type;
333 }
334 lxb_css_property_direction_t;
335 
336 typedef struct {
337     lxb_css_unicode_bidi_type_t type;
338 }
339 lxb_css_property_unicode_bidi_t;
340 
341 typedef struct {
342     lxb_css_writing_mode_type_t type;
343 }
344 lxb_css_property_writing_mode_t;
345 
346 typedef struct {
347     lxb_css_text_orientation_type_t type;
348 }
349 lxb_css_property_text_orientation_t;
350 
351 typedef struct {
352     lxb_css_text_combine_upright_type_t type;
353      /*
354       * If the integer is omitted, it computes to 2.
355       * Integers outside the range 2-4 are invalid.
356       */
357     lxb_css_value_integer_t             digits;
358 }
359 lxb_css_property_text_combine_upright_t;
360 
361 typedef struct {
362     lxb_css_overflow_x_type_t type;
363 }
364 lxb_css_property_overflow_x_t;
365 
366 typedef struct {
367     lxb_css_overflow_y_type_t type;
368 }
369 lxb_css_property_overflow_y_t;
370 
371 typedef struct {
372     lxb_css_overflow_block_type_t type;
373 }
374 lxb_css_property_overflow_block_t;
375 
376 typedef struct {
377     lxb_css_overflow_inline_type_t type;
378 }
379 lxb_css_property_overflow_inline_t;
380 
381 typedef struct {
382     lxb_css_text_overflow_type_t type;
383 }
384 lxb_css_property_text_overflow_t;
385 
386 typedef struct {
387     lxb_css_text_decoration_line_type_t type;
388     lxb_css_text_decoration_line_type_t underline;
389     lxb_css_text_decoration_line_type_t overline;
390     lxb_css_text_decoration_line_type_t line_through;
391     lxb_css_text_decoration_line_type_t blink;
392 }
393 lxb_css_property_text_decoration_line_t;
394 
395 typedef struct {
396     lxb_css_text_decoration_style_type_t type;
397 }
398 lxb_css_property_text_decoration_style_t;
399 
400 typedef lxb_css_value_color_t lxb_css_property_text_decoration_color_t;
401 
402 typedef struct {
403     lxb_css_property_text_decoration_line_t  line;
404     lxb_css_property_text_decoration_style_t style;
405     lxb_css_property_text_decoration_color_t color;
406 }
407 lxb_css_property_text_decoration_t;
408 
409 
410 LXB_API const lxb_css_entry_data_t *
411 lxb_css_property_by_name(const lxb_char_t *name, size_t length);
412 
413 LXB_API const lxb_css_entry_data_t *
414 lxb_css_property_by_id(uintptr_t id);
415 
416 LXB_API const void *
417 lxb_css_property_initial_by_id(uintptr_t id);
418 
419 LXB_API void *
420 lxb_css_property_destroy(lxb_css_memory_t *memory, void *style,
421                          lxb_css_property_type_t type, bool self_destroy);
422 
423 LXB_API lxb_status_t
424 lxb_css_property_serialize(const void *style, lxb_css_property_type_t type,
425                            lexbor_serialize_cb_f cb, void *ctx);
426 
427 LXB_API lxb_status_t
428 lxb_css_property_serialize_str(const void *style, lxb_css_property_type_t type,
429                                lexbor_mraw_t *mraw, lexbor_str_t *str);
430 
431 LXB_API lxb_status_t
432 lxb_css_property_serialize_name(const void *style, lxb_css_property_type_t type,
433                                 lexbor_serialize_cb_f cb, void *ctx);
434 
435 LXB_API lxb_status_t
436 lxb_css_property_serialize_name_str(const void *style, lxb_css_property_type_t type,
437                                     lexbor_mraw_t *mraw, lexbor_str_t *str);
438 
439 /* _undef. */
440 
441 LXB_API void *
442 lxb_css_property__undef_create(lxb_css_memory_t *memory);
443 
444 LXB_API void *
445 lxb_css_property__undef_destroy(lxb_css_memory_t *memory,
446                                 void *style, bool self_destroy);
447 LXB_API lxb_status_t
448 lxb_css_property__undef_serialize(const void *style,
449                                   lexbor_serialize_cb_f cb, void *ctx);
450 
451 LXB_API lxb_status_t
452 lxb_css_property__undef_serialize_name(const void *style,
453                                        lexbor_serialize_cb_f cb, void *ctx);
454 
455 LXB_API lxb_status_t
456 lxb_css_property__undef_serialize_value(const void *style,
457                                         lexbor_serialize_cb_f cb, void *ctx);
458 
459 /* _custom. */
460 
461 LXB_API void *
462 lxb_css_property__custom_create(lxb_css_memory_t *memory);
463 
464 LXB_API void *
465 lxb_css_property__custom_destroy(lxb_css_memory_t *memory,
466                                  void *style, bool self_destroy);
467 LXB_API lxb_status_t
468 lxb_css_property__custom_serialize(const void *style,
469                                    lexbor_serialize_cb_f cb, void *ctx);
470 LXB_API lxb_status_t
471 lxb_css_property__custom_serialize_name(const void *style,
472                                         lexbor_serialize_cb_f cb, void *ctx);
473 LXB_API lxb_status_t
474 lxb_css_property__custom_serialize_value(const void *style,
475                                          lexbor_serialize_cb_f cb, void *ctx);
476 
477 /* Display. */
478 
479 LXB_API void *
480 lxb_css_property_display_create(lxb_css_memory_t *memory);
481 
482 LXB_API void *
483 lxb_css_property_display_destroy(lxb_css_memory_t *memory,
484                                  void *style, bool self_destroy);
485 LXB_API lxb_status_t
486 lxb_css_property_display_serialize(const void *style,
487                                    lexbor_serialize_cb_f cb, void *ctx);
488 
489 /* Order. */
490 
491 LXB_API void *
492 lxb_css_property_order_create(lxb_css_memory_t *memory);
493 
494 LXB_API void *
495 lxb_css_property_order_destroy(lxb_css_memory_t *memory,
496                                void *style, bool self_destroy);
497 LXB_API lxb_status_t
498 lxb_css_property_order_serialize(const void *style,
499                                  lexbor_serialize_cb_f cb, void *ctx);
500 
501 /* Visibility. */
502 
503 LXB_API void *
504 lxb_css_property_visibility_create(lxb_css_memory_t *memory);
505 
506 LXB_API void *
507 lxb_css_property_visibility_destroy(lxb_css_memory_t *memory,
508                                     void *style, bool self_destroy);
509 LXB_API lxb_status_t
510 lxb_css_property_visibility_serialize(const void *style,
511                                       lexbor_serialize_cb_f cb, void *ctx);
512 
513 /* Width. */
514 
515 LXB_API void *
516 lxb_css_property_width_create(lxb_css_memory_t *memory);
517 
518 LXB_API void *
519 lxb_css_property_width_destroy(lxb_css_memory_t *memory,
520                                void *style, bool self_destroy);
521 LXB_API lxb_status_t
522 lxb_css_property_width_serialize(const void *style,
523                                  lexbor_serialize_cb_f cb, void *ctx);
524 
525 /* Height. */
526 
527 LXB_API void *
528 lxb_css_property_height_create(lxb_css_memory_t *memory);
529 
530 LXB_API void *
531 lxb_css_property_height_destroy(lxb_css_memory_t *memory,
532                                 void *style, bool self_destroy);
533 LXB_API lxb_status_t
534 lxb_css_property_height_serialize(const void *style,
535                                   lexbor_serialize_cb_f cb, void *ctx);
536 
537 /* Box-sizing. */
538 
539 LXB_API void *
540 lxb_css_property_box_sizing_create(lxb_css_memory_t *memory);
541 
542 LXB_API void *
543 lxb_css_property_box_sizing_destroy(lxb_css_memory_t *memory,
544                                     void *style, bool self_destroy);
545 LXB_API lxb_status_t
546 lxb_css_property_box_sizing_serialize(const void *style,
547                                       lexbor_serialize_cb_f cb, void *ctx);
548 
549 /* Min-width. */
550 
551 LXB_API void *
552 lxb_css_property_min_width_create(lxb_css_memory_t *memory);
553 
554 LXB_API void *
555 lxb_css_property_min_width_destroy(lxb_css_memory_t *memory,
556                                    void *style, bool self_destroy);
557 LXB_API lxb_status_t
558 lxb_css_property_min_width_serialize(const void *style,
559                                      lexbor_serialize_cb_f cb, void *ctx);
560 
561 /* Min-height. */
562 
563 LXB_API void *
564 lxb_css_property_min_height_create(lxb_css_memory_t *memory);
565 
566 LXB_API void *
567 lxb_css_property_min_height_destroy(lxb_css_memory_t *memory,
568                                     void *style, bool self_destroy);
569 LXB_API lxb_status_t
570 lxb_css_property_min_height_serialize(const void *style,
571                                       lexbor_serialize_cb_f cb, void *ctx);
572 
573 /* Max-width. */
574 
575 LXB_API void *
576 lxb_css_property_max_width_create(lxb_css_memory_t *memory);
577 
578 LXB_API void *
579 lxb_css_property_max_width_destroy(lxb_css_memory_t *memory,
580                                    void *style, bool self_destroy);
581 LXB_API lxb_status_t
582 lxb_css_property_max_width_serialize(const void *style,
583                                      lexbor_serialize_cb_f cb, void *ctx);
584 
585 /* Max-height. */
586 
587 LXB_API void *
588 lxb_css_property_max_height_create(lxb_css_memory_t *memory);
589 
590 LXB_API void *
591 lxb_css_property_max_height_destroy(lxb_css_memory_t *memory,
592                                     void *style, bool self_destroy);
593 LXB_API lxb_status_t
594 lxb_css_property_max_height_serialize(const void *style,
595                                       lexbor_serialize_cb_f cb, void *ctx);
596 
597 /* Margin. */
598 
599 LXB_API void *
600 lxb_css_property_margin_create(lxb_css_memory_t *memory);
601 
602 LXB_API void *
603 lxb_css_property_margin_destroy(lxb_css_memory_t *memory,
604                                 void *style, bool self_destroy);
605 LXB_API lxb_status_t
606 lxb_css_property_margin_serialize(const void *style,
607                                   lexbor_serialize_cb_f cb, void *ctx);
608 
609 /* Margin-top. */
610 
611 LXB_API void *
612 lxb_css_property_margin_top_create(lxb_css_memory_t *memory);
613 
614 LXB_API void *
615 lxb_css_property_margin_top_destroy(lxb_css_memory_t *memory,
616                                     void *style, bool self_destroy);
617 LXB_API lxb_status_t
618 lxb_css_property_margin_top_serialize(const void *style,
619                                       lexbor_serialize_cb_f cb, void *ctx);
620 
621 /* Margin-right. */
622 
623 LXB_API void *
624 lxb_css_property_margin_right_create(lxb_css_memory_t *memory);
625 
626 LXB_API void *
627 lxb_css_property_margin_right_destroy(lxb_css_memory_t *memory,
628                                       void *style, bool self_destroy);
629 LXB_API lxb_status_t
630 lxb_css_property_margin_right_serialize(const void *style,
631                                         lexbor_serialize_cb_f cb, void *ctx);
632 
633 /* Margin-bottom. */
634 
635 LXB_API void *
636 lxb_css_property_margin_bottom_create(lxb_css_memory_t *memory);
637 
638 LXB_API void *
639 lxb_css_property_margin_bottom_destroy(lxb_css_memory_t *memory,
640                                        void *style, bool self_destroy);
641 LXB_API lxb_status_t
642 lxb_css_property_margin_bottom_serialize(const void *style,
643                                          lexbor_serialize_cb_f cb, void *ctx);
644 
645 /* Margin-left. */
646 
647 LXB_API void *
648 lxb_css_property_margin_left_create(lxb_css_memory_t *memory);
649 
650 LXB_API void *
651 lxb_css_property_margin_left_destroy(lxb_css_memory_t *memory,
652                                      void *style, bool self_destroy);
653 LXB_API lxb_status_t
654 lxb_css_property_margin_left_serialize(const void *style,
655                                        lexbor_serialize_cb_f cb, void *ctx);
656 
657 /* Padding. */
658 
659 LXB_API void *
660 lxb_css_property_padding_create(lxb_css_memory_t *memory);
661 
662 LXB_API void *
663 lxb_css_property_padding_destroy(lxb_css_memory_t *memory,
664                                  void *style, bool self_destroy);
665 LXB_API lxb_status_t
666 lxb_css_property_padding_serialize(const void *style,
667                                    lexbor_serialize_cb_f cb, void *ctx);
668 
669 /* Padding-top. */
670 
671 LXB_API void *
672 lxb_css_property_padding_top_create(lxb_css_memory_t *memory);
673 
674 LXB_API void *
675 lxb_css_property_padding_top_destroy(lxb_css_memory_t *memory,
676                                      void *style, bool self_destroy);
677 LXB_API lxb_status_t
678 lxb_css_property_padding_top_serialize(const void *style,
679                                        lexbor_serialize_cb_f cb, void *ctx);
680 
681 /* Padding-right. */
682 
683 LXB_API void *
684 lxb_css_property_padding_right_create(lxb_css_memory_t *memory);
685 
686 LXB_API void *
687 lxb_css_property_padding_right_destroy(lxb_css_memory_t *memory,
688                                        void *style, bool self_destroy);
689 LXB_API lxb_status_t
690 lxb_css_property_padding_right_serialize(const void *style,
691                                          lexbor_serialize_cb_f cb, void *ctx);
692 
693 /* Padding-bottom. */
694 
695 LXB_API void *
696 lxb_css_property_padding_bottom_create(lxb_css_memory_t *memory);
697 
698 LXB_API void *
699 lxb_css_property_padding_bottom_destroy(lxb_css_memory_t *memory,
700                                         void *style, bool self_destroy);
701 LXB_API lxb_status_t
702 lxb_css_property_padding_bottom_serialize(const void *style,
703                                           lexbor_serialize_cb_f cb, void *ctx);
704 
705 /* Padding-left. */
706 
707 LXB_API void *
708 lxb_css_property_padding_left_create(lxb_css_memory_t *memory);
709 
710 LXB_API void *
711 lxb_css_property_padding_left_destroy(lxb_css_memory_t *memory,
712                                       void *style, bool self_destroy);
713 LXB_API lxb_status_t
714 lxb_css_property_padding_left_serialize(const void *style,
715                                         lexbor_serialize_cb_f cb, void *ctx);
716 
717 /* Border. */
718 
719 LXB_API void *
720 lxb_css_property_border_create(lxb_css_memory_t *memory);
721 
722 LXB_API void *
723 lxb_css_property_border_destroy(lxb_css_memory_t *memory,
724                                 void *style, bool self_destroy);
725 LXB_API lxb_status_t
726 lxb_css_property_border_serialize(const void *style,
727                                   lexbor_serialize_cb_f cb, void *ctx);
728 
729 /* Border-top. */
730 
731 LXB_API void *
732 lxb_css_property_border_top_create(lxb_css_memory_t *memory);
733 
734 LXB_API void *
735 lxb_css_property_border_top_destroy(lxb_css_memory_t *memory,
736                                     void *style, bool self_destroy);
737 LXB_API lxb_status_t
738 lxb_css_property_border_top_serialize(const void *style,
739                                       lexbor_serialize_cb_f cb, void *ctx);
740 
741 /* Border-right. */
742 
743 LXB_API void *
744 lxb_css_property_border_right_create(lxb_css_memory_t *memory);
745 
746 LXB_API void *
747 lxb_css_property_border_right_destroy(lxb_css_memory_t *memory,
748                                       void *style, bool self_destroy);
749 LXB_API lxb_status_t
750 lxb_css_property_border_right_serialize(const void *style,
751                                         lexbor_serialize_cb_f cb, void *ctx);
752 
753 /* Border-bottom. */
754 
755 LXB_API void *
756 lxb_css_property_border_bottom_create(lxb_css_memory_t *memory);
757 
758 LXB_API void *
759 lxb_css_property_border_bottom_destroy(lxb_css_memory_t *memory,
760                                        void *style, bool self_destroy);
761 LXB_API lxb_status_t
762 lxb_css_property_border_bottom_serialize(const void *style,
763                                          lexbor_serialize_cb_f cb, void *ctx);
764 
765 /* Border-left. */
766 
767 LXB_API void *
768 lxb_css_property_border_left_create(lxb_css_memory_t *memory);
769 
770 LXB_API void *
771 lxb_css_property_border_left_destroy(lxb_css_memory_t *memory,
772                                      void *style, bool self_destroy);
773 LXB_API lxb_status_t
774 lxb_css_property_border_left_serialize(const void *style,
775                                        lexbor_serialize_cb_f cb, void *ctx);
776 
777 /* Border-top-color. */
778 
779 LXB_API void *
780 lxb_css_property_border_top_color_create(lxb_css_memory_t *memory);
781 
782 LXB_API void *
783 lxb_css_property_border_top_color_destroy(lxb_css_memory_t *memory,
784                                           void *style, bool self_destroy);
785 LXB_API lxb_status_t
786 lxb_css_property_border_top_color_serialize(const void *style,
787                                             lexbor_serialize_cb_f cb, void *ctx);
788 
789 /* Border-right-color. */
790 
791 LXB_API void *
792 lxb_css_property_border_right_color_create(lxb_css_memory_t *memory);
793 
794 LXB_API void *
795 lxb_css_property_border_right_color_destroy(lxb_css_memory_t *memory,
796                                             void *style, bool self_destroy);
797 LXB_API lxb_status_t
798 lxb_css_property_border_right_color_serialize(const void *style,
799                                               lexbor_serialize_cb_f cb, void *ctx);
800 
801 /* Border-bottom-color. */
802 
803 LXB_API void *
804 lxb_css_property_border_bottom_color_create(lxb_css_memory_t *memory);
805 
806 LXB_API void *
807 lxb_css_property_border_bottom_color_destroy(lxb_css_memory_t *memory,
808                                              void *style, bool self_destroy);
809 LXB_API lxb_status_t
810 lxb_css_property_border_bottom_color_serialize(const void *style,
811                                                lexbor_serialize_cb_f cb, void *ctx);
812 
813 /* Border-left-color. */
814 
815 LXB_API void *
816 lxb_css_property_border_left_color_create(lxb_css_memory_t *memory);
817 
818 LXB_API void *
819 lxb_css_property_border_left_color_destroy(lxb_css_memory_t *memory,
820                                            void *style, bool self_destroy);
821 LXB_API lxb_status_t
822 lxb_css_property_border_left_color_serialize(const void *style,
823                                              lexbor_serialize_cb_f cb, void *ctx);
824 
825 /* Background-color. */
826 
827 LXB_API void *
828 lxb_css_property_background_color_create(lxb_css_memory_t *memory);
829 
830 LXB_API void *
831 lxb_css_property_background_color_destroy(lxb_css_memory_t *memory,
832                                           void *style, bool self_destroy);
833 LXB_API lxb_status_t
834 lxb_css_property_background_color_serialize(const void *style,
835                                             lexbor_serialize_cb_f cb, void *ctx);
836 
837 /* Color. */
838 
839 LXB_API void *
840 lxb_css_property_color_create(lxb_css_memory_t *memory);
841 
842 LXB_API void *
843 lxb_css_property_color_destroy(lxb_css_memory_t *memory,
844                                void *style, bool self_destroy);
845 LXB_API lxb_status_t
846 lxb_css_property_color_serialize(const void *style,
847                                  lexbor_serialize_cb_f cb, void *ctx);
848 
849 /* Opacity. */
850 
851 LXB_API void *
852 lxb_css_property_opacity_create(lxb_css_memory_t *memory);
853 
854 LXB_API void *
855 lxb_css_property_opacity_destroy(lxb_css_memory_t *memory,
856                                  void *style, bool self_destroy);
857 LXB_API lxb_status_t
858 lxb_css_property_opacity_serialize(const void *style,
859                                    lexbor_serialize_cb_f cb, void *ctx);
860 
861 /* Position. */
862 
863 LXB_API void *
864 lxb_css_property_position_create(lxb_css_memory_t *memory);
865 
866 LXB_API void *
867 lxb_css_property_position_destroy(lxb_css_memory_t *memory,
868                                   void *style, bool self_destroy);
869 LXB_API lxb_status_t
870 lxb_css_property_position_serialize(const void *style,
871                                     lexbor_serialize_cb_f cb, void *ctx);
872 
873 /* Top. */
874 
875 LXB_API void *
876 lxb_css_property_top_create(lxb_css_memory_t *memory);
877 
878 LXB_API void *
879 lxb_css_property_top_destroy(lxb_css_memory_t *memory,
880                              void *style, bool self_destroy);
881 LXB_API lxb_status_t
882 lxb_css_property_top_serialize(const void *style,
883                                lexbor_serialize_cb_f cb, void *ctx);
884 
885 /* Right. */
886 
887 LXB_API void *
888 lxb_css_property_right_create(lxb_css_memory_t *memory);
889 
890 LXB_API void *
891 lxb_css_property_right_destroy(lxb_css_memory_t *memory,
892                                void *style, bool self_destroy);
893 LXB_API lxb_status_t
894 lxb_css_property_right_serialize(const void *style,
895                                  lexbor_serialize_cb_f cb, void *ctx);
896 
897 /* Bottom. */
898 
899 LXB_API void *
900 lxb_css_property_bottom_create(lxb_css_memory_t *memory);
901 
902 LXB_API void *
903 lxb_css_property_bottom_destroy(lxb_css_memory_t *memory,
904                                 void *style, bool self_destroy);
905 LXB_API lxb_status_t
906 lxb_css_property_bottom_serialize(const void *style,
907                                   lexbor_serialize_cb_f cb, void *ctx);
908 
909 /* Left. */
910 
911 LXB_API void *
912 lxb_css_property_left_create(lxb_css_memory_t *memory);
913 
914 LXB_API void *
915 lxb_css_property_left_destroy(lxb_css_memory_t *memory,
916                               void *style, bool self_destroy);
917 LXB_API lxb_status_t
918 lxb_css_property_left_serialize(const void *style,
919                                 lexbor_serialize_cb_f cb, void *ctx);
920 
921 /* Inset-block-start. */
922 
923 LXB_API void *
924 lxb_css_property_inset_block_start_create(lxb_css_memory_t *memory);
925 
926 LXB_API void *
927 lxb_css_property_inset_block_start_destroy(lxb_css_memory_t *memory,
928                                            void *style, bool self_destroy);
929 LXB_API lxb_status_t
930 lxb_css_property_inset_block_start_serialize(const void *style,
931                                              lexbor_serialize_cb_f cb, void *ctx);
932 
933 /* Inset-inline-start. */
934 
935 LXB_API void *
936 lxb_css_property_inset_inline_start_create(lxb_css_memory_t *memory);
937 
938 LXB_API void *
939 lxb_css_property_inset_inline_start_destroy(lxb_css_memory_t *memory,
940                                             void *style, bool self_destroy);
941 LXB_API lxb_status_t
942 lxb_css_property_inset_inline_start_serialize(const void *style,
943                                               lexbor_serialize_cb_f cb, void *ctx);
944 
945 /* Inset-block-end. */
946 
947 LXB_API void *
948 lxb_css_property_inset_block_end_create(lxb_css_memory_t *memory);
949 
950 LXB_API void *
951 lxb_css_property_inset_block_end_destroy(lxb_css_memory_t *memory,
952                                          void *style, bool self_destroy);
953 LXB_API lxb_status_t
954 lxb_css_property_inset_block_end_serialize(const void *style,
955                                            lexbor_serialize_cb_f cb, void *ctx);
956 
957 /* Inset-inline-end. */
958 
959 LXB_API void *
960 lxb_css_property_inset_inline_end_create(lxb_css_memory_t *memory);
961 
962 LXB_API void *
963 lxb_css_property_inset_inline_end_destroy(lxb_css_memory_t *memory,
964                                           void *style, bool self_destroy);
965 LXB_API lxb_status_t
966 lxb_css_property_inset_inline_end_serialize(const void *style,
967                                             lexbor_serialize_cb_f cb, void *ctx);
968 
969 /* Text-transform. */
970 
971 LXB_API void *
972 lxb_css_property_text_transform_create(lxb_css_memory_t *memory);
973 
974 LXB_API void *
975 lxb_css_property_text_transform_destroy(lxb_css_memory_t *memory,
976                                         void *style, bool self_destroy);
977 
978 LXB_API lxb_status_t
979 lxb_css_property_text_transform_serialize(const void *style,
980                                           lexbor_serialize_cb_f cb, void *ctx);
981 
982 /* Text-align. */
983 
984 LXB_API void *
985 lxb_css_property_text_align_create(lxb_css_memory_t *memory);
986 
987 LXB_API void *
988 lxb_css_property_text_align_destroy(lxb_css_memory_t *memory,
989                                     void *style, bool self_destroy);
990 
991 LXB_API lxb_status_t
992 lxb_css_property_text_align_serialize(const void *style,
993                                       lexbor_serialize_cb_f cb, void *ctx);
994 
995 /* Text-align-all. */
996 
997 LXB_API void *
998 lxb_css_property_text_align_all_create(lxb_css_memory_t *memory);
999 
1000 LXB_API void *
1001 lxb_css_property_text_align_all_destroy(lxb_css_memory_t *memory,
1002                                         void *style, bool self_destroy);
1003 
1004 LXB_API lxb_status_t
1005 lxb_css_property_text_align_all_serialize(const void *style,
1006                                           lexbor_serialize_cb_f cb, void *ctx);
1007 
1008 /* Text-align-last. */
1009 
1010 LXB_API void *
1011 lxb_css_property_text_align_last_create(lxb_css_memory_t *memory);
1012 
1013 LXB_API void *
1014 lxb_css_property_text_align_last_destroy(lxb_css_memory_t *memory,
1015                                          void *style, bool self_destroy);
1016 
1017 LXB_API lxb_status_t
1018 lxb_css_property_text_align_last_serialize(const void *style,
1019                                            lexbor_serialize_cb_f cb, void *ctx);
1020 
1021 /* Text-justify. */
1022 
1023 LXB_API void *
1024 lxb_css_property_text_justify_create(lxb_css_memory_t *memory);
1025 
1026 LXB_API void *
1027 lxb_css_property_text_justify_destroy(lxb_css_memory_t *memory,
1028                                       void *style, bool self_destroy);
1029 
1030 LXB_API lxb_status_t
1031 lxb_css_property_text_justify_serialize(const void *style,
1032                                         lexbor_serialize_cb_f cb, void *ctx);
1033 
1034 /* Text-indent. */
1035 
1036 LXB_API void *
1037 lxb_css_property_text_indent_create(lxb_css_memory_t *memory);
1038 
1039 LXB_API void *
1040 lxb_css_property_text_indent_destroy(lxb_css_memory_t *memory,
1041                                      void *style, bool self_destroy);
1042 
1043 LXB_API lxb_status_t
1044 lxb_css_property_text_indent_serialize(const void *style,
1045                                        lexbor_serialize_cb_f cb, void *ctx);
1046 
1047 /* White-space. */
1048 
1049 LXB_API void *
1050 lxb_css_property_white_space_create(lxb_css_memory_t *memory);
1051 
1052 LXB_API void *
1053 lxb_css_property_white_space_destroy(lxb_css_memory_t *memory,
1054                                      void *style, bool self_destroy);
1055 
1056 LXB_API lxb_status_t
1057 lxb_css_property_white_space_serialize(const void *style,
1058                                        lexbor_serialize_cb_f cb, void *ctx);
1059 
1060 /* Tab-size. */
1061 
1062 LXB_API void *
1063 lxb_css_property_tab_size_create(lxb_css_memory_t *memory);
1064 
1065 LXB_API void *
1066 lxb_css_property_tab_size_destroy(lxb_css_memory_t *memory,
1067                                   void *style, bool self_destroy);
1068 
1069 LXB_API lxb_status_t
1070 lxb_css_property_tab_size_serialize(const void *style,
1071                                     lexbor_serialize_cb_f cb, void *ctx);
1072 
1073 /* Word-break. */
1074 
1075 LXB_API void *
1076 lxb_css_property_word_break_create(lxb_css_memory_t *memory);
1077 
1078 LXB_API void *
1079 lxb_css_property_word_break_destroy(lxb_css_memory_t *memory,
1080                                     void *style, bool self_destroy);
1081 
1082 LXB_API lxb_status_t
1083 lxb_css_property_word_break_serialize(const void *style,
1084                                       lexbor_serialize_cb_f cb, void *ctx);
1085 
1086 /* Line-break. */
1087 
1088 LXB_API void *
1089 lxb_css_property_line_break_create(lxb_css_memory_t *memory);
1090 
1091 LXB_API void *
1092 lxb_css_property_line_break_destroy(lxb_css_memory_t *memory,
1093                                     void *style, bool self_destroy);
1094 
1095 LXB_API lxb_status_t
1096 lxb_css_property_line_break_serialize(const void *style,
1097                                       lexbor_serialize_cb_f cb, void *ctx);
1098 
1099 /* Hyphens. */
1100 
1101 LXB_API void *
1102 lxb_css_property_hyphens_create(lxb_css_memory_t *memory);
1103 
1104 LXB_API void *
1105 lxb_css_property_hyphens_destroy(lxb_css_memory_t *memory,
1106                                  void *style, bool self_destroy);
1107 
1108 LXB_API lxb_status_t
1109 lxb_css_property_hyphens_serialize(const void *style,
1110                                    lexbor_serialize_cb_f cb, void *ctx);
1111 
1112 /* Overflow-wrap. */
1113 
1114 LXB_API void *
1115 lxb_css_property_overflow_wrap_create(lxb_css_memory_t *memory);
1116 
1117 LXB_API void *
1118 lxb_css_property_overflow_wrap_destroy(lxb_css_memory_t *memory,
1119                                        void *style, bool self_destroy);
1120 
1121 LXB_API lxb_status_t
1122 lxb_css_property_overflow_wrap_serialize(const void *style,
1123                                          lexbor_serialize_cb_f cb, void *ctx);
1124 
1125 /* Word-wrap. */
1126 
1127 LXB_API void *
1128 lxb_css_property_word_wrap_create(lxb_css_memory_t *memory);
1129 
1130 LXB_API void *
1131 lxb_css_property_word_wrap_destroy(lxb_css_memory_t *memory,
1132                                    void *style, bool self_destroy);
1133 
1134 LXB_API lxb_status_t
1135 lxb_css_property_word_wrap_serialize(const void *style,
1136                                      lexbor_serialize_cb_f cb, void *ctx);
1137 
1138 /* Word-spacing. */
1139 
1140 LXB_API void *
1141 lxb_css_property_word_spacing_create(lxb_css_memory_t *memory);
1142 
1143 LXB_API void *
1144 lxb_css_property_word_spacing_destroy(lxb_css_memory_t *memory,
1145                                       void *style, bool self_destroy);
1146 
1147 LXB_API lxb_status_t
1148 lxb_css_property_word_spacing_serialize(const void *style,
1149                                         lexbor_serialize_cb_f cb, void *ctx);
1150 
1151 /* Letter-spacing. */
1152 
1153 LXB_API void *
1154 lxb_css_property_letter_spacing_create(lxb_css_memory_t *memory);
1155 
1156 LXB_API void *
1157 lxb_css_property_letter_spacing_destroy(lxb_css_memory_t *memory,
1158                                         void *style, bool self_destroy);
1159 
1160 LXB_API lxb_status_t
1161 lxb_css_property_letter_spacing_serialize(const void *style,
1162                                           lexbor_serialize_cb_f cb, void *ctx);
1163 
1164 /* Hanging-punctuation. */
1165 
1166 LXB_API void *
1167 lxb_css_property_hanging_punctuation_create(lxb_css_memory_t *memory);
1168 
1169 LXB_API void *
1170 lxb_css_property_hanging_punctuation_destroy(lxb_css_memory_t *memory,
1171                                              void *style, bool self_destroy);
1172 
1173 LXB_API lxb_status_t
1174 lxb_css_property_hanging_punctuation_serialize(const void *style,
1175                                                lexbor_serialize_cb_f cb, void *ctx);
1176 
1177 /* Font-family. */
1178 
1179 LXB_API void *
1180 lxb_css_property_font_family_create(lxb_css_memory_t *memory);
1181 
1182 LXB_API void *
1183 lxb_css_property_font_family_destroy(lxb_css_memory_t *memory,
1184                                      void *style, bool self_destroy);
1185 
1186 LXB_API lxb_status_t
1187 lxb_css_property_font_family_serialize(const void *style,
1188                                        lexbor_serialize_cb_f cb, void *ctx);
1189 
1190 /* Font-weight. */
1191 
1192 LXB_API void *
1193 lxb_css_property_font_weight_create(lxb_css_memory_t *memory);
1194 
1195 LXB_API void *
1196 lxb_css_property_font_weight_destroy(lxb_css_memory_t *memory,
1197                                      void *style, bool self_destroy);
1198 
1199 LXB_API lxb_status_t
1200 lxb_css_property_font_weight_serialize(const void *style,
1201                                        lexbor_serialize_cb_f cb, void *ctx);
1202 
1203 /* Font-stretch. */
1204 
1205 LXB_API void *
1206 lxb_css_property_font_stretch_create(lxb_css_memory_t *memory);
1207 
1208 LXB_API void *
1209 lxb_css_property_font_stretch_destroy(lxb_css_memory_t *memory,
1210                                       void *style, bool self_destroy);
1211 
1212 LXB_API lxb_status_t
1213 lxb_css_property_font_stretch_serialize(const void *style,
1214                                         lexbor_serialize_cb_f cb, void *ctx);
1215 
1216 /* Font-style. */
1217 
1218 LXB_API void *
1219 lxb_css_property_font_style_create(lxb_css_memory_t *memory);
1220 
1221 LXB_API void *
1222 lxb_css_property_font_style_destroy(lxb_css_memory_t *memory,
1223                                     void *style, bool self_destroy);
1224 
1225 LXB_API lxb_status_t
1226 lxb_css_property_font_style_serialize(const void *style,
1227                                       lexbor_serialize_cb_f cb, void *ctx);
1228 
1229 /* Font-size. */
1230 
1231 LXB_API void *
1232 lxb_css_property_font_size_create(lxb_css_memory_t *memory);
1233 
1234 LXB_API void *
1235 lxb_css_property_font_size_destroy(lxb_css_memory_t *memory,
1236                                    void *style, bool self_destroy);
1237 
1238 LXB_API lxb_status_t
1239 lxb_css_property_font_size_serialize(const void *style,
1240                                      lexbor_serialize_cb_f cb, void *ctx);
1241 
1242 /* Float-reference. */
1243 
1244 LXB_API void *
1245 lxb_css_property_float_reference_create(lxb_css_memory_t *memory);
1246 
1247 LXB_API void *
1248 lxb_css_property_float_reference_destroy(lxb_css_memory_t *memory,
1249                                          void *style, bool self_destroy);
1250 
1251 LXB_API lxb_status_t
1252 lxb_css_property_float_reference_serialize(const void *style,
1253                                            lexbor_serialize_cb_f cb, void *ctx);
1254 
1255 /* Float. */
1256 
1257 LXB_API void *
1258 lxb_css_property_float_create(lxb_css_memory_t *memory);
1259 
1260 LXB_API void *
1261 lxb_css_property_float_destroy(lxb_css_memory_t *memory,
1262                                void *style, bool self_destroy);
1263 
1264 LXB_API lxb_status_t
1265 lxb_css_property_float_serialize(const void *style,
1266                                  lexbor_serialize_cb_f cb, void *ctx);
1267 
1268 /* Clear. */
1269 
1270 LXB_API void *
1271 lxb_css_property_clear_create(lxb_css_memory_t *memory);
1272 
1273 LXB_API void *
1274 lxb_css_property_clear_destroy(lxb_css_memory_t *memory,
1275                                void *style, bool self_destroy);
1276 
1277 LXB_API lxb_status_t
1278 lxb_css_property_clear_serialize(const void *style,
1279                                  lexbor_serialize_cb_f cb, void *ctx);
1280 
1281 /* Float-defer. */
1282 
1283 LXB_API void *
1284 lxb_css_property_float_defer_create(lxb_css_memory_t *memory);
1285 
1286 LXB_API void *
1287 lxb_css_property_float_defer_destroy(lxb_css_memory_t *memory,
1288                                      void *style, bool self_destroy);
1289 
1290 LXB_API lxb_status_t
1291 lxb_css_property_float_defer_serialize(const void *style,
1292                                        lexbor_serialize_cb_f cb, void *ctx);
1293 
1294 /* Float-offset. */
1295 
1296 LXB_API void *
1297 lxb_css_property_float_offset_create(lxb_css_memory_t *memory);
1298 
1299 LXB_API void *
1300 lxb_css_property_float_offset_destroy(lxb_css_memory_t *memory,
1301                                       void *style, bool self_destroy);
1302 
1303 LXB_API lxb_status_t
1304 lxb_css_property_float_offset_serialize(const void *style,
1305                                         lexbor_serialize_cb_f cb, void *ctx);
1306 
1307 /* Wrap-flow. */
1308 
1309 LXB_API void *
1310 lxb_css_property_wrap_flow_create(lxb_css_memory_t *memory);
1311 
1312 LXB_API void *
1313 lxb_css_property_wrap_flow_destroy(lxb_css_memory_t *memory,
1314                                    void *style, bool self_destroy);
1315 
1316 LXB_API lxb_status_t
1317 lxb_css_property_wrap_flow_serialize(const void *style,
1318                                      lexbor_serialize_cb_f cb, void *ctx);
1319 
1320 /* Wrap-through. */
1321 
1322 LXB_API void *
1323 lxb_css_property_wrap_through_create(lxb_css_memory_t *memory);
1324 
1325 LXB_API void *
1326 lxb_css_property_wrap_through_destroy(lxb_css_memory_t *memory,
1327                                       void *style, bool self_destroy);
1328 
1329 LXB_API lxb_status_t
1330 lxb_css_property_wrap_through_serialize(const void *style,
1331                                         lexbor_serialize_cb_f cb, void *ctx);
1332 
1333 /* Flex-direction. */
1334 
1335 LXB_API void *
1336 lxb_css_property_flex_direction_create(lxb_css_memory_t *memory);
1337 
1338 LXB_API void *
1339 lxb_css_property_flex_direction_destroy(lxb_css_memory_t *memory,
1340                                         void *style, bool self_destroy);
1341 
1342 LXB_API lxb_status_t
1343 lxb_css_property_flex_direction_serialize(const void *style,
1344                                           lexbor_serialize_cb_f cb, void *ctx);
1345 
1346 /* Flex-wrap. */
1347 
1348 LXB_API void *
1349 lxb_css_property_flex_wrap_create(lxb_css_memory_t *memory);
1350 
1351 LXB_API void *
1352 lxb_css_property_flex_wrap_destroy(lxb_css_memory_t *memory,
1353                                    void *style, bool self_destroy);
1354 
1355 LXB_API lxb_status_t
1356 lxb_css_property_flex_wrap_serialize(const void *style,
1357                                      lexbor_serialize_cb_f cb, void *ctx);
1358 
1359 /* Flex-flow. */
1360 
1361 LXB_API void *
1362 lxb_css_property_flex_flow_create(lxb_css_memory_t *memory);
1363 
1364 LXB_API void *
1365 lxb_css_property_flex_flow_destroy(lxb_css_memory_t *memory,
1366                                    void *style, bool self_destroy);
1367 
1368 LXB_API lxb_status_t
1369 lxb_css_property_flex_flow_serialize(const void *style,
1370                                      lexbor_serialize_cb_f cb, void *ctx);
1371 
1372 /* Flex. */
1373 
1374 LXB_API void *
1375 lxb_css_property_flex_create(lxb_css_memory_t *memory);
1376 
1377 LXB_API void *
1378 lxb_css_property_flex_destroy(lxb_css_memory_t *memory,
1379                               void *style, bool self_destroy);
1380 
1381 LXB_API lxb_status_t
1382 lxb_css_property_flex_serialize(const void *style,
1383                                 lexbor_serialize_cb_f cb, void *ctx);
1384 
1385 /* Flex-grow. */
1386 
1387 LXB_API void *
1388 lxb_css_property_flex_grow_create(lxb_css_memory_t *memory);
1389 
1390 LXB_API void *
1391 lxb_css_property_flex_grow_destroy(lxb_css_memory_t *memory,
1392                                    void *style, bool self_destroy);
1393 
1394 LXB_API lxb_status_t
1395 lxb_css_property_flex_grow_serialize(const void *style,
1396                                      lexbor_serialize_cb_f cb, void *ctx);
1397 
1398 /* Flex-shrink. */
1399 
1400 LXB_API void *
1401 lxb_css_property_flex_shrink_create(lxb_css_memory_t *memory);
1402 
1403 LXB_API void *
1404 lxb_css_property_flex_shrink_destroy(lxb_css_memory_t *memory,
1405                                      void *style, bool self_destroy);
1406 
1407 LXB_API lxb_status_t
1408 lxb_css_property_flex_shrink_serialize(const void *style,
1409                                        lexbor_serialize_cb_f cb, void *ctx);
1410 
1411 /* Flex-basis. */
1412 
1413 LXB_API void *
1414 lxb_css_property_flex_basis_create(lxb_css_memory_t *memory);
1415 
1416 LXB_API void *
1417 lxb_css_property_flex_basis_destroy(lxb_css_memory_t *memory,
1418                                     void *style, bool self_destroy);
1419 
1420 LXB_API lxb_status_t
1421 lxb_css_property_flex_basis_serialize(const void *style,
1422                                       lexbor_serialize_cb_f cb, void *ctx);
1423 
1424 /* Justify-content. */
1425 
1426 LXB_API void *
1427 lxb_css_property_justify_content_create(lxb_css_memory_t *memory);
1428 
1429 LXB_API void *
1430 lxb_css_property_justify_content_destroy(lxb_css_memory_t *memory,
1431                                          void *style, bool self_destroy);
1432 
1433 LXB_API lxb_status_t
1434 lxb_css_property_justify_content_serialize(const void *style,
1435                                            lexbor_serialize_cb_f cb, void *ctx);
1436 
1437 /* Align-items. */
1438 
1439 LXB_API void *
1440 lxb_css_property_align_items_create(lxb_css_memory_t *memory);
1441 
1442 LXB_API void *
1443 lxb_css_property_align_items_destroy(lxb_css_memory_t *memory,
1444                                      void *style, bool self_destroy);
1445 
1446 LXB_API lxb_status_t
1447 lxb_css_property_align_items_serialize(const void *style,
1448                                        lexbor_serialize_cb_f cb, void *ctx);
1449 
1450 /* Align-self. */
1451 
1452 LXB_API void *
1453 lxb_css_property_align_self_create(lxb_css_memory_t *memory);
1454 
1455 LXB_API void *
1456 lxb_css_property_align_self_destroy(lxb_css_memory_t *memory,
1457                                     void *style, bool self_destroy);
1458 
1459 LXB_API lxb_status_t
1460 lxb_css_property_align_self_serialize(const void *style,
1461                                       lexbor_serialize_cb_f cb, void *ctx);
1462 
1463 /* Align-content. */
1464 
1465 LXB_API void *
1466 lxb_css_property_align_content_create(lxb_css_memory_t *memory);
1467 
1468 LXB_API void *
1469 lxb_css_property_align_content_destroy(lxb_css_memory_t *memory,
1470                                        void *style, bool self_destroy);
1471 
1472 LXB_API lxb_status_t
1473 lxb_css_property_align_content_serialize(const void *style,
1474                                          lexbor_serialize_cb_f cb, void *ctx);
1475 
1476 /* Dominant-baseline. */
1477 
1478 LXB_API void *
1479 lxb_css_property_dominant_baseline_create(lxb_css_memory_t *memory);
1480 
1481 LXB_API void *
1482 lxb_css_property_dominant_baseline_destroy(lxb_css_memory_t *memory,
1483                                            void *style, bool self_destroy);
1484 
1485 LXB_API lxb_status_t
1486 lxb_css_property_dominant_baseline_serialize(const void *style,
1487                                              lexbor_serialize_cb_f cb, void *ctx);
1488 
1489 /* Vertical-align. */
1490 
1491 LXB_API void *
1492 lxb_css_property_vertical_align_create(lxb_css_memory_t *memory);
1493 
1494 LXB_API void *
1495 lxb_css_property_vertical_align_destroy(lxb_css_memory_t *memory,
1496                                         void *style, bool self_destroy);
1497 
1498 LXB_API lxb_status_t
1499 lxb_css_property_vertical_align_serialize(const void *style,
1500                                           lexbor_serialize_cb_f cb, void *ctx);
1501 
1502 /* Baseline-source. */
1503 
1504 LXB_API void *
1505 lxb_css_property_baseline_source_create(lxb_css_memory_t *memory);
1506 
1507 LXB_API void *
1508 lxb_css_property_baseline_source_destroy(lxb_css_memory_t *memory,
1509                                          void *style, bool self_destroy);
1510 
1511 LXB_API lxb_status_t
1512 lxb_css_property_baseline_source_serialize(const void *style,
1513                                            lexbor_serialize_cb_f cb, void *ctx);
1514 
1515 /* Alignment-baseline. */
1516 
1517 LXB_API void *
1518 lxb_css_property_alignment_baseline_create(lxb_css_memory_t *memory);
1519 
1520 LXB_API void *
1521 lxb_css_property_alignment_baseline_destroy(lxb_css_memory_t *memory,
1522                                             void *style, bool self_destroy);
1523 
1524 LXB_API lxb_status_t
1525 lxb_css_property_alignment_baseline_serialize(const void *style,
1526                                               lexbor_serialize_cb_f cb, void *ctx);
1527 
1528 /* Baseline-shift. */
1529 
1530 LXB_API void *
1531 lxb_css_property_baseline_shift_create(lxb_css_memory_t *memory);
1532 
1533 LXB_API void *
1534 lxb_css_property_baseline_shift_destroy(lxb_css_memory_t *memory,
1535                                         void *style, bool self_destroy);
1536 
1537 LXB_API lxb_status_t
1538 lxb_css_property_baseline_shift_serialize(const void *style,
1539                                           lexbor_serialize_cb_f cb, void *ctx);
1540 
1541 /* Line-height. */
1542 
1543 LXB_API void *
1544 lxb_css_property_line_height_create(lxb_css_memory_t *memory);
1545 
1546 LXB_API void *
1547 lxb_css_property_line_height_destroy(lxb_css_memory_t *memory,
1548                                      void *style, bool self_destroy);
1549 
1550 LXB_API lxb_status_t
1551 lxb_css_property_line_height_serialize(const void *style,
1552                                        lexbor_serialize_cb_f cb, void *ctx);
1553 
1554 /* Z-index. */
1555 
1556 LXB_API void *
1557 lxb_css_property_z_index_create(lxb_css_memory_t *memory);
1558 
1559 LXB_API void *
1560 lxb_css_property_z_index_destroy(lxb_css_memory_t *memory,
1561                                  void *style, bool self_destroy);
1562 
1563 LXB_API lxb_status_t
1564 lxb_css_property_z_index_serialize(const void *style,
1565                                    lexbor_serialize_cb_f cb, void *ctx);
1566 
1567 /* Direction. */
1568 
1569 LXB_API void *
1570 lxb_css_property_direction_create(lxb_css_memory_t *memory);
1571 
1572 LXB_API void *
1573 lxb_css_property_direction_destroy(lxb_css_memory_t *memory,
1574                                    void *style, bool self_destroy);
1575 
1576 LXB_API lxb_status_t
1577 lxb_css_property_direction_serialize(const void *style,
1578                                      lexbor_serialize_cb_f cb, void *ctx);
1579 
1580 /* Unicode-bidi. */
1581 
1582 LXB_API void *
1583 lxb_css_property_unicode_bidi_create(lxb_css_memory_t *memory);
1584 
1585 LXB_API void *
1586 lxb_css_property_unicode_bidi_destroy(lxb_css_memory_t *memory,
1587                                       void *style, bool self_destroy);
1588 
1589 LXB_API lxb_status_t
1590 lxb_css_property_unicode_bidi_serialize(const void *style,
1591                                         lexbor_serialize_cb_f cb, void *ctx);
1592 
1593 /* Writing-mode. */
1594 
1595 LXB_API void *
1596 lxb_css_property_writing_mode_create(lxb_css_memory_t *memory);
1597 
1598 LXB_API void *
1599 lxb_css_property_writing_mode_destroy(lxb_css_memory_t *memory,
1600                                       void *style, bool self_destroy);
1601 
1602 LXB_API lxb_status_t
1603 lxb_css_property_writing_mode_serialize(const void *style,
1604                                         lexbor_serialize_cb_f cb, void *ctx);
1605 
1606 /* Text-orientation. */
1607 
1608 LXB_API void *
1609 lxb_css_property_text_orientation_create(lxb_css_memory_t *memory);
1610 
1611 LXB_API void *
1612 lxb_css_property_text_orientation_destroy(lxb_css_memory_t *memory,
1613                                           void *style, bool self_destroy);
1614 
1615 LXB_API lxb_status_t
1616 lxb_css_property_text_orientation_serialize(const void *style,
1617                                             lexbor_serialize_cb_f cb, void *ctx);
1618 
1619 /* Text-combine-upright. */
1620 
1621 LXB_API void *
1622 lxb_css_property_text_combine_upright_create(lxb_css_memory_t *memory);
1623 
1624 LXB_API void *
1625 lxb_css_property_text_combine_upright_destroy(lxb_css_memory_t *memory,
1626                                               void *style, bool self_destroy);
1627 
1628 LXB_API lxb_status_t
1629 lxb_css_property_text_combine_upright_serialize(const void *style,
1630                                                 lexbor_serialize_cb_f cb, void *ctx);
1631 
1632 /* Overflow-x. */
1633 
1634 LXB_API void *
1635 lxb_css_property_overflow_x_create(lxb_css_memory_t *memory);
1636 
1637 LXB_API void *
1638 lxb_css_property_overflow_x_destroy(lxb_css_memory_t *memory,
1639                                     void *style, bool self_destroy);
1640 
1641 LXB_API lxb_status_t
1642 lxb_css_property_overflow_x_serialize(const void *style,
1643                                       lexbor_serialize_cb_f cb, void *ctx);
1644 
1645 /* Overflow-y. */
1646 
1647 LXB_API void *
1648 lxb_css_property_overflow_y_create(lxb_css_memory_t *memory);
1649 
1650 LXB_API void *
1651 lxb_css_property_overflow_y_destroy(lxb_css_memory_t *memory,
1652                                     void *style, bool self_destroy);
1653 
1654 LXB_API lxb_status_t
1655 lxb_css_property_overflow_y_serialize(const void *style,
1656                                       lexbor_serialize_cb_f cb, void *ctx);
1657 
1658 /* Overflow-block. */
1659 
1660 LXB_API void *
1661 lxb_css_property_overflow_block_create(lxb_css_memory_t *memory);
1662 
1663 LXB_API void *
1664 lxb_css_property_overflow_block_destroy(lxb_css_memory_t *memory,
1665                                         void *style, bool self_destroy);
1666 
1667 LXB_API lxb_status_t
1668 lxb_css_property_overflow_block_serialize(const void *style,
1669                                           lexbor_serialize_cb_f cb, void *ctx);
1670 
1671 /* Overflow-inline. */
1672 
1673 LXB_API void *
1674 lxb_css_property_overflow_inline_create(lxb_css_memory_t *memory);
1675 
1676 LXB_API void *
1677 lxb_css_property_overflow_inline_destroy(lxb_css_memory_t *memory,
1678                                          void *style, bool self_destroy);
1679 
1680 LXB_API lxb_status_t
1681 lxb_css_property_overflow_inline_serialize(const void *style,
1682                                            lexbor_serialize_cb_f cb, void *ctx);
1683 
1684 /* Text-overflow. */
1685 
1686 LXB_API void *
1687 lxb_css_property_text_overflow_create(lxb_css_memory_t *memory);
1688 
1689 LXB_API void *
1690 lxb_css_property_text_overflow_destroy(lxb_css_memory_t *memory,
1691                                        void *style, bool self_destroy);
1692 
1693 LXB_API lxb_status_t
1694 lxb_css_property_text_overflow_serialize(const void *style,
1695                                          lexbor_serialize_cb_f cb, void *ctx);
1696 
1697 /* Text-decoration-line. */
1698 
1699 LXB_API void *
1700 lxb_css_property_text_decoration_line_create(lxb_css_memory_t *memory);
1701 
1702 LXB_API void *
1703 lxb_css_property_text_decoration_line_destroy(lxb_css_memory_t *memory,
1704                                               void *style, bool self_destroy);
1705 
1706 LXB_API lxb_status_t
1707 lxb_css_property_text_decoration_line_serialize(const void *style,
1708                                                 lexbor_serialize_cb_f cb, void *ctx);
1709 
1710 /* Text-decoration-style. */
1711 
1712 LXB_API void *
1713 lxb_css_property_text_decoration_style_create(lxb_css_memory_t *memory);
1714 
1715 LXB_API void *
1716 lxb_css_property_text_decoration_style_destroy(lxb_css_memory_t *memory,
1717                                                void *style, bool self_destroy);
1718 
1719 LXB_API lxb_status_t
1720 lxb_css_property_text_decoration_style_serialize(const void *style,
1721                                                  lexbor_serialize_cb_f cb, void *ctx);
1722 
1723 /* Text-decoration-color. */
1724 
1725 LXB_API void *
1726 lxb_css_property_text_decoration_color_create(lxb_css_memory_t *memory);
1727 
1728 LXB_API void *
1729 lxb_css_property_text_decoration_color_destroy(lxb_css_memory_t *memory,
1730                                                void *style, bool self_destroy);
1731 
1732 LXB_API lxb_status_t
1733 lxb_css_property_text_decoration_color_serialize(const void *style,
1734                                                  lexbor_serialize_cb_f cb, void *ctx);
1735 
1736 /* Text-decoration. */
1737 
1738 LXB_API void *
1739 lxb_css_property_text_decoration_create(lxb_css_memory_t *memory);
1740 
1741 LXB_API void *
1742 lxb_css_property_text_decoration_destroy(lxb_css_memory_t *memory,
1743                                          void *style, bool self_destroy);
1744 
1745 LXB_API lxb_status_t
1746 lxb_css_property_text_decoration_serialize(const void *style,
1747                                            lexbor_serialize_cb_f cb, void *ctx);
1748 
1749 
1750 #ifdef __cplusplus
1751 } /* extern "C" */
1752 #endif
1753 
1754 #endif /* LXB_CSS_PROPERTY_H */
1755