@ni/nimble-components 1.0.0-beta.12 → 1.0.0-beta.120

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 (222) hide show
  1. package/README.md +15 -4
  2. package/dist/esm/button/behaviors.js.map +1 -1
  3. package/dist/esm/button/index.d.ts +10 -0
  4. package/dist/esm/button/index.js +19 -10
  5. package/dist/esm/button/index.js.map +1 -1
  6. package/dist/esm/button/styles.js +125 -49
  7. package/dist/esm/button/styles.js.map +1 -1
  8. package/dist/esm/button/types.d.ts +3 -0
  9. package/dist/esm/button/types.js +0 -4
  10. package/dist/esm/button/types.js.map +1 -1
  11. package/dist/esm/checkbox/index.d.ts +12 -0
  12. package/dist/esm/checkbox/index.js +18 -0
  13. package/dist/esm/checkbox/index.js.map +1 -0
  14. package/dist/esm/checkbox/styles.d.ts +1 -0
  15. package/dist/esm/checkbox/styles.js +92 -0
  16. package/dist/esm/checkbox/styles.js.map +1 -0
  17. package/dist/esm/drawer/animations.d.ts +14 -0
  18. package/dist/esm/drawer/animations.js +52 -0
  19. package/dist/esm/drawer/animations.js.map +1 -0
  20. package/dist/esm/drawer/index.d.ts +43 -0
  21. package/dist/esm/drawer/index.js +189 -0
  22. package/dist/esm/drawer/index.js.map +1 -0
  23. package/dist/esm/drawer/styles.d.ts +1 -0
  24. package/dist/esm/drawer/styles.js +116 -0
  25. package/dist/esm/drawer/styles.js.map +1 -0
  26. package/dist/esm/drawer/types.d.ts +12 -0
  27. package/dist/esm/drawer/types.js +13 -0
  28. package/dist/esm/drawer/types.js.map +1 -0
  29. package/dist/esm/icon-base/index.d.ts +12 -0
  30. package/dist/esm/icon-base/index.js +22 -0
  31. package/dist/esm/icon-base/index.js.map +1 -0
  32. package/dist/esm/icon-base/styles.d.ts +1 -0
  33. package/dist/esm/icon-base/styles.js +38 -0
  34. package/dist/esm/icon-base/styles.js.map +1 -0
  35. package/dist/esm/icon-base/template.d.ts +2 -0
  36. package/dist/esm/icon-base/template.js +7 -0
  37. package/dist/esm/icon-base/template.js.map +1 -0
  38. package/dist/esm/icon-base/types.d.ts +11 -0
  39. package/dist/esm/icon-base/types.js +8 -0
  40. package/dist/esm/icon-base/types.js.map +1 -0
  41. package/dist/esm/icons/access-control.d.ts +12 -0
  42. package/dist/esm/icons/access-control.js +12 -0
  43. package/dist/esm/icons/access-control.js.map +1 -0
  44. package/dist/esm/icons/admin.d.ts +12 -0
  45. package/dist/esm/icons/admin.js +12 -0
  46. package/dist/esm/icons/admin.js.map +1 -0
  47. package/dist/esm/icons/administration.d.ts +12 -0
  48. package/dist/esm/icons/administration.js +12 -0
  49. package/dist/esm/icons/administration.js.map +1 -0
  50. package/dist/esm/icons/all-icons.d.ts +15 -0
  51. package/dist/esm/icons/all-icons.js +16 -0
  52. package/dist/esm/icons/all-icons.js.map +1 -0
  53. package/dist/esm/icons/check.d.ts +12 -0
  54. package/dist/esm/icons/check.js +12 -0
  55. package/dist/esm/icons/check.js.map +1 -0
  56. package/dist/esm/icons/custom-applications.d.ts +12 -0
  57. package/dist/esm/icons/custom-applications.js +12 -0
  58. package/dist/esm/icons/custom-applications.js.map +1 -0
  59. package/dist/esm/icons/delete.d.ts +12 -0
  60. package/dist/esm/icons/delete.js +12 -0
  61. package/dist/esm/icons/delete.js.map +1 -0
  62. package/dist/esm/icons/fail.d.ts +12 -0
  63. package/dist/esm/icons/fail.js +12 -0
  64. package/dist/esm/icons/fail.js.map +1 -0
  65. package/dist/esm/icons/login.d.ts +12 -0
  66. package/dist/esm/icons/login.js +12 -0
  67. package/dist/esm/icons/login.js.map +1 -0
  68. package/dist/esm/icons/logout.d.ts +12 -0
  69. package/dist/esm/icons/logout.js +12 -0
  70. package/dist/esm/icons/logout.js.map +1 -0
  71. package/dist/esm/icons/managed-systems.d.ts +12 -0
  72. package/dist/esm/icons/managed-systems.js +12 -0
  73. package/dist/esm/icons/managed-systems.js.map +1 -0
  74. package/dist/esm/icons/measurement-data-analysis.d.ts +12 -0
  75. package/dist/esm/icons/measurement-data-analysis.js +12 -0
  76. package/dist/esm/icons/measurement-data-analysis.js.map +1 -0
  77. package/dist/esm/icons/settings.d.ts +12 -0
  78. package/dist/esm/icons/settings.js +12 -0
  79. package/dist/esm/icons/settings.js.map +1 -0
  80. package/dist/esm/icons/succeeded.d.ts +12 -0
  81. package/dist/esm/icons/succeeded.js +12 -0
  82. package/dist/esm/icons/succeeded.js.map +1 -0
  83. package/dist/esm/icons/test-insights.d.ts +12 -0
  84. package/dist/esm/icons/test-insights.js +12 -0
  85. package/dist/esm/icons/test-insights.js.map +1 -0
  86. package/dist/esm/icons/utilities.d.ts +12 -0
  87. package/dist/esm/icons/utilities.js +12 -0
  88. package/dist/esm/icons/utilities.js.map +1 -0
  89. package/dist/esm/listbox-option/index.d.ts +15 -0
  90. package/dist/esm/listbox-option/index.js +31 -0
  91. package/dist/esm/listbox-option/index.js.map +1 -0
  92. package/dist/esm/listbox-option/styles.d.ts +1 -0
  93. package/dist/esm/listbox-option/styles.js +60 -0
  94. package/dist/esm/listbox-option/styles.js.map +1 -0
  95. package/dist/esm/menu/index.d.ts +12 -0
  96. package/dist/esm/menu/index.js +25 -0
  97. package/dist/esm/menu/index.js.map +1 -0
  98. package/dist/esm/menu/styles.d.ts +1 -0
  99. package/dist/esm/menu/styles.js +40 -0
  100. package/dist/esm/menu/styles.js.map +1 -0
  101. package/dist/esm/menu-item/index.d.ts +12 -0
  102. package/dist/esm/menu-item/index.js +25 -0
  103. package/dist/esm/menu-item/index.js.map +1 -0
  104. package/dist/esm/menu-item/styles.d.ts +1 -0
  105. package/dist/esm/menu-item/styles.js +64 -0
  106. package/dist/esm/menu-item/styles.js.map +1 -0
  107. package/dist/esm/number-field/index.d.ts +12 -1
  108. package/dist/esm/number-field/index.js +11 -8
  109. package/dist/esm/number-field/index.js.map +1 -1
  110. package/dist/esm/number-field/styles.js +114 -87
  111. package/dist/esm/number-field/styles.js.map +1 -1
  112. package/dist/esm/select/index.d.ts +16 -0
  113. package/dist/esm/select/index.js +50 -0
  114. package/dist/esm/select/index.js.map +1 -0
  115. package/dist/esm/select/styles.d.ts +1 -0
  116. package/dist/esm/select/styles.js +141 -0
  117. package/dist/esm/select/styles.js.map +1 -0
  118. package/dist/esm/tab/index.d.ts +12 -0
  119. package/dist/esm/tab/index.js +16 -0
  120. package/dist/esm/tab/index.js.map +1 -0
  121. package/dist/esm/tab/styles.d.ts +1 -0
  122. package/dist/esm/tab/styles.js +53 -0
  123. package/dist/esm/tab/styles.js.map +1 -0
  124. package/dist/esm/tab-panel/index.d.ts +12 -0
  125. package/dist/esm/tab-panel/index.js +16 -0
  126. package/dist/esm/tab-panel/index.js.map +1 -0
  127. package/dist/esm/tab-panel/styles.d.ts +1 -0
  128. package/dist/esm/tab-panel/styles.js +15 -0
  129. package/dist/esm/tab-panel/styles.js.map +1 -0
  130. package/dist/esm/tabs/index.d.ts +12 -0
  131. package/dist/esm/tabs/index.js +16 -0
  132. package/dist/esm/tabs/index.js.map +1 -0
  133. package/dist/esm/tabs/styles.d.ts +1 -0
  134. package/dist/esm/tabs/styles.js +43 -0
  135. package/dist/esm/tabs/styles.js.map +1 -0
  136. package/dist/esm/tabs-toolbar/index.d.ts +12 -0
  137. package/dist/esm/tabs-toolbar/index.js +15 -0
  138. package/dist/esm/tabs-toolbar/index.js.map +1 -0
  139. package/dist/esm/tabs-toolbar/styles.d.ts +1 -0
  140. package/dist/esm/tabs-toolbar/styles.js +23 -0
  141. package/dist/esm/tabs-toolbar/styles.js.map +1 -0
  142. package/dist/esm/tabs-toolbar/template.d.ts +1 -0
  143. package/dist/esm/tabs-toolbar/template.js +8 -0
  144. package/dist/esm/tabs-toolbar/template.js.map +1 -0
  145. package/dist/esm/testing/async-helpers.d.ts +10 -0
  146. package/dist/esm/testing/async-helpers.js +12 -0
  147. package/dist/esm/testing/async-helpers.js.map +1 -0
  148. package/dist/esm/text-field/index.d.ts +12 -1
  149. package/dist/esm/text-field/index.js +11 -2
  150. package/dist/esm/text-field/index.js.map +1 -1
  151. package/dist/esm/text-field/styles.js +139 -63
  152. package/dist/esm/text-field/styles.js.map +1 -1
  153. package/dist/esm/text-field/types.d.ts +3 -0
  154. package/dist/esm/text-field/types.js +3 -0
  155. package/dist/esm/text-field/types.js.map +1 -0
  156. package/dist/esm/theme-provider/design-tokens.d.ts +34 -3
  157. package/dist/esm/theme-provider/design-tokens.js +128 -15
  158. package/dist/esm/theme-provider/design-tokens.js.map +1 -1
  159. package/dist/esm/theme-provider/index.d.ts +16 -1
  160. package/dist/esm/theme-provider/index.js +16 -31
  161. package/dist/esm/theme-provider/index.js.map +1 -1
  162. package/dist/esm/theme-provider/styles.d.ts +1 -0
  163. package/dist/esm/theme-provider/styles.js +7 -0
  164. package/dist/esm/theme-provider/styles.js.map +1 -0
  165. package/dist/esm/theme-provider/template.d.ts +2 -0
  166. package/dist/esm/theme-provider/template.js +3 -0
  167. package/dist/esm/theme-provider/template.js.map +1 -0
  168. package/dist/esm/theme-provider/types.d.ts +7 -0
  169. package/dist/esm/theme-provider/types.js +8 -0
  170. package/dist/esm/theme-provider/types.js.map +1 -0
  171. package/dist/esm/tree-item/index.d.ts +34 -0
  172. package/dist/esm/tree-item/index.js +117 -0
  173. package/dist/esm/tree-item/index.js.map +1 -0
  174. package/dist/esm/tree-item/styles.d.ts +3 -0
  175. package/dist/esm/tree-item/styles.js +195 -0
  176. package/dist/esm/tree-item/styles.js.map +1 -0
  177. package/dist/esm/tree-view/index.d.ts +22 -0
  178. package/dist/esm/tree-view/index.js +35 -0
  179. package/dist/esm/tree-view/index.js.map +1 -0
  180. package/dist/esm/tree-view/styles.d.ts +1 -0
  181. package/dist/esm/tree-view/styles.js +17 -0
  182. package/dist/esm/tree-view/styles.js.map +1 -0
  183. package/dist/esm/tree-view/types.d.ts +7 -0
  184. package/dist/esm/tree-view/types.js +8 -0
  185. package/dist/esm/tree-view/types.js.map +1 -0
  186. package/dist/esm/utilities/style/focus.d.ts +11 -0
  187. package/dist/esm/utilities/style/focus.js +14 -0
  188. package/dist/esm/utilities/style/focus.js.map +1 -0
  189. package/dist/esm/utilities/style/prefers-reduced-motion.d.ts +8 -0
  190. package/dist/esm/utilities/style/prefers-reduced-motion.js +11 -0
  191. package/dist/esm/utilities/style/prefers-reduced-motion.js.map +1 -0
  192. package/package.json +41 -28
  193. package/dist/esm/button/tests/button.spec.d.ts +0 -1
  194. package/dist/esm/button/tests/button.spec.js +0 -39
  195. package/dist/esm/button/tests/button.spec.js.map +0 -1
  196. package/dist/esm/button/tests/button.stories.d.ts +0 -81
  197. package/dist/esm/button/tests/button.stories.js +0 -59
  198. package/dist/esm/button/tests/button.stories.js.map +0 -1
  199. package/dist/esm/number-field/tests/number-field.stories.d.ts +0 -33
  200. package/dist/esm/number-field/tests/number-field.stories.js +0 -26
  201. package/dist/esm/number-field/tests/number-field.stories.js.map +0 -1
  202. package/dist/esm/shared/icon-font.d.ts +0 -3
  203. package/dist/esm/shared/icon-font.js +0 -6
  204. package/dist/esm/shared/icon-font.js.map +0 -1
  205. package/dist/esm/stories/icons.stories.d.ts +0 -14
  206. package/dist/esm/stories/icons.stories.js +0 -52
  207. package/dist/esm/stories/icons.stories.js.map +0 -1
  208. package/dist/esm/tests/utilities/fixture.d.ts +0 -89
  209. package/dist/esm/tests/utilities/fixture.js +0 -90
  210. package/dist/esm/tests/utilities/fixture.js.map +0 -1
  211. package/dist/esm/tests/utilities/fixture.spec.d.ts +0 -1
  212. package/dist/esm/tests/utilities/fixture.spec.js +0 -73
  213. package/dist/esm/tests/utilities/fixture.spec.js.map +0 -1
  214. package/dist/esm/tests/utilities/setup.d.ts +0 -2
  215. package/dist/esm/tests/utilities/setup.js +0 -7
  216. package/dist/esm/tests/utilities/setup.js.map +0 -1
  217. package/dist/esm/text-field/tests/text-field.stories.d.ts +0 -42
  218. package/dist/esm/text-field/tests/text-field.stories.js +0 -30
  219. package/dist/esm/text-field/tests/text-field.stories.js.map +0 -1
  220. package/dist/esm/theme-provider/themes.d.ts +0 -5
  221. package/dist/esm/theme-provider/themes.js +0 -7
  222. package/dist/esm/theme-provider/themes.js.map +0 -1
