@daffodil/design 0.91.0 → 0.92.3-rc.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/accordion/README.md +26 -38
- package/accordion/index.d.ts +2 -2
- package/article/README.md +66 -46
- package/article/index.d.ts +22 -1
- package/article/src/article-theme.scss +12 -0
- package/breadcrumb/README.md +6 -1
- package/breadcrumb/index.d.ts +65 -11
- package/breadcrumb/src/breadcrumb-theme.scss +1 -1
- package/button/README.md +36 -33
- package/button/index.d.ts +26 -5
- package/button/src/button/basic/button-theme.scss +4 -2
- package/button/src/button/button-base.scss +26 -3
- package/button/src/button/icon/icon-theme.scss +10 -6
- package/button/src/button/raised/raised-theme.scss +4 -2
- package/callout/README.md +15 -27
- package/card/README.md +36 -61
- package/container/README.md +18 -23
- package/fesm2022/daffodil-design-accordion.mjs +13 -13
- package/fesm2022/daffodil-design-accordion.mjs.map +1 -1
- package/fesm2022/daffodil-design-article.mjs +168 -26
- package/fesm2022/daffodil-design-article.mjs.map +1 -1
- package/fesm2022/daffodil-design-breadcrumb.mjs +180 -28
- package/fesm2022/daffodil-design-breadcrumb.mjs.map +1 -1
- package/fesm2022/daffodil-design-button.mjs +83 -42
- package/fesm2022/daffodil-design-button.mjs.map +1 -1
- package/fesm2022/daffodil-design-callout.mjs +23 -23
- package/fesm2022/daffodil-design-callout.mjs.map +1 -1
- package/fesm2022/daffodil-design-card.mjs +33 -33
- package/fesm2022/daffodil-design-card.mjs.map +1 -1
- package/fesm2022/daffodil-design-checkbox.mjs +13 -13
- package/fesm2022/daffodil-design-checkbox.mjs.map +1 -1
- package/fesm2022/daffodil-design-container.mjs +8 -8
- package/fesm2022/daffodil-design-container.mjs.map +1 -1
- package/fesm2022/daffodil-design-form-field.mjs +26 -26
- package/fesm2022/daffodil-design-form-field.mjs.map +1 -1
- package/fesm2022/daffodil-design-form.mjs +9 -9
- package/fesm2022/daffodil-design-form.mjs.map +1 -1
- package/fesm2022/daffodil-design-hero.mjs +23 -23
- package/fesm2022/daffodil-design-hero.mjs.map +1 -1
- package/fesm2022/daffodil-design-image.mjs +8 -8
- package/fesm2022/daffodil-design-image.mjs.map +1 -1
- package/fesm2022/daffodil-design-input.mjs +18 -14
- package/fesm2022/daffodil-design-input.mjs.map +1 -1
- package/fesm2022/daffodil-design-link-set.mjs +25 -17
- package/fesm2022/daffodil-design-link-set.mjs.map +1 -1
- package/fesm2022/daffodil-design-list.mjs +16 -16
- package/fesm2022/daffodil-design-list.mjs.map +1 -1
- package/fesm2022/daffodil-design-loading-icon.mjs +8 -8
- package/fesm2022/daffodil-design-loading-icon.mjs.map +1 -1
- package/fesm2022/daffodil-design-media-gallery.mjs +13 -13
- package/fesm2022/daffodil-design-media-gallery.mjs.map +1 -1
- package/fesm2022/daffodil-design-menu.mjs +223 -60
- package/fesm2022/daffodil-design-menu.mjs.map +1 -1
- package/fesm2022/daffodil-design-modal.mjs +33 -29
- package/fesm2022/daffodil-design-modal.mjs.map +1 -1
- package/fesm2022/daffodil-design-native-select.mjs +47 -41
- package/fesm2022/daffodil-design-native-select.mjs.map +1 -1
- package/fesm2022/daffodil-design-navbar.mjs +25 -21
- package/fesm2022/daffodil-design-navbar.mjs.map +1 -1
- package/fesm2022/daffodil-design-notification.mjs +16 -16
- package/fesm2022/daffodil-design-notification.mjs.map +1 -1
- package/fesm2022/daffodil-design-paginator.mjs +7 -7
- package/fesm2022/daffodil-design-paginator.mjs.map +1 -1
- package/fesm2022/daffodil-design-progress-bar.mjs +10 -10
- package/fesm2022/daffodil-design-progress-bar.mjs.map +1 -1
- package/fesm2022/daffodil-design-quantity-field.mjs +17 -14
- package/fesm2022/daffodil-design-quantity-field.mjs.map +1 -1
- package/fesm2022/daffodil-design-radio.mjs +16 -16
- package/fesm2022/daffodil-design-radio.mjs.map +1 -1
- package/fesm2022/daffodil-design-select.mjs +6 -6
- package/fesm2022/daffodil-design-select.mjs.map +1 -1
- package/fesm2022/daffodil-design-sidebar.mjs +25 -25
- package/fesm2022/daffodil-design-sidebar.mjs.map +1 -1
- package/fesm2022/daffodil-design-spinner.mjs +99 -0
- package/fesm2022/daffodil-design-spinner.mjs.map +1 -0
- package/fesm2022/daffodil-design-switch.mjs +3 -3
- package/fesm2022/daffodil-design-switch.mjs.map +1 -1
- package/fesm2022/daffodil-design-tabs.mjs +15 -15
- package/fesm2022/daffodil-design-tabs.mjs.map +1 -1
- package/fesm2022/daffodil-design-tag.mjs +7 -7
- package/fesm2022/daffodil-design-tag.mjs.map +1 -1
- package/fesm2022/daffodil-design-text-snippet.mjs +6 -8
- package/fesm2022/daffodil-design-text-snippet.mjs.map +1 -1
- package/fesm2022/daffodil-design-textarea.mjs +6 -3
- package/fesm2022/daffodil-design-textarea.mjs.map +1 -1
- package/fesm2022/daffodil-design-toast.mjs +23 -25
- package/fesm2022/daffodil-design-toast.mjs.map +1 -1
- package/fesm2022/daffodil-design-tree.mjs +152 -103
- package/fesm2022/daffodil-design-tree.mjs.map +1 -1
- package/fesm2022/daffodil-design-youtube-player.mjs +6 -6
- package/fesm2022/daffodil-design-youtube-player.mjs.map +1 -1
- package/fesm2022/daffodil-design.mjs +385 -326
- package/fesm2022/daffodil-design.mjs.map +1 -1
- package/form-field/README.md +50 -85
- package/form-field/index.d.ts +11 -9
- package/hero/README.md +5 -5
- package/image/README.md +2 -2
- package/index.d.ts +184 -270
- package/input/README.md +4 -4
- package/input/index.d.ts +4 -3
- package/link-set/index.d.ts +9 -1
- package/list/README.md +2 -2
- package/loading-icon/README.md +1 -1
- package/loading-icon/index.d.ts +1 -1
- package/media-gallery/README.md +3 -3
- package/menu/README.md +107 -10
- package/menu/index.d.ts +143 -11
- package/modal/README.md +1 -1
- package/modal/index.d.ts +23 -15
- package/native-select/README.md +4 -4
- package/native-select/index.d.ts +8 -7
- package/navbar/README.md +23 -17
- package/navbar/index.d.ts +12 -2
- package/navbar/src/navbar-theme.scss +4 -46
- package/notification/README.md +4 -4
- package/package.json +1 -1
- package/paginator/README.md +42 -6
- package/paginator/index.d.ts +4 -2
- package/progress-bar/README.md +3 -3
- package/quantity-field/README.md +4 -4
- package/quantity-field/index.d.ts +4 -1
- package/radio/README.md +1 -1
- package/scss/theme.scss +7 -1
- package/scss/theming/_color-palettes.scss +0 -6
- package/select/README.md +4 -4
- package/sidebar/README.md +6 -6
- package/spinner/README.md +57 -0
- package/spinner/index.d.ts +53 -0
- package/spinner/src/spinner-theme.scss +62 -0
- package/switch/README.md +4 -4
- package/switch/index.d.ts +2 -2
- package/tabs/README.md +1 -1
- package/tabs/index.d.ts +2 -2
- package/tag/README.md +24 -30
- package/tag/index.d.ts +1 -1
- package/text-snippet/README.md +1 -1
- package/text-snippet/src/text-snippet-theme.scss +12 -0
- package/textarea/README.md +4 -4
- package/textarea/index.d.ts +4 -4
- package/toast/README.md +4 -4
- package/tree/README.md +39 -22
- package/tree/index.d.ts +57 -90
package/navbar/README.md
CHANGED
|
@@ -1,11 +1,10 @@
|
|
|
1
1
|
# Navbar
|
|
2
|
-
Navbar is a flexible and extensible
|
|
2
|
+
Navbar is a flexible and extensible component that provides a container for navigation elements.
|
|
3
3
|
|
|
4
4
|
## Overview
|
|
5
5
|
The navbar contains minimal layout styles, allowing the content within it to be fluid and customizable. It utilizes the `flex` display and is customizable with all the flexbox properties. It's required to be used with the native HTML `<nav>` element to ensure an accessible experience by default.
|
|
6
6
|
|
|
7
|
-
|
|
8
|
-
<design-land-example-viewer-container example="basic-navbar"></design-land-example-viewer-container>
|
|
7
|
+
<daff-docs-example-viewer example="basic-navbar"></daff-docs-example-viewer>
|
|
9
8
|
|
|
10
9
|
## Usage
|
|
11
10
|
|
|
@@ -49,34 +48,41 @@ export class CustomComponentModule { }
|
|
|
49
48
|
|
|
50
49
|
> This method is deprecated. It's recommended to update all custom components to standalone.
|
|
51
50
|
|
|
52
|
-
##
|
|
53
|
-
The default background color of a navbar is light gray, but it can be updated to one of the supported colors by using the `color` property.
|
|
51
|
+
## Features
|
|
54
52
|
|
|
55
|
-
|
|
53
|
+
### Elevation
|
|
54
|
+
Use the `elevated` property to add a shadow effect to the navbar.
|
|
56
55
|
|
|
57
|
-
<
|
|
56
|
+
<daff-docs-example-viewer example="elevated-navbar"></daff-docs-example-viewer>
|
|
58
57
|
|
|
59
|
-
|
|
60
|
-
|
|
58
|
+
### Blurred background
|
|
59
|
+
Use the `blurred` property to add a semi-transparent background effect to the navbar, creating a frosted glass appearance.
|
|
61
60
|
|
|
62
|
-
<
|
|
61
|
+
<daff-docs-example-viewer example="blurred-navbar"></daff-docs-example-viewer>
|
|
63
62
|
|
|
64
|
-
|
|
65
|
-
The raised property adds elevation to a navbar. To enable it, set the `raised` property on `<nav daff-navbar>`.
|
|
63
|
+
Both `elevated` and `blurred` can be combined for a layered effect:
|
|
66
64
|
|
|
67
|
-
|
|
65
|
+
```html
|
|
66
|
+
<nav daff-navbar [elevated]="true" [blurred]="true">
|
|
67
|
+
<!-- navigation items -->
|
|
68
|
+
</nav>
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
### Contained navbar
|
|
72
|
+
A navbar can be contained to a specific width by using the [container](/libs/design/container/README.md) component. The layout styles set on the navbar will automatically be passed down to the container.
|
|
73
|
+
|
|
74
|
+
<daff-docs-example-viewer example="contained-navbar"></daff-docs-example-viewer>
|
|
68
75
|
|
|
69
76
|
## Accessibility
|
|
70
|
-
Daffodil enforces the usage of the native `<nav>` HTML element to ensure an accessible experience by default. If more than one navbar is used, every navbar should be given a meaningful label by using the `aria-
|
|
77
|
+
Daffodil enforces the usage of the native `<nav>` HTML element to ensure an accessible experience by default. If more than one navbar is used, every navbar should be given a meaningful label by using the `aria-label` attribute.
|
|
71
78
|
|
|
72
|
-
### Example
|
|
73
79
|
```html
|
|
74
|
-
<nav daff-navbar aria-
|
|
80
|
+
<nav daff-navbar aria-label="main navigation">
|
|
75
81
|
<!-- navigation items -->
|
|
76
82
|
</nav>
|
|
77
83
|
|
|
78
84
|
<footer>
|
|
79
|
-
<nav daff-navbar aria-
|
|
85
|
+
<nav daff-navbar aria-label="footer navigation">
|
|
80
86
|
<!-- navigation items -->
|
|
81
87
|
</nav>
|
|
82
88
|
</footer>
|
package/navbar/index.d.ts
CHANGED
|
@@ -2,10 +2,20 @@ import * as i0 from '@angular/core';
|
|
|
2
2
|
import * as i1$1 from '@angular/common';
|
|
3
3
|
import * as i1 from '@daffodil/design';
|
|
4
4
|
|
|
5
|
+
/**
|
|
6
|
+
* Navbar is a flexible and extensible component that provides a container for navigation elements.
|
|
7
|
+
*/
|
|
5
8
|
declare class DaffNavbarComponent {
|
|
6
|
-
|
|
9
|
+
/**
|
|
10
|
+
* Whether the navbar should have an elevated appearance with a shadow effect.
|
|
11
|
+
*/
|
|
12
|
+
elevated: i0.InputSignal<boolean>;
|
|
13
|
+
/**
|
|
14
|
+
* Whether the navbar should have a blurred background effect.
|
|
15
|
+
*/
|
|
16
|
+
blurred: i0.InputSignal<boolean>;
|
|
7
17
|
static ɵfac: i0.ɵɵFactoryDeclaration<DaffNavbarComponent, never>;
|
|
8
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<DaffNavbarComponent, "nav[daff-navbar]", never, { "
|
|
18
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<DaffNavbarComponent, "nav[daff-navbar]", never, { "elevated": { "alias": "elevated"; "required": false; "isSignal": true; }; "blurred": { "alias": "blurred"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, [{ directive: typeof i1.DaffManageContainerLayoutDirective; inputs: {}; outputs: {}; }]>;
|
|
9
19
|
}
|
|
10
20
|
|
|
11
21
|
/**
|
|
@@ -1,61 +1,19 @@
|
|
|
1
1
|
@use '../../scss/theming' as *;
|
|
2
2
|
|
|
3
|
-
@mixin daff-navbar-theme-variant($color) {
|
|
4
|
-
background: $color;
|
|
5
|
-
color: daff-text-contrast($color);
|
|
6
|
-
}
|
|
7
|
-
|
|
8
3
|
// stylelint-disable selector-class-pattern
|
|
9
4
|
@mixin daff-navbar-theme($theme) {
|
|
10
|
-
$primary: daff-get-palette($theme, primary);
|
|
11
|
-
$secondary: daff-get-palette($theme, secondary);
|
|
12
|
-
$tertiary: daff-get-palette($theme, tertiary);
|
|
13
|
-
$neutral: daff-get-palette($theme, neutral);
|
|
14
5
|
$base: daff-get-base-color($theme, base);
|
|
15
|
-
$base-contrast: daff-get-base-color($theme, base-contrast);
|
|
16
|
-
$white: daff-get-base-color($theme, 'white');
|
|
17
6
|
$black: daff-get-base-color($theme, 'black');
|
|
18
|
-
$mode: daff-get-theme-mode($theme);
|
|
19
7
|
|
|
20
8
|
.daff-navbar {
|
|
21
|
-
|
|
22
|
-
@include daff-navbar-theme-variant(daff-color($neutral, 10));
|
|
23
|
-
}
|
|
9
|
+
background: $base;
|
|
24
10
|
|
|
25
|
-
|
|
26
|
-
|
|
11
|
+
&.blurred {
|
|
12
|
+
background: rgba($base, 0.5);
|
|
27
13
|
}
|
|
28
14
|
|
|
29
|
-
&.
|
|
15
|
+
&.elevated {
|
|
30
16
|
box-shadow: 0 4px 10px rgba($black, 0.08);
|
|
31
17
|
}
|
|
32
|
-
|
|
33
|
-
&.daff-primary {
|
|
34
|
-
@include daff-navbar-theme-variant(daff-color($primary));
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
&.daff-secondary {
|
|
38
|
-
@include daff-navbar-theme-variant(daff-color($secondary));
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
&.daff-tertiary {
|
|
42
|
-
@include daff-navbar-theme-variant(daff-color($tertiary));
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
&.daff-black {
|
|
46
|
-
@include daff-navbar-theme-variant($black);
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
&.daff-white {
|
|
50
|
-
@include daff-navbar-theme-variant($white);
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
&.daff-theme {
|
|
54
|
-
@include daff-navbar-theme-variant($base);
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
&.daff-theme-contrast {
|
|
58
|
-
@include daff-navbar-theme-variant($base-contrast);
|
|
59
|
-
}
|
|
60
18
|
}
|
|
61
19
|
}
|
package/notification/README.md
CHANGED
|
@@ -6,7 +6,7 @@ Notifications display short messages that are closely associated with nearby con
|
|
|
6
6
|
|
|
7
7
|
Notifications should not be used to display app-level alerts. For global messages, use the [Toast](/libs/design/toast/README.md) component.
|
|
8
8
|
|
|
9
|
-
<
|
|
9
|
+
<daff-docs-example-viewer example="default-notification"></daff-docs-example-viewer>
|
|
10
10
|
|
|
11
11
|
## Best practices
|
|
12
12
|
|
|
@@ -93,19 +93,19 @@ Use the `[daffPrefix]` element to add a decorative icon that provides a quick vi
|
|
|
93
93
|
### Status
|
|
94
94
|
Use the `status` property to visually differentiate between notification types such as `info`, `warn`, `critical`, or `success`.
|
|
95
95
|
|
|
96
|
-
<
|
|
96
|
+
<daff-docs-example-viewer example="notification-status"></daff-docs-example-viewer>
|
|
97
97
|
|
|
98
98
|
### Orientation
|
|
99
99
|
Use the `orientation` property to stack notification content either `vertical` (default) or `horizontal`.
|
|
100
100
|
|
|
101
|
-
<
|
|
101
|
+
<daff-docs-example-viewer example="notification-orientations"></daff-docs-example-viewer>
|
|
102
102
|
|
|
103
103
|
### Dismissing a notification
|
|
104
104
|
Notifications are persistent by default. To display a close button, set the `dismissible` property to `true`.
|
|
105
105
|
|
|
106
106
|
> Avoid making critical notifications dismissible to ensure users can read or interact with the necessary information.
|
|
107
107
|
|
|
108
|
-
<
|
|
108
|
+
<daff-docs-example-viewer example="dismissible-notification"></daff-docs-example-viewer>
|
|
109
109
|
|
|
110
110
|
## Accessibility
|
|
111
111
|
**Live region roles:**
|
package/package.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"name":"@daffodil/design","nx":{"targets":{"build":{"outputs":["{workspaceRoot}/dist/design"]}}},"version":"0.
|
|
1
|
+
{"name":"@daffodil/design","nx":{"targets":{"build":{"outputs":["{workspaceRoot}/dist/design"]}}},"version":"0.92.3-rc.0","author":"Graycore LLC","license":"MIT","bugs":{"url":"https://github.com/graycoreio/daffodil/issues"},"homepage":"https://github.com/graycoreio/daffodil","description":"An Angular component library built to support ecommerce applications with accessible UI components and theming. Part of the Daffodil ecommerce framework.","repository":{"type":"git","url":"https://github.com/graycoreio/daffodil"},"peerDependencies":{"@angular/animations":"^20.0.0","@angular/common":"^20.0.0","@angular/core":"^20.0.0","@angular/forms":"^20.0.0","@angular/cdk":"^20.0.0","@daffodil/core":"0.92.3-rc.0","@fortawesome/angular-fontawesome":"^3.0.0","@fortawesome/fontawesome-svg-core":"^7.0.1","@fortawesome/free-solid-svg-icons":"^7.0.1","@fortawesome/free-brands-svg-icons":"^7.0.1","@fortawesome/free-regular-svg-icons":"^7.0.1","modern-normalize":"^3.0.1","rxjs":"^7.0.0"},"optionalDependencies":{"@faker-js/faker":"^10.3.0"},"exports":{"./scss/global":{"sass":"./scss/global.scss"},"./scss/theme":{"sass":"./scss/theme.scss"},"./scss/utilities":{"sass":"./scss/utilities.scss"},"./scss/typography":{"sass":"./scss/typography/_index.scss"},"./package.json":{"default":"./package.json"},".":{"types":"./index.d.ts","default":"./fesm2022/daffodil-design.mjs"},"./article":{"types":"./article/index.d.ts","default":"./fesm2022/daffodil-design-article.mjs"},"./accordion":{"types":"./accordion/index.d.ts","default":"./fesm2022/daffodil-design-accordion.mjs"},"./breadcrumb":{"types":"./breadcrumb/index.d.ts","default":"./fesm2022/daffodil-design-breadcrumb.mjs"},"./button":{"types":"./button/index.d.ts","default":"./fesm2022/daffodil-design-button.mjs"},"./callout":{"types":"./callout/index.d.ts","default":"./fesm2022/daffodil-design-callout.mjs"},"./card":{"types":"./card/index.d.ts","default":"./fesm2022/daffodil-design-card.mjs"},"./checkbox":{"types":"./checkbox/index.d.ts","default":"./fesm2022/daffodil-design-checkbox.mjs"},"./container":{"types":"./container/index.d.ts","default":"./fesm2022/daffodil-design-container.mjs"},"./form":{"types":"./form/index.d.ts","default":"./fesm2022/daffodil-design-form.mjs"},"./form-field":{"types":"./form-field/index.d.ts","default":"./fesm2022/daffodil-design-form-field.mjs"},"./hero":{"types":"./hero/index.d.ts","default":"./fesm2022/daffodil-design-hero.mjs"},"./image":{"types":"./image/index.d.ts","default":"./fesm2022/daffodil-design-image.mjs"},"./input":{"types":"./input/index.d.ts","default":"./fesm2022/daffodil-design-input.mjs"},"./link-set":{"types":"./link-set/index.d.ts","default":"./fesm2022/daffodil-design-link-set.mjs"},"./list":{"types":"./list/index.d.ts","default":"./fesm2022/daffodil-design-list.mjs"},"./loading-icon":{"types":"./loading-icon/index.d.ts","default":"./fesm2022/daffodil-design-loading-icon.mjs"},"./media-gallery":{"types":"./media-gallery/index.d.ts","default":"./fesm2022/daffodil-design-media-gallery.mjs"},"./menu":{"types":"./menu/index.d.ts","default":"./fesm2022/daffodil-design-menu.mjs"},"./modal":{"types":"./modal/index.d.ts","default":"./fesm2022/daffodil-design-modal.mjs"},"./native-select":{"types":"./native-select/index.d.ts","default":"./fesm2022/daffodil-design-native-select.mjs"},"./navbar":{"types":"./navbar/index.d.ts","default":"./fesm2022/daffodil-design-navbar.mjs"},"./notification":{"types":"./notification/index.d.ts","default":"./fesm2022/daffodil-design-notification.mjs"},"./paginator":{"types":"./paginator/index.d.ts","default":"./fesm2022/daffodil-design-paginator.mjs"},"./progress-bar":{"types":"./progress-bar/index.d.ts","default":"./fesm2022/daffodil-design-progress-bar.mjs"},"./quantity-field":{"types":"./quantity-field/index.d.ts","default":"./fesm2022/daffodil-design-quantity-field.mjs"},"./radio":{"types":"./radio/index.d.ts","default":"./fesm2022/daffodil-design-radio.mjs"},"./select":{"types":"./select/index.d.ts","default":"./fesm2022/daffodil-design-select.mjs"},"./sidebar":{"types":"./sidebar/index.d.ts","default":"./fesm2022/daffodil-design-sidebar.mjs"},"./spinner":{"types":"./spinner/index.d.ts","default":"./fesm2022/daffodil-design-spinner.mjs"},"./switch":{"types":"./switch/index.d.ts","default":"./fesm2022/daffodil-design-switch.mjs"},"./tabs":{"types":"./tabs/index.d.ts","default":"./fesm2022/daffodil-design-tabs.mjs"},"./tag":{"types":"./tag/index.d.ts","default":"./fesm2022/daffodil-design-tag.mjs"},"./text-snippet":{"types":"./text-snippet/index.d.ts","default":"./fesm2022/daffodil-design-text-snippet.mjs"},"./textarea":{"types":"./textarea/index.d.ts","default":"./fesm2022/daffodil-design-textarea.mjs"},"./toast":{"types":"./toast/index.d.ts","default":"./fesm2022/daffodil-design-toast.mjs"},"./tree":{"types":"./tree/index.d.ts","default":"./fesm2022/daffodil-design-tree.mjs"},"./youtube-player":{"types":"./youtube-player/index.d.ts","default":"./fesm2022/daffodil-design-youtube-player.mjs"}},"module":"fesm2022/daffodil-design.mjs","typings":"index.d.ts","sideEffects":false,"dependencies":{"tslib":"^2.6.2"}}
|
package/paginator/README.md
CHANGED
|
@@ -1,8 +1,20 @@
|
|
|
1
1
|
# Paginator
|
|
2
|
-
|
|
2
|
+
Pagination organizes and divides large amounts of content on separate pages and gives the user control over how much content they want to view on each page.
|
|
3
3
|
|
|
4
|
-
##
|
|
5
|
-
|
|
4
|
+
## Overview
|
|
5
|
+
Pagination can be used with a data table or on a page. It automatically truncates page numbers when there are many pages, using ellipses to indicate skipped pages.
|
|
6
|
+
|
|
7
|
+
<daff-docs-example-viewer example="basic-paginator"></daff-docs-example-viewer>
|
|
8
|
+
|
|
9
|
+
## Best practices
|
|
10
|
+
|
|
11
|
+
**When to use**
|
|
12
|
+
- Displaying large datasets or lists that would be overwhelming on a single page
|
|
13
|
+
- Navigating through search results or product listings
|
|
14
|
+
- Breaking up long-form content into manageable sections
|
|
15
|
+
|
|
16
|
+
**When not to use**
|
|
17
|
+
- Do not use it to display linear journeys, for example, in a form progression. Instead, use the [progress bar](/libs/design/progress-bar/README.md) or [button](/libs/design/button/README.md) components to navigate forward and backward.
|
|
6
18
|
|
|
7
19
|
## Usage
|
|
8
20
|
|
|
@@ -44,10 +56,34 @@ import { CustomComponent } from './custom.component';
|
|
|
44
56
|
export class CustomComponentModule { }
|
|
45
57
|
```
|
|
46
58
|
|
|
59
|
+
> **Warning**
|
|
60
|
+
>
|
|
47
61
|
> This method is deprecated. It's recommended to update all custom components to standalone.
|
|
48
62
|
|
|
49
|
-
##
|
|
50
|
-
|
|
63
|
+
## Basic structure
|
|
64
|
+
```html
|
|
65
|
+
<daff-paginator aria-label="Search results page"></daff-paginator>
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
## Features
|
|
69
|
+
|
|
70
|
+
### Truncation
|
|
71
|
+
Ellipses are used to truncate page numbers when the total number of pages exceeds the maximum display limit. Double truncation appears when the current page is separated by more than three pages from both the first and last page.
|
|
51
72
|
|
|
52
73
|
## Accessibility
|
|
53
|
-
|
|
74
|
+
|
|
75
|
+
### Daffodil provides
|
|
76
|
+
`role="navigation"` on the paginator element to ensure proper semantic structure.
|
|
77
|
+
|
|
78
|
+
### Developer responsibilities
|
|
79
|
+
Use `aria-label` or `aria-labelledby` to give a meaningful label to `<daff-paginator>` that describes the content controlled by the paginator. If more than one paginator is used on a page, each will need a unique `aria-label`.
|
|
80
|
+
|
|
81
|
+
```html
|
|
82
|
+
<daff-paginator aria-label="Product list paginator">
|
|
83
|
+
<!-- paginator content -->
|
|
84
|
+
</daff-paginator>
|
|
85
|
+
|
|
86
|
+
<daff-paginator aria-label="Search results paginator">
|
|
87
|
+
<!-- paginator content -->
|
|
88
|
+
</daff-paginator>
|
|
89
|
+
```
|
package/paginator/index.d.ts
CHANGED
|
@@ -16,8 +16,10 @@ declare class DaffPaginatorComponent implements OnChanges {
|
|
|
16
16
|
*/
|
|
17
17
|
faChevronLeft: _fortawesome_fontawesome_common_types.IconDefinition;
|
|
18
18
|
/**
|
|
19
|
-
* The total number of pages the paginator tracks. This number can change dynamically, but the end user is responsible for keeping numberOfPages
|
|
20
|
-
* and currentPage in sync.
|
|
19
|
+
* The total number of pages the paginator tracks. This number can change dynamically, but the end user is responsible for keeping `numberOfPages`
|
|
20
|
+
* and `currentPage` in sync.
|
|
21
|
+
*
|
|
22
|
+
* For example, if the `numberOfPages` is dynamically changed to a value less than the `currentPage`, the paginator will break.
|
|
21
23
|
*/
|
|
22
24
|
numberOfPages: number;
|
|
23
25
|
/**
|
package/progress-bar/README.md
CHANGED
|
@@ -4,7 +4,7 @@ A progress bar provides visual feedback about the duration or progress of a task
|
|
|
4
4
|
## Overview
|
|
5
5
|
Progress bars help users understand the status of ongoing processes or tasks. They can display either determinate progress (when the percentage is known) or indeterminate progress (when the percentage is unknown or cannot be calculated).
|
|
6
6
|
|
|
7
|
-
<
|
|
7
|
+
<daff-docs-example-viewer example="progress-bar-default"></daff-docs-example-viewer>
|
|
8
8
|
|
|
9
9
|
## Best practices
|
|
10
10
|
|
|
@@ -81,7 +81,7 @@ Use determinate progress bars when the percentage of completion is known. This i
|
|
|
81
81
|
### Indeterminate
|
|
82
82
|
Use indeterminate progress bars when when the percentage of completion is unknown or cannot be calculated. Set the `indeterminate` property to `true`:
|
|
83
83
|
|
|
84
|
-
<
|
|
84
|
+
<daff-docs-example-viewer example="progress-bar-indeterminate"></daff-docs-example-viewer>
|
|
85
85
|
|
|
86
86
|
## Features
|
|
87
87
|
|
|
@@ -90,7 +90,7 @@ The default color is `primary`. Use the `color` property to change a progress ba
|
|
|
90
90
|
|
|
91
91
|
> `theme`, `white`, and `black` should be used with caution to ensure that there is sufficient contrast.
|
|
92
92
|
|
|
93
|
-
<
|
|
93
|
+
<daff-docs-example-viewer example="progress-bar-themes"></daff-docs-example-viewer>
|
|
94
94
|
|
|
95
95
|
## Accessibility
|
|
96
96
|
Progress bar implements the ARIA `role="progressbar"` pattern.
|
package/quantity-field/README.md
CHANGED
|
@@ -4,7 +4,7 @@ Quantity field is a form control element that switches between a native select a
|
|
|
4
4
|
## Overview
|
|
5
5
|
Quantity field is intended for use with cart items and product quantities. The maximum number accepted in a quantity select is configurable and set to 10 by default. It will switch to a quantity input if 10+ is selected.
|
|
6
6
|
|
|
7
|
-
<
|
|
7
|
+
<daff-docs-example-viewer example="basic-quantity-field"></daff-docs-example-viewer>
|
|
8
8
|
|
|
9
9
|
## Usage
|
|
10
10
|
|
|
@@ -52,12 +52,12 @@ export class CustomComponentModule { }
|
|
|
52
52
|
The default allowed range of numbers is 1 to 500. This can be changed by passing in the desired min and max values as inputs. Note that this does not validate the actual input. It merely informs the select which options it should generate and sets the input's min and max attributes. See [input#min](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/number#min) and [input#max](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/number#max) for more information.
|
|
53
53
|
|
|
54
54
|
## Disabled quantity field
|
|
55
|
-
<
|
|
55
|
+
<daff-docs-example-viewer example="disabled-quantity-field"></daff-docs-example-viewer>
|
|
56
56
|
|
|
57
57
|
## Custom Select Max Value (15)
|
|
58
58
|
The maximum value at which the field will switch to using an input is configurable.
|
|
59
|
-
<
|
|
59
|
+
<daff-docs-example-viewer example="select-max-quantity-field"></daff-docs-example-viewer>
|
|
60
60
|
|
|
61
61
|
## Custom Range Limits (5 - 50)
|
|
62
62
|
Custom range limits is the absolute minimum and maximum values can be specified.
|
|
63
|
-
<
|
|
63
|
+
<daff-docs-example-viewer example="custom-range-quantity-field"></daff-docs-example-viewer>
|
|
@@ -96,6 +96,9 @@ declare class DaffQuantitySelectComponent {
|
|
|
96
96
|
static ɵcmp: i0.ɵɵComponentDeclaration<DaffQuantitySelectComponent, "daff-quantity-select", never, { "min": { "alias": "min"; "required": false; }; "max": { "alias": "max"; "required": false; }; "extendable": { "alias": "extendable"; "required": false; }; }, {}, never, never, true, never>;
|
|
97
97
|
}
|
|
98
98
|
|
|
99
|
+
/**
|
|
100
|
+
* @deprecated in favor of DaffSfQuantityFieldComponent. Deprecated in version 0.92.0. Will be removed in version 0.95.0.
|
|
101
|
+
*/
|
|
99
102
|
declare class DaffQuantityFieldComponent extends DaffFormFieldControl<number> implements ControlValueAccessor, DaffFormFieldControl<number> {
|
|
100
103
|
ngControl: NgControl;
|
|
101
104
|
private cd;
|
|
@@ -157,7 +160,7 @@ declare class DaffQuantityFieldComponent extends DaffFormFieldControl<number> im
|
|
|
157
160
|
}
|
|
158
161
|
|
|
159
162
|
/**
|
|
160
|
-
* @deprecated in favor of
|
|
163
|
+
* @deprecated in favor of DaffSfQuantityFieldComponent. Deprecated in version 0.92.0. Will be removed in version 0.95.0.
|
|
161
164
|
*/
|
|
162
165
|
declare class DaffQuantityFieldModule {
|
|
163
166
|
static ɵfac: i0.ɵɵFactoryDeclaration<DaffQuantityFieldModule, never>;
|
package/radio/README.md
CHANGED
|
@@ -4,7 +4,7 @@ Radio is used to select a single value from a selection of values.
|
|
|
4
4
|
## Overview
|
|
5
5
|
It can be hooked into Angular's `FormControl` to accomodate custom functionality. The `DaffRadioSetComponent` serves as a wrapper around a logical group of radios to provide styling.
|
|
6
6
|
|
|
7
|
-
<
|
|
7
|
+
<daff-docs-example-viewer example="basic-radio"></daff-docs-example-viewer>
|
|
8
8
|
|
|
9
9
|
## Usage
|
|
10
10
|
|
package/scss/theme.scss
CHANGED
|
@@ -46,10 +46,12 @@
|
|
|
46
46
|
@use '../paginator/src/paginator-theme' as paginator;
|
|
47
47
|
@use '../select/src/select-theme' as select;
|
|
48
48
|
@use '../sidebar/src/sidebar-theme' as sidebar;
|
|
49
|
+
@use '../spinner/src/spinner-theme' as spinner;
|
|
49
50
|
@use '../switch/src/switch-theme' as switch;
|
|
50
51
|
@use '../progress-bar/src/progress-bar-theme' as progress-bar;
|
|
51
52
|
@use '../scss/state/skeleton/mixins' as skeleton;
|
|
52
53
|
@use '../tabs/src/tabs-theme' as tabs;
|
|
54
|
+
@use '../text-snippet//src/text-snippet-theme' as text-snippet;
|
|
53
55
|
@use '../tree/src/tree-theme' as tree;
|
|
54
56
|
@use '../toast/src/toast-theme' as toast;
|
|
55
57
|
|
|
@@ -91,7 +93,7 @@
|
|
|
91
93
|
@include select.daff-select-theme($theme);
|
|
92
94
|
@include native-select.daff-native-select-theme($theme);
|
|
93
95
|
|
|
94
|
-
@include
|
|
96
|
+
@include spinner.daff-spinner-theme($theme);
|
|
95
97
|
@include progress-bar.daff-progress-bar-theme($theme);
|
|
96
98
|
|
|
97
99
|
@include accordion.daff-accordion-theme($theme);
|
|
@@ -99,7 +101,10 @@
|
|
|
99
101
|
@include callout.daff-callout-theme($theme);
|
|
100
102
|
@include hero.daff-hero-theme($theme);
|
|
101
103
|
@include list.daff-list-theme($theme);
|
|
104
|
+
|
|
105
|
+
// deprecated
|
|
102
106
|
@include loading-icon.daff-loading-icon-theme($theme);
|
|
107
|
+
|
|
103
108
|
@include media-gallery.daff-media-gallery-theme($theme);
|
|
104
109
|
@include menu.daff-menu-theme($theme);
|
|
105
110
|
@include modal.daff-modal-theme($theme);
|
|
@@ -110,6 +115,7 @@
|
|
|
110
115
|
@include sidebar.daff-sidebar-theme($theme);
|
|
111
116
|
@include switch.daff-switch-theme($theme);
|
|
112
117
|
@include tabs.daff-tabs-theme($theme);
|
|
118
|
+
@include text-snippet.daff-text-snippet-theme($theme);
|
|
113
119
|
@include toast.daff-toast-theme($theme);
|
|
114
120
|
@include tree.daff-tree-theme($theme);
|
|
115
121
|
}
|
|
@@ -25,9 +25,6 @@ $daff-blue: (
|
|
|
25
25
|
100: #000033
|
|
26
26
|
);
|
|
27
27
|
|
|
28
|
-
/// @access private
|
|
29
|
-
$daff-primary: $daff-blue;
|
|
30
|
-
|
|
31
28
|
/// @access private
|
|
32
29
|
$daff-purple: (
|
|
33
30
|
10: #ebebff,
|
|
@@ -42,9 +39,6 @@ $daff-purple: (
|
|
|
42
39
|
100: #110033
|
|
43
40
|
);
|
|
44
41
|
|
|
45
|
-
/// @access private
|
|
46
|
-
$daff-accent: $daff-purple;
|
|
47
|
-
|
|
48
42
|
/// @access private
|
|
49
43
|
$daff-turquoise: (
|
|
50
44
|
10: #d6fcea,
|
package/select/README.md
CHANGED
|
@@ -4,7 +4,7 @@ Select allows users to choose from a dropdown panel with a list of options, simi
|
|
|
4
4
|
## Overview
|
|
5
5
|
Use select when you need users to pick one option from a list. It works like a standard dropdown menu but gives you more control over how options look and behave. It **cannot** be used by itself and must be contained within a [form field](/libs/design/form-field/README.md).
|
|
6
6
|
|
|
7
|
-
<
|
|
7
|
+
<daff-docs-example-viewer example="basic-select"></daff-docs-example-viewer>
|
|
8
8
|
|
|
9
9
|
## Usage
|
|
10
10
|
To use select, import the components directly into your custom component:
|
|
@@ -48,19 +48,19 @@ Use `daffSelectOption` to render a list of options in the select panel:
|
|
|
48
48
|
### Disabled
|
|
49
49
|
Select can be disabled using Angular's reactive forms with `FormControl`.
|
|
50
50
|
|
|
51
|
-
<
|
|
51
|
+
<daff-docs-example-viewer example="disabled-select"></daff-docs-example-viewer>
|
|
52
52
|
|
|
53
53
|
### Error
|
|
54
54
|
Select supports validation and error messages through Angular's form validation system. Use `<daff-error-message>` within the form field to display context-specific error messages. Error messages automatically appear when the select is invalid and has been touched or submitted.
|
|
55
55
|
|
|
56
|
-
<
|
|
56
|
+
<daff-docs-example-viewer example="select-with-error"></daff-docs-example-viewer>
|
|
57
57
|
|
|
58
58
|
Multiple error messages can be displayed conditionally based on the type of validation error. The form field component handles the styling and positioning of error messages.
|
|
59
59
|
|
|
60
60
|
## Hints
|
|
61
61
|
Hints provide additional context or instructions to help users complete the select field correctly. Use `<daff-hint>` within the form field to display helpful information below the textarea. Unlike error messages, hints are always visible and provide guidance rather than validation feedback.
|
|
62
62
|
|
|
63
|
-
<
|
|
63
|
+
<daff-docs-example-viewer example="select-with-hint"></daff-docs-example-viewer>
|
|
64
64
|
|
|
65
65
|
## Accessibility
|
|
66
66
|
Select follows the [Combobox WAI-ARIA design pattern](https://www.w3.org/WAI/ARIA/apg/patterns/combobox/examples/combobox-select-only/). The combobox activator is combined with an inner `role="listbox"` element opened in a popup.
|
package/sidebar/README.md
CHANGED
|
@@ -4,7 +4,7 @@ A sidebar is a component used to display additional information alongside a page
|
|
|
4
4
|
## Overview
|
|
5
5
|
Sidebars provide a flexible way to display additional content alongside the main page content. While commonly used for navigation, they can accommodate any type of content. Sidebars support multiple display modes, positions, and include optional header and footer components with minimal styling.
|
|
6
6
|
|
|
7
|
-
<
|
|
7
|
+
<daff-docs-example-viewer example="basic-sidebar"></daff-docs-example-viewer>
|
|
8
8
|
|
|
9
9
|
## Best practices
|
|
10
10
|
|
|
@@ -162,16 +162,16 @@ Use the `mode` property to control how the sidebar is displayed:
|
|
|
162
162
|
| `under` | Sits beneath the main content, which slides over the sidebar when closed. |
|
|
163
163
|
|
|
164
164
|
**Over and under sidebars**
|
|
165
|
-
<
|
|
165
|
+
<daff-docs-example-viewer example="over-and-under-sidebars"></daff-docs-example-viewer>
|
|
166
166
|
|
|
167
167
|
**Side fixed sidebar**
|
|
168
|
-
<
|
|
168
|
+
<daff-docs-example-viewer example="side-fixed-sidebar"></daff-docs-example-viewer>
|
|
169
169
|
|
|
170
170
|
**Two fixed sidebars on either side**
|
|
171
|
-
<
|
|
171
|
+
<daff-docs-example-viewer example="two-fixed-sidebars-either-side"></daff-docs-example-viewer>
|
|
172
172
|
|
|
173
173
|
**Fixed and over sidebar**
|
|
174
|
-
<
|
|
174
|
+
<daff-docs-example-viewer example="fixed-and-over-sidebar"></daff-docs-example-viewer>
|
|
175
175
|
|
|
176
176
|
### Sides
|
|
177
177
|
Use the `side` property to control the placement of the sidebar:
|
|
@@ -181,7 +181,7 @@ Use the `side` property to control the placement of the sidebar:
|
|
|
181
181
|
| `left` (default) | Places the sidebar on the left side of the screen. |
|
|
182
182
|
| `right` | Places the sidebar on the right side of the screen. |
|
|
183
183
|
|
|
184
|
-
<
|
|
184
|
+
<daff-docs-example-viewer example="sidebar-sides"></daff-docs-example-viewer>
|
|
185
185
|
|
|
186
186
|
## Customizations
|
|
187
187
|
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
# Spinner
|
|
2
|
+
A spinner is an animated indicator that lets users know content or action is being loaded.
|
|
3
|
+
|
|
4
|
+
## Overview
|
|
5
|
+
Use a spinner to indicate a short, indeterminate loading state. It can appear on its own or paired with a loading message. For longer processes with measurable progress, use the [progress bar](/libs/design/progress-bar/README.md) component.
|
|
6
|
+
|
|
7
|
+
## Usage
|
|
8
|
+
To use spinner, import `DAFF_SPINNER_COMPONENTS` directly into your custom component:
|
|
9
|
+
|
|
10
|
+
```ts
|
|
11
|
+
import { DAFF_SPINNER_COMPONENTS } from '@daffodil/design/spinner';
|
|
12
|
+
|
|
13
|
+
@Component({
|
|
14
|
+
selector: 'custom-component',
|
|
15
|
+
templateUrl: './custom-component.component.html',
|
|
16
|
+
imports: [
|
|
17
|
+
DAFF_SPINNER_COMPONENTS,
|
|
18
|
+
],
|
|
19
|
+
})
|
|
20
|
+
export class CustomComponent {}
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
## Anatomy
|
|
24
|
+
|
|
25
|
+
### Label
|
|
26
|
+
Labels are used to describe the loading state and provide context for users. They are optional.
|
|
27
|
+
|
|
28
|
+
```html
|
|
29
|
+
<daff-spinner>
|
|
30
|
+
<daff-spinner-label>Loading products...</daff-spinner-label>
|
|
31
|
+
</daff-spinner>
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
<daff-docs-example-viewer example="spinner-with-label"></daff-docs-example-viewer>
|
|
35
|
+
|
|
36
|
+
## Features
|
|
37
|
+
|
|
38
|
+
### Colors
|
|
39
|
+
Use the `color` property to change the color of a spinner.
|
|
40
|
+
|
|
41
|
+
> Note: `dark`, `light`, and `theme` should be used on appropriate backgrounds for sufficient contrast.
|
|
42
|
+
|
|
43
|
+
<daff-docs-example-viewer example="spinner-colors"></daff-docs-example-viewer>
|
|
44
|
+
|
|
45
|
+
### Sizes
|
|
46
|
+
Use the `size` proeprty to change the size of a spinner. The default size is `md`.
|
|
47
|
+
|
|
48
|
+
<daff-docs-example-viewer example="spinner-sizes"></daff-docs-example-viewer>
|
|
49
|
+
|
|
50
|
+
## Accessibility
|
|
51
|
+
The spinner has `role="status"` which announces content changes to assistive technologies.
|
|
52
|
+
|
|
53
|
+
When using `<daff-spinner-label>`, the visible text serves as the accessible name. When no label is provided, the spinner defaults to `aria-label="loading"`. You can customize this with the `aria-label` input:
|
|
54
|
+
|
|
55
|
+
```html
|
|
56
|
+
<daff-spinner aria-label="Saving changes"></daff-spinner>
|
|
57
|
+
```
|