1
//! Native list view widget with column headers, row selection, and sorting indicators.
2

            
3
use alloc::vec::Vec;
4

            
5
use azul_core::{
6
    callbacks::{CoreCallbackData, Update},
7
    dom::{Dom, DomVec, IdOrClass, IdOrClass::Class, IdOrClassVec, TabIndex},
8
    geom::{LogicalPosition, LogicalSize},
9
    menu::{Menu, OptionMenu},
10
    refany::RefAny,
11
};
12
use azul_css::{
13
    corety::OptionUsize,
14
    dynamic_selector::{CssPropertyWithConditions, CssPropertyWithConditionsVec},
15
    props::{
16
        basic::*,
17
        layout::*,
18
        property::{CssProperty, *},
19
        style::*,
20
    },
21
    *,
22
};
23
use azul_css::css::BoxOrStatic;
24

            
25
use crate::callbacks::{Callback, CallbackInfo};
26

            
27
const STRING_16146701490593874959: AzString = AzString::from_const_str("system:ui");
28
const STYLE_BACKGROUND_CONTENT_661302523448178568_ITEMS: &[StyleBackgroundContent] =
29
    &[StyleBackgroundContent::Color(ColorU {
30
        r: 209,
31
        g: 232,
32
        b: 255,
33
        a: 255,
34
    })];
35
const STYLE_BACKGROUND_CONTENT_2444935983575427872_ITEMS: &[StyleBackgroundContent] =
36
    &[StyleBackgroundContent::Color(ColorU {
37
        r: 252,
38
        g: 252,
39
        b: 252,
40
        a: 255,
41
    })];
42
const STYLE_BACKGROUND_CONTENT_3010057533077499049_ITEMS: &[StyleBackgroundContent] =
43
    &[StyleBackgroundContent::Color(ColorU {
44
        r: 229,
45
        g: 243,
46
        b: 251,
47
        a: 255,
48
    })];
49
const STYLE_BACKGROUND_CONTENT_3839348353894170136_ITEMS: &[StyleBackgroundContent] =
50
    &[StyleBackgroundContent::Color(ColorU {
51
        r: 249,
52
        g: 250,
53
        b: 251,
54
        a: 255,
55
    })];
56
const STYLE_BACKGROUND_CONTENT_6112684430356720596_ITEMS: &[StyleBackgroundContent] =
57
    &[StyleBackgroundContent::LinearGradient(LinearGradient {
58
        direction: Direction::FromTo(DirectionCorners {
59
            dir_from: DirectionCorner::Top,
60
            dir_to: DirectionCorner::Bottom,
61
        }),
62
        extend_mode: ExtendMode::Clamp,
63
        stops: NormalizedLinearColorStopVec::from_const_slice(
64
            LINEAR_COLOR_STOP_10827796861537038040_ITEMS,
65
        ),
66
    })];
67
const STYLE_BACKGROUND_CONTENT_7422581697888665934_ITEMS: &[StyleBackgroundContent] =
68
    &[StyleBackgroundContent::LinearGradient(LinearGradient {
69
        direction: Direction::FromTo(DirectionCorners {
70
            dir_from: DirectionCorner::Top,
71
            dir_to: DirectionCorner::Bottom,
72
        }),
73
        extend_mode: ExtendMode::Clamp,
74
        stops: NormalizedLinearColorStopVec::from_const_slice(
75
            LINEAR_COLOR_STOP_513857305091467054_ITEMS,
76
        ),
77
    })];
78
const STYLE_BACKGROUND_CONTENT_11062356617965867290_ITEMS: &[StyleBackgroundContent] =
79
    &[StyleBackgroundContent::Color(ColorU {
80
        r: 240,
81
        g: 240,
82
        b: 240,
83
        a: 255,
84
    })];
85
const STYLE_BACKGROUND_CONTENT_11098930083828139815_ITEMS: &[StyleBackgroundContent] =
86
    &[StyleBackgroundContent::Color(ColorU {
87
        r: 184,
88
        g: 224,
89
        b: 243,
90
        a: 255,
91
    })];
92
const STYLE_TRANSFORM_6162542744002865382_ITEMS: &[StyleTransform] =
93
    &[StyleTransform::Translate(StyleTransformTranslate2D {
94
        x: PixelValue::const_px(7),
95
        y: PixelValue::const_px(0),
96
    })];
97
const STYLE_TRANSFORM_16978981723642914576_ITEMS: &[StyleTransform] =
98
    &[StyleTransform::Rotate(AngleValue::const_deg(45))];
99
const STYLE_TRANSFORM_17732691695785266054_ITEMS: &[StyleTransform] = &[
100
    StyleTransform::Rotate(AngleValue::const_deg(315)),
101
    StyleTransform::Translate(StyleTransformTranslate2D {
102
        x: PixelValue::const_px(0),
103
        y: PixelValue::const_px(2),
104
    }),
105
];
106
const STYLE_FONT_FAMILY_8122988506401935406_ITEMS: &[StyleFontFamily] =
107
    &[StyleFontFamily::System(STRING_16146701490593874959)];
108
const LINEAR_COLOR_STOP_513857305091467054_ITEMS: &[NormalizedLinearColorStop] = &[
109
    NormalizedLinearColorStop {
110
        offset: PercentageValue::const_new(0),
111
        color: ColorOrSystem::color(ColorU {
112
            r: 255,
113
            g: 255,
114
            b: 255,
115
            a: 255,
116
        }),
117
    },
118
    NormalizedLinearColorStop {
119
        offset: PercentageValue::const_new(50),
120
        color: ColorOrSystem::color(ColorU {
121
            r: 255,
122
            g: 255,
123
            b: 255,
124
            a: 255,
125
        }),
126
    },
127
    NormalizedLinearColorStop {
128
        offset: PercentageValue::const_new(51),
129
        color: ColorOrSystem::color(ColorU {
130
            r: 247,
131
            g: 248,
132
            b: 250,
133
            a: 255,
134
        }),
135
    },
136
    NormalizedLinearColorStop {
137
        offset: PercentageValue::const_new(100),
138
        color: ColorOrSystem::color(ColorU {
139
            r: 243,
140
            g: 244,
141
            b: 246,
142
            a: 255,
143
        }),
144
    },
145
];
146
const LINEAR_COLOR_STOP_10827796861537038040_ITEMS: &[NormalizedLinearColorStop] = &[
147
    NormalizedLinearColorStop {
148
        offset: PercentageValue::const_new(0),
149
        color: ColorOrSystem::color(ColorU {
150
            r: 247,
151
            g: 252,
152
            b: 254,
153
            a: 255,
154
        }),
155
    },
156
    NormalizedLinearColorStop {
157
        offset: PercentageValue::const_new(50),
158
        color: ColorOrSystem::color(ColorU {
159
            r: 247,
160
            g: 252,
161
            b: 254,
162
            a: 255,
163
        }),
164
    },
165
    NormalizedLinearColorStop {
166
        offset: PercentageValue::const_new(51),
167
        color: ColorOrSystem::color(ColorU {
168
            r: 232,
169
            g: 246,
170
            b: 254,
171
            a: 255,
172
        }),
173
    },
174
    NormalizedLinearColorStop {
175
        offset: PercentageValue::const_new(100),
176
        color: ColorOrSystem::color(ColorU {
177
            r: 206,
178
            g: 231,
179
            b: 244,
180
            a: 255,
181
        }),
182
    },
183
];
184

            
185
const CSS_MATCH_1085706216385961159_PROPERTIES: &[CssPropertyWithConditions] = &[
186
    // .__azul_native-list-header-arrow-down
187
    CssPropertyWithConditions::simple(CssProperty::Transform(StyleTransformVecValue::Exact(
188
        StyleTransformVec::from_const_slice(STYLE_TRANSFORM_6162542744002865382_ITEMS),
189
    ))),
190
    CssPropertyWithConditions::simple(CssProperty::Position(LayoutPositionValue::Exact(
191
        LayoutPosition::Absolute,
192
    ))),
193
    CssPropertyWithConditions::simple(CssProperty::PaddingRight(LayoutPaddingRightValue::Exact(
194
        LayoutPaddingRight {
195
            inner: PixelValue::const_px(3),
196
        },
197
    ))),
198
    CssPropertyWithConditions::simple(CssProperty::PaddingLeft(LayoutPaddingLeftValue::Exact(
199
        LayoutPaddingLeft {
200
            inner: PixelValue::const_px(3),
201
        },
202
    ))),
203
    CssPropertyWithConditions::simple(CssProperty::PaddingBottom(LayoutPaddingBottomValue::Exact(
204
        LayoutPaddingBottom {
205
            inner: PixelValue::const_px(3),
206
        },
207
    ))),
208
    CssPropertyWithConditions::simple(CssProperty::PaddingTop(LayoutPaddingTopValue::Exact(
209
        LayoutPaddingTop {
210
            inner: PixelValue::const_px(3),
211
        },
212
    ))),
213
    CssPropertyWithConditions::simple(CssProperty::JustifyContent(
214
        LayoutJustifyContentValue::Exact(LayoutJustifyContent::Center),
215
    )),
216
    CssPropertyWithConditions::simple(CssProperty::FlexDirection(LayoutFlexDirectionValue::Exact(
217
        LayoutFlexDirection::Row,
218
    ))),
219
];
220
const CSS_MATCH_1085706216385961159: CssPropertyWithConditionsVec =
221
    CssPropertyWithConditionsVec::from_const_slice(CSS_MATCH_1085706216385961159_PROPERTIES);
