@daffodil/design 0.60.0 → 0.62.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (258) hide show
  1. package/accordion/examples/package.json +1 -1
  2. package/article/examples/package.json +1 -1
  3. package/atoms/button/button.component.d.ts +18 -2
  4. package/atoms/button/button.module.d.ts +2 -1
  5. package/atoms/form/error-message/error-message.component.d.ts +1 -0
  6. package/atoms/form/form-label/form-label.directive.d.ts +6 -0
  7. package/atoms/form/form-label/form-label.module.d.ts +7 -0
  8. package/atoms/form/form-label/public_api.d.ts +2 -0
  9. package/atoms/form/{select/select/select.component.d.ts → native-select/native-select.component.d.ts} +1 -1
  10. package/atoms/form/{select/select.module.d.ts → native-select/native-select.module.d.ts} +1 -1
  11. package/atoms/form/native-select/public_api.d.ts +2 -0
  12. package/atoms/form/quantity-field/quantity-field.module.d.ts +1 -1
  13. package/atoms/form/quantity-field/quantity-select/quantity-select.component.d.ts +1 -1
  14. package/atoms/loading-icon/loading-icon.component.d.ts +3 -3
  15. package/button/examples/examples.d.ts +4 -0
  16. package/button/examples/flat-button/flat-button.component.d.ts +7 -0
  17. package/button/examples/flat-button/flat-button.module.d.ts +9 -0
  18. package/button/examples/package.json +1 -1
  19. package/button/examples/public_api.d.ts +10 -9
  20. package/callout/examples/package.json +1 -1
  21. package/card/examples/package.json +1 -1
  22. package/checkbox/examples/package.json +1 -1
  23. package/container/examples/package.json +1 -1
  24. package/core/animation/animation-state-with-params.d.ts +8 -0
  25. package/core/public_api.d.ts +3 -2
  26. package/core/statusable/public_api.d.ts +2 -0
  27. package/esm2020/atoms/button/button.component.mjs +62 -5
  28. package/esm2020/atoms/button/button.module.mjs +6 -2
  29. package/esm2020/atoms/form/error-message/error-message.component.mjs +10 -4
  30. package/esm2020/atoms/form/form-label/form-label.directive.mjs +19 -0
  31. package/esm2020/atoms/form/form-label/form-label.module.mjs +20 -0
  32. package/esm2020/atoms/form/form-label/public_api.mjs +3 -0
  33. package/esm2020/atoms/form/native-select/native-select.component.mjs +64 -0
  34. package/esm2020/atoms/form/{select/select.module.mjs → native-select/native-select.module.mjs} +2 -2
  35. package/esm2020/atoms/form/native-select/public_api.mjs +3 -0
  36. package/esm2020/atoms/form/quantity-field/quantity-field.module.mjs +2 -2
  37. package/esm2020/atoms/form/quantity-field/quantity-select/quantity-select.component.mjs +3 -3
  38. package/esm2020/atoms/image/image.component.mjs +2 -2
  39. package/esm2020/atoms/loading-icon/loading-icon.component.mjs +4 -5
  40. package/esm2020/button/examples/basic-button/basic-button.component.mjs +7 -6
  41. package/esm2020/button/examples/examples.mjs +19 -0
  42. package/esm2020/button/examples/flat-button/flat-button.component.mjs +24 -0
  43. package/esm2020/button/examples/flat-button/flat-button.module.mjs +30 -0
  44. package/esm2020/button/examples/icon-button/icon-button.component.mjs +6 -5
  45. package/esm2020/button/examples/public_api.mjs +11 -18
  46. package/esm2020/button/examples/raised-button/raised-button.component.mjs +7 -6
  47. package/esm2020/button/examples/sizeable-button/sizeable-button.component.mjs +3 -7
  48. package/esm2020/button/examples/statusable-button/statusable-button.component.mjs +3 -11
  49. package/esm2020/button/examples/stroked-button/stroked-button.component.mjs +7 -6
  50. package/esm2020/button/examples/underline-button/underline-button.component.mjs +7 -6
  51. package/esm2020/button/examples/underline-button/underline-button.module.mjs +1 -1
  52. package/esm2020/callout/examples/callout-text-alignment/callout-text-alignment.component.mjs +1 -1
  53. package/esm2020/callout/examples/callout-theming/callout-theming.component.mjs +1 -1
  54. package/esm2020/callout/examples/callout-with-grid/callout-with-grid.component.mjs +1 -1
  55. package/esm2020/callout/examples/compact-callout/compact-callout.component.mjs +1 -1
  56. package/esm2020/card/examples/basic-card/basic-card.component.mjs +1 -1
  57. package/esm2020/card/examples/card-orientation/card-orientation.component.mjs +1 -1
  58. package/esm2020/checkbox/examples/basic-checkbox/basic-checkbox.component.mjs +1 -1
  59. package/esm2020/checkbox/examples/checkbox-set/checkbox-set.component.mjs +1 -1
  60. package/esm2020/core/animation/animation-state-with-params.mjs +2 -0
  61. package/esm2020/core/public_api.mjs +4 -3
  62. package/esm2020/core/statusable/public_api.mjs +3 -0
  63. package/esm2020/hero/examples/compact-hero/compact-hero.component.mjs +1 -1
  64. package/esm2020/hero/examples/hero-text-alignment/hero-text-alignment.component.mjs +1 -1
  65. package/esm2020/hero/examples/hero-theming/hero-theming.component.mjs +1 -1
  66. package/esm2020/hero/examples/hero-with-grid/hero-with-grid.component.mjs +1 -1
  67. package/esm2020/menu/examples/basic-menu/basic-menu.component.mjs +1 -1
  68. package/esm2020/modal/examples/basic-modal/basic-modal.component.mjs +1 -1
  69. package/esm2020/modal/examples/basic-modal/modal-content.component.mjs +1 -1
  70. package/esm2020/molecules/backdrop/animation/backdrop-animation-state.mjs +2 -0
  71. package/esm2020/molecules/backdrop/animation/backdrop-animation.mjs +6 -2
  72. package/esm2020/molecules/backdrop/backdrop/backdrop.component.mjs +40 -5
  73. package/esm2020/molecules/media-gallery/media-gallery.component.mjs +2 -2
  74. package/esm2020/molecules/qty-dropdown/qty-dropdown.component.mjs +1 -1
  75. package/esm2020/molecules/qty-dropdown/qty-dropdown.module.mjs +2 -2
  76. package/esm2020/molecules/sidebar/animation/sidebar-animation-state.mjs +2 -2
  77. package/esm2020/molecules/sidebar/animation/sidebar-animation-width.mjs +2 -0
  78. package/esm2020/molecules/sidebar/animation/sidebar-animation.mjs +21 -4
  79. package/esm2020/molecules/sidebar/animation/sidebar-viewport-animation-state.mjs +3 -0
  80. package/esm2020/molecules/sidebar/helper/sidebar-mode.mjs +1 -1
  81. package/esm2020/molecules/sidebar/helper/sidebar-side.mjs +2 -0
  82. package/esm2020/molecules/sidebar/public_api.mjs +1 -2
  83. package/esm2020/molecules/sidebar/sidebar/sidebar.component.mjs +62 -10
  84. package/esm2020/molecules/sidebar/sidebar-viewport/backdrop-interactable.mjs +5 -0
  85. package/esm2020/molecules/sidebar/sidebar-viewport/content-pad.mjs +17 -0
  86. package/esm2020/molecules/sidebar/sidebar-viewport/content-shift.mjs +21 -0
  87. package/esm2020/molecules/sidebar/sidebar-viewport/sidebar-viewport.component.mjs +83 -81
  88. package/esm2020/navbar/examples/basic-navbar/basic-navbar.component.mjs +1 -1
  89. package/esm2020/navbar/examples/contained-navbar/contained-navbar.component.mjs +1 -1
  90. package/esm2020/navbar/examples/navbar-theming/navbar-theming.component.mjs +1 -1
  91. package/esm2020/navbar/examples/raised-navbar/raised-navbar.component.mjs +1 -1
  92. package/esm2020/public_api.mjs +3 -2
  93. package/esm2020/sidebar/examples/basic-sidebar/basic-sidebar.component.mjs +12 -0
  94. package/esm2020/sidebar/examples/basic-sidebar/basic-sidebar.module.mjs +29 -0
  95. package/esm2020/sidebar/examples/daffodil-design-sidebar-examples.mjs +5 -0
  96. package/esm2020/sidebar/examples/fixed-and-over-sidebar/fixed-and-over-sidebar.component.mjs +21 -0
  97. package/esm2020/sidebar/examples/fixed-and-over-sidebar/fixed-and-over-sidebar.module.mjs +32 -0
  98. package/esm2020/sidebar/examples/index.mjs +2 -0
  99. package/esm2020/sidebar/examples/public_api.mjs +18 -0
  100. package/esm2020/sidebar/examples/sidebar-with-sticky/sidebar-with-sticky.component.mjs +12 -0
  101. package/esm2020/sidebar/examples/sidebar-with-sticky/sidebar-with-sticky.module.mjs +29 -0
  102. package/esm2020/sidebar/examples/two-fixed-sidebars-either-side/two-fixed-sidebars-either-side.component.mjs +12 -0
  103. package/esm2020/sidebar/examples/two-fixed-sidebars-either-side/two-fixed-sidebars-either-side.module.mjs +29 -0
  104. package/esm2020/sidebar/examples/under-sidebar/under-sidebar.component.mjs +26 -0
  105. package/esm2020/sidebar/examples/under-sidebar/under-sidebar.module.mjs +32 -0
  106. package/esm2020/tree/daffodil-design-tree.mjs +5 -0
  107. package/esm2020/tree/examples/basic-tree/basic-tree.component.mjs +39 -0
  108. package/esm2020/tree/examples/basic-tree/basic-tree.module.mjs +34 -0
  109. package/esm2020/tree/examples/daffodil-design-tree-examples.mjs +5 -0
  110. package/esm2020/tree/examples/index.mjs +2 -0
  111. package/esm2020/tree/examples/public_api.mjs +7 -0
  112. package/esm2020/tree/index.mjs +2 -0
  113. package/esm2020/tree/interfaces/recursive-key.mjs +2 -0
  114. package/esm2020/tree/interfaces/tree-data.mjs +2 -0
  115. package/esm2020/tree/interfaces/tree-ui.mjs +2 -0
  116. package/esm2020/tree/public_api.mjs +5 -0
  117. package/esm2020/tree/tree/tree-notifier.service.mjs +45 -0
  118. package/esm2020/tree/tree/tree.component.mjs +106 -0
  119. package/esm2020/tree/tree-item/tree-item.directive.mjs +154 -0
  120. package/esm2020/tree/tree.module.mjs +31 -0
  121. package/esm2020/tree/utils/flatten-tree.mjs +47 -0
  122. package/esm2020/tree/utils/hydrate-tree.mjs +31 -0
  123. package/esm2020/tree/utils/transform-in-place.mjs +23 -0
  124. package/esm2020/tree/utils/traverse-tree.mjs +21 -0
  125. package/fesm2015/daffodil-design-button-examples.mjs +160 -122
  126. package/fesm2015/daffodil-design-button-examples.mjs.map +1 -1
  127. package/fesm2015/daffodil-design-callout-examples.mjs +4 -4
  128. package/fesm2015/daffodil-design-callout-examples.mjs.map +1 -1
  129. package/fesm2015/daffodil-design-card-examples.mjs +2 -2
  130. package/fesm2015/daffodil-design-card-examples.mjs.map +1 -1
  131. package/fesm2015/daffodil-design-checkbox-examples.mjs +2 -2
  132. package/fesm2015/daffodil-design-checkbox-examples.mjs.map +1 -1
  133. package/fesm2015/daffodil-design-hero-examples.mjs +4 -4
  134. package/fesm2015/daffodil-design-hero-examples.mjs.map +1 -1
  135. package/fesm2015/daffodil-design-menu-examples.mjs +1 -1
  136. package/fesm2015/daffodil-design-menu-examples.mjs.map +1 -1
  137. package/fesm2015/daffodil-design-modal-examples.mjs +2 -2
  138. package/fesm2015/daffodil-design-modal-examples.mjs.map +1 -1
  139. package/fesm2015/daffodil-design-navbar-examples.mjs +4 -4
  140. package/fesm2015/daffodil-design-navbar-examples.mjs.map +1 -1
  141. package/fesm2015/daffodil-design-sidebar-examples.mjs +218 -0
  142. package/fesm2015/daffodil-design-sidebar-examples.mjs.map +1 -0
  143. package/fesm2015/daffodil-design-tree-examples.mjs +81 -0
  144. package/fesm2015/daffodil-design-tree-examples.mjs.map +1 -0
  145. package/fesm2015/daffodil-design-tree.mjs +443 -0
  146. package/fesm2015/daffodil-design-tree.mjs.map +1 -0
  147. package/fesm2015/daffodil-design.mjs +440 -191
  148. package/fesm2015/daffodil-design.mjs.map +1 -1
  149. package/fesm2020/daffodil-design-button-examples.mjs +160 -122
  150. package/fesm2020/daffodil-design-button-examples.mjs.map +1 -1
  151. package/fesm2020/daffodil-design-callout-examples.mjs +4 -4
  152. package/fesm2020/daffodil-design-callout-examples.mjs.map +1 -1
  153. package/fesm2020/daffodil-design-card-examples.mjs +2 -2
  154. package/fesm2020/daffodil-design-card-examples.mjs.map +1 -1
  155. package/fesm2020/daffodil-design-checkbox-examples.mjs +2 -2
  156. package/fesm2020/daffodil-design-checkbox-examples.mjs.map +1 -1
  157. package/fesm2020/daffodil-design-hero-examples.mjs +4 -4
  158. package/fesm2020/daffodil-design-hero-examples.mjs.map +1 -1
  159. package/fesm2020/daffodil-design-menu-examples.mjs +1 -1
  160. package/fesm2020/daffodil-design-menu-examples.mjs.map +1 -1
  161. package/fesm2020/daffodil-design-modal-examples.mjs +2 -2
  162. package/fesm2020/daffodil-design-modal-examples.mjs.map +1 -1
  163. package/fesm2020/daffodil-design-navbar-examples.mjs +4 -4
  164. package/fesm2020/daffodil-design-navbar-examples.mjs.map +1 -1
  165. package/fesm2020/daffodil-design-sidebar-examples.mjs +218 -0
  166. package/fesm2020/daffodil-design-sidebar-examples.mjs.map +1 -0
  167. package/fesm2020/daffodil-design-tree-examples.mjs +81 -0
  168. package/fesm2020/daffodil-design-tree-examples.mjs.map +1 -0
  169. package/fesm2020/daffodil-design-tree.mjs +448 -0
  170. package/fesm2020/daffodil-design-tree.mjs.map +1 -0
  171. package/fesm2020/daffodil-design.mjs +440 -191
  172. package/fesm2020/daffodil-design.mjs.map +1 -1
  173. package/hero/examples/package.json +1 -1
  174. package/image/examples/package.json +1 -1
  175. package/input/examples/package.json +1 -1
  176. package/list/examples/package.json +1 -1
  177. package/loading-icon/examples/package.json +1 -1
  178. package/media-gallery/examples/package.json +1 -1
  179. package/menu/examples/package.json +1 -1
  180. package/modal/examples/package.json +1 -1
  181. package/molecules/backdrop/animation/backdrop-animation-state.d.ts +2 -0
  182. package/molecules/backdrop/backdrop/backdrop.component.d.ts +17 -3
  183. package/molecules/qty-dropdown/qty-dropdown.module.d.ts +1 -1
  184. package/molecules/sidebar/animation/sidebar-animation-state.d.ts +2 -1
  185. package/molecules/sidebar/animation/sidebar-animation-width.d.ts +2 -0
  186. package/molecules/sidebar/animation/sidebar-animation.d.ts +3 -1
  187. package/molecules/sidebar/animation/sidebar-viewport-animation-state.d.ts +6 -0
  188. package/molecules/sidebar/helper/sidebar-mode.d.ts +27 -1
  189. package/molecules/sidebar/helper/sidebar-side.d.ts +12 -0
  190. package/molecules/sidebar/public_api.d.ts +2 -1
  191. package/molecules/sidebar/sidebar/sidebar.component.d.ts +37 -5
  192. package/molecules/sidebar/sidebar-viewport/backdrop-interactable.d.ts +6 -0
  193. package/molecules/sidebar/sidebar-viewport/content-pad.d.ts +7 -0
  194. package/molecules/sidebar/sidebar-viewport/content-shift.d.ts +8 -0
  195. package/molecules/sidebar/sidebar-viewport/sidebar-viewport.component.d.ts +47 -44
  196. package/navbar/examples/package.json +1 -1
  197. package/package.json +1 -1
  198. package/paginator/examples/package.json +1 -1
  199. package/public_api.d.ts +2 -1
  200. package/quantity-field/examples/package.json +1 -1
  201. package/radio/examples/package.json +1 -1
  202. package/scss/global.scss +1 -0
  203. package/scss/state/skeleton/_mixins.scss +1 -0
  204. package/scss/theme.scss +4 -2
  205. package/scss/theming/_color-palettes.scss +5 -5
  206. package/sidebar/examples/basic-sidebar/basic-sidebar.component.d.ts +5 -0
  207. package/sidebar/examples/basic-sidebar/basic-sidebar.module.d.ts +8 -0
  208. package/sidebar/examples/daffodil-design-sidebar-examples.d.ts +5 -0
  209. package/sidebar/examples/fixed-and-over-sidebar/fixed-and-over-sidebar.component.d.ts +8 -0
  210. package/sidebar/examples/fixed-and-over-sidebar/fixed-and-over-sidebar.module.d.ts +8 -0
  211. package/sidebar/examples/index.d.ts +1 -0
  212. package/sidebar/examples/package.json +1 -0
  213. package/sidebar/examples/public_api.d.ts +2 -0
  214. package/sidebar/examples/sidebar-with-sticky/sidebar-with-sticky.component.d.ts +5 -0
  215. package/sidebar/examples/sidebar-with-sticky/sidebar-with-sticky.module.d.ts +8 -0
  216. package/sidebar/examples/two-fixed-sidebars-either-side/two-fixed-sidebars-either-side.component.d.ts +5 -0
  217. package/sidebar/examples/two-fixed-sidebars-either-side/two-fixed-sidebars-either-side.module.d.ts +8 -0
  218. package/sidebar/examples/under-sidebar/under-sidebar.component.d.ts +10 -0
  219. package/sidebar/examples/under-sidebar/under-sidebar.module.d.ts +8 -0
  220. package/src/atoms/button/button-theme-variants/button.scss +9 -18
  221. package/src/atoms/button/button-theme-variants/flat.scss +25 -0
  222. package/src/atoms/button/button-theme-variants/raised.scss +6 -26
  223. package/src/atoms/button/button-theme-variants/stroked.scss +12 -20
  224. package/src/atoms/button/button-theme.scss +121 -117
  225. package/src/atoms/form/{select → native-select}/README.md +1 -1
  226. package/src/atoms/form/{select/select/select-theme.scss → native-select/native-select-theme.scss} +3 -3
  227. package/src/atoms/loading-icon/loading-icon-theme.scss +4 -0
  228. package/src/molecules/sidebar/README.md +10 -0
  229. package/src/molecules/sidebar/helper/_variables.scss +7 -0
  230. package/src/molecules/sidebar/sidebar/sidebar-theme.scss +3 -3
  231. package/src/molecules/sidebar/sidebar-viewport/sidebar-viewport-theme.scss +5 -0
  232. package/tree/README.md +38 -0
  233. package/tree/daffodil-design-tree.d.ts +5 -0
  234. package/tree/examples/basic-tree/basic-tree.component.d.ts +7 -0
  235. package/tree/examples/basic-tree/basic-tree.module.d.ts +10 -0
  236. package/tree/examples/daffodil-design-tree-examples.d.ts +5 -0
  237. package/tree/examples/index.d.ts +1 -0
  238. package/tree/examples/package.json +1 -0
  239. package/tree/examples/public_api.d.ts +4 -0
  240. package/tree/index.d.ts +1 -0
  241. package/tree/interfaces/recursive-key.d.ts +3 -0
  242. package/tree/interfaces/tree-data.d.ts +13 -0
  243. package/tree/interfaces/tree-ui.d.ts +11 -0
  244. package/tree/package.json +1 -0
  245. package/tree/public_api.d.ts +6 -0
  246. package/tree/src/tree-theme.scss +38 -0
  247. package/tree/tree/tree-notifier.service.d.ts +32 -0
  248. package/tree/tree/tree.component.d.ts +75 -0
  249. package/tree/tree-item/tree-item.directive.d.ts +102 -0
  250. package/tree/tree.module.d.ts +9 -0
  251. package/tree/utils/flatten-tree.d.ts +19 -0
  252. package/tree/utils/hydrate-tree.d.ts +8 -0
  253. package/tree/utils/transform-in-place.d.ts +15 -0
  254. package/tree/utils/traverse-tree.d.ts +5 -0
  255. package/atoms/form/select/public_api.d.ts +0 -2
  256. package/esm2020/atoms/form/select/public_api.mjs +0 -3
  257. package/esm2020/atoms/form/select/select/select.component.mjs +0 -64
  258. package/src/atoms/button/button-theme-variants/focus.scss +0 -6
