@daffodil/design 0.83.0 → 0.85.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 (251) hide show
  1. package/accordion/src/accordion-theme.scss +11 -13
  2. package/article/src/article-theme.scss +36 -38
  3. package/atoms/form/checkbox/cva/checkbox-cva.directive.d.ts +3 -0
  4. package/atoms/form/error-message/error-message.component.d.ts +4 -1
  5. package/atoms/form/error-message/error-message.module.d.ts +4 -1
  6. package/atoms/form/form-field/form-field/form-field.component.d.ts +40 -25
  7. package/atoms/form/form-field/form-field-control.d.ts +19 -4
  8. package/atoms/form/form-field/form-field-state.d.ts +7 -0
  9. package/atoms/form/form-field/form-field.d.ts +10 -0
  10. package/atoms/form/form-field/form-field.module.d.ts +6 -4
  11. package/atoms/form/form-field/public_api.d.ts +2 -1
  12. package/atoms/form/form-label/form-label.directive.d.ts +4 -1
  13. package/atoms/form/form-label/form-label.module.d.ts +4 -1
  14. package/atoms/form/hint/hint.component.d.ts +13 -0
  15. package/atoms/form/hint/public_api.d.ts +1 -0
  16. package/atoms/form/native-select/native-select.component.d.ts +5 -1
  17. package/atoms/form/radio/cva/radio-cva.directive.d.ts +3 -0
  18. package/breadcrumb/breadcrumb/breadcrumb.component.d.ts +3 -0
  19. package/breadcrumb/src/breadcrumb-theme.scss +14 -7
  20. package/button/button/button-base.directive.d.ts +6 -23
  21. package/button/button/raised/raised.component.d.ts +1 -1
  22. package/button/src/button/basic/button-theme.scss +84 -114
  23. package/button/src/button/button-base.scss +17 -4
  24. package/button/src/button/flat/flat-theme.scss +32 -68
  25. package/button/src/button/icon/icon-theme.scss +78 -106
  26. package/button/src/button/raised/raised-theme.scss +30 -32
  27. package/button/src/button/stroked/stroked-theme.scss +35 -69
  28. package/button/src/button/underline/underline-theme.scss +34 -50
  29. package/callout/src/callout-theme.scss +37 -22
  30. package/card/card/basic/basic.component.d.ts +3 -0
  31. package/card/card/raised/raised.component.d.ts +3 -0
  32. package/card/card/stroked/stroked.component.d.ts +3 -0
  33. package/card/src/card/raised/raised-theme.scss +9 -11
  34. package/card/src/card/stroked/stroked-theme.scss +32 -34
  35. package/card/src/card-base-theme.scss +42 -44
  36. package/checkbox/examples/basic-checkbox/basic-checkbox.component.d.ts +3 -0
  37. package/checkbox/examples/checkbox-set/checkbox-set.component.d.ts +3 -0
  38. package/core/article-encapsulated/article-encapsulated.directive.d.ts +3 -0
  39. package/core/colorable/colorable.d.ts +2 -2
  40. package/core/colorable/colorable.directive.d.ts +8 -0
  41. package/core/manage-container-layout/manage-container-layout.directive.d.ts +3 -0
  42. package/core/openable/openable.directive.d.ts +3 -0
  43. package/core/prefix-suffix/prefix-suffix.module.d.ts +1 -1
  44. package/core/prefix-suffix/prefix.directive.d.ts +4 -1
  45. package/core/prefix-suffix/public_api.d.ts +0 -4
  46. package/core/prefix-suffix/suffix.directive.d.ts +4 -1
  47. package/core/sizable/sizable.directive.d.ts +8 -0
  48. package/core/statusable/statusable.directive.d.ts +2 -0
  49. package/core/text-alignable/text-alignable.directive.d.ts +6 -1
  50. package/fesm2022/daffodil-design-accordion-examples.mjs +10 -10
  51. package/fesm2022/daffodil-design-accordion-examples.mjs.map +1 -1
  52. package/fesm2022/daffodil-design-accordion.mjs +15 -15
  53. package/fesm2022/daffodil-design-accordion.mjs.map +1 -1
  54. package/fesm2022/daffodil-design-article-examples.mjs +31 -31
  55. package/fesm2022/daffodil-design-article-examples.mjs.map +1 -1
  56. package/fesm2022/daffodil-design-article.mjs +11 -11
  57. package/fesm2022/daffodil-design-article.mjs.map +1 -1
  58. package/fesm2022/daffodil-design-breadcrumb-examples.mjs +7 -7
  59. package/fesm2022/daffodil-design-breadcrumb-examples.mjs.map +1 -1
  60. package/fesm2022/daffodil-design-breadcrumb.mjs +15 -12
  61. package/fesm2022/daffodil-design-breadcrumb.mjs.map +1 -1
  62. package/fesm2022/daffodil-design-button-examples.mjs +41 -37
  63. package/fesm2022/daffodil-design-button-examples.mjs.map +1 -1
  64. package/fesm2022/daffodil-design-button.mjs +46 -53
  65. package/fesm2022/daffodil-design-button.mjs.map +1 -1
  66. package/fesm2022/daffodil-design-callout-examples.mjs +13 -13
  67. package/fesm2022/daffodil-design-callout-examples.mjs.map +1 -1
  68. package/fesm2022/daffodil-design-callout.mjs +23 -23
  69. package/fesm2022/daffodil-design-callout.mjs.map +1 -1
  70. package/fesm2022/daffodil-design-card-examples.mjs +19 -19
  71. package/fesm2022/daffodil-design-card-examples.mjs.map +1 -1
  72. package/fesm2022/daffodil-design-card.mjs +44 -35
  73. package/fesm2022/daffodil-design-card.mjs.map +1 -1
  74. package/fesm2022/daffodil-design-checkbox-examples.mjs +13 -7
  75. package/fesm2022/daffodil-design-checkbox-examples.mjs.map +1 -1
  76. package/fesm2022/daffodil-design-container-examples.mjs +4 -4
  77. package/fesm2022/daffodil-design-container-examples.mjs.map +1 -1
  78. package/fesm2022/daffodil-design-container.mjs +8 -8
  79. package/fesm2022/daffodil-design-container.mjs.map +1 -1
  80. package/fesm2022/daffodil-design-hero-examples.mjs +13 -13
  81. package/fesm2022/daffodil-design-hero-examples.mjs.map +1 -1
  82. package/fesm2022/daffodil-design-hero.mjs +23 -23
  83. package/fesm2022/daffodil-design-hero.mjs.map +1 -1
  84. package/fesm2022/daffodil-design-image-examples.mjs +10 -10
  85. package/fesm2022/daffodil-design-image-examples.mjs.map +1 -1
  86. package/fesm2022/daffodil-design-image.mjs +9 -9
  87. package/fesm2022/daffodil-design-image.mjs.map +1 -1
  88. package/fesm2022/daffodil-design-input-examples.mjs +72 -28
  89. package/fesm2022/daffodil-design-input-examples.mjs.map +1 -1
  90. package/fesm2022/daffodil-design-input.mjs +96 -0
  91. package/fesm2022/daffodil-design-input.mjs.map +1 -0
  92. package/fesm2022/daffodil-design-link-set.mjs +17 -17
  93. package/fesm2022/daffodil-design-link-set.mjs.map +1 -1
  94. package/fesm2022/daffodil-design-list-examples.mjs +13 -13
  95. package/fesm2022/daffodil-design-list-examples.mjs.map +1 -1
  96. package/fesm2022/daffodil-design-list.mjs +12 -12
  97. package/fesm2022/daffodil-design-list.mjs.map +1 -1
  98. package/fesm2022/daffodil-design-loading-icon-examples.mjs +4 -4
  99. package/fesm2022/daffodil-design-loading-icon-examples.mjs.map +1 -1
  100. package/fesm2022/daffodil-design-loading-icon.mjs +8 -8
  101. package/fesm2022/daffodil-design-loading-icon.mjs.map +1 -1
  102. package/fesm2022/daffodil-design-media-gallery-examples.mjs +16 -16
  103. package/fesm2022/daffodil-design-media-gallery-examples.mjs.map +1 -1
  104. package/fesm2022/daffodil-design-media-gallery.mjs +14 -21
  105. package/fesm2022/daffodil-design-media-gallery.mjs.map +1 -1
  106. package/fesm2022/daffodil-design-menu-examples.mjs +7 -7
  107. package/fesm2022/daffodil-design-menu-examples.mjs.map +1 -1
  108. package/fesm2022/daffodil-design-menu.mjs +39 -26
  109. package/fesm2022/daffodil-design-menu.mjs.map +1 -1
  110. package/fesm2022/daffodil-design-modal-examples.mjs +7 -7
  111. package/fesm2022/daffodil-design-modal-examples.mjs.map +1 -1
  112. package/fesm2022/daffodil-design-modal.mjs +61 -28
  113. package/fesm2022/daffodil-design-modal.mjs.map +1 -1
  114. package/fesm2022/daffodil-design-navbar-examples.mjs +13 -13
  115. package/fesm2022/daffodil-design-navbar-examples.mjs.map +1 -1
  116. package/fesm2022/daffodil-design-navbar.mjs +9 -9
  117. package/fesm2022/daffodil-design-navbar.mjs.map +1 -1
  118. package/fesm2022/daffodil-design-notification-examples.mjs +17 -22
  119. package/fesm2022/daffodil-design-notification-examples.mjs.map +1 -1
  120. package/fesm2022/daffodil-design-notification.mjs +51 -24
  121. package/fesm2022/daffodil-design-notification.mjs.map +1 -1
  122. package/fesm2022/daffodil-design-paginator-examples.mjs +7 -7
  123. package/fesm2022/daffodil-design-paginator-examples.mjs.map +1 -1
  124. package/fesm2022/daffodil-design-paginator.mjs +9 -9
  125. package/fesm2022/daffodil-design-paginator.mjs.map +1 -1
  126. package/fesm2022/daffodil-design-progress-bar-examples.mjs +10 -10
  127. package/fesm2022/daffodil-design-progress-bar-examples.mjs.map +1 -1
  128. package/fesm2022/daffodil-design-progress-bar.mjs +30 -12
  129. package/fesm2022/daffodil-design-progress-bar.mjs.map +1 -1
  130. package/fesm2022/daffodil-design-quantity-field-examples.mjs +23 -22
  131. package/fesm2022/daffodil-design-quantity-field-examples.mjs.map +1 -1
  132. package/fesm2022/daffodil-design-quantity-field.mjs +355 -0
  133. package/fesm2022/daffodil-design-quantity-field.mjs.map +1 -0
  134. package/fesm2022/daffodil-design-radio-examples.mjs +4 -4
  135. package/fesm2022/daffodil-design-radio-examples.mjs.map +1 -1
  136. package/fesm2022/daffodil-design-sidebar-examples.mjs +13 -13
  137. package/fesm2022/daffodil-design-sidebar-examples.mjs.map +1 -1
  138. package/fesm2022/daffodil-design-sidebar.mjs +27 -27
  139. package/fesm2022/daffodil-design-sidebar.mjs.map +1 -1
  140. package/fesm2022/daffodil-design-switch-examples.mjs +17 -17
  141. package/fesm2022/daffodil-design-switch-examples.mjs.map +1 -1
  142. package/fesm2022/daffodil-design-switch.mjs +6 -7
  143. package/fesm2022/daffodil-design-switch.mjs.map +1 -1
  144. package/fesm2022/daffodil-design-tabs-examples.mjs +16 -16
  145. package/fesm2022/daffodil-design-tabs-examples.mjs.map +1 -1
  146. package/fesm2022/daffodil-design-tabs.mjs +38 -19
  147. package/fesm2022/daffodil-design-tabs.mjs.map +1 -1
  148. package/fesm2022/daffodil-design-text-snippet-examples.mjs +4 -4
  149. package/fesm2022/daffodil-design-text-snippet-examples.mjs.map +1 -1
  150. package/fesm2022/daffodil-design-text-snippet.mjs +4 -4
  151. package/fesm2022/daffodil-design-text-snippet.mjs.map +1 -1
  152. package/fesm2022/daffodil-design-toast-examples.mjs +22 -16
  153. package/fesm2022/daffodil-design-toast-examples.mjs.map +1 -1
  154. package/fesm2022/daffodil-design-toast.mjs +24 -26
  155. package/fesm2022/daffodil-design-toast.mjs.map +1 -1
  156. package/fesm2022/daffodil-design-tree-examples.mjs +7 -7
  157. package/fesm2022/daffodil-design-tree-examples.mjs.map +1 -1
  158. package/fesm2022/daffodil-design-tree.mjs +30 -16
  159. package/fesm2022/daffodil-design-tree.mjs.map +1 -1
  160. package/fesm2022/daffodil-design-youtube-player.mjs +10 -7
  161. package/fesm2022/daffodil-design-youtube-player.mjs.map +1 -1
  162. package/fesm2022/daffodil-design.mjs +531 -818
  163. package/fesm2022/daffodil-design.mjs.map +1 -1
  164. package/hero/src/hero-theme.scss +37 -22
  165. package/input/README.md +66 -0
  166. package/input/examples/examples.d.ts +2 -2
  167. package/input/examples/input-disabled/input-disabled.component.d.ts +2 -0
  168. package/input/examples/input-hint/input-hint.component.d.ts +5 -0
  169. package/input/examples/input-hint-and-error/input-hint-and-error.component.d.ts +9 -0
  170. package/input/examples/input-with-form-field/input-with-form-field.component.d.ts +2 -0
  171. package/input/index.d.ts +1 -0
  172. package/{atoms/form/input → input}/input.component.d.ts +16 -20
  173. package/input/input.module.d.ts +10 -0
  174. package/list/list/list.component.d.ts +1 -1
  175. package/list/src/list-theme.scss +20 -26
  176. package/loading-icon/src/loading-icon-theme.scss +20 -22
  177. package/media-gallery/media-gallery/media-gallery.component.d.ts +0 -4
  178. package/media-gallery/src/media-gallery-theme.scss +10 -12
  179. package/menu/helpers/create-overlay.d.ts +1 -1
  180. package/menu/menu/menu.component.d.ts +15 -0
  181. package/menu/menu-activator/menu-activator.component.d.ts +3 -0
  182. package/menu/src/menu-theme.scss +34 -16
  183. package/modal/modal/modal.component.d.ts +21 -0
  184. package/modal/modal-actions/modal-actions.component.d.ts +3 -0
  185. package/modal/modal-close/modal-close.directive.d.ts +3 -0
  186. package/modal/modal-content/modal-content.component.d.ts +3 -0
  187. package/modal/modal-title/modal-title.directive.d.ts +3 -0
  188. package/modal/src/modal-theme.scss +2 -2
  189. package/navbar/src/navbar-theme.scss +21 -18
  190. package/notification/README.md +11 -12
  191. package/notification/notification/notification.component.d.ts +17 -2
  192. package/notification/notification-actions/notification-actions.directive.d.ts +3 -0
  193. package/notification/notification-message/notification-message.directive.d.ts +3 -0
  194. package/notification/notification-subtitle/notification-subtitle.directive.d.ts +3 -0
  195. package/notification/notification-title/notification-title.directive.d.ts +3 -0
  196. package/notification/notification.d.ts +2 -2
  197. package/notification/src/notification-theme.scss +44 -46
  198. package/package.json +1 -1
  199. package/paginator/src/paginator-theme.scss +26 -23
  200. package/progress-bar/progress-bar-label/progress-bar-label.directive.d.ts +3 -0
  201. package/progress-bar/progress-bar.component.d.ts +15 -0
  202. package/progress-bar/src/progress-bar-theme.scss +18 -20
  203. package/public_api.d.ts +1 -2
  204. package/quantity-field/README.md +63 -0
  205. package/quantity-field/index.d.ts +1 -0
  206. package/quantity-field/public_api.d.ts +2 -0
  207. package/{atoms/form/quantity-field → quantity-field}/quantity-field.component.d.ts +5 -4
  208. package/quantity-field/quantity-field.module.d.ts +11 -0
  209. package/{atoms/form/quantity-field → quantity-field}/quantity-input/quantity-input.component.d.ts +5 -2
  210. package/{atoms/form/quantity-field → quantity-field}/quantity-select/quantity-select.component.d.ts +2 -2
  211. package/scss/state/skeleton/_mixins.scss +22 -13
  212. package/scss/theme.scss +2 -2
  213. package/scss/theming/_configure-theme.scss +16 -16
  214. package/scss/theming/_get-base-color.scss +19 -0
  215. package/scss/theming/_get-palette.scss +27 -0
  216. package/scss/theming/_get-theme-mode.scss +9 -0
  217. package/scss/theming/_index.scss +3 -0
  218. package/scss/theming/_light-dark.scss +4 -4
  219. package/scss/theming/_theme-css-variables.scss +20 -20
  220. package/sidebar/src/sidebar-theme.scss +4 -5
  221. package/src/atoms/form/error-message/error-message-theme.scss +4 -2
  222. package/src/atoms/form/form-field/form-field/form-field-theme.scss +47 -24
  223. package/src/atoms/form/hint/hint-theme.scss +22 -0
  224. package/src/atoms/form/native-select/native-select-theme.scss +5 -7
  225. package/switch/src/switch-theme.scss +13 -15
  226. package/switch/switch.d.ts +2 -2
  227. package/tabs/src/tabs-theme.scss +13 -15
  228. package/tabs/tabs/tab-activator/tab-activator.component.d.ts +15 -0
  229. package/tabs/tabs/tab-label/tab-label.component.d.ts +2 -5
  230. package/tabs/tabs/tabs.component.d.ts +3 -0
  231. package/toast/examples/default-toast/default-toast.component.d.ts +3 -0
  232. package/toast/examples/toast-positions/toast-positions.component.d.ts +3 -0
  233. package/toast/src/toast-theme.scss +36 -38
  234. package/toast/toast/toast.component.d.ts +3 -5
  235. package/tree/interfaces/tree-data.d.ts +15 -0
  236. package/tree/interfaces/tree-render-mode.d.ts +2 -2
  237. package/tree/src/tree-theme.scss +20 -22
  238. package/tree/tree/tree-notifier.service.d.ts +3 -3
  239. package/tree/tree/tree.component.d.ts +13 -3
  240. package/tree/tree-item/tree-item.directive.d.ts +6 -0
  241. package/youtube-player/youtube-player.component.d.ts +3 -0
  242. package/atoms/form/input/input.module.d.ts +0 -8
  243. package/atoms/form/quantity-field/public_api.d.ts +0 -4
  244. package/atoms/form/quantity-field/quantity-field.module.d.ts +0 -13
  245. package/core/prefix-suffix/prefixable/prefixable-interface.d.ts +0 -7
  246. package/core/prefix-suffix/prefixable/prefixable.d.ts +0 -11
  247. package/core/prefix-suffix/suffixable/suffixable-interface.d.ts +0 -7
  248. package/core/prefix-suffix/suffixable/suffixable.d.ts +0 -11
  249. package/input/examples/basic-input/basic-input.component.d.ts +0 -5
  250. package/src/atoms/form/input/input-theme.scss +0 -16
  251. /package/{atoms/form/input → input}/public_api.d.ts +0 -0
