@aquera/nile-elements 0.0.1-beta.3 → 0.0.1-beta.4

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 (187) hide show
  1. package/.rollup.cache/Users/ravisankar/aquera/nile/packages/nile-elements/dist/src/index.d.ts +4 -0
  2. package/.rollup.cache/Users/ravisankar/aquera/nile/packages/nile-elements/dist/src/index.js +4 -0
  3. package/.rollup.cache/Users/ravisankar/aquera/nile/packages/nile-elements/dist/src/index.js.map +1 -1
  4. package/.rollup.cache/Users/ravisankar/aquera/nile/packages/nile-elements/dist/src/internal/tabbable.d.ts +8 -0
  5. package/.rollup.cache/Users/ravisankar/aquera/nile/packages/nile-elements/dist/src/internal/tabbable.js +65 -0
  6. package/.rollup.cache/Users/ravisankar/aquera/nile/packages/nile-elements/dist/src/internal/tabbable.js.map +1 -0
  7. package/.rollup.cache/Users/ravisankar/aquera/nile/packages/nile-elements/dist/src/nile-auto-complete/index.d.ts +1 -0
  8. package/.rollup.cache/Users/ravisankar/aquera/nile/packages/nile-elements/dist/src/nile-auto-complete/index.js +2 -0
  9. package/.rollup.cache/Users/ravisankar/aquera/nile/packages/nile-elements/dist/src/nile-auto-complete/index.js.map +1 -0
  10. package/.rollup.cache/Users/ravisankar/aquera/nile/packages/nile-elements/dist/src/nile-auto-complete/nile-auto-complete.css.d.ts +12 -0
  11. package/.rollup.cache/Users/ravisankar/aquera/nile/packages/nile-elements/dist/src/nile-auto-complete/nile-auto-complete.css.js +23 -0
  12. package/.rollup.cache/Users/ravisankar/aquera/nile/packages/nile-elements/dist/src/nile-auto-complete/nile-auto-complete.css.js.map +1 -0
  13. package/.rollup.cache/Users/ravisankar/aquera/nile/packages/nile-elements/dist/src/nile-auto-complete/nile-auto-complete.d.ts +27 -0
  14. package/.rollup.cache/Users/ravisankar/aquera/nile/packages/nile-elements/dist/src/nile-auto-complete/nile-auto-complete.js +127 -0
  15. package/.rollup.cache/Users/ravisankar/aquera/nile/packages/nile-elements/dist/src/nile-auto-complete/nile-auto-complete.js.map +1 -0
  16. package/.rollup.cache/Users/ravisankar/aquera/nile/packages/nile-elements/dist/src/nile-chip/index.d.ts +1 -0
  17. package/.rollup.cache/Users/ravisankar/aquera/nile/packages/nile-elements/dist/src/nile-chip/index.js +2 -0
  18. package/.rollup.cache/Users/ravisankar/aquera/nile/packages/nile-elements/dist/src/nile-chip/index.js.map +1 -0
  19. package/.rollup.cache/Users/ravisankar/aquera/nile/packages/nile-elements/dist/src/nile-chip/nile-chip.css.d.ts +12 -0
  20. package/.rollup.cache/Users/ravisankar/aquera/nile/packages/nile-elements/dist/src/nile-chip/nile-chip.css.js +146 -0
  21. package/.rollup.cache/Users/ravisankar/aquera/nile/packages/nile-elements/dist/src/nile-chip/nile-chip.css.js.map +1 -0
  22. package/.rollup.cache/Users/ravisankar/aquera/nile/packages/nile-elements/dist/src/nile-chip/nile-chip.d.ts +44 -0
  23. package/.rollup.cache/Users/ravisankar/aquera/nile/packages/nile-elements/dist/src/nile-chip/nile-chip.js +175 -0
  24. package/.rollup.cache/Users/ravisankar/aquera/nile/packages/nile-elements/dist/src/nile-chip/nile-chip.js.map +1 -0
  25. package/.rollup.cache/Users/ravisankar/aquera/nile/packages/nile-elements/dist/src/nile-dropdown/index.d.ts +1 -0
  26. package/.rollup.cache/Users/ravisankar/aquera/nile/packages/nile-elements/dist/src/nile-dropdown/index.js +2 -0
  27. package/.rollup.cache/Users/ravisankar/aquera/nile/packages/nile-elements/dist/src/nile-dropdown/index.js.map +1 -0
  28. package/.rollup.cache/Users/ravisankar/aquera/nile/packages/nile-elements/dist/src/nile-dropdown/nile-dropdown.css.d.ts +12 -0
  29. package/.rollup.cache/Users/ravisankar/aquera/nile/packages/nile-elements/dist/src/nile-dropdown/nile-dropdown.css.js +60 -0
  30. package/.rollup.cache/Users/ravisankar/aquera/nile/packages/nile-elements/dist/src/nile-dropdown/nile-dropdown.css.js.map +1 -0
  31. package/.rollup.cache/Users/ravisankar/aquera/nile/packages/nile-elements/dist/src/nile-dropdown/nile-dropdown.d.ts +105 -0
  32. package/.rollup.cache/Users/ravisankar/aquera/nile/packages/nile-elements/dist/src/nile-dropdown/nile-dropdown.js +412 -0
  33. package/.rollup.cache/Users/ravisankar/aquera/nile/packages/nile-elements/dist/src/nile-dropdown/nile-dropdown.js.map +1 -0
  34. package/.rollup.cache/Users/ravisankar/aquera/nile/packages/nile-elements/dist/src/nile-input/nile-input.css.js +20 -0
  35. package/.rollup.cache/Users/ravisankar/aquera/nile/packages/nile-elements/dist/src/nile-input/nile-input.css.js.map +1 -1
  36. package/.rollup.cache/Users/ravisankar/aquera/nile/packages/nile-elements/dist/src/nile-menu/index.d.ts +1 -41
  37. package/.rollup.cache/Users/ravisankar/aquera/nile/packages/nile-elements/dist/src/nile-menu/index.js +1 -119
  38. package/.rollup.cache/Users/ravisankar/aquera/nile/packages/nile-elements/dist/src/nile-menu/index.js.map +1 -1
  39. package/.rollup.cache/Users/ravisankar/aquera/nile/packages/nile-elements/dist/src/nile-menu/nile-menu.css.d.ts +12 -0
  40. package/.rollup.cache/Users/ravisankar/aquera/nile/packages/nile-elements/dist/src/nile-menu/nile-menu.css.js +28 -0
  41. package/.rollup.cache/Users/ravisankar/aquera/nile/packages/nile-elements/dist/src/nile-menu/nile-menu.css.js.map +1 -0
  42. package/.rollup.cache/Users/ravisankar/aquera/nile/packages/nile-elements/dist/src/nile-menu/nile-menu.d.ts +43 -0
  43. package/.rollup.cache/Users/ravisankar/aquera/nile/packages/nile-elements/dist/src/nile-menu/nile-menu.js +142 -0
  44. package/.rollup.cache/Users/ravisankar/aquera/nile/packages/nile-elements/dist/src/nile-menu/nile-menu.js.map +1 -0
  45. package/.rollup.cache/Users/ravisankar/aquera/nile/packages/nile-elements/dist/src/nile-menu-item/index.d.ts +1 -0
  46. package/.rollup.cache/Users/ravisankar/aquera/nile/packages/nile-elements/dist/src/nile-menu-item/index.js +2 -0
  47. package/.rollup.cache/Users/ravisankar/aquera/nile/packages/nile-elements/dist/src/nile-menu-item/index.js.map +1 -0
  48. package/.rollup.cache/Users/ravisankar/aquera/nile/packages/nile-elements/dist/src/nile-menu-item/nile-menu-item.css.d.ts +12 -0
  49. package/.rollup.cache/Users/ravisankar/aquera/nile/packages/nile-elements/dist/src/nile-menu-item/nile-menu-item.css.js +121 -0
  50. package/.rollup.cache/Users/ravisankar/aquera/nile/packages/nile-elements/dist/src/nile-menu-item/nile-menu-item.css.js.map +1 -0
  51. package/.rollup.cache/Users/ravisankar/aquera/nile/packages/nile-elements/dist/src/nile-menu-item/nile-menu-item.d.ts +62 -0
  52. package/.rollup.cache/Users/ravisankar/aquera/nile/packages/nile-elements/dist/src/nile-menu-item/nile-menu-item.js +173 -0
  53. package/.rollup.cache/Users/ravisankar/aquera/nile/packages/nile-elements/dist/src/nile-menu-item/nile-menu-item.js.map +1 -0
  54. package/.rollup.cache/Users/ravisankar/aquera/nile/packages/nile-elements/dist/tsconfig.tsbuildinfo +1 -1
  55. package/dist/index.cjs.js +1 -1
  56. package/dist/index.esm.js +1 -1
  57. package/dist/internal/slot.cjs.js +1 -1
  58. package/dist/internal/slot.cjs.js.map +1 -1
  59. package/dist/internal/slot.esm.js +1 -1
  60. package/dist/internal/tabbable.cjs.js +2 -0
  61. package/dist/internal/tabbable.cjs.js.map +1 -0
  62. package/dist/internal/tabbable.esm.js +1 -0
  63. package/dist/nile-auto-complete/index.cjs.js +2 -0
  64. package/dist/nile-auto-complete/index.cjs.js.map +1 -0
  65. package/dist/nile-auto-complete/index.esm.js +1 -0
  66. package/dist/nile-auto-complete/nile-auto-complete.cjs.js +2 -0
  67. package/dist/nile-auto-complete/nile-auto-complete.cjs.js.map +1 -0
  68. package/dist/nile-auto-complete/nile-auto-complete.css.cjs.js +2 -0
  69. package/dist/nile-auto-complete/nile-auto-complete.css.cjs.js.map +1 -0
  70. package/dist/nile-auto-complete/nile-auto-complete.css.esm.js +11 -0
  71. package/dist/nile-auto-complete/nile-auto-complete.esm.js +21 -0
  72. package/dist/nile-chip/index.cjs.js +2 -0
  73. package/dist/nile-chip/index.cjs.js.map +1 -0
  74. package/dist/nile-chip/index.esm.js +1 -0
  75. package/dist/nile-chip/nile-chip.cjs.js +2 -0
  76. package/dist/nile-chip/nile-chip.cjs.js.map +1 -0
  77. package/dist/nile-chip/nile-chip.css.cjs.js +2 -0
  78. package/dist/nile-chip/nile-chip.css.cjs.js.map +1 -0
  79. package/dist/nile-chip/nile-chip.css.esm.js +134 -0
  80. package/dist/nile-chip/nile-chip.esm.js +46 -0
  81. package/dist/nile-dropdown/index.cjs.js +2 -0
  82. package/dist/nile-dropdown/index.cjs.js.map +1 -0
  83. package/dist/nile-dropdown/index.esm.js +1 -0
  84. package/dist/nile-dropdown/nile-dropdown.cjs.js +2 -0
  85. package/dist/nile-dropdown/nile-dropdown.cjs.js.map +1 -0
  86. package/dist/nile-dropdown/nile-dropdown.css.cjs.js +2 -0
  87. package/dist/nile-dropdown/nile-dropdown.css.cjs.js.map +1 -0
  88. package/dist/nile-dropdown/nile-dropdown.css.esm.js +48 -0
  89. package/dist/nile-dropdown/nile-dropdown.esm.js +33 -0
  90. package/dist/nile-input/nile-input.css.cjs.js +1 -1
  91. package/dist/nile-input/nile-input.css.cjs.js.map +1 -1
  92. package/dist/nile-input/nile-input.css.esm.js +20 -0
  93. package/dist/nile-menu/index.cjs.js +1 -1
  94. package/dist/nile-menu/index.cjs.js.map +1 -1
  95. package/dist/nile-menu/index.esm.js +1 -53
  96. package/dist/nile-menu/nile-menu.cjs.js +2 -0
  97. package/dist/nile-menu/nile-menu.cjs.js.map +1 -0
  98. package/dist/nile-menu/nile-menu.css.cjs.js +2 -0
  99. package/dist/nile-menu/nile-menu.css.cjs.js.map +1 -0
  100. package/dist/nile-menu/nile-menu.css.esm.js +16 -0
  101. package/dist/nile-menu/nile-menu.esm.js +8 -0
  102. package/dist/nile-menu-item/index.cjs.js +2 -0
  103. package/dist/nile-menu-item/index.cjs.js.map +1 -0
  104. package/dist/nile-menu-item/index.esm.js +1 -0
  105. package/dist/nile-menu-item/nile-menu-item.cjs.js +2 -0
  106. package/dist/nile-menu-item/nile-menu-item.cjs.js.map +1 -0
  107. package/dist/nile-menu-item/nile-menu-item.css.cjs.js +2 -0
  108. package/dist/nile-menu-item/nile-menu-item.css.cjs.js.map +1 -0
  109. package/dist/nile-menu-item/nile-menu-item.css.esm.js +109 -0
  110. package/dist/nile-menu-item/nile-menu-item.esm.js +20 -0
  111. package/dist/src/index.d.ts +4 -0
  112. package/dist/src/index.js +4 -0
  113. package/dist/src/index.js.map +1 -1
  114. package/dist/src/internal/tabbable.d.ts +8 -0
  115. package/dist/src/internal/tabbable.js +65 -0
  116. package/dist/src/internal/tabbable.js.map +1 -0
  117. package/dist/src/nile-auto-complete/index.d.ts +1 -0
  118. package/dist/src/nile-auto-complete/index.js +2 -0
  119. package/dist/src/nile-auto-complete/index.js.map +1 -0
  120. package/dist/src/nile-auto-complete/nile-auto-complete.css.d.ts +12 -0
  121. package/dist/src/nile-auto-complete/nile-auto-complete.css.js +23 -0
  122. package/dist/src/nile-auto-complete/nile-auto-complete.css.js.map +1 -0
  123. package/dist/src/nile-auto-complete/nile-auto-complete.d.ts +27 -0
  124. package/dist/src/nile-auto-complete/nile-auto-complete.js +127 -0
  125. package/dist/src/nile-auto-complete/nile-auto-complete.js.map +1 -0
  126. package/dist/src/nile-chip/index.d.ts +1 -0
  127. package/dist/src/nile-chip/index.js +2 -0
  128. package/dist/src/nile-chip/index.js.map +1 -0
  129. package/dist/src/nile-chip/nile-chip.css.d.ts +12 -0
  130. package/dist/src/nile-chip/nile-chip.css.js +146 -0
  131. package/dist/src/nile-chip/nile-chip.css.js.map +1 -0
  132. package/dist/src/nile-chip/nile-chip.d.ts +44 -0
  133. package/dist/src/nile-chip/nile-chip.js +175 -0
  134. package/dist/src/nile-chip/nile-chip.js.map +1 -0
  135. package/dist/src/nile-dropdown/index.d.ts +1 -0
  136. package/dist/src/nile-dropdown/index.js +2 -0
  137. package/dist/src/nile-dropdown/index.js.map +1 -0
  138. package/dist/src/nile-dropdown/nile-dropdown.css.d.ts +12 -0
  139. package/dist/src/nile-dropdown/nile-dropdown.css.js +60 -0
  140. package/dist/src/nile-dropdown/nile-dropdown.css.js.map +1 -0
  141. package/dist/src/nile-dropdown/nile-dropdown.d.ts +105 -0
  142. package/dist/src/nile-dropdown/nile-dropdown.js +412 -0
  143. package/dist/src/nile-dropdown/nile-dropdown.js.map +1 -0
  144. package/dist/src/nile-input/nile-input.css.js +20 -0
  145. package/dist/src/nile-input/nile-input.css.js.map +1 -1
  146. package/dist/src/nile-menu/index.d.ts +1 -41
  147. package/dist/src/nile-menu/index.js +1 -119
  148. package/dist/src/nile-menu/index.js.map +1 -1
  149. package/dist/src/nile-menu/nile-menu.css.d.ts +12 -0
  150. package/dist/src/nile-menu/nile-menu.css.js +28 -0
  151. package/dist/src/nile-menu/nile-menu.css.js.map +1 -0
  152. package/dist/src/nile-menu/nile-menu.d.ts +43 -0
  153. package/dist/src/nile-menu/nile-menu.js +142 -0
  154. package/dist/src/nile-menu/nile-menu.js.map +1 -0
  155. package/dist/src/nile-menu-item/index.d.ts +1 -0
  156. package/dist/src/nile-menu-item/index.js +2 -0
  157. package/dist/src/nile-menu-item/index.js.map +1 -0
  158. package/dist/src/nile-menu-item/nile-menu-item.css.d.ts +12 -0
  159. package/dist/src/nile-menu-item/nile-menu-item.css.js +121 -0
  160. package/dist/src/nile-menu-item/nile-menu-item.css.js.map +1 -0
  161. package/dist/src/nile-menu-item/nile-menu-item.d.ts +62 -0
  162. package/dist/src/nile-menu-item/nile-menu-item.js +173 -0
  163. package/dist/src/nile-menu-item/nile-menu-item.js.map +1 -0
  164. package/dist/tsconfig.tsbuildinfo +1 -1
  165. package/dist/watch.cjs.js +1 -1
  166. package/dist/watch.cjs.js.map +1 -1
  167. package/dist/watch.esm.js +1 -1
  168. package/package.json +1 -1
  169. package/src/index.ts +4 -0
  170. package/src/internal/tabbable.ts +81 -0
  171. package/src/nile-auto-complete/index.ts +1 -0
  172. package/src/nile-auto-complete/nile-auto-complete.css.ts +25 -0
  173. package/src/nile-auto-complete/nile-auto-complete.ts +132 -0
  174. package/src/nile-chip/index.ts +1 -0
  175. package/src/nile-chip/nile-chip.css.ts +148 -0
  176. package/src/nile-chip/nile-chip.ts +183 -0
  177. package/src/nile-dropdown/index.ts +1 -0
  178. package/src/nile-dropdown/nile-dropdown.css.ts +62 -0
  179. package/src/nile-dropdown/nile-dropdown.ts +461 -0
  180. package/src/nile-input/nile-input.css.ts +20 -0
  181. package/src/nile-menu/index.ts +1 -116
  182. package/src/nile-menu/nile-menu.css.ts +30 -0
  183. package/src/nile-menu/nile-menu.ts +169 -0
  184. package/src/nile-menu-item/index.ts +1 -0
  185. package/src/nile-menu-item/nile-menu-item.css.ts +123 -0
  186. package/src/nile-menu-item/nile-menu-item.ts +171 -0
  187. package/src/nile-menu/nile-menu.scss +0 -0