@@ -0,0 +1,195 @@
1
+ import { DirectionalStyleSheetBehavior } from '@microsoft/fast-components';
2
+ import { css } from '@microsoft/fast-element';
3
+ import { display, TreeItem } from '@microsoft/fast-foundation';
4
+ import { focusVisible } from '../utilities/style/focus';
5
+ import { contentFontColor, fontFamily, borderColorHover, fillColorSelected, contentFontSize, fillColorHover, fillColorSelectedHover, borderWidth, iconSize } from '../theme-provider/design-tokens';
6
+ import { groupSelectedAttribute } from '../tree-view/types';
7
+ export const styles = (context) => css `
8
+ ${display('block')}
9
+
10
+ :host {
11
+ contain: content;
12
+ position: relative;
13
+ outline: none;
14
+ color: ${contentFontColor};
15
+ cursor: pointer;
16
+ font-family: ${fontFamily};
17
+ --tree-item-nested-width: 0;
18
+ }
19
+
20
+ ${ /* this controls the side border */''}
21
+ :host([${groupSelectedAttribute}])::after {
22
+ background: ${borderColorHover};
23
+ border-radius: 0px;
24
+ content: '';
25
+ display: block;
26
+ position: absolute;
27
+ top: 0px;
28
+ width: calc(${borderWidth} * 2);
29
+ height: calc(${iconSize} * 2);
30
+ }
31
+
32
+ .positioning-region {
33
+ display: flex;
34
+ position: relative;
35
+ box-sizing: border-box;
36
+ height: calc(${iconSize} * 2);
37
+ }
38
+
39
+ .positioning-region:hover {
40
+ background: ${fillColorHover};
41
+ }
42
+
43
+ :host(${focusVisible}) .positioning-region {
44
+ box-shadow: 0px 0px 0px ${borderWidth} ${borderColorHover} inset;
45
+ outline: ${borderWidth} solid ${borderColorHover};
46
+ outline-offset: -2px;
47
+ }
48
+
49
+ :host([selected]) .positioning-region {
50
+ background: ${fillColorSelected};
51
+ }
52
+
53
+ :host([selected]) .positioning-region:hover {
54
+ background: ${fillColorSelectedHover};
55
+ }
56
+
57
+ .positioning-region::before {
58
+ content: '';
59
+ display: block;
60
+ width: var(--tree-item-nested-width);
61
+ flex-shrink: 0;
62
+ }
63
+
64
+ .content-region {
65
+ display: inline-flex;
66
+ align-items: center;
67
+ white-space: nowrap;
68
+ width: 100%;
69
+ padding-left: 10px;
70
+ font-size: ${contentFontSize};
71
+ user-select: none;
72
+ }
73
+
74
+ :host(${focusVisible}) .content-region {
75
+ outline: none;
76
+ }
77
+
78
+ :host(.nested) .content-region {
79
+ position: relative;
80
+ margin-inline-start: ${iconSize};
81
+ }
82
+
83
+ :host([disabled]) .content-region {
84
+ opacity: 0.5;
85
+ cursor: not-allowed;
86
+ }
87
+
88
+ .expand-collapse-button {
89
+ background: none;
90
+ border: none;
91
+ outline: none;
92
+ width: ${iconSize};
93
+ height: ${iconSize};
94
+ padding: 0px;
95
+ justify-content: center;
96
+ align-items: center;
97
+ cursor: pointer;
98
+ margin-left: 10px;
99
+ }
100
+
101
+ :host(.nested) .expand-collapse-button {
102
+ position: absolute;
103
+ }
104
+
105
+ .expand-collapse-button svg {
106
+ width: ${iconSize};
107
+ height: ${iconSize};
108
+ transition: transform 0.2s ease-in;
109
+ pointer-events: none;
110
+ fill: currentcolor;
111
+ }
112
+
113
+ ${
114
+ /* this rule keeps children without an icon text aligned with parents */ ''}
115
+ span[part="start"] {
116
+ width: ${iconSize};
117
+ }
118
+
119
+ ${
120
+ /* the start class is applied when the corresponding slots is filled */ ''}
121
+ .start {
122
+ display: flex;
123
+ fill: currentcolor;
124
+ margin-inline-start: ${iconSize};
125
+ margin-inline-end: ${iconSize};
126
+ }
127
+
128
+ slot[name='start']::slotted(*) {
129
+ width: ${iconSize};
130
+ height: ${iconSize};
131
+ }
132
+
133
+ ::slotted(${context.tagFor(TreeItem)}) {
134
+ --tree-item-nested-width: 1em;
135
+ --expand-collapse-button-nested-width: calc(${iconSize} * -1);
136
+ }
137
+
138
+ ${
139
+ /* the end class is applied when the corresponding slots is filled */ ''}
140
+ .end {
141
+ display: flex;
142
+ fill: currentcolor;
143
+ margin-inline-start: ${iconSize};
144
+ }
145
+
146
+ .items {
147
+ display: none;
148
+ ${
149
+ /*
150
+ * this controls the nested indentation (by affecting .positioning-region::before)
151
+ * it must minimally contain arithmetic with an em and a px value
152
+ * make it larger or shorter by changing the px value
153
+ */ ''}
154
+ font-size: calc(1em + (${iconSize} * 2));
155
+ }
156
+
157
+ :host([expanded]) .items {
158
+ display: block;
159
+ }
160
+ `
161
+ // prettier-ignore
162
+ .withBehaviors(new DirectionalStyleSheetBehavior(css `
163
+ ${ /* ltr styles */''}
164
+ :host(.nested) .expand-collapse-button {
165
+ left: var(
166
+ --expand-collapse-button-nested-width,
167
+ calc(${iconSize} * -1)
168
+ );
169
+ }
170
+
171
+ .expand-collapse-button svg {
172
+ transform: rotate(90deg);
173
+ }
174
+
175
+ :host([expanded]) .expand-collapse-button svg {
176
+ transform: rotate(180deg);
177
+ }
178
+ `, css `
179
+ ${ /* rtl styles */''}
180
+ :host(.nested) .expand-collapse-button {
181
+ right: var(
182
+ --expand-collapse-button-nested-width,
183
+ calc(${iconSize} * -1)
184
+ );
185
+ }
186
+
187
+ .expand-collapse-button svg {
188
+ transform: rotate(180deg);
189
+ }
190
+
191
+ :host([expanded]) .expand-collapse-button svg {
192
+ transform: rotate(135deg);
193
+ }
194
+ `));
195
+ //# sourceMappingURL=styles.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"styles.js","sourceRoot":"","sources":["../../../src/tree-item/styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,6BAA6B,EAAE,MAAM,4BAA4B,CAAC;AAC3E,OAAO,EAAE,GAAG,EAAiB,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EACH,OAAO,EAEP,QAAQ,EAEX,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACxD,OAAO,EACH,gBAAgB,EAChB,UAAU,EACV,gBAAgB,EAChB,iBAAiB,EACjB,eAAe,EACf,cAAc,EACd,sBAAsB,EACtB,WAAW,EACX,QAAQ,EACX,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AAE5D,MAAM,CAAC,MAAM,MAAM,GAGE,CAAC,OAAiC,EAAE,EAAE,CAAC,GAAG,CAAA;UACrD,OAAO,CAAC,OAAO,CAAC;;;;;;qBAML,gBAAgB;;2BAEV,UAAU;;;;UAI3B,CAAA,mCAAoC,EAAE;iBAC/B,sBAAsB;0BACb,gBAAgB;;;;;;0BAMhB,WAAW;2BACV,QAAQ;;;;;;;2BAOR,QAAQ;;;;0BAIT,cAAc;;;gBAGxB,YAAY;sCACU,WAAW,IAAI,gBAAgB;uBAC9C,WAAW,UAAU,gBAAgB;;;;;0BAKlC,iBAAiB;;;;0BAIjB,sBAAsB;;;;;;;;;;;;;;;;yBAgBvB,eAAe;;;;gBAIxB,YAAY;;;;;;mCAMO,QAAQ;;;;;;;;;;;;qBAYtB,QAAQ;sBACP,QAAQ;;;;;;;;;;;;;qBAaT,QAAQ;sBACP,QAAQ;;;;;;UAMpB;AACE,wEAAwE,CAAC,EAC7E;;qBAEa,QAAQ;;;UAGnB;AACE,uEAAuE,CAAC,EAC5E;;;;mCAI2B,QAAQ;iCACV,QAAQ;;;;qBAIpB,QAAQ;sBACP,QAAQ;;;oBAGV,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC;;0DAEc,QAAQ;;;UAGxD;AACE,qEAAqE,CAAC,EAC1E;;;;mCAI2B,QAAQ;;;;;cAK7B;AACE;;;;GAIG,CAAC,EACR;qCACyB,QAAQ;;;;;;KAMxC;IACL,kBAAkB;KACb,aAAa,CACV,IAAI,6BAA6B,CAC7B,GAAG,CAAA;sBACO,CAAA,gBAAiB,EAAE;;;;mCAIN,QAAQ;;;;;;;;;;;iBAW1B,EACL,GAAG,CAAA;sBACO,CAAA,gBAAiB,EAAE;;;;mCAIN,QAAQ;;;;;;;;;;;iBAW1B,CACR,CACJ,CAAC"}
@@ -0,0 +1,22 @@
1
+ import { TreeView as FoundationTreeView } from '@microsoft/fast-foundation';
2
+ import { TreeViewSelectionMode } from './types';
3
+ export type { TreeView };
4
+ declare global {
5
+ interface HTMLElementTagNameMap {
6
+ 'nimble-tree-view': TreeView;
7
+ }
8
+ }
9
+ /**
10
+ * A function that returns a nimble-tree-view registration for configuring the component with a DesignSystem.
11
+ * Implements {@link @microsoft/fast-foundation#treeViewTemplate}
12
+ *
13
+ *
14
+ * @public
15
+ * @remarks
16
+ * Generates HTML Element: \<nimble-tree-view\>
17
+ *
18
+ */
19
+ declare class TreeView extends FoundationTreeView {
20
+ selectionMode: TreeViewSelectionMode;
21
+ connectedCallback(): void;
22
+ }
@@ -0,0 +1,35 @@
1
+ import { __decorate } from "tslib";
2
+ import { attr } from '@microsoft/fast-element';
3
+ import { treeViewTemplate as template, TreeView as FoundationTreeView, DesignSystem } from '@microsoft/fast-foundation';
4
+ import { styles } from './styles';
5
+ import { TreeViewSelectionMode } from './types';
6
+ /**
7
+ * A function that returns a nimble-tree-view registration for configuring the component with a DesignSystem.
8
+ * Implements {@link @microsoft/fast-foundation#treeViewTemplate}
9
+ *
10
+ *
11
+ * @public
12
+ * @remarks
13
+ * Generates HTML Element: \<nimble-tree-view\>
14
+ *
15
+ */
16
+ class TreeView extends FoundationTreeView {
17
+ connectedCallback() {
18
+ super.connectedCallback();
19
+ if (!this.selectionMode) {
20
+ this.selectionMode = TreeViewSelectionMode.All;
21
+ }
22
+ }
23
+ }
24
+ __decorate([
25
+ attr({ attribute: 'selection-mode' })
26
+ ], TreeView.prototype, "selectionMode", void 0);
27
+ const nimbleTreeView = TreeView.compose({
28
+ baseName: 'tree-view',
29
+ baseClass: FoundationTreeView,
30
+ // @ts-expect-error FAST templates have incorrect type, see: https://github.com/microsoft/fast/issues/5047
31
+ template,
32
+ styles
33
+ });
34
+ DesignSystem.getOrCreate().withPrefix('nimble').register(nimbleTreeView());
35
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/tree-view/index.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,yBAAyB,CAAC;AAC/C,OAAO,EACH,gBAAgB,IAAI,QAAQ,EAC5B,QAAQ,IAAI,kBAAkB,EAC9B,YAAY,EACf,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAC;AAUhD;;;;;;;;;GASG;AACH,MAAM,QAAS,SAAQ,kBAAkB;IAI9B,iBAAiB;QACpB,KAAK,CAAC,iBAAiB,EAAE,CAAC;QAC1B,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE;YACrB,IAAI,CAAC,aAAa,GAAG,qBAAqB,CAAC,GAAG,CAAC;SAClD;IACL,CAAC;CACJ;AARG;IADC,IAAI,CAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAC;+CACO;AAUjD,MAAM,cAAc,GAAG,QAAQ,CAAC,OAAO,CAAC;IACpC,QAAQ,EAAE,WAAW;IACrB,SAAS,EAAE,kBAAkB;IAC7B,0GAA0G;IAC1G,QAAQ;IACR,MAAM;CACT,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,17 @@
1
+ import { css } from '@microsoft/fast-element';
2
+ import { display } from '@microsoft/fast-foundation';
3
+ import { focusVisible } from '../utilities/style/focus';
4
+ export const styles = css `
5
+ ${display('flex')}
6
+
7
+ :host {
8
+ flex-direction: column;
9
+ align-items: stretch;
10
+ min-width: fit-content;
11
+ font-size: 0;
12
+ }
13
+ :host(${focusVisible}) {
14
+ outline: none;
15
+ }
16
+ `;
17
+ //# sourceMappingURL=styles.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"styles.js","sourceRoot":"","sources":["../../../src/tree-view/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,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA;MACnB,OAAO,CAAC,MAAM,CAAC;;;;;;;;YAQT,YAAY;;;CAGvB,CAAC"}
@@ -0,0 +1,7 @@
1
+ export declare const pinnedSelectedAttribute = "pinned-selected";
2
+ export declare const groupSelectedAttribute = "group-selected";
3
+ export declare type TreeViewSelectionModeAttribute = 'all' | 'leaves-only';
4
+ export declare enum TreeViewSelectionMode {
5
+ All = "all",
6
+ LeavesOnly = "leaves-only"
7
+ }
@@ -0,0 +1,8 @@
1
+ export const pinnedSelectedAttribute = 'pinned-selected';
2
+ export const groupSelectedAttribute = 'group-selected';
3
+ export var TreeViewSelectionMode;
4
+ (function (TreeViewSelectionMode) {
5
+ TreeViewSelectionMode["All"] = "all";
6
+ TreeViewSelectionMode["LeavesOnly"] = "leaves-only";
7
+ })(TreeViewSelectionMode || (TreeViewSelectionMode = {}));
8
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/tree-view/types.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,uBAAuB,GAAG,iBAAiB,CAAC;AACzD,MAAM,CAAC,MAAM,sBAAsB,GAAG,gBAAgB,CAAC;AAGvD,MAAM,CAAN,IAAY,qBAGX;AAHD,WAAY,qBAAqB;IAC7B,oCAAW,CAAA;IACX,mDAA0B,CAAA;AAC9B,CAAC,EAHW,qBAAqB,KAArB,qBAAqB,QAGhC"}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * This file is a workaround for: https://github.com/prettier/prettier/issues/11400
3
+ */
4
+ /**
5
+ * The string representing the focus selector to be used. Value
6
+ * will be ":focus-visible" when https://drafts.csswg.org/selectors-4/#the-focus-visible-pseudo
7
+ * is supported and ":focus" when it is not.
8
+ *
9
+ * @public
10
+ */
11
+ export declare const focusVisible: string;
@@ -0,0 +1,14 @@
1
+ /**
2
+ * This file is a workaround for: https://github.com/prettier/prettier/issues/11400
3
+ */
4
+ // eslint-disable-next-line
5
+ import { focusVisible as focusVisibleOriginal } from '@microsoft/fast-foundation';
6
+ /**
7
+ * The string representing the focus selector to be used. Value
8
+ * will be ":focus-visible" when https://drafts.csswg.org/selectors-4/#the-focus-visible-pseudo
9
+ * is supported and ":focus" when it is not.
10
+ *
11
+ * @public
12
+ */
13
+ export const focusVisible = `:${focusVisibleOriginal}`;
14
+ //# sourceMappingURL=focus.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"focus.js","sourceRoot":"","sources":["../../../../src/utilities/style/focus.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,2BAA2B;AAC3B,OAAO,EAAE,YAAY,IAAI,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAElF;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,IAAI,oBAAoB,EAAE,CAAC"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Singleton utility to watch the prefers-reduced-motion media value
3
+ */
4
+ export declare class PrefersReducedMotionWatcher {
5
+ static instance: PrefersReducedMotionWatcher;
6
+ readonly mediaQuery: MediaQueryList;
7
+ private constructor();
8
+ }
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Singleton utility to watch the prefers-reduced-motion media value
3
+ */
4
+ export class PrefersReducedMotionWatcher {
5
+ // eslint-disable-next-line @typescript-eslint/no-empty-function
6
+ constructor() {
7
+ this.mediaQuery = window.matchMedia('(prefers-reduced-motion: reduce)');
8
+ }
9
+ }
10
+ PrefersReducedMotionWatcher.instance = new PrefersReducedMotionWatcher();
11
+ //# sourceMappingURL=prefers-reduced-motion.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prefers-reduced-motion.js","sourceRoot":"","sources":["../../../../src/utilities/style/prefers-reduced-motion.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,OAAO,2BAA2B;IAQpC,gEAAgE;IAChE;QALgB,eAAU,GAAmB,MAAM,CAAC,UAAU,CAC1D,kCAAkC,CACrC,CAAC;IAGqB,CAAC;;AARV,oCAAQ,GACtB,IAAI,2BAA2B,EAAE,CAAC"}
package/package.json CHANGED
@@ -1,24 +1,30 @@
1
1
  {
2
2
  "name": "@ni/nimble-components",
3
- "version": "1.0.0-beta.12",
3
+ "version": "1.0.0-beta.120",
4
4
  "description": "Styled web components for the NI Nimble Design System",
5
5
  "scripts": {
6
6
  "build": "npm run build-components && npm run build-storybook",
7
- "lint": "eslint .",
8
- "lint-fix": "eslint src --fix",
7
+ "lint": "npm run eslint && npm run prettier",
8
+ "format": "npm run eslint-fix && npm run prettier-fix",
9
+ "eslint": "eslint .",
10
+ "eslint-fix": "eslint src --fix",
11
+ "prettier": "prettier-eslint \"**/*.*\" --list-different --prettier-ignore",
12
+ "prettier-fix": "prettier-eslint \"**/*.*\" --write --prettier-ignore",
9
13
  "pack": "npm pack",
14
+ "invoke-publish": "npm publish",
10
15
  "storybook": "start-storybook -p 6006",
11
16
  "build-storybook": "build-storybook -o dist/storybook",
12
17
  "build-components": "tsc -p ./tsconfig.json",
13
18
  "build-components:watch": "tsc -p ./tsconfig.json -w",
14
19
  "chromatic": "chromatic",
15
- "tdd": "npm run build-components && npm run test",
20
+ "tdd": "npm run build-components && npm run test-chrome",
16
21
  "tdd:watch": "npm run build-components:watch & npm run test-chrome:watch",
17
22
  "test-chrome:debugger": "karma start karma.conf.js --browsers=ChromeDebugging",
23
+ "test-chrome:verbose": "karma start karma.conf.verbose.js --browsers=ChromeHeadlessOpt --single-run",
18
24
  "test-chrome:watch": "karma start karma.conf.js --browsers=ChromeHeadlessOpt --watch-extensions js",
19
25
  "test-chrome": "karma start karma.conf.js --browsers=ChromeHeadlessOpt --single-run",
20
26
  "test-firefox": "karma start karma.conf.js --browsers=FirefoxHeadless --single-run",
21
- "test": "npm run test-chrome"
27
+ "test": "npm run test-chrome:verbose"
22
28
  },
23
29
  "repository": {
24
30
  "type": "git",
@@ -32,14 +38,12 @@
32
38
  "url": "https://github.com/ni/nimble/issues"
33
39
  },
34
40
  "homepage": "https://github.com/ni/nimble#readme",
35
- "files": [
36
- "dist/esm/**"
37
- ],
38
41
  "dependencies": {
42
+ "@microsoft/fast-animation": "^4.1.5",
39
43
  "@microsoft/fast-components": "^2.0.0",
40
- "@microsoft/fast-element": "^1.4.0",
41
- "@microsoft/fast-foundation": "^2.0.0",
42
- "@ni/nimble-tokens": "^1.0.0-beta.4",
44
+ "@microsoft/fast-element": "^1.6.1",
45
+ "@microsoft/fast-foundation": "^2.22.0",
46
+ "@ni/nimble-tokens": "^1.0.0-beta.36",
43
47
  "hex-rgb": "^5.0.0",
44
48
  "lodash-es": "^4.17.21"
45
49
  },
@@ -47,24 +51,29 @@
47
51
  "@babel/cli": "^7.13.16",
48
52
  "@babel/core": "^7.14.6",
49
53
  "@babel/preset-env": "^7.13.15",
50
- "@ni/eslint-config": "^1.0.0",
51
- "@storybook/addon-a11y": "^6.3.4",
52
- "@storybook/addon-actions": "^6.3.4",
53
- "@storybook/addon-essentials": "^6.3.4",
54
- "@storybook/addon-links": "^6.3.4",
55
- "@storybook/builder-webpack5": "^6.3.4",
56
- "@storybook/html": "^6.3.4",
57
- "@storybook/manager-webpack5": "^6.3.4",
58
- "@types/jasmine": "~3.6.0",
54
+ "@ni/eslint-config-typescript": "^3.0.5",
55
+ "@storybook/addon-a11y": "^6.4.0",
56
+ "@storybook/addon-actions": "^6.4.0",
57
+ "@storybook/addon-docs": "^6.4.0",
58
+ "@storybook/addon-essentials": "^6.4.0",
59
+ "@storybook/addon-interactions": "^6.4.0",
60
+ "@storybook/addon-links": "^6.4.0",
61
+ "@storybook/addons": "^6.4.0",
62
+ "@storybook/builder-webpack5": "^6.4.0",
63
+ "@storybook/html": "^6.4.0",
64
+ "@storybook/jest": "^0.0.5",
65
+ "@storybook/manager-webpack5": "^6.4.0",
66
+ "@storybook/testing-library": "^0.0.7",
67
+ "@storybook/theming": "^6.4.0",
68
+ "@types/jasmine": "^3.6.0",
59
69
  "@types/webpack-env": "^1.15.2",
60
- "@typescript-eslint/eslint-plugin": "^4.28.1",
61
70
  "babel-loader": "^8.2.2",
62
71
  "chromatic": "^5.9.2",
63
72
  "circular-dependency-plugin": "^5.2.0",
64
- "css-loader": "^5.2.4",
73
+ "css-loader": "^6.2.0",
65
74
  "dotenv-webpack": "^7.0.2",
66
- "eslint": "^7.29.0",
67
- "eslint-plugin-import": "^2.23.4",
75
+ "eslint-plugin-jsdoc": "^36.1.0",
76
+ "eslint-plugin-storybook": "^0.5.1",
68
77
  "html-webpack-plugin": "^5.3.1",
69
78
  "jasmine-core": "^3.7.0",
70
79
  "karma": "^6.3.0",
@@ -74,13 +83,17 @@
74
83
  "karma-jasmine-html-reporter": "^1.5.0",
75
84
  "karma-source-map-support": "^1.4.0",
76
85
  "karma-sourcemap-loader": "^0.3.7",
86
+ "karma-spec-reporter": "^0.0.32",
77
87
  "karma-webpack": "^5.0.0",
88
+ "prettier": "^2.0.0",
89
+ "prettier-eslint": "^13.0.0",
90
+ "prettier-eslint-cli": "^5.0.1",
78
91
  "puppeteer": "^10.1.0",
79
- "storybook-addon-xd-designs": "^5.5.0",
80
- "ts-loader": "^7.0.2",
81
- "typescript": "^4.3.4",
92
+ "storybook-addon-xd-designs": "file:storybook-addon-xd-designs-6.0.0.tgz",
93
+ "ts-loader": "^9.2.5",
94
+ "typescript": "^4.3.2",
82
95
  "webpack": "^5.37.0",
83
96
  "webpack-cli": "^4.6.0",
84
- "webpack-dev-middleware": "^4.2.0"
97
+ "webpack-dev-middleware": "^5.0.0"
85
98
  }