@@ -0,0 +1,63 @@
1
+ # Quantity Field
2
+ Quantity field is a form control element that switches between a native select and input element.
3
+
4
+ ## Overview
5
+ Quantity field is intended for use with cart items and product quantities. The maximum number accepted in a quantity select is configurable and set to 10 by default. It will switch to a quantity input if 10+ is selected.
6
+
7
+ <design-land-example-viewer-container example="basic-quantity-field"></design-land-example-viewer-container>
8
+
9
+ ## Usage
10
+
11
+ ### Within a standalone component
12
+ To use form field in a standalone component, import `DaffQuantityFieldComponent` directly into your custom component:
13
+
14
+ ```ts
15
+ import { DaffQuantityFieldComponent } from '@daffodil/design/quantity-field';
16
+
17
+ @Component({
18
+ selector: 'custom-component',
19
+ templateUrl: './custom-component.component.html',
20
+ imports: [
21
+ DaffQuantityFieldComponent,
22
+ ],
23
+ })
24
+ export class CustomComponent {}
25
+ ```
26
+
27
+ ### Within a module (deprecated)
28
+ To use form field in a module, import `DaffQuantityFieldModule` into your custom module:
29
+
30
+ ```ts
31
+ import { NgModule } from '@angular/core';
32
+ import { DaffQuantityFieldModule } from '@daffodil/design/quantity-field';
33
+ import { CustomComponent } from './custom.component';
34
+
35
+ @NgModule({
36
+ declarations: [
37
+ CustomComponent,
38
+ ],
39
+ exports: [
40
+ CustomComponent,
41
+ ],
42
+ imports: [
43
+ DaffQuantityFieldModule,
44
+ ],
45
+ })
46
+ export class CustomComponentModule { }
47
+ ```
48
+
49
+ > This method is deprecated. It's recommended to update all custom components to standalone.
50
+
51
+ ## Range Limits
52
+ The default allowed range of numbers is 1 to 500. This can be changed by passing in the desired min and max values as inputs. Note that this does not validate the actual input. It merely informs the select which options it should generate and sets the input's min and max attributes. See [input#min](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/number#min) and [input#max](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/number#max) for more information.
53
+
54
+ ## Disabled quantity field
55
+ <design-land-example-viewer-container example="disabled-quantity-field"></design-land-example-viewer-container>
56
+
57
+ ## Custom Select Max Value (15)
58
+ The maximum value at which the field will switch to using an input is configurable.
59
+ <design-land-example-viewer-container example="select-max-quantity-field"></design-land-example-viewer-container>
60
+
61
+ ## Custom Range Limits (5 - 50)
62
+ Custom range limits is the absolute minimum and maximum values can be specified.
63
+ <design-land-example-viewer-container example="custom-range-quantity-field"></design-land-example-viewer-container>
@@ -0,0 +1 @@
1
+ export * from './public_api';
@@ -0,0 +1,2 @@
1
+ export { DaffQuantityFieldModule } from './quantity-field.module';
2
+ export { DaffQuantityFieldComponent } from './quantity-field.component';
@@ -1,10 +1,10 @@
1
1
  import { ChangeDetectorRef } from '@angular/core';
