@daffodil/design 0.92.3-rc.2 → 0.93.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.
Files changed (153) hide show
  1. package/accordion/README.md +4 -4
  2. package/breadcrumb/README.md +13 -35
  3. package/button/README.md +28 -50
  4. package/card/README.md +8 -22
  5. package/card/src/card/stroked/stroked-theme.scss +8 -1
  6. package/card/src/card-base-theme.scss +12 -1
  7. package/container/README.md +4 -26
  8. package/fesm2022/daffodil-design-accordion.mjs +15 -15
  9. package/fesm2022/daffodil-design-accordion.mjs.map +1 -1
  10. package/fesm2022/daffodil-design-article.mjs +30 -30
  11. package/fesm2022/daffodil-design-article.mjs.map +1 -1
  12. package/fesm2022/daffodil-design-breadcrumb.mjs +20 -20
  13. package/fesm2022/daffodil-design-breadcrumb.mjs.map +1 -1
  14. package/fesm2022/daffodil-design-button.mjs +37 -49
  15. package/fesm2022/daffodil-design-button.mjs.map +1 -1
  16. package/fesm2022/daffodil-design-callout.mjs +22 -22
  17. package/fesm2022/daffodil-design-callout.mjs.map +1 -1
  18. package/fesm2022/daffodil-design-card.mjs +31 -31
  19. package/fesm2022/daffodil-design-card.mjs.map +1 -1
  20. package/fesm2022/daffodil-design-checkbox.mjs +13 -13
  21. package/fesm2022/daffodil-design-checkbox.mjs.map +1 -1
  22. package/fesm2022/daffodil-design-container.mjs +7 -7
  23. package/fesm2022/daffodil-design-container.mjs.map +1 -1
  24. package/fesm2022/daffodil-design-form-field.mjs +13 -12
  25. package/fesm2022/daffodil-design-form-field.mjs.map +1 -1
  26. package/fesm2022/daffodil-design-form.mjs +9 -9
  27. package/fesm2022/daffodil-design-form.mjs.map +1 -1
  28. package/fesm2022/daffodil-design-hero.mjs +22 -22
  29. package/fesm2022/daffodil-design-hero.mjs.map +1 -1
  30. package/fesm2022/daffodil-design-image.mjs +8 -8
  31. package/fesm2022/daffodil-design-image.mjs.map +1 -1
  32. package/fesm2022/daffodil-design-input.mjs +12 -11
  33. package/fesm2022/daffodil-design-input.mjs.map +1 -1
  34. package/fesm2022/daffodil-design-link-set.mjs +16 -16
  35. package/fesm2022/daffodil-design-link-set.mjs.map +1 -1
  36. package/fesm2022/daffodil-design-list.mjs +20 -17
  37. package/fesm2022/daffodil-design-list.mjs.map +1 -1
  38. package/fesm2022/daffodil-design-loading-icon.mjs +7 -7
  39. package/fesm2022/daffodil-design-loading-icon.mjs.map +1 -1
  40. package/fesm2022/daffodil-design-media-gallery.mjs +13 -13
  41. package/fesm2022/daffodil-design-media-gallery.mjs.map +1 -1
  42. package/fesm2022/daffodil-design-menu.mjs +20 -20
  43. package/fesm2022/daffodil-design-menu.mjs.map +1 -1
  44. package/fesm2022/daffodil-design-modal.mjs +32 -26
  45. package/fesm2022/daffodil-design-modal.mjs.map +1 -1
  46. package/fesm2022/daffodil-design-native-select.mjs +5 -3
  47. package/fesm2022/daffodil-design-native-select.mjs.map +1 -1
  48. package/fesm2022/daffodil-design-navbar.mjs +9 -9
  49. package/fesm2022/daffodil-design-navbar.mjs.map +1 -1
  50. package/fesm2022/daffodil-design-notification.mjs +16 -16
  51. package/fesm2022/daffodil-design-notification.mjs.map +1 -1
  52. package/fesm2022/daffodil-design-paginator.mjs +8 -8
  53. package/fesm2022/daffodil-design-paginator.mjs.map +1 -1
  54. package/fesm2022/daffodil-design-progress-bar.mjs +10 -10
  55. package/fesm2022/daffodil-design-progress-bar.mjs.map +1 -1
  56. package/fesm2022/daffodil-design-quantity-field.mjs +13 -13
  57. package/fesm2022/daffodil-design-quantity-field.mjs.map +1 -1
  58. package/fesm2022/daffodil-design-radio.mjs +16 -16
  59. package/fesm2022/daffodil-design-radio.mjs.map +1 -1
  60. package/fesm2022/daffodil-design-select.mjs +11 -11
  61. package/fesm2022/daffodil-design-select.mjs.map +1 -1
  62. package/fesm2022/daffodil-design-sidebar.mjs +35 -29
  63. package/fesm2022/daffodil-design-sidebar.mjs.map +1 -1
  64. package/fesm2022/daffodil-design-spinner.mjs +7 -7
  65. package/fesm2022/daffodil-design-spinner.mjs.map +1 -1
  66. package/fesm2022/daffodil-design-switch.mjs +3 -3
  67. package/fesm2022/daffodil-design-switch.mjs.map +1 -1
  68. package/fesm2022/daffodil-design-tabs.mjs +17 -25
  69. package/fesm2022/daffodil-design-tabs.mjs.map +1 -1
  70. package/fesm2022/daffodil-design-tag.mjs +20 -20
  71. package/fesm2022/daffodil-design-tag.mjs.map +1 -1
  72. package/fesm2022/daffodil-design-testing.mjs +19 -0
  73. package/fesm2022/daffodil-design-testing.mjs.map +1 -0
  74. package/fesm2022/daffodil-design-text-snippet.mjs +3 -3
  75. package/fesm2022/daffodil-design-text-snippet.mjs.map +1 -1
  76. package/fesm2022/daffodil-design-textarea.mjs +3 -3
  77. package/fesm2022/daffodil-design-textarea.mjs.map +1 -1
  78. package/fesm2022/daffodil-design-toast.mjs +21 -21
  79. package/fesm2022/daffodil-design-toast.mjs.map +1 -1
  80. package/fesm2022/daffodil-design-tree.mjs +27 -25
  81. package/fesm2022/daffodil-design-tree.mjs.map +1 -1
  82. package/fesm2022/daffodil-design-youtube-player.mjs +22 -11
  83. package/fesm2022/daffodil-design-youtube-player.mjs.map +1 -1
  84. package/fesm2022/daffodil-design.mjs +110 -149
  85. package/fesm2022/daffodil-design.mjs.map +1 -1
  86. package/form/README.md +15 -6
  87. package/hero/README.md +14 -49
  88. package/image/README.md +6 -29
  89. package/input/README.md +8 -34
  90. package/list/README.md +29 -55
  91. package/list/src/list-theme.scss +16 -2
  92. package/media-gallery/README.md +36 -43
  93. package/menu/README.md +24 -55
  94. package/menu/src/menu-theme.scss +12 -2
  95. package/modal/README.md +15 -45
  96. package/native-select/README.md +8 -6
  97. package/navbar/README.md +18 -27
  98. package/notification/README.md +14 -49
  99. package/package.json +1 -1
  100. package/paginator/README.md +11 -31
  101. package/paginator/src/paginator-theme.scss +16 -2
  102. package/progress-bar/README.md +14 -41
  103. package/scss/global.scss +21 -2
  104. package/select/README.md +5 -6
  105. package/select/src/select-theme.scss +10 -2
  106. package/sidebar/README.md +1 -1
  107. package/spinner/README.md +15 -9
  108. package/switch/README.md +17 -6
  109. package/tabs/README.md +39 -39
  110. package/tag/README.md +24 -28
  111. package/textarea/README.md +9 -7
  112. package/toast/README.md +55 -52
  113. package/tree/README.md +12 -43
  114. package/tree/src/tree-theme.scss +8 -4
  115. package/{accordion/index.d.ts → types/daffodil-design-accordion.d.ts} +1 -1
  116. package/{button/index.d.ts → types/daffodil-design-button.d.ts} +7 -8
  117. package/{input/index.d.ts → types/daffodil-design-input.d.ts} +4 -1
  118. package/{list/index.d.ts → types/daffodil-design-list.d.ts} +4 -1
  119. package/{menu/index.d.ts → types/daffodil-design-menu.d.ts} +3 -3
  120. package/{modal/index.d.ts → types/daffodil-design-modal.d.ts} +11 -5
  121. package/{native-select/index.d.ts → types/daffodil-design-native-select.d.ts} +3 -1
  122. package/{sidebar/index.d.ts → types/daffodil-design-sidebar.d.ts} +9 -3
  123. package/{tabs/index.d.ts → types/daffodil-design-tabs.d.ts} +0 -6
  124. package/{tag/index.d.ts → types/daffodil-design-tag.d.ts} +9 -8
  125. package/types/daffodil-design-testing.d.ts +11 -0
  126. package/{tree/index.d.ts → types/daffodil-design-tree.d.ts} +2 -0
  127. package/{youtube-player/index.d.ts → types/daffodil-design-youtube-player.d.ts} +15 -0
  128. package/{index.d.ts → types/daffodil-design.d.ts} +17 -64
  129. /package/{article/index.d.ts → types/daffodil-design-article.d.ts} +0 -0
  130. /package/{breadcrumb/index.d.ts → types/daffodil-design-breadcrumb.d.ts} +0 -0
  131. /package/{callout/index.d.ts → types/daffodil-design-callout.d.ts} +0 -0
  132. /package/{card/index.d.ts → types/daffodil-design-card.d.ts} +0 -0
  133. /package/{checkbox/index.d.ts → types/daffodil-design-checkbox.d.ts} +0 -0
  134. /package/{container/index.d.ts → types/daffodil-design-container.d.ts} +0 -0
  135. /package/{form-field/index.d.ts → types/daffodil-design-form-field.d.ts} +0 -0
  136. /package/{form/index.d.ts → types/daffodil-design-form.d.ts} +0 -0
  137. /package/{hero/index.d.ts → types/daffodil-design-hero.d.ts} +0 -0
  138. /package/{image/index.d.ts → types/daffodil-design-image.d.ts} +0 -0
  139. /package/{link-set/index.d.ts → types/daffodil-design-link-set.d.ts} +0 -0
  140. /package/{loading-icon/index.d.ts → types/daffodil-design-loading-icon.d.ts} +0 -0
  141. /package/{media-gallery/index.d.ts → types/daffodil-design-media-gallery.d.ts} +0 -0
  142. /package/{navbar/index.d.ts → types/daffodil-design-navbar.d.ts} +0 -0
  143. /package/{notification/index.d.ts → types/daffodil-design-notification.d.ts} +0 -0
  144. /package/{paginator/index.d.ts → types/daffodil-design-paginator.d.ts} +0 -0
  145. /package/{progress-bar/index.d.ts → types/daffodil-design-progress-bar.d.ts} +0 -0
  146. /package/{quantity-field/index.d.ts → types/daffodil-design-quantity-field.d.ts} +0 -0
  147. /package/{radio/index.d.ts → types/daffodil-design-radio.d.ts} +0 -0
  148. /package/{select/index.d.ts → types/daffodil-design-select.d.ts} +0 -0
  149. /package/{spinner/index.d.ts → types/daffodil-design-spinner.d.ts} +0 -0
  150. /package/{switch/index.d.ts → types/daffodil-design-switch.d.ts} +0 -0
  151. /package/{text-snippet/index.d.ts → types/daffodil-design-text-snippet.d.ts} +0 -0
  152. /package/{textarea/index.d.ts → types/daffodil-design-textarea.d.ts} +0 -0
  153. /package/{toast/index.d.ts → types/daffodil-design-toast.d.ts} +0 -0
