@teseor/css 1.8.0 → 1.9.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/dist/compiled.css +1 -1
- package/dist/index.css +115 -115
- package/package.json +1 -1
- package/src/components/actions/button/button.api.json +29 -32
- package/src/components/actions/button/index.scss +36 -11
- package/src/components/actions/button-group/button-group.api.json +3 -1
- package/src/components/actions/button-group/index.scss +4 -0
- package/src/components/actions/close-button/close-button.api.json +31 -18
- package/src/components/actions/close-button/index.scss +26 -6
- package/src/components/content/divider/divider.api.json +12 -7
- package/src/components/content/divider/index.scss +11 -4
- package/src/components/content/scroll-area/index.scss +15 -1
- package/src/components/content/scroll-area/scroll-area-visual.png +0 -0
- package/src/components/content/scroll-area/scroll-area.api.json +33 -22
- package/src/components/content/scroll-area/scroll-area.docs.json +70 -1
- package/src/components/content/spacer/index.scss +6 -1
- package/src/components/content/spacer/spacer.api.json +8 -1
- package/src/components/data-display/avatar/avatar.api.json +36 -17
- package/src/components/data-display/avatar/index.scss +20 -2
- package/src/components/data-display/badge/badge.api.json +30 -48
- package/src/components/data-display/badge/index.scss +13 -0
- package/src/components/data-display/card/card.api.json +21 -23
- package/src/components/data-display/card/index.scss +19 -4
- package/src/components/data-display/data-list/data-list.api.json +9 -4
- package/src/components/data-display/data-list/index.scss +28 -11
- package/src/components/data-display/icon/icon.api.json +11 -22
- package/src/components/data-display/icon/index.scss +9 -4
- package/src/components/data-display/image/image.api.json +40 -26
- package/src/components/data-display/image/image.docs.json +1 -1
- package/src/components/data-display/image/index.scss +15 -1
- package/src/components/data-display/stat/index.scss +13 -1
- package/src/components/data-display/stat/stat.api.json +45 -7
- package/src/components/data-display/status/index.scss +8 -0
- package/src/components/data-display/status/status.api.json +10 -6
- package/src/components/data-display/table/index.scss +20 -6
- package/src/components/data-display/table/table.api.json +11 -5
- package/src/components/data-display/tag/index.scss +28 -3
- package/src/components/data-display/tag/tag.api.json +48 -22
- package/src/components/disclosure/accordion/accordion.api.json +7 -3
- package/src/components/disclosure/accordion/index.scss +8 -2
- package/src/components/disclosure/disclosure/disclosure.api.json +15 -8
- package/src/components/disclosure/disclosure/index.scss +21 -6
- package/src/components/feedback/alert/alert.api.json +40 -65
- package/src/components/feedback/alert/index.scss +26 -7
- package/src/components/feedback/progress/index.scss +16 -3
- package/src/components/feedback/progress/progress.api.json +13 -8
- package/src/components/feedback/progress-circle/index.scss +15 -2
- package/src/components/feedback/progress-circle/progress-circle.api.json +17 -8
- package/src/components/feedback/skeleton/index.scss +9 -2
- package/src/components/feedback/skeleton/skeleton.api.json +8 -4
- package/src/components/feedback/spinner/index.scss +14 -1
- package/src/components/feedback/spinner/spinner.api.json +27 -13
- package/src/components/feedback/toast/index.scss +39 -15
- package/src/components/feedback/toast/toast.api.json +39 -13
- package/src/components/forms/checkbox/checkbox.api.json +22 -11
- package/src/components/forms/checkbox/index.scss +27 -9
- package/src/components/forms/checkbox-group/checkbox-group.api.json +33 -14
- package/src/components/forms/checkbox-group/index.scss +22 -5
- package/src/components/forms/field/field.api.json +5 -3
- package/src/components/forms/field/index.scss +4 -0
- package/src/components/forms/fieldset/fieldset.api.json +29 -10
- package/src/components/forms/fieldset/index.scss +21 -4
- package/src/components/forms/form/form.api.json +15 -11
- package/src/components/forms/form/index.scss +10 -0
- package/src/components/forms/form-error/form-error.api.json +7 -3
- package/src/components/forms/form-error/index.scss +7 -1
- package/src/components/forms/form-helper/form-helper.api.json +7 -3
- package/src/components/forms/form-helper/index.scss +7 -1
- package/src/components/forms/input/index.scss +43 -12
- package/src/components/forms/input/input.api.json +36 -38
- package/src/components/forms/label/index.scss +14 -5
- package/src/components/forms/label/label.api.json +9 -4
- package/src/components/forms/number-input/index.scss +40 -15
- package/src/components/forms/number-input/number-input-visual.png +0 -0
- package/src/components/forms/number-input/number-input.api.json +48 -19
- package/src/components/forms/number-input/number-input.docs.json +49 -0
- package/src/components/forms/password-input/index.scss +44 -13
- package/src/components/forms/password-input/password-input-visual.png +0 -0
- package/src/components/forms/password-input/password-input.api.json +56 -25
- package/src/components/forms/password-input/password-input.docs.json +40 -0
- package/src/components/forms/radio/index.scss +27 -10
- package/src/components/forms/radio/radio.api.json +20 -10
- package/src/components/forms/radio-group/index.scss +22 -5
- package/src/components/forms/radio-group/radio-group.api.json +33 -14
- package/src/components/forms/search-input/index.scss +42 -11
- package/src/components/forms/search-input/search-input-visual.png +0 -0
- package/src/components/forms/search-input/search-input.api.json +66 -25
- package/src/components/forms/search-input/search-input.docs.json +36 -0
- package/src/components/forms/select/index.scss +40 -11
- package/src/components/forms/select/select.api.json +35 -17
- package/src/components/forms/slider/index.scss +28 -10
- package/src/components/forms/slider/slider.api.json +35 -20
- package/src/components/forms/textarea/index.scss +40 -9
- package/src/components/forms/textarea/textarea.api.json +40 -20
- package/src/components/forms/toggle/index.scss +18 -6
- package/src/components/forms/toggle/toggle.api.json +17 -8
- package/src/components/navigation/breadcrumb/breadcrumb.api.json +25 -11
- package/src/components/navigation/breadcrumb/index.scss +17 -4
- package/src/components/navigation/dropdown-menu/dropdown-menu-visual.png +0 -0
- package/src/components/navigation/dropdown-menu/dropdown-menu.api.json +7 -3
- package/src/components/navigation/dropdown-menu/dropdown-menu.docs.json +18 -0
- package/src/components/navigation/dropdown-menu/index.scss +15 -5
- package/src/components/navigation/menu/index.scss +41 -17
- package/src/components/navigation/menu/menu.api.json +24 -13
- package/src/components/navigation/nav/index.scss +30 -11
- package/src/components/navigation/nav/nav.api.json +42 -18
- package/src/components/navigation/pagination/index.scss +21 -5
- package/src/components/navigation/pagination/pagination.api.json +21 -12
- package/src/components/navigation/tabs/index.scss +43 -15
- package/src/components/navigation/tabs/tabs.api.json +49 -22
- package/src/components/overlays/dialog/dialog.api.json +9 -4
- package/src/components/overlays/dialog/index.scss +12 -3
- package/src/components/overlays/drawer/drawer-visual.png +0 -0
- package/src/components/overlays/drawer/drawer.api.json +26 -13
- package/src/components/overlays/drawer/index.scss +51 -26
- package/src/components/overlays/modal/index.scss +18 -3
- package/src/components/overlays/modal/modal.api.json +22 -12
- package/src/components/overlays/overlay/index.scss +17 -5
- package/src/components/overlays/overlay/overlay.api.json +11 -6
- package/src/components/overlays/popover/index.scss +26 -9
- package/src/components/overlays/popover/popover.api.json +18 -9
- package/src/components/overlays/tooltip/index.scss +17 -2
- package/src/components/overlays/tooltip/tooltip.api.json +19 -10
- package/src/components/typography/blockquote/blockquote.api.json +34 -7
- package/src/components/typography/blockquote/index.scss +17 -4
- package/src/components/typography/code/code.api.json +26 -11
- package/src/components/typography/code/index.scss +23 -6
- package/src/components/typography/code-block/code-block-visual.png +0 -0
- package/src/components/typography/code-block/code-block.api.json +31 -12
- package/src/components/typography/code-block/code-block.docs.json +18 -0
- package/src/components/typography/code-block/index.scss +26 -7
- package/src/components/typography/heading/heading.api.json +37 -18
- package/src/components/typography/heading/index.scss +18 -0
- package/src/components/typography/kbd/index.scss +14 -2
- package/src/components/typography/kbd/kbd.api.json +41 -8
- package/src/components/typography/link/index.scss +16 -3
- package/src/components/typography/link/link.api.json +17 -9
- package/src/components/typography/list/index.scss +7 -0
- package/src/components/typography/list/list.api.json +12 -7
- package/src/components/typography/list/list.docs.json +3 -0
- package/src/components/typography/mark/index.scss +7 -0
- package/src/components/typography/mark/mark.api.json +26 -5
- package/src/config/tokens/_variables.scss +44 -0
- package/src/config/tokens/motion/index.scss +2 -0
- package/src/config/tokens/zindex/index.scss +1 -0
- package/src/debug/grid-overlay.scss +4 -3
- package/src/layout/app-shell/app-shell-visual.png +0 -0
- package/src/layout/app-shell/app-shell.api.json +6 -26
- package/src/layout/app-shell/app-shell.docs.json +18 -0
- package/src/layout/app-shell/index.scss +4 -0
- package/src/layout/aspect-ratio/aspect-ratio.api.json +2 -7
- package/src/layout/aspect-ratio/index.scss +4 -0
- package/src/layout/box/box.api.json +25 -8
- package/src/layout/box/index.scss +26 -8
- package/src/layout/center/center.api.json +1 -0
- package/src/layout/center/index.scss +3 -0
- package/src/layout/column/column.api.json +2 -1
- package/src/layout/column/index.scss +15 -6
- package/src/layout/container/container.api.json +4 -3
- package/src/layout/container/index.scss +13 -6
- package/src/layout/content/content.api.json +7 -3
- package/src/layout/content/index.scss +10 -1
- package/src/layout/footer/footer-visual.png +0 -0
- package/src/layout/footer/footer.api.json +11 -5
- package/src/layout/footer/footer.docs.json +9 -0
- package/src/layout/footer/index.scss +21 -5
- package/src/layout/grid/grid.api.json +2 -1
- package/src/layout/grid/index.scss +6 -1
- package/src/layout/main/index.scss +8 -2
- package/src/layout/main/main.api.json +1 -0
- package/src/layout/nav-rail/index.scss +14 -3
- package/src/layout/nav-rail/nav-rail.api.json +11 -5
- package/src/layout/page-header/index.scss +21 -6
- package/src/layout/page-header/page-header.api.json +9 -4
- package/src/layout/row/index.scss +13 -5
- package/src/layout/row/row.api.json +2 -1
- package/src/layout/sidebar/index.scss +18 -8
- package/src/layout/sidebar/sidebar.api.json +1 -0
- package/src/layout/sidebar/sidebar.docs.json +2 -1
- package/src/layout/sidebar-nav/index.scss +56 -18
- package/src/layout/sidebar-nav/sidebar-nav.api.json +90 -11
- package/src/layout/topbar/index.scss +20 -5
- package/src/layout/topbar/topbar.api.json +11 -5
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
+
"$schema": "Auto-generated from index.scss annotations. Do not edit manually — run: pnpm generate:api",
|
|
2
3
|
"name": "field",
|
|
3
4
|
"element": "div",
|
|
4
5
|
"modifiers": {
|
|
@@ -7,13 +8,14 @@
|
|
|
7
8
|
}
|
|
8
9
|
},
|
|
9
10
|
"elements": {
|
|
10
|
-
"
|
|
11
|
-
"
|
|
11
|
+
"control": {},
|
|
12
|
+
"label": {}
|
|
12
13
|
},
|
|
13
14
|
"cssVars": [
|
|
14
15
|
{
|
|
15
16
|
"name": "--ui-field-gap",
|
|
16
|
-
"default": "0"
|
|
17
|
+
"default": "0",
|
|
18
|
+
"description": "Gap between children"
|
|
17
19
|
}
|
|
18
20
|
]
|
|
19
21
|
}
|
|
@@ -1,10 +1,13 @@
|
|
|
1
1
|
@use '../../../config/tokens/variables' as t;
|
|
2
|
+
// @component field
|
|
3
|
+
// @element div
|
|
2
4
|
|
|
3
5
|
// Field - form field wrapper
|
|
4
6
|
// Combines label, control, helper text, and error message
|
|
5
7
|
|
|
6
8
|
@layer components.tokens {
|
|
7
9
|
.field {
|
|
10
|
+
// @desc Gap between children
|
|
8
11
|
--_gap: var(--ui-field-gap, 0);
|
|
9
12
|
}
|
|
10
13
|
}
|
|
@@ -23,6 +26,7 @@
|
|
|
23
26
|
}
|
|
24
27
|
|
|
25
28
|
// Horizontal layout variant
|
|
29
|
+
// @modifier boolean horizontal
|
|
26
30
|
.field--horizontal {
|
|
27
31
|
flex-direction: row;
|
|
28
32
|
flex-wrap: wrap;
|
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
{
|
|
2
|
+
"$schema": "Auto-generated from index.scss annotations. Do not edit manually — run: pnpm generate:api",
|
|
2
3
|
"name": "fieldset",
|
|
3
4
|
"element": "fieldset",
|
|
4
5
|
"modifiers": {
|
|
5
|
-
"
|
|
6
|
+
"compact": {
|
|
6
7
|
"type": "boolean"
|
|
7
8
|
},
|
|
8
|
-
"
|
|
9
|
+
"bordered": {
|
|
9
10
|
"type": "boolean"
|
|
10
11
|
}
|
|
11
12
|
},
|
|
@@ -15,35 +16,53 @@
|
|
|
15
16
|
"cssVars": [
|
|
16
17
|
{
|
|
17
18
|
"name": "--ui-fieldset-spacing",
|
|
18
|
-
"default": "var(--ui-space-2)"
|
|
19
|
+
"default": "var(--ui-space-2)",
|
|
20
|
+
"description": "Spacing"
|
|
19
21
|
},
|
|
20
22
|
{
|
|
21
23
|
"name": "--ui-fieldset-border-color",
|
|
22
|
-
"default": "var(--ui-color-border)"
|
|
24
|
+
"default": "var(--ui-color-border)",
|
|
25
|
+
"description": "Border color"
|
|
23
26
|
},
|
|
24
27
|
{
|
|
25
28
|
"name": "--ui-fieldset-border-width",
|
|
26
|
-
"default": "var(--ui-border-width-sm)"
|
|
29
|
+
"default": "var(--ui-border-width-sm)",
|
|
30
|
+
"description": "Border thickness"
|
|
27
31
|
},
|
|
28
32
|
{
|
|
29
33
|
"name": "--ui-fieldset-border-radius",
|
|
30
|
-
"default": "var(--ui-radius-md)"
|
|
34
|
+
"default": "var(--ui-radius-md)",
|
|
35
|
+
"description": "Border radius"
|
|
31
36
|
},
|
|
32
37
|
{
|
|
33
38
|
"name": "--ui-fieldset-padding",
|
|
34
|
-
"default": "var(--ui-space-2)"
|
|
39
|
+
"default": "var(--ui-space-2)",
|
|
40
|
+
"description": "Padding on all sides"
|
|
35
41
|
},
|
|
36
42
|
{
|
|
37
43
|
"name": "--ui-fieldset-legend-size",
|
|
38
|
-
"default": "var(--ui-font-size-sm)"
|
|
44
|
+
"default": "var(--ui-font-size-sm)",
|
|
45
|
+
"description": "Legend size"
|
|
39
46
|
},
|
|
40
47
|
{
|
|
41
48
|
"name": "--ui-fieldset-legend-weight",
|
|
42
|
-
"default": "var(--ui-weight-medium)"
|
|
49
|
+
"default": "var(--ui-weight-medium)",
|
|
50
|
+
"description": "Legend weight"
|
|
43
51
|
},
|
|
44
52
|
{
|
|
45
53
|
"name": "--ui-fieldset-legend-color",
|
|
46
|
-
"default": "var(--ui-color-text)"
|
|
54
|
+
"default": "var(--ui-color-text)",
|
|
55
|
+
"description": "Legend color"
|
|
56
|
+
},
|
|
57
|
+
{
|
|
58
|
+
"name": "--ui-fieldset-spacing-compact",
|
|
59
|
+
"default": "var(--ui-space-1)",
|
|
60
|
+
"description": "Spacing compact"
|
|
61
|
+
},
|
|
62
|
+
{
|
|
63
|
+
"name": "--ui-fieldset-padding-compact",
|
|
64
|
+
"default": "var(--ui-space-1)",
|
|
65
|
+
"description": "Padding compact"
|
|
47
66
|
}
|
|
48
67
|
]
|
|
49
68
|
}
|
|
@@ -1,22 +1,38 @@
|
|
|
1
1
|
@use '../../../config/tokens/variables' as t;
|
|
2
|
+
// @component fieldset
|
|
3
|
+
// @element fieldset
|
|
2
4
|
|
|
3
5
|
// Fieldset - groups related form fields
|
|
4
6
|
// Resets native fieldset chrome, provides consistent spacing and optional border
|
|
5
7
|
|
|
6
8
|
@layer components.tokens {
|
|
7
9
|
.fieldset {
|
|
10
|
+
--_leading-tight-sm: var(--ui-leading-tight-sm, var(--ui-row-1, #{t.$leading-tight-sm}));
|
|
11
|
+
--_space-half: var(--ui-space-half, #{t.$space-0});
|
|
12
|
+
--_opacity-disabled: var(--ui-opacity-disabled, #{t.$opacity-disabled});
|
|
13
|
+
// @desc Spacing
|
|
8
14
|
--_spacing: var(--ui-fieldset-spacing, var(--ui-space-2, #{t.$space-2}));
|
|
15
|
+
// @desc Border color
|
|
9
16
|
--_border-color: var(--ui-fieldset-border-color, var(--ui-color-border, #{t.$color-border}));
|
|
17
|
+
// @desc Border thickness
|
|
10
18
|
--_border-width: var(--ui-fieldset-border-width, var(--ui-border-width-sm, #{t.$border-width-sm}));
|
|
19
|
+
// @desc Border radius
|
|
11
20
|
--_border-radius: var(--ui-fieldset-border-radius, var(--ui-radius-md, #{t.$radius-md}));
|
|
21
|
+
// @desc Padding on all sides
|
|
12
22
|
--_padding: var(--ui-fieldset-padding, var(--ui-space-2, #{t.$space-2}));
|
|
23
|
+
// @desc Legend size
|
|
13
24
|
--_legend-size: var(--ui-fieldset-legend-size, var(--ui-font-size-sm, #{t.$font-size-sm}));
|
|
25
|
+
// @desc Legend weight
|
|
14
26
|
--_legend-weight: var(--ui-fieldset-legend-weight, var(--ui-weight-medium, #{t.$weight-medium}));
|
|
27
|
+
// @desc Legend color
|
|
15
28
|
--_legend-color: var(--ui-fieldset-legend-color, var(--ui-color-text, #{t.$color-text}));
|
|
16
29
|
}
|
|
17
30
|
|
|
31
|
+
// @modifier boolean compact
|
|
18
32
|
.fieldset--compact {
|
|
33
|
+
// @desc Spacing compact
|
|
19
34
|
--_spacing: var(--ui-fieldset-spacing-compact, var(--ui-space-1, #{t.$space-1}));
|
|
35
|
+
// @desc Padding compact
|
|
20
36
|
--_padding: var(--ui-fieldset-padding-compact, var(--ui-space-1, #{t.$space-1}));
|
|
21
37
|
}
|
|
22
38
|
}
|
|
@@ -40,12 +56,13 @@
|
|
|
40
56
|
|
|
41
57
|
font-size: var(--_legend-size);
|
|
42
58
|
font-weight: var(--_legend-weight);
|
|
43
|
-
line-height: var(--
|
|
59
|
+
line-height: var(--_leading-tight-sm);
|
|
44
60
|
color: var(--_legend-color);
|
|
45
61
|
}
|
|
46
62
|
|
|
47
63
|
// Bordered variant - visible border wrapping the group
|
|
48
64
|
// Legend absorbs the top border; compensate bottom border to keep grid rhythm
|
|
65
|
+
// @modifier boolean bordered
|
|
49
66
|
.fieldset--bordered {
|
|
50
67
|
padding: var(--_padding);
|
|
51
68
|
padding-block-end: calc(var(--_padding) - var(--_border-width));
|
|
@@ -56,14 +73,14 @@
|
|
|
56
73
|
|
|
57
74
|
.fieldset--bordered > .fieldset__legend {
|
|
58
75
|
inline-size: auto;
|
|
59
|
-
padding-inline: var(--
|
|
60
|
-
margin-inline-start: calc(-1 * var(--
|
|
76
|
+
padding-inline: var(--_space-half);
|
|
77
|
+
margin-inline-start: calc(-1 * var(--_space-half));
|
|
61
78
|
}
|
|
62
79
|
|
|
63
80
|
// Disabled state - fieldset[disabled] natively disables children
|
|
64
81
|
.fieldset:disabled,
|
|
65
82
|
.fieldset[aria-disabled='true'] {
|
|
66
|
-
opacity: var(--
|
|
83
|
+
opacity: var(--_opacity-disabled);
|
|
67
84
|
cursor: not-allowed;
|
|
68
85
|
}
|
|
69
86
|
}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
+
"$schema": "Auto-generated from index.scss annotations. Do not edit manually — run: pnpm generate:api",
|
|
2
3
|
"name": "form",
|
|
3
4
|
"element": "form",
|
|
4
5
|
"modifiers": {
|
|
@@ -13,26 +14,29 @@
|
|
|
13
14
|
"section": {},
|
|
14
15
|
"actions": {}
|
|
15
16
|
},
|
|
17
|
+
"relatedComponents": [
|
|
18
|
+
{
|
|
19
|
+
"name": "form-error"
|
|
20
|
+
},
|
|
21
|
+
{
|
|
22
|
+
"name": "form-helper"
|
|
23
|
+
}
|
|
24
|
+
],
|
|
16
25
|
"cssVars": [
|
|
17
26
|
{
|
|
18
27
|
"name": "--ui-form-spacing",
|
|
19
|
-
"default": "var(--ui-space-3)"
|
|
28
|
+
"default": "var(--ui-space-3)",
|
|
29
|
+
"description": "Spacing"
|
|
20
30
|
},
|
|
21
31
|
{
|
|
22
32
|
"name": "--ui-form-actions-gap",
|
|
23
|
-
"default": "var(--ui-space-2)"
|
|
33
|
+
"default": "var(--ui-space-2)",
|
|
34
|
+
"description": "Actions gap"
|
|
24
35
|
},
|
|
25
36
|
{
|
|
26
37
|
"name": "--ui-form-section-spacing",
|
|
27
|
-
"default": "var(--ui-space-4)"
|
|
28
|
-
|
|
29
|
-
{
|
|
30
|
-
"name": "--ui-form-spacing-compact",
|
|
31
|
-
"default": "var(--ui-space-2)"
|
|
32
|
-
},
|
|
33
|
-
{
|
|
34
|
-
"name": "--ui-form-section-spacing-compact",
|
|
35
|
-
"default": "var(--ui-space-3)"
|
|
38
|
+
"default": "var(--ui-space-4)",
|
|
39
|
+
"description": "Section spacing"
|
|
36
40
|
}
|
|
37
41
|
]
|
|
38
42
|
}
|
|
@@ -1,12 +1,18 @@
|
|
|
1
1
|
@use '../../../config/tokens/variables' as t;
|
|
2
|
+
// @component form
|
|
3
|
+
// @element form
|
|
4
|
+
// @related form-error, form-helper
|
|
2
5
|
|
|
3
6
|
// Form - layout container for form fields
|
|
4
7
|
// Provides consistent vertical spacing between fields, sections, and actions
|
|
5
8
|
|
|
6
9
|
@layer components.tokens {
|
|
7
10
|
.form {
|
|
11
|
+
// @desc Spacing
|
|
8
12
|
--_spacing: var(--ui-form-spacing, var(--ui-space-3, calc(#{t.$unit} * 3)));
|
|
13
|
+
// @desc Actions gap
|
|
9
14
|
--_actions-gap: var(--ui-form-actions-gap, var(--ui-space-2, calc(#{t.$unit} * 2)));
|
|
15
|
+
// @desc Section spacing
|
|
10
16
|
--_section-spacing: var(--ui-form-section-spacing, var(--ui-space-4, calc(#{t.$unit} * 4)));
|
|
11
17
|
}
|
|
12
18
|
}
|
|
@@ -44,12 +50,16 @@
|
|
|
44
50
|
}
|
|
45
51
|
|
|
46
52
|
// Compact variant - tighter spacing
|
|
53
|
+
// @modifier boolean compact
|
|
47
54
|
.form--compact {
|
|
55
|
+
// @desc Spacing compact
|
|
48
56
|
--_spacing: var(--ui-form-spacing-compact, var(--ui-space-2, calc(#{t.$unit} * 2)));
|
|
57
|
+
// @desc Section spacing compact
|
|
49
58
|
--_section-spacing: var(--ui-form-section-spacing-compact, var(--ui-space-3, calc(#{t.$unit} * 3)));
|
|
50
59
|
}
|
|
51
60
|
|
|
52
61
|
// Inline variant - horizontal layout for short forms (search, filters)
|
|
62
|
+
// @modifier boolean inline
|
|
53
63
|
.form--inline {
|
|
54
64
|
flex-direction: row;
|
|
55
65
|
flex-wrap: wrap;
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
+
"$schema": "Auto-generated from index.scss annotations. Do not edit manually — run: pnpm generate:api",
|
|
2
3
|
"name": "form-error",
|
|
3
4
|
"element": "div",
|
|
4
5
|
"modifiers": {},
|
|
@@ -8,15 +9,18 @@
|
|
|
8
9
|
"cssVars": [
|
|
9
10
|
{
|
|
10
11
|
"name": "--ui-form-error-color",
|
|
11
|
-
"default": "var(--ui-color-danger)"
|
|
12
|
+
"default": "var(--ui-color-danger)",
|
|
13
|
+
"description": "Text color"
|
|
12
14
|
},
|
|
13
15
|
{
|
|
14
16
|
"name": "--ui-form-error-size",
|
|
15
|
-
"default": "var(--ui-font-size-sm)"
|
|
17
|
+
"default": "var(--ui-font-size-sm)",
|
|
18
|
+
"description": "Overall size"
|
|
16
19
|
},
|
|
17
20
|
{
|
|
18
21
|
"name": "--ui-form-error-gap",
|
|
19
|
-
"default": "0"
|
|
22
|
+
"default": "0",
|
|
23
|
+
"description": "Gap between children"
|
|
20
24
|
}
|
|
21
25
|
]
|
|
22
26
|
}
|
|
@@ -1,12 +1,18 @@
|
|
|
1
1
|
@use '../../../config/tokens/variables' as t;
|
|
2
|
+
// @component form-error
|
|
3
|
+
// @element div
|
|
2
4
|
|
|
3
5
|
// Form Error - validation error message for form fields
|
|
4
6
|
// Displays error text with danger color
|
|
5
7
|
|
|
6
8
|
@layer components.tokens {
|
|
7
9
|
.form-error {
|
|
10
|
+
--_leading-tight-sm: var(--ui-leading-tight-sm, var(--ui-row-1));
|
|
11
|
+
// @desc Text color
|
|
8
12
|
--_color: var(--ui-form-error-color, var(--ui-color-danger));
|
|
13
|
+
// @desc Overall size
|
|
9
14
|
--_size: var(--ui-form-error-size, var(--ui-font-size-sm, #{t.$font-size-sm}));
|
|
15
|
+
// @desc Gap between children
|
|
10
16
|
--_gap: var(--ui-form-error-gap, 0);
|
|
11
17
|
}
|
|
12
18
|
}
|
|
@@ -20,7 +26,7 @@
|
|
|
20
26
|
margin-block-start: var(--_gap);
|
|
21
27
|
|
|
22
28
|
font-size: var(--_size);
|
|
23
|
-
line-height: var(--
|
|
29
|
+
line-height: var(--_leading-tight-sm);
|
|
24
30
|
color: var(--_color);
|
|
25
31
|
}
|
|
26
32
|
|
|
@@ -1,19 +1,23 @@
|
|
|
1
1
|
{
|
|
2
|
+
"$schema": "Auto-generated from index.scss annotations. Do not edit manually — run: pnpm generate:api",
|
|
2
3
|
"name": "form-helper",
|
|
3
4
|
"element": "div",
|
|
4
5
|
"modifiers": {},
|
|
5
6
|
"cssVars": [
|
|
6
7
|
{
|
|
7
8
|
"name": "--ui-form-helper-color",
|
|
8
|
-
"default": "var(--ui-color-text-muted)"
|
|
9
|
+
"default": "var(--ui-color-text-muted)",
|
|
10
|
+
"description": "Text color"
|
|
9
11
|
},
|
|
10
12
|
{
|
|
11
13
|
"name": "--ui-form-helper-size",
|
|
12
|
-
"default": "var(--ui-font-size-sm)"
|
|
14
|
+
"default": "var(--ui-font-size-sm)",
|
|
15
|
+
"description": "Overall size"
|
|
13
16
|
},
|
|
14
17
|
{
|
|
15
18
|
"name": "--ui-form-helper-gap",
|
|
16
|
-
"default": "0"
|
|
19
|
+
"default": "0",
|
|
20
|
+
"description": "Gap between children"
|
|
17
21
|
}
|
|
18
22
|
]
|
|
19
23
|
}
|
|
@@ -1,12 +1,18 @@
|
|
|
1
1
|
@use '../../../config/tokens/variables' as t;
|
|
2
|
+
// @component form-helper
|
|
3
|
+
// @element div
|
|
2
4
|
|
|
3
5
|
// Form Helper - helper text for form fields
|
|
4
6
|
// Displays muted text below form controls
|
|
5
7
|
|
|
6
8
|
@layer components.tokens {
|
|
7
9
|
.form-helper {
|
|
10
|
+
--_leading-tight-sm: var(--ui-leading-tight-sm, var(--ui-row-1));
|
|
11
|
+
// @desc Text color
|
|
8
12
|
--_color: var(--ui-form-helper-color, var(--ui-color-text-muted));
|
|
13
|
+
// @desc Overall size
|
|
9
14
|
--_size: var(--ui-form-helper-size, var(--ui-font-size-sm, #{t.$font-size-sm}));
|
|
15
|
+
// @desc Gap between children
|
|
10
16
|
--_gap: var(--ui-form-helper-gap, 0);
|
|
11
17
|
}
|
|
12
18
|
}
|
|
@@ -18,7 +24,7 @@
|
|
|
18
24
|
margin-block-start: var(--_gap);
|
|
19
25
|
|
|
20
26
|
font-size: var(--_size);
|
|
21
|
-
line-height: var(--
|
|
27
|
+
line-height: var(--_leading-tight-sm);
|
|
22
28
|
color: var(--_color);
|
|
23
29
|
}
|
|
24
30
|
}
|
|
@@ -2,34 +2,60 @@
|
|
|
2
2
|
|
|
3
3
|
// @component input
|
|
4
4
|
// @element input
|
|
5
|
+
// @related input-group
|
|
5
6
|
|
|
6
7
|
@layer components.tokens {
|
|
7
8
|
.input {
|
|
9
|
+
--_border-width-sm: var(--ui-border-width-sm, #{t.$border-width-sm});
|
|
10
|
+
--_duration-fast: var(--ui-duration-fast, #{t.$duration-fast});
|
|
11
|
+
--_ease-default: var(--ui-ease-default, ease);
|
|
12
|
+
--_color-border-strong: var(--ui-color-border-strong, #{t.$color-border-strong});
|
|
13
|
+
--_border-width-md: var(--ui-border-width-md, #{t.$border-width-md});
|
|
14
|
+
--_color-focus: var(--ui-color-focus, #{t.$color-focus});
|
|
15
|
+
--_opacity-disabled: var(--ui-opacity-disabled, #{t.$opacity-disabled});
|
|
16
|
+
--_color-bg-subtle: var(--ui-color-bg-subtle, #{t.$color-bg-subtle});
|
|
17
|
+
--_space-half: var(--ui-space-half, #{t.$space-0});
|
|
18
|
+
--_color-text-muted: var(--ui-color-text-muted, #{t.$color-text-muted});
|
|
19
|
+
// @desc Overall height
|
|
8
20
|
--_height: var(--ui-input-height, var(--ui-row-2, #{t.$row-2}));
|
|
21
|
+
// @desc Horizontal padding
|
|
9
22
|
--_padding-x: var(--ui-input-padding-x, var(--ui-space-1, #{t.$space-1}));
|
|
23
|
+
// @desc Font size
|
|
10
24
|
--_font-size: var(--ui-input-font-size, var(--ui-font-size-sm, #{t.$font-size-sm}));
|
|
25
|
+
// @desc Corner radius
|
|
11
26
|
--_radius: var(--ui-input-radius, var(--ui-radius-md, #{t.$radius-md}));
|
|
27
|
+
// @desc Background color
|
|
12
28
|
--_bg: var(--ui-input-bg, var(--ui-color-bg, #{t.$color-bg}));
|
|
29
|
+
// @desc Border color
|
|
13
30
|
--_border-color: var(--ui-input-border-color, var(--ui-color-border-strong, #{t.$color-border-strong}));
|
|
31
|
+
// @desc Border color focus
|
|
14
32
|
--_border-color-focus: var(--ui-input-border-color-focus, var(--ui-color-primary, #{t.$color-primary}));
|
|
33
|
+
// @desc Text color
|
|
15
34
|
--_color: var(--ui-input-color, var(--ui-color-text, #{t.$color-text}));
|
|
35
|
+
// @desc Placeholder
|
|
16
36
|
--_placeholder: var(--ui-input-placeholder, var(--ui-color-text-muted, #{t.$color-text-muted}));
|
|
17
37
|
}
|
|
18
38
|
|
|
19
39
|
// @modifier size
|
|
20
40
|
.input--sm {
|
|
41
|
+
// @desc Overall height at small size
|
|
21
42
|
--_height: var(--ui-input-height-sm, calc(#{t.$row} * 1.5));
|
|
43
|
+
// @desc Font size at small size
|
|
22
44
|
--_font-size: var(--ui-input-font-size-sm, var(--ui-font-size-xs, #{t.$font-size-xs}));
|
|
23
45
|
}
|
|
24
46
|
|
|
25
47
|
.input--lg {
|
|
48
|
+
// @desc Overall height at large size
|
|
26
49
|
--_height: var(--ui-input-height-lg, calc(#{t.$row} * 2.5));
|
|
50
|
+
// @desc Horizontal padding at large size
|
|
27
51
|
--_padding-x: var(--ui-input-padding-x-lg, var(--ui-space-2, #{t.$space-2}));
|
|
52
|
+
// @desc Font size at large size
|
|
28
53
|
--_font-size: var(--ui-input-font-size-lg, var(--ui-font-size-md, #{t.$font-size-md}));
|
|
29
54
|
}
|
|
30
55
|
|
|
31
56
|
// @modifier variant
|
|
32
57
|
.input--filled {
|
|
58
|
+
// @desc Filled bg
|
|
33
59
|
--_bg: var(--ui-input-filled-bg, var(--ui-color-bg-muted, #{t.$color-bg-muted}));
|
|
34
60
|
--_border-color: transparent;
|
|
35
61
|
}
|
|
@@ -41,12 +67,16 @@
|
|
|
41
67
|
|
|
42
68
|
// @modifier state
|
|
43
69
|
.input--error {
|
|
70
|
+
// @desc Error border
|
|
44
71
|
--_border-color: var(--ui-input-error-border, var(--ui-color-danger, #{t.$color-danger}));
|
|
72
|
+
// @desc Error border
|
|
45
73
|
--_border-color-focus: var(--ui-input-error-border, var(--ui-color-danger, #{t.$color-danger}));
|
|
46
74
|
}
|
|
47
75
|
|
|
48
76
|
.input--success {
|
|
77
|
+
// @desc Success border
|
|
49
78
|
--_border-color: var(--ui-input-success-border, var(--ui-color-success, #{t.$color-success}));
|
|
79
|
+
// @desc Success border
|
|
50
80
|
--_border-color-focus: var(--ui-input-success-border, var(--ui-color-success, #{t.$color-success}));
|
|
51
81
|
}
|
|
52
82
|
}
|
|
@@ -65,41 +95,42 @@
|
|
|
65
95
|
color: var(--_color);
|
|
66
96
|
|
|
67
97
|
background: var(--_bg);
|
|
68
|
-
border: var(--
|
|
98
|
+
border: var(--_border-width-sm) solid var(--_border-color);
|
|
69
99
|
border-radius: var(--_radius);
|
|
70
100
|
|
|
71
101
|
transition:
|
|
72
|
-
border-color var(--
|
|
73
|
-
box-shadow var(--
|
|
102
|
+
border-color var(--_duration-fast) var(--_ease-default),
|
|
103
|
+
box-shadow var(--_duration-fast) var(--_ease-default);
|
|
74
104
|
|
|
75
105
|
&::placeholder {
|
|
76
106
|
color: var(--_placeholder);
|
|
77
107
|
}
|
|
78
108
|
|
|
79
109
|
&:hover:not(:disabled, :focus-visible) {
|
|
80
|
-
border-color: var(--
|
|
110
|
+
border-color: var(--_color-border-strong);
|
|
81
111
|
}
|
|
82
112
|
|
|
83
113
|
&:focus-visible,
|
|
84
114
|
&--focus {
|
|
85
115
|
border-color: var(--_border-color-focus);
|
|
86
|
-
outline: var(--
|
|
87
|
-
outline-offset: var(--
|
|
116
|
+
outline: var(--_border-width-md) solid transparent;
|
|
117
|
+
outline-offset: var(--_border-width-sm);
|
|
88
118
|
|
|
89
|
-
box-shadow: 0 0 0 var(--
|
|
119
|
+
box-shadow: 0 0 0 var(--_border-width-md) var(--_color-focus);
|
|
90
120
|
}
|
|
91
121
|
|
|
92
122
|
&:disabled,
|
|
93
123
|
&--disabled {
|
|
94
|
-
opacity: var(--
|
|
124
|
+
opacity: var(--_opacity-disabled);
|
|
95
125
|
cursor: not-allowed;
|
|
96
126
|
}
|
|
97
127
|
|
|
98
128
|
&:read-only {
|
|
99
|
-
background: var(--
|
|
129
|
+
background: var(--_color-bg-subtle);
|
|
100
130
|
}
|
|
101
131
|
|
|
102
132
|
// Full width
|
|
133
|
+
// @modifier boolean block
|
|
103
134
|
&--block {
|
|
104
135
|
inline-size: 100%;
|
|
105
136
|
}
|
|
@@ -117,12 +148,12 @@
|
|
|
117
148
|
|
|
118
149
|
// With prefix
|
|
119
150
|
&--has-prefix .input {
|
|
120
|
-
padding-inline-start: calc(var(--_height) + var(--
|
|
151
|
+
padding-inline-start: calc(var(--_height) + var(--_space-half));
|
|
121
152
|
}
|
|
122
153
|
|
|
123
154
|
// With suffix
|
|
124
155
|
&--has-suffix .input {
|
|
125
|
-
padding-inline-end: calc(var(--_height) + var(--
|
|
156
|
+
padding-inline-end: calc(var(--_height) + var(--_space-half));
|
|
126
157
|
}
|
|
127
158
|
}
|
|
128
159
|
|
|
@@ -135,7 +166,7 @@
|
|
|
135
166
|
|
|
136
167
|
inline-size: var(--_height, #{t.$row-2});
|
|
137
168
|
|
|
138
|
-
color: var(--
|
|
169
|
+
color: var(--_color-text-muted);
|
|
139
170
|
|
|
140
171
|
pointer-events: none;
|
|
141
172
|
|