222

            
223
const CSS_MATCH_12498280255863106397_PROPERTIES: &[CssPropertyWithConditions] = &[
224
    // .__azul_native-list-header-item:hover
225
    CssPropertyWithConditions::on_hover(CssProperty::BorderBottomWidth(
226
        LayoutBorderBottomWidthValue::Exact(LayoutBorderBottomWidth {
227
            inner: PixelValue::const_px(1),
228
        }),
229
    )),
230
    CssPropertyWithConditions::on_hover(CssProperty::BorderBottomStyle(
231
        StyleBorderBottomStyleValue::Exact(StyleBorderBottomStyle {
232
            inner: BorderStyle::Solid,
233
        }),
234
    )),
235
    CssPropertyWithConditions::on_hover(CssProperty::BorderBottomColor(
236
        StyleBorderBottomColorValue::Exact(StyleBorderBottomColor {
237
            inner: ColorU {
238
                r: 154,
239
                g: 223,
240
                b: 254,
241
                a: 255,
242
            },
243
        }),
244
    )),
245
    CssPropertyWithConditions::on_hover(CssProperty::BackgroundContent(
246
        StyleBackgroundContentVecValue::Exact(StyleBackgroundContentVec::from_const_slice(
247
            STYLE_BACKGROUND_CONTENT_6112684430356720596_ITEMS,
248
        )),
249
    )),
250
    // .__azul_native-list-header-item:active
251
    CssPropertyWithConditions::on_active(CssProperty::BoxShadowBottom(StyleBoxShadowValue::Exact(BoxOrStatic::Static(&
252
        StyleBoxShadow {
253
            offset_x: PixelValueNoPercent {
254
                inner: PixelValue::const_px(0),
255
            },
256
            offset_y: PixelValueNoPercent {
257
                inner: PixelValue::const_px(0),
258
            },
259
            color: ColorU {
260
                r: 206,
261
                g: 231,
262
                b: 244,
263
                a: 255,
264
            },
265
            blur_radius: PixelValueNoPercent {
266
                inner: PixelValue::const_px(5),
267
            },
268
            spread_radius: PixelValueNoPercent {
269
                inner: PixelValue::const_px(0),
270
            },
271
            clip_mode: BoxShadowClipMode::Inset,
272
        },
273
    )))),
274
    CssPropertyWithConditions::on_active(CssProperty::BoxShadowTop(StyleBoxShadowValue::Exact(BoxOrStatic::Static(&
275
        StyleBoxShadow {
276
            offset_x: PixelValueNoPercent {
277
                inner: PixelValue::const_px(0),
278
            },
279
            offset_y: PixelValueNoPercent {
280
                inner: PixelValue::const_px(0),
281
            },
282
            color: ColorU {
283
                r: 206,
284
                g: 231,
285
                b: 244,
286
                a: 255,
287
            },
288
            blur_radius: PixelValueNoPercent {
289
                inner: PixelValue::const_px(5),
290
            },
291
            spread_radius: PixelValueNoPercent {
292
                inner: PixelValue::const_px(0),
293
            },
294
            clip_mode: BoxShadowClipMode::Inset,
295
        },
296
    )))),
297
    CssPropertyWithConditions::on_active(CssProperty::BoxShadowRight(StyleBoxShadowValue::Exact(BoxOrStatic::Static(&
298
        StyleBoxShadow {
299
            offset_x: PixelValueNoPercent {
300
                inner: PixelValue::const_px(0),
301
            },
302
            offset_y: PixelValueNoPercent {
303
                inner: PixelValue::const_px(0),
304
            },
305
            color: ColorU {
306
                r: 206,
307
                g: 231,
308
                b: 244,
309
                a: 255,
310
            },
311
            blur_radius: PixelValueNoPercent {
312
                inner: PixelValue::const_px(5),
313
            },
314
            spread_radius: PixelValueNoPercent {
315
                inner: PixelValue::const_px(0),
316
            },
317
            clip_mode: BoxShadowClipMode::Inset,
318
        },
319
    )))),
320
    CssPropertyWithConditions::on_active(CssProperty::BoxShadowLeft(StyleBoxShadowValue::Exact(BoxOrStatic::Static(&
321
        StyleBoxShadow {
322
            offset_x: PixelValueNoPercent {
323
                inner: PixelValue::const_px(0),
324
            },
325
            offset_y: PixelValueNoPercent {
326
                inner: PixelValue::const_px(0),
327
            },
328
            color: ColorU {
329
                r: 206,
330
                g: 231,
331
                b: 244,
332
                a: 255,
333
            },
334
            blur_radius: PixelValueNoPercent {
335
                inner: PixelValue::const_px(5),
336
            },
337
            spread_radius: PixelValueNoPercent {
338
                inner: PixelValue::const_px(0),
339
            },
340
            clip_mode: BoxShadowClipMode::Inset,
341
        },
342
    )))),
343
    CssPropertyWithConditions::on_active(CssProperty::BorderBottomWidth(
344
        LayoutBorderBottomWidthValue::Exact(LayoutBorderBottomWidth {
345
            inner: PixelValue::const_px(1),
346
        }),
347
    )),
348
    CssPropertyWithConditions::on_active(CssProperty::BorderLeftWidth(
349
        LayoutBorderLeftWidthValue::Exact(LayoutBorderLeftWidth {
350
            inner: PixelValue::const_px(1),
351
        }),
352
    )),
353
    CssPropertyWithConditions::on_active(CssProperty::BorderRightWidth(
354
        LayoutBorderRightWidthValue::Exact(LayoutBorderRightWidth {
355
            inner: PixelValue::const_px(1),
356
        }),
357
    )),
358
    CssPropertyWithConditions::on_active(CssProperty::BorderTopWidth(
359
        LayoutBorderTopWidthValue::Exact(LayoutBorderTopWidth {
360
            inner: PixelValue::const_px(1),
361
        }),
362
    )),
363
    CssPropertyWithConditions::on_active(CssProperty::BorderBottomStyle(
364
        StyleBorderBottomStyleValue::Exact(StyleBorderBottomStyle {
365
            inner: BorderStyle::Solid,
366
        }),
367
    )),
368
    CssPropertyWithConditions::on_active(CssProperty::BorderLeftStyle(
369
        StyleBorderLeftStyleValue::Exact(StyleBorderLeftStyle {
370
            inner: BorderStyle::Solid,
371
        }),
372
    )),
373
    CssPropertyWithConditions::on_active(CssProperty::BorderRightStyle(
374
        StyleBorderRightStyleValue::Exact(StyleBorderRightStyle {
375
            inner: BorderStyle::Solid,
376
        }),
377
    )),
378
    CssPropertyWithConditions::on_active(CssProperty::BorderTopStyle(
379
        StyleBorderTopStyleValue::Exact(StyleBorderTopStyle {
380
            inner: BorderStyle::Solid,
381
        }),
382
    )),
383
    CssPropertyWithConditions::on_active(CssProperty::BorderBottomColor(
384
        StyleBorderBottomColorValue::Exact(StyleBorderBottomColor {
385
            inner: ColorU {
386
                r: 194,
387
                g: 205,
388
                b: 219,
389
                a: 255,
390
            },
391
        }),
392
    )),
393
    CssPropertyWithConditions::on_active(CssProperty::BorderLeftColor(
394
        StyleBorderLeftColorValue::Exact(StyleBorderLeftColor {
395
            inner: ColorU {
396
                r: 194,
397
                g: 205,
398
                b: 219,
399
                a: 255,
400
            },
401
        }),
402
    )),
403
    CssPropertyWithConditions::on_active(CssProperty::BorderRightColor(
404
        StyleBorderRightColorValue::Exact(StyleBorderRightColor {
405
            inner: ColorU {
406
                r: 194,
407
                g: 205,
408
                b: 219,
409
                a: 255,
410
            },
411
        }),
412
    )),
413
    CssPropertyWithConditions::on_active(CssProperty::BorderTopColor(
414
        StyleBorderTopColorValue::Exact(StyleBorderTopColor {
415
            inner: ColorU {
416
                r: 194,
417
                g: 205,
418
                b: 219,
419
                a: 255,
420
            },
421
        }),
422
    )),
423
    CssPropertyWithConditions::on_active(CssProperty::BackgroundContent(
424
        StyleBackgroundContentVecValue::Exact(StyleBackgroundContentVec::from_const_slice(
425
            STYLE_BACKGROUND_CONTENT_3839348353894170136_ITEMS,
426
        )),
427
    )),
428
    // .__azul_native-list-header-item
429
    CssPropertyWithConditions::simple(CssProperty::Position(LayoutPositionValue::Exact(
430
        LayoutPosition::Relative,
431
    ))),
432
    CssPropertyWithConditions::simple(CssProperty::PaddingLeft(LayoutPaddingLeftValue::Exact(
433
        LayoutPaddingLeft {
434
            inner: PixelValue::const_px(7),
435
        },
436
    ))),
437
    CssPropertyWithConditions::simple(CssProperty::MinWidth(LayoutMinWidthValue::Exact(
438
        LayoutMinWidth {
439
            inner: PixelValue::const_px(100),
440
        },
441
    ))),
442
    CssPropertyWithConditions::simple(CssProperty::FlexDirection(LayoutFlexDirectionValue::Exact(
443
        LayoutFlexDirection::Column,
444
    ))),
445
    CssPropertyWithConditions::simple(CssProperty::BorderRightWidth(
446
        LayoutBorderRightWidthValue::Exact(LayoutBorderRightWidth {
447
            inner: PixelValue::const_px(1),
448
        }),
449
    )),
450
    CssPropertyWithConditions::simple(CssProperty::BorderRightStyle(
451
        StyleBorderRightStyleValue::Exact(StyleBorderRightStyle {
452
            inner: BorderStyle::Solid,
453
        }),
454
    )),
455
    CssPropertyWithConditions::simple(CssProperty::BorderRightColor(
456
        StyleBorderRightColorValue::Exact(StyleBorderRightColor {
457
            inner: ColorU {
458
                r: 243,
459
                g: 244,
460
                b: 246,
461
                a: 255,
462
            },
463
        }),
464
    )),
465
];
466
const CSS_MATCH_12498280255863106397: CssPropertyWithConditionsVec =
467
    CssPropertyWithConditionsVec::from_const_slice(CSS_MATCH_12498280255863106397_PROPERTIES);