@@ -14,7 +14,7 @@ Accordions help reduce scrolling by hiding non-essential information until it's
14
14
 
15
15
  **When not to use**
16
16
  - When most users will need to see all content anyway
17
- - The content is very short and hiding it adds unnecessary complexity (use [list](/libs/design/list/README.md) instead)
17
+ - The content is very short and hiding it adds unnecessary complexity (use [List](/libs/design/list/README.md) instead)
18
18
 
19
19
  ## Usage
20
20
  Import `DAFF_ACCORDION_COMPONENTS` into your component:
@@ -51,12 +51,12 @@ An accordion is composed of a container, items, titles, and content:
51
51
 
52
52
  ## Features
53
53
 
54
- ### Expanding by default
54
+ ### Default expansion
55
55
  Use the `initiallyExpanded` property on the accordion item to have an item open by default.
56
56
 
57
57
  <daff-docs-example-viewer example="initially-expanded-accordion"></daff-docs-example-viewer>
58
58
 
59
- ### Disabling an item
59
+ ### Disabled item
60
60
  Use the `disabled` property on the accordion item to disable and prevent it from being expanded or collapsed.
61
61
 
62
62
  <daff-docs-example-viewer example="disabled-accordion"></daff-docs-example-viewer>
@@ -64,7 +64,7 @@ Use the `disabled` property on the accordion item to disable and prevent it from
64
64
  ## Accessibility
