@govtechsg/sgds-web-component 3.15.1-rc.3 → 3.16.0

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 (203) hide show
  1. package/components/Badge/index.umd.min.js +1 -1
  2. package/components/Badge/index.umd.min.js.map +1 -1
  3. package/components/Breadcrumb/index.umd.min.js +6 -6
  4. package/components/Breadcrumb/index.umd.min.js.map +1 -1
  5. package/components/ComboBox/index.umd.min.js +2 -2
  6. package/components/ComboBox/index.umd.min.js.map +1 -1
  7. package/components/ComboBox/sgds-combo-box.d.ts +3 -3
  8. package/components/ComboBox/sgds-combo-box.js +0 -1
  9. package/components/ComboBox/sgds-combo-box.js.map +1 -1
  10. package/components/Datepicker/index.umd.min.js +1 -1
  11. package/components/Datepicker/index.umd.min.js.map +1 -1
  12. package/components/Drawer/drawer.js +1 -1
  13. package/components/Drawer/index.umd.min.js +1 -1
  14. package/components/Drawer/index.umd.min.js.map +1 -1
  15. package/components/Dropdown/dropdown-menu.js +1 -1
  16. package/components/Dropdown/index.umd.min.js +1 -1
  17. package/components/Dropdown/index.umd.min.js.map +1 -1
  18. package/components/FileUpload/index.umd.min.js.map +1 -1
  19. package/components/FileUpload/sgds-file-upload.d.ts +0 -3
  20. package/components/FileUpload/sgds-file-upload.js +0 -1
  21. package/components/FileUpload/sgds-file-upload.js.map +1 -1
  22. package/components/Mainnav/index.umd.min.js +9 -9
  23. package/components/Mainnav/index.umd.min.js.map +1 -1
  24. package/components/Mainnav/mainnav.js +1 -1
  25. package/components/Modal/index.umd.min.js +1 -1
  26. package/components/Modal/index.umd.min.js.map +1 -1
  27. package/components/Modal/modal.js +1 -1
  28. package/components/OverflowMenu/index.umd.min.js +6 -6
  29. package/components/OverflowMenu/index.umd.min.js.map +1 -1
  30. package/components/Pagination/index.umd.min.js.map +1 -1
  31. package/components/Pagination/sgds-pagination.d.ts +0 -3
  32. package/components/Pagination/sgds-pagination.js +0 -1
  33. package/components/Pagination/sgds-pagination.js.map +1 -1
  34. package/components/Radio/index.umd.min.js.map +1 -1
  35. package/components/Radio/sgds-radio-group.d.ts +0 -3
  36. package/components/Radio/sgds-radio-group.js +0 -1
  37. package/components/Radio/sgds-radio-group.js.map +1 -1
  38. package/components/Select/index.umd.min.js +1 -1
  39. package/components/Select/index.umd.min.js.map +1 -1
  40. package/components/Stepper/index.umd.min.js.map +1 -1
  41. package/components/Stepper/sgds-stepper.d.ts +5 -2
  42. package/components/Stepper/sgds-stepper.js.map +1 -1
  43. package/components/Subnav/index.umd.min.js +1 -1
  44. package/components/Subnav/index.umd.min.js.map +1 -1
  45. package/components/Subnav/subnav.js +1 -1
  46. package/components/Switch/index.umd.min.js.map +1 -1
  47. package/components/Switch/sgds-switch.d.ts +0 -3
  48. package/components/Switch/sgds-switch.js +0 -1
  49. package/components/Switch/sgds-switch.js.map +1 -1
  50. package/components/Toast/index.umd.min.js +1 -1
  51. package/components/Toast/index.umd.min.js.map +1 -1
  52. package/components/Toast/toast-container.js +1 -1
  53. package/components/Tooltip/index.umd.min.js +1 -1
  54. package/components/Tooltip/index.umd.min.js.map +1 -1
  55. package/components/Tooltip/tooltip.js +1 -1
  56. package/components/index.d.ts +0 -1
  57. package/components/index.js +0 -1
  58. package/components/index.js.map +1 -1
  59. package/components/index.umd.min.js +64 -116
  60. package/components/index.umd.min.js.map +1 -1
  61. package/css/fouc.css +1 -5
  62. package/css/utility.css +0 -14
  63. package/index.d.ts +0 -1
  64. package/index.js +0 -1
  65. package/index.js.map +1 -1
  66. package/index.umd.min.js +63 -194
  67. package/index.umd.min.js.map +1 -1
  68. package/package.json +3 -5
  69. package/react/components/ComboBox/sgds-combo-box.cjs.js +0 -1
  70. package/react/components/ComboBox/sgds-combo-box.cjs.js.map +1 -1
  71. package/react/components/ComboBox/sgds-combo-box.js +0 -1
  72. package/react/components/ComboBox/sgds-combo-box.js.map +1 -1
  73. package/react/components/Drawer/drawer.cjs.js +1 -1
  74. package/react/components/Drawer/drawer.js +1 -1
  75. package/react/components/Dropdown/dropdown-menu.cjs.js +1 -1
  76. package/react/components/Dropdown/dropdown-menu.js +1 -1
  77. package/react/components/FileUpload/sgds-file-upload.cjs.js +0 -1
  78. package/react/components/FileUpload/sgds-file-upload.cjs.js.map +1 -1
  79. package/react/components/FileUpload/sgds-file-upload.js +0 -1
  80. package/react/components/FileUpload/sgds-file-upload.js.map +1 -1
  81. package/react/components/Mainnav/mainnav.cjs.js +1 -1
  82. package/react/components/Mainnav/mainnav.js +1 -1
  83. package/react/components/Modal/modal.cjs.js +1 -1
  84. package/react/components/Modal/modal.js +1 -1
  85. package/react/components/Pagination/sgds-pagination.cjs.js +0 -1
  86. package/react/components/Pagination/sgds-pagination.cjs.js.map +1 -1
  87. package/react/components/Pagination/sgds-pagination.js +0 -1
  88. package/react/components/Pagination/sgds-pagination.js.map +1 -1
  89. package/react/components/Radio/sgds-radio-group.cjs.js +0 -1
  90. package/react/components/Radio/sgds-radio-group.cjs.js.map +1 -1
  91. package/react/components/Radio/sgds-radio-group.js +0 -1
  92. package/react/components/Radio/sgds-radio-group.js.map +1 -1
  93. package/react/components/Stepper/sgds-stepper.cjs.js.map +1 -1
  94. package/react/components/Stepper/sgds-stepper.js.map +1 -1
  95. package/react/components/Subnav/subnav.cjs.js +1 -1
  96. package/react/components/Subnav/subnav.js +1 -1
  97. package/react/components/Switch/sgds-switch.cjs.js +0 -1
  98. package/react/components/Switch/sgds-switch.cjs.js.map +1 -1
  99. package/react/components/Switch/sgds-switch.js +0 -1
  100. package/react/components/Switch/sgds-switch.js.map +1 -1
  101. package/react/components/Toast/toast-container.cjs.js +1 -1
  102. package/react/components/Toast/toast-container.js +1 -1
  103. package/react/components/Tooltip/tooltip.cjs.js +1 -1
  104. package/react/components/Tooltip/tooltip.js +1 -1
  105. package/react/index.cjs.js +54 -62
  106. package/react/index.cjs.js.map +1 -1
  107. package/react/index.d.ts +1 -5
  108. package/react/index.js +1 -5
  109. package/react/index.js.map +1 -1
  110. package/themes/root.css +0 -13
  111. package/components/ComboBox/types.d.ts +0 -3
  112. package/components/FileUpload/types.d.ts +0 -1
  113. package/components/Pagination/types.d.ts +0 -3
  114. package/components/Radio/types.d.ts +0 -3
  115. package/components/Sidebar/index.d.ts +0 -16
  116. package/components/Sidebar/index.js +0 -10
  117. package/components/Sidebar/index.js.map +0 -1
  118. package/components/Sidebar/index.umd.min.js +0 -2501
  119. package/components/Sidebar/index.umd.min.js.map +0 -1
  120. package/components/Sidebar/sgds-sidebar-group.d.ts +0 -51
  121. package/components/Sidebar/sgds-sidebar-group.js +0 -123
  122. package/components/Sidebar/sgds-sidebar-group.js.map +0 -1
  123. package/components/Sidebar/sgds-sidebar-item.d.ts +0 -17
  124. package/components/Sidebar/sgds-sidebar-item.js +0 -61
  125. package/components/Sidebar/sgds-sidebar-item.js.map +0 -1
  126. package/components/Sidebar/sgds-sidebar-section.d.ts +0 -56
  127. package/components/Sidebar/sgds-sidebar-section.js +0 -125
  128. package/components/Sidebar/sgds-sidebar-section.js.map +0 -1
  129. package/components/Sidebar/sgds-sidebar.d.ts +0 -161
  130. package/components/Sidebar/sgds-sidebar.js +0 -424
  131. package/components/Sidebar/sgds-sidebar.js.map +0 -1
  132. package/components/Sidebar/sidebar-context.d.ts +0 -51
  133. package/components/Sidebar/sidebar-context.js +0 -45
  134. package/components/Sidebar/sidebar-context.js.map +0 -1
  135. package/components/Sidebar/sidebar-element.d.ts +0 -112
  136. package/components/Sidebar/sidebar-element.js +0 -280
  137. package/components/Sidebar/sidebar-element.js.map +0 -1
  138. package/components/Sidebar/sidebar-item.js +0 -6
  139. package/components/Sidebar/sidebar-item.js.map +0 -1
  140. package/components/Sidebar/sidebar-section.js +0 -6
  141. package/components/Sidebar/sidebar-section.js.map +0 -1
  142. package/components/Sidebar/sidebar.js +0 -6
  143. package/components/Sidebar/sidebar.js.map +0 -1
  144. package/components/Stepper/types.d.ts +0 -5
  145. package/components/Switch/types.d.ts +0 -3
  146. package/custom-elements.json +0 -26391
  147. package/react/components/Sidebar/sgds-sidebar-group.cjs.js +0 -129
  148. package/react/components/Sidebar/sgds-sidebar-group.cjs.js.map +0 -1
  149. package/react/components/Sidebar/sgds-sidebar-group.js +0 -124
  150. package/react/components/Sidebar/sgds-sidebar-group.js.map +0 -1
  151. package/react/components/Sidebar/sgds-sidebar-item.cjs.js +0 -67
  152. package/react/components/Sidebar/sgds-sidebar-item.cjs.js.map +0 -1
  153. package/react/components/Sidebar/sgds-sidebar-item.js +0 -62
  154. package/react/components/Sidebar/sgds-sidebar-item.js.map +0 -1
  155. package/react/components/Sidebar/sgds-sidebar-section.cjs.js +0 -131
  156. package/react/components/Sidebar/sgds-sidebar-section.cjs.js.map +0 -1
  157. package/react/components/Sidebar/sgds-sidebar-section.js +0 -126
  158. package/react/components/Sidebar/sgds-sidebar-section.js.map +0 -1
  159. package/react/components/Sidebar/sgds-sidebar.cjs.js +0 -430
  160. package/react/components/Sidebar/sgds-sidebar.cjs.js.map +0 -1
  161. package/react/components/Sidebar/sgds-sidebar.js +0 -425
  162. package/react/components/Sidebar/sgds-sidebar.js.map +0 -1
  163. package/react/components/Sidebar/sidebar-context.cjs.js +0 -54
  164. package/react/components/Sidebar/sidebar-context.cjs.js.map +0 -1
  165. package/react/components/Sidebar/sidebar-context.js +0 -46
  166. package/react/components/Sidebar/sidebar-context.js.map +0 -1
  167. package/react/components/Sidebar/sidebar-element.cjs.js +0 -285
  168. package/react/components/Sidebar/sidebar-element.cjs.js.map +0 -1
  169. package/react/components/Sidebar/sidebar-element.js +0 -281
  170. package/react/components/Sidebar/sidebar-element.js.map +0 -1
  171. package/react/components/Sidebar/sidebar-item.cjs.js +0 -11
  172. package/react/components/Sidebar/sidebar-item.cjs.js.map +0 -1
  173. package/react/components/Sidebar/sidebar-item.js +0 -7
  174. package/react/components/Sidebar/sidebar-item.js.map +0 -1
  175. package/react/components/Sidebar/sidebar-section.cjs.js +0 -11
  176. package/react/components/Sidebar/sidebar-section.cjs.js.map +0 -1
  177. package/react/components/Sidebar/sidebar-section.js +0 -7
  178. package/react/components/Sidebar/sidebar-section.js.map +0 -1
  179. package/react/components/Sidebar/sidebar.cjs.js +0 -11
  180. package/react/components/Sidebar/sidebar.cjs.js.map +0 -1
  181. package/react/components/Sidebar/sidebar.js +0 -7
  182. package/react/components/Sidebar/sidebar.js.map +0 -1
  183. package/react/sidebar/index.cjs.js +0 -42
  184. package/react/sidebar/index.cjs.js.map +0 -1
  185. package/react/sidebar/index.d.ts +0 -2
  186. package/react/sidebar/index.js +0 -18
  187. package/react/sidebar/index.js.map +0 -1
  188. package/react/sidebar-group/index.cjs.js +0 -40
  189. package/react/sidebar-group/index.cjs.js.map +0 -1
  190. package/react/sidebar-group/index.d.ts +0 -2
  191. package/react/sidebar-group/index.js +0 -16
  192. package/react/sidebar-group/index.js.map +0 -1
  193. package/react/sidebar-item/index.cjs.js +0 -40
  194. package/react/sidebar-item/index.cjs.js.map +0 -1
  195. package/react/sidebar-item/index.d.ts +0 -2
  196. package/react/sidebar-item/index.js +0 -16
  197. package/react/sidebar-item/index.js.map +0 -1
  198. package/react/sidebar-section/index.cjs.js +0 -40
  199. package/react/sidebar-section/index.cjs.js.map +0 -1
  200. package/react/sidebar-section/index.d.ts +0 -2
  201. package/react/sidebar-section/index.js +0 -16
  202. package/react/sidebar-section/index.js.map +0 -1
  203. package/types/react.d.ts +0 -1623
