@daffodil/design 0.63.1 → 0.64.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (661) hide show
  1. package/accordion/examples/basic-accordion/basic-accordion.component.d.ts +1 -1
  2. package/accordion/examples/nav-accordion/nav-accordion.component.d.ts +1 -1
  3. package/article/examples/article-blockquote/article-blockquote.component.d.ts +1 -1
  4. package/article/examples/article-code-block/article-code-block.component.d.ts +1 -1
  5. package/article/examples/article-code-inline/article-code-inline.component.d.ts +1 -1
  6. package/article/examples/article-headings/article-headings.component.d.ts +1 -1
  7. package/article/examples/article-hr/article-hr.component.d.ts +1 -1
  8. package/article/examples/article-lead/article-lead.component.d.ts +1 -1
  9. package/article/examples/article-link/article-link.component.d.ts +1 -1
  10. package/article/examples/article-meta/article-meta.component.d.ts +1 -1
  11. package/article/examples/article-ol/article-ol.component.d.ts +1 -1
  12. package/article/examples/article-table/article-table.component.d.ts +1 -1
  13. package/article/examples/article-ul/article-ul.component.d.ts +1 -1
  14. package/atoms/button/button.component.d.ts +1 -1
  15. package/atoms/container/container.component.d.ts +1 -1
  16. package/atoms/form/checkbox/checkbox.component.d.ts +1 -1
  17. package/atoms/form/checkbox/cva/checkbox-cva.directive.d.ts +1 -1
  18. package/atoms/form/checkbox-set/checkbox-set.component.d.ts +3 -3
  19. package/atoms/form/core/error-state-matcher/error-state-matcher.d.ts +2 -2
  20. package/atoms/form/error-message/error-message.component.d.ts +1 -1
  21. package/atoms/form/form-field/form-field/form-field.component.d.ts +1 -1
  22. package/atoms/form/form-label/form-label.directive.d.ts +1 -1
  23. package/atoms/form/input/input.component.d.ts +1 -1
  24. package/atoms/form/native-select/native-select.component.d.ts +1 -1
  25. package/atoms/form/quantity-field/quantity-field.component.d.ts +2 -2
  26. package/atoms/form/quantity-field/quantity-input/quantity-input.component.d.ts +3 -3
  27. package/atoms/form/quantity-field/quantity-select/quantity-select.component.d.ts +1 -1
  28. package/atoms/form/radio/cva/radio-cva.directive.d.ts +1 -1
  29. package/atoms/form/radio/radio.component.d.ts +1 -1
  30. package/atoms/form/radio-set/radio-set.component.d.ts +1 -1
  31. package/atoms/image/image.component.d.ts +1 -1
  32. package/atoms/loading-icon/loading-icon.component.d.ts +1 -1
  33. package/atoms/progress-indicator/progress-indicator.component.d.ts +1 -1
  34. package/button/examples/basic-button/basic-button.component.d.ts +1 -1
  35. package/button/examples/flat-button/flat-button.component.d.ts +1 -1
  36. package/button/examples/icon-button/icon-button.component.d.ts +1 -1
  37. package/button/examples/raised-button/raised-button.component.d.ts +1 -1
  38. package/button/examples/sizeable-button/sizeable-button.component.d.ts +1 -1
  39. package/button/examples/statusable-button/statusable-button.component.d.ts +1 -1
  40. package/button/examples/stroked-button/stroked-button.component.d.ts +1 -1
  41. package/button/examples/underline-button/underline-button.component.d.ts +1 -1
  42. package/callout/examples/callout-text-alignment/callout-text-alignment.component.d.ts +3 -3
  43. package/callout/examples/callout-theming/callout-theming.component.d.ts +3 -3
  44. package/callout/examples/callout-with-grid/callout-with-grid.component.d.ts +1 -1
  45. package/callout/examples/compact-callout/compact-callout.component.d.ts +1 -1
  46. package/card/examples/basic-card/basic-card.component.d.ts +1 -1
  47. package/card/examples/card-orientation/card-orientation.component.d.ts +3 -3
  48. package/card/examples/card-theming/card-theming.component.d.ts +3 -3
  49. package/card/examples/linkable-card/linkable-card.component.d.ts +5 -5
  50. package/card/examples/raised-card/raised-card.component.d.ts +3 -3
  51. package/card/examples/stroked-card/stroked-card.component.d.ts +3 -3
  52. package/checkbox/examples/basic-checkbox/basic-checkbox.component.d.ts +3 -3
  53. package/checkbox/examples/checkbox-set/checkbox-set.component.d.ts +3 -3
  54. package/container/examples/container-sizes/container-sizes.component.d.ts +3 -3
  55. package/core/colorable/colorable-mixin.d.ts +1 -1
  56. package/core/focus/public_api.d.ts +1 -0
  57. package/core/focus/stack.service.d.ts +35 -0
  58. package/core/prefix-suffix/prefix.directive.d.ts +1 -1
  59. package/core/prefix-suffix/suffix.directive.d.ts +1 -1
  60. package/core/sizeable/sizeable-mixin.d.ts +1 -1
  61. package/core/statusable/statusable-mixin.d.ts +1 -1
  62. package/core/text-alignable/text-alignable-mixin.d.ts +1 -1
  63. package/core/theming/services/theming.service.d.ts +1 -1
  64. package/esm2020/accordion/examples/basic-accordion/basic-accordion.component.mjs +3 -3
  65. package/esm2020/accordion/examples/basic-accordion/basic-accordion.module.mjs +5 -7
  66. package/esm2020/accordion/examples/nav-accordion/nav-accordion.component.mjs +3 -3
  67. package/esm2020/accordion/examples/nav-accordion/nav-accordion.module.mjs +5 -7
  68. package/esm2020/article/examples/article-blockquote/article-blockquote.component.mjs +3 -3
  69. package/esm2020/article/examples/article-code-block/article-code-block.component.mjs +3 -3
  70. package/esm2020/article/examples/article-code-inline/article-code-inline.component.mjs +3 -3
  71. package/esm2020/article/examples/article-examples.module.mjs +6 -11
  72. package/esm2020/article/examples/article-headings/article-headings.component.mjs +3 -3
  73. package/esm2020/article/examples/article-hr/article-hr.component.mjs +3 -3
  74. package/esm2020/article/examples/article-lead/article-lead.component.mjs +3 -3
  75. package/esm2020/article/examples/article-link/article-link.component.mjs +3 -3
  76. package/esm2020/article/examples/article-meta/article-meta.component.mjs +3 -3
  77. package/esm2020/article/examples/article-ol/article-ol.component.mjs +3 -3
  78. package/esm2020/article/examples/article-table/article-table.component.mjs +3 -3
  79. package/esm2020/article/examples/article-ul/article-ul.component.mjs +3 -3
  80. package/esm2020/atoms/button/button.component.mjs +5 -5
  81. package/esm2020/atoms/button/button.module.mjs +8 -10
  82. package/esm2020/atoms/container/container.component.mjs +3 -3
  83. package/esm2020/atoms/container/container.module.mjs +5 -7
  84. package/esm2020/atoms/form/checkbox/checkbox.component.mjs +4 -4
  85. package/esm2020/atoms/form/checkbox/checkbox.module.mjs +7 -9
  86. package/esm2020/atoms/form/checkbox/cva/checkbox-cva.directive.mjs +3 -3
  87. package/esm2020/atoms/form/checkbox-set/checkbox-set.component.mjs +6 -6
  88. package/esm2020/atoms/form/core/error-state-matcher/error-state-matcher.mjs +1 -1
  89. package/esm2020/atoms/form/error-message/error-message.component.mjs +3 -3
  90. package/esm2020/atoms/form/error-message/error-message.module.mjs +4 -4
  91. package/esm2020/atoms/form/form-field/form-field/form-field.component.mjs +5 -5
  92. package/esm2020/atoms/form/form-field/form-field.module.mjs +8 -10
  93. package/esm2020/atoms/form/form-label/form-label.directive.mjs +3 -3
  94. package/esm2020/atoms/form/form-label/form-label.module.mjs +4 -4
  95. package/esm2020/atoms/form/input/input.component.mjs +3 -3
  96. package/esm2020/atoms/form/input/input.module.mjs +5 -7
  97. package/esm2020/atoms/form/native-select/native-select.component.mjs +3 -3
  98. package/esm2020/atoms/form/native-select/native-select.module.mjs +5 -7
  99. package/esm2020/atoms/form/quantity-field/quantity-field.component.mjs +8 -8
  100. package/esm2020/atoms/form/quantity-field/quantity-field.module.mjs +10 -12
  101. package/esm2020/atoms/form/quantity-field/quantity-input/quantity-input.component.mjs +6 -6
  102. package/esm2020/atoms/form/quantity-field/quantity-select/quantity-select.component.mjs +5 -5
  103. package/esm2020/atoms/form/radio/cva/radio-cva.directive.mjs +3 -3
  104. package/esm2020/atoms/form/radio/radio.component.mjs +4 -4
  105. package/esm2020/atoms/form/radio/radio.module.mjs +6 -8
  106. package/esm2020/atoms/form/radio/registry/radio-registry.mjs +3 -3
  107. package/esm2020/atoms/form/radio-set/radio-set.component.mjs +4 -4
  108. package/esm2020/atoms/image/image.component.mjs +5 -5
  109. package/esm2020/atoms/image/image.module.mjs +5 -10
  110. package/esm2020/atoms/loading-icon/loading-icon.component.mjs +3 -3
  111. package/esm2020/atoms/loading-icon/loading-icon.module.mjs +5 -7
  112. package/esm2020/atoms/progress-indicator/progress-indicator.component.mjs +5 -5
  113. package/esm2020/atoms/progress-indicator/progress-indicator.module.mjs +5 -7
  114. package/esm2020/button/examples/basic-button/basic-button.component.mjs +5 -11
  115. package/esm2020/button/examples/basic-button/basic-button.module.mjs +6 -8
  116. package/esm2020/button/examples/flat-button/flat-button.component.mjs +5 -11
  117. package/esm2020/button/examples/flat-button/flat-button.module.mjs +6 -8
  118. package/esm2020/button/examples/icon-button/icon-button.component.mjs +5 -11
  119. package/esm2020/button/examples/icon-button/icon-button.module.mjs +6 -8
  120. package/esm2020/button/examples/raised-button/raised-button.component.mjs +5 -11
  121. package/esm2020/button/examples/raised-button/raised-button.module.mjs +6 -8
  122. package/esm2020/button/examples/sizeable-button/sizeable-button.component.mjs +3 -3
  123. package/esm2020/button/examples/sizeable-button/sizeable-button.module.mjs +6 -8
  124. package/esm2020/button/examples/statusable-button/statusable-button.component.mjs +3 -3
  125. package/esm2020/button/examples/statusable-button/statusable-button.module.mjs +6 -8
  126. package/esm2020/button/examples/stroked-button/stroked-button.component.mjs +5 -11
  127. package/esm2020/button/examples/stroked-button/stroked-button.module.mjs +6 -8
  128. package/esm2020/button/examples/underline-button/underline-button.component.mjs +5 -11
  129. package/esm2020/button/examples/underline-button/underline-button.module.mjs +6 -8
  130. package/esm2020/callout/examples/callout-text-alignment/callout-text-alignment.component.mjs +10 -10
  131. package/esm2020/callout/examples/callout-text-alignment/callout-text-alignment.module.mjs +10 -12
  132. package/esm2020/callout/examples/callout-theming/callout-theming.component.mjs +10 -10
  133. package/esm2020/callout/examples/callout-theming/callout-theming.module.mjs +9 -11
  134. package/esm2020/callout/examples/callout-with-grid/callout-with-grid.component.mjs +3 -3
  135. package/esm2020/callout/examples/callout-with-grid/callout-with-grid.module.mjs +10 -12
  136. package/esm2020/callout/examples/compact-callout/compact-callout.component.mjs +3 -3
  137. package/esm2020/callout/examples/compact-callout/compact-callout.module.mjs +9 -11
  138. package/esm2020/card/examples/basic-card/basic-card.component.mjs +3 -3
  139. package/esm2020/card/examples/basic-card/basic-card.module.mjs +9 -11
  140. package/esm2020/card/examples/card-orientation/card-orientation.component.mjs +10 -10
  141. package/esm2020/card/examples/card-orientation/card-orientation.module.mjs +10 -12
  142. package/esm2020/card/examples/card-theming/card-theming.component.mjs +9 -13
  143. package/esm2020/card/examples/card-theming/card-theming.module.mjs +8 -10
  144. package/esm2020/card/examples/linkable-card/linkable-card.component.mjs +10 -10
  145. package/esm2020/card/examples/linkable-card/linkable-card.module.mjs +10 -12
  146. package/esm2020/card/examples/raised-card/raised-card.component.mjs +8 -8
  147. package/esm2020/card/examples/raised-card/raised-card.module.mjs +9 -11
  148. package/esm2020/card/examples/stroked-card/stroked-card.component.mjs +8 -8
  149. package/esm2020/card/examples/stroked-card/stroked-card.module.mjs +10 -12
  150. package/esm2020/checkbox/examples/basic-checkbox/basic-checkbox.component.mjs +6 -6
  151. package/esm2020/checkbox/examples/basic-checkbox/basic-checkbox.module.mjs +7 -9
  152. package/esm2020/checkbox/examples/checkbox-set/checkbox-set.component.mjs +6 -6
  153. package/esm2020/checkbox/examples/checkbox-set/checkbox-set.module.mjs +7 -9
  154. package/esm2020/container/examples/container-sizes/container-sizes.component.mjs +8 -8
  155. package/esm2020/container/examples/container-sizes/container-sizes.module.mjs +7 -9
  156. package/esm2020/core/colorable/colorable-mixin.mjs +1 -1
  157. package/esm2020/core/focus/public_api.mjs +2 -1
  158. package/esm2020/core/focus/stack.service.mjs +71 -0
  159. package/esm2020/core/prefix-suffix/prefix-suffix.module.mjs +5 -5
  160. package/esm2020/core/prefix-suffix/prefix.directive.mjs +3 -3
  161. package/esm2020/core/prefix-suffix/prefixable/prefixable.mjs +3 -3
  162. package/esm2020/core/prefix-suffix/suffix.directive.mjs +3 -3
  163. package/esm2020/core/prefix-suffix/suffixable/suffixable.mjs +3 -3
  164. package/esm2020/core/sizeable/sizeable-mixin.mjs +1 -1
  165. package/esm2020/core/statusable/statusable-mixin.mjs +1 -1
  166. package/esm2020/core/text-alignable/text-alignable-mixin.mjs +1 -1
  167. package/esm2020/core/theming/services/class-setter/theme-class-setter.service.mjs +3 -3
  168. package/esm2020/core/theming/services/os-theme/ostheme.service.mjs +3 -3
  169. package/esm2020/core/theming/services/storage/theme-storage.service.mjs +3 -3
  170. package/esm2020/core/theming/services/theming.service.mjs +6 -6
  171. package/esm2020/hero/examples/compact-hero/compact-hero.component.mjs +3 -3
  172. package/esm2020/hero/examples/compact-hero/compact-hero.module.mjs +9 -11
  173. package/esm2020/hero/examples/hero-text-alignment/hero-text-alignment.component.mjs +10 -10
  174. package/esm2020/hero/examples/hero-text-alignment/hero-text-alignment.module.mjs +10 -12
  175. package/esm2020/hero/examples/hero-theming/hero-theming.component.mjs +9 -9
  176. package/esm2020/hero/examples/hero-theming/hero-theming.module.mjs +9 -11
  177. package/esm2020/hero/examples/hero-with-grid/hero-with-grid.component.mjs +3 -3
  178. package/esm2020/hero/examples/hero-with-grid/hero-with-grid.module.mjs +10 -12
  179. package/esm2020/image/examples/basic-image/basic-image.component.mjs +3 -3
  180. package/esm2020/image/examples/basic-image/basic-image.module.mjs +5 -7
  181. package/esm2020/image/examples/load-image/load-image.component.mjs +5 -5
  182. package/esm2020/image/examples/load-image/load-image.module.mjs +6 -8
  183. package/esm2020/image/examples/skeleton-image/skeleton-image.component.mjs +3 -3
  184. package/esm2020/image/examples/skeleton-image/skeleton-image.module.mjs +5 -7
  185. package/esm2020/input/examples/basic-input/basic-input.component.mjs +3 -3
  186. package/esm2020/input/examples/basic-input/basic-input.module.mjs +6 -8
  187. package/esm2020/input/examples/input-disabled/input-disabled.component.mjs +3 -3
  188. package/esm2020/input/examples/input-disabled/input-disabled.module.mjs +6 -8
  189. package/esm2020/input/examples/input-error/input-error.component.mjs +6 -6
  190. package/esm2020/input/examples/input-error/input-error.module.mjs +7 -9
  191. package/esm2020/input/examples/input-with-form-field/input-with-form-field.component.mjs +3 -3
  192. package/esm2020/input/examples/input-with-form-field/input-with-form-field.module.mjs +6 -8
  193. package/esm2020/list/examples/basic-list/basic-list.component.mjs +3 -3
  194. package/esm2020/list/examples/basic-list/basic-list.module.mjs +6 -8
  195. package/esm2020/list/examples/icon-list/icon-list.component.mjs +3 -3
  196. package/esm2020/list/examples/icon-list/icon-list.module.mjs +7 -9
  197. package/esm2020/list/examples/list-examples.module.mjs +9 -15
  198. package/esm2020/list/examples/multiline-list/multiline-list.component.mjs +3 -3
  199. package/esm2020/list/examples/multiline-list/multiline-list.module.mjs +7 -9
  200. package/esm2020/list/examples/nav-list/nav-list.component.mjs +3 -3
  201. package/esm2020/list/examples/nav-list/nav-list.module.mjs +7 -9
  202. package/esm2020/loading-icon/examples/loading-icon-color/loading-icon-color.component.mjs +7 -7
  203. package/esm2020/loading-icon/examples/loading-icon-color/loading-icon-color.module.mjs +7 -9
  204. package/esm2020/loading-icon/examples/loading-icon-diameter/loading-icon-diameter.component.mjs +3 -3
  205. package/esm2020/loading-icon/examples/loading-icon-diameter/loading-icon-diameter.module.mjs +5 -7
  206. package/esm2020/media-gallery/examples/basic-media-gallery/basic-media-gallery.component.mjs +3 -3
  207. package/esm2020/media-gallery/examples/basic-media-gallery/basic-media-gallery.module.mjs +6 -8
  208. package/esm2020/media-gallery/examples/mismatched-sizes-media-gallery/mismatched-sizes-media-gallery.component.mjs +3 -3
  209. package/esm2020/media-gallery/examples/mismatched-sizes-media-gallery/mismatched-sizes-media-gallery.module.mjs +6 -8
  210. package/esm2020/media-gallery/examples/skeleton-media-gallery/skeleton-media-gallery.component.mjs +3 -3
  211. package/esm2020/media-gallery/examples/skeleton-media-gallery/skeleton-media-gallery.module.mjs +6 -8
  212. package/esm2020/menu/examples/basic-menu/basic-menu.component.mjs +3 -3
  213. package/esm2020/menu/examples/basic-menu/basic-menu.module.mjs +7 -9
  214. package/esm2020/menu/examples/basic-menu/menu-content/menu-content.component.mjs +3 -3
  215. package/esm2020/modal/examples/basic-modal/basic-modal.component.mjs +3 -3
  216. package/esm2020/modal/examples/basic-modal/basic-modal.module.mjs +6 -8
  217. package/esm2020/modal/examples/basic-modal/modal-content.component.mjs +3 -3
  218. package/esm2020/molecules/accordion/accordion/accordion.component.mjs +3 -3
  219. package/esm2020/molecules/accordion/accordion-item/accordion-item.component.mjs +4 -4
  220. package/esm2020/molecules/accordion/accordion-item-content/accordion-item-content.directive.mjs +3 -3
  221. package/esm2020/molecules/accordion/accordion-item-title/accordion-item-title.directive.mjs +3 -3
  222. package/esm2020/molecules/accordion/accordion.module.mjs +10 -12
  223. package/esm2020/molecules/accordion/nav-accordion-item/nav-accordion-item.component.mjs +11 -8
  224. package/esm2020/molecules/article/article/article.component.mjs +4 -4
  225. package/esm2020/molecules/article/article-lead/article-lead.directive.mjs +3 -3
  226. package/esm2020/molecules/article/article-meta/article-meta.directive.mjs +3 -3
  227. package/esm2020/molecules/article/article-title/article-title.directive.mjs +3 -3
  228. package/esm2020/molecules/article/article.module.mjs +6 -8
  229. package/esm2020/molecules/backdrop/backdrop/backdrop.component.mjs +3 -3
  230. package/esm2020/molecules/backdrop/backdrop.module.mjs +5 -10
  231. package/esm2020/molecules/button-set/button-set.component.mjs +7 -4
  232. package/esm2020/molecules/button-set/button-set.module.mjs +4 -4
  233. package/esm2020/molecules/callout/callout/callout.component.mjs +3 -3
  234. package/esm2020/molecules/callout/callout-body/callout-body.directive.mjs +3 -3
  235. package/esm2020/molecules/callout/callout-icon/callout-icon.directive.mjs +3 -3
  236. package/esm2020/molecules/callout/callout-subtitle/callout-subtitle.directive.mjs +3 -3
  237. package/esm2020/molecules/callout/callout-tagline/callout-tagline.directive.mjs +3 -3
  238. package/esm2020/molecules/callout/callout-title/callout-title.directive.mjs +3 -3
  239. package/esm2020/molecules/callout/callout.module.mjs +6 -8
  240. package/esm2020/molecules/card/card/card.component.mjs +4 -4
  241. package/esm2020/molecules/card/card-actions/card-actions.directive.mjs +3 -3
  242. package/esm2020/molecules/card/card-content/card-content.directive.mjs +3 -3
  243. package/esm2020/molecules/card/card-icon/card-icon.directive.mjs +3 -3
  244. package/esm2020/molecules/card/card-image/card-image.directive.mjs +3 -3
  245. package/esm2020/molecules/card/card-tagline/card-tagline.directive.mjs +3 -3
  246. package/esm2020/molecules/card/card-title/card-title.directive.mjs +3 -3
  247. package/esm2020/molecules/card/card.module.mjs +6 -8
  248. package/esm2020/molecules/feature/feature/feature.component.mjs +3 -3
  249. package/esm2020/molecules/feature/feature-icon/feature-icon.directive.mjs +3 -3
  250. package/esm2020/molecules/feature/feature-subheader/feature-subheader.directive.mjs +3 -3
  251. package/esm2020/molecules/feature/feature-subtitle/feature-subtitle.directive.mjs +3 -3
  252. package/esm2020/molecules/feature/feature-title/feature-title.directive.mjs +3 -3
  253. package/esm2020/molecules/feature/feature.module.mjs +6 -8
  254. package/esm2020/molecules/hero/hero/hero.component.mjs +3 -3
  255. package/esm2020/molecules/hero/hero-body/hero-body.directive.mjs +3 -3
  256. package/esm2020/molecules/hero/hero-icon/hero-icon.directive.mjs +3 -3
  257. package/esm2020/molecules/hero/hero-subtitle/hero-subtitle.directive.mjs +3 -3
  258. package/esm2020/molecules/hero/hero-tagline/hero-tagline.directive.mjs +3 -3
  259. package/esm2020/molecules/hero/hero-title/hero-title.directive.mjs +3 -3
  260. package/esm2020/molecules/hero/hero.module.mjs +6 -8
  261. package/esm2020/molecules/image-gallery/gallery-image/gallery-image.component.mjs +3 -3
  262. package/esm2020/molecules/image-gallery/image-gallery/image-gallery.component.mjs +3 -3
  263. package/esm2020/molecules/image-gallery/image-gallery.module.mjs +7 -9
  264. package/esm2020/molecules/image-list/image-list.component.mjs +4 -4
  265. package/esm2020/molecules/image-list/image-list.module.mjs +5 -7
  266. package/esm2020/molecules/link-set/link-set/link-set.component.mjs +3 -3
  267. package/esm2020/molecules/link-set/link-set-heading/link-set-heading.directive.mjs +3 -3
  268. package/esm2020/molecules/link-set/link-set-item/link-set-item.component.mjs +3 -3
  269. package/esm2020/molecules/link-set/link-set-subheading/link-set-subheading.directive.mjs +3 -3
  270. package/esm2020/molecules/link-set/link-set.module.mjs +6 -8
  271. package/esm2020/molecules/list/list/list.component.mjs +4 -4
  272. package/esm2020/molecules/list/list-item/list-item.component.mjs +3 -3
  273. package/esm2020/molecules/list/list-subheader/list-subheader.directive.mjs +3 -3
  274. package/esm2020/molecules/list/list.module.mjs +8 -10
  275. package/esm2020/molecules/media-gallery/media-gallery.component.mjs +7 -7
  276. package/esm2020/molecules/media-gallery/media-gallery.module.mjs +5 -7
  277. package/esm2020/molecules/media-gallery/media-renderer/media-renderer.component.mjs +4 -4
  278. package/esm2020/molecules/media-gallery/registry/media-gallery.registry.mjs +3 -3
  279. package/esm2020/molecules/media-gallery/thumbnail/thumbnail.directive.mjs +5 -5
  280. package/esm2020/molecules/menu/menu/menu.component.mjs +3 -3
  281. package/esm2020/molecules/menu/menu-activator/menu-activator.component.mjs +3 -3
  282. package/esm2020/molecules/menu/menu-item/menu-item.component.mjs +3 -3
  283. package/esm2020/molecules/menu/menu.module.mjs +8 -10
  284. package/esm2020/molecules/menu/service/menu.service.mjs +3 -3
  285. package/esm2020/molecules/modal/modal/modal.component.mjs +4 -4
  286. package/esm2020/molecules/modal/modal-actions/modal-actions.component.mjs +3 -3
  287. package/esm2020/molecules/modal/modal-content/modal-content.component.mjs +3 -3
  288. package/esm2020/molecules/modal/modal-header/modal-header.component.mjs +3 -3
  289. package/esm2020/molecules/modal/modal-title/modal-title.directive.mjs +3 -3
  290. package/esm2020/molecules/modal/modal.module.mjs +8 -10
  291. package/esm2020/molecules/modal/service/modal.service.mjs +5 -5
  292. package/esm2020/molecules/navbar/navbar.component.mjs +3 -3
  293. package/esm2020/molecules/navbar/navbar.module.mjs +4 -4
  294. package/esm2020/molecules/paginator/paginator.component.mjs +11 -8
  295. package/esm2020/molecules/paginator/paginator.module.mjs +8 -10
  296. package/esm2020/molecules/qty-dropdown/qty-dropdown.component.mjs +8 -8
  297. package/esm2020/molecules/qty-dropdown/qty-dropdown.module.mjs +10 -12
  298. package/esm2020/molecules/sidebar/animation/sidebar-viewport-animation-state.mjs +1 -1
  299. package/esm2020/molecules/sidebar/sidebar/sidebar.component.mjs +5 -5
  300. package/esm2020/molecules/sidebar/sidebar-viewport/content-pad.mjs +2 -2
  301. package/esm2020/molecules/sidebar/sidebar-viewport/sidebar-viewport.component.mjs +7 -7
  302. package/esm2020/molecules/sidebar/sidebar.module.mjs +9 -11
  303. package/esm2020/navbar/examples/basic-navbar/basic-navbar.component.mjs +3 -3
  304. package/esm2020/navbar/examples/basic-navbar/basic-navbar.module.mjs +8 -10
  305. package/esm2020/navbar/examples/contained-navbar/contained-navbar.component.mjs +3 -3
  306. package/esm2020/navbar/examples/contained-navbar/contained-navbar.module.mjs +8 -10
  307. package/esm2020/navbar/examples/navbar-theming/navbar-theming.component.mjs +8 -8
  308. package/esm2020/navbar/examples/navbar-theming/navbar-theming.module.mjs +8 -10
  309. package/esm2020/navbar/examples/raised-navbar/raised-navbar.component.mjs +3 -3
  310. package/esm2020/navbar/examples/raised-navbar/raised-navbar.module.mjs +7 -9
  311. package/esm2020/notification/examples/default-notification/default-notification.component.mjs +7 -12
  312. package/esm2020/notification/examples/default-notification/default-notification.module.mjs +8 -10
  313. package/esm2020/notification/examples/dismissable-notification/dismissable-notification.component.mjs +7 -12
  314. package/esm2020/notification/examples/dismissable-notification/dismissable-notification.module.mjs +8 -10
  315. package/esm2020/notification/examples/notification-orientations/notification-orientations.component.mjs +8 -8
  316. package/esm2020/notification/examples/notification-orientations/notification-orientations.module.mjs +9 -11
  317. package/esm2020/notification/examples/notification-status/notification-status.component.mjs +9 -9
  318. package/esm2020/notification/examples/notification-status/notification-status.module.mjs +9 -11
  319. package/esm2020/notification/notification/notification.component.mjs +6 -6
  320. package/esm2020/notification/notification-actions/notification-actions.directive.mjs +3 -3
  321. package/esm2020/notification/notification-message/notification-message.directive.mjs +3 -3
  322. package/esm2020/notification/notification-subtitle/notification-subtitle.directive.mjs +3 -3
  323. package/esm2020/notification/notification-title/notification-title.directive.mjs +3 -3
  324. package/esm2020/notification/notification.module.mjs +8 -10
  325. package/esm2020/paginator/examples/basic-paginator/basic-paginator.component.mjs +3 -3
  326. package/esm2020/paginator/examples/paginator-examples.module.mjs +6 -11
  327. package/esm2020/quantity-field/examples/basic-quantity-field/basic-quantity-field.component.mjs +9 -9
  328. package/esm2020/quantity-field/examples/basic-quantity-field/basic-quantity-field.module.mjs +8 -10
  329. package/esm2020/quantity-field/examples/custom-range-quantity-field/custom-range-quantity-field.component.mjs +9 -9
  330. package/esm2020/quantity-field/examples/custom-range-quantity-field/custom-range-quantity-field.module.mjs +8 -10
  331. package/esm2020/quantity-field/examples/disabled-quantity-field/disabled-quantity-field.component.mjs +9 -9
  332. package/esm2020/quantity-field/examples/disabled-quantity-field/disabled-quantity-field.module.mjs +8 -10
  333. package/esm2020/quantity-field/examples/select-max-quantity-field/select-max-quantity-field.component.mjs +9 -9
  334. package/esm2020/quantity-field/examples/select-max-quantity-field/select-max-quantity-field.module.mjs +8 -10
  335. package/esm2020/radio/examples/basic-radio/basic-radio.component.mjs +7 -7
  336. package/esm2020/radio/examples/basic-radio/basic-radio.module.mjs +6 -8
  337. package/esm2020/sidebar/examples/basic-sidebar/basic-sidebar.component.mjs +5 -5
  338. package/esm2020/sidebar/examples/basic-sidebar/basic-sidebar.module.mjs +6 -8
  339. package/esm2020/sidebar/examples/fixed-and-over-sidebar/fixed-and-over-sidebar.component.mjs +3 -3
  340. package/esm2020/sidebar/examples/fixed-and-over-sidebar/fixed-and-over-sidebar.module.mjs +7 -9
  341. package/esm2020/sidebar/examples/sidebar-with-sticky/sidebar-with-sticky.component.mjs +3 -3
  342. package/esm2020/sidebar/examples/sidebar-with-sticky/sidebar-with-sticky.module.mjs +6 -8
  343. package/esm2020/sidebar/examples/two-fixed-sidebars-either-side/two-fixed-sidebars-either-side.component.mjs +3 -3
  344. package/esm2020/sidebar/examples/two-fixed-sidebars-either-side/two-fixed-sidebars-either-side.module.mjs +6 -8
  345. package/esm2020/sidebar/examples/under-sidebar/under-sidebar.component.mjs +3 -3
  346. package/esm2020/sidebar/examples/under-sidebar/under-sidebar.module.mjs +7 -9
  347. package/esm2020/tree/examples/basic-tree/basic-tree.component.mjs +5 -5
  348. package/esm2020/tree/examples/basic-tree/basic-tree.module.mjs +7 -9
  349. package/esm2020/tree/tree/tree-notifier.service.mjs +1 -1
  350. package/esm2020/tree/tree/tree.component.mjs +6 -6
  351. package/esm2020/tree/tree-item/tree-item.directive.mjs +3 -3
  352. package/esm2020/tree/tree.module.mjs +6 -8
  353. package/esm2020/tree/utils/hydrate-tree.mjs +1 -1
  354. package/esm2020/tree/utils/transform-in-place.mjs +1 -1
  355. package/fesm2015/daffodil-design-accordion-examples.mjs +14 -18
  356. package/fesm2015/daffodil-design-accordion-examples.mjs.map +1 -1
  357. package/fesm2015/daffodil-design-article-examples.mjs +38 -43
  358. package/fesm2015/daffodil-design-article-examples.mjs.map +1 -1
  359. package/fesm2015/daffodil-design-button-examples.mjs +70 -122
  360. package/fesm2015/daffodil-design-button-examples.mjs.map +1 -1
  361. package/fesm2015/daffodil-design-callout-examples.mjs +54 -62
  362. package/fesm2015/daffodil-design-callout-examples.mjs.map +1 -1
  363. package/fesm2015/daffodil-design-card-examples.mjs +79 -95
  364. package/fesm2015/daffodil-design-card-examples.mjs.map +1 -1
  365. package/fesm2015/daffodil-design-checkbox-examples.mjs +21 -25
  366. package/fesm2015/daffodil-design-checkbox-examples.mjs.map +1 -1
  367. package/fesm2015/daffodil-design-container-examples.mjs +14 -16
  368. package/fesm2015/daffodil-design-container-examples.mjs.map +1 -1
  369. package/fesm2015/daffodil-design-hero-examples.mjs +52 -60
  370. package/fesm2015/daffodil-design-hero-examples.mjs.map +1 -1
  371. package/fesm2015/daffodil-design-image-examples.mjs +23 -29
  372. package/fesm2015/daffodil-design-image-examples.mjs.map +1 -1
  373. package/fesm2015/daffodil-design-input-examples.mjs +35 -43
  374. package/fesm2015/daffodil-design-input-examples.mjs.map +1 -1
  375. package/fesm2015/daffodil-design-list-examples.mjs +50 -63
  376. package/fesm2015/daffodil-design-list-examples.mjs.map +1 -1
  377. package/fesm2015/daffodil-design-loading-icon-examples.mjs +19 -23
  378. package/fesm2015/daffodil-design-loading-icon-examples.mjs.map +1 -1
  379. package/fesm2015/daffodil-design-media-gallery-examples.mjs +24 -30
  380. package/fesm2015/daffodil-design-media-gallery-examples.mjs.map +1 -1
  381. package/fesm2015/daffodil-design-menu-examples.mjs +12 -14
  382. package/fesm2015/daffodil-design-menu-examples.mjs.map +1 -1
  383. package/fesm2015/daffodil-design-modal-examples.mjs +11 -13
  384. package/fesm2015/daffodil-design-modal-examples.mjs.map +1 -1
  385. package/fesm2015/daffodil-design-navbar-examples.mjs +42 -50
  386. package/fesm2015/daffodil-design-navbar-examples.mjs.map +1 -1
  387. package/fesm2015/daffodil-design-notification-examples.mjs +51 -69
  388. package/fesm2015/daffodil-design-notification-examples.mjs.map +1 -1
  389. package/fesm2015/daffodil-design-notification.mjs +80 -82
  390. package/fesm2015/daffodil-design-notification.mjs.map +1 -1
  391. package/fesm2015/daffodil-design-paginator-examples.mjs +8 -13
  392. package/fesm2015/daffodil-design-paginator-examples.mjs.map +1 -1
  393. package/fesm2015/daffodil-design-quantity-field-examples.mjs +51 -59
  394. package/fesm2015/daffodil-design-quantity-field-examples.mjs.map +1 -1
  395. package/fesm2015/daffodil-design-radio-examples.mjs +11 -13
  396. package/fesm2015/daffodil-design-radio-examples.mjs.map +1 -1
  397. package/fesm2015/daffodil-design-sidebar-examples.mjs +43 -53
  398. package/fesm2015/daffodil-design-sidebar-examples.mjs.map +1 -1
  399. package/fesm2015/daffodil-design-tree-examples.mjs +12 -14
  400. package/fesm2015/daffodil-design-tree-examples.mjs.map +1 -1
  401. package/fesm2015/daffodil-design-tree.mjs +161 -163
  402. package/fesm2015/daffodil-design-tree.mjs.map +1 -1
  403. package/fesm2015/daffodil-design.mjs +1027 -1009
  404. package/fesm2015/daffodil-design.mjs.map +1 -1
  405. package/fesm2020/daffodil-design-accordion-examples.mjs +14 -18
  406. package/fesm2020/daffodil-design-accordion-examples.mjs.map +1 -1
  407. package/fesm2020/daffodil-design-article-examples.mjs +38 -43
  408. package/fesm2020/daffodil-design-article-examples.mjs.map +1 -1
  409. package/fesm2020/daffodil-design-button-examples.mjs +70 -122
  410. package/fesm2020/daffodil-design-button-examples.mjs.map +1 -1
  411. package/fesm2020/daffodil-design-callout-examples.mjs +54 -62
  412. package/fesm2020/daffodil-design-callout-examples.mjs.map +1 -1
  413. package/fesm2020/daffodil-design-card-examples.mjs +79 -95
  414. package/fesm2020/daffodil-design-card-examples.mjs.map +1 -1
  415. package/fesm2020/daffodil-design-checkbox-examples.mjs +21 -25
  416. package/fesm2020/daffodil-design-checkbox-examples.mjs.map +1 -1
  417. package/fesm2020/daffodil-design-container-examples.mjs +14 -16
  418. package/fesm2020/daffodil-design-container-examples.mjs.map +1 -1
  419. package/fesm2020/daffodil-design-hero-examples.mjs +52 -60
  420. package/fesm2020/daffodil-design-hero-examples.mjs.map +1 -1
  421. package/fesm2020/daffodil-design-image-examples.mjs +23 -29
  422. package/fesm2020/daffodil-design-image-examples.mjs.map +1 -1
  423. package/fesm2020/daffodil-design-input-examples.mjs +35 -43
  424. package/fesm2020/daffodil-design-input-examples.mjs.map +1 -1
  425. package/fesm2020/daffodil-design-list-examples.mjs +50 -63
  426. package/fesm2020/daffodil-design-list-examples.mjs.map +1 -1
  427. package/fesm2020/daffodil-design-loading-icon-examples.mjs +19 -23
  428. package/fesm2020/daffodil-design-loading-icon-examples.mjs.map +1 -1
  429. package/fesm2020/daffodil-design-media-gallery-examples.mjs +24 -30
  430. package/fesm2020/daffodil-design-media-gallery-examples.mjs.map +1 -1
  431. package/fesm2020/daffodil-design-menu-examples.mjs +12 -14
  432. package/fesm2020/daffodil-design-menu-examples.mjs.map +1 -1
  433. package/fesm2020/daffodil-design-modal-examples.mjs +11 -13
  434. package/fesm2020/daffodil-design-modal-examples.mjs.map +1 -1
  435. package/fesm2020/daffodil-design-navbar-examples.mjs +42 -50
  436. package/fesm2020/daffodil-design-navbar-examples.mjs.map +1 -1
  437. package/fesm2020/daffodil-design-notification-examples.mjs +51 -69
  438. package/fesm2020/daffodil-design-notification-examples.mjs.map +1 -1
  439. package/fesm2020/daffodil-design-notification.mjs +80 -82
  440. package/fesm2020/daffodil-design-notification.mjs.map +1 -1
  441. package/fesm2020/daffodil-design-paginator-examples.mjs +8 -13
  442. package/fesm2020/daffodil-design-paginator-examples.mjs.map +1 -1
  443. package/fesm2020/daffodil-design-quantity-field-examples.mjs +51 -59
  444. package/fesm2020/daffodil-design-quantity-field-examples.mjs.map +1 -1
  445. package/fesm2020/daffodil-design-radio-examples.mjs +11 -13
  446. package/fesm2020/daffodil-design-radio-examples.mjs.map +1 -1
  447. package/fesm2020/daffodil-design-sidebar-examples.mjs +43 -53
  448. package/fesm2020/daffodil-design-sidebar-examples.mjs.map +1 -1
  449. package/fesm2020/daffodil-design-tree-examples.mjs +12 -14
  450. package/fesm2020/daffodil-design-tree-examples.mjs.map +1 -1
  451. package/fesm2020/daffodil-design-tree.mjs +158 -160
  452. package/fesm2020/daffodil-design-tree.mjs.map +1 -1
  453. package/fesm2020/daffodil-design.mjs +1022 -1006
  454. package/fesm2020/daffodil-design.mjs.map +1 -1
  455. package/hero/examples/compact-hero/compact-hero.component.d.ts +1 -1
  456. package/hero/examples/hero-text-alignment/hero-text-alignment.component.d.ts +3 -3
  457. package/hero/examples/hero-theming/hero-theming.component.d.ts +3 -3
  458. package/hero/examples/hero-with-grid/hero-with-grid.component.d.ts +1 -1
  459. package/image/examples/basic-image/basic-image.component.d.ts +1 -1
  460. package/image/examples/load-image/load-image.component.d.ts +1 -1
  461. package/image/examples/skeleton-image/skeleton-image.component.d.ts +1 -1
  462. package/input/examples/basic-input/basic-input.component.d.ts +1 -1
  463. package/input/examples/input-disabled/input-disabled.component.d.ts +1 -1
  464. package/input/examples/input-error/input-error.component.d.ts +3 -3
  465. package/input/examples/input-with-form-field/input-with-form-field.component.d.ts +1 -1
  466. package/list/examples/basic-list/basic-list.component.d.ts +1 -1
  467. package/list/examples/icon-list/icon-list.component.d.ts +1 -1
  468. package/list/examples/multiline-list/multiline-list.component.d.ts +1 -1
  469. package/list/examples/nav-list/nav-list.component.d.ts +1 -1
  470. package/loading-icon/examples/loading-icon-color/loading-icon-color.component.d.ts +3 -3
  471. package/loading-icon/examples/loading-icon-diameter/loading-icon-diameter.component.d.ts +1 -1
  472. package/media-gallery/examples/basic-media-gallery/basic-media-gallery.component.d.ts +1 -1
  473. package/media-gallery/examples/mismatched-sizes-media-gallery/mismatched-sizes-media-gallery.component.d.ts +1 -1
  474. package/media-gallery/examples/skeleton-media-gallery/skeleton-media-gallery.component.d.ts +1 -1
  475. package/menu/examples/basic-menu/basic-menu.component.d.ts +1 -1
  476. package/menu/examples/basic-menu/menu-content/menu-content.component.d.ts +1 -1
  477. package/modal/examples/basic-modal/basic-modal.component.d.ts +1 -1
  478. package/modal/examples/basic-modal/modal-content.component.d.ts +1 -1
  479. package/molecules/accordion/accordion/accordion.component.d.ts +1 -1
  480. package/molecules/accordion/accordion-item/accordion-item.component.d.ts +1 -1
  481. package/molecules/accordion/accordion-item-content/accordion-item-content.directive.d.ts +1 -1
  482. package/molecules/accordion/accordion-item-title/accordion-item-title.directive.d.ts +1 -1
  483. package/molecules/accordion/nav-accordion-item/nav-accordion-item.component.d.ts +4 -1
  484. package/molecules/article/article/article.component.d.ts +1 -1
  485. package/molecules/article/article-lead/article-lead.directive.d.ts +1 -1
  486. package/molecules/article/article-meta/article-meta.directive.d.ts +1 -1
  487. package/molecules/article/article-title/article-title.directive.d.ts +1 -1
  488. package/molecules/backdrop/backdrop/backdrop.component.d.ts +1 -1
  489. package/molecules/button-set/button-set.component.d.ts +4 -1
  490. package/molecules/callout/callout/callout.component.d.ts +1 -1
  491. package/molecules/callout/callout-body/callout-body.directive.d.ts +1 -1
  492. package/molecules/callout/callout-icon/callout-icon.directive.d.ts +1 -1
  493. package/molecules/callout/callout-subtitle/callout-subtitle.directive.d.ts +1 -1
  494. package/molecules/callout/callout-tagline/callout-tagline.directive.d.ts +1 -1
  495. package/molecules/callout/callout-title/callout-title.directive.d.ts +1 -1
  496. package/molecules/card/card/card.component.d.ts +1 -1
  497. package/molecules/card/card-actions/card-actions.directive.d.ts +1 -1
  498. package/molecules/card/card-content/card-content.directive.d.ts +1 -1
  499. package/molecules/card/card-icon/card-icon.directive.d.ts +1 -1
  500. package/molecules/card/card-image/card-image.directive.d.ts +1 -1
  501. package/molecules/card/card-tagline/card-tagline.directive.d.ts +1 -1
  502. package/molecules/card/card-title/card-title.directive.d.ts +1 -1
  503. package/molecules/feature/feature/feature.component.d.ts +1 -1
  504. package/molecules/feature/feature-icon/feature-icon.directive.d.ts +1 -1
  505. package/molecules/feature/feature-subheader/feature-subheader.directive.d.ts +1 -1
  506. package/molecules/feature/feature-subtitle/feature-subtitle.directive.d.ts +1 -1
  507. package/molecules/feature/feature-title/feature-title.directive.d.ts +1 -1
  508. package/molecules/hero/hero/hero.component.d.ts +1 -1
  509. package/molecules/hero/hero-body/hero-body.directive.d.ts +1 -1
  510. package/molecules/hero/hero-icon/hero-icon.directive.d.ts +1 -1
  511. package/molecules/hero/hero-subtitle/hero-subtitle.directive.d.ts +1 -1
  512. package/molecules/hero/hero-tagline/hero-tagline.directive.d.ts +1 -1
  513. package/molecules/hero/hero-title/hero-title.directive.d.ts +1 -1
  514. package/molecules/image-gallery/gallery-image/gallery-image.component.d.ts +1 -1
  515. package/molecules/image-gallery/image-gallery/image-gallery.component.d.ts +1 -1
  516. package/molecules/image-list/image-list.component.d.ts +1 -1
  517. package/molecules/link-set/link-set/link-set.component.d.ts +1 -1
  518. package/molecules/link-set/link-set-heading/link-set-heading.directive.d.ts +1 -1
  519. package/molecules/link-set/link-set-item/link-set-item.component.d.ts +1 -1
  520. package/molecules/link-set/link-set-subheading/link-set-subheading.directive.d.ts +1 -1
  521. package/molecules/list/list/list.component.d.ts +1 -1
  522. package/molecules/list/list-item/list-item.component.d.ts +1 -1
  523. package/molecules/list/list-subheader/list-subheader.directive.d.ts +1 -1
  524. package/molecules/media-gallery/media-gallery.component.d.ts +2 -2
  525. package/molecules/media-gallery/media-renderer/media-renderer.component.d.ts +1 -1
  526. package/molecules/media-gallery/thumbnail/thumbnail.directive.d.ts +2 -2
  527. package/molecules/menu/menu/menu.component.d.ts +1 -1
  528. package/molecules/menu/menu-activator/menu-activator.component.d.ts +1 -1
  529. package/molecules/menu/menu-item/menu-item.component.d.ts +1 -1
  530. package/molecules/modal/modal/modal.component.d.ts +1 -1
  531. package/molecules/modal/modal-actions/modal-actions.component.d.ts +1 -1
  532. package/molecules/modal/modal-content/modal-content.component.d.ts +1 -1
  533. package/molecules/modal/modal-header/modal-header.component.d.ts +1 -1
  534. package/molecules/modal/modal-title/modal-title.directive.d.ts +1 -1
  535. package/molecules/navbar/navbar.component.d.ts +1 -1
  536. package/molecules/paginator/paginator.component.d.ts +7 -4
  537. package/molecules/qty-dropdown/qty-dropdown.component.d.ts +1 -1
  538. package/molecules/sidebar/animation/sidebar-viewport-animation-state.d.ts +1 -1
  539. package/molecules/sidebar/sidebar/sidebar.component.d.ts +1 -1
  540. package/molecules/sidebar/sidebar-viewport/sidebar-viewport.component.d.ts +1 -1
  541. package/navbar/examples/basic-navbar/basic-navbar.component.d.ts +1 -1
  542. package/navbar/examples/contained-navbar/contained-navbar.component.d.ts +1 -1
  543. package/navbar/examples/navbar-theming/navbar-theming.component.d.ts +3 -3
  544. package/navbar/examples/raised-navbar/raised-navbar.component.d.ts +1 -1
  545. package/notification/examples/default-notification/default-notification.component.d.ts +1 -1
  546. package/notification/examples/dismissable-notification/dismissable-notification.component.d.ts +1 -1
  547. package/notification/examples/notification-orientations/notification-orientations.component.d.ts +3 -3
  548. package/notification/examples/notification-status/notification-status.component.d.ts +3 -3
  549. package/notification/notification/notification.component.d.ts +1 -1
  550. package/notification/notification-actions/notification-actions.directive.d.ts +1 -1
  551. package/notification/notification-message/notification-message.directive.d.ts +1 -1
  552. package/notification/notification-subtitle/notification-subtitle.directive.d.ts +1 -1
  553. package/notification/notification-title/notification-title.directive.d.ts +1 -1
  554. package/package.json +1 -1
  555. package/paginator/examples/basic-paginator/basic-paginator.component.d.ts +1 -1
  556. package/quantity-field/examples/basic-quantity-field/basic-quantity-field.component.d.ts +3 -3
  557. package/quantity-field/examples/custom-range-quantity-field/custom-range-quantity-field.component.d.ts +3 -3
  558. package/quantity-field/examples/disabled-quantity-field/disabled-quantity-field.component.d.ts +3 -3
  559. package/quantity-field/examples/select-max-quantity-field/select-max-quantity-field.component.d.ts +3 -3
  560. package/radio/examples/basic-radio/basic-radio.component.d.ts +3 -3
  561. package/sidebar/examples/basic-sidebar/basic-sidebar.component.d.ts +1 -1
  562. package/sidebar/examples/fixed-and-over-sidebar/fixed-and-over-sidebar.component.d.ts +1 -1
  563. package/sidebar/examples/sidebar-with-sticky/sidebar-with-sticky.component.d.ts +1 -1
  564. package/sidebar/examples/two-fixed-sidebars-either-side/two-fixed-sidebars-either-side.component.d.ts +1 -1
  565. package/sidebar/examples/under-sidebar/under-sidebar.component.d.ts +1 -1
  566. package/src/molecules/article/article/article-theme.scss +2 -2
  567. package/src/molecules/card/card/card-theme-variants/linkable-card.scss +6 -13
  568. package/src/molecules/card/card/card-theme.scss +13 -29
  569. package/src/molecules/list/list/list-theme.scss +6 -3
  570. package/src/molecules/media-gallery/media-gallery-theme.scss +0 -1
  571. package/src/molecules/paginator/paginator-theme.scss +20 -2
  572. package/tree/examples/basic-tree/basic-tree.component.d.ts +1 -1
  573. package/tree/tree/tree.component.d.ts +2 -2
  574. package/tree/tree-item/tree-item.directive.d.ts +1 -1
  575. package/accordion/examples/daffodil-design-accordion-examples.d.ts +0 -5
  576. package/accordion/examples/package.json +0 -1
  577. package/article/examples/daffodil-design-article-examples.d.ts +0 -5
  578. package/article/examples/package.json +0 -1
  579. package/button/examples/daffodil-design-button-examples.d.ts +0 -5
  580. package/button/examples/package.json +0 -1
  581. package/callout/examples/daffodil-design-callout-examples.d.ts +0 -5
  582. package/callout/examples/package.json +0 -1
  583. package/card/examples/daffodil-design-card-examples.d.ts +0 -5
  584. package/card/examples/package.json +0 -1
  585. package/checkbox/examples/daffodil-design-checkbox-examples.d.ts +0 -5
  586. package/checkbox/examples/package.json +0 -1
  587. package/container/examples/daffodil-design-container-examples.d.ts +0 -5
  588. package/container/examples/package.json +0 -1
  589. package/hero/examples/daffodil-design-hero-examples.d.ts +0 -5
  590. package/hero/examples/package.json +0 -1
  591. package/image/examples/daffodil-design-image-examples.d.ts +0 -5
  592. package/image/examples/package.json +0 -1
  593. package/input/examples/daffodil-design-input-examples.d.ts +0 -5
  594. package/input/examples/package.json +0 -1
  595. package/list/examples/daffodil-design-list-examples.d.ts +0 -5
  596. package/list/examples/package.json +0 -1
  597. package/loading-icon/examples/daffodil-design-loading-icon-examples.d.ts +0 -5
  598. package/loading-icon/examples/package.json +0 -1
  599. package/media-gallery/examples/daffodil-design-media-gallery-examples.d.ts +0 -5
  600. package/media-gallery/examples/package.json +0 -1
  601. package/menu/examples/daffodil-design-menu-examples.d.ts +0 -5
  602. package/menu/examples/package.json +0 -1
  603. package/modal/examples/daffodil-design-modal-examples.d.ts +0 -5
  604. package/modal/examples/package.json +0 -1
  605. package/navbar/examples/daffodil-design-navbar-examples.d.ts +0 -5
  606. package/navbar/examples/package.json +0 -1
  607. package/notification/examples/daffodil-design-notification-examples.d.ts +0 -5
  608. package/notification/examples/package.json +0 -1
  609. package/notification/package.json +0 -1
  610. package/paginator/examples/daffodil-design-paginator-examples.d.ts +0 -5
  611. package/paginator/examples/package.json +0 -1
  612. package/quantity-field/examples/daffodil-design-quantity-field-examples.d.ts +0 -5
  613. package/quantity-field/examples/package.json +0 -1
  614. package/radio/examples/daffodil-design-radio-examples.d.ts +0 -5
  615. package/radio/examples/package.json +0 -1
  616. package/scss/README.md +0 -7
  617. package/scss/theming/README.md +0 -104
  618. package/scss/typography/README.md +0 -85
  619. package/sidebar/examples/daffodil-design-sidebar-examples.d.ts +0 -5
  620. package/sidebar/examples/package.json +0 -1
  621. package/src/atoms/button/README.md +0 -58
  622. package/src/atoms/container/README.md +0 -18
  623. package/src/atoms/form/README.md +0 -0
  624. package/src/atoms/form/checkbox/README.md +0 -0
  625. package/src/atoms/form/checkbox-set/README.md +0 -0
  626. package/src/atoms/form/error-message/README.md +0 -11
  627. package/src/atoms/form/form-field/README.md +0 -36
  628. package/src/atoms/form/form-label/README.md +0 -0
  629. package/src/atoms/form/input/README.md +0 -24
  630. package/src/atoms/form/native-select/README.md +0 -13
  631. package/src/atoms/form/quantity-field/README.md +0 -24
  632. package/src/atoms/form/radio/README.md +0 -55
  633. package/src/atoms/form/radio-set/README.md +0 -0
  634. package/src/atoms/image/README.md +0 -31
  635. package/src/atoms/loading-icon/README.md +0 -7
  636. package/src/atoms/progress-indicator/README.md +0 -2
  637. package/src/molecules/accordion/README.md +0 -21
  638. package/src/molecules/article/README.md +0 -49
  639. package/src/molecules/backdrop/README.md +0 -13
  640. package/src/molecules/button-set/README.md +0 -13
  641. package/src/molecules/callout/README.md +0 -54
  642. package/src/molecules/card/README.md +0 -60
  643. package/src/molecules/feature/README.md +0 -48
  644. package/src/molecules/hero/README.md +0 -54
  645. package/src/molecules/image-gallery/README.md +0 -31
  646. package/src/molecules/image-list/README.md +0 -14
  647. package/src/molecules/link-set/README.md +0 -44
  648. package/src/molecules/list/README.md +0 -69
  649. package/src/molecules/media-gallery/README.md +0 -19
  650. package/src/molecules/menu/README.md +0 -7
  651. package/src/molecules/modal/README.md +0 -47
  652. package/src/molecules/navbar/README.md +0 -41
  653. package/src/molecules/paginator/README.md +0 -11
  654. package/src/molecules/qty-dropdown/README.md +0 -0
  655. package/src/molecules/sidebar/README.md +0 -20
  656. package/tree/daffodil-design-tree.d.ts +0 -5
  657. package/tree/examples/daffodil-design-tree-examples.d.ts +0 -5
  658. package/tree/examples/package.json +0 -1
  659. package/tree/package.json +0 -1
  660. /package/{daffodil-design.d.ts → index.d.ts} +0 -0
  661. /package/notification/{daffodil-design-notification.d.ts → index.d.ts} +0 -0