65
65
  Accordion follows the [Accordion WAI-ARIA design pattern](https://www.w3.org/WAI/ARIA/apg/patterns/accordion/).
66
66
 
67
- ### Daffodil provides
67
+ ### Built-in behavior
68
68
  - `role="button"` on titles with `aria-expanded` to indicate current state and `aria-controls` linking to the associated panel
69
69
  - `role="region"` on content panels with `aria-labelledby` linking back to the corresponding title
70
70
  - Unique IDs autogenerated for titles and panels (overridable via the `contentId` and `itemId` inputs on `<daff-accordion-item>`)
@@ -15,8 +15,7 @@ Breadcrumbs visually represent the navigational structure of a site or app and h
15
15
 
16
16
  ## Usage
17
17
 
18
- ### Within a standalone component
19
- To use breadcrumb in a standalone component, import `DAFF_BREADCRUMB_COMPONENTS` directly into your custom component:
18
+ Import `DAFF_BREADCRUMB_COMPONENTS` into your component:
20
19
 
21
20
  ```ts
22
21
  import { DAFF_BREADCRUMB_COMPONENTS } from '@daffodil/design/breadcrumb';
@@ -31,40 +30,13 @@ import { DAFF_BREADCRUMB_COMPONENTS } from '@daffodil/design/breadcrumb';
31
30
  export class CustomComponent {}
32
31
  ```
33
32
 
34
- ### Within a module (deprecated)
35
- To use breadcrumb in a module, import `DaffBreadcrumbModule` into your custom module:
36
-
37
- ```ts
38
- import { NgModule } from '@angular/core';
39
- import { DaffBreadcrumbModule } from '@daffodil/design/breadcrumb';
40
- import { CustomComponent } from './custom.component';
41
-
42
- @NgModule({
43
- declarations: [
44
- CustomComponent,
45
- ],
46
- exports: [
47
- CustomComponent,
48
- ],
49
- imports: [
50
- DaffBreadcrumbModule,
51
- ],
52
- })
53
- export class CustomComponentModule { }
54
- ```
55
-
56
- > This method is deprecated. It's recommended to update all custom components to standalone.
33
+ > **Deprecation notice:**
34
+ >
35
+ > `DaffBreadcrumbModule` is deprecated. Use the standalone component imports instead.
57
36
 
58
37
  ## Anatomy
59
- A breadcrumb consists of the following components:
60
-
61
- ### Container
62
- **`[daff-breadcrumb]`**: The wrapper that groups all breadcrumb items together. Applied to an `<ol>` element.
38
+ A breadcrumb is composed of a container and one or more items:
63
39
 
64
- ### Item
65
- **`[daffBreadcrumbItem]`**: Individual breadcrumb element within the navigation path. Applied to a `<li>` element.
66
-
67
- ### Basic structure
68
40
  ```html
69
41
  <ol daff-breadcrumb>
70
42
  <li daffBreadcrumbItem>
@@ -74,20 +46,26 @@ A breadcrumb consists of the following components:
74
46
  <a routerLink="/category">Category</a>
75
47
  </li>
76
48
  <li daffBreadcrumbItem>
77
- <span>Current Page</span>
49
+ <span>Shoes</span>
78
50
  </li>
79
51
  </ol>
80
52
  ```
81
53
 
54
+ - **`[daff-breadcrumb]`**: The wrapper that groups all breadcrumb items together. Applied to an `<ol>` element.
55
+ - **`[daffBreadcrumbItem]`**: An individual breadcrumb in the navigation path. Applied to a `<li>` element.
56
+ - Use a link for every item except the last, which represents the current page and is rendered as plain text.
57
+
82
58
  ## Features
83
59
 
84
60
  ### Truncation
85
61
  Breadcrumbs are automatically truncated into an overflow menu on mobile viewports. On desktop, truncation occurs when more than five items are present.
86
62
 
63
+ <daff-docs-example-viewer example="truncated-breadcrumb"></daff-docs-example-viewer>
64
+
87
65
  ## Accessibility
88
66
  Breadcrumb follows the [Breadcrumb WAI-ARIA design pattern](https://www.w3.org/WAI/ARIA/apg/patterns/breadcrumb/).
89
67
 
90
- ### Daffodil provides
68
+ ### Built-in behavior
91
69
  - `aria-current="page"` automatically applied to the last breadcrumb item
92
70
  - Enforces semantic HTML structure (requires `<ol>` and `<li>` elements)
93
71
 
package/button/README.md CHANGED
@@ -9,33 +9,18 @@ Button supports four variants that change its visual style, each applied as an a
9
9
  | `daff-button` | Rectangular button with background color |
10
10
  | `daff-flat-button`| Rectangular button with no outline or background color |
11
11
  | `daff-icon-button` | Icon only button used with icon fonts |
12
- | `daff-stroked-button` | Rectangular button with oultline, no background color |
12
+ | `daff-stroked-button` | Rectangular button with outline, no background color |
13
13
 
14
14
  Native `<button>` or `<a>` elements should always be used in order to provide an easy, accessible experience for users.
15
15
 
16
16
  - Use `<a>` for navigation to new pages or different sections.
17
17
  - Use `<button>` for actions performed within the same page.
18
18
 
19
- **Basic button**
20
- <daff-docs-example-viewer example="basic-button"></daff-docs-example-viewer>
21
-
22
- **Flat button**
23
- <daff-docs-example-viewer example="flat-button"></daff-docs-example-viewer>
24
-
25
- **Stroked button**
26
- <daff-docs-example-viewer example="stroked-button"></daff-docs-example-viewer>
27
-
28
- > `dark`, `light`, and `theme` should be used with caution to ensure that there is sufficient contrast.
29
-
30
- **Icon button**
31
- <daff-docs-example-viewer example="icon-button"></daff-docs-example-viewer>
32
-
33
- > `dark`, `light`, and `theme` should be used with caution to ensure that there is sufficient contrast.
19
+ <daff-docs-example-viewer example="button-types"></daff-docs-example-viewer>
34
20
 
35
21
  ## Usage
36
22
 
37
- ### Within a standalone component
38
- To use button in a standalone component, import each button type directly into your custom component.
23
+ Import the button type you need into your component:
39
24
 
40
25
  Available imports:
41
26
  - `DAFF_BASIC_BUTTON_COMPONENTS`
@@ -57,45 +42,37 @@ import { DAFF_BASIC_BUTTON_COMPONENTS } from '@daffodil/design/button';
57
42
  export class CustomComponent {}
58
43
  ```
59
44
 
60
- ### Within a module (deprecated)
61
- To use button in a module, import `DaffButtonModule` into your custom module:
45
+ > **Deprecation notice:**
46
+ >
47
+ > `DaffButtonModule` is deprecated. Use the standalone component imports instead.
62
48
 
63
- ```ts
64
- import { NgModule } from '@angular/core';
65
- import { DaffButtonModule } from '@daffodil/design/button';
66
- import { CustomComponent } from './custom.component';
49
+ ## Anatomy
50
+ A button is composed of a label with optional icons:
67
51
 
68
- @NgModule({
69
- declarations: [
70
- CustomComponent,
71
- ],
72
- exports: [
73
- CustomComponent,
74
- ],
75
- imports: [
76
- DaffButtonModule,
77
- ],
78
- })
79
- export class CustomComponentModule { }
52
+ ```html
53
+ <button daff-button>
54
+ <fa-icon daffPrefix></fa-icon>
55
+ Add to cart
56
+ </button>
80
57
  ```
81
58
 
82
- > This method is deprecated. It's recommended to update all custom components to standalone.
59
+ - The label describing the action. Always provide one unless the button uses an icon that is universally understood and accessible.
60
+ - Add the `daffPrefix` or `daffSuffix` directive to an icon to place it before or after the label text. Avoid using both at once.
83
61
 
84
- ## Anatomy
85
- Buttons should always have a label, unless you are only using an icon that is universally understood and accessible.
62
+ ## Features
86
63
 
87
- ### Icon support
88
- An icon can be rendered on either side of the button text content with the `daffPrefix` and `daffSuffix` selectors. Avoid using both simultaneously.
64
+ ### Icons
65
+ Render an icon on either side of the button label with the `daffPrefix` and `daffSuffix` directives.
89
66
 
90
67
  <daff-docs-example-viewer example="button-with-icon"></daff-docs-example-viewer>
91
68
 
92
- ## Features
93
-
94
69
  ### Colors
95
70
  Use the `color` property to change the color of a button.
96
71
 
97
72
  > Note: `dark`, `light`, and `theme` should be used on appropriate backgrounds for sufficient contrast.
98
73
 
74
+ <daff-docs-example-viewer example="button-colors"></daff-docs-example-viewer>
75
+
99
76
  ### Elevation
100
77
  Add shadows to buttons with the `elevated` property.
101
78
 
@@ -113,8 +90,6 @@ Status indicators help users understand the type of action a button performs and
113
90
 
114
91
  <daff-docs-example-viewer example="statusable-button"></daff-docs-example-viewer>
115
92
 
116
- ## States
117
-
118
93
  ### Disabled
119
94
  Use the `disabled` property to disable a button that shouldn't be actionable. The button will appear faded and won't respond to user interaction.
120
95
 
@@ -125,12 +100,15 @@ Use the `loading` property to indicate that an action is being processed. When `
125
100
 
126
101
  <daff-docs-example-viewer example="loading-button"></daff-docs-example-viewer>
127
102
 
128
- ## Accessbility
129
- Daffodil uses native `<a>` and `<button>` HTML elements to ensure an accessible experience by default.
103
+ ## Accessibility
130
104
 
131
- - Use `<a>` for navigation to new pages or different sections.
132
- - Use `<button>` for actions performed within the same page.
133
- - Icon only buttons (`<daff-icon-button>`) need to be given meaningful labels using `aria-label` or `aria-labelledby`.
105
+ ### Built-in behavior
106
+ - Enforces the use of native `<a>` and `<button>` HTML elements for keyboard and screen reader support by default
107
+
108
+ ### Developer responsibilities
109
+ - Use `<a>` for navigation to new pages or different sections
110
+ - Use `<button>` for actions performed within the same page
111
+ - Give icon only buttons (`<daff-icon-button>`) a meaningful label using `aria-label` or `aria-labelledby`
134
112
 
135
113
  ## Deprecations
136
114
  - `<daff-raised-button>` is deprecated and will be removed in v1.0.0. Use the `elevated` property instead.
package/card/README.md CHANGED
@@ -37,7 +37,7 @@ export class CustomComponent {}
37
37
 
38
38
  > **Deprecation notice:**
39
39
  >
40
- > `DaffCalloutModule` is deprecated. Use the standalone component imports instead.
40
+ > `DaffCardModule` is deprecated. Use the standalone component imports instead.
41
41
 
42
42
  ## Anatomy
43
43
  A card is composed of a container, image, icon, tagline, title, content, and actions, displayed in the order listed:
@@ -60,26 +60,13 @@ A card is composed of a container, image, icon, tagline, title, content, and act
60
60
  </daff-card>
61
61
  ```
62
62
 
63
- **`<daff-card>`** or **`<daff-stroked-card>`**\
64
- The wrapper component that holds all card content.
65
-
66
- **`[daffCardImage]`**\
67
- Image element at the top of the card.
68
-
69
- **`[daffCardIcon]`**\
70
- Displays a visual or branding element. Avoid using for interactive icons.
71
-
72
- **`[daffCardTagline]`**\
73
- Short phrase that provides quick context.
74
-
75
- **`[daffCardTitle]`**\
76
- The primary heading of the card.
77
-
78
- **`[daffCardContent]`**\
79
- Flexible container for body text or custom content. It's unstyled except for spacing and **should only be used once per card**.
80
-
81
- **`[daffCardActions]`**\
82
- Container for buttons or links, positioned at the bottom.
63
+ - **`<daff-card>`** or **`<daff-stroked-card>`**: The wrapper component that holds all card content.
64
+ - **`[daffCardImage]`**: Image element at the top of the card.
65
+ - **`[daffCardIcon]`**: Displays a visual or branding element. Avoid using for interactive icons.
66
+ - **`[daffCardTagline]`**: Short phrase that provides quick context.
67
+ - **`[daffCardTitle]`**: The primary heading of the card.
68
+ - **`[daffCardContent]`**: Flexible container for body text or custom content. It's unstyled except for spacing and **should only be used once per card**.
69
+ - **`[daffCardActions]`**: Container for buttons or links, positioned at the bottom.
83
70
 
84
71
  ## Features
85
72
 
@@ -95,7 +82,6 @@ Cards default to a light gray background. Use the `color` property to change a c
95
82
 
96
83
  <daff-docs-example-viewer example="card-theming"></daff-docs-example-viewer>
97
84
 
98
-
99
85
  ### Elevation
100
86
  Use the `elevated` property to add shadows to cards.
101
87
 
@@ -12,7 +12,14 @@
12
12
  }
13
13
  }