2
2
  import { ControlValueAccessor, NgControl } from '@angular/forms';
3
+ import { DaffFormFieldControl } from '@daffodil/design';
3
4
  import { DaffQuantityInputComponent } from './quantity-input/quantity-input.component';
4
5
  import { DaffQuantitySelectComponent } from './quantity-select/quantity-select.component';
5
- import { DaffFormFieldControl } from '../form-field/form-field-control';
6
6
  import * as i0 from "@angular/core";
7
- export declare class DaffQuantityFieldComponent implements ControlValueAccessor, DaffFormFieldControl {
7
+ export declare class DaffQuantityFieldComponent extends DaffFormFieldControl<number> implements ControlValueAccessor, DaffFormFieldControl<number> {
8
8
  ngControl: NgControl;
9
9
  private cd;
10
10
  input: DaffQuantityInputComponent;
@@ -38,7 +38,7 @@ export declare class DaffQuantityFieldComponent implements ControlValueAccessor,
38
38
  * Returns the lesser of max and selectMax.
39
39
  */
40
40
  get _maxFloor(): number;
41
- get controlType(): "native-select" | "native-input";
41
+ get controlType(): "native-input" | "native-select";
42
42
  get showInputField(): boolean;
43
43
  get showSelectField(): boolean;
44
44
  constructor(ngControl: NgControl, cd: ChangeDetectorRef);
@@ -49,6 +49,7 @@ export declare class DaffQuantityFieldComponent implements ControlValueAccessor,
49
49
  registerOnTouched(fn: any): void;
50
50
  setDisabledState(isDisabled: boolean): void;
51
51
  focus(): void;
52
+ get value(): any;
52
53
  static ɵfac: i0.ɵɵFactoryDeclaration<DaffQuantityFieldComponent, [{ optional: true; self: true; }, null]>;
53
- static ɵcmp: i0.ɵɵComponentDeclaration<DaffQuantityFieldComponent, "daff-quantity-field", never, { "min": { "alias": "min"; "required": false; }; "max": { "alias": "max"; "required": false; }; "selectMax": { "alias": "selectMax"; "required": false; }; "id": { "alias": "id"; "required": false; }; }, {}, never, never, false, never>;
54
+ static ɵcmp: i0.ɵɵComponentDeclaration<DaffQuantityFieldComponent, "daff-quantity-field", never, { "min": { "alias": "min"; "required": false; }; "max": { "alias": "max"; "required": false; }; "selectMax": { "alias": "selectMax"; "required": false; }; "id": { "alias": "id"; "required": false; }; }, {}, never, never, true, never>;
54
55
  }
@@ -0,0 +1,11 @@
1
+ import * as i0 from "@angular/core";
2
+ import * as i1 from "@angular/common";
3
+ import * as i2 from "./quantity-field.component";
4
+ /**
5
+ * @deprecated in favor of standalone components. Deprecated in version 0.84.0. Will be removed in version 1.0.0.
6
+ */
7
+ export declare class DaffQuantityFieldModule {
8
+ static ɵfac: i0.ɵɵFactoryDeclaration<DaffQuantityFieldModule, never>;
9
+ static ɵmod: i0.ɵɵNgModuleDeclaration<DaffQuantityFieldModule, never, [typeof i1.CommonModule, typeof i2.DaffQuantityFieldComponent], [typeof i2.DaffQuantityFieldComponent]>;
10
+ static ɵinj: i0.ɵɵInjectorDeclaration<DaffQuantityFieldModule>;
11
+ }
@@ -1,7 +1,7 @@
1
1
  import { ChangeDetectorRef, OnInit, OnDestroy } from '@angular/core';
2
2
  import { UntypedFormControl, NgControl } from '@angular/forms';
3
3
  import { Subject } from 'rxjs';
4
- import { DaffInputComponent } from '../../input/public_api';
4
+ import { DaffInputComponent } from '@daffodil/design/input';
5
5
  import * as i0 from "@angular/core";
6
6
  export declare class DaffQuantityInputComponent implements OnInit, OnDestroy {
7
7
  ngControl: NgControl;
@@ -30,6 +30,9 @@ export declare class DaffQuantityInputComponent implements OnInit, OnDestroy {
30
30
  set value(value: any);
31
31
  get disabled(): boolean;
32
32
  constructor(ngControl: NgControl, changeDetectorRef: ChangeDetectorRef);
33
+ /**
34
+ * @docs-private
35
+ */
33
36
  ngOnInit(): void;
34
37
  ngOnDestroy(): void;
35
38
  focus(): void;
@@ -42,5 +45,5 @@ export declare class DaffQuantityInputComponent implements OnInit, OnDestroy {
42
45
  onValueChange(e: any): void;
43
46
  private setInputDisabled;
44
47
  static ɵfac: i0.ɵɵFactoryDeclaration<DaffQuantityInputComponent, never>;
45
- static ɵcmp: i0.ɵɵComponentDeclaration<DaffQuantityInputComponent, "daff-quantity-input", never, { "min": { "alias": "min"; "required": false; }; "max": { "alias": "max"; "required": false; }; }, {}, never, never, false, never>;
48
+ static ɵcmp: i0.ɵɵComponentDeclaration<DaffQuantityInputComponent, "daff-quantity-input", never, { "min": { "alias": "min"; "required": false; }; "max": { "alias": "max"; "required": false; }; }, {}, never, never, true, never>;
46
49
  }
@@ -1,6 +1,6 @@
1
1
  import { ChangeDetectorRef } from '@angular/core';
2
2
  import { NgControl } from '@angular/forms';
3
- import { DaffNativeSelectComponent } from '../../native-select/public_api';
3
+ import { DaffNativeSelectComponent } from '@daffodil/design';
4
4
  import * as i0 from "@angular/core";
5
5
  /**
6
6
  * Create an array of numbers from min to max, not including max.
@@ -47,5 +47,5 @@ export declare class DaffQuantitySelectComponent {
47
47
  */
48
48
  get valueArray(): number[];
49
49
  static ɵfac: i0.ɵɵFactoryDeclaration<DaffQuantitySelectComponent, never>;
50
- static ɵcmp: i0.ɵɵComponentDeclaration<DaffQuantitySelectComponent, "daff-quantity-select", never, { "min": { "alias": "min"; "required": false; }; "max": { "alias": "max"; "required": false; }; "extendable": { "alias": "extendable"; "required": false; }; }, {}, never, never, false, never>;
50
+ static ɵcmp: i0.ɵɵComponentDeclaration<DaffQuantitySelectComponent, "daff-quantity-select", never, { "min": { "alias": "min"; "required": false; }; "max": { "alias": "max"; "required": false; }; "extendable": { "alias": "extendable"; "required": false; }; }, {}, never, never, true, never>;
51
51
  }
@@ -1,22 +1,22 @@
1
- @use '../../core';
2
- @use '../../theming';
1
+ @use '../../theming' as *;
3
2
 
4
3
  @mixin daff-skeleton-theme($theme) {
5
- $neutral: core.daff-map-get($theme, 'core', 'neutral');
6
- $base: core.daff-map-get($theme, 'core', 'base');
4
+ $neutral: daff-get-palette($theme, neutral);
5
+ $base: daff-get-base-color($theme, base);
6
+ $mode: daff-get-theme-mode($theme);
7
7
 
8
8
  .daff-skeleton {
9
- &::before,
10
- ::before {
11
- background: theming.daff-illuminate($base, $neutral, 2);
9
+ @include light($mode) {
10
+ &::before,
11
+ ::before {
12
+ background: daff-color($neutral, 20);
13
+ }
12
14
  }
13
15
 
14
- @keyframes loading {
15
- from {
16
- opacity: 0.5;
17
- }
18
- to {
19
- opacity: 1;
16
+ @include dark($mode) {
17
+ &::before,
18
+ ::before {
19
+ background: daff-color($neutral, 90);
20
20
  }
21
21
  }
22
22
  }
@@ -39,4 +39,13 @@
39
39
  top: 0;
40
40
  left: 0;
41
41
  }
42
+
43
+ @keyframes loading {
44
+ from {
45
+ opacity: 0.5;
46
+ }
47
+ to {
48
+ opacity: 1;
49
+ }
50
+ }
42
51
  }
package/scss/theme.scss CHANGED
@@ -27,8 +27,8 @@
27
27
  @use '../button/src/button/underline/underline-theme' as underline-button;
28
28
  @use '../article/src/article-theme' as article;
29
29
  @use '../src/atoms/form/error-message/error-message-theme' as error-message;
30
+ @use '../src/atoms/form/hint/hint-theme' as hint;
30
31
  @use '../src/atoms/form/form-field/form-field/form-field-theme' as form-field;
31
- @use '../src/atoms/form/input/input-theme' as input;
32
32
  @use '../src/atoms/form/native-select/native-select-theme' as native-select;
33
33
  @use '../loading-icon/src/loading-icon-theme' as loading-icon;
34
34
  @use '../accordion/src/accordion-theme' as accordion;
@@ -86,7 +86,7 @@
86
86
 
87
87
  @include form-field.daff-form-field-theme($theme);
88
88
  @include error-message.daff-error-message-theme($theme);
89
- @include input.daff-input-theme($theme);
89
+ @include hint.daff-hint-theme($theme);
90
90
  @include native-select.daff-native-select-theme($theme);
91
91
 
92
92
  @include hero.daff-hero-theme($theme);
@@ -4,7 +4,7 @@
4
4
  @use 'get-color';
5
5
 
6
6
  $daff-light-theme: (
7
- 'type': 'light',
7
+ 'mode': 'light',
8
8
  'font-color': get-color.daff-color(palette.$daff-neutral, 110),
9
9
  'base': get-color.daff-color(palette.$daff-neutral, 0),
10
10
  'base-contrast': get-color.daff-color(palette.$daff-neutral, 110),
@@ -14,7 +14,7 @@ $daff-light-theme: (
14
14
  );
15
15
 
16
16
  $daff-dark-theme: (
17
- 'type': 'dark',
17
+ 'mode': 'dark',
18
18
  'font-color': get-color.daff-color(palette.$daff-neutral, 0),
19
19
  'base': get-color.daff-color(palette.$daff-neutral, 100),
20
20
  'base-contrast': get-color.daff-color(palette.$daff-neutral, 0),
@@ -23,7 +23,7 @@ $daff-dark-theme: (
23
23
  'neutral': configure-palette.daff-configure-palette(palette.$daff-neutral, 50),
24
24
  );
25
25
 
26
- $supported-theme-types: (
26
+ $supported-theme-modes: (
27
27
  'light': $daff-light-theme,
28
28
  'dark': $daff-dark-theme
29
29
  );
@@ -36,31 +36,31 @@ $supported-theme-types: (
36
36
  // that can be overriden by using the `daff-configure-theme-status` function.
37
37
  //
38
38
  // @usage
39
- // ```
39
+ // ```scss
40
40
  // $primary: configure-palette.daff-configure-palette(palette.$daff-blue, 60);
41
41
  // $secondary: configure-palette.daff-configure-palette(palette.$daff-purple, 60);
42
42
  // $tertiary: configure-palette.daff-configure-palette(palette.$daff-turquoise, 60);
43
43
  //
44
- // $theme: daff-configure-theme($primary, $secondary, $tertiary)
44
+ // $theme: daff-configure-theme($primary, $secondary, $tertiary, 'light');
45
45
  // ```
46
46
  @function daff-configure-theme(
47
47
  $primary,
48
48
  $secondary,
49
49
  $tertiary,
50
- $type: 'light'
50
+ $mode: 'light'
51
51
  ) {
52
52
  $info: null;
53
53
  $warn: null;
54
54
  $critical: null;
55
55
  $success: null;
56
56
 
57
- @if($type == 'dark') {
57
+ @if($mode == 'dark') {
58
58
  $info: configure-palette.daff-configure-palette(palette.$daff-neutral, 50);
59
59
  $warn: configure-palette.daff-configure-palette(palette.$daff-bronze, 50);
60
60
  $critical: configure-palette.daff-configure-palette(palette.$daff-red, 50);
61
61
  $success: configure-palette.daff-configure-palette(palette.$daff-green, 50);
62
62
  }
63
- @if($type == 'light') {
63
+ @if($mode == 'light') {
64
64
  $info: configure-palette.daff-configure-palette(palette.$daff-neutral, 60);
65
65
  $warn: configure-palette.daff-configure-palette(palette.$daff-bronze, 60);
66
66
  $critical: configure-palette.daff-configure-palette(palette.$daff-red, 60);
@@ -75,7 +75,7 @@ $supported-theme-types: (
75
75
  'warn': $warn,
76
76
  'critical': $critical,
77
77
  'success': $success,
78
- 'core': daff-build-theme-core($type)
78
+ 'core': daff-build-theme-core($mode)
79
79
  );
80
80
  }
81
81
 
@@ -111,18 +111,18 @@ $supported-theme-types: (
111
111
  //
112
112
  // @docs
113
113
  //
114
- // Create a core theme given a theme type
115
- // $type | ThemeType : "light" | "dark"
114
+ // Retrieves the core theme given a theme mode
115
+ // $mode: "light" | "dark"
116
116
  //
117
117
  // ```
118
118
  // @usage
119
119
  // daff-build-theme-core("light")
120
120
  // ```
121
- @function daff-build-theme-core($type: 'light') {
122
- $error-msg: 'is not a valid theme type - valid types:';
123
- @if (not map.has-key($supported-theme-types, $type)) {
124
- @error '`#{$type}` `#{$error-msg}` `#{map-keys($supported-theme-types)}`';
121
+ @function daff-build-theme-core($mode: 'light') {
122
+ $error-msg: 'is not a valid theme mode - valid modes:';
123
+ @if (not map.has-key($supported-theme-modes, $mode)) {
124
+ @error '`#{$mode}` `#{$error-msg}` `#{map-keys($supported-theme-modes)}`';
125
125
  }
126
126
 
127
- @return map.get($supported-theme-types, $type);
127
+ @return map.get($supported-theme-modes, $mode);
128
128
  }
@@ -0,0 +1,19 @@
1
+ @use '../core/map/map-get/map-get';
2
+
3
+ // Retrieves a base color from Daffodil's theme configurations.
4
+ // $color must be one of these values: `white`, `black`, `base`, and `base-contrast`.
5
+ // ```scss
6
+ // $base: daff-get-base-color($theme, base);
7
+ // ```
8
+ @function daff-get-base-color($theme, $color) {
9
+ @if (
10
+ $color != 'white' and
11
+ $color != 'black' and
12
+ $color != base and
13
+ $color != base-contrast
14
+ ) {
15
+ @error '' + $color + ' is not supported as part of Daffodil`s core colors.';
16
+ }
17
+
18
+ @return map-get.daff-map-get($theme, 'core', $color);
19
+ }
@@ -0,0 +1,27 @@
1
+ @use '../core/map/map-get/map-get';
2
+
3
+ // Retrieves a specific color palette from Daffodil's theme configurations.
4
+ // $palette must be one of these values:
5
+ // `primary`, `secondary`, `tertiary`, `informational`, `warn`, `critical`, `success`, and `neutral`.
6
+ //
7
+ // ```scss
8
+ // $primary: daff-get-palette($theme, primary);
9
+ // ```
10
+ @function daff-get-palette($theme, $palette) {
11
+ @if (
12
+ $palette != primary and
13
+ $palette != secondary and
14
+ $palette != tertiary and
15
+ $palette != informational and
16
+ $palette != warn and
17
+ $palette != critical and
18
+ $palette != success and
19
+ $palette != neutral
20
+ ) {
21
+ @error '' + $palette + ' is not a supported palette in Daffodil`s theme configurations.';
22
+ }
23
+ @if ($palette == 'neutral') {
24
+ @return map-get.daff-map-get($theme, 'core', $palette);
25
+ }
26
+ @return map-get.daff-map-get($theme, $palette);
27
+ }
@@ -0,0 +1,9 @@
1
+ @use '../core/map/map-get/map-get';
2
+
3
+ // Retrieves the mode from Daffodil's theme configurations.
4
+ // ```scss
5
+ // $mode: daff-get-theme-mode($theme);
6
+ // ```
7
+ @function daff-get-theme-mode($theme) {
8
+ @return map-get.daff-map-get($theme, 'core', 'mode');
9
+ }
@@ -6,3 +6,6 @@
6
6
  @forward 'configure-theme';
7
7
  @forward 'light-dark';
8
8
  @forward 'daff-theme';
9
+ @forward 'get-palette';
10
+ @forward 'get-base-color';
11
+ @forward 'get-theme-mode';
@@ -5,9 +5,9 @@
5
5
  // ```scss
6
6
  // @use 'theme' as daff-theme;
7
7
  //
8
- // $type: daff-theme.daff-map-get($theme, 'core', 'type');
8
+ // $mode: daff-theme.daff-get-theme-mode($theme);
9
9
  //
10
- // @include daff-theme.light($type) {
10
+ // @include daff-theme.light($mode) {
11
11
  // color: blue;
12
12
  //
13
13
  // .class {
@@ -28,9 +28,9 @@
28
28
  // ```scss
29
29
  // @use 'theme' as daff-theme;
30
30
  //
31
- // $type: daff-theme.daff-map-get($theme, 'core', 'type');
31
+ // $mode: daff-theme.daff-get-theme-mode($theme);
32
32
  //
33
- // @include daff-theme.dark($type) {
33
+ // @include daff-theme.dark($mode) {
34
34
  // color: blue;
35
35
  //
36
36
  // .class {
@@ -1,40 +1,40 @@
1
1
  @use 'sass:map';
2
2
  @use 'sass:color';
3
3
  @use '../core';
4
- @use '../theming';
4
+ @use '../theming' as *;
5
5
 
6
6
  // @docs
7
7
  //
8
8
  // Global theme tokens
9
9
  @mixin daff-root-theme-tokens($theme) {
10
- $base: core.daff-map-get($theme, 'core', 'base');
11
- $base-contrast: core.daff-map-get($theme, 'core', 'base-contrast');
12
- $primary: core.daff-map-get($theme, primary);
13
- $secondary: core.daff-map-get($theme, secondary);
14
- $tertiary: core.daff-map-get($theme, tertiary);
15
- $warn: core.daff-map-get($theme, warn);
16
- $success: core.daff-map-get($theme, success);
17
- $critical: core.daff-map-get($theme, critical);
18
- $neutral: core.daff-map-get($theme, 'core', 'neutral');
19
- $white: core.daff-map-get($theme, 'core', 'white');
20
- $black: core.daff-map-get($theme, 'core', 'black');
10
+ $base: daff-get-base-color($theme, base);
11
+ $base-contrast: daff-get-base-color($theme, base-contrast);
12
+ $primary: daff-get-palette($theme, primary);
13
+ $secondary: daff-get-palette($theme, secondary);
14
+ $tertiary: daff-get-palette($theme, tertiary);
15
+ $warn: daff-get-palette($theme, warn);
16
+ $success: daff-get-palette($theme, success);
17
+ $critical: daff-get-palette($theme, critical);
18
+ $neutral: daff-get-palette($theme, neutral);
19
+ $white: daff-get-base-color($theme, 'white');
20
+ $black: daff-get-base-color($theme, 'black');
21
21
 
22
22
  --daff-theme-rgb: #{color.red($base), color.green($base), color.blue($base)};
23
23
  --daff-theme-contrast-rgb: #{color.red($base-contrast), color.green($base-contrast),
24
24
  color.blue($base-contrast)};
25
25
  --daff-theme: #{$base};
26
26
  --daff-theme-contrast: #{$base-contrast};
27
- --daff-theme-primary: #{theming.daff-color($primary)};
28
- --daff-theme-secondary: #{theming.daff-color($secondary)};
29
- --daff-theme-tertiary: #{theming.daff-color($tertiary)};
30
- --daff-theme-warn: #{theming.daff-color($warn)};
31
- --daff-theme-success: #{theming.daff-color($success)};
32
- --daff-theme-critical: #{theming.daff-color($critical)};
27
+ --daff-theme-primary: #{daff-color($primary)};
28
+ --daff-theme-secondary: #{daff-color($secondary)};
29
+ --daff-theme-tertiary: #{daff-color($tertiary)};
30
+ --daff-theme-warn: #{daff-color($warn)};
31
+ --daff-theme-success: #{daff-color($success)};
32
+ --daff-theme-critical: #{daff-color($critical)};
33
33
  --daff-theme-white: #{$white};
34
34
  --daff-theme-black: #{$black};
35
- --daff-theme-gray: #{theming.daff-color($neutral)};
35
+ --daff-theme-gray: #{daff-color($neutral)};
36
36
  --daff-base-bg: #{$base};
37
- --daff-base-text: #{theming.daff-text-contrast($base)};
37
+ --daff-base-text: #{daff-text-contrast($base)};
38
38
  }
39
39
 
40
40
  @mixin daff-theme-css-variables($theme) {
@@ -1,13 +1,12 @@
1
- @use '../../scss/core';
1
+ @use '../../scss/theming' as *;
2
2
 
3
3
  @mixin daff-sidebar-theme($theme) {
4
- $base: core.daff-map-get($theme, 'core', 'base');
5
- $base-contrast: core.daff-map-get($theme, 'core', 'base-contrast');
6
- $font-color: core.daff-map-get($theme, 'core', 'font-color');
4
+ $base: daff-get-base-color($theme, base);
5
+ $base-contrast: daff-get-base-color($theme, base-contrast);
7
6
 
8
7
  .daff-sidebar {
9
8
  background: $base;
10
- color: $font-color;
9
+ color: $base-contrast;
11
10
  }
12
11
 
13
12
  .daff-sidebar-viewport {
@@ -1,7 +1,9 @@
1
- @use '../../../../scss/theming';
1
+ @use '../../../../scss/theming' as *;
2
2
 
3
3
  @mixin daff-error-message-theme($theme) {
4
+ $critical: daff-get-palette($theme, critical);
5
+
4
6
  .daff-error-message {
5
- color: theming.daff-color(theming.$daff-red, 60);
7
+ color: daff-color($critical);
6
8
  }
7
9
  }
@@ -1,37 +1,60 @@
1
- @use 'sass:map';
2
- @use '../../../../../scss/core';
3
- @use '../../../../../scss/theming';
1
+ @use '../../../../../scss/theming' as *;
4
2
 
5
3
  @mixin daff-form-field-theme($theme) {
6
- $primary: core.daff-map-get($theme, primary);
7
- $secondary: core.daff-map-get($theme, secondary);
8
- $tertiary: core.daff-map-get($theme, tertiary);
9
- $base: core.daff-map-get($theme, 'core', 'base');
10
- $base-contrast: core.daff-map-get($theme, 'core', 'base-contrast');
11
- $neutral: core.daff-map-get($theme, 'core', 'neutral');
4
+ $primary: daff-get-palette($theme, primary);
5
+ $secondary: daff-get-palette($theme, secondary);
6
+ $tertiary: daff-get-palette($theme, tertiary);
7
+ $critical: daff-get-palette($theme, critical);
8
+ $base: daff-get-base-color($theme, base);
9
+ $base-contrast: daff-get-base-color($theme, base-contrast);
10
+ $neutral: daff-get-palette($theme, neutral);
11
+ $mode: daff-get-theme-mode($theme);
12
12
 
13
13
  .daff-form-field {
14
- &__control {
15
- background: $base;
16
- border: 1px solid theming.daff-illuminate($base, $neutral, 3);
17
- color: theming.daff-illuminate($base-contrast, $neutral, 4);
14
+ @include light($mode) {
15
+ .daff-form-field__control {
16
+ border: 1px solid daff-color($neutral);
17
+ color: daff-color($neutral);
18
+ }
19
+ }
18
20
 
19
- &:focus {
20
- border: 1px solid $base-contrast;
21
+ @include dark($mode) {
22
+ .daff-form-field__control {
23
+ border: 1px solid daff-color($neutral, 40);
24
+ color: daff-color($neutral, 40);
25
+ }
26
+ }
27
+
28
+ &.daff-focused {
29
+ .daff-form-field__control {
30
+ border: 1px solid daff-color($primary);
31
+ }
32
+ .daff-form-label {
33
+ color: daff-color($primary);
21
34
  }
35
+ }
22
36
 
23
- &.daff-error {
24
- border: 1px solid theming.daff-color(theming.$daff-red, 60);
37
+ &.daff-error {
38
+ .daff-form-field__control {
39
+ border: 1px solid daff-color($critical);
40
+ }
25
41
 
26
- &:focus {
27
- border: 1px solid theming.daff-color(theming.$daff-red, 60);
28
- }
42
+ .daff-form-label {
43
+ color: daff-color($critical);
29
44
  }
45
+ }
46
+
47
+ &.daff-valid {
48
+ color: $base-contrast;
49
+ }
50
+
51
+ &__control {
52
+ background: $base;
30
53
 
31
- &.daff-valid {
32
- > * {
33
- color: $base-contrast;
34
- }
54
+ input,
55
+ textarea,
56
+ select {
57
+ color: $base-contrast;
35
58
  }
36
59
  }
37
60
  }
@@ -0,0 +1,22 @@
1
+ @use '../../../../scss/theming' as *;
2
+
3
+ // stylelint-disable selector-class-pattern
4
+ @mixin daff-hint-theme($theme) {
5
+ $neutral: daff-get-palette($theme, neutral);
6
+ $success: daff-get-palette($theme, success);
7
+ $mode: daff-get-theme-mode($theme);
8
+
9
+ .daff-hint {
10
+ @include light($mode) {
11
+ color: daff-color($neutral, 80);
12
+ }
13
+
14
+ @include dark($mode) {
15
+ color: daff-color($neutral, 30);
16
+ }
17
+
18
+ &.validated {
19
+ color: daff-color($success);
20
+ }
21
+ }
22
+ }
@@ -1,14 +1,12 @@
1
- @use 'sass:map';
2
- @use '../../../../scss/core';
3
- @use '../../../../scss/theming';
1
+ @use '../../../../scss/theming' as *;
4
2
 
5
3
  @mixin daff-native-select-theme($theme) {
6
- $neutral: core.daff-map-get($theme, 'core', 'neutral');
7
- $base-contrast: core.daff-map-get($theme, 'core', 'base-contrast');
8
- $black: core.daff-map-get($theme, 'core', 'black');
4
+ $neutral: daff-get-palette($theme, neutral);
5
+ $base-contrast: daff-get-base-color($theme, base-contrast);
6
+ $black: daff-get-base-color($theme, 'black');
9
7
 
10
8
  .daff-native-select {
11
- color: theming.daff-illuminate($base-contrast, $neutral, 4);
9
+ color: daff-illuminate($base-contrast, $neutral, 4);
12
10
 
13
11
  // removes dotted border on in FF
14
12
  &:-moz-focusring {