@@ -1,7 +1,7 @@
1
1
  import * as i2 from '@angular/common';
2
2
  import { DOCUMENT, CommonModule } from '@angular/common';
3
3
  import * as i0 from '@angular/core';
4
- import { Inject, Directive, HostBinding, Input, HostListener, Component, ViewEncapsulation, ChangeDetectionStrategy, ContentChild, NgModule } from '@angular/core';
4
+ import { Inject, Component, ViewEncapsulation, ChangeDetectionStrategy, HostBinding, Input, ContentChild, Directive, HostListener, NgModule } from '@angular/core';
5
5
  import { __decorate } from 'tslib';
6
6
  import { BehaviorSubject } from 'rxjs';
7
7
 
@@ -46,158 +46,6 @@ DaffTreeNotifierService = __decorate([
46
46
  Inject({})
47
47
  ], DaffTreeNotifierService);
48
48
 
49
- /**
50
- * The `DaffTreeItemDirective` allows you to demarcate the elements which are
51
- * tree-children that interact with the parent tree.
52
- *
53
- * They can be used like:
54
- *
55
- * ```html
56
- * <ul daff-tree [tree]="tree">
57
- * <ng-template #daffTreeItemWithChildrenTpl let-node>
58
- * <button daffTreeItem [node]="node">{{ node.title }} </button>
59
- * </ng-template>
60
- *
61
- * <ng-template #daffTreeItemTpl let-node>
62
- * <a daffTreeItem [node]="node" [routerLink]="node.url">{{ node.title }}</a>
63
- * </ng-template>
64
- * </ul>
65
- * ```
66
- *
67
- * where `tree` is a {@link DaffTreeData} and `daff-tree` is a {@link DaffTreeComponent}.
68
- *
69
- */
70
- class DaffTreeItemDirective {
71
- constructor(document, treeNotifier) {
72
- this.document = document;
73
- this.treeNotifier = treeNotifier;
74
- /**
75
- * The css class of the daff-tree.
76
- *
77
- * @docs-private
78
- */
79
- this.class = true;
80
- /**
81
- * The css class of a DaffTreeItemDirective that has children.
82
- *
83
- * @docs-private
84
- */
85
- this.classParent = false;
86
- /**
87
- * The CSS class indicating whether or not the tree is `open`.
88
- */
89
- this.openClass = false;
90
- /**
91
- * Whether or not the tree item is the currently active item.
92
- * Note that there is no requirement there there only be one active item at a time.
93
- */
94
- this.selected = false;
95
- }
96
- /**
97
- * The CSS class indicating whether or not the tree is `selected`.
98
- */
99
- get selectedClass() {
100
- return this.selected;
101
- }
102
- ;
103
- /**
104
- * The {@link DaffTreeFlatNode} associated with this specific tree item.
105
- */
106
- get node() {
107
- return this._node;
108
- }
109
- ;
110
- set node(val) {
111
- this._node = val;
112
- this.id = 'tree-' + this._node.id;
113
- this.ariaExpanded = this._node._treeRef.open ? 'true' : 'false';
114
- this.depth = this._node.level;
115
- this.classParent = this._node.hasChildren;
116
- this.openClass = this._node._treeRef.open;
117
- }
118
- /**
119
- * @docs-private
120
- */
121
- onEscape() {
122
- this.toggleParent(this.node);
123
- }
124
- /**
125
- * @docs-private
126
- */
127
- onClick() {
128
- if (this.node.hasChildren) {
129
- this.toggleTree(this.node);
130
- }
131
- this.treeNotifier.notify();
132
- }
133
- /**
134
- * Toggle the open state of the tree's parent.
135
- */
136
- toggleParent(node) {
137
- var _a;
138
- if (((_a = node._treeRef) === null || _a === void 0 ? void 0 : _a.parent.parent) === undefined) {
139
- return;
140
- }
141
- node._treeRef.parent.open = !node._treeRef.parent.open;
142
- this.document.getElementById('tree-' + node._treeRef.parent.id).focus();
143
- }
144
- /**
145
- * Toggle the open state of this specific subtree tree.
146
- */
147
- toggleTree(node) {
148
- if (node._treeRef.open === false) {
149
- node._treeRef.open = true;
150
- }
151
- else {
152
- node._treeRef.open = false;
153
- }
154
- }
155
- }
156
- /** @nocollapse */ DaffTreeItemDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: DaffTreeItemDirective, deps: [{ token: DOCUMENT }, { token: DaffTreeNotifierService }], target: i0.ɵɵFactoryTarget.Directive });
157
- /** @nocollapse */ DaffTreeItemDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.0", type: DaffTreeItemDirective, selector: "[daffTreeItem]", inputs: { node: "node", selected: "selected" }, host: { listeners: { "keydown.escape": "onEscape()", "click": "onClick()" }, properties: { "class.daff-tree-item": "this.class", "class.daff-tree-item__parent": "this.classParent", "attr.id": "this.id", "attr.aria-expanded": "this.ariaExpanded", "style.--depth": "this.depth", "class.selected": "this.selectedClass", "class.open": "this.openClass" } }, ngImport: i0 });
158
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: DaffTreeItemDirective, decorators: [{
159
- type: Directive,
160
- args: [{
161
- selector: '[daffTreeItem]',
162
- }]
163
- }], ctorParameters: function () {
164
- return [{ type: undefined, decorators: [{
165
- type: Inject,
166
- args: [DOCUMENT]
167
- }] }, { type: DaffTreeNotifierService }];
168
- }, propDecorators: { class: [{
169
- type: HostBinding,
170
- args: ['class.daff-tree-item']
171
- }], classParent: [{
172
- type: HostBinding,
173
- args: ['class.daff-tree-item__parent']
174
- }], id: [{
175
- type: HostBinding,
176
- args: ['attr.id']
177
- }], ariaExpanded: [{
178
- type: HostBinding,
179
- args: ['attr.aria-expanded']
180
- }], depth: [{
181
- type: HostBinding,
182
- args: ['style.--depth']
183
- }], selectedClass: [{
184
- type: HostBinding,
185
- args: ['class.selected']
186
- }], openClass: [{
187
- type: HostBinding,
188
- args: ['class.open']
189
- }], node: [{
190
- type: Input
191
- }], selected: [{
192
- type: Input
193
- }], onEscape: [{
194
- type: HostListener,
195
- args: ['keydown.escape']
196
- }], onClick: [{
197
- type: HostListener,
198
- args: ['click']
199
- }] } });
200
-
201
49
  /**
202
50
  * Flatten a DaffTreeUi<unknown> into an array, removing elements from the array
203
51
  * below nodes in the tree that are not open.
@@ -364,11 +212,11 @@ class DaffTreeComponent {
364
212
  });
365
213
  }
366
214
  }
367
- /** @nocollapse */ DaffTreeComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: DaffTreeComponent, deps: [{ token: DaffTreeNotifierService }], target: i0.ɵɵFactoryTarget.Component });
368
- /** @nocollapse */ DaffTreeComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.0", type: DaffTreeComponent, selector: "ul[daff-tree]", inputs: { dataTree: ["tree", "dataTree"] }, host: { properties: { "class.daff-tree": "this.class" } }, providers: [
215
+ /** @nocollapse */ DaffTreeComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: DaffTreeComponent, deps: [{ token: DaffTreeNotifierService }], target: i0.ɵɵFactoryTarget.Component });
216
+ /** @nocollapse */ DaffTreeComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: DaffTreeComponent, selector: "ul[daff-tree]", inputs: { dataTree: ["tree", "dataTree"] }, host: { properties: { "class.daff-tree": "this.class" } }, providers: [
369
217
  DaffTreeNotifierService,
370
- ], queries: [{ propertyName: "withChildrenTemplate", first: true, predicate: ["daffTreeItemWithChildrenTpl"], descendants: true, static: true }, { propertyName: "treeItemTemplate", first: true, predicate: ["daffTreeItemTpl"], descendants: true, static: true }], ngImport: i0, template: "<ng-container *ngFor=\"let node of flatTree; trackBy: trackByTreeElement\">\n\t<li [attr.aria-level]=\"node.level\">\n\t\t<ng-container \n\t\t\t*ngTemplateOutlet=\"node.hasChildren ? withChildrenTemplate : treeItemTemplate; context: { $implicit: node }\">\n\t\t</ng-container>\t\n\t</li>\n</ng-container>", styles: [".daff-tree{margin:0;padding:0;list-style:none;--tree-padding: 16px}.daff-tree-item{cursor:pointer;-webkit-user-select:none;user-select:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:block;position:relative;background:none;border:0;padding:8px 16px 8px 0;line-height:1.5rem;font-weight:400;text-align:left;text-decoration:none;width:100%;padding-left:calc(var(--tree-padding) * (var(--depth)))}.daff-tree-item:before{content:\"\";position:absolute;top:0;bottom:0;left:0;width:4px}.daff-tree-item:focus,.daff-tree-item:focus-visible{z-index:1}.daff-tree-item.selected{font-weight:600}.daff-tree-item__parent{position:relative}.daff-tree-item__parent:after{content:\"\";position:absolute;top:48%;right:16px;display:inline-block;border-right:2px solid currentColor;border-bottom:2px solid currentColor;width:8px;height:8px;transform:translateY(-50%) rotate(45deg);transition:transform .15s}.daff-tree-item__parent.open:after{top:56%;transform:translateY(-50%) rotate(225deg)}\n"], directives: [{ type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
371
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: DaffTreeComponent, decorators: [{
218
+ ], queries: [{ propertyName: "withChildrenTemplate", first: true, predicate: ["daffTreeItemWithChildrenTpl"], descendants: true, static: true }, { propertyName: "treeItemTemplate", first: true, predicate: ["daffTreeItemTpl"], descendants: true, static: true }], ngImport: i0, template: "<ng-container *ngFor=\"let node of flatTree; trackBy: trackByTreeElement\">\n\t<li [attr.aria-level]=\"node.level\">\n\t\t<ng-container \n\t\t\t*ngTemplateOutlet=\"node.hasChildren ? withChildrenTemplate : treeItemTemplate; context: { $implicit: node }\">\n\t\t</ng-container>\t\n\t</li>\n</ng-container>", styles: [".daff-tree{margin:0;padding:0;list-style:none;--tree-padding: 16px}.daff-tree-item{cursor:pointer;-webkit-user-select:none;user-select:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:block;position:relative;background:none;border:0;padding:8px 16px 8px 0;line-height:1.5rem;font-weight:400;text-align:left;text-decoration:none;width:100%;padding-left:calc(var(--tree-padding) * (var(--depth)))}.daff-tree-item:before{content:\"\";position:absolute;top:0;bottom:0;left:0;width:4px}.daff-tree-item:focus,.daff-tree-item:focus-visible{z-index:1}.daff-tree-item.selected{font-weight:600}.daff-tree-item__parent{position:relative}.daff-tree-item__parent:after{content:\"\";position:absolute;top:48%;right:16px;display:inline-block;border-right:2px solid currentColor;border-bottom:2px solid currentColor;width:8px;height:8px;transform:translateY(-50%) rotate(45deg);transition:transform .15s}.daff-tree-item__parent.open:after{top:56%;transform:translateY(-50%) rotate(225deg)}\n"], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
219
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: DaffTreeComponent, decorators: [{
372
220
  type: Component,
373
221
  args: [{ selector: 'ul[daff-tree]', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, providers: [
374
222
  DaffTreeNotifierService,
@@ -387,16 +235,166 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.0", ngImpor
387
235
  args: ['daffTreeItemTpl', { static: true }]
388
236
  }] } });
389
237
 
238
+ /**
239
+ * The `DaffTreeItemDirective` allows you to demarcate the elements which are
240
+ * tree-children that interact with the parent tree.
241
+ *
242
+ * They can be used like:
243
+ *
244
+ * ```html
245
+ * <ul daff-tree [tree]="tree">
246
+ * <ng-template #daffTreeItemWithChildrenTpl let-node>
247
+ * <button daffTreeItem [node]="node">{{ node.title }} </button>
248
+ * </ng-template>
249
+ *
250
+ * <ng-template #daffTreeItemTpl let-node>
251
+ * <a daffTreeItem [node]="node" [routerLink]="node.url">{{ node.title }}</a>
252
+ * </ng-template>
253
+ * </ul>
254
+ * ```
255
+ *
256
+ * where `tree` is a {@link DaffTreeData} and `daff-tree` is a {@link DaffTreeComponent}.
257
+ *
258
+ */
259
+ class DaffTreeItemDirective {
260
+ constructor(document, treeNotifier) {
261
+ this.document = document;
262
+ this.treeNotifier = treeNotifier;
263
+ /**
264
+ * The css class of the daff-tree.
265
+ *
266
+ * @docs-private
267
+ */
268
+ this.class = true;
269
+ /**
270
+ * The css class of a DaffTreeItemDirective that has children.
271
+ *
272
+ * @docs-private
273
+ */
274
+ this.classParent = false;
275
+ /**
276
+ * The CSS class indicating whether or not the tree is `open`.
277
+ */
278
+ this.openClass = false;
279
+ /**
280
+ * Whether or not the tree item is the currently active item.
281
+ * Note that there is no requirement there there only be one active item at a time.
282
+ */
283
+ this.selected = false;
284
+ }
285
+ /**
286
+ * The CSS class indicating whether or not the tree is `selected`.
287
+ */
288
+ get selectedClass() {
289
+ return this.selected;
290
+ }
291
+ ;
292
+ /**
293
+ * The {@link DaffTreeFlatNode} associated with this specific tree item.
294
+ */
295
+ get node() {
296
+ return this._node;
297
+ }
298
+ ;
299
+ set node(val) {
300
+ this._node = val;
301
+ this.id = 'tree-' + this._node.id;
302
+ this.ariaExpanded = this._node._treeRef.open ? 'true' : 'false';
303
+ this.depth = this._node.level;
304
+ this.classParent = this._node.hasChildren;
305
+ this.openClass = this._node._treeRef.open;
306
+ }
307
+ /**
308
+ * @docs-private
309
+ */
310
+ onEscape() {
311
+ this.toggleParent(this.node);
312
+ }
313
+ /**
314
+ * @docs-private
315
+ */
316
+ onClick() {
317
+ if (this.node.hasChildren) {
318
+ this.toggleTree(this.node);
319
+ }
320
+ this.treeNotifier.notify();
321
+ }
322
+ /**
323
+ * Toggle the open state of the tree's parent.
324
+ */
325
+ toggleParent(node) {
326
+ var _a;
327
+ if (((_a = node._treeRef) === null || _a === void 0 ? void 0 : _a.parent.parent) === undefined) {
328
+ return;
329
+ }
330
+ node._treeRef.parent.open = !node._treeRef.parent.open;
331
+ this.document.getElementById('tree-' + node._treeRef.parent.id).focus();
332
+ }
333
+ /**
334
+ * Toggle the open state of this specific subtree tree.
335
+ */
336
+ toggleTree(node) {
337
+ if (node._treeRef.open === false) {
338
+ node._treeRef.open = true;
339
+ }
340
+ else {
341
+ node._treeRef.open = false;
342
+ }
343
+ }
344
+ }
345
+ /** @nocollapse */ DaffTreeItemDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: DaffTreeItemDirective, deps: [{ token: DOCUMENT }, { token: DaffTreeNotifierService }], target: i0.ɵɵFactoryTarget.Directive });
346
+ /** @nocollapse */ DaffTreeItemDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.9", type: DaffTreeItemDirective, selector: "[daffTreeItem]", inputs: { node: "node", selected: "selected" }, host: { listeners: { "keydown.escape": "onEscape()", "click": "onClick()" }, properties: { "class.daff-tree-item": "this.class", "class.daff-tree-item__parent": "this.classParent", "attr.id": "this.id", "attr.aria-expanded": "this.ariaExpanded", "style.--depth": "this.depth", "class.selected": "this.selectedClass", "class.open": "this.openClass" } }, ngImport: i0 });
347
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: DaffTreeItemDirective, decorators: [{
348
+ type: Directive,
349
+ args: [{
350
+ selector: '[daffTreeItem]',
351
+ }]
352
+ }], ctorParameters: function () {
353
+ return [{ type: undefined, decorators: [{
354
+ type: Inject,
355
+ args: [DOCUMENT]
356
+ }] }, { type: DaffTreeNotifierService }];
357
+ }, propDecorators: { class: [{
358
+ type: HostBinding,
359
+ args: ['class.daff-tree-item']
360
+ }], classParent: [{
361
+ type: HostBinding,
362
+ args: ['class.daff-tree-item__parent']
363
+ }], id: [{
364
+ type: HostBinding,
365
+ args: ['attr.id']
366
+ }], ariaExpanded: [{
367
+ type: HostBinding,
368
+ args: ['attr.aria-expanded']
369
+ }], depth: [{
370
+ type: HostBinding,
371
+ args: ['style.--depth']
372
+ }], selectedClass: [{
373
+ type: HostBinding,
374
+ args: ['class.selected']
375
+ }], openClass: [{
376
+ type: HostBinding,
377
+ args: ['class.open']
378
+ }], node: [{
379
+ type: Input
380
+ }], selected: [{
381
+ type: Input
382
+ }], onEscape: [{
383
+ type: HostListener,
384
+ args: ['keydown.escape']
385
+ }], onClick: [{
386
+ type: HostListener,
387
+ args: ['click']
388
+ }] } });
389
+
390
390
  class DaffTreeModule {
391
391
  }