468

            
469
const CSS_MATCH_12980082330151137475_PROPERTIES: &[CssPropertyWithConditions] = &[
470
    // .__azul_native-list-rows-row-cell
471
    CssPropertyWithConditions::simple(CssProperty::PaddingLeft(LayoutPaddingLeftValue::Exact(
472
        LayoutPaddingLeft {
473
            inner: PixelValue::const_px(7),
474
        },
475
    ))),
476
    CssPropertyWithConditions::simple(CssProperty::MinWidth(LayoutMinWidthValue::Exact(
477
        LayoutMinWidth {
478
            inner: PixelValue::const_px(100),
479
        },
480
    ))),
481
    CssPropertyWithConditions::simple(CssProperty::FontSize(StyleFontSizeValue::Exact(
482
        StyleFontSize {
483
            inner: PixelValue::const_px(11),
484
        },
485
    ))),
486
    CssPropertyWithConditions::simple(CssProperty::FontFamily(StyleFontFamilyVecValue::Exact(
487
        StyleFontFamilyVec::from_const_slice(STYLE_FONT_FAMILY_8122988506401935406_ITEMS),
488
    ))),
489
];
490
const CSS_MATCH_12980082330151137475: CssPropertyWithConditionsVec =
491
    CssPropertyWithConditionsVec::from_const_slice(CSS_MATCH_12980082330151137475_PROPERTIES);
492

            
493
const CSS_MATCH_13758717721055992976_PROPERTIES: &[CssPropertyWithConditions] = &[
494
    // .__azul_native-list-header-arrow-down-inner
495
    CssPropertyWithConditions::simple(CssProperty::Width(LayoutWidthValue::Exact(
496
        LayoutWidth::Px(PixelValue::const_px(6)),
497
    ))),
498
    CssPropertyWithConditions::simple(CssProperty::Transform(StyleTransformVecValue::Exact(
499
        StyleTransformVec::from_const_slice(STYLE_TRANSFORM_16978981723642914576_ITEMS),
500
    ))),
501
    CssPropertyWithConditions::simple(CssProperty::OverflowY(LayoutOverflowValue::Exact(
502
        LayoutOverflow::Hidden,
503
    ))),
504
    CssPropertyWithConditions::simple(CssProperty::OverflowX(LayoutOverflowValue::Exact(
505
        LayoutOverflow::Hidden,
506
    ))),
507
    CssPropertyWithConditions::simple(CssProperty::Height(LayoutHeightValue::Exact(
508
        LayoutHeight::Px(PixelValue::const_px(6)),
509
    ))),
510
];
511
const CSS_MATCH_13758717721055992976: CssPropertyWithConditionsVec =
512
    CssPropertyWithConditionsVec::from_const_slice(CSS_MATCH_13758717721055992976_PROPERTIES);
513

            
514
const CSS_MATCH_15295293133676720691_PROPERTIES: &[CssPropertyWithConditions] = &[
515
    // .__azul_native-list-header-dragwidth-drag
516
    CssPropertyWithConditions::simple(CssProperty::Width(LayoutWidthValue::Exact(
517
        LayoutWidth::Px(PixelValue::const_px(2)),
518
    ))),
519
    CssPropertyWithConditions::simple(CssProperty::Position(LayoutPositionValue::Exact(
520
        LayoutPosition::Absolute,
521
    ))),
522
];
523
const CSS_MATCH_15295293133676720691: CssPropertyWithConditionsVec =
524
    CssPropertyWithConditionsVec::from_const_slice(CSS_MATCH_15295293133676720691_PROPERTIES);
525

            
526
const CSS_MATCH_15315949193378715186_PROPERTIES: &[CssPropertyWithConditions] = &[
527
    // .__azul_native-list-header
528
    CssPropertyWithConditions::simple(CssProperty::Height(LayoutHeightValue::Exact(
529
        LayoutHeight::Px(PixelValue::const_px(25)),
530
    ))),
531
    CssPropertyWithConditions::simple(CssProperty::FlexDirection(LayoutFlexDirectionValue::Exact(
532
        LayoutFlexDirection::Row,
533
    ))),
534
    CssPropertyWithConditions::simple(CssProperty::BackgroundContent(
535
        StyleBackgroundContentVecValue::Exact(StyleBackgroundContentVec::from_const_slice(
536
            STYLE_BACKGROUND_CONTENT_7422581697888665934_ITEMS,
537
        )),
538
    )),
539
];
540
const CSS_MATCH_15315949193378715186: CssPropertyWithConditionsVec =
541
    CssPropertyWithConditionsVec::from_const_slice(CSS_MATCH_15315949193378715186_PROPERTIES);
542

            
543
const CSS_MATCH_15673486787900743642_PROPERTIES: &[CssPropertyWithConditions] = &[
544
    // .__azul_native-list-header .__azul_native-list-header-item p
545
    CssPropertyWithConditions::simple(CssProperty::FontSize(StyleFontSizeValue::Exact(
546
        StyleFontSize {
547
            inner: PixelValue::const_px(11),
548
        },
549
    ))),
550
    CssPropertyWithConditions::simple(CssProperty::FontFamily(StyleFontFamilyVecValue::Exact(
551
        StyleFontFamilyVec::from_const_slice(STYLE_FONT_FAMILY_8122988506401935406_ITEMS),
552
    ))),
553
    CssPropertyWithConditions::simple(CssProperty::FlexGrow(LayoutFlexGrowValue::Exact(
554
        LayoutFlexGrow {
555
            inner: FloatValue::const_new(1),
556
        },
557
    ))),
558
    CssPropertyWithConditions::simple(CssProperty::FlexDirection(LayoutFlexDirectionValue::Exact(
559
        LayoutFlexDirection::Column,
560
    ))),
561
    CssPropertyWithConditions::simple(CssProperty::TextColor(StyleTextColorValue::Exact(
562
        StyleTextColor {
563
            inner: ColorU {
564
                r: 0,
565
                g: 0,
566
                b: 0,
567
                a: 255,
568
            },
569
        },
570
    ))),
571
    CssPropertyWithConditions::simple(CssProperty::AlignItems(LayoutAlignItemsValue::Exact(
572
        LayoutAlignItems::Center,
573
    ))),
574
];
575
const CSS_MATCH_15673486787900743642: CssPropertyWithConditionsVec =
576
    CssPropertyWithConditionsVec::from_const_slice(CSS_MATCH_15673486787900743642_PROPERTIES);
