@redvars/peacock 3.5.0 → 3.5.1

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 (148) hide show
  1. package/dist/BaseButton-DuASuVth.js +219 -0
  2. package/dist/BaseButton-DuASuVth.js.map +1 -0
  3. package/dist/BaseHyperlinkMixin-BNuwbiEf.js +65 -0
  4. package/dist/BaseHyperlinkMixin-BNuwbiEf.js.map +1 -0
  5. package/dist/assets/components.css +1 -1
  6. package/dist/assets/components.css.map +1 -1
  7. package/dist/assets/styles.css +1 -1
  8. package/dist/assets/styles.css.map +1 -1
  9. package/dist/banner.js +12 -27
  10. package/dist/banner.js.map +1 -1
  11. package/dist/{button-DMN1dPAg.js → button-DouvOfEU.js} +77 -251
  12. package/dist/button-DouvOfEU.js.map +1 -0
  13. package/dist/{button-group-CX9CUUXk.js → button-group-CEdMwvJJ.js} +71 -42
  14. package/dist/button-group-CEdMwvJJ.js.map +1 -0
  15. package/dist/button-group.js +5 -5
  16. package/dist/button.js +3 -3
  17. package/dist/card.js +18 -73
  18. package/dist/card.js.map +1 -1
  19. package/dist/chart-bar.js.map +1 -1
  20. package/dist/chart-doughnut.js +2 -2
  21. package/dist/chart-doughnut.js.map +1 -1
  22. package/dist/chart-pie.js +2 -2
  23. package/dist/chart-pie.js.map +1 -1
  24. package/dist/chart-stacked-bar.js.map +1 -1
  25. package/dist/code-highlighter.js +2 -1
  26. package/dist/code-highlighter.js.map +1 -1
  27. package/dist/custom-elements-jsdocs.json +3105 -1494
  28. package/dist/custom-elements.json +9244 -7829
  29. package/dist/fab.js +421 -9
  30. package/dist/fab.js.map +1 -1
  31. package/dist/index.js +6 -6
  32. package/dist/{select-4pl4XBj7.js → navigation-rail-Lxetd5-Z.js} +2214 -1090
  33. package/dist/navigation-rail-Lxetd5-Z.js.map +1 -0
  34. package/dist/notification.js +3 -2
  35. package/dist/notification.js.map +1 -1
  36. package/dist/peacock-loader.js +22 -10
  37. package/dist/peacock-loader.js.map +1 -1
  38. package/dist/search.js +4 -0
  39. package/dist/search.js.map +1 -1
  40. package/dist/src/__mixins/BaseButtonMixin.d.ts +20 -0
  41. package/dist/src/__mixins/BaseHyperlinkMixin.d.ts +18 -0
  42. package/dist/src/__mixins/MixinConstructor.d.ts +1 -0
  43. package/dist/src/banner/banner.d.ts +0 -4
  44. package/dist/src/button/BaseButton.d.ts +4 -47
  45. package/dist/src/button/button/button.d.ts +32 -3
  46. package/dist/src/button/button-group/button-group.d.ts +2 -2
  47. package/dist/src/button/icon-button/icon-button.d.ts +33 -8
  48. package/dist/src/card/card.d.ts +4 -15
  49. package/dist/src/fab/fab.d.ts +4 -35
  50. package/dist/src/focus-ring/focus-ring.d.ts +11 -5
  51. package/dist/src/index.d.ts +3 -1
  52. package/dist/src/link/link.d.ts +1 -1
  53. package/dist/src/navigation-rail/index.d.ts +2 -0
  54. package/dist/src/navigation-rail/navigation-rail-item.d.ts +55 -0
  55. package/dist/src/navigation-rail/navigation-rail.d.ts +71 -0
  56. package/dist/src/sidebar-menu/index.d.ts +3 -0
  57. package/dist/src/sidebar-menu/sidebar-menu-item.d.ts +58 -0
  58. package/dist/src/sidebar-menu/sidebar-menu.d.ts +38 -0
  59. package/dist/src/sidebar-menu/sidebar-sub-menu.d.ts +35 -0
  60. package/dist/src/toolbar/toolbar.d.ts +10 -10
  61. package/dist/src/tooltip/tooltip.d.ts +3 -0
  62. package/dist/src/url-field/index.d.ts +1 -0
  63. package/dist/src/url-field/url-field.d.ts +48 -0
  64. package/dist/test/sidebar-menu.test.d.ts +1 -0
  65. package/dist/toolbar.js +10 -10
  66. package/dist/toolbar.js.map +1 -1
  67. package/dist/tsconfig.tsbuildinfo +1 -1
  68. package/package.json +1 -1
  69. package/readme.md +73 -65
  70. package/scss/mixin.scss +16 -0
  71. package/src/__mixins/BaseButtonMixin.ts +83 -0
  72. package/src/__mixins/BaseHyperlinkMixin.ts +68 -0
  73. package/src/__mixins/MixinConstructor.ts +1 -0
  74. package/src/{__base_element → __mixins}/README.md +2 -2
  75. package/src/banner/banner.scss +18 -22
  76. package/src/banner/banner.ts +1 -7
  77. package/src/button/BaseButton.ts +11 -100
  78. package/src/button/button/button-sizes.scss +4 -2
  79. package/src/button/button/button.ts +76 -23
  80. package/src/button/button-group/button-group.ts +2 -2
  81. package/src/button/icon-button/icon-button.ts +75 -33
  82. package/src/card/card.ts +11 -71
  83. package/src/chart-bar/chart-bar.ts +9 -14
  84. package/src/chart-bar/chart-stacked-bar.ts +12 -18
  85. package/src/chart-doughnut/chart-doughnut.ts +23 -27
  86. package/src/chart-pie/chart-pie.ts +19 -23
  87. package/src/checkbox/checkbox.scss +17 -34
  88. package/src/checkbox/checkbox.ts +3 -1
  89. package/src/code-highlighter/code-highlighter.scss +1 -0
  90. package/src/code-highlighter/code-highlighter.ts +1 -1
  91. package/src/date-picker/date-picker.ts +1 -1
  92. package/src/elevation/elevation.scss +5 -5
  93. package/src/fab/fab.ts +29 -100
  94. package/src/focus-ring/focus-ring.ts +47 -40
  95. package/src/index.ts +3 -1
  96. package/src/input/input.ts +3 -1
  97. package/src/link/link.ts +2 -2
  98. package/src/menu/menu-item/menu-item.ts +3 -1
  99. package/src/navigation-rail/index.ts +2 -0
  100. package/src/navigation-rail/navigation-rail-item.scss +216 -0
  101. package/src/navigation-rail/navigation-rail-item.ts +223 -0
  102. package/src/navigation-rail/navigation-rail.scss +72 -0
  103. package/src/navigation-rail/navigation-rail.ts +149 -0
  104. package/src/notification/notification.ts +3 -2
  105. package/src/number-field/number-field.ts +6 -4
  106. package/src/pagination/pagination.ts +6 -4
  107. package/src/peacock-loader.ts +22 -5
  108. package/src/search/search.ts +4 -0
  109. package/src/sidebar-menu/demo/index.html +68 -0
  110. package/src/sidebar-menu/index.ts +3 -0
  111. package/src/sidebar-menu/sidebar-menu-item.scss +102 -0
  112. package/src/sidebar-menu/sidebar-menu-item.ts +151 -0
  113. package/src/{tree-view/tree-view.scss → sidebar-menu/sidebar-menu.scss} +1 -1
  114. package/src/sidebar-menu/sidebar-menu.ts +182 -0
  115. package/src/sidebar-menu/sidebar-sub-menu.scss +130 -0
  116. package/src/sidebar-menu/sidebar-sub-menu.ts +160 -0
  117. package/src/skeleton/skeleton.scss +18 -24
  118. package/src/snackbar/snackbar.ts +1 -1
  119. package/src/tabs/tab.ts +4 -3
  120. package/src/text/text.css-component.scss +7 -1
  121. package/src/time-picker/time-picker.ts +1 -1
  122. package/src/toolbar/toolbar.ts +10 -10
  123. package/src/tooltip/tooltip.ts +24 -0
  124. package/src/url-field/index.ts +1 -0
  125. package/src/url-field/url-field.scss +50 -0
  126. package/src/url-field/url-field.ts +239 -0
  127. package/dist/button-DMN1dPAg.js.map +0 -1
  128. package/dist/button-group-CX9CUUXk.js.map +0 -1
  129. package/dist/fab-C5Nzxk0E.js +0 -497
  130. package/dist/fab-C5Nzxk0E.js.map +0 -1
  131. package/dist/select-4pl4XBj7.js.map +0 -1
  132. package/dist/spread-B5cgadZl.js +0 -32
  133. package/dist/spread-B5cgadZl.js.map +0 -1
  134. package/dist/src/__base_element/BaseHyperlink.d.ts +0 -20
  135. package/dist/src/tree-view/index.d.ts +0 -2
  136. package/dist/src/tree-view/tree-node.d.ts +0 -69
  137. package/dist/src/tree-view/tree-view.d.ts +0 -40
  138. package/dist/src/tree-view/wc-tree-view.d.ts +0 -6
  139. package/dist/test/tree-view.test.d.ts +0 -1
  140. package/dist/throttle-C7ZAPqtu.js +0 -24
  141. package/dist/throttle-C7ZAPqtu.js.map +0 -1
  142. package/src/__base_element/BaseHyperlink.ts +0 -42
  143. package/src/tree-view/demo/index.html +0 -57
  144. package/src/tree-view/index.ts +0 -2
  145. package/src/tree-view/tree-node.scss +0 -101
  146. package/src/tree-view/tree-node.ts +0 -268
  147. package/src/tree-view/tree-view.ts +0 -182
  148. package/src/tree-view/wc-tree-view.ts +0 -9