86
99
  }
@@ -1 +0,0 @@
1
- import '../index';
@@ -1,39 +0,0 @@
1
- import { DOM } from '@microsoft/fast-element';
2
- import { fixture } from '../../tests/utilities/fixture';
3
- import '../index';
4
- async function setup() {
5
- return fixture('nimble-button');
6
- }
7
- describe('Button', () => {
8
- it('should set the `autofocus` attribute on the internal button when provided', async () => {
9
- const { element, connect, disconnect } = await setup();
10
- element.autofocus = true;
11
- await connect();
12
- expect(element.shadowRoot?.querySelector('button')?.hasAttribute('autofocus')).toBe(true);
13
- await disconnect();
14
- });
15
- describe("of type 'submit'", () => {
16
- it('should submit the parent form when clicked', async () => {
17
- const { element, parent, connect, disconnect } = await setup();
18
- const form = document.createElement('form');
19
- element.setAttribute('type', 'submit');
20
- form.appendChild(element);
21
- parent.appendChild(form);
22
- await connect();
23
- const wasSumbitted = await new Promise(resolve => {
24
- // Resolve as true when the event listener is handled
25
- form.addEventListener('submit', (event) => {
26
- event.preventDefault();
27
- expect(event.submitter).toEqual(element.proxy);
28
- resolve(true);
29
- });
30
- element.click();
31
- // Resolve false on the next update in case reset hasn't happened
32
- DOM.queueUpdate(() => resolve(false));
33
- });
34
- expect(wasSumbitted).toBe(true);
35
- await disconnect();
36
- });
37
- });
38
- });
39
- //# sourceMappingURL=button.spec.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"button.spec.js","sourceRoot":"","sources":["../../../../src/button/tests/button.spec.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,yBAAyB,CAAC;AAC9C,OAAO,EAAE,OAAO,EAAW,MAAM,+BAA+B,CAAC;AAEjE,OAAO,UAAU,CAAC;AAElB,KAAK,UAAU,KAAK;IAChB,OAAO,OAAO,CAAS,eAAe,CAAC,CAAC;AAC5C,CAAC;AAED,QAAQ,CAAC,QAAQ,EAAE,GAAG,EAAE;IACpB,EAAE,CAAC,2EAA2E,EAAE,KAAK,IAAI,EAAE;QACvF,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,GAAG,MAAM,KAAK,EAAE,CAAC;QAEvD,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC;QAEzB,MAAM,OAAO,EAAE,CAAC;QAEhB,MAAM,CACF,OAAO,CAAC,UAAU,EAAE,aAAa,CAAC,QAAQ,CAAC,EAAE,YAAY,CAAC,WAAW,CAAC,CACzE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAEb,MAAM,UAAU,EAAE,CAAC;IACvB,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,kBAAkB,EAAE,GAAG,EAAE;QAC9B,EAAE,CAAC,4CAA4C,EAAE,KAAK,IAAI,EAAE;YACxD,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,GAAG,MAAM,KAAK,EAAE,CAAC;YAC/D,MAAM,IAAI,GAAG,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;YAC5C,OAAO,CAAC,YAAY,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;YACvC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;YAC1B,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;YAEzB,MAAM,OAAO,EAAE,CAAC;YAEhB,MAAM,YAAY,GAAG,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE;gBAC7C,qDAAqD;gBACrD,IAAI,CAAC,gBAAgB,CACjB,QAAQ,EACR,CAAC,KAAyC,EAAE,EAAE;oBAC1C,KAAK,CAAC,cAAc,EAAE,CAAC;oBACvB,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;oBAC/C,OAAO,CAAC,IAAI,CAAC,CAAC;gBAClB,CAAC,CACJ,CAAC;gBAEF,OAAO,CAAC,KAAK,EAAE,CAAC;gBAEhB,iEAAiE;gBACjE,GAAG,CAAC,WAAW,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;YAC1C,CAAC,CAAC,CAAC;YAEH,MAAM,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAEhC,MAAM,UAAU,EAAE,CAAC;QACvB,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC"}
@@ -1,81 +0,0 @@
1
- import { ButtonAppearance } from '../types';
2
- import '../index';
3
- declare const _default: {
4
- title: string;
5
- decorators: ((...args: any) => any)[];
6
- parameters: {
7
- design: {
8
- artboardUrl: string;
9
- };
10
- actions: {
11
- handles: string[];
12
- };
13
- };
14
- argTypes: {
15
- appearance: {
16
- options: ButtonAppearance[];
17
- control: {
18
- type: string;
19
- };
20
- };
21
- disabled: {
22
- options: string[];
23
- control: {
24
- type: string;
25
- };
26
- };
27
- };
28
- render: ({ label, appearance, disabled }: {
29
- label: string;
30
- appearance: string;
31
- disabled: string;
32
- }) => string;
33
- args: {
34
- label: string;
35
- appearance: string;
36
- };
37
- };
38
- export default _default;
39
- export declare const defaultButton: {
40
- (): string;
41
- parameters: any;
42
- };
43
- export declare const outlineButton: {
44
- args: {
45
- label: string;
46
- appearance: ButtonAppearance;
47
- };
48
- };
49
- export declare const ghostButton: {
50
- args: {
51
- label: string;
52
- appearance: ButtonAppearance;
53
- };
54
- };
55
- export declare const blockButton: {
56
- args: {
57
- label: string;
58
- appearance: ButtonAppearance;
59
- };
60
- };
61
- export declare const outlineButtonDisabled: {
62
- args: {
63
- disabled: string;
64
- label: string;
65
- appearance: ButtonAppearance;
66
- };
67
- };
68
- export declare const ghostButtonDisabled: {
69
- args: {
70
- disabled: string;
71
- label: string;
72
- appearance: ButtonAppearance;
73
- };
74
- };
75
- export declare const blockButtonDisabled: {
76
- args: {
77
- disabled: string;
78
- label: string;
79
- appearance: ButtonAppearance;
80
- };
81
- };