@@ -0,0 +1,173 @@
1
+ /**
2
+ * Copyright Aquera Inc 2023
3
+ *
4
+ * This source code is licensed under the BSD-3-Clause license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ */
7
+ import { __decorate } from "tslib";
8
+ import { html, property } from 'lit-element';
9
+ import { customElement } from 'lit/decorators.js';
10
+ import { styles } from './nile-menu-item.css';
11
+ import '../nile-icon';
12
+ import { classMap } from 'lit/directives/class-map.js';
13
+ import { query } from 'lit/decorators.js';
14
+ import { getTextContent } from '../internal/slot';
15
+ import { watch } from '../internal/watch';
16
+ import NileElement from '../internal/nile-element';
17
+ /**
18
+ * Nile icon component.
19
+ *
20
+ * @tag nile-menu-item
21
+ *
22
+ * @summary Menu items provide options for the user to pick from in a menu.
23
+ * @status stable
24
+ * @since 2.0
25
+ *
26
+ * @dependency nile-icon
27
+ *
28
+ * @slot - The menu item's label.
29
+ * @slot prefix - Used to prepend an icon or similar element to the menu item.
30
+ * @slot suffix - Used to append an icon or similar element to the menu item.
31
+ *
32
+ * @csspart base - The component's base wrapper.
33
+ * @csspart checked-icon - The checked icon, which is only visible when the menu item is checked.
34
+ * @csspart prefix - The prefix container.
35
+ * @csspart label - The menu item label.
36
+ * @csspart suffix - The suffix container.
37
+ * @csspart submenu-icon - The submenu icon, visible only when the menu item has a submenu (not yet implemented).
38
+ */
39
+ let NileMenuItem = class NileMenuItem extends NileElement {
40
+ constructor() {
41
+ super(...arguments);
42
+ /** The type of menu item to render. To use `checked`, this value must be set to `checkbox`. */
43
+ this.type = 'normal';
44
+ /** Draws the item in a checked state. */
45
+ this.checked = false;
46
+ /** A unique value to store in the menu item. This can be used as a way to identify menu items when selected. */
47
+ this.value = '';
48
+ /** Draws the menu item in a disabled state, preventing selection. */
49
+ this.disabled = false;
50
+ }
51
+ connectedCallback() {
52
+ super.connectedCallback();
53
+ this.handleHostClick = this.handleHostClick.bind(this);
54
+ this.addEventListener('click', this.handleHostClick);
55
+ }
56
+ disconnectedCallback() {
57
+ super.disconnectedCallback();
58
+ this.removeEventListener('click', this.handleHostClick);
59
+ }
60
+ handleDefaultSlotChange() {
61
+ const textLabel = this.getTextLabel();
62
+ // Ignore the first time the label is set
63
+ if (typeof this.cachedTextLabel === 'undefined') {
64
+ this.cachedTextLabel = textLabel;
65
+ return;
66
+ }
67
+ // When the label changes, emit a slotchange event so parent controls see it
68
+ if (textLabel !== this.cachedTextLabel) {
69
+ this.cachedTextLabel = textLabel;
70
+ this.emit('slotchange', { bubbles: true, composed: false, cancelable: false });
71
+ }
72
+ }
73
+ handleHostClick(event) {
74
+ // Prevent the click event from being emitted when the button is disabled or loading
75
+ if (this.disabled) {
76
+ event.preventDefault();
77
+ event.stopImmediatePropagation();
78
+ }
79
+ }
80
+ handleCheckedChange() {
81
+ // For proper accessibility, users have to use type="checkbox" to use the checked attribute
82
+ if (this.checked && this.type !== 'checkbox') {
83
+ this.checked = false;
84
+ console.error('The checked attribute can only be used on menu items with type="checkbox"', this);
85
+ return;
86
+ }
87
+ // Only checkbox types can receive the aria-checked attribute
88
+ if (this.type === 'checkbox') {
89
+ this.setAttribute('aria-checked', this.checked ? 'true' : 'false');
90
+ }
91
+ else {
92
+ this.removeAttribute('aria-checked');
93
+ }
94
+ }
95
+ handleDisabledChange() {
96
+ this.setAttribute('aria-disabled', this.disabled ? 'true' : 'false');
97
+ }
98
+ handleTypeChange() {
99
+ if (this.type === 'checkbox') {
100
+ this.setAttribute('role', 'menuitemcheckbox');
101
+ this.setAttribute('aria-checked', this.checked ? 'true' : 'false');
102
+ }
103
+ else {
104
+ this.setAttribute('role', 'menuitem');
105
+ this.removeAttribute('aria-checked');
106
+ }
107
+ }
108
+ /** Returns a text label based on the contents of the menu item's default slot. */
109
+ getTextLabel() {
110
+ return getTextContent(this.defaultSlot);
111
+ }
112
+ render() {
113
+ return html `
114
+ <div
115
+ part="base"
116
+ class=${classMap({
117
+ 'menu-item': true,
118
+ 'menu-item--checked': this.checked,
119
+ 'menu-item--disabled': this.disabled,
120
+ 'menu-item--has-submenu': false // reserved for future use
121
+ })}
122
+ >
123
+ <span part="checked-icon" class="menu-item__check">
124
+ <nile-icon name="check" library="system" aria-hidden="true"></nile-icon>
125
+ </span>
126
+
127
+ <slot name="prefix" part="prefix" class="menu-item__prefix"></slot>
128
+
129
+ <slot part="label" class="menu-item__label" @slotchange=${this.handleDefaultSlotChange}></slot>
130
+
131
+ <slot name="suffix" part="suffix" class="menu-item__suffix"></slot>
132
+
133
+ <span part="submenu-icon" class="menu-item__chevron">
134
+ <nile-icon name="chevron-right" library="system" aria-hidden="true"></nile-icon>
135
+ </span>
136
+ </div>
137
+ `;
138
+ }
139
+ };
140
+ NileMenuItem.styles = styles;
141
+ __decorate([
142
+ query('slot:not([name])')
143
+ ], NileMenuItem.prototype, "defaultSlot", void 0);
144
+ __decorate([
145
+ query('.menu-item')
146
+ ], NileMenuItem.prototype, "menuItem", void 0);
147
+ __decorate([
148
+ property()
149
+ ], NileMenuItem.prototype, "type", void 0);
150
+ __decorate([
151
+ property({ type: Boolean, reflect: true })
152
+ ], NileMenuItem.prototype, "checked", void 0);
153
+ __decorate([
154
+ property()
155
+ ], NileMenuItem.prototype, "value", void 0);
156
+ __decorate([
157
+ property({ type: Boolean, reflect: true })
158
+ ], NileMenuItem.prototype, "disabled", void 0);
159
+ __decorate([
160
+ watch('checked')
161
+ ], NileMenuItem.prototype, "handleCheckedChange", null);
162
+ __decorate([
163
+ watch('disabled')
164
+ ], NileMenuItem.prototype, "handleDisabledChange", null);
165
+ __decorate([
166
+ watch('type')
167
+ ], NileMenuItem.prototype, "handleTypeChange", null);
168
+ NileMenuItem = __decorate([
169
+ customElement('nile-menu-item')
170
+ ], NileMenuItem);
171
+ export { NileMenuItem };
172
+ export default NileMenuItem;
173
+ //# sourceMappingURL=nile-menu-item.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nile-menu-item.js","sourceRoot":"","sources":["../../../src/nile-menu-item/nile-menu-item.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Copyright Aquera Inc 2023\n *\n * This source code is licensed under the BSD-3-Clause license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport {LitElement, html, property, CSSResultArray, TemplateResult} from 'lit-element';\nimport { customElement } from 'lit/decorators.js';\nimport {styles} from './nile-menu-item.css';\nimport '../nile-icon';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { query } from 'lit/decorators.js';\nimport { getTextContent } from '../internal/slot';\nimport { watch } from '../internal/watch';\nimport NileElement from '../internal/nile-element';\nimport type { CSSResultGroup } from 'lit';\n/**\n * Nile icon component.\n *\n * @tag nile-menu-item\n *\n * @summary Menu items provide options for the user to pick from in a menu.\n * @status stable\n * @since 2.0\n *\n * @dependency nile-icon\n *\n * @slot - The menu item's label.\n * @slot prefix - Used to prepend an icon or similar element to the menu item.\n * @slot suffix - Used to append an icon or similar element to the menu item.\n *\n * @csspart base - The component's base wrapper.\n * @csspart checked-icon - The checked icon, which is only visible when the menu item is checked.\n * @csspart prefix - The prefix container.\n * @csspart label - The menu item label.\n * @csspart suffix - The suffix container.\n * @csspart submenu-icon - The submenu icon, visible only when the menu item has a submenu (not yet implemented).\n */\n\n@customElement('nile-menu-item')\nexport class NileMenuItem extends NileElement {\n static styles: CSSResultGroup = styles;\n\n private cachedTextLabel: string;\n\n @query('slot:not([name])') defaultSlot: HTMLSlotElement;\n\n @query('.menu-item') menuItem: HTMLElement;\n\n /** The type of menu item to render. To use `checked`, this value must be set to `checkbox`. */\n @property() type: 'normal' | 'checkbox' = 'normal';\n\n /** Draws the item in a checked state. */\n @property({ type: Boolean, reflect: true }) checked = false;\n\n /** A unique value to store in the menu item. This can be used as a way to identify menu items when selected. */\n @property() value = '';\n\n /** Draws the menu item in a disabled state, preventing selection. */\n @property({ type: Boolean, reflect: true }) disabled = false;\n\n connectedCallback() {\n super.connectedCallback();\n this.handleHostClick = this.handleHostClick.bind(this);\n this.addEventListener('click', this.handleHostClick);\n }\n\n disconnectedCallback() {\n super.disconnectedCallback();\n this.removeEventListener('click', this.handleHostClick);\n }\n\n private handleDefaultSlotChange() {\n const textLabel = this.getTextLabel();\n\n // Ignore the first time the label is set\n if (typeof this.cachedTextLabel === 'undefined') {\n this.cachedTextLabel = textLabel;\n return;\n }\n\n // When the label changes, emit a slotchange event so parent controls see it\n if (textLabel !== this.cachedTextLabel) {\n this.cachedTextLabel = textLabel;\n this.emit('slotchange', { bubbles: true, composed: false, cancelable: false });\n }\n }\n\n private handleHostClick(event: MouseEvent) {\n // Prevent the click event from being emitted when the button is disabled or loading\n if (this.disabled) {\n event.preventDefault();\n event.stopImmediatePropagation();\n }\n }\n\n @watch('checked')\n handleCheckedChange() {\n // For proper accessibility, users have to use type=\"checkbox\" to use the checked attribute\n if (this.checked && this.type !== 'checkbox') {\n this.checked = false;\n console.error('The checked attribute can only be used on menu items with type=\"checkbox\"', this);\n return;\n }\n\n // Only checkbox types can receive the aria-checked attribute\n if (this.type === 'checkbox') {\n this.setAttribute('aria-checked', this.checked ? 'true' : 'false');\n } else {\n this.removeAttribute('aria-checked');\n }\n }\n\n @watch('disabled')\n handleDisabledChange() {\n this.setAttribute('aria-disabled', this.disabled ? 'true' : 'false');\n }\n\n @watch('type')\n handleTypeChange() {\n if (this.type === 'checkbox') {\n this.setAttribute('role', 'menuitemcheckbox');\n this.setAttribute('aria-checked', this.checked ? 'true' : 'false');\n } else {\n this.setAttribute('role', 'menuitem');\n this.removeAttribute('aria-checked');\n }\n }\n\n /** Returns a text label based on the contents of the menu item's default slot. */\n getTextLabel() {\n return getTextContent(this.defaultSlot);\n }\n\n render() {\n return html`\n <div\n part=\"base\"\n class=${classMap({\n 'menu-item': true,\n 'menu-item--checked': this.checked,\n 'menu-item--disabled': this.disabled,\n 'menu-item--has-submenu': false // reserved for future use\n })}\n >\n <span part=\"checked-icon\" class=\"menu-item__check\">\n <nile-icon name=\"check\" library=\"system\" aria-hidden=\"true\"></nile-icon>\n </span>\n\n <slot name=\"prefix\" part=\"prefix\" class=\"menu-item__prefix\"></slot>\n\n <slot part=\"label\" class=\"menu-item__label\" @slotchange=${this.handleDefaultSlotChange}></slot>\n\n <slot name=\"suffix\" part=\"suffix\" class=\"menu-item__suffix\"></slot>\n\n <span part=\"submenu-icon\" class=\"menu-item__chevron\">\n <nile-icon name=\"chevron-right\" library=\"system\" aria-hidden=\"true\"></nile-icon>\n </span>\n </div>\n `;\n }\n}\n\nexport default NileMenuItem;\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'nile-menu-item': NileMenuItem;\n }\n}\n"]}