@ni/nimble-components 1.0.0-beta.10 → 1.0.0-beta.100

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 (186) hide show
  1. package/README.md +1 -1
  2. package/dist/esm/{utilities → button}/behaviors.d.ts +2 -2
  3. package/dist/esm/{utilities → button}/behaviors.js +0 -0
  4. package/dist/esm/button/behaviors.js.map +1 -0
  5. package/dist/esm/button/index.d.ts +17 -1
  6. package/dist/esm/button/index.js +5 -10
  7. package/dist/esm/button/index.js.map +1 -1
  8. package/dist/esm/button/styles.js +121 -50
  9. package/dist/esm/button/styles.js.map +1 -1
  10. package/dist/esm/checkbox/index.d.ts +2 -0
  11. package/dist/esm/checkbox/index.js +12 -0
  12. package/dist/esm/checkbox/index.js.map +1 -0
  13. package/dist/esm/checkbox/styles.d.ts +1 -0
  14. package/dist/esm/checkbox/styles.js +92 -0
  15. package/dist/esm/checkbox/styles.js.map +1 -0
  16. package/dist/esm/drawer/animations.d.ts +14 -0
  17. package/dist/esm/drawer/animations.js +52 -0
  18. package/dist/esm/drawer/animations.js.map +1 -0
  19. package/dist/esm/drawer/index.d.ts +39 -0
  20. package/dist/esm/drawer/index.js +190 -0
  21. package/dist/esm/drawer/index.js.map +1 -0
  22. package/dist/esm/drawer/styles.d.ts +1 -0
  23. package/dist/esm/drawer/styles.js +115 -0
  24. package/dist/esm/drawer/styles.js.map +1 -0
  25. package/dist/esm/drawer/types.d.ts +10 -0
  26. package/dist/esm/drawer/types.js +13 -0
  27. package/dist/esm/drawer/types.js.map +1 -0
  28. package/dist/esm/icon-base/index.d.ts +12 -0
  29. package/dist/esm/icon-base/index.js +22 -0
  30. package/dist/esm/icon-base/index.js.map +1 -0
  31. package/dist/esm/icon-base/styles.d.ts +1 -0
  32. package/dist/esm/icon-base/styles.js +38 -0
  33. package/dist/esm/icon-base/styles.js.map +1 -0
  34. package/dist/esm/icon-base/template.d.ts +2 -0
  35. package/dist/esm/icon-base/template.js +7 -0
  36. package/dist/esm/icon-base/template.js.map +1 -0
  37. package/dist/esm/icons/access-control.d.ts +7 -0
  38. package/dist/esm/icons/access-control.js +12 -0
  39. package/dist/esm/icons/access-control.js.map +1 -0
  40. package/dist/esm/icons/admin.d.ts +7 -0
  41. package/dist/esm/icons/admin.js +12 -0
  42. package/dist/esm/icons/admin.js.map +1 -0
  43. package/dist/esm/icons/administration.d.ts +7 -0
  44. package/dist/esm/icons/administration.js +12 -0
  45. package/dist/esm/icons/administration.js.map +1 -0
  46. package/dist/esm/icons/all-icons.d.ts +13 -0
  47. package/dist/esm/icons/all-icons.js +14 -0
  48. package/dist/esm/icons/all-icons.js.map +1 -0
  49. package/dist/esm/icons/check.d.ts +7 -0
  50. package/dist/esm/icons/check.js +12 -0
  51. package/dist/esm/icons/check.js.map +1 -0
  52. package/dist/esm/icons/custom-applications.d.ts +7 -0
  53. package/dist/esm/icons/custom-applications.js +12 -0
  54. package/dist/esm/icons/custom-applications.js.map +1 -0
  55. package/dist/esm/icons/delete.d.ts +7 -0
  56. package/dist/esm/icons/delete.js +12 -0
  57. package/dist/esm/icons/delete.js.map +1 -0
  58. package/dist/esm/icons/login.d.ts +7 -0
  59. package/dist/esm/icons/login.js +12 -0
  60. package/dist/esm/icons/login.js.map +1 -0
  61. package/dist/esm/icons/logout.d.ts +7 -0
  62. package/dist/esm/icons/logout.js +12 -0
  63. package/dist/esm/icons/logout.js.map +1 -0
  64. package/dist/esm/icons/managed-systems.d.ts +7 -0
  65. package/dist/esm/icons/managed-systems.js +12 -0
  66. package/dist/esm/icons/managed-systems.js.map +1 -0
  67. package/dist/esm/icons/measurement-data-analysis.d.ts +7 -0
  68. package/dist/esm/icons/measurement-data-analysis.js +12 -0
  69. package/dist/esm/icons/measurement-data-analysis.js.map +1 -0
  70. package/dist/esm/icons/settings.d.ts +7 -0
  71. package/dist/esm/icons/settings.js +12 -0
  72. package/dist/esm/icons/settings.js.map +1 -0
  73. package/dist/esm/icons/test-insights.d.ts +7 -0
  74. package/dist/esm/icons/test-insights.js +12 -0
  75. package/dist/esm/icons/test-insights.js.map +1 -0
  76. package/dist/esm/icons/utilities.d.ts +7 -0
  77. package/dist/esm/icons/utilities.js +12 -0
  78. package/dist/esm/icons/utilities.js.map +1 -0
  79. package/dist/esm/listbox-option/index.d.ts +10 -0
  80. package/dist/esm/listbox-option/index.js +29 -0
  81. package/dist/esm/listbox-option/index.js.map +1 -0
  82. package/dist/esm/listbox-option/styles.d.ts +1 -0
  83. package/dist/esm/listbox-option/styles.js +60 -0
  84. package/dist/esm/listbox-option/styles.js.map +1 -0
  85. package/dist/esm/menu/index.d.ts +5 -0
  86. package/dist/esm/menu/index.js +22 -0
  87. package/dist/esm/menu/index.js.map +1 -0
  88. package/dist/esm/menu/styles.d.ts +1 -0
  89. package/dist/esm/menu/styles.js +40 -0
  90. package/dist/esm/menu/styles.js.map +1 -0
  91. package/dist/esm/menu-item/index.d.ts +15 -0
  92. package/dist/esm/menu-item/index.js +22 -0
  93. package/dist/esm/menu-item/index.js.map +1 -0
  94. package/dist/esm/menu-item/styles.d.ts +1 -0
  95. package/dist/esm/menu-item/styles.js +64 -0
  96. package/dist/esm/menu-item/styles.js.map +1 -0
  97. package/dist/esm/number-field/index.d.ts +6 -1
  98. package/dist/esm/number-field/index.js +5 -9
  99. package/dist/esm/number-field/index.js.map +1 -1
  100. package/dist/esm/number-field/styles.js +114 -66
  101. package/dist/esm/number-field/styles.js.map +1 -1
  102. package/dist/esm/select/index.d.ts +12 -0
  103. package/dist/esm/select/index.js +46 -0
  104. package/dist/esm/select/index.js.map +1 -0
  105. package/dist/esm/select/styles.d.ts +1 -0
  106. package/dist/esm/select/styles.js +141 -0
  107. package/dist/esm/select/styles.js.map +1 -0
  108. package/dist/esm/tab/index.d.ts +2 -0
  109. package/dist/esm/tab/index.js +9 -0
  110. package/dist/esm/tab/index.js.map +1 -0
  111. package/dist/esm/tab/styles.d.ts +1 -0
  112. package/dist/esm/tab/styles.js +53 -0
  113. package/dist/esm/tab/styles.js.map +1 -0
  114. package/dist/esm/tab-panel/index.d.ts +2 -0
  115. package/dist/esm/tab-panel/index.js +9 -0
  116. package/dist/esm/tab-panel/index.js.map +1 -0
  117. package/dist/esm/tab-panel/styles.d.ts +1 -0
  118. package/dist/esm/tab-panel/styles.js +15 -0
  119. package/dist/esm/tab-panel/styles.js.map +1 -0
  120. package/dist/esm/tabs/index.d.ts +2 -0
  121. package/dist/esm/tabs/index.js +9 -0
  122. package/dist/esm/tabs/index.js.map +1 -0
  123. package/dist/esm/tabs/styles.d.ts +1 -0
  124. package/dist/esm/tabs/styles.js +43 -0
  125. package/dist/esm/tabs/styles.js.map +1 -0
  126. package/dist/esm/tabs-toolbar/index.d.ts +6 -0
  127. package/dist/esm/tabs-toolbar/index.js +15 -0
  128. package/dist/esm/tabs-toolbar/index.js.map +1 -0
  129. package/dist/esm/tabs-toolbar/styles.d.ts +1 -0
  130. package/dist/esm/tabs-toolbar/styles.js +23 -0
  131. package/dist/esm/tabs-toolbar/styles.js.map +1 -0
  132. package/dist/esm/tabs-toolbar/template.d.ts +1 -0
  133. package/dist/esm/tabs-toolbar/template.js +8 -0
  134. package/dist/esm/tabs-toolbar/template.js.map +1 -0
  135. package/dist/esm/testing/dom-next-update.d.ts +4 -0
  136. package/dist/esm/testing/dom-next-update.js +6 -0
  137. package/dist/esm/testing/dom-next-update.js.map +1 -0
  138. package/dist/esm/text-field/index.d.ts +6 -1
  139. package/dist/esm/text-field/index.js +3 -1
  140. package/dist/esm/text-field/index.js.map +1 -1
  141. package/dist/esm/text-field/styles.js +139 -63
  142. package/dist/esm/text-field/styles.js.map +1 -1
  143. package/dist/esm/theme-provider/design-tokens.d.ts +33 -2
  144. package/dist/esm/theme-provider/design-tokens.js +118 -13
  145. package/dist/esm/theme-provider/design-tokens.js.map +1 -1
  146. package/dist/esm/theme-provider/index.d.ts +10 -1
  147. package/dist/esm/theme-provider/index.js +9 -15
  148. package/dist/esm/theme-provider/index.js.map +1 -1
  149. package/dist/esm/theme-provider/template.d.ts +2 -0
  150. package/dist/esm/theme-provider/template.js +3 -0
  151. package/dist/esm/theme-provider/template.js.map +1 -0
  152. package/dist/esm/theme-provider/themes.d.ts +4 -3
  153. package/dist/esm/theme-provider/themes.js +4 -3
  154. package/dist/esm/theme-provider/themes.js.map +1 -1
  155. package/dist/esm/tree-item/index.d.ts +28 -0
  156. package/dist/esm/tree-item/index.js +116 -0
  157. package/dist/esm/tree-item/index.js.map +1 -0
  158. package/dist/esm/tree-item/styles.d.ts +3 -0
  159. package/dist/esm/tree-item/styles.js +195 -0
  160. package/dist/esm/tree-item/styles.js.map +1 -0
  161. package/dist/esm/tree-view/index.d.ts +16 -0
  162. package/dist/esm/tree-view/index.js +34 -0
  163. package/dist/esm/tree-view/index.js.map +1 -0
  164. package/dist/esm/tree-view/styles.d.ts +1 -0
  165. package/dist/esm/tree-view/styles.js +17 -0
  166. package/dist/esm/tree-view/styles.js.map +1 -0
  167. package/dist/esm/tree-view/types.d.ts +6 -0
  168. package/dist/esm/tree-view/types.js +8 -0
  169. package/dist/esm/tree-view/types.js.map +1 -0
  170. package/dist/esm/utilities/style/focus.d.ts +11 -0
  171. package/dist/esm/utilities/style/focus.js +14 -0
  172. package/dist/esm/utilities/style/focus.js.map +1 -0
  173. package/package.json +53 -26
  174. package/dist/esm/button/button.stories.d.ts +0 -81
  175. package/dist/esm/button/button.stories.js +0 -59
  176. package/dist/esm/button/button.stories.js.map +0 -1
  177. package/dist/esm/number-field/number-field.stories.d.ts +0 -33
  178. package/dist/esm/number-field/number-field.stories.js +0 -26
  179. package/dist/esm/number-field/number-field.stories.js.map +0 -1
  180. package/dist/esm/shared/icon-font.d.ts +0 -3
  181. package/dist/esm/shared/icon-font.js +0 -6
  182. package/dist/esm/shared/icon-font.js.map +0 -1
  183. package/dist/esm/text-field/text-field.stories.d.ts +0 -42
  184. package/dist/esm/text-field/text-field.stories.js +0 -30
  185. package/dist/esm/text-field/text-field.stories.js.map +0 -1
  186. package/dist/esm/utilities/behaviors.js.map +0 -1