577

            
578
const CSS_MATCH_1574792189506859253_PROPERTIES: &[CssPropertyWithConditions] = &[
579
    // .__azul_native-list-header-arrow-down-inner-deco
580
    CssPropertyWithConditions::simple(CssProperty::Width(LayoutWidthValue::Exact(
581
        LayoutWidth::Px(PixelValue::const_px(12)),
582
    ))),
583
    CssPropertyWithConditions::simple(CssProperty::Transform(StyleTransformVecValue::Exact(
584
        StyleTransformVec::from_const_slice(STYLE_TRANSFORM_17732691695785266054_ITEMS),
585
    ))),
586
    CssPropertyWithConditions::simple(CssProperty::Height(LayoutHeightValue::Exact(
587
        LayoutHeight::Px(PixelValue::const_px(12)),
588
    ))),
589
    CssPropertyWithConditions::simple(CssProperty::BoxShadowBottom(StyleBoxShadowValue::Exact(BoxOrStatic::Static(&
590
        StyleBoxShadow {
591
            offset_x: PixelValueNoPercent {
592
                inner: PixelValue::const_px(3),
593
            },
594
            offset_y: PixelValueNoPercent {
595
                inner: PixelValue::const_px(3),
596
            },
597
            color: ColorU {
598
                r: 60,
599
                g: 94,
600
                b: 114,
601
                a: 255,
602
            },
603
            blur_radius: PixelValueNoPercent {
604
                inner: PixelValue::const_px(10),
605
            },
606
            spread_radius: PixelValueNoPercent {
607
                inner: PixelValue::const_px(0),
608
            },
609
            clip_mode: BoxShadowClipMode::Inset,
610
        },
611
    )))),
612
    CssPropertyWithConditions::simple(CssProperty::BoxShadowTop(StyleBoxShadowValue::Exact(BoxOrStatic::Static(&
613
        StyleBoxShadow {
614
            offset_x: PixelValueNoPercent {
615
                inner: PixelValue::const_px(3),
616
            },
617
            offset_y: PixelValueNoPercent {
618
                inner: PixelValue::const_px(3),
619
            },
620
            color: ColorU {
621
                r: 60,
622
                g: 94,
623
                b: 114,
624
                a: 255,
625
            },
626
            blur_radius: PixelValueNoPercent {
627
                inner: PixelValue::const_px(10),
628
            },
629
            spread_radius: PixelValueNoPercent {
630
                inner: PixelValue::const_px(0),
631
            },
632
            clip_mode: BoxShadowClipMode::Inset,
633
        },
634
    )))),
635
    CssPropertyWithConditions::simple(CssProperty::BoxShadowRight(StyleBoxShadowValue::Exact(BoxOrStatic::Static(&
636
        StyleBoxShadow {
637
            offset_x: PixelValueNoPercent {
638
                inner: PixelValue::const_px(3),
639
            },
640
            offset_y: PixelValueNoPercent {
641
                inner: PixelValue::const_px(3),
642
            },
643
            color: ColorU {
644
                r: 60,
645
                g: 94,
646
                b: 114,
647
                a: 255,
648
            },
649
            blur_radius: PixelValueNoPercent {
650
                inner: PixelValue::const_px(10),
651
            },
652
            spread_radius: PixelValueNoPercent {
653
                inner: PixelValue::const_px(0),
654
            },
655
            clip_mode: BoxShadowClipMode::Inset,
656
        },
657
    )))),
658
    CssPropertyWithConditions::simple(CssProperty::BoxShadowLeft(StyleBoxShadowValue::Exact(BoxOrStatic::Static(&
659
        StyleBoxShadow {
660
            offset_x: PixelValueNoPercent {
661
                inner: PixelValue::const_px(3),
662
            },
663
            offset_y: PixelValueNoPercent {
664
                inner: PixelValue::const_px(3),
665
            },
666
            color: ColorU {
667
                r: 60,
668
                g: 94,
669
                b: 114,
670
                a: 255,
671
            },
672
            blur_radius: PixelValueNoPercent {
673
                inner: PixelValue::const_px(10),
674
            },
675
            spread_radius: PixelValueNoPercent {
676
                inner: PixelValue::const_px(0),
677
            },
678
            clip_mode: BoxShadowClipMode::Inset,
679
        },
680
    )))),
681
];
682
const CSS_MATCH_1574792189506859253: CssPropertyWithConditionsVec =
683
    CssPropertyWithConditionsVec::from_const_slice(CSS_MATCH_1574792189506859253_PROPERTIES);
684

            
685
const CSS_MATCH_17553577885456905601_PROPERTIES: &[CssPropertyWithConditions] = &[
686
    // .__azul_native_list-container
687
    CssPropertyWithConditions::simple(CssProperty::FlexGrow(LayoutFlexGrowValue::Exact(
688
        LayoutFlexGrow {
689
            inner: FloatValue::const_new(1),
690
        },
691
    ))),
692
    CssPropertyWithConditions::simple(CssProperty::BackgroundContent(
693
        StyleBackgroundContentVecValue::Exact(StyleBackgroundContentVec::from_const_slice(
694
            STYLE_BACKGROUND_CONTENT_2444935983575427872_ITEMS,
695
        )),
696
    )),
697
];
698
const CSS_MATCH_17553577885456905601: CssPropertyWithConditionsVec =
699
    CssPropertyWithConditionsVec::from_const_slice(CSS_MATCH_17553577885456905601_PROPERTIES);
700

            
701
const CSS_MATCH_2883986488332352590_PROPERTIES: &[CssPropertyWithConditions] = &[
702
    // body
703
    CssPropertyWithConditions::simple(CssProperty::PaddingRight(LayoutPaddingRightValue::Exact(
704
        LayoutPaddingRight {
705
            inner: PixelValue::const_px(5),
706
        },
707
    ))),
708
    CssPropertyWithConditions::simple(CssProperty::PaddingLeft(LayoutPaddingLeftValue::Exact(
709
        LayoutPaddingLeft {
710
            inner: PixelValue::const_px(5),
711
        },
712
    ))),
713
    CssPropertyWithConditions::simple(CssProperty::PaddingBottom(LayoutPaddingBottomValue::Exact(
714
        LayoutPaddingBottom {
715
            inner: PixelValue::const_px(5),
716
        },
717
    ))),
718
    CssPropertyWithConditions::simple(CssProperty::PaddingTop(LayoutPaddingTopValue::Exact(
719
        LayoutPaddingTop {
720
            inner: PixelValue::const_px(5),
721
        },
722
    ))),
723
    CssPropertyWithConditions::simple(CssProperty::BackgroundContent(
724
        StyleBackgroundContentVecValue::Exact(StyleBackgroundContentVec::from_const_slice(
725
            STYLE_BACKGROUND_CONTENT_11062356617965867290_ITEMS,
726
        )),
727
    )),
728
];
729
const CSS_MATCH_2883986488332352590: CssPropertyWithConditionsVec =
730
    CssPropertyWithConditionsVec::from_const_slice(CSS_MATCH_2883986488332352590_PROPERTIES);
731

            
732
const CSS_MATCH_4852927511892172364_PROPERTIES: &[CssPropertyWithConditions] = &[
733
    // .__azul_native-list-rows
734
    CssPropertyWithConditions::simple(CssProperty::FlexDirection(LayoutFlexDirectionValue::Exact(
735
        LayoutFlexDirection::Column,
736
    ))),
737
];
738
const CSS_MATCH_4852927511892172364: CssPropertyWithConditionsVec =
739
    CssPropertyWithConditionsVec::from_const_slice(CSS_MATCH_4852927511892172364_PROPERTIES);
740

            
741
const CSS_MATCH_6002662151290653203_PROPERTIES: &[CssPropertyWithConditions] = &[
742
    // .__azul_native-list-header-dragwidth
743
    CssPropertyWithConditions::simple(CssProperty::Width(LayoutWidthValue::Exact(
744
        LayoutWidth::Px(PixelValue::const_px(0)),
745
    ))),
746
    CssPropertyWithConditions::simple(CssProperty::Position(LayoutPositionValue::Exact(
747
        LayoutPosition::Relative,
748
    ))),
749
    CssPropertyWithConditions::simple(CssProperty::FlexGrow(LayoutFlexGrowValue::Exact(
750
        LayoutFlexGrow {
751
            inner: FloatValue::const_new(1),
752
        },
753
    ))),
754
];
755
const CSS_MATCH_6002662151290653203: CssPropertyWithConditionsVec =
756
    CssPropertyWithConditionsVec::from_const_slice(CSS_MATCH_6002662151290653203_PROPERTIES);