14
14
 
15
- &:hover,
15
+ @media (hover: hover) {
16
+ .daff-card__wrapper {
17
+ &::after {
18
+ opacity: 1;
19
+ }
20
+ }
21
+ }
22
+
16
23
  &:focus {
17
24
  .daff-card__wrapper {
18
25
  &::after {
@@ -13,7 +13,18 @@
13
13
  }
14
14
  }
15
15
 
16
- &:hover,
16
+ @media (hover: hover) {
17
+ &:hover {
18
+ color: daff-text-contrast($hover-color);
19
+
20
+ .daff-card__wrapper {
21
+ &::after {
22
+ opacity: 1;
23
+ }
24
+ }
25
+ }
26
+ }
27
+
17
28
  &:focus {
18
29
  color: daff-text-contrast($hover-color);
19
30
 
@@ -5,8 +5,8 @@ Container is a structural element that restricts content to a maximum width.
5
5
  Container comes with pre-defined sizes that work well with common breakpoints. It's not responsible for providing padding or margin.
6
6
 
7
7
  ## Usage
8
- ### Within a standalone component
9
- To use container in a standalone component, import `DAFF_CONTAINER_COMPONENTS` directly into your custom component:
8
+
9
+ Import `DAFF_CONTAINER_COMPONENTS` into your component:
10
10
 
11
11
  ```ts
12
12
  import { DAFF_CONTAINER_COMPONENTS } from '@daffodil/design/container';
@@ -21,31 +21,9 @@ import { DAFF_CONTAINER_COMPONENTS } from '@daffodil/design/container';
21
21
  export class CustomComponent {}
22
22
  ```
23
23
 
24
- ### Within a module (deprecated)
25
- To use container in a module, import `DaffContainerModule` into your custom module:
26
-
27
- ```ts
28
- import { NgModule } from '@angular/core';
29
- import { DaffContainerModule } from '@daffodil/design/container';
30
- import { CustomComponent } from './custom.component';
31
-
32
- @NgModule({
33
- declarations: [
34
- CustomComponent,
35
- ],
36
- exports: [
37
- CustomComponent,
38
- ],
39
- imports: [
40
- DaffContainerModule,
41
- ],
42
- })
43
- export class CustomComponentModule { }
44
- ```
45
-
46
- > **Warning**
24
+ > **Deprecation notice:**
47
25
  >
48
- > This method is deprecated. It's recommended to update all custom components to standalone.
26
+ > `DaffContainerModule` is deprecated. Use the standalone component imports instead.
49
27
 
50
28
  ## Sizes
51
29
  Set a size on container using the `size` property. There is no default size.
@@ -22,10 +22,10 @@ import { DaffArticleEncapsulatedDirective, DaffOpenableDirective, DaffDisableabl
22
22
  * ```
23
23
  */
24
24
  class DaffAccordionComponent {
25
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: DaffAccordionComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
26
- /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.18", type: DaffAccordionComponent, isStandalone: true, selector: "daff-accordion", hostDirectives: [{ directive: i1.DaffArticleEncapsulatedDirective }], ngImport: i0, template: '<ng-content></ng-content>', isInline: true, styles: [":host{display:block}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
25
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: DaffAccordionComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
26
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.9", type: DaffAccordionComponent, isStandalone: true, selector: "daff-accordion", hostDirectives: [{ directive: i1.DaffArticleEncapsulatedDirective }], ngImport: i0, template: '<ng-content></ng-content>', isInline: true, styles: [":host{display:block}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
27
27
  }
28
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: DaffAccordionComponent, decorators: [{
28
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: DaffAccordionComponent, decorators: [{
29
29
  type: Component,
30
30
  args: [{ selector: 'daff-accordion', template: '<ng-content></ng-content>', hostDirectives: [{
31
31
  directive: DaffArticleEncapsulatedDirective,
@@ -76,7 +76,7 @@ class DaffAccordionItemComponent {
76
76
  * @docs-private
77
77
  */
78
78
  ngOnInit() {
79
- this.openDirective.open = this.initiallyExpanded ? this.initiallyExpanded : this.openDirective.open;
79
+ this.openDirective.open.update(() => this.initiallyExpanded ? this.initiallyExpanded : this.openDirective.open());
80
80
  }
81
81
  /**
82
82
  * @docs-private
@@ -102,10 +102,10 @@ class DaffAccordionItemComponent {
102
102
  toggle() {
103
103
  this.openDirective.toggle();
104
104
  }
105
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: DaffAccordionItemComponent, deps: [{ token: i1.DaffOpenableDirective }, { token: i1.DaffDisableableDirective }], target: i0.ɵɵFactoryTarget.Component }); }
106
- /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.18", type: DaffAccordionItemComponent, isStandalone: true, selector: "daff-accordion-item", inputs: { itemId: "itemId", contentId: "contentId", initiallyExpanded: "initiallyExpanded" }, host: { classAttribute: "daff-accordion-item" }, hostDirectives: [{ directive: i1.DaffOpenableDirective, outputs: ["toggled", "toggled"] }, { directive: i1.DaffDisableableDirective, inputs: ["disabled", "disabled"] }], ngImport: i0, template: "<button type=\"button\" class=\"daff-accordion-item__header\"\n (click)=\"toggle()\"\n [attr.aria-expanded]=\"open\"\n [attr.aria-controls]=\"contentId\"\n [id]=\"itemId\"\n [disabled]=\"disabled\"\n [attr.aria-disabled]=\"disabled\">\n <ng-content select=\"[daffAccordionItemTitle]\"></ng-content>\n</button>\n<div class=\"daff-accordion-item__content\" [id]=\"contentId\" [attr.aria-labelledby]=\"itemId\" role=\"region\">\n <ng-content></ng-content>\n</div>", styles: [".daff-accordion-item{display:block}.daff-accordion-item__header{cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;display:flex;align-items:center;appearance:none;justify-content:space-between;gap:.5rem;background:none;border:none;inline-size:100%;margin:0;padding:1rem;position:relative}.daff-accordion-item__header:after{content:\"\";position:absolute;top:48%;right:1rem;display:inline-block;border-right:2px solid currentColor;border-bottom:2px solid currentColor;width:.5rem;height:.5rem;transform:translateY(-50%) rotate(45deg);transition:transform .15s}.daff-accordion-item.daff-open .daff-accordion-item__header:after{top:56%;transform:translateY(-50%) rotate(225deg)}.daff-accordion-item.daff-open .daff-accordion-item__content{height:auto;opacity:1;padding:0 1rem 1rem;visibility:visible}.daff-accordion-item.daff-disabled .daff-accordion-item__header{cursor:not-allowed;opacity:.5}.daff-accordion-item__title{font-size:1rem;line-height:1.5rem;font-weight:500;inline-size:100%;margin:0;padding:0 2rem 0 0;text-align:start}.daff-accordion-item__content{height:0;opacity:0;visibility:hidden;transition:opacity .15s ease-in}.daff-accordion-item__content>p{margin:0 0 1rem}.daff-accordion-item__content>p:last-child{margin:0}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
105
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: DaffAccordionItemComponent, deps: [{ token: i1.DaffOpenableDirective }, { token: i1.DaffDisableableDirective }], target: i0.ɵɵFactoryTarget.Component }); }
106
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.9", type: DaffAccordionItemComponent, isStandalone: true, selector: "daff-accordion-item", inputs: { itemId: "itemId", contentId: "contentId", initiallyExpanded: "initiallyExpanded" }, host: { classAttribute: "daff-accordion-item" }, hostDirectives: [{ directive: i1.DaffOpenableDirective, outputs: ["toggled", "toggled"] }, { directive: i1.DaffDisableableDirective, inputs: ["disabled", "disabled"] }], ngImport: i0, template: "<button type=\"button\" class=\"daff-accordion-item__header\"\n (click)=\"toggle()\"\n [attr.aria-expanded]=\"open()\"\n [attr.aria-controls]=\"contentId\"\n [id]=\"itemId\"\n [disabled]=\"disabled\"\n [attr.aria-disabled]=\"disabled\">\n <ng-content select=\"[daffAccordionItemTitle]\"></ng-content>\n</button>\n<div class=\"daff-accordion-item__content\" [id]=\"contentId\" [attr.aria-labelledby]=\"itemId\" role=\"region\">\n <ng-content></ng-content>\n</div>", styles: [".daff-accordion-item{display:block}.daff-accordion-item__header{cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;display:flex;align-items:center;appearance:none;justify-content:space-between;gap:.5rem;background:none;border:none;inline-size:100%;margin:0;padding:1rem;position:relative}.daff-accordion-item__header:after{content:\"\";position:absolute;top:48%;right:1rem;display:inline-block;border-right:2px solid currentColor;border-bottom:2px solid currentColor;width:.5rem;height:.5rem;transform:translateY(-50%) rotate(45deg);transition:transform .15s}.daff-accordion-item.daff-open .daff-accordion-item__header:after{top:56%;transform:translateY(-50%) rotate(225deg)}.daff-accordion-item.daff-open .daff-accordion-item__content{height:auto;opacity:1;padding:0 1rem 1rem;visibility:visible}.daff-accordion-item.daff-disabled .daff-accordion-item__header{cursor:not-allowed;opacity:.5}.daff-accordion-item__title{font-size:1rem;line-height:1.5rem;font-weight:500;inline-size:100%;margin:0;padding:0 2rem 0 0;text-align:start}.daff-accordion-item__content{height:0;opacity:0;visibility:hidden;transition:opacity .15s ease-in}.daff-accordion-item__content>p{margin:0 0 1rem}.daff-accordion-item__content>p:last-child{margin:0}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
107
107
  }
108
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: DaffAccordionItemComponent, decorators: [{
108
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: DaffAccordionItemComponent, decorators: [{
109
109
  type: Component,
110
110
  args: [{ selector: 'daff-accordion-item', hostDirectives: [
111
111
  {
@@ -118,7 +118,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.18", ngImpo
118
118
  },
119
119
  ], host: {
120
120
  'class': 'daff-accordion-item',
121
- }, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<button type=\"button\" class=\"daff-accordion-item__header\"\n (click)=\"toggle()\"\n [attr.aria-expanded]=\"open\"\n [attr.aria-controls]=\"contentId\"\n [id]=\"itemId\"\n [disabled]=\"disabled\"\n [attr.aria-disabled]=\"disabled\">\n <ng-content select=\"[daffAccordionItemTitle]\"></ng-content>\n</button>\n<div class=\"daff-accordion-item__content\" [id]=\"contentId\" [attr.aria-labelledby]=\"itemId\" role=\"region\">\n <ng-content></ng-content>\n</div>", styles: [".daff-accordion-item{display:block}.daff-accordion-item__header{cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;display:flex;align-items:center;appearance:none;justify-content:space-between;gap:.5rem;background:none;border:none;inline-size:100%;margin:0;padding:1rem;position:relative}.daff-accordion-item__header:after{content:\"\";position:absolute;top:48%;right:1rem;display:inline-block;border-right:2px solid currentColor;border-bottom:2px solid currentColor;width:.5rem;height:.5rem;transform:translateY(-50%) rotate(45deg);transition:transform .15s}.daff-accordion-item.daff-open .daff-accordion-item__header:after{top:56%;transform:translateY(-50%) rotate(225deg)}.daff-accordion-item.daff-open .daff-accordion-item__content{height:auto;opacity:1;padding:0 1rem 1rem;visibility:visible}.daff-accordion-item.daff-disabled .daff-accordion-item__header{cursor:not-allowed;opacity:.5}.daff-accordion-item__title{font-size:1rem;line-height:1.5rem;font-weight:500;inline-size:100%;margin:0;padding:0 2rem 0 0;text-align:start}.daff-accordion-item__content{height:0;opacity:0;visibility:hidden;transition:opacity .15s ease-in}.daff-accordion-item__content>p{margin:0 0 1rem}.daff-accordion-item__content>p:last-child{margin:0}\n"] }]
121
+ }, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<button type=\"button\" class=\"daff-accordion-item__header\"\n (click)=\"toggle()\"\n [attr.aria-expanded]=\"open()\"\n [attr.aria-controls]=\"contentId\"\n [id]=\"itemId\"\n [disabled]=\"disabled\"\n [attr.aria-disabled]=\"disabled\">\n <ng-content select=\"[daffAccordionItemTitle]\"></ng-content>\n</button>\n<div class=\"daff-accordion-item__content\" [id]=\"contentId\" [attr.aria-labelledby]=\"itemId\" role=\"region\">\n <ng-content></ng-content>\n</div>", styles: [".daff-accordion-item{display:block}.daff-accordion-item__header{cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;display:flex;align-items:center;appearance:none;justify-content:space-between;gap:.5rem;background:none;border:none;inline-size:100%;margin:0;padding:1rem;position:relative}.daff-accordion-item__header:after{content:\"\";position:absolute;top:48%;right:1rem;display:inline-block;border-right:2px solid currentColor;border-bottom:2px solid currentColor;width:.5rem;height:.5rem;transform:translateY(-50%) rotate(45deg);transition:transform .15s}.daff-accordion-item.daff-open .daff-accordion-item__header:after{top:56%;transform:translateY(-50%) rotate(225deg)}.daff-accordion-item.daff-open .daff-accordion-item__content{height:auto;opacity:1;padding:0 1rem 1rem;visibility:visible}.daff-accordion-item.daff-disabled .daff-accordion-item__header{cursor:not-allowed;opacity:.5}.daff-accordion-item__title{font-size:1rem;line-height:1.5rem;font-weight:500;inline-size:100%;margin:0;padding:0 2rem 0 0;text-align:start}.daff-accordion-item__content{height:0;opacity:0;visibility:hidden;transition:opacity .15s ease-in}.daff-accordion-item__content>p{margin:0 0 1rem}.daff-accordion-item__content>p:last-child{margin:0}\n"] }]
122
122
  }], ctorParameters: () => [{ type: i1.DaffOpenableDirective }, { type: i1.DaffDisableableDirective }], propDecorators: { itemId: [{
123
123
  type: Input
124
124
  }], contentId: [{
@@ -137,10 +137,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.18", ngImpo
137
137
  * ```
138
138
  */
139
139
  class DaffAccordionItemTitleDirective {
140
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: DaffAccordionItemTitleDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
141
- /** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.18", type: DaffAccordionItemTitleDirective, isStandalone: true, selector: "[daffAccordionItemTitle]", host: { classAttribute: "daff-accordion-item__title" }, ngImport: i0 }); }
140
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: DaffAccordionItemTitleDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
141
+ /** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.9", type: DaffAccordionItemTitleDirective, isStandalone: true, selector: "[daffAccordionItemTitle]", host: { classAttribute: "daff-accordion-item__title" }, ngImport: i0 }); }
142
142
  }
143
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: DaffAccordionItemTitleDirective, decorators: [{
143
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: DaffAccordionItemTitleDirective, decorators: [{
144
144
  type: Directive,
145
145
  args: [{
146
146
  selector: '[daffAccordionItemTitle]',
@@ -154,16 +154,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.18", ngImpo
154
154
  * @deprecated in favor of {@link DAFF_ACCORDION_COMPONENTS}. Deprecated in version 0.78.0. Will be removed in version 1.0.0.
155
155
  */
156
156
  class DaffAccordionModule {
157
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: DaffAccordionModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
158
- /** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.18", ngImport: i0, type: DaffAccordionModule, imports: [CommonModule,
157
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: DaffAccordionModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
158
+ /** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.2.9", ngImport: i0, type: DaffAccordionModule, imports: [CommonModule,
159
159
  DaffAccordionComponent,
160
160
  DaffAccordionItemComponent,
161
161
  DaffAccordionItemTitleDirective], exports: [DaffAccordionComponent,
162
162
  DaffAccordionItemComponent,
163
163
  DaffAccordionItemTitleDirective] }); }
164
- /** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: DaffAccordionModule, imports: [CommonModule] }); }
164
+ /** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: DaffAccordionModule, imports: [CommonModule] }); }
165
165
  }
166
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: DaffAccordionModule, decorators: [{
166
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: DaffAccordionModule, decorators: [{
167
167
  type: NgModule,
168
168
  args: [{
169
169
  imports: [
@@ -1 +1 @@
1
- {"version":3,"file":"daffodil-design-accordion.mjs","sources":["../../../libs/design/accordion/src/accordion/accordion/accordion.component.ts","../../../libs/design/accordion/src/accordion/accordion-item/accordion-item.component.ts","../../../libs/design/accordion/src/accordion/accordion-item/accordion-item.component.html","../../../libs/design/accordion/src/accordion/accordion-item-title/accordion-item-title.directive.ts","../../../libs/design/accordion/src/accordion.module.ts","../../../libs/design/accordion/src/accordion.ts","../../../libs/design/accordion/src/daffodil-design-accordion.ts"],"sourcesContent":["import {\n ChangeDetectionStrategy,\n Component,\n} from '@angular/core';\n\nimport { DaffArticleEncapsulatedDirective } from '@daffodil/design';\n\n/**\n * Groups accordion items.\n *\n * @example\n * ```html\n * <daff-accordion>\n * <daff-accordion-item>\n * <div daffAccordionItemTitle>Title</div>\n * <div>Expandable content</div>\n * </daff-accordion-item>\n * <daff-accordion-item>\n * <div daffAccordionItemTitle>Title</div>\n * <div>Expandable content</div>\n * </daff-accordion-item>\n * </daff-accordion>\n * ```\n */\n@Component({\n selector: 'daff-accordion',\n template: '<ng-content></ng-content>',\n styles: [`\n :host {\n display: block;\n }\n `],\n hostDirectives: [{\n directive: DaffArticleEncapsulatedDirective,\n }],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\n\nexport class DaffAccordionComponent {}\n","/* eslint-disable quote-props */\nimport {\n Component,\n Input,\n OnInit,\n ViewEncapsulation,\n ChangeDetectionStrategy,\n} from '@angular/core';\n\nimport {\n DaffDisableable,\n DaffDisableableDirective,\n DaffOpenable,\n DaffOpenableDirective,\n} from '@daffodil/design';\n\nlet daffAccordionItemId = 0;\nlet daffAccordionItemContentId = 0;\n\n/**\n * Contains the title and collapsible content. Handles expansion and collapse on user interaction. All `<daff-accordion-item>`s should be grouped inside a `<daff-accordion>`.\n *\n * @example\n * ```html\n * <daff-accordion-item>\n * <div daffAccordionItemTitle>Title</div>\n * <div>Accordion content</div>\n * </daff-accordion-item>\n * ```\n */\n@Component({\n selector: 'daff-accordion-item',\n templateUrl: './accordion-item.component.html',\n styleUrls: ['./accordion-item.component.scss'],\n hostDirectives: [\n {\n directive: DaffOpenableDirective,\n outputs: ['toggled'],\n },\n {\n directive: DaffDisableableDirective,\n inputs: ['disabled'],\n },\n ],\n host: {\n 'class': 'daff-accordion-item',\n },\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DaffAccordionItemComponent implements OnInit, DaffOpenable, DaffDisableable {\n /**\n * The unique id of an accordion item. Defaults to an autogenerated value.\n */\n @Input() itemId: string = 'daff-accordion-item' + '-' + ++daffAccordionItemId;\n\n /**\n * The unique id of an accordion item content. Defaults to an autogenerated value.\n */\n @Input() contentId: string = 'daff-accordion-item-content' + '-' + ++daffAccordionItemContentId;\n\n /**\n * Whether or not an accordion item is initially expanded by default.\n */\n @Input() initiallyExpanded = false;\n\n /**\n * @docs-private\n *\n * Internal function to access the disabled property of the DaffDisableableDirective\n */\n get disabled() {\n return this.disabledDirective.disabled;\n }\n\n constructor(\n private openDirective: DaffOpenableDirective,\n private disabledDirective: DaffDisableableDirective,\n ) {\n this.openDirective.stateless = false;\n }\n\n /**\n * @docs-private\n */\n ngOnInit() {\n this.openDirective.open = this.initiallyExpanded ? this.initiallyExpanded : this.openDirective.open;\n }\n\n /**\n * @docs-private\n */\n get open() {\n return this.openDirective.open;\n }\n\n /**\n * Reveals the contents of the accordion item.\n */\n reveal() {\n this.openDirective.reveal();\n }\n\n /**\n * Hides the contents of the accordion item.\n */\n hide() {\n this.openDirective.hide();\n }\n\n /**\n * Toggles the visibility of the contents of the accordion item.\n */\n toggle() {\n this.openDirective.toggle();\n }\n}\n","<button type=\"button\" class=\"daff-accordion-item__header\"\n (click)=\"toggle()\"\n [attr.aria-expanded]=\"open\"\n [attr.aria-controls]=\"contentId\"\n [id]=\"itemId\"\n [disabled]=\"disabled\"\n [attr.aria-disabled]=\"disabled\">\n <ng-content select=\"[daffAccordionItemTitle]\"></ng-content>\n</button>\n<div class=\"daff-accordion-item__content\" [id]=\"contentId\" [attr.aria-labelledby]=\"itemId\" role=\"region\">\n <ng-content></ng-content>\n</div>","/* eslint-disable quote-props */\nimport { Directive } from '@angular/core';\n\n/**\n * Used to provide a high level overview of the panel content. It should be wrapped by a `<daff-accordion-item>`.\n *\n * @example\n * ```html\n * <div daffAccordionItemTitle>Title</div>\n * ```\n */\n@Directive({\n selector: '[daffAccordionItemTitle]',\n host: {\n 'class': 'daff-accordion-item__title',\n },\n})\nexport class DaffAccordionItemTitleDirective {}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { DaffAccordionComponent } from './accordion/accordion/accordion.component';\nimport { DaffAccordionItemComponent } from './accordion/accordion-item/accordion-item.component';\nimport { DaffAccordionItemTitleDirective } from './accordion/accordion-item-title/accordion-item-title.directive';\n\n/**\n * @deprecated in favor of {@link DAFF_ACCORDION_COMPONENTS}. Deprecated in version 0.78.0. Will be removed in version 1.0.0.\n */\n@NgModule({\n imports: [\n CommonModule,\n DaffAccordionComponent,\n DaffAccordionItemComponent,\n DaffAccordionItemTitleDirective,\n ],\n exports: [\n DaffAccordionComponent,\n DaffAccordionItemComponent,\n DaffAccordionItemTitleDirective,\n ],\n})\nexport class DaffAccordionModule { }\n","import { DaffAccordionComponent } from './accordion/accordion/accordion.component';\nimport { DaffAccordionItemComponent } from './accordion/accordion-item/accordion-item.component';\nimport { DaffAccordionItemTitleDirective } from './accordion/accordion-item-title/accordion-item-title.directive';\n\n/**\n * @docs-private\n *\n * `DAFF_ACCORDION_COMPONENTS` imports all the available components and directives related to the component.\n */\nexport const DAFF_ACCORDION_COMPONENTS = <const> [\n DaffAccordionComponent,\n DaffAccordionItemComponent,\n DaffAccordionItemTitleDirective,\n];\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"daffodil-design-accordion.mjs","sources":["../../../libs/design/accordion/src/accordion/accordion/accordion.component.ts","../../../libs/design/accordion/src/accordion/accordion-item/accordion-item.component.ts","../../../libs/design/accordion/src/accordion/accordion-item/accordion-item.component.html","../../../libs/design/accordion/src/accordion/accordion-item-title/accordion-item-title.directive.ts","../../../libs/design/accordion/src/accordion.module.ts","../../../libs/design/accordion/src/accordion.ts","../../../libs/design/accordion/src/daffodil-design-accordion.ts"],"sourcesContent":["import {\n ChangeDetectionStrategy,\n Component,\n} from '@angular/core';\n\nimport { DaffArticleEncapsulatedDirective } from '@daffodil/design';\n\n/**\n * Groups accordion items.\n *\n * @example\n * ```html\n * <daff-accordion>\n * <daff-accordion-item>\n * <div daffAccordionItemTitle>Title</div>\n * <div>Expandable content</div>\n * </daff-accordion-item>\n * <daff-accordion-item>\n * <div daffAccordionItemTitle>Title</div>\n * <div>Expandable content</div>\n * </daff-accordion-item>\n * </daff-accordion>\n * ```\n */\n@Component({\n selector: 'daff-accordion',\n template: '<ng-content></ng-content>',\n styles: [`\n :host {\n display: block;\n }\n `],\n hostDirectives: [{\n directive: DaffArticleEncapsulatedDirective,\n }],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\n\nexport class DaffAccordionComponent {}\n","/* eslint-disable quote-props */\nimport {\n Component,\n Input,\n OnInit,\n ViewEncapsulation,\n ChangeDetectionStrategy,\n} from '@angular/core';\n\nimport {\n DaffDisableable,\n DaffDisableableDirective,\n DaffOpenable,\n DaffOpenableDirective,\n} from '@daffodil/design';\n\nlet daffAccordionItemId = 0;\nlet daffAccordionItemContentId = 0;\n\n/**\n * Contains the title and collapsible content. Handles expansion and collapse on user interaction. All `<daff-accordion-item>`s should be grouped inside a `<daff-accordion>`.\n *\n * @example\n * ```html\n * <daff-accordion-item>\n * <div daffAccordionItemTitle>Title</div>\n * <div>Accordion content</div>\n * </daff-accordion-item>\n * ```\n */\n@Component({\n selector: 'daff-accordion-item',\n templateUrl: './accordion-item.component.html',\n styleUrls: ['./accordion-item.component.scss'],\n hostDirectives: [\n {\n directive: DaffOpenableDirective,\n outputs: ['toggled'],\n },\n {\n directive: DaffDisableableDirective,\n inputs: ['disabled'],\n },\n ],\n host: {\n 'class': 'daff-accordion-item',\n },\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DaffAccordionItemComponent implements OnInit, DaffOpenable, DaffDisableable {\n /**\n * The unique id of an accordion item. Defaults to an autogenerated value.\n */\n @Input() itemId: string = 'daff-accordion-item' + '-' + ++daffAccordionItemId;\n\n /**\n * The unique id of an accordion item content. Defaults to an autogenerated value.\n */\n @Input() contentId: string = 'daff-accordion-item-content' + '-' + ++daffAccordionItemContentId;\n\n /**\n * Whether or not an accordion item is initially expanded by default.\n */\n @Input() initiallyExpanded = false;\n\n /**\n * @docs-private\n *\n * Internal function to access the disabled property of the DaffDisableableDirective\n */\n get disabled() {\n return this.disabledDirective.disabled;\n }\n\n constructor(\n private openDirective: DaffOpenableDirective,\n private disabledDirective: DaffDisableableDirective,\n ) {\n this.openDirective.stateless = false;\n }\n\n /**\n * @docs-private\n */\n ngOnInit() {\n this.openDirective.open.update(() => this.initiallyExpanded ? this.initiallyExpanded : this.openDirective.open()) ;\n }\n\n /**\n * @docs-private\n */\n get open() {\n return this.openDirective.open;\n }\n\n /**\n * Reveals the contents of the accordion item.\n */\n reveal() {\n this.openDirective.reveal();\n }\n\n /**\n * Hides the contents of the accordion item.\n */\n hide() {\n this.openDirective.hide();\n }\n\n /**\n * Toggles the visibility of the contents of the accordion item.\n */\n toggle() {\n this.openDirective.toggle();\n }\n}\n","<button type=\"button\" class=\"daff-accordion-item__header\"\n (click)=\"toggle()\"\n [attr.aria-expanded]=\"open()\"\n [attr.aria-controls]=\"contentId\"\n [id]=\"itemId\"\n [disabled]=\"disabled\"\n [attr.aria-disabled]=\"disabled\">\n <ng-content select=\"[daffAccordionItemTitle]\"></ng-content>\n</button>\n<div class=\"daff-accordion-item__content\" [id]=\"contentId\" [attr.aria-labelledby]=\"itemId\" role=\"region\">\n <ng-content></ng-content>\n</div>","/* eslint-disable quote-props */\nimport { Directive } from '@angular/core';\n\n/**\n * Used to provide a high level overview of the panel content. It should be wrapped by a `<daff-accordion-item>`.\n *\n * @example\n * ```html\n * <div daffAccordionItemTitle>Title</div>\n * ```\n */\n@Directive({\n selector: '[daffAccordionItemTitle]',\n host: {\n 'class': 'daff-accordion-item__title',\n },\n})\nexport class DaffAccordionItemTitleDirective {}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { DaffAccordionComponent } from './accordion/accordion/accordion.component';\nimport { DaffAccordionItemComponent } from './accordion/accordion-item/accordion-item.component';\nimport { DaffAccordionItemTitleDirective } from './accordion/accordion-item-title/accordion-item-title.directive';\n\n/**\n * @deprecated in favor of {@link DAFF_ACCORDION_COMPONENTS}. Deprecated in version 0.78.0. Will be removed in version 1.0.0.\n */\n@NgModule({\n imports: [\n CommonModule,\n DaffAccordionComponent,\n DaffAccordionItemComponent,\n DaffAccordionItemTitleDirective,\n ],\n exports: [\n DaffAccordionComponent,\n DaffAccordionItemComponent,\n DaffAccordionItemTitleDirective,\n ],\n})\nexport class DaffAccordionModule { }\n","import { DaffAccordionComponent } from './accordion/accordion/accordion.component';\nimport { DaffAccordionItemComponent } from './accordion/accordion-item/accordion-item.component';\nimport { DaffAccordionItemTitleDirective } from './accordion/accordion-item-title/accordion-item-title.directive';\n\n/**\n * @docs-private\n *\n * `DAFF_ACCORDION_COMPONENTS` imports all the available components and directives related to the component.\n */\nexport const DAFF_ACCORDION_COMPONENTS = <const> [\n DaffAccordionComponent,\n DaffAccordionItemComponent,\n DaffAccordionItemTitleDirective,\n];\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}