@@ -1,285 +0,0 @@
1
- 'use client';
2
- 'use strict';
3
-
4
- Object.defineProperty(exports, '__esModule', { value: true });
5
-
6
- var tslib = require('tslib');
7
- var decorators_js = require('lit/decorators.js');
8
- var dropdownElement = require('../../base/dropdown-element.cjs.js');
9
- var sgdsElement = require('../../base/sgds-element.cjs.js');
10
- var context = require('@lit/context');
11
- var sidebarContext = require('./sidebar-context.cjs.js');
12
-
13
- const ARROW_DOWN = "ArrowDown";
14
- const ARROW_UP = "ArrowUp";
15
- const ARROW_LEFT = "ArrowLeft";
16
- const ARROW_RIGHT = "ArrowRight";
17
- const ENTER = "Enter";
18
- /**
19
- * @summary Base class for sidebar navigation components.
20
- * Provides core functionality for sidebar items and groups including keyboard navigation,
21
- * selection state management, and nesting support. This class manages hierarchical navigation,
22
- * active state tracking, and drawer overlay coordination through context providers.
23
- *
24
- * Features:
25
- * - Multi-level keyboard navigation (Arrow keys, Enter)
26
- * - Active state management via Lit context subscription
27
- * - Support for nested hierarchies up to 3 levels deep
28
- * - Focus management and full ARIA attribute support
29
- * - Event emission for sidebar coordination (i-sgds-click)
30
- * - Automatic child element tracking and nesting level detection
31
- *
32
- * Keyboard Navigation:
33
- * - Arrow Up/Down: Navigate between siblings in the same level
34
- * - Arrow Left/Right: Navigate hierarchically (collapse/expand or move in drawer)
35
- * - Enter: Activate focused item or toggle group
36
- *
37
- * Context Management:
38
- * - Consumes: SidebarCollapsed, SidebarActiveItem, SidebarActiveGroup, SidebarDrawerItems
39
- * - Updates state based on context changes for responsive UI updates
40
- *
41
- * @internal
42
- */
43
- class SidebarElement extends sgdsElement["default"] {
44
- constructor() {
45
- super(...arguments);
46
- /**
47
- * The display title/label for the sidebar element.
48
- * Shown in the UI and used for accessibility labels (aria-label).
49
- * @attribute title
50
- * @type {string}
51
- * @default ""
52
- */
53
- this.title = "";
54
- /**
55
- * The unique name identifier for the sidebar element.
56
- * Used to identify selections in sgds-select events and manage active states.
57
- * Should be unique among siblings in the same navigation level.
58
- * @attribute name
59
- * @type {string}
60
- * @default ""
61
- */
62
- this.name = "";
63
- /** @internal */
64
- this._sidebarCollapsed = false;
65
- /** @internal */
66
- this._sidebarActiveItem = null;
67
- /** @internal */
68
- this._sidebarActiveGroup = null;
69
- /** @internal */
70
- this._drawerItems = null;
71
- /** @internal Tracks whether a drawer overlay is currently open */
72
- this._showDrawer = false;
73
- /** @internal */
74
- this._childLevel = 1;
75
- /**
76
- * Indicates whether this element is currently selected/active.
77
- * @internal
78
- */
79
- this._selected = false;
80
- /**
81
- * Indicates whether this element should be hidden based on nesting context.
82
- * @internal
83
- */
84
- this._hidden = false;
85
- /**
86
- * List of child elements assigned to this component.
87
- * @internal
88
- */
89
- this._childElements = [];
90
- /** @internal */
91
- this._childActive = false;
92
- }
93
- connectedCallback() {
94
- super.connectedCallback();
95
- this.getChildLevel();
96
- this.setAttribute("role", "navigation");
97
- this.addEventListener("keydown", this._handleKeyDown);
98
- }
99
- disconnectedCallback() {
100
- super.disconnectedCallback();
101
- this.removeEventListener("keydown", this._handleKeyDown);
102
- }
103
- firstUpdated(changedProperties) {
104
- super.firstUpdated(changedProperties);
105
- this.getChildLevel();
106
- }
107
- updated() {
108
- if (this._childLevel === 2) {
109
- this._hidden = !this.closest(".sidebar-nested-overlay");
110
- }
111
- }
112
- /**
113
- * Handles slot change events and updates child elements list.
114
- * @internal
115
- * @returns {void}
116
- */
117
- _handleSlotChange() {
118
- this._childElements = this._defaultNodes;
119
- }
120
- /**
121
- * Handles click/activation events on the sidebar element.
122
- * Emits internal click event for parent sidebar to handle selection.
123
- * @internal
124
- * @param {SidebarElement} [element] - Optional element parameter (for keyboard compatibility)
125
- * @returns {void}
126
- */
127
- _handleClick() {
128
- this.emit("i-sgds-click", { detail: { element: this, level: this._childLevel } });
129
- }
130
- /**
131
- * Handles keyboard navigation events for sidebar elements.
132
- * Supports Arrow Up/Down for navigation and Arrow Left/Right for drawer management.
133
- * @internal
134
- * @param {KeyboardEvent} event - The keyboard event object
135
- * @returns {void}
136
- */
137
- _handleKeyDown(event) {
138
- var _a, _b, _c;
139
- const target = event.target;
140
- switch (event.key) {
141
- case ENTER: {
142
- event.preventDefault();
143
- event.stopPropagation();
144
- if (event.target === this)
145
- this._handleClick();
146
- return;
147
- }
148
- case ARROW_DOWN: {
149
- event.preventDefault();
150
- event.stopPropagation();
151
- const child = target._childElements[0];
152
- const isChildHidden = child === null || child === void 0 ? void 0 : child._hidden;
153
- const childElement = !isChildHidden ? child : null;
154
- const nextElement = childElement || target.nextElementSibling || target.parentElement.nextElementSibling;
155
- if (nextElement === null || nextElement === void 0 ? void 0 : nextElement.shadowRoot) {
156
- const focusTarget = nextElement.shadowRoot.querySelector("[tabindex]");
157
- focusTarget === null || focusTarget === void 0 ? void 0 : focusTarget.focus();
158
- }
159
- return;
160
- }
161
- case ARROW_UP: {
162
- event.preventDefault();
163
- event.stopPropagation();
164
- const prevSiblingChildren = (_a = target.previousElementSibling) === null || _a === void 0 ? void 0 : _a._childElements;
165
- const lastChild = prevSiblingChildren ? prevSiblingChildren[(prevSiblingChildren === null || prevSiblingChildren === void 0 ? void 0 : prevSiblingChildren.length) - 1] : null;
166
- const isChildHidden = lastChild === null || lastChild === void 0 ? void 0 : lastChild._hidden;
167
- const childElement = !isChildHidden ? lastChild : null;
168
- const prevElement = childElement || target.previousElementSibling || target.parentElement;
169
- if (prevElement === null || prevElement === void 0 ? void 0 : prevElement.shadowRoot) {
170
- const focusTarget = prevElement.shadowRoot.querySelector("[tabindex]");
171
- focusTarget === null || focusTarget === void 0 ? void 0 : focusTarget.focus();
172
- }
173
- return;
174
- }
175
- case ARROW_LEFT: {
176
- event.preventDefault();
177
- event.stopPropagation();
178
- if (this._sidebarActiveGroup === this) {
179
- // when drawer is open, close it
180
- if (this._showDrawer)
181
- this._handleClick();
182
- }
183
- else {
184
- // check if we are on the drawer, if so move back to parent
185
- const childLevel = target._childLevel;
186
- if (childLevel >= 2 && ((_b = this._sidebarActiveGroup) === null || _b === void 0 ? void 0 : _b.shadowRoot)) {
187
- const focusTarget = this._sidebarActiveGroup.shadowRoot.querySelector("[tabindex]");
188
- focusTarget === null || focusTarget === void 0 ? void 0 : focusTarget.focus();
189
- }
190
- }
191
- return;
192
- }
193
- case ARROW_RIGHT: {
194
- event.preventDefault();
195
- event.stopPropagation();
196
- if (this._sidebarActiveGroup === this) {
197
- if ((_c = this._drawerItems) === null || _c === void 0 ? void 0 : _c.length) {
198
- if (this._showDrawer) {
199
- const drawerItem = this._drawerItems[0];
200
- if (drawerItem === null || drawerItem === void 0 ? void 0 : drawerItem.shadowRoot) {
201
- const focusTarget = drawerItem.shadowRoot.querySelector("[tabindex]");
202
- focusTarget === null || focusTarget === void 0 ? void 0 : focusTarget.focus();
203
- }
204
- }
205
- else {
206
- this._handleClick();
207
- }
208
- }
209
- }
210
- else {
211
- if (this._childLevel === 1 && this._childElements.length > 0) {
212
- // when there is nested, we trigger click to show drawer
213
- this._handleClick();
214
- }
215
- }
216
- return;
217
- }
218
- }
219
- }
220
- /**
221
- * Calculates the nesting level by counting parent sgds-sidebar-group ancestors.
222
- * Level 1 = top-level element, Level 2+ = nested within another group.
223
- * Updates the _childLevel state property.
224
- * @internal
225
- * @returns {void}
226
- */
227
- getChildLevel() {
228
- let currentEle = this.parentElement;
229
- let level = 1;
230
- while (currentEle.tagName.toLowerCase() === "sgds-sidebar-group") {
231
- level += 1;
232
- currentEle = currentEle.parentElement;
233
- }
234
- const isInDrawer = currentEle.classList.contains("sidebar-nested-overlay");
235
- this._childLevel = isInDrawer ? level + 1 : level;
236
- }
237
- }
238
- SidebarElement.styles = dropdownElement.DropdownElement.styles;
239
- tslib.__decorate([
240
- decorators_js.property({ type: String, reflect: true })
241
- ], SidebarElement.prototype, "title", void 0);
242
- tslib.__decorate([
243
- decorators_js.property({ type: String, reflect: true })
244
- ], SidebarElement.prototype, "name", void 0);
245
- tslib.__decorate([
246
- context.consume({ context: sidebarContext.SidebarCollapsed, subscribe: true }),
247
- decorators_js.state()
248
- ], SidebarElement.prototype, "_sidebarCollapsed", void 0);
249
- tslib.__decorate([
250
- context.consume({ context: sidebarContext.SidebarActiveItem, subscribe: true }),
251
- decorators_js.state()
252
- ], SidebarElement.prototype, "_sidebarActiveItem", void 0);
253
- tslib.__decorate([
254
- context.consume({ context: sidebarContext.SidebarActiveGroup, subscribe: true }),
255
- decorators_js.state()
256
- ], SidebarElement.prototype, "_sidebarActiveGroup", void 0);
257
- tslib.__decorate([
258
- context.consume({ context: sidebarContext.SidebarDrawerItems, subscribe: true }),
259
- decorators_js.state()
260
- ], SidebarElement.prototype, "_drawerItems", void 0);
261
- tslib.__decorate([
262
- context.consume({ context: sidebarContext.SidebarDrawerOpen, subscribe: true }),
263
- decorators_js.state()
264
- ], SidebarElement.prototype, "_showDrawer", void 0);
265
- tslib.__decorate([
266
- decorators_js.state()
267
- ], SidebarElement.prototype, "_childLevel", void 0);
268
- tslib.__decorate([
269
- decorators_js.state()
270
- ], SidebarElement.prototype, "_selected", void 0);
271
- tslib.__decorate([
272
- decorators_js.state()
273
- ], SidebarElement.prototype, "_hidden", void 0);
274
- tslib.__decorate([
275
- decorators_js.state()
276
- ], SidebarElement.prototype, "_childElements", void 0);
277
- tslib.__decorate([
278
- decorators_js.state()
279
- ], SidebarElement.prototype, "_childActive", void 0);
280
- tslib.__decorate([
281
- decorators_js.queryAssignedElements({ flatten: true })
282
- ], SidebarElement.prototype, "_defaultNodes", void 0);
283
-
284
- exports.SidebarElement = SidebarElement;
285
- //# sourceMappingURL=sidebar-element.cjs.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"sidebar-element.cjs.js","sources":["../../../../src/components/Sidebar/sidebar-element.ts"],"sourcesContent":["import { property, queryAssignedElements, state } from \"lit/decorators.js\";\nimport { DropdownElement } from \"../../base/dropdown-element\";\nimport { PropertyValueMap } from \"lit\";\nimport SgdsElement from \"../../base/sgds-element\";\nimport { consume } from \"@lit/context\";\nimport {\n SidebarActiveGroup,\n SidebarActiveItem,\n SidebarCollapsed,\n SidebarDrawerItems,\n SidebarDrawerOpen\n} from \"./sidebar-context\";\n\nconst ARROW_DOWN = \"ArrowDown\";\nconst ARROW_UP = \"ArrowUp\";\nconst ARROW_LEFT = \"ArrowLeft\";\nconst ARROW_RIGHT = \"ArrowRight\";\nconst ENTER = \"Enter\";\n\n/**\n * @summary Base class for sidebar navigation components.\n * Provides core functionality for sidebar items and groups including keyboard navigation,\n * selection state management, and nesting support. This class manages hierarchical navigation,\n * active state tracking, and drawer overlay coordination through context providers.\n *\n * Features:\n * - Multi-level keyboard navigation (Arrow keys, Enter)\n * - Active state management via Lit context subscription\n * - Support for nested hierarchies up to 3 levels deep\n * - Focus management and full ARIA attribute support\n * - Event emission for sidebar coordination (i-sgds-click)\n * - Automatic child element tracking and nesting level detection\n *\n * Keyboard Navigation:\n * - Arrow Up/Down: Navigate between siblings in the same level\n * - Arrow Left/Right: Navigate hierarchically (collapse/expand or move in drawer)\n * - Enter: Activate focused item or toggle group\n *\n * Context Management:\n * - Consumes: SidebarCollapsed, SidebarActiveItem, SidebarActiveGroup, SidebarDrawerItems\n * - Updates state based on context changes for responsive UI updates\n *\n * @internal\n */\nexport class SidebarElement extends SgdsElement {\n static styles = DropdownElement.styles;\n\n /**\n * The display title/label for the sidebar element.\n * Shown in the UI and used for accessibility labels (aria-label).\n * @attribute title\n * @type {string}\n * @default \"\"\n */\n @property({ type: String, reflect: true }) title = \"\";\n\n /**\n * The unique name identifier for the sidebar element.\n * Used to identify selections in sgds-select events and manage active states.\n * Should be unique among siblings in the same navigation level.\n * @attribute name\n * @type {string}\n * @default \"\"\n */\n @property({ type: String, reflect: true }) name = \"\";\n\n /** @internal */\n @consume({ context: SidebarCollapsed, subscribe: true })\n @state()\n _sidebarCollapsed = false;\n\n /** @internal */\n @consume({ context: SidebarActiveItem, subscribe: true })\n @state()\n _sidebarActiveItem: SidebarElement | null = null;\n\n /** @internal */\n @consume({ context: SidebarActiveGroup, subscribe: true })\n @state()\n _sidebarActiveGroup: SidebarElement | null = null;\n\n /** @internal */\n @consume({ context: SidebarDrawerItems, subscribe: true })\n @state()\n _drawerItems: SidebarElement[] | null = null;\n\n /** @internal Tracks whether a drawer overlay is currently open */\n @consume({ context: SidebarDrawerOpen, subscribe: true })\n @state()\n _showDrawer = false;\n\n /** @internal */\n @state() _childLevel = 1;\n\n /**\n * Indicates whether this element is currently selected/active.\n * @internal\n */\n @state() _selected = false;\n\n /**\n * Indicates whether this element should be hidden based on nesting context.\n * @internal\n */\n @state() _hidden = false;\n\n /**\n * List of child elements assigned to this component.\n * @internal\n */\n @state()\n _childElements: SidebarElement[] = [];\n\n /** @internal */\n @state() _childActive = false;\n\n /** @internal */\n @queryAssignedElements({ flatten: true })\n private _defaultNodes!: SidebarElement[];\n\n connectedCallback() {\n super.connectedCallback();\n this.getChildLevel();\n this.setAttribute(\"role\", \"navigation\");\n this.addEventListener(\"keydown\", this._handleKeyDown);\n }\n\n disconnectedCallback() {\n super.disconnectedCallback();\n this.removeEventListener(\"keydown\", this._handleKeyDown);\n }\n\n firstUpdated(changedProperties: PropertyValueMap<this>) {\n super.firstUpdated(changedProperties);\n this.getChildLevel();\n }\n\n updated() {\n if (this._childLevel === 2) {\n this._hidden = !this.closest(\".sidebar-nested-overlay\");\n }\n }\n\n /**\n * Handles slot change events and updates child elements list.\n * @internal\n * @returns {void}\n */\n _handleSlotChange() {\n this._childElements = this._defaultNodes;\n }\n\n /**\n * Handles click/activation events on the sidebar element.\n * Emits internal click event for parent sidebar to handle selection.\n * @internal\n * @param {SidebarElement} [element] - Optional element parameter (for keyboard compatibility)\n * @returns {void}\n */\n protected _handleClick() {\n this.emit(\"i-sgds-click\", { detail: { element: this, level: this._childLevel } });\n }\n\n /**\n * Handles keyboard navigation events for sidebar elements.\n * Supports Arrow Up/Down for navigation and Arrow Left/Right for drawer management.\n * @internal\n * @param {KeyboardEvent} event - The keyboard event object\n * @returns {void}\n */\n private _handleKeyDown(event: KeyboardEvent) {\n const target = event.target as HTMLElement;\n\n switch (event.key) {\n case ENTER: {\n event.preventDefault();\n event.stopPropagation();\n if (event.target === this) this._handleClick();\n return;\n }\n case ARROW_DOWN: {\n event.preventDefault();\n event.stopPropagation();\n\n const child = (target as SidebarElement)._childElements[0];\n\n const isChildHidden = child?._hidden;\n const childElement = !isChildHidden ? child : null;\n const nextElement = childElement || target.nextElementSibling || target.parentElement.nextElementSibling;\n\n if (nextElement?.shadowRoot) {\n const focusTarget = nextElement.shadowRoot.querySelector(\"[tabindex]\") as HTMLElement | null;\n focusTarget?.focus();\n }\n\n return;\n }\n case ARROW_UP: {\n event.preventDefault();\n event.stopPropagation();\n\n const prevSiblingChildren = (target.previousElementSibling as SidebarElement)?._childElements;\n const lastChild = prevSiblingChildren ? prevSiblingChildren[prevSiblingChildren?.length - 1] : null;\n const isChildHidden = lastChild?._hidden;\n\n const childElement = !isChildHidden ? lastChild : null;\n const prevElement = childElement || target.previousElementSibling || target.parentElement;\n\n if (prevElement?.shadowRoot) {\n const focusTarget = prevElement.shadowRoot.querySelector(\"[tabindex]\") as HTMLElement | null;\n focusTarget?.focus();\n }\n return;\n }\n case ARROW_LEFT: {\n event.preventDefault();\n event.stopPropagation();\n\n if (this._sidebarActiveGroup === this) {\n // when drawer is open, close it\n if (this._showDrawer) this._handleClick();\n } else {\n // check if we are on the drawer, if so move back to parent\n const childLevel = (target as SidebarElement)._childLevel;\n if (childLevel >= 2 && this._sidebarActiveGroup?.shadowRoot) {\n const focusTarget = this._sidebarActiveGroup.shadowRoot.querySelector(\"[tabindex]\") as HTMLElement | null;\n focusTarget?.focus();\n }\n }\n\n return;\n }\n case ARROW_RIGHT: {\n event.preventDefault();\n event.stopPropagation();\n\n if (this._sidebarActiveGroup === this) {\n if (this._drawerItems?.length) {\n if (this._showDrawer) {\n const drawerItem = this._drawerItems[0];\n if (drawerItem?.shadowRoot) {\n const focusTarget = drawerItem.shadowRoot.querySelector(\"[tabindex]\") as HTMLElement | null;\n focusTarget?.focus();\n }\n } else {\n this._handleClick();\n }\n }\n } else {\n if (this._childLevel === 1 && this._childElements.length > 0) {\n // when there is nested, we trigger click to show drawer\n this._handleClick();\n }\n }\n\n return;\n }\n }\n }\n\n /**\n * Calculates the nesting level by counting parent sgds-sidebar-group ancestors.\n * Level 1 = top-level element, Level 2+ = nested within another group.\n * Updates the _childLevel state property.\n * @internal\n * @returns {void}\n */\n private getChildLevel() {\n let currentEle = this.parentElement;\n let level = 1;\n\n while (currentEle.tagName.toLowerCase() === \"sgds-sidebar-group\") {\n level += 1;\n currentEle = currentEle.parentElement;\n }\n\n const isInDrawer = currentEle.classList.contains(\"sidebar-nested-overlay\");\n this._childLevel = isInDrawer ? level + 1 : level;\n }\n}\n"],"names":["SgdsElement","DropdownElement","__decorate","property","consume","SidebarCollapsed","state","SidebarActiveItem","SidebarActiveGroup","SidebarDrawerItems","SidebarDrawerOpen","queryAssignedElements"],"mappings":"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"}
@@ -1,281 +0,0 @@
1
- 'use client';
2
- import { __decorate } from 'tslib';
3
- import { property, state, queryAssignedElements } from 'lit/decorators.js';
4
- import { DropdownElement } from '../../base/dropdown-element.js';
5
- import SgdsElement from '../../base/sgds-element.js';
6
- import { consume } from '@lit/context';
7
- import { SidebarCollapsed, SidebarActiveItem, SidebarActiveGroup, SidebarDrawerItems, SidebarDrawerOpen } from './sidebar-context.js';
8
-
9
- const ARROW_DOWN = "ArrowDown";
10
- const ARROW_UP = "ArrowUp";
11
- const ARROW_LEFT = "ArrowLeft";
12
- const ARROW_RIGHT = "ArrowRight";
13
- const ENTER = "Enter";
14
- /**
15
- * @summary Base class for sidebar navigation components.
16
- * Provides core functionality for sidebar items and groups including keyboard navigation,
17
- * selection state management, and nesting support. This class manages hierarchical navigation,
18
- * active state tracking, and drawer overlay coordination through context providers.
19
- *
20
- * Features:
21
- * - Multi-level keyboard navigation (Arrow keys, Enter)
22
- * - Active state management via Lit context subscription
23
- * - Support for nested hierarchies up to 3 levels deep
24
- * - Focus management and full ARIA attribute support
25
- * - Event emission for sidebar coordination (i-sgds-click)
26
- * - Automatic child element tracking and nesting level detection
27
- *
28
- * Keyboard Navigation:
29
- * - Arrow Up/Down: Navigate between siblings in the same level
30
- * - Arrow Left/Right: Navigate hierarchically (collapse/expand or move in drawer)
31
- * - Enter: Activate focused item or toggle group
32
- *
33
- * Context Management:
34
- * - Consumes: SidebarCollapsed, SidebarActiveItem, SidebarActiveGroup, SidebarDrawerItems
35
- * - Updates state based on context changes for responsive UI updates
36
- *
37
- * @internal
38
- */
39
- class SidebarElement extends SgdsElement {
40
- constructor() {
41
- super(...arguments);
42
- /**
43
- * The display title/label for the sidebar element.
44
- * Shown in the UI and used for accessibility labels (aria-label).
45
- * @attribute title
46
- * @type {string}
47
- * @default ""
48
- */
49
- this.title = "";
50
- /**
51
- * The unique name identifier for the sidebar element.
52
- * Used to identify selections in sgds-select events and manage active states.
53
- * Should be unique among siblings in the same navigation level.
54
- * @attribute name
55
- * @type {string}
56
- * @default ""
57
- */
58
- this.name = "";
59
- /** @internal */
60
- this._sidebarCollapsed = false;
61
- /** @internal */
62
- this._sidebarActiveItem = null;
63
- /** @internal */
64
- this._sidebarActiveGroup = null;
65
- /** @internal */
66
- this._drawerItems = null;
67
- /** @internal Tracks whether a drawer overlay is currently open */
68
- this._showDrawer = false;
69
- /** @internal */
70
- this._childLevel = 1;
71
- /**
72
- * Indicates whether this element is currently selected/active.
73
- * @internal
74
- */
75
- this._selected = false;
76
- /**
77
- * Indicates whether this element should be hidden based on nesting context.
78
- * @internal
79
- */
80
- this._hidden = false;
81
- /**
82
- * List of child elements assigned to this component.
83
- * @internal
84
- */
85
- this._childElements = [];
86
- /** @internal */
87
- this._childActive = false;
88
- }
89
- connectedCallback() {
90
- super.connectedCallback();
91
- this.getChildLevel();
92
- this.setAttribute("role", "navigation");
93
- this.addEventListener("keydown", this._handleKeyDown);
94
- }
95
- disconnectedCallback() {
96
- super.disconnectedCallback();
97
- this.removeEventListener("keydown", this._handleKeyDown);
98
- }
99
- firstUpdated(changedProperties) {
100
- super.firstUpdated(changedProperties);
101
- this.getChildLevel();
102
- }
103
- updated() {
104
- if (this._childLevel === 2) {
105
- this._hidden = !this.closest(".sidebar-nested-overlay");
106
- }
107
- }
108
- /**
109
- * Handles slot change events and updates child elements list.
110
- * @internal
111
- * @returns {void}
112
- */
113
- _handleSlotChange() {
114
- this._childElements = this._defaultNodes;
115
- }
116
- /**
117
- * Handles click/activation events on the sidebar element.
118
- * Emits internal click event for parent sidebar to handle selection.
119
- * @internal
120
- * @param {SidebarElement} [element] - Optional element parameter (for keyboard compatibility)
121
- * @returns {void}
122
- */
123
- _handleClick() {
124
- this.emit("i-sgds-click", { detail: { element: this, level: this._childLevel } });
125
- }
126
- /**
127
- * Handles keyboard navigation events for sidebar elements.
128
- * Supports Arrow Up/Down for navigation and Arrow Left/Right for drawer management.
129
- * @internal
130
- * @param {KeyboardEvent} event - The keyboard event object
131
- * @returns {void}
132
- */
133
- _handleKeyDown(event) {
134
- var _a, _b, _c;
135
- const target = event.target;
136
- switch (event.key) {
137
- case ENTER: {
138
- event.preventDefault();
139
- event.stopPropagation();
140
- if (event.target === this)
141
- this._handleClick();
142
- return;
143
- }
144
- case ARROW_DOWN: {
145
- event.preventDefault();
146
- event.stopPropagation();
147
- const child = target._childElements[0];
148
- const isChildHidden = child === null || child === void 0 ? void 0 : child._hidden;
149
- const childElement = !isChildHidden ? child : null;
150
- const nextElement = childElement || target.nextElementSibling || target.parentElement.nextElementSibling;
151
- if (nextElement === null || nextElement === void 0 ? void 0 : nextElement.shadowRoot) {
152
- const focusTarget = nextElement.shadowRoot.querySelector("[tabindex]");
153
- focusTarget === null || focusTarget === void 0 ? void 0 : focusTarget.focus();
154
- }
155
- return;
156
- }
157
- case ARROW_UP: {
158
- event.preventDefault();
159
- event.stopPropagation();
160
- const prevSiblingChildren = (_a = target.previousElementSibling) === null || _a === void 0 ? void 0 : _a._childElements;
161
- const lastChild = prevSiblingChildren ? prevSiblingChildren[(prevSiblingChildren === null || prevSiblingChildren === void 0 ? void 0 : prevSiblingChildren.length) - 1] : null;
162
- const isChildHidden = lastChild === null || lastChild === void 0 ? void 0 : lastChild._hidden;
163
- const childElement = !isChildHidden ? lastChild : null;
164
- const prevElement = childElement || target.previousElementSibling || target.parentElement;
165
- if (prevElement === null || prevElement === void 0 ? void 0 : prevElement.shadowRoot) {
166
- const focusTarget = prevElement.shadowRoot.querySelector("[tabindex]");
167
- focusTarget === null || focusTarget === void 0 ? void 0 : focusTarget.focus();
168
- }
169
- return;
170
- }
171
- case ARROW_LEFT: {
172
- event.preventDefault();
173
- event.stopPropagation();
174
- if (this._sidebarActiveGroup === this) {
175
- // when drawer is open, close it
176
- if (this._showDrawer)
177
- this._handleClick();
178
- }
179
- else {
180
- // check if we are on the drawer, if so move back to parent
181
- const childLevel = target._childLevel;
182
- if (childLevel >= 2 && ((_b = this._sidebarActiveGroup) === null || _b === void 0 ? void 0 : _b.shadowRoot)) {
183
- const focusTarget = this._sidebarActiveGroup.shadowRoot.querySelector("[tabindex]");
184
- focusTarget === null || focusTarget === void 0 ? void 0 : focusTarget.focus();
185
- }
186
- }
187
- return;
188
- }
189
- case ARROW_RIGHT: {
190
- event.preventDefault();
191
- event.stopPropagation();
192
- if (this._sidebarActiveGroup === this) {
193
- if ((_c = this._drawerItems) === null || _c === void 0 ? void 0 : _c.length) {
194
- if (this._showDrawer) {
195
- const drawerItem = this._drawerItems[0];
196
- if (drawerItem === null || drawerItem === void 0 ? void 0 : drawerItem.shadowRoot) {
197
- const focusTarget = drawerItem.shadowRoot.querySelector("[tabindex]");
198
- focusTarget === null || focusTarget === void 0 ? void 0 : focusTarget.focus();
199
- }
200
- }
201
- else {
202
- this._handleClick();
203
- }
204
- }
205
- }
206
- else {
207
- if (this._childLevel === 1 && this._childElements.length > 0) {
208
- // when there is nested, we trigger click to show drawer
209
- this._handleClick();
210
- }
211
- }
212
- return;
213
- }
214
- }
215
- }
216
- /**
217
- * Calculates the nesting level by counting parent sgds-sidebar-group ancestors.
218
- * Level 1 = top-level element, Level 2+ = nested within another group.
219
- * Updates the _childLevel state property.
220
- * @internal
221
- * @returns {void}
222
- */
223
- getChildLevel() {
224
- let currentEle = this.parentElement;
225
- let level = 1;
226
- while (currentEle.tagName.toLowerCase() === "sgds-sidebar-group") {
227
- level += 1;
228
- currentEle = currentEle.parentElement;
229
- }
230
- const isInDrawer = currentEle.classList.contains("sidebar-nested-overlay");
231
- this._childLevel = isInDrawer ? level + 1 : level;
232
- }
233
- }
234
- SidebarElement.styles = DropdownElement.styles;
235
- __decorate([
236
- property({ type: String, reflect: true })
237
- ], SidebarElement.prototype, "title", void 0);
238
- __decorate([
239
- property({ type: String, reflect: true })
240
- ], SidebarElement.prototype, "name", void 0);
241
- __decorate([
242
- consume({ context: SidebarCollapsed, subscribe: true }),
243
- state()
244
- ], SidebarElement.prototype, "_sidebarCollapsed", void 0);
245
- __decorate([
246
- consume({ context: SidebarActiveItem, subscribe: true }),
247
- state()
248
- ], SidebarElement.prototype, "_sidebarActiveItem", void 0);
249
- __decorate([
250
- consume({ context: SidebarActiveGroup, subscribe: true }),
251
- state()
252
- ], SidebarElement.prototype, "_sidebarActiveGroup", void 0);
253
- __decorate([
254
- consume({ context: SidebarDrawerItems, subscribe: true }),
255
- state()
256
- ], SidebarElement.prototype, "_drawerItems", void 0);
257
- __decorate([
258
- consume({ context: SidebarDrawerOpen, subscribe: true }),
259
- state()
260
- ], SidebarElement.prototype, "_showDrawer", void 0);
261
- __decorate([
262
- state()
263
- ], SidebarElement.prototype, "_childLevel", void 0);
264
- __decorate([
265
- state()
266
- ], SidebarElement.prototype, "_selected", void 0);
267
- __decorate([
268
- state()
269
- ], SidebarElement.prototype, "_hidden", void 0);
270
- __decorate([
271
- state()
272
- ], SidebarElement.prototype, "_childElements", void 0);
273
- __decorate([
274
- state()
275
- ], SidebarElement.prototype, "_childActive", void 0);
276
- __decorate([
277
- queryAssignedElements({ flatten: true })
278
- ], SidebarElement.prototype, "_defaultNodes", void 0);
279
-
280
- export { SidebarElement };
281
- //# sourceMappingURL=sidebar-element.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"sidebar-element.js","sources":["../../../../src/components/Sidebar/sidebar-element.ts"],"sourcesContent":["import { property, queryAssignedElements, state } from \"lit/decorators.js\";\nimport { DropdownElement } from \"../../base/dropdown-element\";\nimport { PropertyValueMap } from \"lit\";\nimport SgdsElement from \"../../base/sgds-element\";\nimport { consume } from \"@lit/context\";\nimport {\n SidebarActiveGroup,\n SidebarActiveItem,\n SidebarCollapsed,\n SidebarDrawerItems,\n SidebarDrawerOpen\n} from \"./sidebar-context\";\n\nconst ARROW_DOWN = \"ArrowDown\";\nconst ARROW_UP = \"ArrowUp\";\nconst ARROW_LEFT = \"ArrowLeft\";\nconst ARROW_RIGHT = \"ArrowRight\";\nconst ENTER = \"Enter\";\n\n/**\n * @summary Base class for sidebar navigation components.\n * Provides core functionality for sidebar items and groups including keyboard navigation,\n * selection state management, and nesting support. This class manages hierarchical navigation,\n * active state tracking, and drawer overlay coordination through context providers.\n *\n * Features:\n * - Multi-level keyboard navigation (Arrow keys, Enter)\n * - Active state management via Lit context subscription\n * - Support for nested hierarchies up to 3 levels deep\n * - Focus management and full ARIA attribute support\n * - Event emission for sidebar coordination (i-sgds-click)\n * - Automatic child element tracking and nesting level detection\n *\n * Keyboard Navigation:\n * - Arrow Up/Down: Navigate between siblings in the same level\n * - Arrow Left/Right: Navigate hierarchically (collapse/expand or move in drawer)\n * - Enter: Activate focused item or toggle group\n *\n * Context Management:\n * - Consumes: SidebarCollapsed, SidebarActiveItem, SidebarActiveGroup, SidebarDrawerItems\n * - Updates state based on context changes for responsive UI updates\n *\n * @internal\n */\nexport class SidebarElement extends SgdsElement {\n static styles = DropdownElement.styles;\n\n /**\n * The display title/label for the sidebar element.\n * Shown in the UI and used for accessibility labels (aria-label).\n * @attribute title\n * @type {string}\n * @default \"\"\n */\n @property({ type: String, reflect: true }) title = \"\";\n\n /**\n * The unique name identifier for the sidebar element.\n * Used to identify selections in sgds-select events and manage active states.\n * Should be unique among siblings in the same navigation level.\n * @attribute name\n * @type {string}\n * @default \"\"\n */\n @property({ type: String, reflect: true }) name = \"\";\n\n /** @internal */\n @consume({ context: SidebarCollapsed, subscribe: true })\n @state()\n _sidebarCollapsed = false;\n\n /** @internal */\n @consume({ context: SidebarActiveItem, subscribe: true })\n @state()\n _sidebarActiveItem: SidebarElement | null = null;\n\n /** @internal */\n @consume({ context: SidebarActiveGroup, subscribe: true })\n @state()\n _sidebarActiveGroup: SidebarElement | null = null;\n\n /** @internal */\n @consume({ context: SidebarDrawerItems, subscribe: true })\n @state()\n _drawerItems: SidebarElement[] | null = null;\n\n /** @internal Tracks whether a drawer overlay is currently open */\n @consume({ context: SidebarDrawerOpen, subscribe: true })\n @state()\n _showDrawer = false;\n\n /** @internal */\n @state() _childLevel = 1;\n\n /**\n * Indicates whether this element is currently selected/active.\n * @internal\n */\n @state() _selected = false;\n\n /**\n * Indicates whether this element should be hidden based on nesting context.\n * @internal\n */\n @state() _hidden = false;\n\n /**\n * List of child elements assigned to this component.\n * @internal\n */\n @state()\n _childElements: SidebarElement[] = [];\n\n /** @internal */\n @state() _childActive = false;\n\n /** @internal */\n @queryAssignedElements({ flatten: true })\n private _defaultNodes!: SidebarElement[];\n\n connectedCallback() {\n super.connectedCallback();\n this.getChildLevel();\n this.setAttribute(\"role\", \"navigation\");\n this.addEventListener(\"keydown\", this._handleKeyDown);\n }\n\n disconnectedCallback() {\n super.disconnectedCallback();\n this.removeEventListener(\"keydown\", this._handleKeyDown);\n }\n\n firstUpdated(changedProperties: PropertyValueMap<this>) {\n super.firstUpdated(changedProperties);\n this.getChildLevel();\n }\n\n updated() {\n if (this._childLevel === 2) {\n this._hidden = !this.closest(\".sidebar-nested-overlay\");\n }\n }\n\n /**\n * Handles slot change events and updates child elements list.\n * @internal\n * @returns {void}\n */\n _handleSlotChange() {\n this._childElements = this._defaultNodes;\n }\n\n /**\n * Handles click/activation events on the sidebar element.\n * Emits internal click event for parent sidebar to handle selection.\n * @internal\n * @param {SidebarElement} [element] - Optional element parameter (for keyboard compatibility)\n * @returns {void}\n */\n protected _handleClick() {\n this.emit(\"i-sgds-click\", { detail: { element: this, level: this._childLevel } });\n }\n\n /**\n * Handles keyboard navigation events for sidebar elements.\n * Supports Arrow Up/Down for navigation and Arrow Left/Right for drawer management.\n * @internal\n * @param {KeyboardEvent} event - The keyboard event object\n * @returns {void}\n */\n private _handleKeyDown(event: KeyboardEvent) {\n const target = event.target as HTMLElement;\n\n switch (event.key) {\n case ENTER: {\n event.preventDefault();\n event.stopPropagation();\n if (event.target === this) this._handleClick();\n return;\n }\n case ARROW_DOWN: {\n event.preventDefault();\n event.stopPropagation();\n\n const child = (target as SidebarElement)._childElements[0];\n\n const isChildHidden = child?._hidden;\n const childElement = !isChildHidden ? child : null;\n const nextElement = childElement || target.nextElementSibling || target.parentElement.nextElementSibling;\n\n if (nextElement?.shadowRoot) {\n const focusTarget = nextElement.shadowRoot.querySelector(\"[tabindex]\") as HTMLElement | null;\n focusTarget?.focus();\n }\n\n return;\n }\n case ARROW_UP: {\n event.preventDefault();\n event.stopPropagation();\n\n const prevSiblingChildren = (target.previousElementSibling as SidebarElement)?._childElements;\n const lastChild = prevSiblingChildren ? prevSiblingChildren[prevSiblingChildren?.length - 1] : null;\n const isChildHidden = lastChild?._hidden;\n\n const childElement = !isChildHidden ? lastChild : null;\n const prevElement = childElement || target.previousElementSibling || target.parentElement;\n\n if (prevElement?.shadowRoot) {\n const focusTarget = prevElement.shadowRoot.querySelector(\"[tabindex]\") as HTMLElement | null;\n focusTarget?.focus();\n }\n return;\n }\n case ARROW_LEFT: {\n event.preventDefault();\n event.stopPropagation();\n\n if (this._sidebarActiveGroup === this) {\n // when drawer is open, close it\n if (this._showDrawer) this._handleClick();\n } else {\n // check if we are on the drawer, if so move back to parent\n const childLevel = (target as SidebarElement)._childLevel;\n if (childLevel >= 2 && this._sidebarActiveGroup?.shadowRoot) {\n const focusTarget = this._sidebarActiveGroup.shadowRoot.querySelector(\"[tabindex]\") as HTMLElement | null;\n focusTarget?.focus();\n }\n }\n\n return;\n }\n case ARROW_RIGHT: {\n event.preventDefault();\n event.stopPropagation();\n\n if (this._sidebarActiveGroup === this) {\n if (this._drawerItems?.length) {\n if (this._showDrawer) {\n const drawerItem = this._drawerItems[0];\n if (drawerItem?.shadowRoot) {\n const focusTarget = drawerItem.shadowRoot.querySelector(\"[tabindex]\") as HTMLElement | null;\n focusTarget?.focus();\n }\n } else {\n this._handleClick();\n }\n }\n } else {\n if (this._childLevel === 1 && this._childElements.length > 0) {\n // when there is nested, we trigger click to show drawer\n this._handleClick();\n }\n }\n\n return;\n }\n }\n }\n\n /**\n * Calculates the nesting level by counting parent sgds-sidebar-group ancestors.\n * Level 1 = top-level element, Level 2+ = nested within another group.\n * Updates the _childLevel state property.\n * @internal\n * @returns {void}\n */\n private getChildLevel() {\n let currentEle = this.parentElement;\n let level = 1;\n\n while (currentEle.tagName.toLowerCase() === \"sgds-sidebar-group\") {\n level += 1;\n currentEle = currentEle.parentElement;\n }\n\n const isInDrawer = currentEle.classList.contains(\"sidebar-nested-overlay\");\n this._childLevel = isInDrawer ? level + 1 : level;\n }\n}\n"],"names":[],"mappings":"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"}
@@ -1,11 +0,0 @@
1
- 'use client';
2
- 'use strict';
3
-
4
- Object.defineProperty(exports, '__esModule', { value: true });
5
-
6
- var lit = require('lit');
7
-
8
- var css_248z = lit.css`.sidebar-item{border-radius:var(--sgds-border-radius-md);cursor:pointer;padding:var(--sgds-padding-xs);transition:background-color .15s ease-in-out,color .15s ease-in-out}.sidebar-item.active,.sidebar-item:hover{background-color:var(--sgds-bg-translucent-subtle)}.sidebar-item:focus,.sidebar-item:focus-visible{outline:var(--sgds-outline-focus);outline-offset:var(--sgds-outline-offset-focus)}.sidebar-item-label-wrapper,.sidebar-item-label-wrapper>div{align-items:center;display:flex;gap:var(--sgds-gap-xs)}.sidebar-item-label-wrapper{justify-content:space-between}.sidebar-item-label{-webkit-line-clamp:2;-webkit-box-orient:vertical;line-clamp:2;display:-webkit-box;font-size:var(--sgds-font-size-1);line-height:var(--sgds-line-height-20);max-height:calc(var(--sgds-line-height-20, 20px)*2);overflow:hidden}.sidebar-item-label.offset{margin-left:var(--sgds-margin-2-xl)}.sidebar-item-label-wrapper .sidebar-item.active{background-color:var(--sgds-surface-raised);color:var(--sgds-primary-color-default)}.sidebar-item-label-wrapper .sidebar-item-trailingIcon{align-items:center;display:flex;gap:var(--sgds-gap-2-xs)}.sidebar-item--collapsed .sidebar-item-label,.sidebar-item--collapsed .sidebar-item-trailingIcon{display:none}.sidebar-item--collapsed .sidebar-item-label-wrapper{justify-content:center}.sidebar-submenu{overflow:hidden}.sidebar-submenu>div{margin-top:-100%;opacity:0;pointer-events:none;transition:all var(--sgds-motion-duration-standard) var(--sgds-motion-easing-standard)}.sidebar-submenu.show>div{margin-top:0;opacity:1;pointer-events:auto}.sidebar-submenu--collapsed{display:none}`;
9
-
10
- exports["default"] = css_248z;
11
- //# sourceMappingURL=sidebar-item.cjs.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"sidebar-item.cjs.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;"}