757

            
758
const CSS_MATCH_6827198030119836081_PROPERTIES: &[CssPropertyWithConditions] = &[
759
    // .__azul_native-list-rows-row.selected
760
    CssPropertyWithConditions::simple(CssProperty::BorderBottomWidth(
761
        LayoutBorderBottomWidthValue::Exact(LayoutBorderBottomWidth {
762
            inner: PixelValue::const_px(1),
763
        }),
764
    )),
765
    CssPropertyWithConditions::simple(CssProperty::BorderLeftWidth(
766
        LayoutBorderLeftWidthValue::Exact(LayoutBorderLeftWidth {
767
            inner: PixelValue::const_px(1),
768
        }),
769
    )),
770
    CssPropertyWithConditions::simple(CssProperty::BorderRightWidth(
771
        LayoutBorderRightWidthValue::Exact(LayoutBorderRightWidth {
772
            inner: PixelValue::const_px(1),
773
        }),
774
    )),
775
    CssPropertyWithConditions::simple(CssProperty::BorderTopWidth(
776
        LayoutBorderTopWidthValue::Exact(LayoutBorderTopWidth {
777
            inner: PixelValue::const_px(1),
778
        }),
779
    )),
780
    CssPropertyWithConditions::simple(CssProperty::BorderBottomStyle(
781
        StyleBorderBottomStyleValue::Exact(StyleBorderBottomStyle {
782
            inner: BorderStyle::Solid,
783
        }),
784
    )),
785
    CssPropertyWithConditions::simple(CssProperty::BorderLeftStyle(
786
        StyleBorderLeftStyleValue::Exact(StyleBorderLeftStyle {
787
            inner: BorderStyle::Solid,
788
        }),
789
    )),
790
    CssPropertyWithConditions::simple(CssProperty::BorderRightStyle(
791
        StyleBorderRightStyleValue::Exact(StyleBorderRightStyle {
792
            inner: BorderStyle::Solid,
793
        }),
794
    )),
795
    CssPropertyWithConditions::simple(CssProperty::BorderTopStyle(
796
        StyleBorderTopStyleValue::Exact(StyleBorderTopStyle {
797
            inner: BorderStyle::Solid,
798
        }),
799
    )),
800
    CssPropertyWithConditions::simple(CssProperty::BorderBottomColor(
801
        StyleBorderBottomColorValue::Exact(StyleBorderBottomColor {
802
            inner: ColorU {
803
                r: 102,
804
                g: 167,
805
                b: 232,
806
                a: 255,
807
            },
808
        }),
809
    )),
810
    CssPropertyWithConditions::simple(CssProperty::BorderLeftColor(
811
        StyleBorderLeftColorValue::Exact(StyleBorderLeftColor {
812
            inner: ColorU {
813
                r: 102,
814
                g: 167,
815
                b: 232,
816
                a: 255,
817
            },
818
        }),
819
    )),
820
    CssPropertyWithConditions::simple(CssProperty::BorderRightColor(
821
        StyleBorderRightColorValue::Exact(StyleBorderRightColor {
822
            inner: ColorU {
823
                r: 102,
824
                g: 167,
825
                b: 232,
826
                a: 255,
827
            },
828
        }),
829
    )),
830
    CssPropertyWithConditions::simple(CssProperty::BorderTopColor(
831
        StyleBorderTopColorValue::Exact(StyleBorderTopColor {
832
            inner: ColorU {
833
                r: 102,
834
                g: 167,
835
                b: 232,
836
                a: 255,
837
            },
838
        }),
839
    )),
840
    CssPropertyWithConditions::simple(CssProperty::BackgroundContent(
841
        StyleBackgroundContentVecValue::Exact(StyleBackgroundContentVec::from_const_slice(
842
            STYLE_BACKGROUND_CONTENT_661302523448178568_ITEMS,
843
        )),
844
    )),
845
    // .__azul_native-list-rows-row:hover
846
    CssPropertyWithConditions::on_hover(CssProperty::BorderBottomWidth(
847
        LayoutBorderBottomWidthValue::Exact(LayoutBorderBottomWidth {
848
            inner: PixelValue::const_px(1),
849
        }),
850
    )),
851
    CssPropertyWithConditions::on_hover(CssProperty::BorderLeftWidth(
852
        LayoutBorderLeftWidthValue::Exact(LayoutBorderLeftWidth {
853
            inner: PixelValue::const_px(1),
854
        }),
855
    )),
856
    CssPropertyWithConditions::on_hover(CssProperty::BorderRightWidth(
857
        LayoutBorderRightWidthValue::Exact(LayoutBorderRightWidth {
858
            inner: PixelValue::const_px(1),
859
        }),
860
    )),
861
    CssPropertyWithConditions::on_hover(CssProperty::BorderTopWidth(
862
        LayoutBorderTopWidthValue::Exact(LayoutBorderTopWidth {
863
            inner: PixelValue::const_px(1),
864
        }),
865
    )),
866
    CssPropertyWithConditions::on_hover(CssProperty::BorderBottomStyle(
867
        StyleBorderBottomStyleValue::Exact(StyleBorderBottomStyle {
868
            inner: BorderStyle::Solid,
869
        }),
870
    )),
871
    CssPropertyWithConditions::on_hover(CssProperty::BorderLeftStyle(
872
        StyleBorderLeftStyleValue::Exact(StyleBorderLeftStyle {
873
            inner: BorderStyle::Solid,
874
        }),
875
    )),
876
    CssPropertyWithConditions::on_hover(CssProperty::BorderRightStyle(
877
        StyleBorderRightStyleValue::Exact(StyleBorderRightStyle {
878
            inner: BorderStyle::Solid,
879
        }),
880
    )),
881
    CssPropertyWithConditions::on_hover(CssProperty::BorderTopStyle(
882
        StyleBorderTopStyleValue::Exact(StyleBorderTopStyle {
883
            inner: BorderStyle::Solid,
884
        }),
885
    )),
886
    CssPropertyWithConditions::on_hover(CssProperty::BorderBottomColor(
887
        StyleBorderBottomColorValue::Exact(StyleBorderBottomColor {
888
            inner: ColorU {
889
                r: 101,
890
                g: 181,
891
                b: 220,
892
                a: 255,
893
            },
894
        }),
895
    )),
896
    CssPropertyWithConditions::on_hover(CssProperty::BorderLeftColor(
897
        StyleBorderLeftColorValue::Exact(StyleBorderLeftColor {
898
            inner: ColorU {
899
                r: 101,
900
                g: 181,
901
                b: 220,
902
                a: 255,
903
            },
904
        }),
905
    )),
906
    CssPropertyWithConditions::on_hover(CssProperty::BorderRightColor(
907
        StyleBorderRightColorValue::Exact(StyleBorderRightColor {
908
            inner: ColorU {
909
                r: 101,
910
                g: 181,
911
                b: 220,
912
                a: 255,
913
            },
914
        }),
915
    )),
916
    CssPropertyWithConditions::on_hover(CssProperty::BorderTopColor(
917
        StyleBorderTopColorValue::Exact(StyleBorderTopColor {
918
            inner: ColorU {
919
                r: 101,
920
                g: 181,
921
                b: 220,
922
                a: 255,
923
            },
924
        }),
925
    )),
926
    CssPropertyWithConditions::on_hover(CssProperty::BackgroundContent(
927
        StyleBackgroundContentVecValue::Exact(StyleBackgroundContentVec::from_const_slice(
928
            STYLE_BACKGROUND_CONTENT_3010057533077499049_ITEMS,
929
        )),
930
    )),
931
    // .__azul_native-list-rows-row
932
    CssPropertyWithConditions::simple(CssProperty::PaddingRight(LayoutPaddingRightValue::Exact(
933
        LayoutPaddingRight {
934
            inner: PixelValue::const_px(0),
935
        },
936
    ))),
937
    CssPropertyWithConditions::simple(CssProperty::PaddingLeft(LayoutPaddingLeftValue::Exact(
938
        LayoutPaddingLeft {
939
            inner: PixelValue::const_px(0),
940
        },
941
    ))),
942
    CssPropertyWithConditions::simple(CssProperty::PaddingBottom(LayoutPaddingBottomValue::Exact(
943
        LayoutPaddingBottom {
944
            inner: PixelValue::const_px(2),
945
        },
946
    ))),
947
    CssPropertyWithConditions::simple(CssProperty::PaddingTop(LayoutPaddingTopValue::Exact(
948
        LayoutPaddingTop {
949
            inner: PixelValue::const_px(2),
950
        },
951
    ))),
952
    CssPropertyWithConditions::simple(CssProperty::FlexGrow(LayoutFlexGrowValue::Exact(
953
        LayoutFlexGrow {
954
            inner: FloatValue::const_new(1),
955
        },
956
    ))),
957
    CssPropertyWithConditions::simple(CssProperty::FlexDirection(LayoutFlexDirectionValue::Exact(
958
        LayoutFlexDirection::Row,
959
    ))),
960
    CssPropertyWithConditions::simple(CssProperty::BorderBottomWidth(
961
        LayoutBorderBottomWidthValue::Exact(LayoutBorderBottomWidth {
962
            inner: PixelValue::const_px(1),
963
        }),
964
    )),
965
    CssPropertyWithConditions::simple(CssProperty::BorderLeftWidth(
966
        LayoutBorderLeftWidthValue::Exact(LayoutBorderLeftWidth {
967
            inner: PixelValue::const_px(1),
968
        }),
969
    )),
970
    CssPropertyWithConditions::simple(CssProperty::BorderRightWidth(
971
        LayoutBorderRightWidthValue::Exact(LayoutBorderRightWidth {
972
            inner: PixelValue::const_px(1),
973
        }),
974
    )),
975
    CssPropertyWithConditions::simple(CssProperty::BorderTopWidth(
976
        LayoutBorderTopWidthValue::Exact(LayoutBorderTopWidth {
977
            inner: PixelValue::const_px(1),
978
        }),
979
    )),
980
    CssPropertyWithConditions::simple(CssProperty::BorderBottomStyle(
981
        StyleBorderBottomStyleValue::Exact(StyleBorderBottomStyle {
982
            inner: BorderStyle::Solid,
983
        }),
984
    )),
985
    CssPropertyWithConditions::simple(CssProperty::BorderLeftStyle(
986
        StyleBorderLeftStyleValue::Exact(StyleBorderLeftStyle {
987
            inner: BorderStyle::Solid,
988
        }),
989
    )),
990
    CssPropertyWithConditions::simple(CssProperty::BorderRightStyle(
991
        StyleBorderRightStyleValue::Exact(StyleBorderRightStyle {
992
            inner: BorderStyle::Solid,
993
        }),
994
    )),
995
    CssPropertyWithConditions::simple(CssProperty::BorderTopStyle(
996
        StyleBorderTopStyleValue::Exact(StyleBorderTopStyle {
997
            inner: BorderStyle::Solid,
998
        }),
999
    )),
    CssPropertyWithConditions::simple(CssProperty::BorderBottomColor(
        StyleBorderBottomColorValue::Exact(StyleBorderBottomColor {
            inner: ColorU {
                r: 255,
                g: 255,
                b: 255,
                a: 0,
            },
        }),
    )),
    CssPropertyWithConditions::simple(CssProperty::BorderLeftColor(
        StyleBorderLeftColorValue::Exact(StyleBorderLeftColor {
            inner: ColorU {
                r: 255,
                g: 255,
                b: 255,
                a: 0,
            },
        }),
    )),
    CssPropertyWithConditions::simple(CssProperty::BorderRightColor(
        StyleBorderRightColorValue::Exact(StyleBorderRightColor {
            inner: ColorU {
                r: 255,
                g: 255,
                b: 255,
                a: 0,
            },
        }),
    )),
    CssPropertyWithConditions::simple(CssProperty::BorderTopColor(
        StyleBorderTopColorValue::Exact(StyleBorderTopColor {
            inner: ColorU {
                r: 255,
                g: 255,
                b: 255,
                a: 0,
            },
        }),
    )),
];
const CSS_MATCH_6827198030119836081: CssPropertyWithConditionsVec =
    CssPropertyWithConditionsVec::from_const_slice(CSS_MATCH_6827198030119836081_PROPERTIES);