package/README.md CHANGED
@@ -1,5 +1,5 @@
1
1
  <div align="center">
2
- <p align="center"><b>ni | nimble | components</b></p>
2
+ <p><b>ni | nimble | components</b></p>
3
3
  </div>
4
4
 
5
5
  # Nimble Components
@@ -1,5 +1,5 @@
1
- import { Behavior, ElementStyles } from '@microsoft/fast-element';
2
- import { ButtonAppearance } from '../button/types';
1
+ import type { Behavior, ElementStyles } from '@microsoft/fast-element';
2
+ import type { ButtonAppearance } from './types';
3
3
  /**
4
4
  * Behavior that will conditionally apply a stylesheet based on the element's
5
5
  * appearance property
File without changes
@@ -0,0 +1 @@
1
+ {"version":3,"file":"behaviors.js","sourceRoot":"","sources":["../../../src/button/behaviors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,0BAA0B,EAAE,MAAM,4BAA4B,CAAC;AAIxE;;;;;;;;GAQG;AACH,MAAM,UAAU,kBAAkB,CAC9B,KAAuB,EACvB,MAAqB;IAErB,OAAO,IAAI,0BAA0B,CAAC,YAAY,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;AACvE,CAAC"}
@@ -1 +1,17 @@
1
- export {};
1
+ import { Button as FoundationButton } from '@microsoft/fast-foundation';
2
+ import { ButtonAppearance } from './types';
3
+ export type { Button };
4
+ /**
5
+ * A nimble-styled HTML button
6
+ */
7
+ declare class Button extends FoundationButton {
8
+ /**
9
+ * The appearance the button should have.
10
+ *
11
+ * @public
12
+ * @remarks
13
+ * HTML Attribute: appearance
14
+ */
15
+ appearance: ButtonAppearance;
16
+ connectedCallback(): void;
17
+ }
@@ -3,15 +3,10 @@ import { attr } from '@microsoft/fast-element';
3
3
  import { Button as FoundationButton, buttonTemplate as template, DesignSystem } from '@microsoft/fast-foundation';
