@solid-design-system/mcp 7.0.0-next.1 → 7.0.0-next.11
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/CHANGELOG.md +45 -0
- package/metadata/packages/components/docs/installation.md +9 -117
- package/metadata/packages/components/docs/usage.md +4 -4
- package/metadata/packages/components/sd-accordion/info.md +1 -1
- package/metadata/packages/components/sd-badge/stories/variant.md +1 -1
- package/metadata/packages/components/sd-brandshape/info.md +1 -1
- package/metadata/packages/components/sd-brandshape/stories/variant.md +0 -1
- package/metadata/packages/components/sd-breadcrumb-item/info.md +1 -1
- package/metadata/packages/components/sd-button/info.md +2 -2
- package/metadata/packages/components/sd-button/stories/visually-disabled.md +4 -4
- package/metadata/packages/components/sd-carousel/info.md +2 -1
- package/metadata/packages/components/sd-datepicker/stories/visually-disabled.md +1 -1
- package/metadata/packages/components/sd-dialog/stories/headline.md +4 -2
- package/metadata/packages/components/sd-dialog/stories/no-close-button.md +4 -2
- package/metadata/packages/components/sd-dialog/stories/open.md +50 -45
- package/metadata/packages/components/sd-drawer/info.md +1 -2
- package/metadata/packages/components/sd-drawer/stories/no-header.md +1 -1
- package/metadata/packages/components/sd-drawer/stories/open.md +3 -3
- package/metadata/packages/components/sd-drawer/stories/placement.md +3 -3
- package/metadata/packages/components/sd-dropdown/info.md +1 -1
- package/metadata/packages/components/sd-file-selector/info.md +139 -0
- package/metadata/packages/components/sd-file-selector/stories/directory.md +6 -0
- package/metadata/packages/components/sd-file-selector/stories/disabled.md +5 -0
- package/metadata/packages/components/sd-file-selector/stories/help-text.md +19 -0
- package/metadata/packages/components/sd-file-selector/stories/hide-value.md +5 -0
- package/metadata/packages/components/sd-file-selector/stories/invalid.md +14 -0
- package/metadata/packages/components/sd-file-selector/stories/label.md +13 -0
- package/metadata/packages/components/sd-file-selector/stories/multiple-files.md +5 -0
- package/metadata/packages/components/sd-file-selector/stories/required.md +6 -0
- package/metadata/packages/components/sd-file-selector/stories/sizes.md +14 -0
- package/metadata/packages/components/sd-file-selector/stories/variant.md +8 -0
- package/metadata/packages/components/sd-file-selector/stories/visually-disabled.md +9 -0
- package/metadata/packages/components/sd-header/info.md +4 -2
- package/metadata/packages/components/sd-header/stories/shadow.md +9 -0
- package/metadata/packages/components/sd-icon/stories/custom-libraries.md +1 -1
- package/metadata/packages/components/sd-icon/stories/libraries.md +1 -1
- package/metadata/packages/components/sd-icon/stories/name.md +1 -1
- package/metadata/packages/components/sd-input/info.md +5 -4
- package/metadata/packages/components/sd-link/info.md +1 -1
- package/metadata/packages/components/sd-link/stories/as-link.md +1 -1
- package/metadata/packages/components/sd-link/stories/icon.md +2 -2
- package/metadata/packages/components/sd-link/stories/visually-disabled.md +2 -2
- package/metadata/packages/components/sd-map-marker/info.md +1 -1
- package/metadata/packages/components/sd-menu/stories/grouping.md +1 -1
- package/metadata/packages/components/sd-menu/stories/icon.md +1 -2
- package/metadata/packages/components/sd-navigation-item/info.md +2 -2
- package/metadata/packages/components/sd-navigation-item/stories/accordion.md +4 -4
- package/metadata/packages/components/sd-navigation-item/stories/chevron.md +1 -1
- package/metadata/packages/components/sd-navigation-item/stories/current.md +2 -2
- package/metadata/packages/components/sd-navigation-item/stories/description.md +1 -1
- package/metadata/packages/components/sd-navigation-item/stories/disabled.md +1 -1
- package/metadata/packages/components/sd-navigation-item/stories/divider.md +1 -1
- package/metadata/packages/components/sd-navigation-item/stories/indented.md +1 -1
- package/metadata/packages/components/sd-navigation-item/stories/orientation.md +2 -2
- package/metadata/packages/components/sd-navigation-item/stories/relaxed.md +1 -1
- package/metadata/packages/components/sd-navigation-item/stories/separated.md +4 -4
- package/metadata/packages/components/sd-notification/info.md +2 -2
- package/metadata/packages/components/sd-notification/stories/duration.md +5 -0
- package/metadata/packages/components/sd-notification/stories/toast-notification.md +1 -0
- package/metadata/packages/components/sd-popup/info.md +1 -1
- package/metadata/packages/components/sd-quickfact/info.md +1 -1
- package/metadata/packages/components/sd-quickfact/stories/expandable.md +0 -1
- package/metadata/packages/components/sd-radio-group/info.md +1 -1
- package/metadata/packages/components/sd-radio-group/stories/required.md +1 -1
- package/metadata/packages/components/sd-range/info.md +1 -1
- package/metadata/packages/components/sd-select/info.md +3 -3
- package/metadata/packages/components/sd-step/stories/size.md +1 -1
- package/metadata/packages/components/sd-tab-group/info.md +1 -1
- package/metadata/packages/components/sd-tag/info.md +2 -2
- package/metadata/packages/components/sd-teaser/info.md +1 -1
- package/metadata/packages/components/sd-teaser/stories/breakpoint.md +2 -2
- package/metadata/packages/components/sd-teaser/stories/default-and-headline-slot.md +1 -1
- package/metadata/packages/components/sd-teaser/stories/distribution.md +1 -1
- package/metadata/packages/components/sd-teaser/stories/inset.md +1 -1
- package/metadata/packages/components/sd-teaser/stories/media-slot.md +1 -1
- package/metadata/packages/components/sd-teaser/stories/meta-slot.md +1 -1
- package/metadata/packages/components/sd-teaser/stories/reverse.md +1 -1
- package/metadata/packages/components/sd-teaser/stories/variant.md +5 -9
- package/metadata/packages/components/sd-teaser-media/info.md +1 -1
- package/metadata/packages/components/sd-teaser-media/stories/default-media-and-headline-slot.md +1 -1
- package/metadata/packages/components/sd-textarea/info.md +3 -3
- package/metadata/packages/components/sd-tooltip/info.md +3 -3
- package/metadata/packages/components/sd-tooltip/stories/custom-trigger.md +1 -1
- package/metadata/packages/components/sd-tooltip/stories/placement.md +6 -6
- package/metadata/packages/icons/default/system.json +15 -15
- package/metadata/packages/icons/sd-multi-theming/content.json +10 -10
- package/metadata/packages/icons/sd-multi-theming/system.json +118 -128
- package/metadata/packages/quickstart/docs/quickstart.md +9 -27
- package/metadata/packages/styles/docs/installation.md +8 -56
- package/metadata/packages/styles/sd-chip/info.md +12 -8
- package/metadata/packages/styles/sd-chip/stories/{variants.md → color.md} +9 -11
- package/metadata/packages/styles/sd-chip/stories/outlined.md +8 -0
- package/metadata/packages/styles/sd-chip/stories/shade.md +17 -0
- package/metadata/packages/styles/sd-chip/stories/sharp.md +8 -0
- package/metadata/packages/styles/sd-chip/stories/size.md +8 -0
- package/metadata/packages/styles/sd-hidden-links/stories/surrounding-content.md +1 -1
- package/metadata/packages/templates/badge.md +1 -1
- package/metadata/packages/templates/brandshape.md +5 -6
- package/metadata/packages/templates/breadcrumb.md +1 -1
- package/metadata/packages/templates/dialog.md +1 -11
- package/metadata/packages/templates/header-navigation.md +6 -6
- package/metadata/packages/templates/menu.md +1 -1
- package/metadata/packages/templates/status-badge.md +3 -3
- package/metadata/packages/templates/table.md +14 -12
- package/metadata/packages/templates/teaser.md +21 -15
- package/metadata/packages/tokens/docs/installation.md +2 -23
- package/metadata/packages/tokens/docs/usage.md +4 -28
- package/metadata/packages/tokens/tokens.json +4 -0
- package/package.json +12 -12
- package/metadata/packages/components/sd-spinner/info.md +0 -53
- package/metadata/packages/components/sd-spinner/stories/size.md +0 -15
- package/metadata/packages/components/sd-spinner/stories/variants.md +0 -43
- package/metadata/packages/styles/sd-flag/info.md +0 -45
- package/metadata/packages/styles/sd-flag/stories/variants.md +0 -40
- package/metadata/packages/templates/flag.md +0 -38
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
## Overview
|
|
2
|
+
|
|
3
|
+
`<sd-file-selector>` — Used to select a file by clicking or dragging a file into a drop-area.
|
|
4
|
+
|
|
5
|
+
## API
|
|
6
|
+
|
|
7
|
+
### Examples
|
|
8
|
+
|
|
9
|
+
Use the components tool by passing the args `component` and `example` for any of these combinations:
|
|
10
|
+
|
|
11
|
+
- component: sd-file-selector, example: variant
|
|
12
|
+
- component: sd-file-selector, example: sizes
|
|
13
|
+
- component: sd-file-selector, example: label
|
|
14
|
+
- component: sd-file-selector, example: disabled
|
|
15
|
+
- component: sd-file-selector, example: visually-disabled
|
|
16
|
+
- component: sd-file-selector, example: help-text
|
|
17
|
+
- component: sd-file-selector, example: multiple-files
|
|
18
|
+
- component: sd-file-selector, example: hide-value
|
|
19
|
+
- component: sd-file-selector, example: required
|
|
20
|
+
- component: sd-file-selector, example: invalid
|
|
21
|
+
- component: sd-file-selector, example: directory
|
|
22
|
+
|
|
23
|
+
### Key Properties
|
|
24
|
+
|
|
25
|
+
- prop.files: — The selected files as a `FileList` object. The `FileList` behaves like an array, so you can get the number of
|
|
26
|
+
selected files via its `length` property.
|
|
27
|
+
- prop.name: string, default='' — The name of the file selector, submitted as a name/value pair with form data.
|
|
28
|
+
- prop.title: string, default='' — The `title` attribute specifies extra information about an element most often as a default browser tooltip text when the mouse moves over the element.
|
|
29
|
+
- prop.value: — The value of the file selector contains a string that represents the path of the selected file. If multiple
|
|
30
|
+
files are selected, the value represents the first file in the list. The only valid value when setting a file
|
|
31
|
+
input is an empty string.
|
|
32
|
+
- prop.defaultValue: string, default='' — The default value of the form control. Primarily used for resetting the form control.
|
|
33
|
+
- prop.size: 'sm'|'md'|'lg', default='lg' — The file selector's size.
|
|
34
|
+
- prop.label: string, default='' — The file selector's label, this field is required to ensure accessibility. It is visually hidden by default, use the `showLabel` property to display it.
|
|
35
|
+
- prop.showLabel [attr: show-label]: boolean, default=false — Visually displays the file selector's label.
|
|
36
|
+
- prop.helpText [attr: help-text]: string, default='' — The file selector's help text. If you need to display HTML, use the `help-text` slot instead.
|
|
37
|
+
- prop.disabled: boolean, default=false — Disables the file selector.
|
|
38
|
+
- prop.visuallyDisabled [attr: visually-disabled]: boolean, default=false — Styles the input as if it was disabled and enables aria-disabled
|
|
39
|
+
- prop.droparea [attr: drop-area]: boolean, default=false — Draw the file selector as a drop area.
|
|
40
|
+
- prop.accept: string, default='' — Comma-separated list of supported file types (e.g. `.jpg,.png,image/*`).
|
|
41
|
+
- prop.styleOnValid [attr: style-on-valid]: boolean, default=false — Shows success styles if the validity of the input is valid.
|
|
42
|
+
- prop.capture: 'user'|'environment' — Specifies which camera to use for capture of image or video data. Works only when not using a droparea.
|
|
43
|
+
- prop.multiple: boolean, default=false — Indicates whether the user can select more than one file. Has no effect if `webkitdirectory` is set.
|
|
44
|
+
- prop.webkitdirectory: boolean, default=false — Indicates that the file selector should let the user select directories instead of files. Non-standard, but
|
|
45
|
+
supported by all major browsers.
|
|
46
|
+
- prop.form: string, default='' — By default, form controls are associated with the nearest containing `<form>` element. This attribute allows you
|
|
47
|
+
to place the form control outside of a form and associate it with the form that has this `id`. The form must be in
|
|
48
|
+
the same document or shadow root for this to work.
|
|
49
|
+
- prop.required: boolean, default=false — Makes the input a required field.
|
|
50
|
+
- prop.hideValue [attr: hide-value]: boolean, default=false — Suppresses the value from being displayed in the file selector.
|
|
51
|
+
- prop.validity: — Gets the validity state object.
|
|
52
|
+
- prop.validationMessage: — Gets the validation message.
|
|
53
|
+
- prop.dir: 'ltr'|'rtl'|'auto' — The element's directionality.
|
|
54
|
+
- prop.lang: string — The element's language.
|
|
55
|
+
|
|
56
|
+
### Events
|
|
57
|
+
|
|
58
|
+
- event.sd-blur: Emitted when the control loses focus.
|
|
59
|
+
- event.sd-change: Emitted when an alteration to the control's value is committed by the user.
|
|
60
|
+
- event.sd-error: Emitted when multiple files are selected via drag and drop, without the `multiple` property being set.
|
|
61
|
+
- event.sd-focus: Emitted when the control gains focus.
|
|
62
|
+
- event.sd-input: Emitted when the control receives input.
|
|
63
|
+
|
|
64
|
+
### Slots
|
|
65
|
+
|
|
66
|
+
- slot.label: The file selector's label. Alternatively, you can use the `label` attribute.
|
|
67
|
+
- slot.help-text: Text that describes how to use the file selector. Alternatively, you can use the `help-text` attribute.
|
|
68
|
+
|
|
69
|
+
### CSS Parts
|
|
70
|
+
|
|
71
|
+
- part.form-control: The form control that wraps the label, input, and help text.
|
|
72
|
+
- part.form-control-label: The label's wrapper.
|
|
73
|
+
- part.form-control-input: The input's wrapper.
|
|
74
|
+
- part.form-control-help-text: The help text's wrapper.
|
|
75
|
+
- part.button-wrapper: The wrapper around the button and text value.
|
|
76
|
+
- part.button: The sd-button acting as a file input trigger.
|
|
77
|
+
- part.value: The chosen files or placeholder text for the file input.
|
|
78
|
+
- part.droparea: The element wrapping the drop zone.
|
|
79
|
+
- part.droparea-background: The background of the drop zone.
|
|
80
|
+
- part.droparea-icon: The container that wraps the icon for the drop zone.
|
|
81
|
+
- part.droparea-value: The text for the drop zone.
|
|
82
|
+
- part.invalid-icon-message: The container that wraps the invalid icon and message.
|
|
83
|
+
- part.invalid-icon: The invalid icon.
|
|
84
|
+
- part.invalid-message: The invalid message.
|
|
85
|
+
|
|
86
|
+
## Guidelines
|
|
87
|
+
|
|
88
|
+
### Use Cases
|
|
89
|
+
|
|
90
|
+
- Select files or documents as part of a form submission.
|
|
91
|
+
- Attach supporting files in profile or account settings.
|
|
92
|
+
- Replace or update assets in content management workflows.
|
|
93
|
+
- Handle single or multiple file selections within any form or multi-step forms.
|
|
94
|
+
|
|
95
|
+
#### Default
|
|
96
|
+
|
|
97
|
+
Use the `default` variant when the select action is secondary to other form fields, or when space is limited.
|
|
98
|
+
|
|
99
|
+
- Inline file selector in dense or compact forms.
|
|
100
|
+
- Single-file selection where minimal visual weight is needed.
|
|
101
|
+
- Flows where the selection action sits alongside other inputs.
|
|
102
|
+
|
|
103
|
+
#### Drop Area
|
|
104
|
+
|
|
105
|
+
Use the `drop-area` variant when file selector is the primary action on the page or step.
|
|
106
|
+
|
|
107
|
+
- Dedicated selector steps in multi-step flows.
|
|
108
|
+
- Scenarios where drag-and-drop is a likely or preferred interaction.
|
|
109
|
+
- Select flows that support multiple files at once.
|
|
110
|
+
|
|
111
|
+
### Rules
|
|
112
|
+
|
|
113
|
+
<b>Do not mix both variants within the same form or flow.</b>
|
|
114
|
+
|
|
115
|
+
### Label and Help Text
|
|
116
|
+
|
|
117
|
+
- Always provide a descriptive label (e.g., "Select file", "Signed contract").
|
|
118
|
+
- Use help text to communicate accepted file types and size limits
|
|
119
|
+
- Do not rely on the drop-area copy alone to convey constraints.
|
|
120
|
+
|
|
121
|
+
### Error Handling
|
|
122
|
+
|
|
123
|
+
- Use error-text to surface validation errors: below the component (default variant) or next to each individual file selector when the "show selected files" attribute is active (drop-area variant).
|
|
124
|
+
- Write error text in plain language with a clear solution (e.g., "The file is too large. Maximum allowed size is 5 MB.").
|
|
125
|
+
|
|
126
|
+
### Per-error-type copy guidance
|
|
127
|
+
|
|
128
|
+
- Provide distinct error messages for each failure scenario rather than a generic fallback — for example: wrong file type, file too large, empty file, too many files, or selection failure.
|
|
129
|
+
|
|
130
|
+
### Background
|
|
131
|
+
|
|
132
|
+
- Use light background options such as white, neutral-100, or primary-100.
|
|
133
|
+
|
|
134
|
+
### Accessibility
|
|
135
|
+
|
|
136
|
+
- Use `visually-disabled` to keep disabled elements focusable and tooltip-accessible.
|
|
137
|
+
- Associate error text via `aria-describedby` so they are announced on focus.
|
|
138
|
+
- Use the `visually-disabled` attribute to keep disabled elements focusable, hoverable, and able to show tooltips, as they’re otherwise removed from the tab order and inaccessible to screen readers.
|
|
139
|
+
- A label must always be provided, even when it is visually hidden. The label is used to provide an accessible name for the file selector, ensuring that screen reader users can identify the purpose of the control.
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
Use the `webkitdirectory` attribute to allow directory selection.
|
|
2
|
+
**Note:** As it is a non-standard attribute, browser support may vary. See [MDN](https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/input/file#webkitdirectory) for more information.
|
|
3
|
+
|
|
4
|
+
```html
|
|
5
|
+
<sd-file-selector label="Select a directory to upload" show-label webkitdirectory></sd-file-selector>
|
|
6
|
+
```
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
Use the `help-text` attribute to provide additional context or instructions as:
|
|
2
|
+
|
|
3
|
+
- file size restrictions
|
|
4
|
+
- file format requirements
|
|
5
|
+
- file selection limit
|
|
6
|
+
For help-text that contain HTML, use the help-text slot instead.
|
|
7
|
+
|
|
8
|
+
```html
|
|
9
|
+
<div class="flex flex-col gap-10">
|
|
10
|
+
<sd-file-selector
|
|
11
|
+
label="Select a file to upload"
|
|
12
|
+
help-text="Max file size is 3 MB. Only PDF, JPG and PNG files are supported."
|
|
13
|
+
>
|
|
14
|
+
</sd-file-selector>
|
|
15
|
+
<sd-file-selector label="Select a file to upload">
|
|
16
|
+
<div slot="help-text" class="text-lg">Max file size is 3 MB. Only PDF, JPG and PNG files are supported.</div>
|
|
17
|
+
</sd-file-selector>
|
|
18
|
+
</div>
|
|
19
|
+
```
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
The component gets `invalid` state when the form is not valid.
|
|
2
|
+
|
|
3
|
+
```html
|
|
4
|
+
<form id="invalid-form">
|
|
5
|
+
<sd-file-selector id="invalid-file-selector" label="Select a file to upload" show-label> </sd-file-selector>
|
|
6
|
+
</form>
|
|
7
|
+
<script type="module">
|
|
8
|
+
await Promise.all([customElements.whenDefined('sd-file-selector')]).then(() => {
|
|
9
|
+
const fileSelector = document.getElementById('invalid-file-selector');
|
|
10
|
+
fileSelector.setCustomValidity('Please select a file.');
|
|
11
|
+
fileSelector.reportValidity();
|
|
12
|
+
});
|
|
13
|
+
</script>
|
|
14
|
+
```
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
Use the `label` attribute to add an accessible label to the file selector.
|
|
2
|
+
For labels that contain HTML, use the label slot instead.
|
|
3
|
+
This label is visually hidden by default, to display it, use the `show-label` attribute.
|
|
4
|
+
|
|
5
|
+
```html
|
|
6
|
+
<div class="flex flex-col gap-10">
|
|
7
|
+
<sd-file-selector label="Select a file to upload"></sd-file-selector>
|
|
8
|
+
<sd-file-selector label="Select a file to upload" show-label></sd-file-selector>
|
|
9
|
+
<sd-file-selector label="Select a file to upload" show-label>
|
|
10
|
+
<div slot="label" class="text-lg">Label slot</div>
|
|
11
|
+
</sd-file-selector>
|
|
12
|
+
</div>
|
|
13
|
+
```
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
Use the `required` attribute to make the file selector a required field. This can be used for form validation purposes.
|
|
2
|
+
**Note:** For accessibility reasons, required fields must always display a visible label and value.
|
|
3
|
+
|
|
4
|
+
```html
|
|
5
|
+
<sd-file-selector label="Required" show-label required></sd-file-selector>
|
|
6
|
+
```
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
Use the `size` attribute to change the size:
|
|
2
|
+
|
|
3
|
+
- `lg` (default)
|
|
4
|
+
- `md`
|
|
5
|
+
- `sm`
|
|
6
|
+
On drop-area variant “md” and “sm” sizes are not available.
|
|
7
|
+
|
|
8
|
+
```html
|
|
9
|
+
<div class="flex flex-col gap-10">
|
|
10
|
+
<sd-file-selector size="lg" label="sd-file-selector large size"></sd-file-selector>
|
|
11
|
+
<sd-file-selector size="md" label="sd-file-selector medium size"></sd-file-selector>
|
|
12
|
+
<sd-file-selector size="sm" label="sd-file-selector small size"></sd-file-selector>
|
|
13
|
+
</div>
|
|
14
|
+
```
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
Use the `drop-area` attribute to switch to a drop area appearance.
|
|
2
|
+
|
|
3
|
+
```html
|
|
4
|
+
<div class="flex flex-col gap-10">
|
|
5
|
+
<sd-file-selector label="sd-file-selector default variant"></sd-file-selector>
|
|
6
|
+
<sd-file-selector drop-area label="sd-file-selector drop area variant"></sd-file-selector>
|
|
7
|
+
</div>
|
|
8
|
+
```
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
Use the `visually-disabled` attribute to style the component as if it was disabled and enable `aria-disabled` to allow it to be reachable by screen readers. When using this attribute, make sure to provide ways to inform the user why the element is disabled and how to enable it. This can be done by using the `help-text` attribute or wrapping the element in a sd-tooltip. Disabling elements is not recommended for accessibility reasons.
|
|
2
|
+
|
|
3
|
+
```html
|
|
4
|
+
<div class="w-[250px] pt-12">
|
|
5
|
+
<sd-tooltip content="Visually disabled" trigger="hover focus" size="sm" placement="top">
|
|
6
|
+
<sd-file-selector value="Visually disabled" label="Select a file to upload" visually-disabled></sd-file-selector
|
|
7
|
+
></sd-tooltip>
|
|
8
|
+
</div>
|
|
9
|
+
```
|
|
@@ -8,11 +8,13 @@
|
|
|
8
8
|
|
|
9
9
|
Use the components tool by passing the args `component` and `example` for any of these combinations:
|
|
10
10
|
|
|
11
|
+
- component: sd-header, example: shadow
|
|
11
12
|
- component: sd-header, example: fixed
|
|
12
13
|
|
|
13
14
|
### Key Properties
|
|
14
15
|
|
|
15
|
-
- prop.fixed: boolean, default=false — Determines whether the header is fixed or not. If the header is fixed at the top of the page
|
|
16
|
+
- prop.fixed: boolean, default=false — Determines whether the header is fixed or not. If the header is fixed, it stays at the top of the page while scrolling.
|
|
17
|
+
- prop.shadow: boolean, default=false — Determines whether a drop shadow is shown underneath the header.
|
|
16
18
|
- prop.dir: 'ltr'|'rtl'|'auto' — The element's directionality.
|
|
17
19
|
- prop.lang: string — The element's language.
|
|
18
20
|
|
|
@@ -28,8 +30,8 @@ Use the components tool by passing the args `component` and `example` for any of
|
|
|
28
30
|
|
|
29
31
|
### Use Cases
|
|
30
32
|
|
|
31
|
-
- Display primary navigation links for easy access to different sections of the website.
|
|
32
33
|
- Showcase the company logo prominently to reinforce brand identity.
|
|
34
|
+
- Display primary navigation links for easy access to different sections of the website.
|
|
33
35
|
- Include links for user account access.
|
|
34
36
|
- Provide a prominent search function to help users quickly find content.
|
|
35
37
|
|
|
@@ -16,7 +16,7 @@ Here's an example that registers an icon library located in the `/assets/icons`
|
|
|
16
16
|
If you use the IIFE bundle, you have to access the `registerIconLibrary()` function from the `SolidComponents` global.
|
|
17
17
|
|
|
18
18
|
```html
|
|
19
|
-
<script src="https://
|
|
19
|
+
<script src="https://your-cdn.example.com/components/%COMPONENTS-VERSION%/cdn/solid-components.iife.js"></script>
|
|
20
20
|
<script>
|
|
21
21
|
const { registerIconLibrary } = window['SolidComponents'];
|
|
22
22
|
registerIconLibrary('my-icons', {
|
|
@@ -19,8 +19,8 @@ Solid ships with three public icon libraries, `default`, `sd-status-assets`, and
|
|
|
19
19
|
<h3 class="sd-headline sd-headline--size-base mb-4">Status Library</h3>
|
|
20
20
|
<div class="flex gap-6">
|
|
21
21
|
<sd-icon color="primary" library="sd-status-assets" name="status-check"></sd-icon>
|
|
22
|
-
<sd-icon color="primary" library="sd-status-assets" name="status-exclamation"></sd-icon>
|
|
23
22
|
<sd-icon color="primary" library="sd-status-assets" name="status-close"></sd-icon>
|
|
23
|
+
<sd-icon color="primary" library="sd-status-assets" name="status-exclamation"></sd-icon>
|
|
24
24
|
</div>
|
|
25
25
|
</div>
|
|
26
26
|
|
|
@@ -17,7 +17,7 @@ Icons can be used to indicate an action or to represent content.
|
|
|
17
17
|
return generateTemplate({ args });
|
|
18
18
|
}
|
|
19
19
|
};
|
|
20
|
-
|
|
20
|
+
/**
|
|
21
21
|
Use the `name` attribute to change the icon. Checkout these lists of Union Investment's icons for available names:
|
|
22
22
|
- [Content Icons](?path=/story/components-sd-icon-default--library-default-content)
|
|
23
23
|
- [System Icons](?path=/story/components-sd-icon-default--library-default-system)
|
|
@@ -33,10 +33,10 @@ Use the components tool by passing the args `component` and `example` for any of
|
|
|
33
33
|
|
|
34
34
|
### Key Properties
|
|
35
35
|
|
|
36
|
-
- prop.type:
|
|
36
|
+
- prop.type: 'date'|'datetime-local'|'email'|'number'|'password'|'search'|'tel'|'text'|'time'|'url', default='text' — The type of input. Works the same as a native `<input>` element, but only a subset of types are supported. Defaults
|
|
37
37
|
to `text`.
|
|
38
38
|
- prop.size: 'lg'|'md'|'sm', default='lg' — The input's size.
|
|
39
|
-
- prop.inputmode:
|
|
39
|
+
- prop.inputmode: 'none'|'text'|'decimal'|'numeric'|'tel'|'search'|'email'|'url' — Tells the browser what type of data will be entered by the user, allowing it to display the appropriate virtual
|
|
40
40
|
keyboard on supportive devices.
|
|
41
41
|
- prop.value: string, default='' — The current value of the input, submitted as a name/value pair with form data.
|
|
42
42
|
- prop.defaultValue: string, default='' — The default value of the form control. Primarily used for resetting the form control.
|
|
@@ -64,11 +64,12 @@ Use the components tool by passing the args `component` and `example` for any of
|
|
|
64
64
|
- prop.pattern: string — A regular expression pattern to validate input against.
|
|
65
65
|
- prop.step: number|'any' — Specifies the granularity that the value must adhere to, or the special value `any` which means no stepping is
|
|
66
66
|
implied, allowing any numeric value. Only applies to date and number input types.
|
|
67
|
-
- prop.autocapitalize:
|
|
67
|
+
- prop.autocapitalize: 'off'|'none'|'on'|'sentences'|'words'|'characters' — Controls whether and how text input is automatically capitalized as it is entered by the user.
|
|
68
|
+
- prop.autocorrect: boolean — Indicates whether the browser's autocorrect feature is on or off.
|
|
68
69
|
- prop.autocomplete: string — Specifies what permission the browser has to provide assistance in filling out form field values. Refer to
|
|
69
70
|
[this page on MDN](https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/autocomplete) for available values.
|
|
70
71
|
- prop.autofocus: boolean — Indicates that the input should receive focus on page load.
|
|
71
|
-
- prop.enterkeyhint:
|
|
72
|
+
- prop.enterkeyhint: 'enter'|'done'|'go'|'next'|'previous'|'search'|'send' — Used to customize the label or icon of the Enter key on virtual keyboards.
|
|
72
73
|
- prop.styleOnValid [attr: style-on-valid]: boolean, default=false — Shows success styles if the validity of the input is valid.
|
|
73
74
|
- prop.spellcheck: boolean, default=true — Enables spell checking on the input.
|
|
74
75
|
- prop.valueAsDate: — Gets or sets the current value as a `Date` object. Returns `null` if the value can't be converted.
|
|
@@ -23,7 +23,7 @@ Use the components tool by passing the args `component` and `example` for any of
|
|
|
23
23
|
- prop.inverted: boolean, default=false — Inverts the link.
|
|
24
24
|
- prop.href: string, default='' — When not set, the link will render as disabled.
|
|
25
25
|
- prop.visuallyDisabled [attr: visually-disabled]: boolean, default=false — Styles the link as if it was disabled and enables aria-disabled
|
|
26
|
-
- prop.target: '
|
|
26
|
+
- prop.target: '_blank'|'_parent'|'_self'|'_top' — Tells the browser where to open the link. Only used when `href` is present.
|
|
27
27
|
- prop.download: string|undefined — Tells the browser to download the linked file as this filename. Only used when `href` is present.
|
|
28
28
|
- prop.dir: 'ltr'|'rtl'|'auto' — The element's directionality.
|
|
29
29
|
- prop.lang: string — The element's language.
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
<div class="flex gap-12">
|
|
7
7
|
<sd-link href="https://solid-design-system.fe.union-investment.de/docs/?path=/docs/docs-general-introduction--docs"
|
|
8
8
|
>Link</sd-link
|
|
9
|
-
><sd-link href="https://union-investment.com" target="_blank">New
|
|
9
|
+
><sd-link href="https://union-investment.com" target="_blank">New window</sd-link
|
|
10
10
|
><sd-link href="./placeholders/src/images/collaboration.jpg" download>Download</sd-link>
|
|
11
11
|
</div>
|
|
12
12
|
```
|
|
@@ -4,10 +4,10 @@ Use the `icon-left` and `icon-right` slots to add system icons to each side of t
|
|
|
4
4
|
<div class="flex gap-12">
|
|
5
5
|
<sd-link href="https://solid-design-system.fe.union-investment.de/docs/" standalone>
|
|
6
6
|
<sd-icon name="system/image" slot="icon-left"></sd-icon>
|
|
7
|
-
Icon
|
|
7
|
+
Icon left
|
|
8
8
|
</sd-link>
|
|
9
9
|
<sd-link href="https://solid-design-system.fe.union-investment.de/docs/" standalone>
|
|
10
|
-
Icon
|
|
10
|
+
Icon right
|
|
11
11
|
<sd-icon name="system/image" slot="icon-right"></sd-icon>
|
|
12
12
|
</sd-link>
|
|
13
13
|
</div>
|
|
@@ -4,13 +4,13 @@ Use the `visually-disabled` attribute to style the component as if it was disabl
|
|
|
4
4
|
|
|
5
5
|
```html
|
|
6
6
|
<div class="flex gap-12 h-[100px] pt-12">
|
|
7
|
-
<sd-tooltip content="Visually
|
|
7
|
+
<sd-tooltip content="Visually disabled" trigger="hover focus" size="sm">
|
|
8
8
|
<sd-link
|
|
9
9
|
size="lg"
|
|
10
10
|
href="https://solid-design-system.fe.union-investment.de/docs/"
|
|
11
11
|
visually-disabled
|
|
12
12
|
class="visually-disabled-link"
|
|
13
|
-
>Visually
|
|
13
|
+
>Visually disabled</sd-link
|
|
14
14
|
>
|
|
15
15
|
</sd-tooltip>
|
|
16
16
|
</div>
|
|
@@ -22,7 +22,7 @@ Use the components tool by passing the args `component` and `example` for any of
|
|
|
22
22
|
- prop.animated: boolean, default=false — The map-marker's is animated when displayed.
|
|
23
23
|
- prop.notInteractive [attr: not-interactive]: boolean, default=false — Determines if the map-marker is interactive.
|
|
24
24
|
- prop.href: string, default='' — When set, the underlying button will be rendered as an `<a>` with this `href` instead of a `<button>`.
|
|
25
|
-
- prop.target: '
|
|
25
|
+
- prop.target: '_blank'|'_parent'|'_self'|'_top' — Tells the browser where to open the link. Only used when `href` is present.
|
|
26
26
|
- prop.label: string, default='' — Only relevant when map-marker is interactive.
|
|
27
27
|
When set, it will be used to announce the name of the map-marker to screenreaders,
|
|
28
28
|
otherwise, screenreaders will announce the content inside the default slot.
|
|
@@ -4,7 +4,7 @@ Use dividers to group menu-items in a menu.
|
|
|
4
4
|
<sd-dropdown distance="4" rounded>
|
|
5
5
|
<sd-button variant="secondary" slot="trigger">
|
|
6
6
|
Menu
|
|
7
|
-
<sd-icon library="_internal" name="chevron-
|
|
7
|
+
<sd-icon library="_internal" name="chevron-bottom" slot="icon-right"></sd-icon>
|
|
8
8
|
</sd-button>
|
|
9
9
|
<sd-menu>
|
|
10
10
|
<sd-menu-item>Menu item 1</sd-menu-item>
|
|
@@ -44,13 +44,12 @@ return html` <div class="h-[350px]">
|
|
|
44
44
|
<sd-dropdown distance="4" rounded open>
|
|
45
45
|
<sd-button variant="secondary" slot="trigger">
|
|
46
46
|
Menu
|
|
47
|
-
<sd-icon library="_internal" name="chevron-
|
|
47
|
+
<sd-icon library="_internal" name="chevron-bottom" slot="icon-right"></sd-icon>
|
|
48
48
|
</sd-button>
|
|
49
49
|
${generateTemplate({
|
|
50
50
|
args
|
|
51
51
|
})}
|
|
52
52
|
</sd-dropdown>
|
|
53
|
-
|
|
54
53
|
</div>`;
|
|
55
54
|
}
|
|
56
55
|
};
|
|
@@ -27,7 +27,7 @@ Use the components tool by passing the args `component` and `example` for any of
|
|
|
27
27
|
- prop.vertical: boolean, default=false — The navigation item's orientation. If false, properties below this point are not used.
|
|
28
28
|
- prop.size: 'md'|'lg'|'sm', default='md' — The navigation item's font size.
|
|
29
29
|
- prop.href: string — The navigation item's href target. If provided, the navigation item will use an anchor tag otherwise it will use a button tag. The 'children' slot and accordion behavior will be ignored if an 'href' is provided.
|
|
30
|
-
- prop.target: '
|
|
30
|
+
- prop.target: '_blank'|'_parent'|'_self'|'_top' — Tells the browser where to open the link. Only used when `href` is defined.
|
|
31
31
|
- prop.download: string|undefined — Tells the browser to download the linked file as this filename. Only used when `href` is defined.
|
|
32
32
|
- prop.current: boolean, default=false — Indicates that the navigation item is currently selected. The aria-current attribute is set to "page" on the host if true.
|
|
33
33
|
- prop.disabled: boolean, default=false — Disables the navigation item.
|
|
@@ -48,7 +48,7 @@ Use the components tool by passing the args `component` and `example` for any of
|
|
|
48
48
|
### Slots
|
|
49
49
|
|
|
50
50
|
- slot.default: The navigation item's label.
|
|
51
|
-
- slot.description:
|
|
51
|
+
- slot.description: *Vertical only: Slot used to provide a description for the navigation item.
|
|
52
52
|
- slot.children: Slot used to provide nested child navigation elements. If provided, details and summary elements will be used. A chevron will be shown on the right side regardless of the chevron property.
|
|
53
53
|
|
|
54
54
|
### CSS Parts
|
|
@@ -7,9 +7,9 @@ Add `children` slot to the navigation item to create an accordion.
|
|
|
7
7
|
|
|
8
8
|
```html
|
|
9
9
|
<sd-navigation-item vertical>
|
|
10
|
-
<div>Vertical
|
|
11
|
-
<sd-navigation-item vertical indented slot="children"> Sub
|
|
12
|
-
<sd-navigation-item vertical indented slot="children"> Sub
|
|
13
|
-
<sd-navigation-item vertical indented slot="children"> Sub
|
|
10
|
+
<div>Vertical navigation with accordion</div>
|
|
11
|
+
<sd-navigation-item vertical indented slot="children"> Sub navigation 1 </sd-navigation-item>
|
|
12
|
+
<sd-navigation-item vertical indented slot="children"> Sub navigation 2 </sd-navigation-item>
|
|
13
|
+
<sd-navigation-item vertical indented slot="children"> Sub navigation 3 </sd-navigation-item>
|
|
14
14
|
</sd-navigation-item>
|
|
15
15
|
```
|
|
@@ -6,5 +6,5 @@ Use the `chevron` attribute to add a chevron to the navigation item.
|
|
|
6
6
|
- `Accordion` variant always show up / down chevron to reflect open state.
|
|
7
7
|
|
|
8
8
|
```html
|
|
9
|
-
<sd-navigation-item vertical chevron>Vertical
|
|
9
|
+
<sd-navigation-item vertical chevron>Vertical navigation with chevron</sd-navigation-item>
|
|
10
10
|
```
|
|
@@ -2,7 +2,7 @@ Use the `current` attribute to change the navigation item to a current state and
|
|
|
2
2
|
|
|
3
3
|
```html
|
|
4
4
|
<div class="flex flex-col gap-6">
|
|
5
|
-
<sd-navigation-item class="w-[174px]" current>Current
|
|
6
|
-
<sd-navigation-item vertical current>Current
|
|
5
|
+
<sd-navigation-item class="w-[174px]" current>Current horizontal</sd-navigation-item>
|
|
6
|
+
<sd-navigation-item vertical current>Current vertical</sd-navigation-item>
|
|
7
7
|
</div>
|
|
8
8
|
```
|
|
@@ -3,7 +3,7 @@ Use the `description` slot to provide a description for the navigation item.
|
|
|
3
3
|
|
|
4
4
|
```html
|
|
5
5
|
<sd-navigation-item vertical>
|
|
6
|
-
Vertical
|
|
6
|
+
Vertical navigation with description
|
|
7
7
|
<p slot="description" class="sd-paragraph">
|
|
8
8
|
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nibh justo ullam.
|
|
9
9
|
</p>
|
|
@@ -2,5 +2,5 @@ Use the `divider` attribute to add a divider above the navigation item.
|
|
|
2
2
|
**Hint:** Only works with `vertical` attribute.
|
|
3
3
|
|
|
4
4
|
```html
|
|
5
|
-
<sd-navigation-item vertical divider>Vertical
|
|
5
|
+
<sd-navigation-item vertical divider>Vertical navigation with divider</sd-navigation-item>
|
|
6
6
|
```
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Use the `vertical` attribute to set the axis of the navigation-item.
|
|
2
2
|
|
|
3
3
|
```html
|
|
4
|
-
<sd-navigation-item>Horizontal
|
|
5
|
-
<sd-navigation-item vertical>Vertical
|
|
4
|
+
<sd-navigation-item>Horizontal navigation</sd-navigation-item>
|
|
5
|
+
<sd-navigation-item vertical>Vertical navigation</sd-navigation-item>
|
|
6
6
|
```
|
|
@@ -6,9 +6,9 @@ Use the `separated` attribute, to have more that only one action. It is possible
|
|
|
6
6
|
|
|
7
7
|
```html
|
|
8
8
|
<sd-navigation-item href="https://www.union-investment.de/" target="_blank" vertical separated>
|
|
9
|
-
<div>Vertical
|
|
10
|
-
<sd-navigation-item vertical indented slot="children"> Sub
|
|
11
|
-
<sd-navigation-item vertical indented slot="children"> Sub
|
|
12
|
-
<sd-navigation-item vertical indented slot="children"> Sub
|
|
9
|
+
<div>Vertical navigation separated</div>
|
|
10
|
+
<sd-navigation-item vertical indented slot="children"> Sub navigation 1 </sd-navigation-item>
|
|
11
|
+
<sd-navigation-item vertical indented slot="children"> Sub navigation 2 </sd-navigation-item>
|
|
12
|
+
<sd-navigation-item vertical indented slot="children"> Sub navigation 3 </sd-navigation-item>
|
|
13
13
|
</sd-navigation-item>
|
|
14
14
|
```
|
|
@@ -50,8 +50,8 @@ Use the components tool by passing the args `component` and `example` for any of
|
|
|
50
50
|
- part.icon: The container that wraps the optional icon.
|
|
51
51
|
- part.content: The container that wraps the notifications's main content and the close button.
|
|
52
52
|
- part.message: The container that wraps the notifications's main content.
|
|
53
|
-
- part.duration-
|
|
54
|
-
- part.duration-
|
|
53
|
+
- part.duration-indicator__elapsed: The current duration indicator.
|
|
54
|
+
- part.duration-indicator__total: The total duration indicator.
|
|
55
55
|
- part.close-button: The close button, an `<sd-icon-button>`.
|
|
56
56
|
|
|
57
57
|
## Guidelines
|
|
@@ -5,6 +5,11 @@ Use the `duration` attribute to set the duration (in milliseconds) of the notifi
|
|
|
5
5
|
<sd-notification id="duration-example" variant="info" open duration="5000">
|
|
6
6
|
Notification will self close after 5 seconds
|
|
7
7
|
</sd-notification>
|
|
8
|
+
<style>
|
|
9
|
+
sd-notification#duration-example::part(base) {
|
|
10
|
+
margin-top: 0.5rem;
|
|
11
|
+
}
|
|
12
|
+
</style>
|
|
8
13
|
<script>
|
|
9
14
|
var notificationDuration = document.querySelector('#duration-example');
|
|
10
15
|
notificationDuration.addEventListener('sd-after-hide', () => {
|
|
@@ -24,6 +24,7 @@ Use the `toastStack` attribute to change the position of the toast notifications
|
|
|
24
24
|
|
|
25
25
|
- It requires the use of the `toast` method to work. Click on the `Show code` button to see the JavaScript code responsible for generating the toast notification.
|
|
26
26
|
- Click on one of the buttons below to see the corresponding toast notification.
|
|
27
|
+
|
|
27
28
|
<h4 class="sd-headline sd-headline--size-lg">Toast placement top right</h4>
|
|
28
29
|
Use the `data-notification-position` attribute with the value `top-right` to align the toast to the top right.
|
|
29
30
|
|