@ni/nimble-components 1.0.0-beta.81 → 1.0.0-beta.85

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 (142) hide show
  1. package/dist/esm/button/index.js +1 -2
  2. package/dist/esm/button/index.js.map +1 -1
  3. package/dist/esm/button/styles.js +5 -11
  4. package/dist/esm/button/styles.js.map +1 -1
  5. package/dist/esm/button/tests/button-matrix.stories.d.ts +1 -0
  6. package/dist/esm/button/tests/button-matrix.stories.js +10 -5
  7. package/dist/esm/button/tests/button-matrix.stories.js.map +1 -1
  8. package/dist/esm/button/tests/button.stories.d.ts +1 -0
  9. package/dist/esm/button/tests/button.stories.js +2 -2
  10. package/dist/esm/button/tests/button.stories.js.map +1 -1
  11. package/dist/esm/checkbox/index.js +1 -1
  12. package/dist/esm/checkbox/index.js.map +1 -1
  13. package/dist/esm/drawer/animations.d.ts +14 -0
  14. package/dist/esm/drawer/animations.js +52 -0
  15. package/dist/esm/drawer/animations.js.map +1 -0
  16. package/dist/esm/drawer/index.d.ts +39 -0
  17. package/dist/esm/drawer/index.js +189 -0
  18. package/dist/esm/drawer/index.js.map +1 -0
  19. package/dist/esm/drawer/styles.d.ts +1 -0
  20. package/dist/esm/drawer/styles.js +109 -0
  21. package/dist/esm/drawer/styles.js.map +1 -0
  22. package/dist/esm/drawer/tests/drawer-matrix.stories.d.ts +9 -0
  23. package/dist/esm/drawer/tests/drawer-matrix.stories.js +48 -0
  24. package/dist/esm/drawer/tests/drawer-matrix.stories.js.map +1 -0
  25. package/dist/esm/drawer/tests/drawer.spec.d.ts +1 -0
  26. package/dist/esm/drawer/tests/drawer.spec.js +59 -0
  27. package/dist/esm/drawer/tests/drawer.spec.js.map +1 -0
  28. package/dist/esm/drawer/tests/drawer.stories.d.ts +20 -0
  29. package/dist/esm/drawer/tests/drawer.stories.js +98 -0
  30. package/dist/esm/drawer/tests/drawer.stories.js.map +1 -0
  31. package/dist/esm/drawer/types.d.ts +10 -0
  32. package/dist/esm/drawer/types.js +13 -0
  33. package/dist/esm/drawer/types.js.map +1 -0
  34. package/dist/esm/icon-base/index.d.ts +4 -1
  35. package/dist/esm/icon-base/index.js +12 -1
  36. package/dist/esm/icon-base/index.js.map +1 -1
  37. package/dist/esm/icon-base/template.js +3 -3
  38. package/dist/esm/icon-base/template.js.map +1 -1
  39. package/dist/esm/icon-base/tests/icon-matrix.stories.d.ts +0 -1
  40. package/dist/esm/icon-base/tests/icon-matrix.stories.js +5 -5
  41. package/dist/esm/icon-base/tests/icon-matrix.stories.js.map +1 -1
  42. package/dist/esm/icon-base/tests/icons.stories.js +18 -2
  43. package/dist/esm/icon-base/tests/icons.stories.js.map +1 -1
  44. package/dist/esm/icons/access-control.d.ts +1 -3
  45. package/dist/esm/icons/access-control.js +3 -22
  46. package/dist/esm/icons/access-control.js.map +1 -1
  47. package/dist/esm/icons/admin.d.ts +1 -3
  48. package/dist/esm/icons/admin.js +3 -20
  49. package/dist/esm/icons/admin.js.map +1 -1
  50. package/dist/esm/icons/administration.d.ts +1 -3
  51. package/dist/esm/icons/administration.js +3 -22
  52. package/dist/esm/icons/administration.js.map +1 -1
  53. package/dist/esm/icons/all-icons.d.ts +13 -39
  54. package/dist/esm/icons/all-icons.js +13 -30
  55. package/dist/esm/icons/all-icons.js.map +1 -1
  56. package/dist/esm/icons/check.d.ts +1 -3
  57. package/dist/esm/icons/check.js +3 -20
  58. package/dist/esm/icons/check.js.map +1 -1
  59. package/dist/esm/icons/custom-applications.d.ts +1 -3
  60. package/dist/esm/icons/custom-applications.js +3 -22
  61. package/dist/esm/icons/custom-applications.js.map +1 -1
  62. package/dist/esm/icons/delete.d.ts +1 -3
  63. package/dist/esm/icons/delete.js +3 -20
  64. package/dist/esm/icons/delete.js.map +1 -1
  65. package/dist/esm/icons/login.d.ts +1 -3
  66. package/dist/esm/icons/login.js +3 -20
  67. package/dist/esm/icons/login.js.map +1 -1
  68. package/dist/esm/icons/logout.d.ts +1 -3
  69. package/dist/esm/icons/logout.js +3 -20
  70. package/dist/esm/icons/logout.js.map +1 -1
  71. package/dist/esm/icons/managed-systems.d.ts +1 -3
  72. package/dist/esm/icons/managed-systems.js +3 -22
  73. package/dist/esm/icons/managed-systems.js.map +1 -1
  74. package/dist/esm/icons/measurement-data-analysis.d.ts +1 -3
  75. package/dist/esm/icons/measurement-data-analysis.js +3 -22
  76. package/dist/esm/icons/measurement-data-analysis.js.map +1 -1
  77. package/dist/esm/icons/settings.d.ts +1 -3
  78. package/dist/esm/icons/settings.js +3 -20
  79. package/dist/esm/icons/settings.js.map +1 -1
  80. package/dist/esm/icons/test-insights.d.ts +1 -3
  81. package/dist/esm/icons/test-insights.js +3 -22
  82. package/dist/esm/icons/test-insights.js.map +1 -1
  83. package/dist/esm/icons/utilities.d.ts +1 -3
  84. package/dist/esm/icons/utilities.js +3 -20
  85. package/dist/esm/icons/utilities.js.map +1 -1
  86. package/dist/esm/menu/index.d.ts +0 -10
  87. package/dist/esm/menu/index.js +1 -1
  88. package/dist/esm/menu/index.js.map +1 -1
  89. package/dist/esm/menu/styles.js +15 -1
  90. package/dist/esm/menu/styles.js.map +1 -1
  91. package/dist/esm/menu/tests/menu-matrix.stories.d.ts +1 -0
  92. package/dist/esm/menu/tests/menu-matrix.stories.js +5 -5
  93. package/dist/esm/menu/tests/menu-matrix.stories.js.map +1 -1
  94. package/dist/esm/menu/tests/menu.stories.d.ts +6 -2
  95. package/dist/esm/menu/tests/menu.stories.js +78 -14
  96. package/dist/esm/menu/tests/menu.stories.js.map +1 -1
  97. package/dist/esm/menu-item/styles.js +2 -3
  98. package/dist/esm/menu-item/styles.js.map +1 -1
  99. package/dist/esm/number-field/index.js +2 -2
  100. package/dist/esm/number-field/index.js.map +1 -1
  101. package/dist/esm/tab/index.d.ts +0 -1
  102. package/dist/esm/tab/index.js +1 -1
  103. package/dist/esm/tab/index.js.map +1 -1
  104. package/dist/esm/tab-panel/index.d.ts +0 -1
  105. package/dist/esm/tab-panel/index.js +1 -1
  106. package/dist/esm/tab-panel/index.js.map +1 -1
  107. package/dist/esm/tabs/index.d.ts +0 -3
  108. package/dist/esm/tabs/index.js +1 -6
  109. package/dist/esm/tabs/index.js.map +1 -1
  110. package/dist/esm/tabs/tests/tabs-matrix.stories.d.ts +3 -0
  111. package/dist/esm/tabs/tests/tabs-matrix.stories.js +3 -0
  112. package/dist/esm/tabs/tests/tabs-matrix.stories.js.map +1 -1
  113. package/dist/esm/tabs/tests/tabs.stories.d.ts +4 -1
  114. package/dist/esm/tabs/tests/tabs.stories.js +4 -1
  115. package/dist/esm/tabs/tests/tabs.stories.js.map +1 -1
  116. package/dist/esm/tabs-toolbar/template.js +1 -1
  117. package/dist/esm/tests/utilities/theme-test-helpers.d.ts +5 -4
  118. package/dist/esm/tests/utilities/theme-test-helpers.js +9 -18
  119. package/dist/esm/tests/utilities/theme-test-helpers.js.map +1 -1
  120. package/dist/esm/text-field/index.js +1 -1
  121. package/dist/esm/text-field/index.js.map +1 -1
  122. package/dist/esm/theme-provider/design-tokens.d.ts +4 -0
  123. package/dist/esm/theme-provider/design-tokens.js +5 -1
  124. package/dist/esm/theme-provider/design-tokens.js.map +1 -1
  125. package/dist/esm/theme-provider/index.d.ts +10 -1
  126. package/dist/esm/theme-provider/index.js +2 -8
  127. package/dist/esm/theme-provider/index.js.map +1 -1
  128. package/dist/esm/theme-provider/template.d.ts +2 -0
  129. package/dist/esm/theme-provider/template.js +3 -0
  130. package/dist/esm/theme-provider/template.js.map +1 -0
  131. package/dist/esm/tree-item/index.js +1 -1
  132. package/dist/esm/tree-item/index.js.map +1 -1
  133. package/dist/esm/tree-view/tests/tree-view-matrix.stories.d.ts +2 -0
  134. package/dist/esm/tree-view/tests/tree-view-matrix.stories.js +10 -13
  135. package/dist/esm/tree-view/tests/tree-view-matrix.stories.js.map +1 -1
  136. package/dist/esm/tree-view/tests/tree-view.stories.d.ts +2 -0
  137. package/dist/esm/tree-view/tests/tree-view.stories.js +7 -6
  138. package/dist/esm/tree-view/tests/tree-view.stories.js.map +1 -1
  139. package/package.json +2 -1
  140. package/dist/esm/button/tests/button.spec.d.ts +0 -1
  141. package/dist/esm/button/tests/button.spec.js +0 -23
  142. package/dist/esm/button/tests/button.spec.js.map +0 -1
