@teseor/css 1.14.3 → 1.15.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/src/base/root.docs.html +20 -0
- package/src/base/typography/typography.docs.html +161 -0
- package/src/components/actions/button/button.docs.html +76 -0
- package/src/components/actions/button/button.visual.spec.ts +3 -3
- package/src/components/actions/button-group/button-group.docs.html +47 -0
- package/src/components/actions/button-group/button-group.visual.spec.ts +3 -3
- package/src/components/actions/close-button/close-button.docs.html +77 -0
- package/src/components/actions/close-button/close-button.visual.spec.ts +3 -3
- package/src/components/content/divider/divider.docs.html +27 -0
- package/src/components/content/divider/divider.visual.spec.ts +3 -3
- package/src/components/content/scroll-area/scroll-area-visual.png +0 -0
- package/src/components/content/scroll-area/scroll-area.docs.html +130 -0
- package/src/components/content/scroll-area/scroll-area.visual.spec.ts +3 -3
- package/src/components/content/spacer/spacer.docs.html +23 -0
- package/src/components/content/spacer/spacer.visual.spec.ts +3 -3
- package/src/components/data-display/avatar/avatar.docs.html +67 -0
- package/src/components/data-display/avatar/avatar.visual.spec.ts +3 -3
- package/src/components/data-display/badge/badge.docs.html +39 -0
- package/src/components/data-display/badge/badge.visual.spec.ts +3 -3
- package/src/components/data-display/card/card-visual.png +0 -0
- package/src/components/data-display/card/card.docs.html +36 -0
- package/src/components/data-display/card/card.visual.spec.ts +3 -3
- package/src/components/data-display/data-list/data-list-visual.png +0 -0
- package/src/components/data-display/data-list/data-list.docs.html +97 -0
- package/src/components/data-display/data-list/data-list.visual.spec.ts +3 -3
- package/src/components/data-display/icon/icon.docs.html +72 -0
- package/src/components/data-display/icon/icon.visual.spec.ts +3 -3
- package/src/components/data-display/image/image-visual.png +0 -0
- package/src/components/data-display/image/image.docs.html +67 -0
- package/src/components/data-display/image/image.visual.spec.ts +3 -3
- package/src/components/data-display/stat/stat.docs.html +35 -0
- package/src/components/data-display/stat/stat.visual.spec.ts +3 -3
- package/src/components/data-display/status/status.docs.html +67 -0
- package/src/components/data-display/status/status.visual.spec.ts +3 -3
- package/src/components/data-display/table/table.docs.html +73 -0
- package/src/components/data-display/table/table.visual.spec.ts +3 -3
- package/src/components/data-display/tag/tag.docs.html +42 -0
- package/src/components/data-display/tag/tag.visual.spec.ts +3 -3
- package/src/components/disclosure/accordion/accordion.docs.html +83 -0
- package/src/components/disclosure/accordion/accordion.visual.spec.ts +3 -3
- package/src/components/disclosure/disclosure/disclosure.docs.html +51 -0
- package/src/components/disclosure/disclosure/disclosure.visual.spec.ts +3 -3
- package/src/components/feedback/alert/alert.docs.html +90 -0
- package/src/components/feedback/alert/alert.visual.spec.ts +3 -3
- package/src/components/feedback/progress/progress.docs.html +65 -0
- package/src/components/feedback/progress/progress.visual.spec.ts +3 -3
- package/src/components/feedback/progress-circle/progress-circle.docs.html +65 -0
- package/src/components/feedback/progress-circle/progress-circle.visual.spec.ts +3 -3
- package/src/components/feedback/skeleton/skeleton.docs.html +40 -0
- package/src/components/feedback/skeleton/skeleton.visual.spec.ts +3 -3
- package/src/components/feedback/spinner/spinner.docs.html +28 -0
- package/src/components/feedback/spinner/spinner.visual.spec.ts +3 -3
- package/src/components/feedback/toast/toast-visual.png +0 -0
- package/src/components/feedback/toast/toast.docs.html +109 -0
- package/src/components/feedback/toast/toast.visual.spec.ts +3 -3
- package/src/components/forms/checkbox/checkbox.docs.html +33 -0
- package/src/components/forms/checkbox/checkbox.visual.spec.ts +3 -3
- package/src/components/forms/checkbox-group/checkbox-group.docs.html +104 -0
- package/src/components/forms/checkbox-group/checkbox-group.visual.spec.ts +3 -3
- package/src/components/forms/field/field.docs.html +63 -0
- package/src/components/forms/field/field.visual.spec.ts +3 -3
- package/src/components/forms/fieldset/fieldset.docs.html +122 -0
- package/src/components/forms/fieldset/fieldset.visual.spec.ts +3 -3
- package/src/components/forms/form/form.docs.html +132 -0
- package/src/components/forms/form/form.visual.spec.ts +3 -3
- package/src/components/forms/form-error/form-error.docs.html +18 -0
- package/src/components/forms/form-error/form-error.visual.spec.ts +3 -3
- package/src/components/forms/form-helper/form-helper.docs.html +42 -0
- package/src/components/forms/form-helper/form-helper.visual.spec.ts +3 -3
- package/src/components/forms/input/input-visual.png +0 -0
- package/src/components/forms/input/input.docs.html +69 -0
- package/src/components/forms/input/input.visual.spec.ts +3 -3
- package/src/components/forms/label/label-visual.png +0 -0
- package/src/components/forms/label/label.docs.html +29 -0
- package/src/components/forms/label/label.visual.spec.ts +3 -3
- package/src/components/forms/number-input/number-input-visual.png +0 -0
- package/src/components/forms/number-input/number-input.docs.html +100 -0
- package/src/components/forms/number-input/number-input.visual.spec.ts +3 -3
- package/src/components/forms/password-input/password-input-visual.png +0 -0
- package/src/components/forms/password-input/password-input.docs.html +88 -0
- package/src/components/forms/password-input/password-input.visual.spec.ts +3 -3
- package/src/components/forms/radio/radio.docs.html +52 -0
- package/src/components/forms/radio/radio.visual.spec.ts +3 -3
- package/src/components/forms/radio-group/radio-group.docs.html +100 -0
- package/src/components/forms/radio-group/radio-group.visual.spec.ts +3 -3
- package/src/components/forms/search-input/search-input-visual.png +0 -0
- package/src/components/forms/search-input/search-input.docs.html +87 -0
- package/src/components/forms/search-input/search-input.visual.spec.ts +3 -3
- package/src/components/forms/select/select-visual.png +0 -0
- package/src/components/forms/select/select.docs.html +70 -0
- package/src/components/forms/select/select.visual.spec.ts +3 -3
- package/src/components/forms/slider/slider-visual.png +0 -0
- package/src/components/forms/slider/slider.docs.html +25 -0
- package/src/components/forms/slider/slider.visual.spec.ts +3 -3
- package/src/components/forms/textarea/textarea-visual.png +0 -0
- package/src/components/forms/textarea/textarea.docs.html +39 -0
- package/src/components/forms/textarea/textarea.visual.spec.ts +3 -3
- package/src/components/forms/toggle/toggle.docs.html +64 -0
- package/src/components/forms/toggle/toggle.visual.spec.ts +3 -3
- package/src/components/navigation/breadcrumb/breadcrumb.docs.html +60 -0
- package/src/components/navigation/breadcrumb/breadcrumb.visual.spec.ts +3 -3
- package/src/components/navigation/dropdown-menu/dropdown-menu-visual.png +0 -0
- package/src/components/navigation/dropdown-menu/dropdown-menu.docs.html +106 -0
- package/src/components/navigation/dropdown-menu/dropdown-menu.visual.spec.ts +3 -3
- package/src/components/navigation/menu/menu.docs.html +122 -0
- package/src/components/navigation/menu/menu.visual.spec.ts +3 -3
- package/src/components/navigation/nav/nav.docs.html +74 -0
- package/src/components/navigation/nav/nav.visual.spec.ts +3 -3
- package/src/components/navigation/pagination/pagination-visual.png +0 -0
- package/src/components/navigation/pagination/pagination.docs.html +116 -0
- package/src/components/navigation/pagination/pagination.visual.spec.ts +3 -3
- package/src/components/navigation/tabs/tabs.docs.html +66 -0
- package/src/components/navigation/tabs/tabs.visual.spec.ts +3 -3
- package/src/components/overlays/dialog/dialog.docs.html +61 -0
- package/src/components/overlays/dialog/dialog.visual.spec.ts +3 -3
- package/src/components/overlays/drawer/drawer-visual.png +0 -0
- package/src/components/overlays/drawer/drawer.docs.html +90 -0
- package/src/components/overlays/drawer/drawer.visual.spec.ts +3 -3
- package/src/components/overlays/modal/modal.docs.html +69 -0
- package/src/components/overlays/modal/modal.visual.spec.ts +3 -3
- package/src/components/overlays/overlay/overlay.docs.html +30 -0
- package/src/components/overlays/overlay/overlay.visual.spec.ts +3 -3
- package/src/components/overlays/popover/popover.docs.html +41 -0
- package/src/components/overlays/popover/popover.visual.spec.ts +3 -3
- package/src/components/overlays/tooltip/tooltip.docs.html +33 -0
- package/src/components/overlays/tooltip/tooltip.visual.spec.ts +3 -3
- package/src/components/typography/blockquote/blockquote.docs.html +24 -0
- package/src/components/typography/blockquote/blockquote.visual.spec.ts +3 -3
- package/src/components/typography/code/code-visual.png +0 -0
- package/src/components/typography/code/code.docs.html +23 -0
- package/src/components/typography/code/code.visual.spec.ts +3 -3
- package/src/components/typography/code-block/code-block-visual.png +0 -0
- package/src/components/typography/code-block/code-block.docs.html +87 -0
- package/src/components/typography/code-block/code-block.visual.spec.ts +3 -3
- package/src/components/typography/heading/heading-visual.png +0 -0
- package/src/components/typography/heading/heading.docs.html +26 -0
- package/src/components/typography/heading/heading.visual.spec.ts +3 -3
- package/src/components/typography/kbd/kbd.docs.html +16 -0
- package/src/components/typography/kbd/kbd.visual.spec.ts +3 -3
- package/src/components/typography/link/link.docs.html +33 -0
- package/src/components/typography/link/link.visual.spec.ts +3 -3
- package/src/components/typography/list/list.docs.html +79 -0
- package/src/components/typography/list/list.visual.spec.ts +3 -3
- package/src/components/typography/mark/mark.docs.html +12 -0
- package/src/components/typography/mark/mark.visual.spec.ts +3 -3
- package/src/config/guides/accessibility.docs.html +108 -0
- package/src/config/guides/getting-started.docs.html +47 -0
- package/src/config/guides/theming.docs.html +71 -0
- package/src/config/tokens/colors/colors.docs.html +75 -0
- package/src/config/tokens/design-tokens.docs.html +116 -0
- package/src/config/tokens/grid/grid.docs.html +12 -0
- package/src/config/tokens/spacing/spacing.docs.html +33 -0
- package/src/debug/debug.docs.html +29 -0
- package/src/layout/app-shell/app-shell-visual.png +0 -0
- package/src/layout/app-shell/app-shell.docs.html +102 -0
- package/src/layout/app-shell/app-shell.visual.spec.ts +3 -3
- package/src/layout/aspect-ratio/aspect-ratio.docs.html +41 -0
- package/src/layout/aspect-ratio/aspect-ratio.visual.spec.ts +3 -3
- package/src/layout/box/box-visual.png +0 -0
- package/src/layout/box/box.docs.html +27 -0
- package/src/layout/box/box.visual.spec.ts +3 -3
- package/src/layout/center/center.docs.html +26 -0
- package/src/layout/center/center.visual.spec.ts +3 -3
- package/src/layout/column/column.docs.html +32 -0
- package/src/layout/column/column.visual.spec.ts +3 -3
- package/src/layout/container/container.docs.html +37 -0
- package/src/layout/content/content-visual.png +0 -0
- package/src/layout/content/content.docs.html +38 -0
- package/src/layout/content/content.visual.spec.ts +7 -3
- package/src/layout/footer/footer-visual.png +0 -0
- package/src/layout/footer/footer.docs.html +73 -0
- package/src/layout/footer/footer.visual.spec.ts +7 -3
- package/src/layout/grid/grid.docs.html +87 -0
- package/src/layout/grid/grid.visual.spec.ts +3 -3
- package/src/layout/main/main.docs.html +31 -0
- package/src/layout/nav-rail/nav-rail-visual.png +0 -0
- package/src/layout/nav-rail/nav-rail.docs.html +42 -0
- package/src/layout/nav-rail/nav-rail.visual.spec.ts +7 -3
- package/src/layout/page-header/page-header.docs.html +52 -0
- package/src/layout/page-header/page-header.visual.spec.ts +7 -3
- package/src/layout/row/row.docs.html +47 -0
- package/src/layout/row/row.visual.spec.ts +3 -3
- package/src/layout/sidebar/sidebar-visual.png +0 -0
- package/src/layout/sidebar/sidebar.docs.html +30 -0
- package/src/layout/sidebar/sidebar.visual.spec.ts +7 -3
- package/src/layout/sidebar-nav/sidebar-nav.docs.html +235 -0
- package/src/layout/sidebar-nav/sidebar-nav.visual.spec.ts +7 -3
- package/src/layout/topbar/topbar-visual.png +0 -0
- package/src/layout/topbar/topbar.docs.html +64 -0
- package/src/layout/topbar/topbar.visual.spec.ts +7 -3
- package/src/utilities/container/container.docs.html +34 -0
- package/src/utilities/display/display.docs.html +30 -0
- package/src/utilities/scroll-animation/scroll-animation.docs.html +32 -0
- package/src/utilities/scroll-snap/scroll-snap.docs.html +80 -0
- package/src/utilities/spacing/spacing.docs.html +29 -0
- package/src/utilities/text/text.docs.html +66 -0
- package/src/utilities/view-transition/view-transition.docs.html +52 -0
- package/src/utilities/visually-hidden/visually-hidden.docs.html +18 -0
- package/src/base/root.docs.json +0 -35
- package/src/base/typography/typography.docs.json +0 -328
- package/src/components/actions/button/button.docs.json +0 -264
- package/src/components/actions/button-group/button-group.docs.json +0 -151
- package/src/components/actions/close-button/close-button.docs.json +0 -265
- package/src/components/content/divider/divider.docs.json +0 -113
- package/src/components/content/scroll-area/scroll-area.docs.json +0 -273
- package/src/components/content/spacer/spacer.docs.json +0 -102
- package/src/components/data-display/avatar/avatar.docs.json +0 -245
- package/src/components/data-display/badge/badge.docs.json +0 -114
- package/src/components/data-display/card/card.docs.json +0 -229
- package/src/components/data-display/data-list/data-list.docs.json +0 -259
- package/src/components/data-display/icon/icon.docs.json +0 -307
- package/src/components/data-display/image/image.docs.json +0 -337
- package/src/components/data-display/stat/stat.docs.json +0 -114
- package/src/components/data-display/status/status.docs.json +0 -147
- package/src/components/data-display/table/table.docs.json +0 -184
- package/src/components/data-display/tag/tag.docs.json +0 -146
- package/src/components/disclosure/accordion/accordion.docs.json +0 -206
- package/src/components/disclosure/disclosure/disclosure.docs.json +0 -154
- package/src/components/feedback/alert/alert.docs.json +0 -325
- package/src/components/feedback/progress/progress.docs.json +0 -315
- package/src/components/feedback/progress-circle/progress-circle.docs.json +0 -378
- package/src/components/feedback/skeleton/skeleton.docs.json +0 -142
- package/src/components/feedback/spinner/spinner.docs.json +0 -121
- package/src/components/feedback/toast/toast.docs.json +0 -418
- package/src/components/forms/checkbox/checkbox.docs.json +0 -166
- package/src/components/forms/checkbox-group/checkbox-group.docs.json +0 -339
- package/src/components/forms/field/field.docs.json +0 -276
- package/src/components/forms/fieldset/fieldset.docs.json +0 -520
- package/src/components/forms/form/form.docs.json +0 -482
- package/src/components/forms/form-error/form-error.docs.json +0 -61
- package/src/components/forms/form-helper/form-helper.docs.json +0 -151
- package/src/components/forms/input/input.docs.json +0 -306
- package/src/components/forms/label/label.docs.json +0 -110
- package/src/components/forms/number-input/number-input.docs.json +0 -311
- package/src/components/forms/password-input/password-input.docs.json +0 -316
- package/src/components/forms/radio/radio.docs.json +0 -236
- package/src/components/forms/radio-group/radio-group.docs.json +0 -351
- package/src/components/forms/search-input/search-input.docs.json +0 -293
- package/src/components/forms/select/select.docs.json +0 -231
- package/src/components/forms/slider/slider.docs.json +0 -144
- package/src/components/forms/textarea/textarea.docs.json +0 -229
- package/src/components/forms/toggle/toggle.docs.json +0 -229
- package/src/components/navigation/breadcrumb/breadcrumb.docs.json +0 -240
- package/src/components/navigation/dropdown-menu/dropdown-menu.docs.json +0 -290
- package/src/components/navigation/menu/menu.docs.json +0 -326
- package/src/components/navigation/nav/nav.docs.json +0 -304
- package/src/components/navigation/pagination/pagination.docs.json +0 -483
- package/src/components/navigation/tabs/tabs.docs.json +0 -243
- package/src/components/overlays/dialog/dialog.docs.json +0 -200
- package/src/components/overlays/drawer/drawer.docs.json +0 -307
- package/src/components/overlays/modal/modal.docs.json +0 -252
- package/src/components/overlays/overlay/overlay.docs.json +0 -138
- package/src/components/overlays/popover/popover.docs.json +0 -154
- package/src/components/overlays/tooltip/tooltip.docs.json +0 -133
- package/src/components/typography/blockquote/blockquote.docs.json +0 -89
- package/src/components/typography/code/code.docs.json +0 -104
- package/src/components/typography/code-block/code-block.docs.json +0 -308
- package/src/components/typography/heading/heading.docs.json +0 -120
- package/src/components/typography/kbd/kbd.docs.json +0 -61
- package/src/components/typography/link/link.docs.json +0 -149
- package/src/components/typography/list/list.docs.json +0 -296
- package/src/components/typography/mark/mark.docs.json +0 -60
- package/src/config/guides/accessibility.docs.json +0 -126
- package/src/config/guides/getting-started.docs.json +0 -106
- package/src/config/guides/theming.docs.json +0 -289
- package/src/config/tokens/colors/colors.docs.json +0 -316
- package/src/config/tokens/design-tokens.docs.json +0 -239
- package/src/config/tokens/grid/grid.docs.json +0 -54
- package/src/config/tokens/spacing/spacing.docs.json +0 -114
- package/src/debug/debug.docs.json +0 -96
- package/src/layout/app-shell/app-shell.docs.json +0 -155
- package/src/layout/aspect-ratio/aspect-ratio.docs.json +0 -193
- package/src/layout/box/box.docs.json +0 -93
- package/src/layout/center/center.docs.json +0 -63
- package/src/layout/column/column.docs.json +0 -157
- package/src/layout/container/container.docs.json +0 -85
- package/src/layout/content/content.docs.json +0 -82
- package/src/layout/footer/footer.docs.json +0 -119
- package/src/layout/grid/grid.docs.json +0 -493
- package/src/layout/main/main.docs.json +0 -87
- package/src/layout/nav-rail/nav-rail.docs.json +0 -76
- package/src/layout/page-header/page-header.docs.json +0 -124
- package/src/layout/row/row.docs.json +0 -237
- package/src/layout/sidebar/sidebar.docs.json +0 -63
- package/src/layout/sidebar-nav/sidebar-nav.docs.json +0 -833
- package/src/layout/topbar/topbar.docs.json +0 -110
- package/src/utilities/container/container.docs.json +0 -121
- package/src/utilities/display/display.docs.json +0 -83
- package/src/utilities/scroll-animation/scroll-animation.docs.json +0 -100
- package/src/utilities/scroll-snap/scroll-snap.docs.json +0 -333
- package/src/utilities/spacing/spacing.docs.json +0 -133
- package/src/utilities/text/text.docs.json +0 -191
- package/src/utilities/view-transition/view-transition.docs.json +0 -63
- package/src/utilities/visually-hidden/visually-hidden.docs.json +0 -44
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: Status
|
|
3
|
+
type: component
|
|
4
|
+
id: status
|
|
5
|
+
description: Visual status indicator with colored dot to show state.
|
|
6
|
+
api: ./status.api.json
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
<!-- @variants -->
|
|
10
|
+
<div style="display: flex; flex-direction: column; gap: var(--ui-space-2);">
|
|
11
|
+
<span class="ui-status">
|
|
12
|
+
<span class="ui-status__dot"></span>
|
|
13
|
+
Default
|
|
14
|
+
</span>
|
|
15
|
+
<span class="ui-status ui-status--success">
|
|
16
|
+
<span class="ui-status__dot"></span>
|
|
17
|
+
Online
|
|
18
|
+
</span>
|
|
19
|
+
<span class="ui-status ui-status--warning">
|
|
20
|
+
<span class="ui-status__dot"></span>
|
|
21
|
+
Away
|
|
22
|
+
</span>
|
|
23
|
+
<span class="ui-status ui-status--danger">
|
|
24
|
+
<span class="ui-status__dot"></span>
|
|
25
|
+
Busy
|
|
26
|
+
</span>
|
|
27
|
+
<span class="ui-status ui-status--info">
|
|
28
|
+
<span class="ui-status__dot"></span>
|
|
29
|
+
In a meeting
|
|
30
|
+
</span>
|
|
31
|
+
</div>
|
|
32
|
+
|
|
33
|
+
<!-- @sizes -->
|
|
34
|
+
<div style="display: flex; gap: var(--ui-space-4); align-items: center;">
|
|
35
|
+
<span class="ui-status ui-status--success ui-status--sm">
|
|
36
|
+
<span class="ui-status__dot"></span>
|
|
37
|
+
Small
|
|
38
|
+
</span>
|
|
39
|
+
<span class="ui-status ui-status--success">
|
|
40
|
+
<span class="ui-status__dot"></span>
|
|
41
|
+
Default
|
|
42
|
+
</span>
|
|
43
|
+
<span class="ui-status ui-status--success ui-status--lg">
|
|
44
|
+
<span class="ui-status__dot"></span>
|
|
45
|
+
Large
|
|
46
|
+
</span>
|
|
47
|
+
</div>
|
|
48
|
+
|
|
49
|
+
<!-- @pulse_animation -->
|
|
50
|
+
<!-- For live or active indicators -->
|
|
51
|
+
<span class="ui-status ui-status--success ui-status--pulse">
|
|
52
|
+
<span class="ui-status__dot"></span>
|
|
53
|
+
Live
|
|
54
|
+
</span>
|
|
55
|
+
|
|
56
|
+
<!-- @dot_only -->
|
|
57
|
+
<div style="display: flex; gap: var(--ui-space-2);">
|
|
58
|
+
<span class="ui-status ui-status--success">
|
|
59
|
+
<span class="ui-status__dot"></span>
|
|
60
|
+
</span>
|
|
61
|
+
<span class="ui-status ui-status--warning">
|
|
62
|
+
<span class="ui-status__dot"></span>
|
|
63
|
+
</span>
|
|
64
|
+
<span class="ui-status ui-status--danger">
|
|
65
|
+
<span class="ui-status__dot"></span>
|
|
66
|
+
</span>
|
|
67
|
+
</div>
|
|
@@ -2,15 +2,15 @@ import { resolve } from 'node:path';
|
|
|
2
2
|
import { expect, test } from '@playwright/test';
|
|
3
3
|
import {
|
|
4
4
|
saveForLostPixel,
|
|
5
|
-
|
|
5
|
+
setupVisualTestFromHtmlDocs,
|
|
6
6
|
validateGridRhythm,
|
|
7
7
|
} from '../../../../test-utils';
|
|
8
8
|
|
|
9
|
-
const DOCS_PATH = resolve(__dirname, 'status.docs.
|
|
9
|
+
const DOCS_PATH = resolve(__dirname, 'status.docs.html');
|
|
10
10
|
|
|
11
11
|
test.describe('status visual regression', () => {
|
|
12
12
|
test('all variations', async ({ page }) => {
|
|
13
|
-
await
|
|
13
|
+
await setupVisualTestFromHtmlDocs(page, DOCS_PATH);
|
|
14
14
|
await validateGridRhythm(page, 'status');
|
|
15
15
|
await saveForLostPixel(page, 'status');
|
|
16
16
|
await expect(page.locator('body')).toHaveScreenshot('status.visual.png');
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: Table
|
|
3
|
+
type: component
|
|
4
|
+
id: table
|
|
5
|
+
description: Styled table with header formatting and optional variants.
|
|
6
|
+
api: ./table.api.json
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
<!-- @basic_table -->
|
|
10
|
+
<table class="ui-table">
|
|
11
|
+
<thead>
|
|
12
|
+
<tr>
|
|
13
|
+
<th>Name</th>
|
|
14
|
+
<th>Value</th>
|
|
15
|
+
</tr>
|
|
16
|
+
</thead>
|
|
17
|
+
<tbody>
|
|
18
|
+
<tr>
|
|
19
|
+
<td>Alpha</td>
|
|
20
|
+
<td>100</td>
|
|
21
|
+
</tr>
|
|
22
|
+
<tr>
|
|
23
|
+
<td>Beta</td>
|
|
24
|
+
<td>200</td>
|
|
25
|
+
</tr>
|
|
26
|
+
</tbody>
|
|
27
|
+
</table>
|
|
28
|
+
|
|
29
|
+
<!-- @variants -->
|
|
30
|
+
<table class="ui-table ui-table--compact">
|
|
31
|
+
<thead>
|
|
32
|
+
<tr>
|
|
33
|
+
<th>Token</th>
|
|
34
|
+
<th>Value</th>
|
|
35
|
+
</tr>
|
|
36
|
+
</thead>
|
|
37
|
+
<tbody>
|
|
38
|
+
<tr>
|
|
39
|
+
<td>
|
|
40
|
+
<code class="ui-code ui-code--sm">--space-1</code>
|
|
41
|
+
</td>
|
|
42
|
+
<td>0.5rem</td>
|
|
43
|
+
</tr>
|
|
44
|
+
<tr>
|
|
45
|
+
<td>
|
|
46
|
+
<code class="ui-code ui-code--sm">--space-2</code>
|
|
47
|
+
</td>
|
|
48
|
+
<td>1rem</td>
|
|
49
|
+
</tr>
|
|
50
|
+
</tbody>
|
|
51
|
+
</table>
|
|
52
|
+
<table class="ui-table ui-table--striped">
|
|
53
|
+
<thead>
|
|
54
|
+
<tr>
|
|
55
|
+
<th>Item</th>
|
|
56
|
+
<th>Status</th>
|
|
57
|
+
</tr>
|
|
58
|
+
</thead>
|
|
59
|
+
<tbody>
|
|
60
|
+
<tr>
|
|
61
|
+
<td>Task 1</td>
|
|
62
|
+
<td>Done</td>
|
|
63
|
+
</tr>
|
|
64
|
+
<tr>
|
|
65
|
+
<td>Task 2</td>
|
|
66
|
+
<td>Pending</td>
|
|
67
|
+
</tr>
|
|
68
|
+
<tr>
|
|
69
|
+
<td>Task 3</td>
|
|
70
|
+
<td>Done</td>
|
|
71
|
+
</tr>
|
|
72
|
+
</tbody>
|
|
73
|
+
</table>
|
|
@@ -2,15 +2,15 @@ import { resolve } from 'node:path';
|
|
|
2
2
|
import { expect, test } from '@playwright/test';
|
|
3
3
|
import {
|
|
4
4
|
saveForLostPixel,
|
|
5
|
-
|
|
5
|
+
setupVisualTestFromHtmlDocs,
|
|
6
6
|
validateGridRhythm,
|
|
7
7
|
} from '../../../../test-utils';
|
|
8
8
|
|
|
9
|
-
const DOCS_PATH = resolve(__dirname, 'table.docs.
|
|
9
|
+
const DOCS_PATH = resolve(__dirname, 'table.docs.html');
|
|
10
10
|
|
|
11
11
|
test.describe('table visual regression', () => {
|
|
12
12
|
test('all variations', async ({ page }) => {
|
|
13
|
-
await
|
|
13
|
+
await setupVisualTestFromHtmlDocs(page, DOCS_PATH);
|
|
14
14
|
await validateGridRhythm(page, 'table');
|
|
15
15
|
await saveForLostPixel(page, 'table');
|
|
16
16
|
await expect(page.locator('body')).toHaveScreenshot('table.visual.png');
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: Tag
|
|
3
|
+
type: component
|
|
4
|
+
id: tag
|
|
5
|
+
description: Keyword labels for categorization. Use for filtering, attributes, or status indicators.
|
|
6
|
+
api: ./tag.api.json
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
<!-- @default | row -->
|
|
10
|
+
<span class="ui-tag">Tag</span>
|
|
11
|
+
<span class="ui-tag">Category</span>
|
|
12
|
+
<span class="ui-tag">Label</span>
|
|
13
|
+
|
|
14
|
+
<!-- @sizes | row -->
|
|
15
|
+
<span class="ui-tag ui-tag--sm">Small</span>
|
|
16
|
+
<span class="ui-tag">Default</span>
|
|
17
|
+
<span class="ui-tag ui-tag--lg">Large</span>
|
|
18
|
+
|
|
19
|
+
<!-- @variants | row -->
|
|
20
|
+
<span class="ui-tag">Default</span>
|
|
21
|
+
<span class="ui-tag ui-tag--primary">Primary</span>
|
|
22
|
+
<span class="ui-tag ui-tag--success">Success</span>
|
|
23
|
+
<span class="ui-tag ui-tag--warning">Warning</span>
|
|
24
|
+
<span class="ui-tag ui-tag--danger">Danger</span>
|
|
25
|
+
|
|
26
|
+
<!-- @with_remove_button -->
|
|
27
|
+
<span class="ui-tag">
|
|
28
|
+
<span>Removable</span>
|
|
29
|
+
<button class="ui-tag__remove" aria-label="Remove">
|
|
30
|
+
<svg class="ui-icon ui-icon--xs" viewBox="0 0 24 24">
|
|
31
|
+
<path d="M18 6 6 18M6 6l12 12"></path>
|
|
32
|
+
</svg>
|
|
33
|
+
</button>
|
|
34
|
+
</span>
|
|
35
|
+
|
|
36
|
+
<!-- @tag_group -->
|
|
37
|
+
<div class="ui-tag-group">
|
|
38
|
+
<span class="ui-tag">JavaScript</span>
|
|
39
|
+
<span class="ui-tag">TypeScript</span>
|
|
40
|
+
<span class="ui-tag">React</span>
|
|
41
|
+
<span class="ui-tag">CSS</span>
|
|
42
|
+
</div>
|
|
@@ -2,15 +2,15 @@ import { resolve } from 'node:path';
|
|
|
2
2
|
import { expect, test } from '@playwright/test';
|
|
3
3
|
import {
|
|
4
4
|
saveForLostPixel,
|
|
5
|
-
|
|
5
|
+
setupVisualTestFromHtmlDocs,
|
|
6
6
|
validateGridRhythm,
|
|
7
7
|
} from '../../../../test-utils';
|
|
8
8
|
|
|
9
|
-
const DOCS_PATH = resolve(__dirname, 'tag.docs.
|
|
9
|
+
const DOCS_PATH = resolve(__dirname, 'tag.docs.html');
|
|
10
10
|
|
|
11
11
|
test.describe('tag visual regression', () => {
|
|
12
12
|
test('all variations', async ({ page }) => {
|
|
13
|
-
await
|
|
13
|
+
await setupVisualTestFromHtmlDocs(page, DOCS_PATH);
|
|
14
14
|
await validateGridRhythm(page, 'tag');
|
|
15
15
|
await saveForLostPixel(page, 'tag');
|
|
16
16
|
await expect(page.locator('body')).toHaveScreenshot('tag.visual.png');
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: Accordion
|
|
3
|
+
type: component
|
|
4
|
+
id: accordion
|
|
5
|
+
description: Container for grouped expandable sections. Use with disclosure components.
|
|
6
|
+
api: ./accordion.api.json
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
<!-- @default -->
|
|
10
|
+
<div class="ui-accordion">
|
|
11
|
+
<details class="ui-disclosure">
|
|
12
|
+
<summary class="ui-disclosure__trigger">
|
|
13
|
+
Section 1
|
|
14
|
+
<span class="ui-disclosure__icon">▾</span>
|
|
15
|
+
</summary>
|
|
16
|
+
<div class="ui-disclosure__content">
|
|
17
|
+
<p>Content for section 1</p>
|
|
18
|
+
</div>
|
|
19
|
+
</details>
|
|
20
|
+
<details class="ui-disclosure">
|
|
21
|
+
<summary class="ui-disclosure__trigger">
|
|
22
|
+
Section 2
|
|
23
|
+
<span class="ui-disclosure__icon">▾</span>
|
|
24
|
+
</summary>
|
|
25
|
+
<div class="ui-disclosure__content">
|
|
26
|
+
<p>Content for section 2</p>
|
|
27
|
+
</div>
|
|
28
|
+
</details>
|
|
29
|
+
<details class="ui-disclosure">
|
|
30
|
+
<summary class="ui-disclosure__trigger">
|
|
31
|
+
Section 3
|
|
32
|
+
<span class="ui-disclosure__icon">▾</span>
|
|
33
|
+
</summary>
|
|
34
|
+
<div class="ui-disclosure__content">
|
|
35
|
+
<p>Content for section 3</p>
|
|
36
|
+
</div>
|
|
37
|
+
</details>
|
|
38
|
+
</div>
|
|
39
|
+
|
|
40
|
+
<!-- @separated -->
|
|
41
|
+
<!-- Gap between accordion items -->
|
|
42
|
+
<div class="ui-accordion ui-accordion--separated">
|
|
43
|
+
<details class="ui-disclosure">
|
|
44
|
+
<summary class="ui-disclosure__trigger">
|
|
45
|
+
Section 1
|
|
46
|
+
<span class="ui-disclosure__icon">▾</span>
|
|
47
|
+
</summary>
|
|
48
|
+
<div class="ui-disclosure__content">
|
|
49
|
+
<p>Content for section 1</p>
|
|
50
|
+
</div>
|
|
51
|
+
</details>
|
|
52
|
+
<details class="ui-disclosure">
|
|
53
|
+
<summary class="ui-disclosure__trigger">
|
|
54
|
+
Section 2
|
|
55
|
+
<span class="ui-disclosure__icon">▾</span>
|
|
56
|
+
</summary>
|
|
57
|
+
<div class="ui-disclosure__content">
|
|
58
|
+
<p>Content for section 2</p>
|
|
59
|
+
</div>
|
|
60
|
+
</details>
|
|
61
|
+
</div>
|
|
62
|
+
|
|
63
|
+
<!-- @with_one_open -->
|
|
64
|
+
<div class="ui-accordion">
|
|
65
|
+
<details class="ui-disclosure" open>
|
|
66
|
+
<summary class="ui-disclosure__trigger">
|
|
67
|
+
Open Section
|
|
68
|
+
<span class="ui-disclosure__icon">▾</span>
|
|
69
|
+
</summary>
|
|
70
|
+
<div class="ui-disclosure__content">
|
|
71
|
+
<p>This section starts open</p>
|
|
72
|
+
</div>
|
|
73
|
+
</details>
|
|
74
|
+
<details class="ui-disclosure">
|
|
75
|
+
<summary class="ui-disclosure__trigger">
|
|
76
|
+
Closed Section
|
|
77
|
+
<span class="ui-disclosure__icon">▾</span>
|
|
78
|
+
</summary>
|
|
79
|
+
<div class="ui-disclosure__content">
|
|
80
|
+
<p>Click to open</p>
|
|
81
|
+
</div>
|
|
82
|
+
</details>
|
|
83
|
+
</div>
|
|
@@ -2,15 +2,15 @@ import { resolve } from 'node:path';
|
|
|
2
2
|
import { expect, test } from '@playwright/test';
|
|
3
3
|
import {
|
|
4
4
|
saveForLostPixel,
|
|
5
|
-
|
|
5
|
+
setupVisualTestFromHtmlDocs,
|
|
6
6
|
validateGridRhythm,
|
|
7
7
|
} from '../../../../test-utils';
|
|
8
8
|
|
|
9
|
-
const DOCS_PATH = resolve(__dirname, 'accordion.docs.
|
|
9
|
+
const DOCS_PATH = resolve(__dirname, 'accordion.docs.html');
|
|
10
10
|
|
|
11
11
|
test.describe('accordion visual regression', () => {
|
|
12
12
|
test('all variations', async ({ page }) => {
|
|
13
|
-
await
|
|
13
|
+
await setupVisualTestFromHtmlDocs(page, DOCS_PATH);
|
|
14
14
|
await validateGridRhythm(page, 'accordion');
|
|
15
15
|
await saveForLostPixel(page, 'accordion');
|
|
16
16
|
await expect(page.locator('body')).toHaveScreenshot('accordion.visual.png');
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: Disclosure
|
|
3
|
+
type: component
|
|
4
|
+
id: disclosure
|
|
5
|
+
description: Expandable/collapsible content section. Uses native details/summary for accessibility without JS.
|
|
6
|
+
api: ./disclosure.api.json
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
<!-- @default -->
|
|
10
|
+
<details class="ui-disclosure">
|
|
11
|
+
<summary class="ui-disclosure__trigger">
|
|
12
|
+
Click to expand
|
|
13
|
+
<span class="ui-disclosure__icon">▾</span>
|
|
14
|
+
</summary>
|
|
15
|
+
<div class="ui-disclosure__content">
|
|
16
|
+
<p>Hidden content that expands when clicked.</p>
|
|
17
|
+
</div>
|
|
18
|
+
</details>
|
|
19
|
+
|
|
20
|
+
<!-- @open_by_default -->
|
|
21
|
+
<details class="ui-disclosure" open>
|
|
22
|
+
<summary class="ui-disclosure__trigger">
|
|
23
|
+
Already expanded
|
|
24
|
+
<span class="ui-disclosure__icon">▾</span>
|
|
25
|
+
</summary>
|
|
26
|
+
<div class="ui-disclosure__content">
|
|
27
|
+
<p>This content is visible by default.</p>
|
|
28
|
+
</div>
|
|
29
|
+
</details>
|
|
30
|
+
|
|
31
|
+
<!-- @borderless -->
|
|
32
|
+
<details class="ui-disclosure ui-disclosure--borderless">
|
|
33
|
+
<summary class="ui-disclosure__trigger">
|
|
34
|
+
Borderless disclosure
|
|
35
|
+
<span class="ui-disclosure__icon">▾</span>
|
|
36
|
+
</summary>
|
|
37
|
+
<div class="ui-disclosure__content">
|
|
38
|
+
<p>No border around the disclosure.</p>
|
|
39
|
+
</div>
|
|
40
|
+
</details>
|
|
41
|
+
|
|
42
|
+
<!-- @animated -->
|
|
43
|
+
<details class="ui-disclosure ui-disclosure--animate">
|
|
44
|
+
<summary class="ui-disclosure__trigger">
|
|
45
|
+
Animated expansion
|
|
46
|
+
<span class="ui-disclosure__icon">▾</span>
|
|
47
|
+
</summary>
|
|
48
|
+
<div class="ui-disclosure__content">
|
|
49
|
+
<p>Content animates in when opened.</p>
|
|
50
|
+
</div>
|
|
51
|
+
</details>
|
|
@@ -2,15 +2,15 @@ import { resolve } from 'node:path';
|
|
|
2
2
|
import { expect, test } from '@playwright/test';
|
|
3
3
|
import {
|
|
4
4
|
saveForLostPixel,
|
|
5
|
-
|
|
5
|
+
setupVisualTestFromHtmlDocs,
|
|
6
6
|
validateGridRhythm,
|
|
7
7
|
} from '../../../../test-utils';
|
|
8
8
|
|
|
9
|
-
const DOCS_PATH = resolve(__dirname, 'disclosure.docs.
|
|
9
|
+
const DOCS_PATH = resolve(__dirname, 'disclosure.docs.html');
|
|
10
10
|
|
|
11
11
|
test.describe('disclosure visual regression', () => {
|
|
12
12
|
test('all variations', async ({ page }) => {
|
|
13
|
-
await
|
|
13
|
+
await setupVisualTestFromHtmlDocs(page, DOCS_PATH);
|
|
14
14
|
await validateGridRhythm(page, 'disclosure');
|
|
15
15
|
await saveForLostPixel(page, 'disclosure');
|
|
16
16
|
await expect(page.locator('body')).toHaveScreenshot('disclosure.visual.png');
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: Alert
|
|
3
|
+
type: component
|
|
4
|
+
id: alert
|
|
5
|
+
description: Informational banner for important messages. Use variants for different message types.
|
|
6
|
+
api: ./alert.api.json
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
<!-- @default -->
|
|
10
|
+
<div class="ui-alert">
|
|
11
|
+
<div class="ui-alert__content">
|
|
12
|
+
<p class="ui-alert__title">Note</p>
|
|
13
|
+
<p class="ui-alert__description">This is a default alert message.</p>
|
|
14
|
+
</div>
|
|
15
|
+
</div>
|
|
16
|
+
|
|
17
|
+
<!-- @variants -->
|
|
18
|
+
<div class="ui-column" style="--column-gap: var(--ui-space-2);">
|
|
19
|
+
<div class="ui-alert ui-alert--info">
|
|
20
|
+
<div class="ui-alert__content">
|
|
21
|
+
<p class="ui-alert__title">Info</p>
|
|
22
|
+
<p class="ui-alert__description">Informational message for the user.</p>
|
|
23
|
+
</div>
|
|
24
|
+
</div>
|
|
25
|
+
<div class="ui-alert ui-alert--success">
|
|
26
|
+
<div class="ui-alert__content">
|
|
27
|
+
<p class="ui-alert__title">Success</p>
|
|
28
|
+
<p class="ui-alert__description">Your action was completed successfully.</p>
|
|
29
|
+
</div>
|
|
30
|
+
</div>
|
|
31
|
+
<div class="ui-alert ui-alert--warning">
|
|
32
|
+
<div class="ui-alert__content">
|
|
33
|
+
<p class="ui-alert__title">Warning</p>
|
|
34
|
+
<p class="ui-alert__description">Please review before continuing.</p>
|
|
35
|
+
</div>
|
|
36
|
+
</div>
|
|
37
|
+
<div class="ui-alert ui-alert--danger">
|
|
38
|
+
<div class="ui-alert__content">
|
|
39
|
+
<p class="ui-alert__title">Error</p>
|
|
40
|
+
<p class="ui-alert__description">Something went wrong. Please try again.</p>
|
|
41
|
+
</div>
|
|
42
|
+
</div>
|
|
43
|
+
</div>
|
|
44
|
+
|
|
45
|
+
<!-- @with_icon -->
|
|
46
|
+
<div class="ui-alert ui-alert--info">
|
|
47
|
+
<svg class="ui-icon ui-icon--sm ui-alert__icon" viewBox="0 0 24 24">
|
|
48
|
+
<circle cx="12" cy="12" r="10"></circle>
|
|
49
|
+
<path d="M12 16v-4"></path>
|
|
50
|
+
<path d="M12 8h.01"></path>
|
|
51
|
+
</svg>
|
|
52
|
+
<div class="ui-alert__content">
|
|
53
|
+
<p class="ui-alert__description">Your session will expire in 5 minutes.</p>
|
|
54
|
+
</div>
|
|
55
|
+
</div>
|
|
56
|
+
|
|
57
|
+
<!-- @description_only -->
|
|
58
|
+
<div class="ui-alert ui-alert--success">
|
|
59
|
+
<div class="ui-alert__content">
|
|
60
|
+
<p class="ui-alert__description">File uploaded successfully.</p>
|
|
61
|
+
</div>
|
|
62
|
+
</div>
|
|
63
|
+
|
|
64
|
+
<!-- @sizes -->
|
|
65
|
+
<div class="ui-column" style="--column-gap: var(--ui-space-2);">
|
|
66
|
+
<div class="ui-alert ui-alert--info ui-alert--sm">
|
|
67
|
+
<div class="ui-alert__content">
|
|
68
|
+
<p class="ui-alert__description">Small alert with compact padding.</p>
|
|
69
|
+
</div>
|
|
70
|
+
</div>
|
|
71
|
+
<div class="ui-alert ui-alert--info">
|
|
72
|
+
<div class="ui-alert__content">
|
|
73
|
+
<p class="ui-alert__description">Default alert size.</p>
|
|
74
|
+
</div>
|
|
75
|
+
</div>
|
|
76
|
+
<div class="ui-alert ui-alert--info ui-alert--lg">
|
|
77
|
+
<div class="ui-alert__content">
|
|
78
|
+
<p class="ui-alert__description">Large alert with extra padding.</p>
|
|
79
|
+
</div>
|
|
80
|
+
</div>
|
|
81
|
+
</div>
|
|
82
|
+
|
|
83
|
+
<!-- @dismissible -->
|
|
84
|
+
<div class="ui-alert ui-alert--info ui-alert--dismissible">
|
|
85
|
+
<div class="ui-alert__content">
|
|
86
|
+
<p class="ui-alert__title">Dismissible</p>
|
|
87
|
+
<p class="ui-alert__description">This alert can be closed by the user.</p>
|
|
88
|
+
</div>
|
|
89
|
+
<button class="ui-alert__close ui-close-button" aria-label="Close"></button>
|
|
90
|
+
</div>
|
|
@@ -2,15 +2,15 @@ import { resolve } from 'node:path';
|
|
|
2
2
|
import { expect, test } from '@playwright/test';
|
|
3
3
|
import {
|
|
4
4
|
saveForLostPixel,
|
|
5
|
-
|
|
5
|
+
setupVisualTestFromHtmlDocs,
|
|
6
6
|
validateGridRhythm,
|
|
7
7
|
} from '../../../../test-utils';
|
|
8
8
|
|
|
9
|
-
const DOCS_PATH = resolve(__dirname, 'alert.docs.
|
|
9
|
+
const DOCS_PATH = resolve(__dirname, 'alert.docs.html');
|
|
10
10
|
|
|
11
11
|
test.describe('alert visual regression', () => {
|
|
12
12
|
test('all variations', async ({ page }) => {
|
|
13
|
-
await
|
|
13
|
+
await setupVisualTestFromHtmlDocs(page, DOCS_PATH);
|
|
14
14
|
await validateGridRhythm(page, 'alert');
|
|
15
15
|
await saveForLostPixel(page, 'alert');
|
|
16
16
|
await expect(page.locator('body')).toHaveScreenshot('alert.visual.png');
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: Progress
|
|
3
|
+
type: component
|
|
4
|
+
id: progress
|
|
5
|
+
description: Progress bar indicator showing completion status. Use aria-valuenow for accessibility.
|
|
6
|
+
api: ./progress.api.json
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
<!-- @default -->
|
|
10
|
+
<div class="ui-progress" role="progressbar" aria-valuenow="60" aria-valuemin="0" aria-valuemax="100" aria-label="Loading">
|
|
11
|
+
<div class="ui-progress__bar" style="width: 60%;"></div>
|
|
12
|
+
</div>
|
|
13
|
+
|
|
14
|
+
<!-- @sizes -->
|
|
15
|
+
<div style="display: flex; flex-direction: column; gap: var(--ui-space-2);">
|
|
16
|
+
<div class="ui-progress ui-progress--sm" role="progressbar" aria-valuenow="40" aria-valuemin="0" aria-valuemax="100">
|
|
17
|
+
<div class="ui-progress__bar" style="width: 40%;"></div>
|
|
18
|
+
</div>
|
|
19
|
+
<div class="ui-progress" role="progressbar" aria-valuenow="60" aria-valuemin="0" aria-valuemax="100">
|
|
20
|
+
<div class="ui-progress__bar" style="width: 60%;"></div>
|
|
21
|
+
</div>
|
|
22
|
+
<div class="ui-progress ui-progress--lg" role="progressbar" aria-valuenow="80" aria-valuemin="0" aria-valuemax="100">
|
|
23
|
+
<div class="ui-progress__bar" style="width: 80%;"></div>
|
|
24
|
+
</div>
|
|
25
|
+
</div>
|
|
26
|
+
|
|
27
|
+
<!-- @colors -->
|
|
28
|
+
<div style="display: flex; flex-direction: column; gap: var(--ui-space-2);">
|
|
29
|
+
<div class="ui-progress ui-progress--success" role="progressbar" aria-valuenow="100" aria-valuemin="0" aria-valuemax="100">
|
|
30
|
+
<div class="ui-progress__bar" style="width: 100%;"></div>
|
|
31
|
+
</div>
|
|
32
|
+
<div class="ui-progress ui-progress--warning" role="progressbar" aria-valuenow="60" aria-valuemin="0" aria-valuemax="100">
|
|
33
|
+
<div class="ui-progress__bar" style="width: 60%;"></div>
|
|
34
|
+
</div>
|
|
35
|
+
<div class="ui-progress ui-progress--danger" role="progressbar" aria-valuenow="25" aria-valuemin="0" aria-valuemax="100">
|
|
36
|
+
<div class="ui-progress__bar" style="width: 25%;"></div>
|
|
37
|
+
</div>
|
|
38
|
+
</div>
|
|
39
|
+
|
|
40
|
+
<!-- @striped -->
|
|
41
|
+
<div class="ui-progress ui-progress--striped" role="progressbar" aria-valuenow="70" aria-valuemin="0" aria-valuemax="100">
|
|
42
|
+
<div class="ui-progress__bar" style="width: 70%;"></div>
|
|
43
|
+
</div>
|
|
44
|
+
|
|
45
|
+
<!-- @animated_stripes -->
|
|
46
|
+
<div class="ui-progress ui-progress--striped ui-progress--animated" role="progressbar" aria-valuenow="50" aria-valuemin="0" aria-valuemax="100">
|
|
47
|
+
<div class="ui-progress__bar" style="width: 50%;"></div>
|
|
48
|
+
</div>
|
|
49
|
+
|
|
50
|
+
<!-- @indeterminate -->
|
|
51
|
+
<!-- For unknown progress duration -->
|
|
52
|
+
<div class="ui-progress ui-progress--indeterminate" role="progressbar" aria-label="Loading">
|
|
53
|
+
<div class="ui-progress__bar"></div>
|
|
54
|
+
</div>
|
|
55
|
+
|
|
56
|
+
<!-- @typed_custom_property -->
|
|
57
|
+
<!-- Set value via --ui-progress-value instead of inline width. The @property registration enables smooth CSS transitions when JS updates the value. -->
|
|
58
|
+
<div style="display: flex; flex-direction: column; gap: var(--ui-space-2);">
|
|
59
|
+
<div class="ui-progress" role="progressbar" aria-valuenow="25" aria-valuemin="0" aria-valuemax="100">
|
|
60
|
+
<div class="ui-progress__bar" style="--ui-progress-value: 25%"></div>
|
|
61
|
+
</div>
|
|
62
|
+
<div class="ui-progress" role="progressbar" aria-valuenow="75" aria-valuemin="0" aria-valuemax="100">
|
|
63
|
+
<div class="ui-progress__bar" style="--ui-progress-value: 75%"></div>
|
|
64
|
+
</div>
|
|
65
|
+
</div>
|
|
@@ -2,15 +2,15 @@ import { resolve } from 'node:path';
|
|
|
2
2
|
import { expect, test } from '@playwright/test';
|
|
3
3
|
import {
|
|
4
4
|
saveForLostPixel,
|
|
5
|
-
|
|
5
|
+
setupVisualTestFromHtmlDocs,
|
|
6
6
|
validateGridRhythm,
|
|
7
7
|
} from '../../../../test-utils';
|
|
8
8
|
|
|
9
|
-
const DOCS_PATH = resolve(__dirname, 'progress.docs.
|
|
9
|
+
const DOCS_PATH = resolve(__dirname, 'progress.docs.html');
|
|
10
10
|
|
|
11
11
|
test.describe('progress visual regression', () => {
|
|
12
12
|
test('all variations', async ({ page }) => {
|
|
13
|
-
await
|
|
13
|
+
await setupVisualTestFromHtmlDocs(page, DOCS_PATH);
|
|
14
14
|
await validateGridRhythm(page, 'progress');
|
|
15
15
|
await saveForLostPixel(page, 'progress');
|
|
16
16
|
await expect(page.locator('body')).toHaveScreenshot('progress.visual.png');
|