const CSS_MATCH_7894335449545988724_PROPERTIES: &[CssPropertyWithConditions] = &[
    // .__azul_native-list-rows-row.focused
    CssPropertyWithConditions::on_focus(CssProperty::BorderBottomWidth(
        LayoutBorderBottomWidthValue::Exact(LayoutBorderBottomWidth {
            inner: PixelValue::const_px(1),
        }),
    )),
    CssPropertyWithConditions::on_focus(CssProperty::BorderLeftWidth(
        LayoutBorderLeftWidthValue::Exact(LayoutBorderLeftWidth {
            inner: PixelValue::const_px(1),
        }),
    )),
    CssPropertyWithConditions::on_focus(CssProperty::BorderRightWidth(
        LayoutBorderRightWidthValue::Exact(LayoutBorderRightWidth {
            inner: PixelValue::const_px(1),
        }),
    )),
    CssPropertyWithConditions::on_focus(CssProperty::BorderTopWidth(
        LayoutBorderTopWidthValue::Exact(LayoutBorderTopWidth {
            inner: PixelValue::const_px(1),
        }),
    )),
    CssPropertyWithConditions::on_focus(CssProperty::BorderBottomStyle(
        StyleBorderBottomStyleValue::Exact(StyleBorderBottomStyle {
            inner: BorderStyle::Solid,
        }),
    )),
    CssPropertyWithConditions::on_focus(CssProperty::BorderLeftStyle(
        StyleBorderLeftStyleValue::Exact(StyleBorderLeftStyle {
            inner: BorderStyle::Solid,
        }),
    )),
    CssPropertyWithConditions::on_focus(CssProperty::BorderRightStyle(
        StyleBorderRightStyleValue::Exact(StyleBorderRightStyle {
            inner: BorderStyle::Solid,
        }),
    )),
    CssPropertyWithConditions::on_focus(CssProperty::BorderTopStyle(
        StyleBorderTopStyleValue::Exact(StyleBorderTopStyle {
            inner: BorderStyle::Solid,
        }),
    )),
    CssPropertyWithConditions::on_focus(CssProperty::BorderBottomColor(
        StyleBorderBottomColorValue::Exact(StyleBorderBottomColor {
            inner: ColorU {
                r: 38,
                g: 160,
                b: 218,
                a: 255,
            },
        }),
    )),
    CssPropertyWithConditions::on_focus(CssProperty::BorderLeftColor(
        StyleBorderLeftColorValue::Exact(StyleBorderLeftColor {
            inner: ColorU {
                r: 38,
                g: 160,
                b: 218,
                a: 255,
            },
        }),
    )),
    CssPropertyWithConditions::on_focus(CssProperty::BorderRightColor(
        StyleBorderRightColorValue::Exact(StyleBorderRightColor {
            inner: ColorU {
                r: 38,
                g: 160,
                b: 218,
                a: 255,
            },
        }),
    )),
    CssPropertyWithConditions::on_focus(CssProperty::BorderTopColor(
        StyleBorderTopColorValue::Exact(StyleBorderTopColor {
            inner: ColorU {
                r: 38,
                g: 160,
                b: 218,
                a: 255,
            },
        }),
    )),
    CssPropertyWithConditions::on_focus(CssProperty::BackgroundContent(
        StyleBackgroundContentVecValue::Exact(StyleBackgroundContentVec::from_const_slice(
            STYLE_BACKGROUND_CONTENT_11098930083828139815_ITEMS,
        )),
    )),
    // .__azul_native-list-rows-row:hover
    CssPropertyWithConditions::on_hover(CssProperty::BorderBottomWidth(
        LayoutBorderBottomWidthValue::Exact(LayoutBorderBottomWidth {
            inner: PixelValue::const_px(1),
        }),
    )),
    CssPropertyWithConditions::on_hover(CssProperty::BorderLeftWidth(
        LayoutBorderLeftWidthValue::Exact(LayoutBorderLeftWidth {
            inner: PixelValue::const_px(1),
        }),
    )),
    CssPropertyWithConditions::on_hover(CssProperty::BorderRightWidth(
        LayoutBorderRightWidthValue::Exact(LayoutBorderRightWidth {
            inner: PixelValue::const_px(1),
        }),
    )),
    CssPropertyWithConditions::on_hover(CssProperty::BorderTopWidth(
        LayoutBorderTopWidthValue::Exact(LayoutBorderTopWidth {
            inner: PixelValue::const_px(1),
        }),
    )),
    CssPropertyWithConditions::on_hover(CssProperty::BorderBottomStyle(
        StyleBorderBottomStyleValue::Exact(StyleBorderBottomStyle {
            inner: BorderStyle::Solid,
        }),
    )),
    CssPropertyWithConditions::on_hover(CssProperty::BorderLeftStyle(
        StyleBorderLeftStyleValue::Exact(StyleBorderLeftStyle {
            inner: BorderStyle::Solid,
        }),
    )),
    CssPropertyWithConditions::on_hover(CssProperty::BorderRightStyle(
        StyleBorderRightStyleValue::Exact(StyleBorderRightStyle {
            inner: BorderStyle::Solid,
        }),
    )),
    CssPropertyWithConditions::on_hover(CssProperty::BorderTopStyle(
        StyleBorderTopStyleValue::Exact(StyleBorderTopStyle {
            inner: BorderStyle::Solid,
        }),
    )),
    CssPropertyWithConditions::on_hover(CssProperty::BorderBottomColor(
        StyleBorderBottomColorValue::Exact(StyleBorderBottomColor {
            inner: ColorU {
                r: 101,
                g: 181,
                b: 220,
                a: 255,
            },
        }),
    )),
    CssPropertyWithConditions::on_hover(CssProperty::BorderLeftColor(
        StyleBorderLeftColorValue::Exact(StyleBorderLeftColor {
            inner: ColorU {
                r: 101,
                g: 181,
                b: 220,
                a: 255,
            },
        }),
    )),
    CssPropertyWithConditions::on_hover(CssProperty::BorderRightColor(
        StyleBorderRightColorValue::Exact(StyleBorderRightColor {
            inner: ColorU {
                r: 101,
                g: 181,
                b: 220,
                a: 255,
            },
        }),
    )),
    CssPropertyWithConditions::on_hover(CssProperty::BorderTopColor(
        StyleBorderTopColorValue::Exact(StyleBorderTopColor {
            inner: ColorU {
                r: 101,
                g: 181,
                b: 220,
                a: 255,
            },
        }),
    )),
    CssPropertyWithConditions::on_hover(CssProperty::BackgroundContent(
        StyleBackgroundContentVecValue::Exact(StyleBackgroundContentVec::from_const_slice(
            STYLE_BACKGROUND_CONTENT_3010057533077499049_ITEMS,
        )),
    )),
    // .__azul_native-list-rows-row
    CssPropertyWithConditions::simple(CssProperty::PaddingRight(LayoutPaddingRightValue::Exact(
        LayoutPaddingRight {
            inner: PixelValue::const_px(0),
        },
    ))),
    CssPropertyWithConditions::simple(CssProperty::PaddingLeft(LayoutPaddingLeftValue::Exact(
        LayoutPaddingLeft {
            inner: PixelValue::const_px(0),
        },
    ))),
    CssPropertyWithConditions::simple(CssProperty::PaddingBottom(LayoutPaddingBottomValue::Exact(
        LayoutPaddingBottom {
            inner: PixelValue::const_px(2),
        },
    ))),
    CssPropertyWithConditions::simple(CssProperty::PaddingTop(LayoutPaddingTopValue::Exact(
        LayoutPaddingTop {
            inner: PixelValue::const_px(2),
        },
    ))),
    CssPropertyWithConditions::simple(CssProperty::FlexGrow(LayoutFlexGrowValue::Exact(
        LayoutFlexGrow {
            inner: FloatValue::const_new(1),
        },
    ))),
    CssPropertyWithConditions::simple(CssProperty::FlexDirection(LayoutFlexDirectionValue::Exact(
        LayoutFlexDirection::Row,
    ))),
    CssPropertyWithConditions::simple(CssProperty::BorderBottomWidth(
        LayoutBorderBottomWidthValue::Exact(LayoutBorderBottomWidth {
            inner: PixelValue::const_px(1),
        }),
    )),
    CssPropertyWithConditions::simple(CssProperty::BorderLeftWidth(
        LayoutBorderLeftWidthValue::Exact(LayoutBorderLeftWidth {
            inner: PixelValue::const_px(1),
        }),
    )),
    CssPropertyWithConditions::simple(CssProperty::BorderRightWidth(
        LayoutBorderRightWidthValue::Exact(LayoutBorderRightWidth {
            inner: PixelValue::const_px(1),
        }),
    )),
    CssPropertyWithConditions::simple(CssProperty::BorderTopWidth(
        LayoutBorderTopWidthValue::Exact(LayoutBorderTopWidth {
            inner: PixelValue::const_px(1),
        }),
    )),
    CssPropertyWithConditions::simple(CssProperty::BorderBottomStyle(
        StyleBorderBottomStyleValue::Exact(StyleBorderBottomStyle {
            inner: BorderStyle::Solid,
        }),
    )),
    CssPropertyWithConditions::simple(CssProperty::BorderLeftStyle(
        StyleBorderLeftStyleValue::Exact(StyleBorderLeftStyle {
            inner: BorderStyle::Solid,
        }),
    )),
    CssPropertyWithConditions::simple(CssProperty::BorderRightStyle(
        StyleBorderRightStyleValue::Exact(StyleBorderRightStyle {
            inner: BorderStyle::Solid,
        }),
    )),
    CssPropertyWithConditions::simple(CssProperty::BorderTopStyle(
        StyleBorderTopStyleValue::Exact(StyleBorderTopStyle {
            inner: BorderStyle::Solid,
        }),
    )),
    CssPropertyWithConditions::simple(CssProperty::BorderBottomColor(
        StyleBorderBottomColorValue::Exact(StyleBorderBottomColor {
            inner: ColorU {
                r: 255,
                g: 255,
                b: 255,
                a: 0,
            },
        }),
    )),
    CssPropertyWithConditions::simple(CssProperty::BorderLeftColor(
        StyleBorderLeftColorValue::Exact(StyleBorderLeftColor {
            inner: ColorU {
                r: 255,
                g: 255,
                b: 255,
                a: 0,
            },
        }),
    )),
    CssPropertyWithConditions::simple(CssProperty::BorderRightColor(
        StyleBorderRightColorValue::Exact(StyleBorderRightColor {
            inner: ColorU {
                r: 255,
                g: 255,
                b: 255,
                a: 0,
            },
        }),
    )),
    CssPropertyWithConditions::simple(CssProperty::BorderTopColor(
        StyleBorderTopColorValue::Exact(StyleBorderTopColor {
            inner: ColorU {
                r: 255,
                g: 255,
                b: 255,
                a: 0,
            },
        }),
    )),
];
const CSS_MATCH_7894335449545988724: CssPropertyWithConditionsVec =
    CssPropertyWithConditionsVec::from_const_slice(CSS_MATCH_7894335449545988724_PROPERTIES);