@@ -0,0 +1,13 @@
1
+ /**
2
+ * A basic tree type supporting supplemental data on a tree node.
3
+ *
4
+ * Tree elements are often slightly more than just basic titles and child items.
5
+ * There may be other important data that needs to be available at render time.
6
+ */
7
+ export interface DaffTreeData<T> {
8
+ title: string;
9
+ url: string;
10
+ id: string;
11
+ items: DaffTreeData<T>[];
12
+ data: T;
13
+ }
@@ -0,0 +1,11 @@
1
+ import { DaffTreeData } from './tree-data';
2
+ /**
3
+ * A DaffTreeUi is the internal data structure used during tree rendering.
4
+ *
5
+ * This is an internal implementation detail type that.
6
+ */
7
+ export interface DaffTreeUi<T> extends DaffTreeData<T> {
8
+ open: boolean;
9
+ items: DaffTreeUi<T>[];
10
+ parent: DaffTreeUi<T>;
11
+ }
@@ -0,0 +1 @@
1
+ {"name":"@daffodil/design/tree","module":"../fesm2015/daffodil-design-tree.mjs","es2020":"../fesm2020/daffodil-design-tree.mjs","esm2020":"../esm2020/tree/daffodil-design-tree.mjs","fesm2020":"../fesm2020/daffodil-design-tree.mjs","fesm2015":"../fesm2015/daffodil-design-tree.mjs","typings":"daffodil-design-tree.d.ts","sideEffects":false,"version":"0.62.0"}
@@ -0,0 +1,6 @@
1
+ export { DaffTreeModule } from './tree.module';
2
+ export { DaffTreeComponent } from './tree/tree.component';
3
+ export { DaffTreeItemDirective } from './tree-item/tree-item.directive';
4
+ export { DaffTreeData } from './interfaces/tree-data';
5
+ export { DaffTreeUi } from './interfaces/tree-ui';
6
+ export { daffTransformTreeInPlace } from './utils/transform-in-place';
@@ -0,0 +1,38 @@
1
+ @use 'sass:map';
2
+ @use '../../scss/theming';
3
+ @use '../../scss/core';
4
+
5
+ @mixin daff-tree-theme($theme) {
6
+ $primary: map.get($theme, primary);
7
+ $secondary: map.get($theme, secondary);
8
+ $tertiary: map.get($theme, tertiary);
9
+ $base: core.daff-map-deep-get($theme, 'core.base');
10
+ $base-contrast: core.daff-map-deep-get($theme, 'core.base-contrast');
11
+ $white: core.daff-map-deep-get($theme, 'core.white');
12
+ $black: core.daff-map-deep-get($theme, 'core.black');
13
+ $gray: core.daff-map-deep-get($theme, 'core.gray');
14
+
15
+ .daff-tree-item {
16
+ $root: &;
17
+
18
+ background-color: $base;
19
+ color: theming.daff-illuminate($base-contrast, $gray, 2);
20
+
21
+ &:hover {
22
+ background-color: theming.daff-illuminate($base, $gray, 2);
23
+ }
24
+
25
+ &:after {
26
+ border-color: currentColor;
27
+ }
28
+
29
+ &.selected {
30
+ background-color: theming.daff-illuminate($base, $gray, 2);
31
+ color: $base-contrast;
32
+
33
+ &:before {
34
+ background-color: theming.daff-color($primary);
35
+ }
36
+ }
37
+ }
38
+ }
@@ -0,0 +1,32 @@
1
+ import { OnDestroy } from '@angular/core';
2
+ /**
3
+ * This service is used by tree-items to notify their parent
4
+ * that the tree has to be re-computed.
5
+ *
6
+ * This service is a multiton associated with each tree instance.
7
+ * It follows the same lifecycle has the tree it is associated with.
8
+ */
9
+ export declare class DaffTreeNotifierService implements OnDestroy {
10
+ /**
11
+ * @docs-private
12
+ */
13
+ private _notice;
14
+ /**
15
+ * An observable that emits when the tree needs to be re-computed.
16
+ */
17
+ notice$: import("rxjs").Observable<boolean>;
18
+ /**
19
+ * `notify` can be called to trigger a re-computation of the tree
20
+ * if data has changed unexpectedly and a re-render did not occur.
21
+ *
22
+ * This should be used sparingly. Instead, prefer updating `data` on the tree
23
+ * itself for performance reasons.
24
+ */
25
+ notify(): void;
26
+ /**
27
+ * Cleanup when the tree is destroyed.
28
+ *
29
+ * @docs-private
30
+ */
31
+ ngOnDestroy(): void;
32
+ }
@@ -0,0 +1,75 @@
1
+ import { OnInit, TemplateRef } from '@angular/core';
2
+ import { DaffTreeData } from '../interfaces/tree-data';
3
+ import { DaffTreeFlatNode } from '../utils/flatten-tree';
4
+ import { DaffTreeNotifierService } from './tree-notifier.service';
5
+ import * as i0 from "@angular/core";
6
+ /**
7
+ * The `DaffTreeComponent` allows you to render tree structures as interactable ui.
8
+ *
9
+ * They can be used like:
10
+ *
11
+ * ```html
12
+ * <ul daff-tree [tree]="tree">
13
+ * <ng-template #daffTreeItemWithChildrenTpl let-node>
14
+ * <button daffTreeItem [node]="node">{{ node.title }} </button>
15
+ * </ng-template>
16
+ *
17
+ * <ng-template #daffTreeItemTpl let-node>
18
+ * <a daffTreeItem [node]="node" [routerLink]="node.url">{{ node.title }}</a>
19
+ * </ng-template>
20
+ * </ul>
21
+ * ```
22
+ *
23
+ * where `tree` is a {@link DaffTreeData}.
24
+ *
25
+ */
26
+ export declare class DaffTreeComponent implements OnInit {
27
+ private notifier;
28
+ /**
29
+ * The css class of the daff-tree.
30
+ *
31
+ * @docs-private
32
+ */
33
+ class: boolean;
34
+ /**
35
+ * The internal tree element.
36
+ */
37
+ private tree;
38
+ /**
39
+ * The flattened tree data. You can iterate through this if you want to inspect
40
+ * the resulting array structure we computed to render the tree.
41
+ */
42
+ flatTree: DaffTreeFlatNode[];
43
+ /**
44
+ * @docs-private
45
+ */
46
+ private _dataTree;
47
+ /**
48
+ * The tree data you would like to render.
49
+ */
50
+ get dataTree(): DaffTreeData<unknown>;
51
+ set dataTree(dataTree: DaffTreeData<unknown>);
52
+ /**
53
+ * The template used to render tree-nodes that themselves have children.
54
+ *
55
+ * @docs-private
56
+ */
57
+ withChildrenTemplate: TemplateRef<any>;
58
+ /**
59
+ * The template used to render tree-nodes that have no children.
60
+ *
61
+ * @docs-private
62
+ */
63
+ treeItemTemplate: TemplateRef<any>;
64
+ constructor(notifier: DaffTreeNotifierService);
65
+ /**
66
+ * The track-by function used to reduce tree-item re-renders
67
+ */
68
+ trackByTreeElement(index: number, el: any): any;
69
+ /**
70
+ * @docs-private
71
+ */
72
+ ngOnInit(): void;
73
+ static ɵfac: i0.ɵɵFactoryDeclaration<DaffTreeComponent, never>;
74
+ static ɵcmp: i0.ɵɵComponentDeclaration<DaffTreeComponent, "ul[daff-tree]", never, { "dataTree": "tree"; }, {}, ["withChildrenTemplate", "treeItemTemplate"], never>;
75
+ }
@@ -0,0 +1,102 @@
1
+ import { DaffTreeNotifierService } from '../tree/tree-notifier.service';
2
+ import { DaffTreeFlatNode } from '../utils/flatten-tree';
3
+ import * as i0 from "@angular/core";
4
+ /**
5
+ * The `DaffTreeItemDirective` allows you to demarcate the elements which are
6
+ * tree-children that interact with the parent tree.
7
+ *
8
+ * They can be used like:
9
+ *
10
+ * ```html
11
+ * <ul daff-tree [tree]="tree">
12
+ * <ng-template #daffTreeItemWithChildrenTpl let-node>
13
+ * <button daffTreeItem [node]="node">{{ node.title }} </button>
14
+ * </ng-template>
15
+ *
16
+ * <ng-template #daffTreeItemTpl let-node>
17
+ * <a daffTreeItem [node]="node" [routerLink]="node.url">{{ node.title }}</a>
18
+ * </ng-template>
19
+ * </ul>
20
+ * ```
21
+ *
22
+ * where `tree` is a {@link DaffTreeData} and `daff-tree` is a {@link DaffTreeComponent}.
23
+ *
24
+ */
25
+ export declare class DaffTreeItemDirective {
26
+ private document;
27
+ private treeNotifier;
28
+ /**
29
+ * The css class of the daff-tree.
30
+ *
31
+ * @docs-private
32
+ */
33
+ class: boolean;
34
+ /**
35
+ * The css class of a DaffTreeItemDirective that has children.
36
+ *
37
+ * @docs-private
38
+ */
39
+ classParent: boolean;
40
+ /**
41
+ * The html `id` of the tree item. This is derived from the {@link DaffTreeData}.
42
+ *
43
+ * @docs-private
44
+ */
45
+ id: any;
46
+ /**
47
+ * Accessibility property, notifying users about whether
48
+ * or not the tree item is open.
49
+ *
50
+ * @docs-private
51
+ */
52
+ ariaExpanded: string;
53
+ /**
54
+ * A css variable indicating the depth of the tree.
55
+ * You can use this to style your templates if you want to
56
+ * use different designs at different depths.
57
+ */
58
+ depth: number;
59
+ /**
60
+ * The CSS class indicating whether or not the tree is `selected`.
61
+ */
62
+ get selectedClass(): boolean;
63
+ /**
64
+ * The CSS class indicating whether or not the tree is `open`.
65
+ */
66
+ openClass: boolean;
67
+ /**
68
+ * The {@link DaffTreeFlatNode} associated with this specific tree item.
69
+ *
70
+ * @docs-private
71
+ */
72
+ private _node;
73
+ /**
74
+ * The {@link DaffTreeFlatNode} associated with this specific tree item.
75
+ */
76
+ get node(): DaffTreeFlatNode;
77
+ set node(val: DaffTreeFlatNode);
78
+ /**
79
+ * Whether or not the tree item is the currently active item.
80
+ * Note that there is no requirement there there only be one active item at a time.
81
+ */
82
+ selected: boolean;
83
+ constructor(document: any, treeNotifier: DaffTreeNotifierService);
84
+ /**
85
+ * @docs-private
86
+ */
87
+ onEscape(): void;
88
+ /**
89
+ * @docs-private
90
+ */
91
+ onClick(): void;
92
+ /**
93
+ * Toggle the open state of the tree's parent.
94
+ */
95
+ toggleParent(node: DaffTreeFlatNode): void;
96
+ /**
97
+ * Toggle the open state of this specific subtree tree.
98
+ */
99
+ toggleTree(node: DaffTreeFlatNode): void;
100
+ static ɵfac: i0.ɵɵFactoryDeclaration<DaffTreeItemDirective, never>;
101
+ static ɵdir: i0.ɵɵDirectiveDeclaration<DaffTreeItemDirective, "[daffTreeItem]", never, { "node": "node"; "selected": "selected"; }, {}, never>;
102
+ }
@@ -0,0 +1,9 @@
1
+ import * as i0 from "@angular/core";
2
+ import * as i1 from "./tree/tree.component";
3
+ import * as i2 from "./tree-item/tree-item.directive";
4
+ import * as i3 from "@angular/common";
5
+ export declare class DaffTreeModule {
6
+ static ɵfac: i0.ɵɵFactoryDeclaration<DaffTreeModule, never>;
7
+ static ɵmod: i0.ɵɵNgModuleDeclaration<DaffTreeModule, [typeof i1.DaffTreeComponent, typeof i2.DaffTreeItemDirective], [typeof i3.CommonModule], [typeof i1.DaffTreeComponent, typeof i2.DaffTreeItemDirective]>;
8
+ static ɵinj: i0.ɵɵInjectorDeclaration<DaffTreeModule>;
9
+ }
@@ -0,0 +1,19 @@
1
+ import { DaffTreeUi } from '../interfaces/tree-ui';
2
+ /**
3
+ * A flattened node of a tree. This is used when translating the tree data
4
+ * structure into an array.
5
+ */
6
+ export interface DaffTreeFlatNode {
7
+ id: number | string;
8
+ title: string;
9
+ url: string;
10
+ level: number;
11
+ hasChildren: boolean;
12
+ data: unknown;
13
+ _treeRef: DaffTreeUi<unknown>;
14
+ }
15
+ /**
16
+ * Flatten a DaffTreeUi<unknown> into an array, removing elements from the array
17
+ * below nodes in the tree that are not open.
18
+ */
19
+ export declare const flattenTree: (daffUiTree: DaffTreeUi<unknown>) => DaffTreeFlatNode[];
@@ -0,0 +1,8 @@
1
+ import { DaffTreeData } from '../interfaces/tree-data';
2
+ import { DaffTreeUi } from '../interfaces/tree-ui';
3
+ export declare const daffDataTreeToUiTree: <T>(data: DaffTreeData<T>, parent: DaffTreeUi<T>, open?: boolean) => DaffTreeUi<T>;
4
+ /**
5
+ * This function translates the original data given to us by the client
6
+ * to the internal representation of the tree used by the {@link DaffTreeComponent}
7
+ */
8
+ export declare const hydrateTree: <T>(data: DaffTreeData<T>) => DaffTreeUi<T>;
@@ -0,0 +1,15 @@
1
+ import { RecursiveTreeKeyOfType } from '../interfaces/recursive-key';
2
+ import { DaffTreeData } from '../interfaces/tree-data';
3
+ /**
4
+ * Transform a tree-like structure in-place into a {@link DaffTreeData}.
5
+ *
6
+ * This will mutate the original object, hydrating with additional properties.
7
+ *
8
+ * @param tree - The data structure representing tree-like data.
9
+ * @param transformFn - A user-supplied function that will transform the user
10
+ * type into a {@link DaffTreeData}
11
+ * @param key - The property of the your tree that indicates which
12
+ * key contains the "children" of your tree structure.
13
+ *
14
+ */
15
+ export declare const daffTransformTreeInPlace: <T extends Record<any, any>>(tree: T, transformFn: (type: T) => T & DaffTreeData<unknown>, key: keyof { [P in keyof T as T[P] extends T[] ? P : never]: T[]; }) => DaffTreeData<unknown>;
@@ -0,0 +1,5 @@
1
+ import { RecursiveTreeKeyOfType } from '../interfaces/recursive-key';
2
+ /**
3
+ * Traverse the tree, pre-order, right-to-left
4
+ */
5
+ export declare const traverse: <T extends Record<any, any>, V extends Record<any, any> = T>(tree: T, visit: (tree: T) => V, key: keyof { [P in keyof T as T[P] extends T[] ? P : never]: T[]; }) => V;
@@ -1,2 +0,0 @@
1
- export * from './select/select.component';
2
- export { DaffNativeSelectModule } from './select.module';
@@ -1,3 +0,0 @@
1
- export * from './select/select.component';
2
- export { DaffNativeSelectModule } from './select.module';
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2FwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvZGVzaWduL3NyYy9hdG9tcy9mb3JtL3NlbGVjdC9wdWJsaWNfYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsMkJBQTJCLENBQUM7QUFDMUMsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0saUJBQWlCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL3NlbGVjdC9zZWxlY3QuY29tcG9uZW50JztcbmV4cG9ydCB7IERhZmZOYXRpdmVTZWxlY3RNb2R1bGUgfSBmcm9tICcuL3NlbGVjdC5tb2R1bGUnO1xuIl19
@@ -1,64 +0,0 @@
1
- import { Component, ViewEncapsulation, Optional, Self, Input, ElementRef, HostListener, HostBinding, ChangeDetectionStrategy, } from '@angular/core';
2
- import { NgControl } from '@angular/forms';
3
- import { DaffFormFieldControl } from '../../form-field/form-field-control';
4
- import * as i0 from "@angular/core";
5
- import * as i1 from "@angular/forms";
6
- export class DaffNativeSelectComponent {
7
- constructor(
8
- /**
9
- * @docs-private
10
- */
11
- ngControl, _elementRef) {
12
- this.ngControl = ngControl;
13
- this._elementRef = _elementRef;
14
- /**
15
- * @docs-private
16
- */
17
- this.controlType = 'native-select';
18
- this.class = true;
19
- this.focused = false;
20
- }
21
- /**
22
- * @docs-private
23
- */
24
- focus() {
25
- this.focused = true;
26
- }
27
- /**
28
- * @docs-private
29
- */
30
- blur() {
31
- this.focused = false;
32
- }
33
- onFocus() {
34
- this._elementRef.nativeElement.focus();
35
- }
36
- }
37
- /** @nocollapse */ DaffNativeSelectComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: DaffNativeSelectComponent, deps: [{ token: i1.NgControl, optional: true, self: true }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
38
- /** @nocollapse */ DaffNativeSelectComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.0", type: DaffNativeSelectComponent, selector: "select[daff-native-select]", inputs: { formSubmitted: "formSubmitted" }, host: { listeners: { "focus": "focus()", "blur": "blur()" }, properties: { "class.daff-native-select": "this.class" } }, providers: [
39
- // eslint-disable-next-line @typescript-eslint/no-use-before-define
40
- { provide: DaffFormFieldControl, useExisting: DaffNativeSelectComponent },
41
- ], ngImport: i0, template: '<ng-content></ng-content>', isInline: true, styles: [".daff-native-select{-webkit-appearance:none;appearance:none;background:transparent;background-clip:padding-box;border:0;box-shadow:none;font-size:1rem;line-height:1.5rem;margin:0;min-width:45px;width:100%}.daff-native-select:focus{border:0;box-shadow:none;outline:none}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
42
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: DaffNativeSelectComponent, decorators: [{
43
- type: Component,
44
- args: [{ selector: 'select[daff-native-select]', template: '<ng-content></ng-content>', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, providers: [
45
- // eslint-disable-next-line @typescript-eslint/no-use-before-define
46
- { provide: DaffFormFieldControl, useExisting: DaffNativeSelectComponent },
47
- ], styles: [".daff-native-select{-webkit-appearance:none;appearance:none;background:transparent;background-clip:padding-box;border:0;box-shadow:none;font-size:1rem;line-height:1.5rem;margin:0;min-width:45px;width:100%}.daff-native-select:focus{border:0;box-shadow:none;outline:none}\n"] }]
48
- }], ctorParameters: function () { return [{ type: i1.NgControl, decorators: [{
49
- type: Optional
50
- }, {
51
- type: Self
52
- }] }, { type: i0.ElementRef }]; }, propDecorators: { class: [{
53
- type: HostBinding,
54
- args: ['class.daff-native-select']
55
- }], formSubmitted: [{
56
- type: Input
57
- }], focus: [{
58
- type: HostListener,
59
- args: ['focus']
60
- }], blur: [{
61
- type: HostListener,
62
- args: ['blur']
63
- }] } });
64
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvZGVzaWduL3NyYy9hdG9tcy9mb3JtL3NlbGVjdC9zZWxlY3Qvc2VsZWN0LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULGlCQUFpQixFQUNqQixRQUFRLEVBQ1IsSUFBSSxFQUNKLEtBQUssRUFDTCxVQUFVLEVBQ1YsWUFBWSxFQUNaLFdBQVcsRUFDWCx1QkFBdUIsR0FDeEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTNDLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHFDQUFxQyxDQUFDOzs7QUFlM0UsTUFBTSxPQUFPLHlCQUF5QjtJQTRCcEM7SUFDRTs7T0FFRztJQUN3QixTQUFvQixFQUN2QyxXQUF5QztRQUR0QixjQUFTLEdBQVQsU0FBUyxDQUFXO1FBQ3ZDLGdCQUFXLEdBQVgsV0FBVyxDQUE4QjtRQWhDbkQ7O1dBRUc7UUFDSCxnQkFBVyxHQUFHLGVBQWUsQ0FBQztRQUVXLFVBQUssR0FBRyxJQUFJLENBQUM7UUFNdEQsWUFBTyxHQUFHLEtBQUssQ0FBQztJQXNCYixDQUFDO0lBcEJKOztPQUVHO0lBQ29CLEtBQUs7UUFDM0IsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUM7SUFDckIsQ0FBQztJQUVEOztPQUVHO0lBQ21CLElBQUk7UUFDeEIsSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7SUFDdkIsQ0FBQztJQVVELE9BQU87UUFDTCxJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWEsQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUN6QyxDQUFDOzt5SUF0Q1UseUJBQXlCOzZIQUF6Qix5QkFBeUIsME5BTnpCO1FBQ1QsbUVBQW1FO1FBQ25FLEVBQUUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLFdBQVcsRUFBRSx5QkFBeUIsRUFBRTtLQUMxRSwwQkFQUywyQkFBMkI7MkZBVTFCLHlCQUF5QjtrQkFickMsU0FBUzsrQkFFRSw0QkFBNEIsWUFDNUIsMkJBQTJCLGlCQUV0QixpQkFBaUIsQ0FBQyxJQUFJLG1CQUNwQix1QkFBdUIsQ0FBQyxNQUFNLGFBQ3BDO3dCQUNULG1FQUFtRTt3QkFDbkUsRUFBRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsV0FBVywyQkFBMkIsRUFBRTtxQkFDMUU7OzBCQW1DRSxRQUFROzswQkFBSSxJQUFJO3FFQTFCc0IsS0FBSztzQkFBN0MsV0FBVzt1QkFBQywwQkFBMEI7Z0JBSzlCLGFBQWE7c0JBQXJCLEtBQUs7Z0JBTWlCLEtBQUs7c0JBQTNCLFlBQVk7dUJBQUMsT0FBTztnQkFPQyxJQUFJO3NCQUF6QixZQUFZO3VCQUFDLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDb21wb25lbnQsXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxuICBPcHRpb25hbCxcbiAgU2VsZixcbiAgSW5wdXQsXG4gIEVsZW1lbnRSZWYsXG4gIEhvc3RMaXN0ZW5lcixcbiAgSG9zdEJpbmRpbmcsXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5nQ29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuaW1wb3J0IHsgRGFmZkZvcm1GaWVsZENvbnRyb2wgfSBmcm9tICcuLi8uLi9mb3JtLWZpZWxkL2Zvcm0tZmllbGQtY29udHJvbCc7XG5cbkBDb21wb25lbnQoe1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L2NvbXBvbmVudC1zZWxlY3RvclxuICBzZWxlY3RvcjogJ3NlbGVjdFtkYWZmLW5hdGl2ZS1zZWxlY3RdJyxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgc3R5bGVVcmxzOiBbJy4vc2VsZWN0LmNvbXBvbmVudC5zY3NzJ10sXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBwcm92aWRlcnM6IFtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVzZS1iZWZvcmUtZGVmaW5lXG4gICAgeyBwcm92aWRlOiBEYWZmRm9ybUZpZWxkQ29udHJvbCwgdXNlRXhpc3Rpbmc6IERhZmZOYXRpdmVTZWxlY3RDb21wb25lbnQgfSxcbiAgXSxcbn0pXG5cbmV4cG9ydCBjbGFzcyBEYWZmTmF0aXZlU2VsZWN0Q29tcG9uZW50IGltcGxlbWVudHMgRGFmZkZvcm1GaWVsZENvbnRyb2wge1xuICAvKipcbiAgICogQGRvY3MtcHJpdmF0ZVxuICAgKi9cbiAgY29udHJvbFR5cGUgPSAnbmF0aXZlLXNlbGVjdCc7XG5cbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5kYWZmLW5hdGl2ZS1zZWxlY3QnKSBjbGFzcyA9IHRydWU7XG5cbiAgLyoqXG4gICAqIEhhcyB0aGUgZm9ybSBiZWVuIHN1Ym1pdHRlZC5cbiAgICovXG4gIEBJbnB1dCgpIGZvcm1TdWJtaXR0ZWQ6IGJvb2xlYW47XG4gIGZvY3VzZWQgPSBmYWxzZTtcblxuICAvKipcbiAgICogQGRvY3MtcHJpdmF0ZVxuICAgKi9cbiAgQEhvc3RMaXN0ZW5lcignZm9jdXMnKSBmb2N1cygpIHtcblx0ICB0aGlzLmZvY3VzZWQgPSB0cnVlO1xuICB9XG5cbiAgLyoqXG4gICAqIEBkb2NzLXByaXZhdGVcbiAgICovXG4gIEBIb3N0TGlzdGVuZXIoJ2JsdXInKSBibHVyKCkge1xuICAgIHRoaXMuZm9jdXNlZCA9IGZhbHNlO1xuICB9XG5cbiAgY29uc3RydWN0b3IoXG4gICAgLyoqXG4gICAgICogQGRvY3MtcHJpdmF0ZVxuICAgICAqL1xuICAgIEBPcHRpb25hbCgpIEBTZWxmKCkgcHVibGljIG5nQ29udHJvbDogTmdDb250cm9sLFxuICAgIHByaXZhdGUgX2VsZW1lbnRSZWY6IEVsZW1lbnRSZWY8SFRNTElucHV0RWxlbWVudD4sXG4gICkge31cblxuICBvbkZvY3VzKCkge1xuICAgIHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5mb2N1cygpO1xuICB9XG5cbn1cbiJdfQ==
@@ -1,6 +0,0 @@
1
- @mixin daff-button-focus-theme-variant($shadow-color) {
2
- &:focus {
3
- outline: none;
4
- box-shadow: 0 0 0 4px rgba($shadow-color, 0.3);
5
- }
6
- }