392
- /** @nocollapse */ DaffTreeModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: DaffTreeModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
393
- /** @nocollapse */ DaffTreeModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: DaffTreeModule, declarations: [DaffTreeComponent,
392
+ /** @nocollapse */ DaffTreeModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: DaffTreeModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
393
+ /** @nocollapse */ DaffTreeModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.9", ngImport: i0, type: DaffTreeModule, declarations: [DaffTreeComponent,
394
394
  DaffTreeItemDirective], imports: [CommonModule], exports: [DaffTreeComponent,
395
395
  DaffTreeItemDirective] });
396
- /** @nocollapse */ DaffTreeModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: DaffTreeModule, imports: [[
397
- CommonModule,
398
- ]] });
399
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: DaffTreeModule, decorators: [{
396
+ /** @nocollapse */ DaffTreeModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: DaffTreeModule, imports: [CommonModule] });
397
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: DaffTreeModule, decorators: [{
400
398
  type: NgModule,
401
399
  args: [{
402
400
  declarations: [
@@ -1 +1 @@
1
- {"version":3,"file":"daffodil-design-tree.mjs","sources":["../../../libs/design/tree/src/tree/tree-notifier.service.ts","../../../libs/design/tree/src/tree-item/tree-item.directive.ts","../../../libs/design/tree/src/utils/flatten-tree.ts","../../../libs/design/tree/src/utils/traverse-tree.ts","../../../libs/design/tree/src/utils/hydrate-tree.ts","../../../libs/design/tree/src/tree/tree.component.ts","../../../libs/design/tree/src/tree/tree.component.html","../../../libs/design/tree/src/tree.module.ts","../../../libs/design/tree/src/utils/transform-in-place.ts","../../../libs/design/tree/src/daffodil-design-tree.ts"],"sourcesContent":["import {\n Inject,\n OnDestroy,\n} from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\n\n/**\n * This service is used by tree-items to notify their parent\n * that the tree has to be re-computed.\n *\n * This service is a multiton associated with each tree instance.\n * It follows the same lifecycle has the tree it is associated with.\n */\n@Inject({})\nexport class DaffTreeNotifierService implements OnDestroy {\n\n /**\n * @docs-private\n */\n private _notice: BehaviorSubject<boolean> = new BehaviorSubject<boolean>(true);\n\n /**\n * An observable that emits when the tree needs to be re-computed.\n */\n notice$ = this._notice.asObservable();\n\n /**\n * `notify` can be called to trigger a re-computation of the tree\n * if data has changed unexpectedly and a re-render did not occur.\n *\n * This should be used sparingly. Instead, prefer updating `data` on the tree\n * itself for performance reasons.\n */\n notify() {\n this._notice.next(true);\n }\n\n /**\n * Cleanup when the tree is destroyed.\n *\n * @docs-private\n */\n ngOnDestroy(): void {\n this._notice.complete();\n }\n}\n","import { DOCUMENT } from '@angular/common';\nimport {\n Directive,\n HostBinding,\n HostListener,\n Inject,\n Input,\n} from '@angular/core';\n\nimport { DaffTreeNotifierService } from '../tree/tree-notifier.service';\nimport { DaffTreeFlatNode } from '../utils/flatten-tree';\n\n/**\n * The `DaffTreeItemDirective` allows you to demarcate the elements which are\n * tree-children that interact with the parent tree.\n *\n * They can be used like:\n *\n * ```html\n * <ul daff-tree [tree]=\"tree\">\n * <ng-template #daffTreeItemWithChildrenTpl let-node>\n * <button daffTreeItem [node]=\"node\">{{ node.title }} </button>\n * </ng-template>\n *\n * <ng-template #daffTreeItemTpl let-node>\n * <a daffTreeItem [node]=\"node\" [routerLink]=\"node.url\">{{ node.title }}</a>\n * </ng-template>\n * </ul>\n * ```\n *\n * where `tree` is a {@link DaffTreeData} and `daff-tree` is a {@link DaffTreeComponent}.\n *\n */\n@Directive({\n selector: '[daffTreeItem]',\n})\nexport class DaffTreeItemDirective {\n\n /**\n * The css class of the daff-tree.\n *\n * @docs-private\n */\n @HostBinding('class.daff-tree-item') class = true;\n\n /**\n * The css class of a DaffTreeItemDirective that has children.\n *\n * @docs-private\n */\n @HostBinding('class.daff-tree-item__parent') classParent = false;\n\n /**\n * The html `id` of the tree item. This is derived from the {@link DaffTreeData}.\n *\n * @docs-private\n */\n @HostBinding('attr.id') id;\n\n /**\n * Accessibility property, notifying users about whether\n * or not the tree item is open.\n *\n * @docs-private\n */\n @HostBinding('attr.aria-expanded') ariaExpanded: string;\n\n /**\n * A css variable indicating the depth of the tree.\n * You can use this to style your templates if you want to\n * use different designs at different depths.\n */\n @HostBinding('style.--depth') depth: number;\n\n /**\n * The CSS class indicating whether or not the tree is `selected`.\n */\n @HostBinding('class.selected') get selectedClass() {\n return this.selected;\n };\n\n /**\n * The CSS class indicating whether or not the tree is `open`.\n */\n @HostBinding('class.open') openClass = false;\n\n /**\n * The {@link DaffTreeFlatNode} associated with this specific tree item.\n *\n * @docs-private\n */\n private _node: DaffTreeFlatNode;\n\n /**\n * The {@link DaffTreeFlatNode} associated with this specific tree item.\n */\n @Input()\n get node() {\n return this._node;\n };\n set node(val: DaffTreeFlatNode) {\n this._node = val;\n this.id = 'tree-' + this._node.id;\n this.ariaExpanded = this._node._treeRef.open ? 'true' : 'false';\n this.depth = this._node.level;\n this.classParent = this._node.hasChildren;\n this.openClass = this._node._treeRef.open;\n }\n\n /**\n * Whether or not the tree item is the currently active item.\n * Note that there is no requirement there there only be one active item at a time.\n */\n @Input() selected = false;\n\n constructor(\n @Inject(DOCUMENT) private document: any,\n private treeNotifier: DaffTreeNotifierService,\n ) {}\n\n /**\n * @docs-private\n */\n @HostListener('keydown.escape')\n onEscape() {\n this.toggleParent(this.node);\n }\n\n /**\n * @docs-private\n */\n @HostListener('click')\n onClick() {\n if(this.node.hasChildren) {\n this.toggleTree(this.node);\n }\n this.treeNotifier.notify();\n }\n\n /**\n * Toggle the open state of the tree's parent.\n */\n toggleParent(node: DaffTreeFlatNode) {\n if(node._treeRef?.parent.parent === undefined) {\n return;\n }\n node._treeRef.parent.open = !node._treeRef.parent.open;\n (<Document>this.document).getElementById('tree-' + node._treeRef.parent.id).focus();\n }\n\n /**\n * Toggle the open state of this specific subtree tree.\n */\n toggleTree(node: DaffTreeFlatNode) {\n if(node._treeRef.open === false) {\n node._treeRef.open = true;\n } else {\n node._treeRef.open = false;\n }\n }\n}\n","import { DaffTreeUi } from '../interfaces/tree-ui';\n\n/**\n * A flattened node of a tree. This is used when translating the tree data\n * structure into an array.\n */\nexport interface DaffTreeFlatNode {\n id: number | string;\n title: string;\n url: string;\n level: number;\n hasChildren: boolean;\n data: unknown;\n _treeRef: DaffTreeUi<unknown>;\n}\n\n/**\n * Flatten a DaffTreeUi<unknown> into an array, removing elements from the array\n * below nodes in the tree that are not open.\n */\nexport const flattenTree = (daffUiTree: DaffTreeUi<unknown>): DaffTreeFlatNode[] => {\n const tree: DaffTreeFlatNode[] = [];\n\n let items = [\n {\n ...daffUiTree,\n title: 'Root',\n level: 0,\n url: '/',\n data: undefined,\n open: true,\n _treeRef: daffUiTree,\n },\n ];\n\n\n while(items) {\n const el = items.pop();\n if(!el) {\n break;\n }\n\n if(el.open) {\n items = [\n ...items,\n ...el.items.map((i) => ({\n ...i,\n level:\n el.level + 1,\n _treeRef: i,\n })).reverse(),\n ];\n }\n\n if(el._treeRef.parent?.open) {\n tree.push({\n id: el.id,\n title: el.title,\n level: el.level,\n url : el.url,\n hasChildren: el.items.length > 0,\n data: undefined,\n _treeRef: el._treeRef,\n });\n }\n }\n\n return tree;\n};\n","import { RecursiveTreeKeyOfType } from '../interfaces/recursive-key';\n\n/**\n * Traverse the tree, pre-order, right-to-left\n */\nexport const traverse = <T extends Record<any, any>, V extends Record<any, any> = T>(\n tree: T,\n visit: (tree: T) => V,\n key: RecursiveTreeKeyOfType<T>,\n): V => {\n let stack = [\n tree,\n ];\n\n while(stack) {\n const el = stack.pop();\n if(!el) {\n break;\n }\n\n visit(el);\n\n stack = [\n ...stack,\n ...<T[]><unknown>el[key],\n ];\n }\n\n return tree;\n};\n","import { DaffTreeData } from '../interfaces/tree-data';\nimport { DaffTreeUi } from '../interfaces/tree-ui';\nimport { traverse } from './traverse-tree';\n\nexport const daffDataTreeToUiTree = <T>(data: DaffTreeData<T>, parent: DaffTreeUi<T>, open: boolean = false): DaffTreeUi<T> => ({\n id: data.id ?? data.title,\n title: data.title,\n url: data.url,\n data: data.data,\n open,\n parent,\n items: [],\n});\n\n/**\n * This function translates the original data given to us by the client\n * to the internal representation of the tree used by the {@link DaffTreeComponent}\n */\nexport const hydrateTree = <T>(data: DaffTreeData<T>): DaffTreeUi<T> => {\n const tree = daffDataTreeToUiTree(data, undefined, true);\n\n let treeStack = [\n tree,\n ];\n\n traverse(data, (el) => {\n const treeEl = treeStack.pop();\n treeEl.items = el.items.map((i) => daffDataTreeToUiTree(i, treeEl, false));\n treeStack = [\n ...treeStack,\n ...treeEl.items,\n ];\n return el;\n }, 'items');\n\n return tree;\n};\n","import { Location } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n ContentChild,\n HostBinding,\n Input,\n OnInit,\n TemplateRef,\n ViewEncapsulation,\n} from '@angular/core';\n\nimport { DaffTreeData } from '../interfaces/tree-data';\nimport { DaffTreeUi } from '../interfaces/tree-ui';\nimport {\n DaffTreeFlatNode,\n flattenTree,\n} from '../utils/flatten-tree';\nimport { hydrateTree } from '../utils/hydrate-tree';\nimport { DaffTreeNotifierService } from './tree-notifier.service';\n\n/**\n * The `DaffTreeComponent` allows you to render tree structures as interactable ui.\n *\n * They can be used like:\n *\n * ```html\n * <ul daff-tree [tree]=\"tree\">\n * <ng-template #daffTreeItemWithChildrenTpl let-node>\n * <button daffTreeItem [node]=\"node\">{{ node.title }} </button>\n * </ng-template>\n *\n * <ng-template #daffTreeItemTpl let-node>\n * <a daffTreeItem [node]=\"node\" [routerLink]=\"node.url\">{{ node.title }}</a>\n * </ng-template>\n * </ul>\n * ```\n *\n * where `tree` is a {@link DaffTreeData}.\n *\n */\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'ul[daff-tree]',\n templateUrl: './tree.component.html',\n styleUrls: ['./tree.component.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n DaffTreeNotifierService,\n ],\n})\nexport class DaffTreeComponent implements OnInit {\n\n /**\n * The css class of the daff-tree.\n *\n * @docs-private\n */\n @HostBinding('class.daff-tree') class = true;\n\n /**\n * The internal tree element.\n */\n private tree: DaffTreeUi<unknown> = undefined;\n\n /**\n * The flattened tree data. You can iterate through this if you want to inspect\n * the resulting array structure we computed to render the tree.\n */\n public flatTree: DaffTreeFlatNode[] = [];\n\n /**\n * @docs-private\n */\n private _dataTree: DaffTreeData<unknown> = undefined;\n\n /**\n * The tree data you would like to render.\n */\n @Input('tree')\n get dataTree() {\n return this._dataTree;\n }\n set dataTree(dataTree: DaffTreeData<unknown>){\n if(!dataTree) {\n this._dataTree = undefined;\n this.tree = undefined;\n this.flatTree = [];\n return;\n }\n this._dataTree = dataTree;\n this.tree = hydrateTree(this.dataTree);\n this.flatTree = flattenTree(this.tree);\n };\n\n /**\n * The template used to render tree-nodes that themselves have children.\n *\n * @docs-private\n */\n @ContentChild('daffTreeItemWithChildrenTpl', { static: true })\n withChildrenTemplate: TemplateRef<any>;\n\n /**\n * The template used to render tree-nodes that have no children.\n *\n * @docs-private\n */\n @ContentChild('daffTreeItemTpl', { static: true }) treeItemTemplate: TemplateRef<any>;\n\n constructor(\n private notifier: DaffTreeNotifierService,\n ) {}\n\n /**\n * The track-by function used to reduce tree-item re-renders\n */\n trackByTreeElement(index: number, el: any): any {\n return el.title;\n }\n\n /**\n * @docs-private\n */\n ngOnInit(): void {\n this.notifier.notice$.subscribe(() => {\n this.flatTree = flattenTree(this.tree);\n });\n }\n}\n","<ng-container *ngFor=\"let node of flatTree; trackBy: trackByTreeElement\">\n\t<li [attr.aria-level]=\"node.level\">\n\t\t<ng-container \n\t\t\t*ngTemplateOutlet=\"node.hasChildren ? withChildrenTemplate : treeItemTemplate; context: { $implicit: node }\">\n\t\t</ng-container>\t\n\t</li>\n</ng-container>","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { DaffTreeItemDirective } from './tree-item/tree-item.directive';\nimport { DaffTreeComponent } from './tree/tree.component';\n\n@NgModule({\n declarations: [\n DaffTreeComponent,\n DaffTreeItemDirective,\n ],\n imports: [\n CommonModule,\n ],\n exports: [\n DaffTreeComponent,\n DaffTreeItemDirective,\n ],\n})\nexport class DaffTreeModule { }\n","import { RecursiveTreeKeyOfType } from '../interfaces/recursive-key';\nimport { DaffTreeData } from '../interfaces/tree-data';\nimport { traverse } from './traverse-tree';\n\n/**\n * Transform a tree-like structure in-place into a {@link DaffTreeData}.\n *\n * This will mutate the original object, hydrating with additional properties.\n *\n * @param tree - The data structure representing tree-like data.\n * @param transformFn - A user-supplied function that will transform the user\n * type into a {@link DaffTreeData}\n * @param key - The property of the your tree that indicates which\n * key contains the \"children\" of your tree structure.\n *\n */\nexport const daffTransformTreeInPlace = <\n // eslint-disable-next-line @typescript-eslint/ban-types\n T extends Record<any,any>,\n>(\n tree: T,\n transformFn: (type: T) => T & DaffTreeData<unknown>,\n key: RecursiveTreeKeyOfType<T>,\n): DaffTreeData<unknown> => traverse<T, T & DaffTreeData<unknown>>(\n tree,\n (el) => {\n const r = Object.assign(el, transformFn(el));\n r.items = el[key];\n el = r;\n return <T & DaffTreeData<unknown>>el;\n },\n // This type is confusing. I don't understand why it has to be here,\n // the associated error message is incomprehensible.\n <T[string] extends T[] ? string : never>key,\n);\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.DaffTreeNotifierService"],"mappings":"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"}
1
+ {"version":3,"file":"daffodil-design-tree.mjs","sources":["../../../libs/design/tree/src/tree/tree-notifier.service.ts","../../../libs/design/tree/src/utils/flatten-tree.ts","../../../libs/design/tree/src/utils/traverse-tree.ts","../../../libs/design/tree/src/utils/hydrate-tree.ts","../../../libs/design/tree/src/tree/tree.component.ts","../../../libs/design/tree/src/tree/tree.component.html","../../../libs/design/tree/src/tree-item/tree-item.directive.ts","../../../libs/design/tree/src/tree.module.ts","../../../libs/design/tree/src/utils/transform-in-place.ts","../../../libs/design/tree/src/daffodil-design-tree.ts"],"sourcesContent":["import {\n Inject,\n OnDestroy,\n} from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\n\n/**\n * This service is used by tree-items to notify their parent\n * that the tree has to be re-computed.\n *\n * This service is a multiton associated with each tree instance.\n * It follows the same lifecycle has the tree it is associated with.\n */\n@Inject({})\nexport class DaffTreeNotifierService implements OnDestroy {\n\n /**\n * @docs-private\n */\n private _notice: BehaviorSubject<boolean> = new BehaviorSubject<boolean>(true);\n\n /**\n * An observable that emits when the tree needs to be re-computed.\n */\n notice$ = this._notice.asObservable();\n\n /**\n * `notify` can be called to trigger a re-computation of the tree\n * if data has changed unexpectedly and a re-render did not occur.\n *\n * This should be used sparingly. Instead, prefer updating `data` on the tree\n * itself for performance reasons.\n */\n notify() {\n this._notice.next(true);\n }\n\n /**\n * Cleanup when the tree is destroyed.\n *\n * @docs-private\n */\n ngOnDestroy(): void {\n this._notice.complete();\n }\n}\n","import { DaffTreeUi } from '../interfaces/tree-ui';\n\n/**\n * A flattened node of a tree. This is used when translating the tree data\n * structure into an array.\n */\nexport interface DaffTreeFlatNode {\n id: number | string;\n title: string;\n url: string;\n level: number;\n hasChildren: boolean;\n data: unknown;\n _treeRef: DaffTreeUi<unknown>;\n}\n\n/**\n * Flatten a DaffTreeUi<unknown> into an array, removing elements from the array\n * below nodes in the tree that are not open.\n */\nexport const flattenTree = (daffUiTree: DaffTreeUi<unknown>): DaffTreeFlatNode[] => {\n const tree: DaffTreeFlatNode[] = [];\n\n let items = [\n {\n ...daffUiTree,\n title: 'Root',\n level: 0,\n url: '/',\n data: undefined,\n open: true,\n _treeRef: daffUiTree,\n },\n ];\n\n\n while(items) {\n const el = items.pop();\n if(!el) {\n break;\n }\n\n if(el.open) {\n items = [\n ...items,\n ...el.items.map((i) => ({\n ...i,\n level:\n el.level + 1,\n _treeRef: i,\n })).reverse(),\n ];\n }\n\n if(el._treeRef.parent?.open) {\n tree.push({\n id: el.id,\n title: el.title,\n level: el.level,\n url : el.url,\n hasChildren: el.items.length > 0,\n data: undefined,\n _treeRef: el._treeRef,\n });\n }\n }\n\n return tree;\n};\n","import { RecursiveTreeKeyOfType } from '../interfaces/recursive-key';\n\n/**\n * Traverse the tree, pre-order, right-to-left\n */\nexport const traverse = <T extends Record<any, any>, V extends Record<any, any> = T>(\n tree: T,\n visit: (tree: T) => V,\n key: RecursiveTreeKeyOfType<T>,\n): V => {\n let stack = [\n tree,\n ];\n\n while(stack) {\n const el = stack.pop();\n if(!el) {\n break;\n }\n\n visit(el);\n\n stack = [\n ...stack,\n ...<T[]><unknown>el[key],\n ];\n }\n\n return tree;\n};\n","import { traverse } from './traverse-tree';\nimport { DaffTreeData } from '../interfaces/tree-data';\nimport { DaffTreeUi } from '../interfaces/tree-ui';\n\nexport const daffDataTreeToUiTree = <T>(data: DaffTreeData<T>, parent: DaffTreeUi<T>, open: boolean = false): DaffTreeUi<T> => ({\n id: data.id ?? data.title,\n title: data.title,\n url: data.url,\n data: data.data,\n open,\n parent,\n items: [],\n});\n\n/**\n * This function translates the original data given to us by the client\n * to the internal representation of the tree used by the {@link DaffTreeComponent}\n */\nexport const hydrateTree = <T>(data: DaffTreeData<T>): DaffTreeUi<T> => {\n const tree = daffDataTreeToUiTree(data, undefined, true);\n\n let treeStack = [\n tree,\n ];\n\n traverse(data, (el) => {\n const treeEl = treeStack.pop();\n treeEl.items = el.items.map((i) => daffDataTreeToUiTree(i, treeEl, false));\n treeStack = [\n ...treeStack,\n ...treeEl.items,\n ];\n return el;\n }, 'items');\n\n return tree;\n};\n","import { Location } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n ContentChild,\n HostBinding,\n Input,\n OnInit,\n TemplateRef,\n ViewEncapsulation,\n} from '@angular/core';\n\nimport { DaffTreeNotifierService } from './tree-notifier.service';\nimport { DaffTreeData } from '../interfaces/tree-data';\nimport { DaffTreeUi } from '../interfaces/tree-ui';\nimport {\n DaffTreeFlatNode,\n flattenTree,\n} from '../utils/flatten-tree';\nimport { hydrateTree } from '../utils/hydrate-tree';\n\n/**\n * The `DaffTreeComponent` allows you to render tree structures as interactable ui.\n *\n * They can be used like:\n *\n * ```html\n * <ul daff-tree [tree]=\"tree\">\n * <ng-template #daffTreeItemWithChildrenTpl let-node>\n * <button daffTreeItem [node]=\"node\">{{ node.title }} </button>\n * </ng-template>\n *\n * <ng-template #daffTreeItemTpl let-node>\n * <a daffTreeItem [node]=\"node\" [routerLink]=\"node.url\">{{ node.title }}</a>\n * </ng-template>\n * </ul>\n * ```\n *\n * where `tree` is a {@link DaffTreeData}.\n *\n */\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'ul[daff-tree]',\n templateUrl: './tree.component.html',\n styleUrls: ['./tree.component.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n DaffTreeNotifierService,\n ],\n})\nexport class DaffTreeComponent implements OnInit {\n\n /**\n * The css class of the daff-tree.\n *\n * @docs-private\n */\n @HostBinding('class.daff-tree') class = true;\n\n /**\n * The internal tree element.\n */\n private tree: DaffTreeUi<unknown> = undefined;\n\n /**\n * The flattened tree data. You can iterate through this if you want to inspect\n * the resulting array structure we computed to render the tree.\n */\n public flatTree: DaffTreeFlatNode[] = [];\n\n /**\n * @docs-private\n */\n private _dataTree: DaffTreeData<unknown> = undefined;\n\n /**\n * The tree data you would like to render.\n */\n @Input('tree')\n get dataTree() {\n return this._dataTree;\n }\n set dataTree(dataTree: DaffTreeData<unknown>){\n if(!dataTree) {\n this._dataTree = undefined;\n this.tree = undefined;\n this.flatTree = [];\n return;\n }\n this._dataTree = dataTree;\n this.tree = hydrateTree(this.dataTree);\n this.flatTree = flattenTree(this.tree);\n };\n\n /**\n * The template used to render tree-nodes that themselves have children.\n *\n * @docs-private\n */\n @ContentChild('daffTreeItemWithChildrenTpl', { static: true })\n withChildrenTemplate: TemplateRef<any>;\n\n /**\n * The template used to render tree-nodes that have no children.\n *\n * @docs-private\n */\n @ContentChild('daffTreeItemTpl', { static: true }) treeItemTemplate: TemplateRef<any>;\n\n constructor(\n private notifier: DaffTreeNotifierService,\n ) {}\n\n /**\n * The track-by function used to reduce tree-item re-renders\n */\n trackByTreeElement(index: number, el: any): any {\n return el.title;\n }\n\n /**\n * @docs-private\n */\n ngOnInit(): void {\n this.notifier.notice$.subscribe(() => {\n this.flatTree = flattenTree(this.tree);\n });\n }\n}\n","<ng-container *ngFor=\"let node of flatTree; trackBy: trackByTreeElement\">\n\t<li [attr.aria-level]=\"node.level\">\n\t\t<ng-container \n\t\t\t*ngTemplateOutlet=\"node.hasChildren ? withChildrenTemplate : treeItemTemplate; context: { $implicit: node }\">\n\t\t</ng-container>\t\n\t</li>\n</ng-container>","import { DOCUMENT } from '@angular/common';\nimport {\n Directive,\n HostBinding,\n HostListener,\n Inject,\n Input,\n} from '@angular/core';\n\nimport { DaffTreeNotifierService } from '../tree/tree-notifier.service';\nimport { DaffTreeFlatNode } from '../utils/flatten-tree';\n\n/**\n * The `DaffTreeItemDirective` allows you to demarcate the elements which are\n * tree-children that interact with the parent tree.\n *\n * They can be used like:\n *\n * ```html\n * <ul daff-tree [tree]=\"tree\">\n * <ng-template #daffTreeItemWithChildrenTpl let-node>\n * <button daffTreeItem [node]=\"node\">{{ node.title }} </button>\n * </ng-template>\n *\n * <ng-template #daffTreeItemTpl let-node>\n * <a daffTreeItem [node]=\"node\" [routerLink]=\"node.url\">{{ node.title }}</a>\n * </ng-template>\n * </ul>\n * ```\n *\n * where `tree` is a {@link DaffTreeData} and `daff-tree` is a {@link DaffTreeComponent}.\n *\n */\n@Directive({\n selector: '[daffTreeItem]',\n})\nexport class DaffTreeItemDirective {\n\n /**\n * The css class of the daff-tree.\n *\n * @docs-private\n */\n @HostBinding('class.daff-tree-item') class = true;\n\n /**\n * The css class of a DaffTreeItemDirective that has children.\n *\n * @docs-private\n */\n @HostBinding('class.daff-tree-item__parent') classParent = false;\n\n /**\n * The html `id` of the tree item. This is derived from the {@link DaffTreeData}.\n *\n * @docs-private\n */\n @HostBinding('attr.id') id;\n\n /**\n * Accessibility property, notifying users about whether\n * or not the tree item is open.\n *\n * @docs-private\n */\n @HostBinding('attr.aria-expanded') ariaExpanded: string;\n\n /**\n * A css variable indicating the depth of the tree.\n * You can use this to style your templates if you want to\n * use different designs at different depths.\n */\n @HostBinding('style.--depth') depth: number;\n\n /**\n * The CSS class indicating whether or not the tree is `selected`.\n */\n @HostBinding('class.selected') get selectedClass() {\n return this.selected;\n };\n\n /**\n * The CSS class indicating whether or not the tree is `open`.\n */\n @HostBinding('class.open') openClass = false;\n\n /**\n * The {@link DaffTreeFlatNode} associated with this specific tree item.\n *\n * @docs-private\n */\n private _node: DaffTreeFlatNode;\n\n /**\n * The {@link DaffTreeFlatNode} associated with this specific tree item.\n */\n @Input()\n get node() {\n return this._node;\n };\n set node(val: DaffTreeFlatNode) {\n this._node = val;\n this.id = 'tree-' + this._node.id;\n this.ariaExpanded = this._node._treeRef.open ? 'true' : 'false';\n this.depth = this._node.level;\n this.classParent = this._node.hasChildren;\n this.openClass = this._node._treeRef.open;\n }\n\n /**\n * Whether or not the tree item is the currently active item.\n * Note that there is no requirement there there only be one active item at a time.\n */\n @Input() selected = false;\n\n constructor(\n @Inject(DOCUMENT) private document: any,\n private treeNotifier: DaffTreeNotifierService,\n ) {}\n\n /**\n * @docs-private\n */\n @HostListener('keydown.escape')\n onEscape() {\n this.toggleParent(this.node);\n }\n\n /**\n * @docs-private\n */\n @HostListener('click')\n onClick() {\n if(this.node.hasChildren) {\n this.toggleTree(this.node);\n }\n this.treeNotifier.notify();\n }\n\n /**\n * Toggle the open state of the tree's parent.\n */\n toggleParent(node: DaffTreeFlatNode) {\n if(node._treeRef?.parent.parent === undefined) {\n return;\n }\n node._treeRef.parent.open = !node._treeRef.parent.open;\n (<Document>this.document).getElementById('tree-' + node._treeRef.parent.id).focus();\n }\n\n /**\n * Toggle the open state of this specific subtree tree.\n */\n toggleTree(node: DaffTreeFlatNode) {\n if(node._treeRef.open === false) {\n node._treeRef.open = true;\n } else {\n node._treeRef.open = false;\n }\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { DaffTreeComponent } from './tree/tree.component';\nimport { DaffTreeItemDirective } from './tree-item/tree-item.directive';\n\n@NgModule({\n declarations: [\n DaffTreeComponent,\n DaffTreeItemDirective,\n ],\n imports: [\n CommonModule,\n ],\n exports: [\n DaffTreeComponent,\n DaffTreeItemDirective,\n ],\n})\nexport class DaffTreeModule { }\n","import { traverse } from './traverse-tree';\nimport { RecursiveTreeKeyOfType } from '../interfaces/recursive-key';\nimport { DaffTreeData } from '../interfaces/tree-data';\n\n/**\n * Transform a tree-like structure in-place into a {@link DaffTreeData}.\n *\n * This will mutate the original object, hydrating with additional properties.\n *\n * @param tree - The data structure representing tree-like data.\n * @param transformFn - A user-supplied function that will transform the user\n * type into a {@link DaffTreeData}\n * @param key - The property of the your tree that indicates which\n * key contains the \"children\" of your tree structure.\n *\n */\nexport const daffTransformTreeInPlace = <\n // eslint-disable-next-line @typescript-eslint/ban-types\n T extends Record<any,any>,\n>(\n tree: T,\n transformFn: (type: T) => T & DaffTreeData<unknown>,\n key: RecursiveTreeKeyOfType<T>,\n): DaffTreeData<unknown> => traverse<T, T & DaffTreeData<unknown>>(\n tree,\n (el) => {\n const r = Object.assign(el, transformFn(el));\n r.items = el[key];\n el = r;\n return <T & DaffTreeData<unknown>>el;\n },\n // This type is confusing. I don't understand why it has to be here,\n // the associated error message is incomprehensible.\n <T[string] extends T[] ? string : never>key,\n);\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.DaffTreeNotifierService"],"mappings":"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"}