const CSS_MATCH_7937682281721781688_PROPERTIES: &[CssPropertyWithConditions] = &[
    // .__azul_native-list-rows-row-cell
    CssPropertyWithConditions::simple(CssProperty::PaddingLeft(LayoutPaddingLeftValue::Exact(
        LayoutPaddingLeft {
            inner: PixelValue::const_px(7),
        },
    ))),
    CssPropertyWithConditions::simple(CssProperty::MinWidth(LayoutMinWidthValue::Exact(
        LayoutMinWidth {
            inner: PixelValue::const_px(100),
        },
    ))),
    CssPropertyWithConditions::simple(CssProperty::FontSize(StyleFontSizeValue::Exact(
        StyleFontSize {
            inner: PixelValue::const_px(11),
        },
    ))),
    CssPropertyWithConditions::simple(CssProperty::FontFamily(StyleFontFamilyVecValue::Exact(
        StyleFontFamilyVec::from_const_slice(STYLE_FONT_FAMILY_8122988506401935406_ITEMS),
    ))),
];
const CSS_MATCH_7937682281721781688: CssPropertyWithConditionsVec =
    CssPropertyWithConditionsVec::from_const_slice(CSS_MATCH_7937682281721781688_PROPERTIES);
const CSS_MATCH_8793836789597026811_PROPERTIES: &[CssPropertyWithConditions] = &[
    // .__azul_native-list-rows-row-cell
    CssPropertyWithConditions::simple(CssProperty::PaddingLeft(LayoutPaddingLeftValue::Exact(
        LayoutPaddingLeft {
            inner: PixelValue::const_px(7),
        },
    ))),
    CssPropertyWithConditions::simple(CssProperty::MinWidth(LayoutMinWidthValue::Exact(
        LayoutMinWidth {
            inner: PixelValue::const_px(100),
        },
    ))),
    CssPropertyWithConditions::simple(CssProperty::FontSize(StyleFontSizeValue::Exact(
        StyleFontSize {
            inner: PixelValue::const_px(11),
        },
    ))),
    CssPropertyWithConditions::simple(CssProperty::FontFamily(StyleFontFamilyVecValue::Exact(
        StyleFontFamilyVec::from_const_slice(STYLE_FONT_FAMILY_8122988506401935406_ITEMS),
    ))),
];
const CSS_MATCH_8793836789597026811: CssPropertyWithConditionsVec =
    CssPropertyWithConditionsVec::from_const_slice(CSS_MATCH_8793836789597026811_PROPERTIES);
const IDS_AND_CLASSES_790316832563530605: &[IdOrClass] = &[Class(AzString::from_const_str(
    "__azul_native-list-rows-row",
))];
const ROW_CLASS: IdOrClassVec = IdOrClassVec::from_const_slice(IDS_AND_CLASSES_790316832563530605);
const IDS_AND_CLASSES_3034181810805097699: &[IdOrClass] = &[Class(AzString::from_const_str(
    "__azul_native-list-rows-row-cell",
))];
const CELL_CLASS: IdOrClassVec =
    IdOrClassVec::from_const_slice(IDS_AND_CLASSES_3034181810805097699);
const IDS_AND_CLASSES_6012478019077291002: &[IdOrClass] =
    &[Class(AzString::from_const_str("__azul_native-list-rows"))];
const ROW_CONTAINER_CLASS: IdOrClassVec =
    IdOrClassVec::from_const_slice(IDS_AND_CLASSES_6012478019077291002);
const IDS_AND_CLASSES_10742579426112804392: &[IdOrClass] =
    &[Class(AzString::from_const_str("__azul_native-list-header"))];
const HEADER_CONTAINER_CLASS: IdOrClassVec =
    IdOrClassVec::from_const_slice(IDS_AND_CLASSES_10742579426112804392);
const IDS_AND_CLASSES_9205819539370539587: &[IdOrClass] = &[Class(AzString::from_const_str(
    "__azul_native_list-container",
))];
const LIST_VIEW_CONTAINER_CLASS: IdOrClassVec =
    IdOrClassVec::from_const_slice(IDS_AND_CLASSES_9205819539370539587);
const IDS_AND_CLASSES_18330792117162403422: &[IdOrClass] = &[Class(AzString::from_const_str(
    "__azul_native-list-header-item",
))];
const COLUMN_NAME_CLASS: IdOrClassVec =
    IdOrClassVec::from_const_slice(IDS_AND_CLASSES_18330792117162403422);
pub type ListViewOnLazyLoadScrollCallbackType =
    extern "C" fn(RefAny, CallbackInfo, ListViewState) -> Update;
impl_widget_callback!(
    ListViewOnLazyLoadScroll,
    OptionListViewOnLazyLoadScroll,
    ListViewOnLazyLoadScrollCallback,
    ListViewOnLazyLoadScrollCallbackType
);
azul_core::impl_managed_callback! {
    wrapper:        ListViewOnLazyLoadScrollCallback,
    info_ty:        CallbackInfo,
    return_ty:      Update,
    default_ret:    Update::DoNothing,
    invoker_static: LIST_VIEW_ON_LAZY_LOAD_SCROLL_INVOKER,
    invoker_ty:     AzListViewOnLazyLoadScrollCallbackInvoker,
    thunk_fn:       az_list_view_on_lazy_load_scroll_callback_thunk,
    setter_fn:      AzApp_setListViewOnLazyLoadScrollCallbackInvoker,
    from_handle_fn: AzListViewOnLazyLoadScrollCallback_createFromHostHandle,
    extra_args:     [ state: ListViewState ],
}
pub type ListViewOnColumnClickCallbackType =
    extern "C" fn(RefAny, CallbackInfo, ListViewState, column_clicked: usize) -> Update;
impl_widget_callback!(
    ListViewOnColumnClick,
    OptionListViewOnColumnClick,
    ListViewOnColumnClickCallback,
    ListViewOnColumnClickCallbackType
);
azul_core::impl_managed_callback! {
    wrapper:        ListViewOnColumnClickCallback,
    info_ty:        CallbackInfo,
    return_ty:      Update,
    default_ret:    Update::DoNothing,
    invoker_static: LIST_VIEW_ON_COLUMN_CLICK_INVOKER,
    invoker_ty:     AzListViewOnColumnClickCallbackInvoker,
    thunk_fn:       az_list_view_on_column_click_callback_thunk,
    setter_fn:      AzApp_setListViewOnColumnClickCallbackInvoker,
    from_handle_fn: AzListViewOnColumnClickCallback_createFromHostHandle,
    extra_args:     [ state: ListViewState, column_clicked: usize ],
}
pub type ListViewOnRowClickCallbackType =
    extern "C" fn(RefAny, CallbackInfo, ListViewState, row_clicked: usize) -> Update;