@@ -1,182 +0,0 @@
1
- import { html, LitElement } from 'lit';
2
- import { property } from 'lit/decorators.js';
3
- import styles from './tree-view.scss';
4
- import { TreeNode } from './tree-node.js';
5
-
6
- /**
7
- * @label Tree View
8
- * @tag wc-tree-view
9
- * @rawTag tree-view
10
- * @summary A tree view is a hierarchical structure that provides nested levels of navigation. It supports keyboard navigation, single/multi select, and expandable nodes.
11
- *
12
- * @example
13
- * ```html
14
- * <wc-tree-view>
15
- * <wc-tree-node label="Parent" expanded>
16
- * <wc-tree-node label="Child 1"></wc-tree-node>
17
- * <wc-tree-node label="Child 2"></wc-tree-node>
18
- * </wc-tree-node>
19
- * </wc-tree-view>
20
- * ```
21
- * @tags navigation
22
- */
23
- export class TreeView extends LitElement {
24
- static styles = [styles];
25
-
26
- /**
27
- * The value of the currently selected node.
28
- */
29
- @property({ type: String, attribute: 'selected-node', reflect: true })
30
- selectedNode: string = '';
31
-
32
- connectedCallback() {
33
- super.connectedCallback();
34
- this.addEventListener('tree-node:click', this._onNodeClick as EventListener);
35
- this.addEventListener('keydown', this._onKeyDown);
36
- this.setAttribute('role', 'tree');
37
- }
38
-
39
- updated(changedProps: Map<string, unknown>) {
40
- super.updated(changedProps);
41
-
42
- if (changedProps.has('selectedNode')) {
43
- this._syncSelectedStateFromProperty();
44
- }
45
- }
46
-
47
- disconnectedCallback() {
48
- super.disconnectedCallback();
49
- this.removeEventListener('tree-node:click', this._onNodeClick as EventListener);
50
- this.removeEventListener('keydown', this._onKeyDown);
51
- }
52
-
53
- private _getTopLevelNodes(): TreeNode[] {
54
- return Array.from(this.children).filter(
55
- el => el.tagName.toLowerCase() === 'wc-tree-node',
56
- ) as TreeNode[];
57
- }
58
-
59
- private _getAllVisibleNodes(): TreeNode[] {
60
- const result: TreeNode[] = [];
61
- const collect = (nodes: TreeNode[]) => {
62
- nodes.forEach(node => {
63
- result.push(node);
64
- if (node.expanded) {
65
- const children = Array.from(node.children).filter(
66
- el => el.tagName.toLowerCase() === 'wc-tree-node',
67
- ) as TreeNode[];
68
- collect(children);
69
- }
70
- });
71
- };
72
- collect(this._getTopLevelNodes());
73
- return result;
74
- }
75
-
76
- private _onNodeClick = (event: CustomEvent) => {
77
- const target = event.target as TreeNode;
78
- if (target.disabled) return;
79
-
80
- const value = event.detail?.value ?? target.value ?? target.label;
81
- this.selectedNode = value;
82
-
83
- // Update selected state on all nodes
84
- this._updateSelectedState(value);
85
-
86
- this.dispatchEvent(
87
- new CustomEvent('tree-view:change', {
88
- bubbles: true,
89
- composed: true,
90
- detail: { value, node: target },
91
- }),
92
- );
93
- };
94
-
95
- private _updateSelectedState(selectedValue: string) {
96
- const allNodes = this._collectAllNodes(this._getTopLevelNodes());
97
- allNodes.forEach(node => {
98
- const nodeValue = node.value || node.label;
99
- // eslint-disable-next-line no-param-reassign
100
- node.selected = nodeValue === selectedValue;
101
- });
102
- }
103
-
104
- private _clearSelectedState() {
105
- const allNodes = this._collectAllNodes(this._getTopLevelNodes());
106
- allNodes.forEach(node => {
107
- // eslint-disable-next-line no-param-reassign
108
- node.selected = false;
109
- });
110
- }
111
-
112
- private _syncSelectedStateFromProperty() {
113
- if (this.selectedNode) {
114
- this._updateSelectedState(this.selectedNode);
115
- return;
116
- }
117
-
118
- this._clearSelectedState();
119
- }
120
-
121
- private _onSlotChange = () => {
122
- this._syncSelectedStateFromProperty();
123
- };
124
-
125
- private _collectAllNodes(nodes: TreeNode[]): TreeNode[] {
126
- const result: TreeNode[] = [];
127
- nodes.forEach(node => {
128
- result.push(node);
129
- const children = Array.from(node.children).filter(
130
- el => el.tagName.toLowerCase() === 'wc-tree-node',
131
- ) as TreeNode[];
132
- result.push(...this._collectAllNodes(children));
133
- });
134
- return result;
135
- }
136
-
137
- private _onKeyDown = (event: KeyboardEvent) => {
138
- const visibleNodes = this._getAllVisibleNodes().filter(n => !n.disabled);
139
- if (visibleNodes.length === 0) return;
140
-
141
- const focusedIndex = visibleNodes.findIndex(node => {
142
- const root = node.shadowRoot;
143
- return root?.activeElement !== null && root?.activeElement !== undefined;
144
- });
145
-
146
- if (focusedIndex === -1 && event.key !== 'Tab') return;
147
-
148
- switch (event.key) {
149
- case 'ArrowDown': {
150
- event.preventDefault();
151
- const nextIndex = (focusedIndex + 1) % visibleNodes.length;
152
- visibleNodes[nextIndex]?.focus();
153
- break;
154
- }
155
- case 'ArrowUp': {
156
- event.preventDefault();
157
- const prevIndex =
158
- (focusedIndex - 1 + visibleNodes.length) % visibleNodes.length;
159
- visibleNodes[prevIndex]?.focus();
160
- break;
161
- }
162
- case 'Home':
163
- event.preventDefault();
164
- visibleNodes[0]?.focus();
165
- break;
166
- case 'End':
167
- event.preventDefault();
168
- visibleNodes[visibleNodes.length - 1]?.focus();
169
- break;
170
- default:
171
- break;
172
- }
173
- };
174
-
175
- render() {
176
- return html`<div class="tree-view">
177
- <slot @slotchange=${this._onSlotChange}></slot>
178
- </div>`;
179
- }
180
-
181
- static Node = TreeNode;
182
- }
@@ -1,9 +0,0 @@
1
- import { customElement } from 'lit/decorators.js';
2
- import { TreeView } from './tree-view.js';
3
- import { TreeNode } from './tree-node.js';
4
-
5
- @customElement('wc-tree-node')
6
- export class WcTreeNode extends TreeNode {}
7
-
8
- @customElement('wc-tree-view')
9
- export class WcTreeView extends TreeView {}