4
4
  import { styles } from './styles';
5
5
  import { ButtonAppearance } from './types';
6
+ /**
7
+ * A nimble-styled HTML button
8
+ */
6
9
  class Button extends FoundationButton {
7
- /**
8
- * The appearance the button should have.
9
- *
10
- * @public
11
- * @remarks
12
- * HTML Attribute: appearance
13
- */
14
- appearance;
15
10
  connectedCallback() {
16
11
  super.connectedCallback();
17
12
  if (!this.appearance) {
@@ -36,8 +31,8 @@ const nimbleButton = Button.compose({
36
31
  template,
37
32
  styles,
38
33
  shadowOptions: {
39
- delegatesFocus: true,
40
- },
34
+ delegatesFocus: true
35
+ }
41
36
  });
42
37
  DesignSystem.getOrCreate().withPrefix('nimble').register(nimbleButton());
43
38
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/button/index.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,yBAAyB,CAAC;AAC/C,OAAO,EAAE,MAAM,IAAI,gBAAgB,EAAE,cAAc,IAAI,QAAQ,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAClH,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAE3C,MAAM,MAAO,SAAQ,gBAAgB;IACjC;;;;;;OAMG;IAEI,UAAU,CAAmB;IAE7B,iBAAiB;QACpB,KAAK,CAAC,iBAAiB,EAAE,CAAC;QAC1B,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE;YAClB,IAAI,CAAC,UAAU,GAAG,gBAAgB,CAAC,OAAO,CAAC;SAC9C;IACL,CAAC;CACJ;AARG;IADC,IAAI;0CAC+B;AAUxC;;;;;;;;GAQG;AACH,MAAM,YAAY,GAAG,MAAM,CAAC,OAAO,CAAC;IAChC,QAAQ,EAAE,QAAQ;IAClB,QAAQ;IACR,MAAM;IACN,aAAa,EAAE;QACX,cAAc,EAAE,IAAI;KACvB;CACJ,CAAC,CAAC;AAEH,YAAY,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,YAAY,EAAE,CAAC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/button/index.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,yBAAyB,CAAC;AAC/C,OAAO,EACH,MAAM,IAAI,gBAAgB,EAE1B,cAAc,IAAI,QAAQ,EAC1B,YAAY,EACf,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAI3C;;GAEG;AACH,MAAM,MAAO,SAAQ,gBAAgB;IAW1B,iBAAiB;QACpB,KAAK,CAAC,iBAAiB,EAAE,CAAC;QAC1B,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE;YAClB,IAAI,CAAC,UAAU,GAAG,gBAAgB,CAAC,OAAO,CAAC;SAC9C;IACL,CAAC;CACJ;AARG;IADC,IAAI;0CAC+B;AAUxC;;;;;;;;GAQG;AACH,MAAM,YAAY,GAAG,MAAM,CAAC,OAAO,CAAgB;IAC/C,QAAQ,EAAE,QAAQ;IAClB,QAAQ;IACR,MAAM;IACN,aAAa,EAAE;QACX,cAAc,EAAE,IAAI;KACvB;CACJ,CAAC,CAAC;AAEH,YAAY,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,YAAY,EAAE,CAAC,CAAC"}
@@ -1,107 +1,178 @@
1
1
  import { css } from '@microsoft/fast-element';
2
- import { borderColorRgb, borderColorHover, controlHeight, standardPadding, fontFamily, fontColor, fillColorSelected, contentFontSize, fontColorDisabled } from '../theme-provider/design-tokens';
3
- import { appearanceBehavior } from '../utilities/behaviors';
2
+ import { display } from '@microsoft/fast-foundation';
3
+ import { focusVisible } from '../utilities/style/focus';
4
+ import { actionColorRgb, borderColorHover, borderColorRgb, borderWidth, buttonContentFontColor, contentFontColorDisabled, contentFontSize, controlHeight, fillColorSelected, fontFamily, smallDelay, standardPadding } from '../theme-provider/design-tokens';
5
+ import { appearanceBehavior } from './behaviors';
4
6
  import { ButtonAppearance } from './types';
5
7
  export const styles = css `
8
+ ${display('inline-flex')}
9
+
6
10
  :host {
7
- display: inline-block;
8
11
  background-color: transparent;
9
12
  height: ${controlHeight};
10
- color: ${fontColor};
13
+ color: ${buttonContentFontColor};
11
14
  font-family: ${fontFamily};
12
15
  font-size: ${contentFontSize};
13
16
  cursor: pointer;
14
- text-align: center;
15
17
  outline: none;
16
- }
17
-
18
- :host(:hover),
19
- :host(:focus-within) {
20
- box-shadow: 0px 0px 0px 1px ${borderColorHover} inset;
21
- }
22
-
23
- :host(:focus-within:not(:active)) {
24
- outline: 1px solid ${borderColorHover};
25
- outline-offset: -4px;
26
- }
27
-
28
- :host(:active) {
29
- background-color: ${fillColorSelected};
30
- box-shadow: none;
18
+ border: none;
19
+ box-sizing: border-box;
20
+ ${
21
+ /*
22
+ Not sure why but this is needed to get buttons with icons and buttons
23
+ without icons to align on the same line when the button is inline-flex
24
+ */ ''}
25
+ vertical-align: middle;
31
26
  }
32
27
 
33
28
  :host([disabled]) {
34
- color: ${fontColorDisabled};
35
- background-color: transparent;
36
- box-shadow: none;
29
+ color: ${contentFontColorDisabled};
37
30
  cursor: default;
38
31
  }
39
32
 
40
33
  .control {
41
34
  background-color: transparent;
42
35
  height: inherit;
43
- border: 0px solid transparent;
36
+ width: inherit;
37
+ border: ${borderWidth} solid transparent;
38
+ box-sizing: border-box;
44
39
  color: inherit;
45
40
  border-radius: inherit;
46
41
  fill: inherit;
42
+ display: inline-flex;
43
+ align-items: center;
44
+ justify-content: center;
45
+ gap: 4px;
47
46
  cursor: inherit;
48
47
  font-family: inherit;
49
48
  font-size: inherit;
50
- line-height: inherit;
51
49
  outline: none;
50
+ margin: 0;
52
51
  padding: 0 ${standardPadding};
53
- }`.withBehaviors(appearanceBehavior(ButtonAppearance.Outline, css `
54
- :host {
55
- border: 1px solid rgba(${borderColorRgb}, 0.3);
52
+ transition: box-shadow ${smallDelay};
53
+ }
54
+
55
+ @media (prefers-reduced-motion) {
56
+ .control {
57
+ transition-duration: 0s;
58
+ }
59
+ }
60
+
61
+ .control:hover {
62
+ box-shadow: 0px 0px 0px ${borderWidth} ${borderColorHover} inset;
63
+ outline: none;
64
+ }
65
+
66
+ .control${focusVisible} {
67
+ box-shadow: 0px 0px 0px ${borderWidth} ${borderColorHover} inset;
68
+ outline: ${borderWidth} solid ${borderColorHover};
69
+ outline-offset: -4px;
70
+ }
71
+
72
+ .control:active {
73
+ box-shadow: none;
74
+ outline: none;
75
+ }
76
+
77
+ .control[disabled] {
78
+ box-shadow: none;
79
+ outline: none;
80
+ }
81
+
82
+ .content {
83
+ display: contents;
84
+ }
85
+
86
+ [part='start'] {
87
+ display: contents;
88
+ }
89
+
90
+ slot[name='start']::slotted(*) {
91
+ --icon-color: ${buttonContentFontColor};
92
+ }
93
+
94
+ :host([disabled]) slot[name='start']::slotted(*) {
95
+ opacity: 0.6;
96
+ }
97
+
98
+ [part='end'] {
99
+ display: none;
100
+ }
101
+ `
102
+ // prettier-ignore
103
+ .withBehaviors(appearanceBehavior(ButtonAppearance.Outline, css `
104
+ .control {
105
+ background-color: transparent;
106
+ border-color: rgba(${actionColorRgb}, 0.5);
56
107
  }
57
108
 
58
- :host(:hover),
59
- :host(:focus-within) {
60
- border: 1px solid ${borderColorHover};
109
+ .control:hover {
110
+ background-color: transparent;
111
+ border-color: ${borderColorHover};
61
112
  }
62
113
 
63
- :host(:active) {
114
+ .control${focusVisible} {
115
+ background-color: transparent;
116
+ border-color: ${borderColorHover};
117
+ }
118
+
119
+ .control:active {
120
+ background-color: ${fillColorSelected};
64
121
  border-color: transparent;
65
122
  }
66
123
 
67
- :host([disabled]) {
124
+ .control[disabled] {
125
+ background-color: transparent;
68
126
  border-color: rgba(${borderColorRgb}, 0.2);
69
127
  }
70
128
  `), appearanceBehavior(ButtonAppearance.Ghost, css `
71
- :host {
72
- border: 1px solid transparent;
129
+ .control {
130
+ background-color: transparent;
131
+ border-color: transparent;
132
+ }
133
+
134
+ .control:hover {
135
+ background-color: transparent;
136
+ border-color: ${borderColorHover};
137
+ }
138
+
139
+ .control${focusVisible} {
140
+ background-color: transparent;
141
+ border-color: ${borderColorHover};
73
142
  }
74
143
 
75
- :host(:hover),
76
- :host(:focus-within) {
77
- border: 1px solid ${borderColorHover};
144
+ .control:active {
145
+ background-color: ${fillColorSelected};
146
+ border-color: transparent;
78
147
  }
79
148
 
80
- :host(:active),
81
- :host([disabled]) {
149
+ .control[disabled] {
150
+ background-color: transparent;
82
151
  border-color: transparent;
83
152
  }
84
153
  `), appearanceBehavior(ButtonAppearance.Block, css `
85
- :host {
86
- border: 1px solid transparent;
154
+ .control {
155
+ background-color: rgba(${borderColorRgb}, 0.1);
156
+ border-color: transparent;
87
157
  }
88
158
 
89
- :host(:not(:active)),
90
- :host([disabled]) {
159
+ .control:hover {
91
160
  background-color: rgba(${borderColorRgb}, 0.1);
161
+ border-color: ${borderColorHover};
92
162
  }
93
163
 
94
- :host(:hover),
95
- :host(:focus-within) {
96
- border: 1px solid ${borderColorHover};
164
+ .control${focusVisible} {
165
+ background-color: rgba(${borderColorRgb}, 0.1);
166
+ border-color: ${borderColorHover};
97
167
  }
98
168
 
99
- :host(:active) {
169
+ .control:active {
170
+ background-color: ${fillColorSelected};
100
171
  border-color: transparent;
101
172
  }
102
173
 
103
- :host([disabled]) {
104
- /* This opacity adds to the existing 10% background opacity. */
174
+ .control[disabled] {
175
+ background-color: rgba(${borderColorRgb}, 0.1);
105
176
  border-color: rgba(${borderColorRgb}, 0.1);
106
177
  }
107
178
  `));
@@ -1 +1 @@
1
- {"version":3,"file":"styles.js","sourceRoot":"","sources":["../../../src/button/styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,yBAAyB,CAAC;AAC9C,OAAO,EACH,cAAc,EACd,gBAAgB,EAChB,aAAa,EACb,eAAe,EACf,UAAU,EACV,SAAS,EACT,iBAAiB,EACjB,eAAe,EACf,iBAAiB,EACpB,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAC5D,OAAO,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAE3C,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA;;;;kBAIP,aAAa;iBACd,SAAS;uBACH,UAAU;qBACZ,eAAe;;;;;;;;sCAQE,gBAAgB;;;;6BAIzB,gBAAgB;;;;;4BAKjB,iBAAiB;;;;;iBAK5B,iBAAiB;;;;;;;;;;;;;;;;;;qBAkBb,eAAe;MAC9B,CAAC,aAAa,CACZ,kBAAkB,CACd,gBAAgB,CAAC,OAAO,EACxB,GAAG,CAAA;;6CAE8B,cAAc;;;;;wCAKnB,gBAAgB;;;;;;;;yCAQf,cAAc;;aAE1C,CACJ,EACD,kBAAkB,CACd,gBAAgB,CAAC,KAAK,EACtB,GAAG,CAAA;;;;;;;wCAOyB,gBAAgB;;;;;;;aAO3C,CACJ,EACD,kBAAkB,CACd,gBAAgB,CAAC,KAAK,EACtB,GAAG,CAAA;;;;;;;6CAO8B,cAAc;;;;;wCAKnB,gBAAgB;;;;;;;;;yCASf,cAAc;;aAE1C,CACJ,CACJ,CAAC"}
1
+ {"version":3,"file":"styles.js","sourceRoot":"","sources":["../../../src/button/styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,yBAAyB,CAAC;AAC9C,OAAO,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACxD,OAAO,EACH,cAAc,EACd,gBAAgB,EAChB,cAAc,EACd,WAAW,EACX,sBAAsB,EACtB,wBAAwB,EACxB,eAAe,EACf,aAAa,EACb,iBAAiB,EACjB,UAAU,EACV,UAAU,EACV,eAAe,EAClB,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAE3C,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA;MACnB,OAAO,CAAC,aAAa,CAAC;;;;kBAIV,aAAa;iBACd,sBAAsB;uBAChB,UAAU;qBACZ,eAAe;;;;;UAK1B;AACE;;;EAGE,CAAC,EACP;;;;;iBAKS,wBAAwB;;;;;;;;kBAQvB,WAAW;;;;;;;;;;;;;;qBAcR,eAAe;iCACH,UAAU;;;;;;;;;;kCAUT,WAAW,IAAI,gBAAgB;;;;cAInD,YAAY;kCACQ,WAAW,IAAI,gBAAgB;mBAC9C,WAAW,UAAU,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;wBAuBhC,sBAAsB;;;;;;;;;;CAU7C;IACG,kBAAkB;KACjB,aAAa,CACV,kBAAkB,CACd,gBAAgB,CAAC,OAAO,EACxB,GAAG,CAAA;;;yCAG0B,cAAc;;;;;oCAKnB,gBAAgB;;;0BAG1B,YAAY;;oCAEF,gBAAgB;;;;wCAIZ,iBAAiB;;;;;;yCAMhB,cAAc;;aAE1C,CACJ,EACD,kBAAkB,CACd,gBAAgB,CAAC,KAAK,EACtB,GAAG,CAAA;;;;;;;;oCAQqB,gBAAgB;;;0BAG1B,YAAY;;oCAEF,gBAAgB;;;;wCAIZ,iBAAiB;;;;;;;;aAQ5C,CACJ,EACD,kBAAkB,CACd,gBAAgB,CAAC,KAAK,EACtB,GAAG,CAAA;;6CAE8B,cAAc;;;;;6CAKd,cAAc;oCACvB,gBAAgB;;;0BAG1B,YAAY;6CACO,cAAc;oCACvB,gBAAgB;;;;wCAIZ,iBAAiB;;;;;6CAKZ,cAAc;yCAClB,cAAc;;aAE1C,CACJ,CACJ,CAAC"}
@@ -0,0 +1,2 @@
1
+ import { Checkbox as FoundationCheckbox } from '@microsoft/fast-foundation';
2
+ export { FoundationCheckbox as Checkbox };
@@ -0,0 +1,12 @@
1
+ import { DesignSystem, Checkbox as FoundationCheckbox, checkboxTemplate as template } from '@microsoft/fast-foundation';
2
+ import { controlsCheckboxCheck16X16 } from '@ni/nimble-tokens/dist-icons-esm/nimble-icons-inline';
3
+ import { styles } from './styles';
4
+ export { FoundationCheckbox as Checkbox };
5
+ const nimbleCheckbox = FoundationCheckbox.compose({
6
+ baseName: 'checkbox',
7
+ template,
8
+ styles,
9
+ checkedIndicator: controlsCheckboxCheck16X16.data
10
+ });
11
+ DesignSystem.getOrCreate().withPrefix('nimble').register(nimbleCheckbox());
12
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/checkbox/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,YAAY,EACZ,QAAQ,IAAI,kBAAkB,EAE9B,gBAAgB,IAAI,QAAQ,EAC/B,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,0BAA0B,EAAE,MAAM,sDAAsD,CAAC;AAElG,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAElC,OAAO,EAAE,kBAAkB,IAAI,QAAQ,EAAE,CAAC;AAE1C,MAAM,cAAc,GAAG,kBAAkB,CAAC,OAAO,CAAkB;IAC/D,QAAQ,EAAE,UAAU;IACpB,QAAQ;IACR,MAAM;IACN,gBAAgB,EAAE,0BAA0B,CAAC,IAAI;CACpD,CAAC,CAAC;AAEH,YAAY,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,cAAc,EAAE,CAAC,CAAC"}
@@ -0,0 +1 @@
1
+ export declare const styles: import("@microsoft/fast-element").ElementStyles;
@@ -0,0 +1,92 @@
1
+ import { css } from '@microsoft/fast-element';
2
+ import { display } from '@microsoft/fast-foundation';
3
+ import { focusVisible } from '../utilities/style/focus';
4
+ import { borderColor, borderColorHover, borderColorRgb, contentFontColor, contentFontColorDisabled, contentFontSize, controlHeight, labelHeight, iconSize, fontFamily, borderWidth, smallDelay } from '../theme-provider/design-tokens';
5
+ export const styles = css `
6
+ ${display('inline-flex')}
7
+
8
+ :host {
9
+ align-items: center;
10
+ cursor: pointer;
11
+ outline: none;
12
+ user-select: none;
13
+ }
14
+
15
+ :host([disabled]) {
16
+ cursor: default;
17
+ }
18
+
19
+ .control {
20
+ width: calc(${controlHeight} / 2);
21
+ height: calc(${controlHeight} / 2);
22
+ box-sizing: border-box;
23
+ flex-shrink: 0;
24
+ border: ${borderWidth} solid ${borderColor};
25
+ padding: 2px;
26
+ display: inline-flex;
27
+ align-items: center;
28
+ justify-content: center;
29
+ transition: box-shadow ${smallDelay};
30
+ ${
31
+ /*
32
+ * Firefox includes the line height in the outline height calculation (not sure if intended or accidental).
33
+ * Set it to 0 to ensure the outline is just as high as the control.
34
+ */ ''}
35
+ line-height: 0;
36
+ }
37
+
38
+ @media (prefers-reduced-motion) {
39
+ .control {
40
+ transition-duration: 0s;
41
+ }
42
+ }
43
+
44
+ :host([disabled]) .control {
45
+ background-color: rgba(${borderColorRgb}, 0.1);
46
+ border-color: rgba(${borderColorRgb}, 0.2);
47
+ }
48
+
49
+ :host(:not([disabled]):not(:active):hover) .control {
50
+ border-color: ${borderColorHover};
51
+ box-shadow: 0px 0px 0px ${borderWidth} ${borderColorHover} inset;
52
+ }
53
+
54
+ :host(${focusVisible}) .control {
55
+ border-color: ${borderColorHover};
56
+ outline: 2px solid ${borderColorHover};
57
+ outline-offset: 2px;
58
+ }
59
+
60
+ .label {
61
+ font-family: ${fontFamily};
62
+ font-size: ${contentFontSize};
63
+ color: ${contentFontColor};
64
+ line-height: ${labelHeight};
65
+ padding-left: 1ch;
66
+ cursor: inherit;
67
+ }
68
+
69
+ :host([disabled]) .label {
70
+ color: ${contentFontColorDisabled};
71
+ }
72
+
73
+ slot[name='checked-indicator'] svg {
74
+ height: ${iconSize};
75
+ width: ${iconSize};
76
+ overflow: visible;
77
+ }
78
+
79
+ slot[name='checked-indicator'] path {
80
+ fill: ${borderColor};
81
+ opacity: 0;
82
+ }
83
+
84
+ :host([aria-checked='true']) slot[name='checked-indicator'] path {
85
+ opacity: 1;
86
+ }
87
+
88
+ :host([disabled]) slot[name='checked-indicator'] path {
89
+ fill: rgba(${borderColorRgb}, 0.3);
90
+ }
91
+ `;
92
+ //# sourceMappingURL=styles.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"styles.js","sourceRoot":"","sources":["../../../src/checkbox/styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,yBAAyB,CAAC;AAC9C,OAAO,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAExD,OAAO,EACH,WAAW,EACX,gBAAgB,EAChB,cAAc,EACd,gBAAgB,EAChB,wBAAwB,EACxB,eAAe,EACf,aAAa,EACb,WAAW,EACX,QAAQ,EACR,UAAU,EACV,WAAW,EACX,UAAU,EACb,MAAM,iCAAiC,CAAC;AAEzC,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA;MACnB,OAAO,CAAC,aAAa,CAAC;;;;;;;;;;;;;;sBAcN,aAAa;uBACZ,aAAa;;;kBAGlB,WAAW,UAAU,WAAW;;;;;iCAKjB,UAAU;UACjC;AACE;;;GAGG,CAAC,EACR;;;;;;;;;;;iCAWyB,cAAc;6BAClB,cAAc;;;;wBAInB,gBAAgB;kCACN,WAAW,IAAI,gBAAgB;;;YAGrD,YAAY;wBACA,gBAAgB;6BACX,gBAAgB;;;;;uBAKtB,UAAU;qBACZ,eAAe;iBACnB,gBAAgB;uBACV,WAAW;;;;;;iBAMjB,wBAAwB;;;;kBAIvB,QAAQ;iBACT,QAAQ;;;;;gBAKT,WAAW;;;;;;;;;qBASN,cAAc;;CAElC,CAAC"}
@@ -0,0 +1,14 @@
1
+ export declare const animationConfig: {
2
+ slideLeftKeyframes: Keyframe[];
3
+ slideRightKeyframes: Keyframe[];
4
+ fadeOverlayKeyframes: Keyframe[];
5
+ slideInOptions: {
6
+ duration: number;
7
+ easing: string;
8
+ };
9
+ slideOutOptions: {
10
+ duration: number;
11
+ easing: string;
12
+ direction: string;
13
+ };
14
+ };
@@ -0,0 +1,52 @@
1
+ const slideLeftKeyframes = [
2
+ {
3
+ transform: 'translateX(-100%)',
4
+ visibility: 'hidden',
5
+ offset: 0
6
+ },
7
+ {
8
+ transform: 'translateX(-100%)',
9
+ visibility: 'visible',
10
+ offset: 0.01
11
+ },
12
+ {
13
+ transform: 'translateX(0%)',
14
+ visibility: 'visible',
15
+ offset: 1
16
+ }
17
+ ];
18
+ const slideRightKeyframes = [
19
+ {
20
+ transform: 'translateX(100%)',
21
+ visibility: 'hidden',
22
+ offset: 0
23
+ },
24
+ {
25
+ transform: 'translateX(100%)',
26
+ visibility: 'visible',
27
+ offset: 0.01
28
+ },
29
+ {
30
+ transform: 'translateX(0%)',
31
+ visibility: 'visible',
32
+ offset: 1
33
+ }
34
+ ];
35
+ const fadeOverlayKeyframes = [{ opacity: 0 }, { opacity: 1 }];
36
+ const slideInOptions = {
37
+ duration: 1,
38
+ easing: 'ease-out'
39
+ };
40
+ const slideOutOptions = {
41
+ duration: 1,
42
+ easing: 'ease-in',
43
+ direction: 'reverse'
44
+ };
45
+ export const animationConfig = {
46
+ slideLeftKeyframes,
47
+ slideRightKeyframes,
48
+ fadeOverlayKeyframes,
49
+ slideInOptions,
50
+ slideOutOptions
51
+ };
52
+ //# sourceMappingURL=animations.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"animations.js","sourceRoot":"","sources":["../../../src/drawer/animations.ts"],"names":[],"mappings":"AAAA,MAAM,kBAAkB,GAAe;IACnC;QACI,SAAS,EAAE,mBAAmB;QAC9B,UAAU,EAAE,QAAQ;QACpB,MAAM,EAAE,CAAC;KACZ;IACD;QACI,SAAS,EAAE,mBAAmB;QAC9B,UAAU,EAAE,SAAS;QACrB,MAAM,EAAE,IAAI;KACf;IACD;QACI,SAAS,EAAE,gBAAgB;QAC3B,UAAU,EAAE,SAAS;QACrB,MAAM,EAAE,CAAC;KACZ;CACJ,CAAC;AAEF,MAAM,mBAAmB,GAAe;IACpC;QACI,SAAS,EAAE,kBAAkB;QAC7B,UAAU,EAAE,QAAQ;QACpB,MAAM,EAAE,CAAC;KACZ;IACD;QACI,SAAS,EAAE,kBAAkB;QAC7B,UAAU,EAAE,SAAS;QACrB,MAAM,EAAE,IAAI;KACf;IACD;QACI,SAAS,EAAE,gBAAgB;QAC3B,UAAU,EAAE,SAAS;QACrB,MAAM,EAAE,CAAC;KACZ;CACJ,CAAC;AAEF,MAAM,oBAAoB,GAAe,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC;AAE1E,MAAM,cAAc,GAAG;IACnB,QAAQ,EAAE,CAAC;IACX,MAAM,EAAE,UAAU;CACrB,CAAC;AAEF,MAAM,eAAe,GAAG;IACpB,QAAQ,EAAE,CAAC;IACX,MAAM,EAAE,SAAS;IACjB,SAAS,EAAE,SAAS;CACvB,CAAC;AAEF,MAAM,CAAC,MAAM,eAAe,GAAG;IAC3B,kBAAkB;IAClB,mBAAmB;IACnB,oBAAoB;IACpB,cAAc;IACd,eAAe;CAClB,CAAC"}
@@ -0,0 +1,39 @@
1
+ import { Dialog as FoundationDialog } from '@microsoft/fast-foundation';
2
+ import { DrawerLocation, DrawerState } from './types';
3
+ /**
4
+ * Drawer/Sidenav control. Shows content in a panel on the left / right side of the screen,
5
+ * which animates to be visible with a slide-in / slide-out animation.
6
+ * Configured via 'location', 'state', 'modal', 'preventDismiss' properties.
7
+ */
8
+ export declare class Drawer extends FoundationDialog {
9
+ location: DrawerLocation;
10
+ state: DrawerState;
11
+ /**
12
+ * True to prevent dismissing the drawer when the overlay outside the drawer is clicked.
13
+ * Only applicable when 'modal' is set to true (i.e. when the overlay is used).
14
+ * HTML Attribute: prevent-dismiss
15
+ */
16
+ preventDismiss: boolean;
17
+ private readonly propertiesToWatch;
18
+ private propertyChangeNotifier?;
19
+ private animationDurationMilliseconds;
20
+ private animationGroup?;
21
+ private animationsEnabledChangedHandler?;
22
+ private prefersReducedMotionMediaQuery?;
23
+ private propertyChangeSubscriber?;
24
+ connectedCallback(): void;
25
+ disconnectedCallback(): void;
26
+ show(): void;
27
+ hide(): void;
28
+ dismiss(): void;
29
+ private onPropertyChange;
30
+ private onHiddenChanged;
31
+ private onLocationChanged;
32
+ private onStateChanged;
33
+ private updateAnimationDuration;
34
+ private animateOpening;
35
+ private animateClosing;
36
+ private animateOpenClose;
37
+ private cancelCurrentAnimation;
38
+ }
39
+ export declare const nimbleDrawer: (overrideDefinition?: import("@microsoft/fast-foundation").OverrideFoundationElementDefinition<import("@microsoft/fast-foundation").FoundationElementDefinition> | undefined) => import("@microsoft/fast-foundation").FoundationElementRegistry<import("@microsoft/fast-foundation").FoundationElementDefinition, typeof Drawer>;