impl_widget_callback!(
    ListViewOnRowClick,
    OptionListViewOnRowClick,
    ListViewOnRowClickCallback,
    ListViewOnRowClickCallbackType
);
azul_core::impl_managed_callback! {
    wrapper:        ListViewOnRowClickCallback,
    info_ty:        CallbackInfo,
    return_ty:      Update,
    default_ret:    Update::DoNothing,
    invoker_static: LIST_VIEW_ON_ROW_CLICK_INVOKER,
    invoker_ty:     AzListViewOnRowClickCallbackInvoker,
    thunk_fn:       az_list_view_on_row_click_callback_thunk,
    setter_fn:      AzApp_setListViewOnRowClickCallbackInvoker,
    from_handle_fn: AzListViewOnRowClickCallback_createFromHostHandle,
    extra_args:     [ state: ListViewState, row_clicked: usize ],
}
/// State of the ListView, but without row data
#[derive(Debug, Clone)]
#[repr(C)]
pub struct ListViewState {
    /// Copy of the current column names
    pub columns: StringVec,
    /// Which column the rows are currently sorted by
    pub sorted_by: OptionUsize,
    /// Row count of rows currently loaded in the DOM
    pub current_row_count: usize,
    /// Y-offset currently applied to the rows
    pub scroll_offset: PixelValueNoPercent,
    /// Current position where the user has scrolled the ListView to
    pub current_scroll_position: LogicalPosition,
    /// Current height of the row container
    pub current_content_height: LogicalSize,
}
/// List view, optionally able to lazy-load data
#[derive(Debug, Clone)]
#[repr(C)]
pub struct ListView {
    /// Column names
    pub columns: StringVec,
    /// Currently rendered rows. Note that the ListView does not
    /// have to render all rows at once, usually you'd only render
    /// the top 100 rows
    pub rows: ListViewRowVec,
    /// Which column is the list view sorted by (default = None)?
    pub sorted_by: OptionUsize,
    /// Offset to add to the rows used when layouting row positions
    /// during lazy-loaded scrolling. Also affects the scroll position
    pub scroll_offset: PixelValueNoPercent,
    /// Height of the content, if not all rows are loaded
    pub content_height: OptionPixelValueNoPercent,
    /// Context menu for the columns (usually opens a context menu
    /// to select which columns to show)
    pub column_context_menu: OptionMenu,
    /// Indicates that this ListView is being lazily loaded, allows
    /// control over what happens when the user scrolls the ListView.
    pub on_lazy_load_scroll: OptionListViewOnLazyLoadScroll,
    /// What to do when the user left-clicks the column
    /// (usually used for storing which column to sort by)
    pub on_column_click: OptionListViewOnColumnClick,
    /// What to do when the user left-clicks a row
    /// (usually used for selecting the row depending on the state)
    pub on_row_click: OptionListViewOnRowClick,
}
impl Default for ListView {
    fn default() -> Self {
        Self {
            columns: StringVec::from_const_slice(&[]),
            rows: ListViewRowVec::from_const_slice(&[]),
            sorted_by: None.into(),
            scroll_offset: PixelValueNoPercent {
                inner: PixelValue::const_px(0),
            },
            content_height: None.into(),
            column_context_menu: None.into(),
            on_lazy_load_scroll: None.into(),
            on_column_click: None.into(),
            on_row_click: None.into(),
        }
    }
}
/// Row of the ListView
#[derive(Debug, Clone)]
#[repr(C)]
pub struct ListViewRow {
    /// Each cell is an opaque Dom object
    pub cells: DomVec,
    /// Height of the row, if known beforehand
    pub height: OptionPixelValueNoPercent,
}
impl_option!(ListViewRow, OptionListViewRow, copy = false, [Debug, Clone]);
impl_vec!(ListViewRow, ListViewRowVec, ListViewRowVecDestructor, ListViewRowVecDestructorType, ListViewRowVecSlice, OptionListViewRow);
impl_vec_clone!(ListViewRow, ListViewRowVec, ListViewRowVecDestructor);
impl_vec_mut!(ListViewRow, ListViewRowVec);
impl_vec_debug!(ListViewRow, ListViewRowVec);
impl ListView {
    pub fn create(columns: StringVec) -> Self {
        Self {
            columns,
            ..Default::default()
        }
    }
    pub fn swap_with_default(&mut self) -> Self {
        let mut m = Self::default();
        core::mem::swap(&mut m, self);
        m
    }
    pub fn with_columns(mut self, columns: StringVec) -> Self {
        self.set_columns(columns);
        self
    }
    pub fn set_columns(&mut self, columns: StringVec) {
        self.columns = columns;
    }
    pub fn with_rows(mut self, rows: ListViewRowVec) -> Self {
        self.set_rows(rows);
        self
    }
    pub fn set_rows(&mut self, rows: ListViewRowVec) {
        self.rows = rows;
    }
    pub fn with_sorted_by(mut self, sorted_by: OptionUsize) -> Self {
        self.set_sorted_by(sorted_by);
        self
    }
    pub fn set_sorted_by(&mut self, sorted_by: OptionUsize) {
        self.sorted_by = sorted_by;
    }
    pub fn with_scroll_offset(mut self, scroll_offset: PixelValueNoPercent) -> Self {
        self.set_scroll_offset(scroll_offset);
        self
    }
    pub fn set_scroll_offset(&mut self, scroll_offset: PixelValueNoPercent) {
        self.scroll_offset = scroll_offset;
    }
    pub fn with_content_height(mut self, content_height: PixelValueNoPercent) -> Self {
        self.set_content_height(content_height);
        self
    }
    pub fn set_content_height(&mut self, content_height: PixelValueNoPercent) {
        self.content_height = Some(content_height).into();
    }
    pub fn with_column_context_menu(mut self, context_menu: Menu) -> Self {
        self.set_column_context_menu(context_menu);
        self
    }
    pub fn set_column_context_menu(&mut self, column_context_menu: Menu) {
        self.column_context_menu = Some(column_context_menu).into();
    }
    pub fn with_on_column_click<C: Into<ListViewOnColumnClickCallback>>(
        mut self,
        refany: RefAny,
        on_column_click: C,
    ) -> Self {
        self.set_on_column_click(refany, on_column_click);
        self
    }
    pub fn set_on_column_click<C: Into<ListViewOnColumnClickCallback>>(
        &mut self,
        refany: RefAny,
        on_column_click: C,
    ) {
        self.on_column_click = Some(ListViewOnColumnClick {
            refany,
            callback: on_column_click.into(),
        })
        .into();
    }
    pub fn with_on_row_click<C: Into<ListViewOnRowClickCallback>>(
        mut self,
        refany: RefAny,
        on_row_click: C,
    ) -> Self {
        self.set_on_row_click(refany, on_row_click);
        self
    }
    pub fn set_on_row_click<C: Into<ListViewOnRowClickCallback>>(
        &mut self,
        refany: RefAny,
        on_row_click: C,
    ) {
        self.on_row_click = Some(ListViewOnRowClick {
            refany,
            callback: on_row_click.into(),
        })
        .into();
    }
    pub fn dom(self) -> Dom {
        Dom::create_div()
            .with_css_props(CSS_MATCH_17553577885456905601)
            .with_ids_and_classes(LIST_VIEW_CONTAINER_CLASS)
            .with_children(DomVec::from_vec(vec![
                // header
                Dom::create_div()
                    .with_css_props(CSS_MATCH_15315949193378715186)
                    .with_ids_and_classes(HEADER_CONTAINER_CLASS)
                    .with_children(
                        self.columns
                            .iter()
                            .map(|col| {
                                Dom::create_div()
                                    .with_css_props(CSS_MATCH_12498280255863106397)
                                    .with_ids_and_classes(COLUMN_NAME_CLASS)
                                    .with_child({
                                        Dom::create_text(col.clone())
                                            .with_css_props(CSS_MATCH_15673486787900743642)
                                    })
                            })
                            .collect::<Vec<_>>()
                            .into(),
                    ),
                // rows
                Dom::create_div()
                    .with_css_props(CSS_MATCH_4852927511892172364)
                    .with_ids_and_classes(ROW_CONTAINER_CLASS)
                    .with_children(
                        self.rows
                            .into_iter()
                            .map(|row| {
                                Dom::create_div()
                                    .with_css_props(CSS_MATCH_7894335449545988724)
                                    .with_ids_and_classes(ROW_CLASS.clone())
                                    .with_tab_index(TabIndex::Auto)
                                    .with_children(
                                        row.cells
                                            .as_ref()
                                            .iter()
                                            .map(|cell| {
                                                Dom::create_div()
                                                    .with_css_props(CSS_MATCH_12980082330151137475)
                                                    .with_ids_and_classes(CELL_CLASS)
                                                    .with_child(cell.clone())
                                            })
                                            .collect::<Vec<_>>()
                                            .into(),
                                    )
                            })
                            .collect::<Vec<_>>()
                            .into(),
                    ),
            ]))
    }
}