@teseor/css 1.1.0 → 1.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/compiled.css +1967 -1877
- package/dist/index.css +2015 -1925
- package/package.json +1 -1
- package/src/00-config/tokens/_variables.scss +39 -25
- package/src/00-config/tokens/colors/index.scss +22 -21
- package/src/00-config/tokens/shadows/index.scss +3 -3
- package/src/03-layout/cluster/cluster-visual.png +0 -0
- package/src/03-layout/cluster/cluster.visual.spec.ts +15 -0
- package/src/03-layout/sidebar/sidebar-visual.png +0 -0
- package/src/03-layout/sidebar/sidebar.docs.json +62 -0
- package/src/03-layout/sidebar/sidebar.visual.spec.ts +14 -0
- package/src/03-layout/sidebar-nav/sidebar-nav.api.json +29 -80
- package/src/04-components/actions/button/button-visual.png +0 -0
- package/src/04-components/{button → actions/button}/button.api.json +30 -56
- package/src/04-components/{button → actions/button}/button.docs.json +75 -0
- package/src/04-components/{button → actions/button}/button.visual.spec.ts +1 -1
- package/src/04-components/{button → actions/button}/index.scss +28 -18
- package/src/04-components/actions/button-group/button-group-visual.png +0 -0
- package/src/04-components/{button-group → actions/button-group}/button-group.api.json +5 -1
- package/src/04-components/{button-group → actions/button-group}/button-group.visual.spec.ts +3 -2
- package/src/04-components/{button-group → actions/button-group}/index.scss +1 -1
- package/src/04-components/{avatar → data-display/avatar}/avatar.api.json +5 -0
- package/src/04-components/{avatar → data-display/avatar}/avatar.visual.spec.ts +1 -1
- package/src/04-components/{avatar → data-display/avatar}/index.scss +1 -1
- package/src/04-components/{badge → data-display/badge}/badge.visual.spec.ts +1 -1
- package/src/04-components/{badge → data-display/badge}/index.scss +13 -10
- package/src/04-components/{card → data-display/card}/card.visual.spec.ts +1 -1
- package/src/04-components/{card → data-display/card}/index.scss +1 -1
- package/src/04-components/data-display/data-list/data-list-visual.png +0 -0
- package/src/04-components/{data-list → data-display/data-list}/data-list.api.json +16 -1
- package/src/04-components/{data-list → data-display/data-list}/data-list.visual.spec.ts +3 -2
- package/src/04-components/{data-list → data-display/data-list}/index.scss +4 -3
- package/src/04-components/data-display/icon/icon-visual.png +0 -0
- package/src/04-components/{icon → data-display/icon}/icon.api.json +7 -6
- package/src/04-components/{icon → data-display/icon}/icon.docs.json +86 -22
- package/src/04-components/{icon → data-display/icon}/icon.visual.spec.ts +1 -1
- package/src/04-components/{icon → data-display/icon}/index.scss +7 -20
- package/src/04-components/{status → data-display/status}/index.scss +1 -1
- package/src/04-components/{status → data-display/status}/status.api.json +14 -1
- package/src/04-components/{status → data-display/status}/status.visual.spec.ts +1 -1
- package/src/04-components/{table → data-display/table}/index.scss +1 -1
- package/src/04-components/{table → data-display/table}/table.api.json +8 -1
- package/src/04-components/{table → data-display/table}/table.visual.spec.ts +1 -1
- package/src/04-components/{tag → data-display/tag}/index.scss +1 -1
- package/src/04-components/{tag → data-display/tag}/tag.api.json +4 -0
- package/src/04-components/{tag → data-display/tag}/tag.visual.spec.ts +1 -1
- package/src/04-components/{accordion → disclosure/accordion}/accordion.api.json +5 -1
- package/src/04-components/{accordion → disclosure/accordion}/accordion.visual.spec.ts +1 -1
- package/src/04-components/{accordion → disclosure/accordion}/index.scss +1 -1
- package/src/04-components/disclosure/{disclosure.api.json → disclosure/disclosure.api.json} +13 -1
- package/src/04-components/disclosure/{disclosure.visual.spec.ts → disclosure/disclosure.visual.spec.ts} +1 -1
- package/src/04-components/disclosure/{index.scss → disclosure/index.scss} +1 -1
- package/src/04-components/{alert → feedback/alert}/alert.api.json +6 -0
- package/src/04-components/{alert → feedback/alert}/alert.visual.spec.ts +1 -1
- package/src/04-components/{alert → feedback/alert}/index.scss +11 -16
- package/src/04-components/{progress → feedback/progress}/index.scss +1 -1
- package/src/04-components/{progress → feedback/progress}/progress.api.json +20 -1
- package/src/04-components/{progress → feedback/progress}/progress.visual.spec.ts +1 -1
- package/src/04-components/{skeleton → feedback/skeleton}/index.scss +1 -1
- package/src/04-components/{skeleton → feedback/skeleton}/skeleton.api.json +8 -1
- package/src/04-components/{skeleton → feedback/skeleton}/skeleton.visual.spec.ts +1 -1
- package/src/04-components/{spinner → feedback/spinner}/index.scss +1 -1
- package/src/04-components/{spinner → feedback/spinner}/spinner.visual.spec.ts +1 -1
- package/src/04-components/{toast → feedback/toast}/index.scss +1 -1
- package/src/04-components/{toast → feedback/toast}/toast.api.json +22 -1
- package/src/04-components/{toast → feedback/toast}/toast.visual.spec.ts +1 -1
- package/src/04-components/forms/checkbox/checkbox-visual.png +0 -0
- package/src/04-components/{checkbox → forms/checkbox}/checkbox.api.json +1 -1
- package/src/04-components/{checkbox → forms/checkbox}/checkbox.visual.spec.ts +1 -1
- package/src/04-components/{checkbox → forms/checkbox}/index.scss +1 -1
- package/src/04-components/forms/field/field.api.json +19 -0
- package/src/04-components/{field → forms/field}/field.visual.spec.ts +1 -1
- package/src/04-components/{field → forms/field}/index.scss +1 -1
- package/src/04-components/forms/form-error/form-error-visual.png +0 -0
- package/src/04-components/{form-error → forms/form-error}/form-error.api.json +3 -0
- package/src/04-components/{form-error → forms/form-error}/form-error.visual.spec.ts +1 -1
- package/src/04-components/{form-error → forms/form-error}/index.scss +1 -1
- package/src/04-components/{form-helper → forms/form-helper}/form-helper.visual.spec.ts +1 -1
- package/src/04-components/{form-helper → forms/form-helper}/index.scss +1 -1
- package/src/04-components/{input → forms/input}/index.scss +1 -1
- package/src/04-components/forms/input/input-visual.png +0 -0
- package/src/04-components/{input → forms/input}/input.api.json +31 -0
- package/src/04-components/{input → forms/input}/input.visual.spec.ts +1 -1
- package/src/04-components/{label → forms/label}/index.scss +1 -1
- package/src/04-components/{label → forms/label}/label.api.json +4 -0
- package/src/04-components/{label → forms/label}/label.visual.spec.ts +1 -1
- package/src/04-components/{radio → forms/radio}/index.scss +1 -1
- package/src/04-components/forms/radio/radio-visual.png +0 -0
- package/src/04-components/{radio → forms/radio}/radio.api.json +1 -1
- package/src/04-components/{radio → forms/radio}/radio.visual.spec.ts +1 -1
- package/src/04-components/{select → forms/select}/index.scss +1 -1
- package/src/04-components/{select → forms/select}/select.api.json +3 -0
- package/src/04-components/{select → forms/select}/select.visual.spec.ts +1 -1
- package/src/04-components/{textarea → forms/textarea}/index.scss +1 -1
- package/src/04-components/{textarea → forms/textarea}/textarea.api.json +3 -0
- package/src/04-components/{textarea → forms/textarea}/textarea.visual.spec.ts +1 -1
- package/src/04-components/{toggle → forms/toggle}/index.scss +1 -1
- package/src/04-components/{toggle → forms/toggle}/toggle.api.json +5 -0
- package/src/04-components/{toggle → forms/toggle}/toggle.visual.spec.ts +1 -1
- package/src/04-components/index.scss +42 -41
- package/src/04-components/{divider → layout/divider}/divider.api.json +3 -0
- package/src/04-components/{divider → layout/divider}/divider.visual.spec.ts +1 -1
- package/src/04-components/{divider → layout/divider}/index.scss +1 -1
- package/src/04-components/{breadcrumb → navigation/breadcrumb}/breadcrumb.api.json +5 -0
- package/src/04-components/{breadcrumb → navigation/breadcrumb}/breadcrumb.visual.spec.ts +1 -1
- package/src/04-components/{breadcrumb → navigation/breadcrumb}/index.scss +1 -1
- package/src/04-components/{menu → navigation/menu}/index.scss +1 -1
- package/src/04-components/{menu → navigation/menu}/menu.api.json +24 -0
- package/src/04-components/{menu → navigation/menu}/menu.visual.spec.ts +1 -1
- package/src/04-components/navigation/nav/index.scss +142 -0
- package/src/04-components/navigation/nav/nav-visual.png +0 -0
- package/src/04-components/navigation/nav/nav.api.json +55 -0
- package/src/04-components/navigation/nav/nav.docs.json +242 -0
- package/src/04-components/navigation/nav/nav.visual.spec.ts +14 -0
- package/src/04-components/{pagination → navigation/pagination}/index.scss +1 -1
- package/src/04-components/{pagination → navigation/pagination}/pagination.api.json +22 -1
- package/src/04-components/{pagination → navigation/pagination}/pagination.visual.spec.ts +1 -1
- package/src/04-components/{tabs → navigation/tabs}/index.scss +1 -1
- package/src/04-components/{tabs → navigation/tabs}/tabs.api.json +17 -0
- package/src/04-components/{tabs → navigation/tabs}/tabs.visual.spec.ts +1 -1
- package/src/04-components/{dialog → overlays/dialog}/dialog.api.json +12 -1
- package/src/04-components/{dialog → overlays/dialog}/dialog.visual.spec.ts +1 -1
- package/src/04-components/{dialog → overlays/dialog}/index.scss +1 -1
- package/src/04-components/{drawer → overlays/drawer}/drawer.api.json +17 -1
- package/src/04-components/{drawer → overlays/drawer}/drawer.visual.spec.ts +1 -1
- package/src/04-components/{drawer → overlays/drawer}/index.scss +1 -1
- package/src/04-components/{modal → overlays/modal}/index.scss +1 -1
- package/src/04-components/{modal → overlays/modal}/modal.api.json +12 -1
- package/src/04-components/{modal → overlays/modal}/modal.visual.spec.ts +1 -1
- package/src/04-components/{overlay → overlays/overlay}/index.scss +1 -1
- package/src/04-components/{overlay → overlays/overlay}/overlay.api.json +14 -1
- package/src/04-components/{overlay → overlays/overlay}/overlay.visual.spec.ts +1 -1
- package/src/04-components/{popover → overlays/popover}/index.scss +1 -1
- package/src/04-components/{popover → overlays/popover}/popover.api.json +9 -1
- package/src/04-components/{popover → overlays/popover}/popover.visual.spec.ts +1 -1
- package/src/04-components/{tooltip → overlays/tooltip}/index.scss +1 -1
- package/src/04-components/{tooltip → overlays/tooltip}/tooltip.api.json +11 -1
- package/src/04-components/{tooltip → overlays/tooltip}/tooltip.visual.spec.ts +1 -1
- package/src/04-components/{code → typography/code}/code.api.json +6 -1
- package/src/04-components/{code → typography/code}/code.visual.spec.ts +1 -1
- package/src/04-components/{code → typography/code}/index.scss +1 -1
- package/src/04-components/{heading → typography/heading}/heading.visual.spec.ts +1 -1
- package/src/04-components/{heading → typography/heading}/index.scss +1 -1
- package/src/04-components/{link → typography/link}/index.scss +1 -1
- package/src/04-components/typography/link/link-visual.png +0 -0
- package/src/04-components/{link → typography/link}/link.api.json +6 -0
- package/src/04-components/{link → typography/link}/link.visual.spec.ts +1 -1
- package/src/99-debug/grid-overlay.scss +9 -8
- package/src/testing/page-setup.ts +25 -9
- package/src/testing/sidebar-toggles.spec.ts +103 -0
- package/src/04-components/button/button-visual.png +0 -0
- package/src/04-components/button-group/button-group-visual.png +0 -0
- package/src/04-components/checkbox/checkbox-visual.png +0 -0
- package/src/04-components/data-list/data-list-visual.png +0 -0
- package/src/04-components/field/field.api.json +0 -11
- package/src/04-components/form-error/form-error-visual.png +0 -0
- package/src/04-components/icon/icon-visual.png +0 -0
- package/src/04-components/input/input-visual.png +0 -0
- package/src/04-components/link/link-visual.png +0 -0
- package/src/04-components/radio/radio-visual.png +0 -0
- /package/src/04-components/{button-group → actions/button-group}/button-group.docs.json +0 -0
- /package/src/04-components/{avatar → data-display/avatar}/avatar-visual.png +0 -0
- /package/src/04-components/{avatar → data-display/avatar}/avatar.docs.json +0 -0
- /package/src/04-components/{badge → data-display/badge}/badge-visual.png +0 -0
- /package/src/04-components/{badge → data-display/badge}/badge.api.json +0 -0
- /package/src/04-components/{badge → data-display/badge}/badge.docs.json +0 -0
- /package/src/04-components/{card → data-display/card}/card-visual.png +0 -0
- /package/src/04-components/{card → data-display/card}/card.api.json +0 -0
- /package/src/04-components/{card → data-display/card}/card.docs.json +0 -0
- /package/src/04-components/{data-list → data-display/data-list}/data-list.docs.json +0 -0
- /package/src/04-components/{status → data-display/status}/status-visual.png +0 -0
- /package/src/04-components/{status → data-display/status}/status.docs.json +0 -0
- /package/src/04-components/{table → data-display/table}/table-visual.png +0 -0
- /package/src/04-components/{table → data-display/table}/table.docs.json +0 -0
- /package/src/04-components/{tag → data-display/tag}/tag-visual.png +0 -0
- /package/src/04-components/{tag → data-display/tag}/tag.docs.json +0 -0
- /package/src/04-components/{accordion → disclosure/accordion}/accordion-visual.png +0 -0
- /package/src/04-components/{accordion → disclosure/accordion}/accordion.docs.json +0 -0
- /package/src/04-components/disclosure/{disclosure-visual.png → disclosure/disclosure-visual.png} +0 -0
- /package/src/04-components/disclosure/{disclosure.docs.json → disclosure/disclosure.docs.json} +0 -0
- /package/src/04-components/{alert → feedback/alert}/alert-visual.png +0 -0
- /package/src/04-components/{alert → feedback/alert}/alert.docs.json +0 -0
- /package/src/04-components/{progress → feedback/progress}/progress-visual.png +0 -0
- /package/src/04-components/{progress → feedback/progress}/progress.docs.json +0 -0
- /package/src/04-components/{skeleton → feedback/skeleton}/skeleton-visual.png +0 -0
- /package/src/04-components/{skeleton → feedback/skeleton}/skeleton.docs.json +0 -0
- /package/src/04-components/{spinner → feedback/spinner}/spinner-visual.png +0 -0
- /package/src/04-components/{spinner → feedback/spinner}/spinner.api.json +0 -0
- /package/src/04-components/{spinner → feedback/spinner}/spinner.docs.json +0 -0
- /package/src/04-components/{toast → feedback/toast}/toast-visual.png +0 -0
- /package/src/04-components/{toast → feedback/toast}/toast.docs.json +0 -0
- /package/src/04-components/{checkbox → forms/checkbox}/checkbox.docs.json +0 -0
- /package/src/04-components/{field → forms/field}/field-visual.png +0 -0
- /package/src/04-components/{field → forms/field}/field.docs.json +0 -0
- /package/src/04-components/{form-error → forms/form-error}/form-error.docs.json +0 -0
- /package/src/04-components/{form-helper → forms/form-helper}/form-helper-visual.png +0 -0
- /package/src/04-components/{form-helper → forms/form-helper}/form-helper.api.json +0 -0
- /package/src/04-components/{form-helper → forms/form-helper}/form-helper.docs.json +0 -0
- /package/src/04-components/{input → forms/input}/input.docs.json +0 -0
- /package/src/04-components/{label → forms/label}/label-visual.png +0 -0
- /package/src/04-components/{label → forms/label}/label.docs.json +0 -0
- /package/src/04-components/{radio → forms/radio}/radio.docs.json +0 -0
- /package/src/04-components/{select → forms/select}/select-visual.png +0 -0
- /package/src/04-components/{select → forms/select}/select.docs.json +0 -0
- /package/src/04-components/{textarea → forms/textarea}/textarea-visual.png +0 -0
- /package/src/04-components/{textarea → forms/textarea}/textarea.docs.json +0 -0
- /package/src/04-components/{toggle → forms/toggle}/toggle-visual.png +0 -0
- /package/src/04-components/{toggle → forms/toggle}/toggle.docs.json +0 -0
- /package/src/04-components/{divider → layout/divider}/divider-visual.png +0 -0
- /package/src/04-components/{divider → layout/divider}/divider.docs.json +0 -0
- /package/src/04-components/{breadcrumb → navigation/breadcrumb}/breadcrumb-visual.png +0 -0
- /package/src/04-components/{breadcrumb → navigation/breadcrumb}/breadcrumb.docs.json +0 -0
- /package/src/04-components/{menu → navigation/menu}/menu-visual.png +0 -0
- /package/src/04-components/{menu → navigation/menu}/menu.docs.json +0 -0
- /package/src/04-components/{pagination → navigation/pagination}/pagination-visual.png +0 -0
- /package/src/04-components/{pagination → navigation/pagination}/pagination.docs.json +0 -0
- /package/src/04-components/{tabs → navigation/tabs}/tabs-visual.png +0 -0
- /package/src/04-components/{tabs → navigation/tabs}/tabs.docs.json +0 -0
- /package/src/04-components/{dialog → overlays/dialog}/dialog-visual.png +0 -0
- /package/src/04-components/{dialog → overlays/dialog}/dialog.docs.json +0 -0
- /package/src/04-components/{drawer → overlays/drawer}/drawer-visual.png +0 -0
- /package/src/04-components/{drawer → overlays/drawer}/drawer.docs.json +0 -0
- /package/src/04-components/{modal → overlays/modal}/modal-visual.png +0 -0
- /package/src/04-components/{modal → overlays/modal}/modal.docs.json +0 -0
- /package/src/04-components/{overlay → overlays/overlay}/overlay-visual.png +0 -0
- /package/src/04-components/{overlay → overlays/overlay}/overlay.docs.json +0 -0
- /package/src/04-components/{popover → overlays/popover}/popover-visual.png +0 -0
- /package/src/04-components/{popover → overlays/popover}/popover.docs.json +0 -0
- /package/src/04-components/{tooltip → overlays/tooltip}/tooltip-visual.png +0 -0
- /package/src/04-components/{tooltip → overlays/tooltip}/tooltip.docs.json +0 -0
- /package/src/04-components/{code → typography/code}/code-visual.png +0 -0
- /package/src/04-components/{code → typography/code}/code.docs.json +0 -0
- /package/src/04-components/{heading → typography/heading}/heading-visual.png +0 -0
- /package/src/04-components/{heading → typography/heading}/heading.api.json +0 -0
- /package/src/04-components/{heading → typography/heading}/heading.docs.json +0 -0
- /package/src/04-components/{link → typography/link}/link.docs.json +0 -0
|
@@ -1,7 +1,28 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "pagination",
|
|
3
3
|
"element": "div",
|
|
4
|
-
"modifiers": {
|
|
4
|
+
"modifiers": {
|
|
5
|
+
"size": {
|
|
6
|
+
"values": ["sm", "lg"]
|
|
7
|
+
}
|
|
8
|
+
},
|
|
9
|
+
"elements": {
|
|
10
|
+
"prev": {},
|
|
11
|
+
"next": {},
|
|
12
|
+
"list": {},
|
|
13
|
+
"item": {},
|
|
14
|
+
"ellipsis": {},
|
|
15
|
+
"link": {
|
|
16
|
+
"modifiers": {
|
|
17
|
+
"active": {
|
|
18
|
+
"type": "boolean"
|
|
19
|
+
},
|
|
20
|
+
"disabled": {
|
|
21
|
+
"type": "boolean"
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
},
|
|
5
26
|
"cssVars": [
|
|
6
27
|
{
|
|
7
28
|
"name": "--ui-pagination-gap",
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { resolve } from 'node:path';
|
|
2
2
|
import { expect, test } from '@playwright/test';
|
|
3
|
-
import { saveForLostPixel, setupVisualTestFromDocs, validateGridRhythm } from '
|
|
3
|
+
import { saveForLostPixel, setupVisualTestFromDocs, validateGridRhythm } from '../../../testing';
|
|
4
4
|
|
|
5
5
|
const DOCS_PATH = resolve(__dirname, 'pagination.docs.json');
|
|
6
6
|
|
|
@@ -2,6 +2,23 @@
|
|
|
2
2
|
"name": "tabs",
|
|
3
3
|
"element": "div",
|
|
4
4
|
"modifiers": {},
|
|
5
|
+
"elements": {
|
|
6
|
+
"list": {},
|
|
7
|
+
"tab": {
|
|
8
|
+
"modifiers": {
|
|
9
|
+
"active": {
|
|
10
|
+
"type": "boolean"
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
},
|
|
14
|
+
"panel": {
|
|
15
|
+
"modifiers": {
|
|
16
|
+
"active": {
|
|
17
|
+
"type": "boolean"
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
},
|
|
5
22
|
"cssVars": [
|
|
6
23
|
{
|
|
7
24
|
"name": "--ui-tabs-border-color",
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { resolve } from 'node:path';
|
|
2
2
|
import { expect, test } from '@playwright/test';
|
|
3
|
-
import { saveForLostPixel, setupVisualTestFromDocs, validateGridRhythm } from '
|
|
3
|
+
import { saveForLostPixel, setupVisualTestFromDocs, validateGridRhythm } from '../../../testing';
|
|
4
4
|
|
|
5
5
|
const DOCS_PATH = resolve(__dirname, 'tabs.docs.json');
|
|
6
6
|
|
|
@@ -1,7 +1,18 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "dialog",
|
|
3
3
|
"element": "div",
|
|
4
|
-
"modifiers": {
|
|
4
|
+
"modifiers": {
|
|
5
|
+
"borderless": {
|
|
6
|
+
"type": "boolean"
|
|
7
|
+
}
|
|
8
|
+
},
|
|
9
|
+
"elements": {
|
|
10
|
+
"header": {},
|
|
11
|
+
"title": {},
|
|
12
|
+
"close": {},
|
|
13
|
+
"body": {},
|
|
14
|
+
"footer": {}
|
|
15
|
+
},
|
|
5
16
|
"cssVars": [
|
|
6
17
|
{
|
|
7
18
|
"name": "--ui-dialog-header-padding",
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { resolve } from 'node:path';
|
|
2
2
|
import { expect, test } from '@playwright/test';
|
|
3
|
-
import { saveForLostPixel, setupVisualTestFromDocs, validateGridRhythm } from '
|
|
3
|
+
import { saveForLostPixel, setupVisualTestFromDocs, validateGridRhythm } from '../../../testing';
|
|
4
4
|
|
|
5
5
|
const DOCS_PATH = resolve(__dirname, 'dialog.docs.json');
|
|
6
6
|
|
|
@@ -1,7 +1,23 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "drawer",
|
|
3
3
|
"element": "div",
|
|
4
|
-
"modifiers": {
|
|
4
|
+
"modifiers": {
|
|
5
|
+
"position": {
|
|
6
|
+
"values": ["start", "end", "top", "bottom"]
|
|
7
|
+
},
|
|
8
|
+
"size": {
|
|
9
|
+
"values": ["sm", "lg"]
|
|
10
|
+
}
|
|
11
|
+
},
|
|
12
|
+
"elements": {
|
|
13
|
+
"header": {},
|
|
14
|
+
"title": {},
|
|
15
|
+
"description": {},
|
|
16
|
+
"close": {},
|
|
17
|
+
"body": {},
|
|
18
|
+
"footer": {}
|
|
19
|
+
},
|
|
20
|
+
"relatedComponents": ["drawer-overlay"],
|
|
5
21
|
"cssVars": [
|
|
6
22
|
{
|
|
7
23
|
"name": "--ui-drawer-size",
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { resolve } from 'node:path';
|
|
2
2
|
import { expect, test } from '@playwright/test';
|
|
3
|
-
import { saveForLostPixel, setupVisualTestFromDocs, validateGridRhythm } from '
|
|
3
|
+
import { saveForLostPixel, setupVisualTestFromDocs, validateGridRhythm } from '../../../testing';
|
|
4
4
|
|
|
5
5
|
const DOCS_PATH = resolve(__dirname, 'drawer.docs.json');
|
|
6
6
|
|
|
@@ -1,7 +1,18 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "modal",
|
|
3
3
|
"element": "div",
|
|
4
|
-
"modifiers": {
|
|
4
|
+
"modifiers": {
|
|
5
|
+
"visible": {
|
|
6
|
+
"type": "boolean"
|
|
7
|
+
},
|
|
8
|
+
"size": {
|
|
9
|
+
"values": ["sm"]
|
|
10
|
+
}
|
|
11
|
+
},
|
|
12
|
+
"elements": {
|
|
13
|
+
"content": {},
|
|
14
|
+
"body": {}
|
|
15
|
+
},
|
|
5
16
|
"cssVars": [
|
|
6
17
|
{
|
|
7
18
|
"name": "--ui-modal-bg",
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { resolve } from 'node:path';
|
|
2
2
|
import { expect, test } from '@playwright/test';
|
|
3
|
-
import { saveForLostPixel, setupVisualTestFromDocs, validateGridRhythm } from '
|
|
3
|
+
import { saveForLostPixel, setupVisualTestFromDocs, validateGridRhythm } from '../../../testing';
|
|
4
4
|
|
|
5
5
|
const DOCS_PATH = resolve(__dirname, 'modal.docs.json');
|
|
6
6
|
|
|
@@ -1,7 +1,20 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "overlay",
|
|
3
3
|
"element": "div",
|
|
4
|
-
"modifiers": {
|
|
4
|
+
"modifiers": {
|
|
5
|
+
"light": {
|
|
6
|
+
"type": "boolean"
|
|
7
|
+
},
|
|
8
|
+
"blur": {
|
|
9
|
+
"type": "boolean"
|
|
10
|
+
},
|
|
11
|
+
"animate": {
|
|
12
|
+
"type": "boolean"
|
|
13
|
+
},
|
|
14
|
+
"visible": {
|
|
15
|
+
"type": "boolean"
|
|
16
|
+
}
|
|
17
|
+
},
|
|
5
18
|
"cssVars": [
|
|
6
19
|
{
|
|
7
20
|
"name": "--ui-overlay-bg",
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { resolve } from 'node:path';
|
|
2
2
|
import { expect, test } from '@playwright/test';
|
|
3
|
-
import { saveForLostPixel, setupVisualTestFromDocs, validateGridRhythm } from '
|
|
3
|
+
import { saveForLostPixel, setupVisualTestFromDocs, validateGridRhythm } from '../../../testing';
|
|
4
4
|
|
|
5
5
|
const DOCS_PATH = resolve(__dirname, 'overlay.docs.json');
|
|
6
6
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { resolve } from 'node:path';
|
|
2
2
|
import { expect, test } from '@playwright/test';
|
|
3
|
-
import { saveForLostPixel, setupVisualTestFromDocs, validateGridRhythm } from '
|
|
3
|
+
import { saveForLostPixel, setupVisualTestFromDocs, validateGridRhythm } from '../../../testing';
|
|
4
4
|
|
|
5
5
|
const DOCS_PATH = resolve(__dirname, 'popover.docs.json');
|
|
6
6
|
|
|
@@ -1,7 +1,17 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "tooltip",
|
|
3
3
|
"element": "div",
|
|
4
|
-
"modifiers": {
|
|
4
|
+
"modifiers": {
|
|
5
|
+
"position": {
|
|
6
|
+
"values": ["top", "bottom", "start", "end"]
|
|
7
|
+
},
|
|
8
|
+
"animate": {
|
|
9
|
+
"type": "boolean"
|
|
10
|
+
},
|
|
11
|
+
"visible": {
|
|
12
|
+
"type": "boolean"
|
|
13
|
+
}
|
|
14
|
+
},
|
|
5
15
|
"cssVars": [
|
|
6
16
|
{
|
|
7
17
|
"name": "--ui-tooltip-bg",
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { resolve } from 'node:path';
|
|
2
2
|
import { expect, test } from '@playwright/test';
|
|
3
|
-
import { saveForLostPixel, setupVisualTestFromDocs, validateGridRhythm } from '
|
|
3
|
+
import { saveForLostPixel, setupVisualTestFromDocs, validateGridRhythm } from '../../../testing';
|
|
4
4
|
|
|
5
5
|
const DOCS_PATH = resolve(__dirname, 'tooltip.docs.json');
|
|
6
6
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { resolve } from 'node:path';
|
|
2
2
|
import { expect, test } from '@playwright/test';
|
|
3
|
-
import { saveForLostPixel, setupVisualTestFromDocs, validateGridRhythm } from '
|
|
3
|
+
import { saveForLostPixel, setupVisualTestFromDocs, validateGridRhythm } from '../../../testing';
|
|
4
4
|
|
|
5
5
|
const DOCS_PATH = resolve(__dirname, 'code.docs.json');
|
|
6
6
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { resolve } from 'node:path';
|
|
2
2
|
import { expect, test } from '@playwright/test';
|
|
3
|
-
import { saveForLostPixel, setupVisualTestFromDocs, validateGridRhythm } from '
|
|
3
|
+
import { saveForLostPixel, setupVisualTestFromDocs, validateGridRhythm } from '../../../testing';
|
|
4
4
|
|
|
5
5
|
const DOCS_PATH = resolve(__dirname, 'heading.docs.json');
|
|
6
6
|
|
|
Binary file
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { resolve } from 'node:path';
|
|
2
2
|
import { expect, test } from '@playwright/test';
|
|
3
|
-
import { saveForLostPixel, setupVisualTestFromDocs, validateGridRhythm } from '
|
|
3
|
+
import { saveForLostPixel, setupVisualTestFromDocs, validateGridRhythm } from '../../../testing';
|
|
4
4
|
|
|
5
5
|
const DOCS_PATH = resolve(__dirname, 'link.docs.json');
|
|
6
6
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
|
|
1
|
+
// Debug grid overlay - add class="debug-grid" to body or any container
|
|
2
2
|
.debug-grid,
|
|
3
3
|
.debug-grid-rows,
|
|
4
4
|
.debug-baseline {
|
|
@@ -6,7 +6,8 @@
|
|
|
6
6
|
}
|
|
7
7
|
|
|
8
8
|
.debug-grid {
|
|
9
|
-
|
|
9
|
+
// Fallback hue 220 (blue) when --ui-hue-primary not set
|
|
10
|
+
--debug-color: hsl(var(--ui-hue-primary, 220) 80% 50% / 0.15);
|
|
10
11
|
}
|
|
11
12
|
|
|
12
13
|
.debug-grid::after {
|
|
@@ -27,10 +28,10 @@
|
|
|
27
28
|
background-position: 0 0;
|
|
28
29
|
}
|
|
29
30
|
|
|
30
|
-
|
|
31
|
+
// Stronger grid at row intervals
|
|
31
32
|
.debug-grid-rows {
|
|
32
|
-
--debug-color: hsl(var(--ui-hue-primary) 80% 50% / 0.1);
|
|
33
|
-
--debug-color-strong: hsl(var(--ui-hue-primary) 80% 50% / 0.25);
|
|
33
|
+
--debug-color: hsl(var(--ui-hue-primary, 220) 80% 50% / 0.1);
|
|
34
|
+
--debug-color-strong: hsl(var(--ui-hue-primary, 220) 80% 50% / 0.25);
|
|
34
35
|
}
|
|
35
36
|
|
|
36
37
|
.debug-grid-rows::after {
|
|
@@ -52,9 +53,9 @@
|
|
|
52
53
|
background-position: 0 0;
|
|
53
54
|
}
|
|
54
55
|
|
|
55
|
-
|
|
56
|
+
// Baseline grid only (horizontal lines)
|
|
56
57
|
.debug-baseline {
|
|
57
|
-
--debug-color: hsl(var(--ui-hue-danger) 80% 50% / 0.2);
|
|
58
|
+
--debug-color: hsl(var(--ui-hue-danger, 0) 80% 50% / 0.2);
|
|
58
59
|
}
|
|
59
60
|
|
|
60
61
|
.debug-baseline::after {
|
|
@@ -73,7 +74,7 @@
|
|
|
73
74
|
background-size: 100% var(--unit);
|
|
74
75
|
}
|
|
75
76
|
|
|
76
|
-
|
|
77
|
+
// Element boundaries outline
|
|
77
78
|
.debug-outline * {
|
|
78
79
|
outline: 1px solid hsl(0 100% 50% / 0.5);
|
|
79
80
|
}
|
|
@@ -9,9 +9,11 @@ import { scaffoldCss } from './scaffold';
|
|
|
9
9
|
|
|
10
10
|
interface DocsItem {
|
|
11
11
|
tag: string;
|
|
12
|
-
class
|
|
13
|
-
text
|
|
12
|
+
class?: string;
|
|
13
|
+
text?: string;
|
|
14
14
|
attrs?: Record<string, string>;
|
|
15
|
+
style?: Record<string, string>;
|
|
16
|
+
children?: DocsItem[];
|
|
15
17
|
}
|
|
16
18
|
|
|
17
19
|
interface DocsExample {
|
|
@@ -41,13 +43,27 @@ export function loadComponentApi(apiPath: string): ComponentAPI {
|
|
|
41
43
|
}
|
|
42
44
|
|
|
43
45
|
function renderItem(item: DocsItem): string {
|
|
44
|
-
const
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
46
|
+
const parts: string[] = [];
|
|
47
|
+
|
|
48
|
+
if (item.class) parts.push(`class="${item.class}"`);
|
|
49
|
+
|
|
50
|
+
if (item.style) {
|
|
51
|
+
const css = Object.entries(item.style)
|
|
52
|
+
.map(([k, v]) => `${k}: ${v}`)
|
|
53
|
+
.join('; ');
|
|
54
|
+
parts.push(`style="${css}"`);
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
if (item.attrs) {
|
|
58
|
+
for (const [k, v] of Object.entries(item.attrs)) {
|
|
59
|
+
parts.push(v === '' ? k : `${k}="${v}"`);
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
const attrStr = parts.length ? ` ${parts.join(' ')}` : '';
|
|
64
|
+
const content = item.children ? item.children.map(renderItem).join('\n') : (item.text ?? '');
|
|
65
|
+
|
|
66
|
+
return `<${item.tag}${attrStr}>${content}</${item.tag}>`;
|
|
51
67
|
}
|
|
52
68
|
|
|
53
69
|
export function loadDocsJson(docsPath: string): DocsJson {
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
import { expect, test } from '@playwright/test';
|
|
2
|
+
|
|
3
|
+
// Needs docs server running at localhost:3000
|
|
4
|
+
test.skip(!!process.env.CI, 'Sidebar toggle test requires docs server');
|
|
5
|
+
|
|
6
|
+
test.describe('sidebar toggle buttons', () => {
|
|
7
|
+
test.beforeEach(async ({ page }) => {
|
|
8
|
+
await page.goto('/');
|
|
9
|
+
// Clear sessionStorage/localStorage to start fresh
|
|
10
|
+
await page.evaluate(() => {
|
|
11
|
+
sessionStorage.clear();
|
|
12
|
+
localStorage.clear();
|
|
13
|
+
});
|
|
14
|
+
await page.reload();
|
|
15
|
+
});
|
|
16
|
+
|
|
17
|
+
test('all buttons start with aria-pressed=false', async ({ page }) => {
|
|
18
|
+
const buttons = page.locator('.ui-sidebar-nav__footer button[aria-pressed]');
|
|
19
|
+
const count = await buttons.count();
|
|
20
|
+
expect(count).toBe(5);
|
|
21
|
+
for (let i = 0; i < count; i++) {
|
|
22
|
+
await expect(buttons.nth(i)).toHaveAttribute('aria-pressed', 'false');
|
|
23
|
+
}
|
|
24
|
+
});
|
|
25
|
+
|
|
26
|
+
test('debug grid toggle adds class and sets aria-pressed', async ({ page }) => {
|
|
27
|
+
const btn = page.locator('button', { hasText: 'Toggle Grid' }).first();
|
|
28
|
+
await btn.click();
|
|
29
|
+
await expect(btn).toHaveAttribute('aria-pressed', 'true');
|
|
30
|
+
const hasClass = await page.evaluate(() => document.body.classList.contains('ui-debug-grid'));
|
|
31
|
+
expect(hasClass).toBe(true);
|
|
32
|
+
|
|
33
|
+
// Toggle off
|
|
34
|
+
await btn.click();
|
|
35
|
+
await expect(btn).toHaveAttribute('aria-pressed', 'false');
|
|
36
|
+
const removed = await page.evaluate(() => !document.body.classList.contains('ui-debug-grid'));
|
|
37
|
+
expect(removed).toBe(true);
|
|
38
|
+
});
|
|
39
|
+
|
|
40
|
+
test('debug grid overlay renders background-image', async ({ page }) => {
|
|
41
|
+
const btn = page.locator('button', { hasText: 'Toggle Grid' }).first();
|
|
42
|
+
await btn.click();
|
|
43
|
+
|
|
44
|
+
const bg = await page.evaluate(() => {
|
|
45
|
+
return window.getComputedStyle(document.body, '::after').backgroundImage;
|
|
46
|
+
});
|
|
47
|
+
expect(bg).not.toBe('none');
|
|
48
|
+
});
|
|
49
|
+
|
|
50
|
+
test('debug baseline toggle works', async ({ page }) => {
|
|
51
|
+
const btn = page.locator('button', { hasText: 'Toggle Baseline' });
|
|
52
|
+
await btn.click();
|
|
53
|
+
await expect(btn).toHaveAttribute('aria-pressed', 'true');
|
|
54
|
+
const hasClass = await page.evaluate(() =>
|
|
55
|
+
document.body.classList.contains('ui-debug-baseline'),
|
|
56
|
+
);
|
|
57
|
+
expect(hasClass).toBe(true);
|
|
58
|
+
});
|
|
59
|
+
|
|
60
|
+
test('debug outline toggle adds outlines to children', async ({ page }) => {
|
|
61
|
+
const btn = page.locator('button', { hasText: 'Toggle Outlines' });
|
|
62
|
+
await btn.click();
|
|
63
|
+
await expect(btn).toHaveAttribute('aria-pressed', 'true');
|
|
64
|
+
const outlineStyle = await page.evaluate(() => {
|
|
65
|
+
const el = document.querySelector('.ui-main');
|
|
66
|
+
return el ? window.getComputedStyle(el).outlineStyle : '';
|
|
67
|
+
});
|
|
68
|
+
expect(outlineStyle).toBe('solid');
|
|
69
|
+
});
|
|
70
|
+
|
|
71
|
+
test('dark mode toggle sets data-theme and aria-pressed', async ({ page }) => {
|
|
72
|
+
const btn = page.locator('#theme-toggle');
|
|
73
|
+
await expect(btn).toHaveAttribute('aria-pressed', 'false');
|
|
74
|
+
|
|
75
|
+
await btn.click();
|
|
76
|
+
await expect(btn).toHaveAttribute('aria-pressed', 'true');
|
|
77
|
+
await expect(btn).toHaveText('Light Mode');
|
|
78
|
+
const theme = await page.evaluate(() => document.documentElement.getAttribute('data-theme'));
|
|
79
|
+
expect(theme).toBe('dark');
|
|
80
|
+
|
|
81
|
+
await btn.click();
|
|
82
|
+
await expect(btn).toHaveAttribute('aria-pressed', 'false');
|
|
83
|
+
await expect(btn).toHaveText('Dark Mode');
|
|
84
|
+
});
|
|
85
|
+
|
|
86
|
+
test('debug state persists across page loads', async ({ page }) => {
|
|
87
|
+
// Enable grid
|
|
88
|
+
const gridBtn = page.locator('button', { hasText: 'Toggle Grid' }).first();
|
|
89
|
+
await gridBtn.click();
|
|
90
|
+
await expect(gridBtn).toHaveAttribute('aria-pressed', 'true');
|
|
91
|
+
|
|
92
|
+
// Reload page
|
|
93
|
+
await page.reload();
|
|
94
|
+
|
|
95
|
+
// Body should still have the class
|
|
96
|
+
const hasClass = await page.evaluate(() => document.body.classList.contains('ui-debug-grid'));
|
|
97
|
+
expect(hasClass).toBe(true);
|
|
98
|
+
|
|
99
|
+
// Button should reflect the restored state
|
|
100
|
+
const restoredBtn = page.locator('button', { hasText: 'Toggle Grid' }).first();
|
|
101
|
+
await expect(restoredBtn).toHaveAttribute('aria-pressed', 'true');
|
|
102
|
+
});
|
|
103
|
+
});
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|