@@ -1,5 +1,5 @@
1
1
  import { __decorate } from "tslib";
2
- import { attr, html } from '@microsoft/fast-element';
2
+ 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';
@@ -29,7 +29,6 @@ __decorate([
29
29
  const nimbleButton = Button.compose({
30
30
  baseName: 'button',
31
31
  template,
32
- start: html `<span part="icon"><slot name="icon"></slot></span>`,
33
32
  styles,
34
33
  shadowOptions: {
35
34
  delegatesFocus: true
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/button/index.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,yBAAyB,CAAC;AACrD,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,KAAK,EAAE,IAAI,CAAQ,oDAAoD;IACvE,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,6 +1,6 @@
1
1
  import { css } from '@microsoft/fast-element';
2
2
  import { focusVisible } from '../utilities/style/focus';
3
- import { actionColorRgb, borderColorHover, borderColorRgb, borderWidth, buttonContentFontColor, contentFontColorDisabled, contentFontSize, controlHeight, fillColorSelected, fontFamily, iconSize, smallDelay, standardPadding } from '../theme-provider/design-tokens';
3
+ import { actionColorRgb, borderColorHover, borderColorRgb, borderWidth, buttonContentFontColor, contentFontColorDisabled, contentFontSize, controlHeight, fillColorSelected, fontFamily, smallDelay, standardPadding } from '../theme-provider/design-tokens';
4
4
  import { appearanceBehavior } from './behaviors';
5
5
  import { ButtonAppearance } from './types';
6
6
  export const styles = css `
@@ -85,23 +85,17 @@ export const styles = css `
85
85
  display: contents;
86
86
  }
87
87
 
88
- [part='icon'] {
89
- display: contents;
88
+ slot[name='start']::slotted(*) {
89
+ --icon-color: ${buttonContentFontColor};
90
90
  }
91
91
 
92
- slot[name='icon']::slotted(*) {
93
- width: ${iconSize};
94
- height: ${iconSize};
95
- fill: ${buttonContentFontColor};
92
+ :host([disabled]) slot[name='start']::slotted(*) {
93
+ opacity: 0.6;
96
94
  }
97
95
 
98
96
  [part='end'] {
99
97
  display: none;
100
98
  }
101
-
102
- :host([disabled]) slot[name='icon']::slotted(*) {
103
- opacity: 0.6;
104
- }
105
99
  `
106
100
  // prettier-ignore
107
101
  .withBehaviors(appearanceBehavior(ButtonAppearance.Outline, css `
@@ -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,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,QAAQ,EACR,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;;;;kBAIP,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;;;;;;;;;;;;;;;;;;;;;;;;;;;iBA2BvC,QAAQ;kBACP,QAAQ;gBACV,sBAAsB;;;;;;;;;;CAUrC;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"}
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,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;;;;kBAIP,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"}
@@ -1,5 +1,6 @@
1
1
  import type { Meta, Story } from '@storybook/html';
2
2
  import '../index';
3
+ import '../../icons/access-control';
3
4
  declare const metadata: Meta;
4
5
  export default metadata;
5
6
  export declare const defaultButton: (source: any) => Node;
@@ -1,9 +1,10 @@
1
1
  import { withXD } from 'storybook-addon-xd-designs';
2
- import { html } from '@microsoft/fast-element';
2
+ import { html, when } from '@microsoft/fast-element';
3
3
  import { ButtonAppearance } from '../types';
4
- import { disabledStates, iconStates, createMatrix, themeWrapper } from '../../tests/utilities/theme-test-helpers';
4
+ import { disabledStates, iconVisibleStates, createMatrix, themeWrapper } from '../../tests/utilities/theme-test-helpers';
5
5
  import { createRenderer } from '../../tests/utilities/storybook-test-helpers';
6
6
  import '../index';
7
+ import '../../icons/access-control';
7
8
  const metadata = {
8
9
  title: 'Tests/Button',
9
10
  decorators: [withXD],
@@ -19,11 +20,15 @@ export const defaultButton = createRenderer(html `<nimble-button>Default Button<
19
20
  const noContent = 'NO_CONTENT';
20
21
  const appearanceStates = [...Object.entries(ButtonAppearance), [noContent, '']];
21
22
  // prettier-ignore
22
- const component = ([disabledName, disabled], [appearanceName, appearance], icon) => html `
23
+ const component = ([disabledName, disabled], [appearanceName, appearance], iconVisible) => html `
23
24
  <nimble-button appearance="${() => appearance}" ?disabled=${() => disabled}>
24
- ${() => icon}
25
+ ${when(() => iconVisible, html `<nimble-access-control-icon></nimble-access-control-icon>`)}
25
26
  ${() => (appearanceName === noContent ? '' : `${appearanceName} Button ${disabledName}`)}
26
27
  </nimble-button>
27
28
  `;
28
- export const buttonThemeMatrix = createRenderer(themeWrapper(createMatrix(component, [disabledStates, appearanceStates, iconStates])));
29
+ export const buttonThemeMatrix = createRenderer(themeWrapper(createMatrix(component, [
30
+ disabledStates,
31
+ appearanceStates,
32
+ iconVisibleStates
33
+ ])));
29
34
  //# sourceMappingURL=button-matrix.stories.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"button-matrix.stories.js","sourceRoot":"","sources":["../../../../src/button/tests/button-matrix.stories.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAC;AACpD,OAAO,EAAE,IAAI,EAAgB,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAC5C,OAAO,EACH,cAAc,EAEd,UAAU,EAEV,YAAY,EACZ,YAAY,EACf,MAAM,0CAA0C,CAAC;AAClD,OAAO,EAAE,cAAc,EAAE,MAAM,8CAA8C,CAAC;AAC9E,OAAO,UAAU,CAAC;AAElB,MAAM,QAAQ,GAAS;IACnB,KAAK,EAAE,cAAc;IACrB,UAAU,EAAE,CAAC,MAAM,CAAC;IACpB,UAAU,EAAE;QACR,MAAM,EAAE;YACJ,WAAW,EACP,wHAAwH;SAC/H;QACD,QAAQ,EAAE,EAAE,qBAAqB,EAAE,IAAI,EAAE;KAC5C;CACJ,CAAC;AAEF,eAAe,QAAQ,CAAC;AAExB,MAAM,CAAC,MAAM,aAAa,GAAG,cAAc,CACvC,IAAI,CAAA,+CAA+C,CACtD,CAAC;AACF,MAAM,SAAS,GAAG,YAAY,CAAC;AAC/B,MAAM,gBAAgB,GAAG,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC,gBAAgB,CAAC,EAAE,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,CAAC;AAGhF,kBAAkB;AAClB,MAAM,SAAS,GAAG,CACd,CAAC,YAAY,EAAE,QAAQ,CAAgB,EACvC,CAAC,cAAc,EAAE,UAAU,CAAkB,EAC7C,IAAe,EACH,EAAE,CAAC,IAAI,CAAA;iCACU,GAAG,EAAE,CAAC,UAAU,eAAe,GAAG,EAAE,CAAC,QAAQ;UACpE,GAAG,EAAE,CAAC,IAAI;UACV,GAAG,EAAE,CAAC,CAAC,cAAc,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,cAAc,WAAW,YAAY,EAAE,CAAC;;CAE/F,CAAC;AAEF,MAAM,CAAC,MAAM,iBAAiB,GAAU,cAAc,CAClD,YAAY,CACR,YAAY,CAAC,SAAS,EAAE,CAAC,cAAc,EAAE,gBAAgB,EAAE,UAAU,CAAC,CAAC,CAC1E,CACJ,CAAC"}
1
+ {"version":3,"file":"button-matrix.stories.js","sourceRoot":"","sources":["../../../../src/button/tests/button-matrix.stories.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAC;AACpD,OAAO,EAAE,IAAI,EAAgB,IAAI,EAAE,MAAM,yBAAyB,CAAC;AACnE,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAC5C,OAAO,EACH,cAAc,EAEd,iBAAiB,EAEjB,YAAY,EACZ,YAAY,EACf,MAAM,0CAA0C,CAAC;AAClD,OAAO,EAAE,cAAc,EAAE,MAAM,8CAA8C,CAAC;AAC9E,OAAO,UAAU,CAAC;AAClB,OAAO,4BAA4B,CAAC;AAEpC,MAAM,QAAQ,GAAS;IACnB,KAAK,EAAE,cAAc;IACrB,UAAU,EAAE,CAAC,MAAM,CAAC;IACpB,UAAU,EAAE;QACR,MAAM,EAAE;YACJ,WAAW,EACP,wHAAwH;SAC/H;QACD,QAAQ,EAAE,EAAE,qBAAqB,EAAE,IAAI,EAAE;KAC5C;CACJ,CAAC;AAEF,eAAe,QAAQ,CAAC;AAExB,MAAM,CAAC,MAAM,aAAa,GAAG,cAAc,CACvC,IAAI,CAAA,+CAA+C,CACtD,CAAC;AACF,MAAM,SAAS,GAAG,YAAY,CAAC;AAC/B,MAAM,gBAAgB,GAAG,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC,gBAAgB,CAAC,EAAE,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,CAAC;AAGhF,kBAAkB;AAClB,MAAM,SAAS,GAAG,CACd,CAAC,YAAY,EAAE,QAAQ,CAAgB,EACvC,CAAC,cAAc,EAAE,UAAU,CAAkB,EAC7C,WAA6B,EACjB,EAAE,CAAC,IAAI,CAAA;iCACU,GAAG,EAAE,CAAC,UAAU,eAAe,GAAG,EAAE,CAAC,QAAQ;UACpE,IAAI,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE,IAAI,CAAA,2DAA2D,CAAC;UACxF,GAAG,EAAE,CAAC,CAAC,cAAc,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,cAAc,WAAW,YAAY,EAAE,CAAC;;CAE/F,CAAC;AAEF,MAAM,CAAC,MAAM,iBAAiB,GAAU,cAAc,CAClD,YAAY,CACR,YAAY,CAAC,SAAS,EAAE;IACpB,cAAc;IACd,gBAAgB;IAChB,iBAAiB;CACpB,CAAC,CACL,CACJ,CAAC"}
@@ -1,5 +1,6 @@
1
1
  import type { Story, Meta } from '@storybook/html';
2
2
  import '../index';
3
+ import '../../icons/access-control';
3
4
  interface ButtonArgs {
4
5
  label: string;
5
6
  appearance: string;
@@ -1,8 +1,8 @@
1
1
  import { withXD } from 'storybook-addon-xd-designs';
2
- import { controlsSearch16X16 } from '@ni/nimble-tokens/dist-icons-esm/nimble-icons-inline';
3
2
  import { html, when } from '@microsoft/fast-element';
4
3
  import { ButtonAppearance } from '../types';
5
4
  import '../index';
5
+ import '../../icons/access-control';
6
6
  import { createRenderer } from '../../tests/utilities/storybook-test-helpers';
7
7
  const metadata = {
8
8
  title: 'Button',
@@ -24,7 +24,7 @@ const metadata = {
24
24
  // prettier-ignore
25
25
  render: createRenderer(html `
26
26
  <nimble-button ?disabled="${x => x.disabled}" appearance="${x => x.appearance}">
27
- ${when(x => x.icon, html `<div slot="icon">${controlsSearch16X16.data}</div>`)}
27
+ ${when(x => x.icon, html `<nimble-access-control-icon></nimble-access-control-icon>`)}
28
28
  ${x => x.label}
29
29
  </nimble-button>
30
30
  `),
@@ -1 +1 @@
1
- {"version":3,"file":"button.stories.js","sourceRoot":"","sources":["../../../../src/button/tests/button.stories.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAC;AACpD,OAAO,EAAE,mBAAmB,EAAE,MAAM,sDAAsD,CAAC;AAC3F,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,yBAAyB,CAAC;AACrD,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAC5C,OAAO,UAAU,CAAC;AAClB,OAAO,EAAE,cAAc,EAAE,MAAM,8CAA8C,CAAC;AAS9E,MAAM,QAAQ,GAAqB;IAC/B,KAAK,EAAE,QAAQ;IACf,UAAU,EAAE,CAAC,MAAM,CAAC;IACpB,UAAU,EAAE;QACR,MAAM,EAAE;YACJ,WAAW,EACP,wHAAwH;SAC/H;QACD,OAAO,EAAE;YACL,OAAO,EAAE,CAAC,OAAO,CAAC;SACrB;KACJ;IACD,QAAQ,EAAE;QACN,UAAU,EAAE;YACR,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,gBAAgB,CAAC;YACxC,OAAO,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE;SAC7B;KACJ;IACD,kBAAkB;IAClB,MAAM,EAAE,cAAc,CAAC,IAAI,CAAA;oCACK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,iBAAiB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU;cACvE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,CAAA,oBAAoB,mBAAmB,CAAC,IAAI,QAAQ,CAAC;cAC3E,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK;;CAEzB,CAAC;IACE,IAAI,EAAE;QACF,KAAK,EAAE,cAAc;QACrB,UAAU,EAAE,OAAO;QACnB,IAAI,EAAE,KAAK;QACX,QAAQ,EAAE,KAAK;KAClB;CACJ,CAAC;AAEF,eAAe,QAAQ,CAAC;AAExB,MAAM,CAAC,MAAM,aAAa,GAAsB;IAC5C,IAAI,EAAE,EAAE,KAAK,EAAE,gBAAgB,EAAE,UAAU,EAAE,gBAAgB,CAAC,OAAO,EAAE;CAC1E,CAAC;AACF,MAAM,CAAC,MAAM,WAAW,GAAsB;IAC1C,IAAI,EAAE,EAAE,KAAK,EAAE,cAAc,EAAE,UAAU,EAAE,gBAAgB,CAAC,KAAK,EAAE;CACtE,CAAC;AACF,MAAM,CAAC,MAAM,WAAW,GAAsB;IAC1C,IAAI,EAAE,EAAE,KAAK,EAAE,cAAc,EAAE,UAAU,EAAE,gBAAgB,CAAC,KAAK,EAAE;CACtE,CAAC"}
1
+ {"version":3,"file":"button.stories.js","sourceRoot":"","sources":["../../../../src/button/tests/button.stories.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAC;AACpD,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,yBAAyB,CAAC;AACrD,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAC5C,OAAO,UAAU,CAAC;AAClB,OAAO,4BAA4B,CAAC;AACpC,OAAO,EAAE,cAAc,EAAE,MAAM,8CAA8C,CAAC;AAS9E,MAAM,QAAQ,GAAqB;IAC/B,KAAK,EAAE,QAAQ;IACf,UAAU,EAAE,CAAC,MAAM,CAAC;IACpB,UAAU,EAAE;QACR,MAAM,EAAE;YACJ,WAAW,EACP,wHAAwH;SAC/H;QACD,OAAO,EAAE;YACL,OAAO,EAAE,CAAC,OAAO,CAAC;SACrB;KACJ;IACD,QAAQ,EAAE;QACN,UAAU,EAAE;YACR,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,gBAAgB,CAAC;YACxC,OAAO,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE;SAC7B;KACJ;IACD,kBAAkB;IAClB,MAAM,EAAE,cAAc,CAAC,IAAI,CAAA;oCACK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,iBAAiB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU;cACvE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,CAAA,2DAA2D,CAAC;cAClF,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK;;CAEzB,CAAC;IACE,IAAI,EAAE;QACF,KAAK,EAAE,cAAc;QACrB,UAAU,EAAE,OAAO;QACnB,IAAI,EAAE,KAAK;QACX,QAAQ,EAAE,KAAK;KAClB;CACJ,CAAC;AAEF,eAAe,QAAQ,CAAC;AAExB,MAAM,CAAC,MAAM,aAAa,GAAsB;IAC5C,IAAI,EAAE,EAAE,KAAK,EAAE,gBAAgB,EAAE,UAAU,EAAE,gBAAgB,CAAC,OAAO,EAAE;CAC1E,CAAC;AACF,MAAM,CAAC,MAAM,WAAW,GAAsB;IAC1C,IAAI,EAAE,EAAE,KAAK,EAAE,cAAc,EAAE,UAAU,EAAE,gBAAgB,CAAC,KAAK,EAAE;CACtE,CAAC;AACF,MAAM,CAAC,MAAM,WAAW,GAAsB;IAC1C,IAAI,EAAE,EAAE,KAAK,EAAE,cAAc,EAAE,UAAU,EAAE,gBAAgB,CAAC,KAAK,EAAE;CACtE,CAAC"}
@@ -6,7 +6,7 @@ const nimbleCheckbox = FoundationCheckbox.compose({
6
6
  baseName: 'checkbox',
7
7
  template,
8
8
  styles,
9
- checkedIndicator: `${controlsCheckboxCheck16X16.data}`
9
+ checkedIndicator: controlsCheckboxCheck16X16.data
10
10
  });
11
11
  DesignSystem.getOrCreate().withPrefix('nimble').register(nimbleCheckbox());
12
12
  //# sourceMappingURL=index.js.map
@@ -1 +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,GAAG,0BAA0B,CAAC,IAAI,EAAE;CACzD,CAAC,CAAC;AAEH,YAAY,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,cAAc,EAAE,CAAC,CAAC"}
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,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>;
@@ -0,0 +1,189 @@
1
+ import { __decorate } from "tslib";
2
+ import { AnimateGroup, AnimateTo } from '@microsoft/fast-animation';
3
+ import { attr, Observable } from '@microsoft/fast-element';
4
+ import { DesignSystem, Dialog as FoundationDialog, dialogTemplate as template } from '@microsoft/fast-foundation';
5
+ import { drawerAnimationDurationMs } from '../theme-provider/design-tokens';
6
+ import { animationConfig } from './animations';
7
+ import { styles } from './styles';
8
+ import { DrawerLocation, DrawerState } from './types';
9
+ const animationDurationWhenDisabledMilliseconds = 0.001;
10
+ /**
11
+ * Drawer/Sidenav control. Shows content in a panel on the left / right side of the screen,
12
+ * which animates to be visible with a slide-in / slide-out animation.
13
+ * Configured via 'location', 'state', 'modal', 'preventDismiss' properties.
14
+ */
15
+ export class Drawer extends FoundationDialog {
16
+ constructor() {
17
+ super(...arguments);
18
+ this.location = DrawerLocation.Left;
19
+ this.state = DrawerState.Closed;
20
+ /**
21
+ * True to prevent dismissing the drawer when the overlay outside the drawer is clicked.
22
+ * Only applicable when 'modal' is set to true (i.e. when the overlay is used).
23
+ * HTML Attribute: prevent-dismiss
24
+ */
25
+ this.preventDismiss = false;
26
+ this.propertiesToWatch = ['hidden', 'location', 'state'];
27
+ this.animationDurationMilliseconds = animationDurationWhenDisabledMilliseconds;
28
+ }
29
+ connectedCallback() {
30
+ // disable trapFocus before super.connectedCallback as FAST Dialog will immediately queue work to
31
+ // change focus if it's true before connectedCallback
32
+ this.trapFocus = false;
33
+ super.connectedCallback();
34
+ this.prefersReducedMotionMediaQuery = window.matchMedia('(prefers-reduced-motion: reduce)');
35
+ this.updateAnimationDuration();
36
+ this.animationsEnabledChangedHandler = () => this.updateAnimationDuration();
37
+ this.prefersReducedMotionMediaQuery.addEventListener('change', this.animationsEnabledChangedHandler);
38
+ this.onStateChanged();
39
+ const notifier = Observable.getNotifier(this);
40
+ const subscriber = {
41
+ handleChange: (_source, propertyName) => this.onPropertyChange(propertyName)
42
+ };
43
+ this.propertiesToWatch.forEach(propertyName => notifier.subscribe(subscriber, propertyName));
44
+ this.propertyChangeSubscriber = subscriber;
45
+ this.propertyChangeNotifier = notifier;
46
+ }
47
+ disconnectedCallback() {
48
+ super.disconnectedCallback();
49
+ this.cancelCurrentAnimation();
50
+ if (this.propertyChangeNotifier && this.propertyChangeSubscriber) {
51
+ this.propertiesToWatch.forEach(propertyName => this.propertyChangeNotifier.unsubscribe(this.propertyChangeSubscriber, propertyName));
52
+ this.propertyChangeNotifier = undefined;
53
+ this.propertyChangeSubscriber = undefined;
54
+ }
55
+ if (this.prefersReducedMotionMediaQuery
56
+ && this.animationsEnabledChangedHandler) {
57
+ this.prefersReducedMotionMediaQuery.removeEventListener('change', this.animationsEnabledChangedHandler);
58
+ this.prefersReducedMotionMediaQuery = undefined;
59
+ this.animationsEnabledChangedHandler = undefined;
60
+ }
61
+ }
62
+ show() {
63
+ // Not calling super.show() as that will immediately show the drawer, whereas 'Opening' state will animate
64
+ this.state = DrawerState.Opening;
65
+ }
66
+ hide() {
67
+ // Not calling super.hide() as that will immediately hide the drawer, whereas 'Closing' state will animate
68
+ this.state = DrawerState.Closing;
69
+ }
70
+ dismiss() {
71
+ if (!this.preventDismiss) {
72
+ super.dismiss();
73
+ this.hide();
74
+ }
75
+ }
76
+ onPropertyChange(propertyName) {
77
+ switch (propertyName) {
78
+ case 'hidden':
79
+ this.onHiddenChanged();
80
+ break;
81
+ case 'location':
82
+ this.onLocationChanged();
83
+ break;
84
+ case 'state':
85
+ this.onStateChanged();
86
+ break;
87
+ default:
88
+ break;
89
+ }
90
+ }
91
+ onHiddenChanged() {
92
+ if (this.hidden && this.state !== DrawerState.Closed) {
93
+ this.state = DrawerState.Closed;
94
+ }
95
+ else if (!this.hidden && this.state === DrawerState.Closed) {
96
+ this.state = DrawerState.Opened;
97
+ }
98
+ }
99
+ onLocationChanged() {
100
+ this.cancelCurrentAnimation();
101
+ }
102
+ onStateChanged() {
103
+ if (this.isConnected) {
104
+ this.cancelCurrentAnimation();
105
+ switch (this.state) {
106
+ case DrawerState.Opening:
107
+ this.animateOpening();
108
+ this.hidden = false;
109
+ break;
110
+ case DrawerState.Opened:
111
+ this.hidden = false;
112
+ break;
113
+ case DrawerState.Closing:
114
+ this.hidden = false;
115
+ this.animateClosing();
116
+ break;
117
+ case DrawerState.Closed:
118
+ this.hidden = true;
119
+ break;
120
+ default:
121
+ throw new Error('Unsupported state value. Expected: opening/opened/closing/closed');
122
+ }
123
+ }
124
+ }
125
+ updateAnimationDuration() {
126
+ const disableAnimations = this.prefersReducedMotionMediaQuery?.matches;
127
+ this.animationDurationMilliseconds = disableAnimations
128
+ ? animationDurationWhenDisabledMilliseconds
129
+ : drawerAnimationDurationMs.getValueFor(this);
130
+ }
131
+ animateOpening() {
132
+ this.animateOpenClose(true);
133
+ }
134
+ animateClosing() {
135
+ if (!this.hidden) {
136
+ this.animateOpenClose(false);
137
+ }
138
+ else {
139
+ this.state = DrawerState.Closed;
140
+ }
141
+ }
142
+ animateOpenClose(drawerOpening) {
143
+ const options = {
144
+ ...(drawerOpening
145
+ ? animationConfig.slideInOptions
146
+ : animationConfig.slideOutOptions),
147
+ duration: this.animationDurationMilliseconds
148
+ };
149
+ const drawerKeyframes = this.location === DrawerLocation.Right
150
+ ? animationConfig.slideRightKeyframes
151
+ : animationConfig.slideLeftKeyframes;
152
+ const dialogAnimation = new AnimateTo(this.dialog, undefined, options);
153
+ dialogAnimation.addKeyframes(drawerKeyframes);
154
+ const animations = [dialogAnimation];
155
+ const overlay = this.shadowRoot?.querySelector('.overlay');
156
+ if (overlay) {
157
+ const overlayAnimation = new AnimateTo(overlay, undefined, options);
158
+ overlayAnimation.addKeyframes(animationConfig.fadeOverlayKeyframes);
159
+ animations.push(overlayAnimation);
160
+ }
161
+ const animationGroup = new AnimateGroup(animations);
162
+ animationGroup.onFinish = () => {
163
+ this.state = drawerOpening
164
+ ? DrawerState.Opened
165
+ : DrawerState.Closed;
166
+ };
167
+ this.animationGroup = animationGroup;
168
+ animationGroup.play();
169
+ }
170
+ cancelCurrentAnimation() {
171
+ this.animationGroup?.cancel();
172
+ }
173
+ }
174
+ __decorate([
175
+ attr
176
+ ], Drawer.prototype, "location", void 0);
177
+ __decorate([
178
+ attr
179
+ ], Drawer.prototype, "state", void 0);
180
+ __decorate([
181
+ attr({ attribute: 'prevent-dismiss', mode: 'boolean' })
182
+ ], Drawer.prototype, "preventDismiss", void 0);
183
+ export const nimbleDrawer = Drawer.compose({
184
+ baseName: 'drawer',
185
+ template,
186
+ styles
187
+ });
188
+ DesignSystem.getOrCreate().withPrefix('nimble').register(nimbleDrawer());
189
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/drawer/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export declare const styles: import("@microsoft/fast-element").ElementStyles;
@@ -0,0 +1,109 @@
1
+ import { css } from '@microsoft/fast-element';
2
+ import { display } from '@microsoft/fast-foundation';
3
+ import { applicationBackgroundColor, borderWidth, contentFontSize, drawerHeaderFontFamily, drawerHeaderFontSize, fontFamily, labelFontColor, popupBorderColor, popupBoxShadowColor } from '../theme-provider/design-tokens';
4
+ export const styles = css `
5
+ ${display('block')} :host {
6
+ position: absolute;
7
+ top: 0;
8
+ bottom: 0;
9
+ width: fit-content;
10
+ height: 100%;
11
+ outline: none;
12
+ font-family: ${fontFamily};
13
+ font-size: ${contentFontSize};
14
+ color: ${labelFontColor};
15
+ }
16
+
17
+ :host([location='left']) {
18
+ left: 0px;
19
+ }
20
+
21
+ :host([location='right']) {
22
+ right: 0px;
23
+ }
24
+
25
+ .positioning-region {
26
+ display: block;
27
+ position: relative;
28
+ justify-content: center;
29
+ width: fit-content;
30
+ height: 100%;
31
+ inset: 0px;
32
+ overflow: hidden;
33
+ z-index: 999;
34
+ }
35
+
36
+ :host([modal]) .positioning-region {
37
+ width: 100%;
38
+ position: fixed;
39
+ display: flex;
40
+ }
41
+
42
+ .overlay {
43
+ position: fixed;
44
+ inset: 0px;
45
+ background: ${popupBorderColor};
46
+ touch-action: none;
47
+ }
48
+
49
+ .control {
50
+ position: relative;
51
+ top: 0px;
52
+ bottom: 0px;
53
+ width: fit-content;
54
+ height: 100%;
55
+ display: grid;
56
+ grid-template-rows: max-content auto max-content;
57
+ flex-direction: column;
58
+ box-sizing: border-box;
59
+ border-radius: 0px;
60
+ border-width: 0px;
61
+ width: var(--drawer-width);
62
+ background-color: ${applicationBackgroundColor};
63
+ }
64
+
65
+ :host([modal]) .control {
66
+ position: absolute;
67
+ height: 100%;
68
+ }
69
+
70
+ :host(.hidden) .control {
71
+ visibility: hidden;
72
+ }
73
+
74
+ :host([location='left']) .control {
75
+ left: 0px;
76
+ border-right: ${borderWidth} solid ${popupBoxShadowColor};
77
+ }
78
+
79
+ :host([location='right']) .control {
80
+ right: 0px;
81
+ border-left: ${borderWidth} solid ${popupBoxShadowColor};
82
+ }
83
+
84
+ ${
85
+ /*
86
+ Styling for a 3-panel drawer with header, footer, and a content
87
+ region filling the remaining space/height
88
+ */ ''}
89
+
90
+ ::slotted(header) {
91
+ padding: var(--standard-padding);
92
+ font-family: ${drawerHeaderFontFamily};
93
+ font-size: ${drawerHeaderFontSize};
94
+ }
95
+
96
+ ::slotted(section) {
97
+ padding: var(--standard-padding);
98
+ grid-row: 2;
99
+ overflow-y: auto;
100
+ }
101
+
102
+ ::slotted(footer) {
103
+ padding: var(--standard-padding);
104
+ display: flex;
105
+ justify-content: flex-end;
106
+ border-top: ${borderWidth} solid ${popupBorderColor};
107
+ }
108
+ `;
109
+ //# sourceMappingURL=styles.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"styles.js","sourceRoot":"","sources":["../../../src/drawer/styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,yBAAyB,CAAC;AAC9C,OAAO,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAC;AACrD,OAAO,EACH,0BAA0B,EAC1B,WAAW,EACX,eAAe,EACf,sBAAsB,EACtB,oBAAoB,EACpB,UAAU,EACV,cAAc,EACd,gBAAgB,EAChB,mBAAmB,EACtB,MAAM,iCAAiC,CAAC;AAEzC,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA;MACnB,OAAO,CAAC,OAAO,CAAC;;;;;;;uBAOC,UAAU;qBACZ,eAAe;iBACnB,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;sBA+BT,gBAAgB;;;;;;;;;;;;;;;;;4BAiBV,0BAA0B;;;;;;;;;;;;;;wBAc9B,WAAW,UAAU,mBAAmB;;;;;uBAKzC,WAAW,UAAU,mBAAmB;;;MAGzD;AACE;;;EAGE,CAAC,EACP;;;;uBAImB,sBAAsB;qBACxB,oBAAoB;;;;;;;;;;;;;sBAanB,WAAW,UAAU,gBAAgB;;CAE1D,CAAC"}
@@ -0,0 +1,9 @@
1
+ import type { Meta, Story } from '@storybook/html';
2
+ import '../index';
3
+ declare const metadata: Meta;
4
+ export default metadata;
5
+ export declare const drawerLightThemeWhiteBackground: Story;
6
+ export declare const drawerColorThemeGreenBackground: Story;
7
+ export declare const drawerColorThemeDarkGreenBackground: Story;
8
+ export declare const drawerDarkThemeBlackBackground: Story;
9
+ export declare const drawerLegacyBlueThemeWhiteBackground: Story;