@aquera/nile-elements 1.6.7 → 1.6.9
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.
- package/README.md +12 -0
- package/dist/index.cjs.js +1 -1
- package/dist/index.esm.js +1 -1
- package/dist/index.js +1735 -495
- package/dist/internal/enum.cjs.js +1 -1
- package/dist/internal/enum.cjs.js.map +1 -1
- package/dist/internal/enum.esm.js +1 -1
- package/dist/nile-auto-complete/nile-auto-complete.cjs.js +1 -1
- package/dist/nile-auto-complete/nile-auto-complete.cjs.js.map +1 -1
- package/dist/nile-auto-complete/nile-auto-complete.esm.js +1 -1
- package/dist/nile-calendar/nile-calendar.cjs.js +1 -1
- package/dist/nile-calendar/nile-calendar.cjs.js.map +1 -1
- package/dist/nile-calendar/nile-calendar.css.cjs.js +1 -1
- package/dist/nile-calendar/nile-calendar.css.cjs.js.map +1 -1
- package/dist/nile-calendar/nile-calendar.css.esm.js +0 -3
- package/dist/nile-calendar/nile-calendar.esm.js +2 -2
- package/dist/nile-dropdown/nile-dropdown.cjs.js +1 -1
- package/dist/nile-dropdown/nile-dropdown.cjs.js.map +1 -1
- package/dist/nile-dropdown/nile-dropdown.esm.js +1 -1
- package/dist/nile-inline-sidebar/index.cjs.js +1 -1
- package/dist/nile-inline-sidebar/index.esm.js +1 -1
- package/dist/nile-inline-sidebar/nile-inline-sidebar.cjs.js +1 -1
- package/dist/nile-inline-sidebar/nile-inline-sidebar.cjs.js.map +1 -1
- package/dist/nile-inline-sidebar/nile-inline-sidebar.css.cjs.js +1 -1
- package/dist/nile-inline-sidebar/nile-inline-sidebar.css.cjs.js.map +1 -1
- package/dist/nile-inline-sidebar/nile-inline-sidebar.css.esm.js +76 -19
- package/dist/nile-inline-sidebar/nile-inline-sidebar.esm.js +42 -23
- package/dist/nile-inline-sidebar-group/nile-inline-sidebar-group.css.cjs.js +1 -1
- package/dist/nile-inline-sidebar-group/nile-inline-sidebar-group.css.cjs.js.map +1 -1
- package/dist/nile-inline-sidebar-group/nile-inline-sidebar-group.css.esm.js +8 -9
- package/dist/nile-inline-sidebar-item/index.cjs.js +1 -1
- package/dist/nile-inline-sidebar-item/index.esm.js +1 -1
- package/dist/nile-inline-sidebar-item/nile-inline-sidebar-item.cjs.js +1 -1
- package/dist/nile-inline-sidebar-item/nile-inline-sidebar-item.cjs.js.map +1 -1
- package/dist/nile-inline-sidebar-item/nile-inline-sidebar-item.css.cjs.js +1 -1
- package/dist/nile-inline-sidebar-item/nile-inline-sidebar-item.css.cjs.js.map +1 -1
- package/dist/nile-inline-sidebar-item/nile-inline-sidebar-item.css.esm.js +16 -18
- package/dist/nile-inline-sidebar-item/nile-inline-sidebar-item.esm.js +22 -4
- package/dist/nile-inline-sidebar-item-body/index.cjs.js +2 -0
- package/dist/nile-inline-sidebar-item-body/index.cjs.js.map +1 -0
- package/dist/nile-inline-sidebar-item-body/index.esm.js +1 -0
- package/dist/nile-inline-sidebar-item-body/nile-inline-sidebar-item-body.cjs.js +2 -0
- package/dist/nile-inline-sidebar-item-body/nile-inline-sidebar-item-body.cjs.js.map +1 -0
- package/dist/nile-inline-sidebar-item-body/nile-inline-sidebar-item-body.css.cjs.js +2 -0
- package/dist/nile-inline-sidebar-item-body/nile-inline-sidebar-item-body.css.cjs.js.map +1 -0
- package/dist/nile-inline-sidebar-item-body/nile-inline-sidebar-item-body.css.esm.js +53 -0
- package/dist/nile-inline-sidebar-item-body/nile-inline-sidebar-item-body.esm.js +13 -0
- package/dist/nile-inline-sidebar-item-header/index.cjs.js +2 -0
- package/dist/nile-inline-sidebar-item-header/index.cjs.js.map +1 -0
- package/dist/nile-inline-sidebar-item-header/index.esm.js +1 -0
- package/dist/nile-inline-sidebar-item-header/nile-inline-sidebar-item-header.cjs.js +2 -0
- package/dist/nile-inline-sidebar-item-header/nile-inline-sidebar-item-header.cjs.js.map +1 -0
- package/dist/nile-inline-sidebar-item-header/nile-inline-sidebar-item-header.css.cjs.js +2 -0
- package/dist/nile-inline-sidebar-item-header/nile-inline-sidebar-item-header.css.cjs.js.map +1 -0
- package/dist/nile-inline-sidebar-item-header/nile-inline-sidebar-item-header.css.esm.js +27 -0
- package/dist/nile-inline-sidebar-item-header/nile-inline-sidebar-item-header.esm.js +16 -0
- package/dist/nile-inline-sidebar-panel/index.cjs.js +2 -0
- package/dist/nile-inline-sidebar-panel/index.cjs.js.map +1 -0
- package/dist/nile-inline-sidebar-panel/index.esm.js +1 -0
- package/dist/nile-inline-sidebar-panel/nile-inline-sidebar-panel.cjs.js +2 -0
- package/dist/nile-inline-sidebar-panel/nile-inline-sidebar-panel.cjs.js.map +1 -0
- package/dist/nile-inline-sidebar-panel/nile-inline-sidebar-panel.css.cjs.js +2 -0
- package/dist/nile-inline-sidebar-panel/nile-inline-sidebar-panel.css.cjs.js.map +1 -0
- package/dist/nile-inline-sidebar-panel/nile-inline-sidebar-panel.css.esm.js +19 -0
- package/dist/nile-inline-sidebar-panel/nile-inline-sidebar-panel.esm.js +5 -0
- package/dist/nile-inline-sidebar-panel-group/index.cjs.js +2 -0
- package/dist/nile-inline-sidebar-panel-group/index.cjs.js.map +1 -0
- package/dist/nile-inline-sidebar-panel-group/index.esm.js +1 -0
- package/dist/nile-inline-sidebar-panel-group/nile-inline-sidebar-panel-group.cjs.js +2 -0
- package/dist/nile-inline-sidebar-panel-group/nile-inline-sidebar-panel-group.cjs.js.map +1 -0
- package/dist/nile-inline-sidebar-panel-group/nile-inline-sidebar-panel-group.css.cjs.js +2 -0
- package/dist/nile-inline-sidebar-panel-group/nile-inline-sidebar-panel-group.css.cjs.js.map +1 -0
- package/dist/nile-inline-sidebar-panel-group/nile-inline-sidebar-panel-group.css.esm.js +30 -0
- package/dist/nile-inline-sidebar-panel-group/nile-inline-sidebar-panel-group.esm.js +12 -0
- package/dist/nile-nav-tab/index.cjs.js +2 -0
- package/dist/nile-nav-tab/index.cjs.js.map +1 -0
- package/dist/nile-nav-tab/index.esm.js +1 -0
- package/dist/nile-nav-tab/nile-nav-tab.cjs.js +2 -0
- package/dist/nile-nav-tab/nile-nav-tab.cjs.js.map +1 -0
- package/dist/nile-nav-tab/nile-nav-tab.css.cjs.js +2 -0
- package/dist/nile-nav-tab/nile-nav-tab.css.cjs.js.map +1 -0
- package/dist/nile-nav-tab/nile-nav-tab.css.esm.js +190 -0
- package/dist/nile-nav-tab/nile-nav-tab.esm.js +36 -0
- package/dist/nile-nav-tab-group/index.cjs.js +2 -0
- package/dist/nile-nav-tab-group/index.cjs.js.map +1 -0
- package/dist/nile-nav-tab-group/index.esm.js +1 -0
- package/dist/nile-nav-tab-group/nile-nav-tab-group.cjs.js +4 -0
- package/dist/nile-nav-tab-group/nile-nav-tab-group.cjs.js.map +1 -0
- package/dist/nile-nav-tab-group/nile-nav-tab-group.css.cjs.js +2 -0
- package/dist/nile-nav-tab-group/nile-nav-tab-group.css.cjs.js.map +1 -0
- package/dist/nile-nav-tab-group/nile-nav-tab-group.css.esm.js +668 -0
- package/dist/nile-nav-tab-group/nile-nav-tab-group.esm.js +61 -0
- package/dist/nile-nav-tab-panel/index.cjs.js +2 -0
- package/dist/nile-nav-tab-panel/index.cjs.js.map +1 -0
- package/dist/nile-nav-tab-panel/index.esm.js +1 -0
- package/dist/nile-nav-tab-panel/nile-nav-tab-panel.cjs.js +2 -0
- package/dist/nile-nav-tab-panel/nile-nav-tab-panel.cjs.js.map +1 -0
- package/dist/nile-nav-tab-panel/nile-nav-tab-panel.css.cjs.js +2 -0
- package/dist/nile-nav-tab-panel/nile-nav-tab-panel.css.cjs.js.map +1 -0
- package/dist/nile-nav-tab-panel/nile-nav-tab-panel.css.esm.js +22 -0
- package/dist/nile-nav-tab-panel/nile-nav-tab-panel.esm.js +8 -0
- package/dist/nile-stepper-item/nile-stepper-item.cjs.js +1 -1
- package/dist/nile-stepper-item/nile-stepper-item.cjs.js.map +1 -1
- package/dist/nile-stepper-item/nile-stepper-item.esm.js +13 -13
- package/dist/nile-vertical-stepper-item/nile-vertical-stepper-item.cjs.js +1 -1
- package/dist/nile-vertical-stepper-item/nile-vertical-stepper-item.cjs.js.map +1 -1
- package/dist/nile-vertical-stepper-item/nile-vertical-stepper-item.esm.js +1 -1
- package/dist/src/index.d.ts +7 -0
- package/dist/src/index.js +7 -0
- package/dist/src/index.js.map +1 -1
- package/dist/src/internal/enum.d.ts +6 -0
- package/dist/src/internal/enum.js +7 -0
- package/dist/src/internal/enum.js.map +1 -1
- package/dist/src/nile-auto-complete/nile-auto-complete.js +1 -1
- package/dist/src/nile-auto-complete/nile-auto-complete.js.map +1 -1
- package/dist/src/nile-calendar/nile-calendar.css.js +0 -3
- package/dist/src/nile-calendar/nile-calendar.css.js.map +1 -1
- package/dist/src/nile-calendar/nile-calendar.js +2 -2
- package/dist/src/nile-calendar/nile-calendar.js.map +1 -1
- package/dist/src/nile-dropdown/nile-dropdown.d.ts +2 -0
- package/dist/src/nile-dropdown/nile-dropdown.js +21 -5
- package/dist/src/nile-dropdown/nile-dropdown.js.map +1 -1
- package/dist/src/nile-inline-sidebar/nile-inline-sidebar.css.d.ts +1 -0
- package/dist/src/nile-inline-sidebar/nile-inline-sidebar.css.js +75 -17
- package/dist/src/nile-inline-sidebar/nile-inline-sidebar.css.js.map +1 -1
- package/dist/src/nile-inline-sidebar/nile-inline-sidebar.d.ts +17 -1
- package/dist/src/nile-inline-sidebar/nile-inline-sidebar.js +147 -18
- package/dist/src/nile-inline-sidebar/nile-inline-sidebar.js.map +1 -1
- package/dist/src/nile-inline-sidebar-group/nile-inline-sidebar-group.css.d.ts +1 -0
- package/dist/src/nile-inline-sidebar-group/nile-inline-sidebar-group.css.js +7 -7
- package/dist/src/nile-inline-sidebar-group/nile-inline-sidebar-group.css.js.map +1 -1
- package/dist/src/nile-inline-sidebar-item/nile-inline-sidebar-item.css.d.ts +1 -1
- package/dist/src/nile-inline-sidebar-item/nile-inline-sidebar-item.css.js +15 -17
- package/dist/src/nile-inline-sidebar-item/nile-inline-sidebar-item.css.js.map +1 -1
- package/dist/src/nile-inline-sidebar-item/nile-inline-sidebar-item.d.ts +7 -1
- package/dist/src/nile-inline-sidebar-item/nile-inline-sidebar-item.js +63 -4
- package/dist/src/nile-inline-sidebar-item/nile-inline-sidebar-item.js.map +1 -1
- package/dist/src/nile-inline-sidebar-item-body/index.d.ts +1 -0
- package/dist/src/nile-inline-sidebar-item-body/index.js +2 -0
- package/dist/src/nile-inline-sidebar-item-body/index.js.map +1 -0
- package/dist/src/nile-inline-sidebar-item-body/nile-inline-sidebar-item-body.css.d.ts +9 -0
- package/dist/src/nile-inline-sidebar-item-body/nile-inline-sidebar-item-body.css.js +62 -0
- package/dist/src/nile-inline-sidebar-item-body/nile-inline-sidebar-item-body.css.js.map +1 -0
- package/dist/src/nile-inline-sidebar-item-body/nile-inline-sidebar-item-body.d.ts +45 -0
- package/dist/src/nile-inline-sidebar-item-body/nile-inline-sidebar-item-body.js +110 -0
- package/dist/src/nile-inline-sidebar-item-body/nile-inline-sidebar-item-body.js.map +1 -0
- package/dist/src/nile-inline-sidebar-item-header/index.d.ts +1 -0
- package/dist/src/nile-inline-sidebar-item-header/index.js +2 -0
- package/dist/src/nile-inline-sidebar-item-header/index.js.map +1 -0
- package/dist/src/nile-inline-sidebar-item-header/nile-inline-sidebar-item-header.css.d.ts +9 -0
- package/dist/src/nile-inline-sidebar-item-header/nile-inline-sidebar-item-header.css.js +36 -0
- package/dist/src/nile-inline-sidebar-item-header/nile-inline-sidebar-item-header.css.js.map +1 -0
- package/dist/src/nile-inline-sidebar-item-header/nile-inline-sidebar-item-header.d.ts +34 -0
- package/dist/src/nile-inline-sidebar-item-header/nile-inline-sidebar-item-header.js +68 -0
- package/dist/src/nile-inline-sidebar-item-header/nile-inline-sidebar-item-header.js.map +1 -0
- package/dist/src/nile-inline-sidebar-panel/index.d.ts +1 -0
- package/dist/src/nile-inline-sidebar-panel/index.js +2 -0
- package/dist/src/nile-inline-sidebar-panel/index.js.map +1 -0
- package/dist/src/nile-inline-sidebar-panel/nile-inline-sidebar-panel.css.d.ts +9 -0
- package/dist/src/nile-inline-sidebar-panel/nile-inline-sidebar-panel.css.js +28 -0
- package/dist/src/nile-inline-sidebar-panel/nile-inline-sidebar-panel.css.js.map +1 -0
- package/dist/src/nile-inline-sidebar-panel/nile-inline-sidebar-panel.d.ts +35 -0
- package/dist/src/nile-inline-sidebar-panel/nile-inline-sidebar-panel.js +55 -0
- package/dist/src/nile-inline-sidebar-panel/nile-inline-sidebar-panel.js.map +1 -0
- package/dist/src/nile-inline-sidebar-panel-group/index.d.ts +1 -0
- package/dist/src/nile-inline-sidebar-panel-group/index.js +2 -0
- package/dist/src/nile-inline-sidebar-panel-group/index.js.map +1 -0
- package/dist/src/nile-inline-sidebar-panel-group/nile-inline-sidebar-panel-group.css.d.ts +9 -0
- package/dist/src/nile-inline-sidebar-panel-group/nile-inline-sidebar-panel-group.css.js +39 -0
- package/dist/src/nile-inline-sidebar-panel-group/nile-inline-sidebar-panel-group.css.js.map +1 -0
- package/dist/src/nile-inline-sidebar-panel-group/nile-inline-sidebar-panel-group.d.ts +43 -0
- package/dist/src/nile-inline-sidebar-panel-group/nile-inline-sidebar-panel-group.js +93 -0
- package/dist/src/nile-inline-sidebar-panel-group/nile-inline-sidebar-panel-group.js.map +1 -0
- package/dist/src/nile-nav-tab/index.d.ts +1 -0
- package/dist/src/nile-nav-tab/index.js +2 -0
- package/dist/src/nile-nav-tab/index.js.map +1 -0
- package/dist/src/nile-nav-tab/nile-nav-tab.css.d.ts +9 -0
- package/dist/src/nile-nav-tab/nile-nav-tab.css.js +199 -0
- package/dist/src/nile-nav-tab/nile-nav-tab.css.js.map +1 -0
- package/dist/src/nile-nav-tab/nile-nav-tab.d.ts +50 -0
- package/dist/src/nile-nav-tab/nile-nav-tab.js +190 -0
- package/dist/src/nile-nav-tab/nile-nav-tab.js.map +1 -0
- package/dist/src/nile-nav-tab/nile-nav-tab.test.d.ts +1 -0
- package/dist/src/nile-nav-tab/nile-nav-tab.test.js +656 -0
- package/dist/src/nile-nav-tab/nile-nav-tab.test.js.map +1 -0
- package/dist/src/nile-nav-tab-group/index.d.ts +1 -0
- package/dist/src/nile-nav-tab-group/index.js +2 -0
- package/dist/src/nile-nav-tab-group/index.js.map +1 -0
- package/dist/src/nile-nav-tab-group/nile-nav-tab-group.css.d.ts +12 -0
- package/dist/src/nile-nav-tab-group/nile-nav-tab-group.css.js +680 -0
- package/dist/src/nile-nav-tab-group/nile-nav-tab-group.css.js.map +1 -0
- package/dist/src/nile-nav-tab-group/nile-nav-tab-group.d.ts +119 -0
- package/dist/src/nile-nav-tab-group/nile-nav-tab-group.js +765 -0
- package/dist/src/nile-nav-tab-group/nile-nav-tab-group.js.map +1 -0
- package/dist/src/nile-nav-tab-group/nile-nav-tab-group.test.d.ts +3 -0
- package/dist/src/nile-nav-tab-group/nile-nav-tab-group.test.js +838 -0
- package/dist/src/nile-nav-tab-group/nile-nav-tab-group.test.js.map +1 -0
- package/dist/src/nile-nav-tab-panel/index.d.ts +1 -0
- package/dist/src/nile-nav-tab-panel/index.js +2 -0
- package/dist/src/nile-nav-tab-panel/index.js.map +1 -0
- package/dist/src/nile-nav-tab-panel/nile-nav-tab-panel.css.d.ts +15 -0
- package/dist/src/nile-nav-tab-panel/nile-nav-tab-panel.css.js +37 -0
- package/dist/src/nile-nav-tab-panel/nile-nav-tab-panel.css.js.map +1 -0
- package/dist/src/nile-nav-tab-panel/nile-nav-tab-panel.d.ts +37 -0
- package/dist/src/nile-nav-tab-panel/nile-nav-tab-panel.js +75 -0
- package/dist/src/nile-nav-tab-panel/nile-nav-tab-panel.js.map +1 -0
- package/dist/src/nile-nav-tab-panel/nile-nav-tab-panel.test.d.ts +1 -0
- package/dist/src/nile-nav-tab-panel/nile-nav-tab-panel.test.js +534 -0
- package/dist/src/nile-nav-tab-panel/nile-nav-tab-panel.test.js.map +1 -0
- package/dist/src/nile-stepper-item/nile-stepper-item.js +1 -1
- package/dist/src/nile-stepper-item/nile-stepper-item.js.map +1 -1
- package/dist/src/nile-vertical-stepper-item/nile-vertical-stepper-item.js +1 -1
- package/dist/src/nile-vertical-stepper-item/nile-vertical-stepper-item.js.map +1 -1
- package/dist/src/version.js +1 -1
- package/dist/src/version.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +7 -2
- package/src/index.ts +7 -0
- package/src/internal/enum.ts +8 -1
- package/src/nile-auto-complete/nile-auto-complete.ts +1 -1
- package/src/nile-calendar/nile-calendar.css.ts +0 -3
- package/src/nile-calendar/nile-calendar.ts +2 -2
- package/src/nile-dropdown/nile-dropdown.ts +23 -5
- package/src/nile-inline-sidebar/nile-inline-sidebar.css.ts +75 -17
- package/src/nile-inline-sidebar/nile-inline-sidebar.ts +148 -18
- package/src/nile-inline-sidebar-group/nile-inline-sidebar-group.css.ts +7 -7
- package/src/nile-inline-sidebar-item/nile-inline-sidebar-item.css.ts +15 -17
- package/src/nile-inline-sidebar-item/nile-inline-sidebar-item.ts +74 -9
- package/src/nile-inline-sidebar-item-body/index.ts +1 -0
- package/src/nile-inline-sidebar-item-body/nile-inline-sidebar-item-body.css.ts +64 -0
- package/src/nile-inline-sidebar-item-body/nile-inline-sidebar-item-body.ts +110 -0
- package/src/nile-inline-sidebar-item-header/index.ts +1 -0
- package/src/nile-inline-sidebar-item-header/nile-inline-sidebar-item-header.css.ts +38 -0
- package/src/nile-inline-sidebar-item-header/nile-inline-sidebar-item-header.ts +69 -0
- package/src/nile-inline-sidebar-panel/index.ts +1 -0
- package/src/nile-inline-sidebar-panel/nile-inline-sidebar-panel.css.ts +30 -0
- package/src/nile-inline-sidebar-panel/nile-inline-sidebar-panel.ts +53 -0
- package/src/nile-inline-sidebar-panel-group/index.ts +1 -0
- package/src/nile-inline-sidebar-panel-group/nile-inline-sidebar-panel-group.css.ts +41 -0
- package/src/nile-inline-sidebar-panel-group/nile-inline-sidebar-panel-group.ts +101 -0
- package/src/nile-nav-tab/index.ts +1 -0
- package/src/nile-nav-tab/nile-nav-tab.css.ts +201 -0
- package/src/nile-nav-tab/nile-nav-tab.test.ts +768 -0
- package/src/nile-nav-tab/nile-nav-tab.ts +198 -0
- package/src/nile-nav-tab-group/index.ts +1 -0
- package/src/nile-nav-tab-group/nile-nav-tab-group.css.ts +682 -0
- package/src/nile-nav-tab-group/nile-nav-tab-group.test.ts +1009 -0
- package/src/nile-nav-tab-group/nile-nav-tab-group.ts +845 -0
- package/src/nile-nav-tab-panel/index.ts +1 -0
- package/src/nile-nav-tab-panel/nile-nav-tab-panel.css.ts +39 -0
- package/src/nile-nav-tab-panel/nile-nav-tab-panel.test.ts +797 -0
- package/src/nile-nav-tab-panel/nile-nav-tab-panel.ts +78 -0
- package/src/nile-stepper-item/nile-stepper-item.ts +1 -1
- package/src/nile-vertical-stepper-item/nile-vertical-stepper-item.ts +1 -1
- package/vscode-html-custom-data.json +273 -3
|
@@ -5,23 +5,28 @@
|
|
|
5
5
|
* LICENSE file in the root directory of this source tree.
|
|
6
6
|
*/
|
|
7
7
|
import { css } from 'lit';
|
|
8
|
+
/** Enterprise (`--nile-*`) primary, NxtGen (`--ng-*`) fallback. */
|
|
8
9
|
export const styles = css `
|
|
9
10
|
:host {
|
|
10
|
-
display:
|
|
11
|
+
display: flex;
|
|
11
12
|
height: 100%;
|
|
13
|
+
|
|
14
|
+
--separator-width: 1px;
|
|
15
|
+
--separator-hit-area: 12px;
|
|
16
|
+
--separator-color: var(--nile-colors-neutral-400, var(--ng-colors-border-neutral));
|
|
12
17
|
}
|
|
13
18
|
.sidebar {
|
|
14
19
|
display: flex;
|
|
15
20
|
flex-direction: column;
|
|
16
21
|
height: 100%;
|
|
17
|
-
background: white;
|
|
18
|
-
border-right: 1px solid var(--nile-colors-neutral-400);
|
|
19
|
-
transition: width 0.3s ease;
|
|
22
|
+
background: var(--nile-colors-white-base, var(--ng-colors-bg-primary));
|
|
23
|
+
border-right: 1px solid var(--nile-colors-neutral-400, var(--ng-colors-border-neutral));
|
|
24
|
+
transition: var(--sidebar-transition, width 0.3s ease);
|
|
20
25
|
position: relative;
|
|
21
26
|
}
|
|
22
27
|
.toggle-btn {
|
|
23
28
|
position: absolute;
|
|
24
|
-
top: var(--nile-spacing-2xl);
|
|
29
|
+
top: var(--nile-spacing-2xl, var(--ng-spacing-2xl));
|
|
25
30
|
right: -14px;
|
|
26
31
|
z-index: 10;
|
|
27
32
|
}
|
|
@@ -30,7 +35,10 @@ export const styles = css `
|
|
|
30
35
|
width: 30px;
|
|
31
36
|
height: 30px;
|
|
32
37
|
}
|
|
33
|
-
|
|
38
|
+
nile-button.toggle-btn::part(base) {
|
|
39
|
+
border-color: var(--nile-colors-neutral-500, var(--ng-colors-border-primary));
|
|
40
|
+
}
|
|
41
|
+
:host(:not([collapsed]):not([resizable])) .sidebar {
|
|
34
42
|
width: 216px;
|
|
35
43
|
}
|
|
36
44
|
:host([collapsed]) .sidebar {
|
|
@@ -46,10 +54,59 @@ export const styles = css `
|
|
|
46
54
|
.sidebar-nav {
|
|
47
55
|
display: flex;
|
|
48
56
|
flex-direction: column;
|
|
49
|
-
gap: var(--nile-spacing-xs);
|
|
50
|
-
padding-right: var(--nile-spacing-xl);
|
|
51
|
-
padding-top: var(--nile-spacing-3xl);
|
|
52
|
-
padding-bottom: var(--nile-spacing-3xl);
|
|
57
|
+
gap: var(--nile-spacing-xs, var(--ng-spacing-xs));
|
|
58
|
+
padding-right: var(--nile-spacing-xl, var(--ng-spacing-xl));
|
|
59
|
+
padding-top: var(--nile-spacing-3xl, var(--ng-spacing-3xl));
|
|
60
|
+
padding-bottom: var(--nile-spacing-3xl, var(--ng-spacing-3xl));
|
|
61
|
+
}
|
|
62
|
+
.sidebar-nav--rich {
|
|
63
|
+
padding-right: 0px;
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
/* Resizable separator */
|
|
67
|
+
.separator {
|
|
68
|
+
flex: 0 0 var(--separator-width);
|
|
69
|
+
display: flex;
|
|
70
|
+
align-items: center;
|
|
71
|
+
justify-content: center;
|
|
72
|
+
background-color: var(--separator-color);
|
|
73
|
+
cursor: col-resize;
|
|
74
|
+
position: relative;
|
|
75
|
+
z-index: 1;
|
|
76
|
+
user-select: none;
|
|
77
|
+
touch-action: none;
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
.separator:focus {
|
|
81
|
+
outline: none;
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
.separator:focus-visible {
|
|
85
|
+
background-color: var(--nile-colors-blue-500, var(--ng-componentcolors-utility-brand-50));
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
.separator::after {
|
|
89
|
+
content: '';
|
|
90
|
+
position: absolute;
|
|
91
|
+
height: 100%;
|
|
92
|
+
left: calc(var(--separator-hit-area) / -2 + var(--separator-width) / 2);
|
|
93
|
+
width: var(--separator-hit-area);
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
:host([resizable]:not([collapsed])) .sidebar {
|
|
97
|
+
border-right: none;
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
:host([resizable][placement='right']:not([collapsed])) .sidebar {
|
|
101
|
+
border-left: none;
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
:host([collapsed]) .separator {
|
|
105
|
+
display: none;
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
:host([placement='right']) .separator {
|
|
109
|
+
order: -1;
|
|
53
110
|
}
|
|
54
111
|
|
|
55
112
|
nile-side-bar-action-menu {
|
|
@@ -61,8 +118,8 @@ export const styles = css `
|
|
|
61
118
|
nile-side-bar-action-menu::part(menu__items-wrapper) {
|
|
62
119
|
width: 100%;
|
|
63
120
|
max-width: 400px;
|
|
64
|
-
padding-top: var(--nile-spacing-lg);
|
|
65
|
-
padding-bottom: var(--nile-spacing-lg);
|
|
121
|
+
padding-top: var(--nile-spacing-lg, var(--ng-spacing-lg));
|
|
122
|
+
padding-bottom: var(--nile-spacing-lg, var(--ng-spacing-lg));
|
|
66
123
|
}
|
|
67
124
|
|
|
68
125
|
nile-side-bar-action-menu-item::part(base) {
|
|
@@ -70,12 +127,12 @@ export const styles = css `
|
|
|
70
127
|
margin-left: 0;
|
|
71
128
|
margin-right: 0;
|
|
72
129
|
border-radius: 0;
|
|
73
|
-
color:
|
|
130
|
+
color: var(--nile-colors-dark-900, var(--ng-colors-text-primary-900));
|
|
74
131
|
}
|
|
75
132
|
|
|
76
133
|
nile-side-bar-action-menu-item[active]::part(base):hover {
|
|
77
|
-
background: var(--nile-colors-primary-100);
|
|
78
|
-
color:
|
|
134
|
+
background: var(--nile-colors-primary-100, var(--ng-colors-bg-brand-secondary));
|
|
135
|
+
color: var(--nile-colors-dark-900, var(--ng-colors-text-primary-900));
|
|
79
136
|
}
|
|
80
137
|
|
|
81
138
|
nile-side-bar-action-menu-item::part(label) {
|
|
@@ -104,7 +161,8 @@ export const styles = css `
|
|
|
104
161
|
|
|
105
162
|
:host([placement='right']) .sidebar {
|
|
106
163
|
border-right: none;
|
|
107
|
-
border-left: 1px solid var(--nile-colors-neutral-400);
|
|
164
|
+
border-left: 1px solid var(--nile-colors-neutral-400, var(--ng-colors-border-neutral));
|
|
165
|
+
order: 0;
|
|
108
166
|
}
|
|
109
167
|
|
|
110
168
|
:host([placement='right']) .toggle-btn {
|
|
@@ -118,7 +176,7 @@ export const styles = css `
|
|
|
118
176
|
|
|
119
177
|
:host([placement='right']) .sidebar-nav {
|
|
120
178
|
padding-right: 0;
|
|
121
|
-
padding-left: var(--nile-spacing-xl);
|
|
179
|
+
padding-left: var(--nile-spacing-xl, var(--ng-spacing-xl));
|
|
122
180
|
}
|
|
123
181
|
`;
|
|
124
182
|
//# sourceMappingURL=nile-inline-sidebar.css.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nile-inline-sidebar.css.js","sourceRoot":"","sources":["../../../src/nile-inline-sidebar/nile-inline-sidebar.css.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA
|
|
1
|
+
{"version":3,"file":"nile-inline-sidebar.css.js","sourceRoot":"","sources":["../../../src/nile-inline-sidebar/nile-inline-sidebar.css.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B,mEAAmE;AACnE,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA4KxB,CAAC","sourcesContent":["/**\n * Copyright Aquera Inc 2025\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 { css } from 'lit';\n\n/** Enterprise (`--nile-*`) primary, NxtGen (`--ng-*`) fallback. */\nexport const styles = css`\n :host {\n display: flex;\n height: 100%;\n\n --separator-width: 1px;\n --separator-hit-area: 12px;\n --separator-color: var(--nile-colors-neutral-400, var(--ng-colors-border-neutral));\n }\n .sidebar {\n display: flex;\n flex-direction: column;\n height: 100%;\n background: var(--nile-colors-white-base, var(--ng-colors-bg-primary));\n border-right: 1px solid var(--nile-colors-neutral-400, var(--ng-colors-border-neutral));\n transition: var(--sidebar-transition, width 0.3s ease);\n position: relative;\n }\n .toggle-btn {\n position: absolute;\n top: var(--nile-spacing-2xl, var(--ng-spacing-2xl));\n right: -14px;\n z-index: 10;\n }\n\n nile-button.toggle-btn::part(base) {\n width: 30px;\n height: 30px;\n }\n nile-button.toggle-btn::part(base) {\n border-color: var(--nile-colors-neutral-500, var(--ng-colors-border-primary));\n }\n :host(:not([collapsed]):not([resizable])) .sidebar {\n width: 216px;\n }\n :host([collapsed]) .sidebar {\n width: 0px;\n }\n :host([collapsed]) .sidebar-nav {\n display: none;\n }\n .sidebar-header {\n display: flex;\n justify-content: flex-end;\n }\n .sidebar-nav {\n display: flex;\n flex-direction: column;\n gap: var(--nile-spacing-xs, var(--ng-spacing-xs));\n padding-right: var(--nile-spacing-xl, var(--ng-spacing-xl));\n padding-top: var(--nile-spacing-3xl, var(--ng-spacing-3xl));\n padding-bottom: var(--nile-spacing-3xl, var(--ng-spacing-3xl));\n }\n .sidebar-nav--rich {\n padding-right: 0px;\n }\n\n /* Resizable separator */\n .separator {\n flex: 0 0 var(--separator-width);\n display: flex;\n align-items: center;\n justify-content: center;\n background-color: var(--separator-color);\n cursor: col-resize;\n position: relative;\n z-index: 1;\n user-select: none;\n touch-action: none;\n }\n\n .separator:focus {\n outline: none;\n }\n\n .separator:focus-visible {\n background-color: var(--nile-colors-blue-500, var(--ng-componentcolors-utility-brand-50));\n }\n\n .separator::after {\n content: '';\n position: absolute;\n height: 100%;\n left: calc(var(--separator-hit-area) / -2 + var(--separator-width) / 2);\n width: var(--separator-hit-area);\n }\n\n :host([resizable]:not([collapsed])) .sidebar {\n border-right: none;\n }\n\n :host([resizable][placement='right']:not([collapsed])) .sidebar {\n border-left: none;\n }\n\n :host([collapsed]) .separator {\n display: none;\n }\n\n :host([placement='right']) .separator {\n order: -1;\n }\n\n nile-side-bar-action-menu {\n width: fit-content;\n max-width: 400px;\n min-width: 200px;\n }\n\n nile-side-bar-action-menu::part(menu__items-wrapper) {\n width: 100%;\n max-width: 400px;\n padding-top: var(--nile-spacing-lg, var(--ng-spacing-lg));\n padding-bottom: var(--nile-spacing-lg, var(--ng-spacing-lg));\n }\n\n nile-side-bar-action-menu-item::part(base) {\n width: 100%;\n margin-left: 0;\n margin-right: 0;\n border-radius: 0;\n color: var(--nile-colors-dark-900, var(--ng-colors-text-primary-900));\n }\n\n nile-side-bar-action-menu-item[active]::part(base):hover {\n background: var(--nile-colors-primary-100, var(--ng-colors-bg-brand-secondary));\n color: var(--nile-colors-dark-900, var(--ng-colors-text-primary-900));\n }\n\n nile-side-bar-action-menu-item::part(label) {\n display: block;\n width: 100%;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n /* Transition for sidebar button when it is closed and opened */\n nile-side-bar-action::part(panel),\n nile-side-bar-action-menu {\n opacity: 0;\n pointer-events: none;\n transition: opacity 0.2s ease-in;\n transition-delay: 50ms;\n }\n\n nile-side-bar-action:hover::part(panel),\n nile-side-bar-action:hover nile-side-bar-action-menu {\n opacity: 1;\n pointer-events: auto;\n transition-delay: 0ms;\n }\n\n :host([placement='right']) .sidebar {\n border-right: none;\n border-left: 1px solid var(--nile-colors-neutral-400, var(--ng-colors-border-neutral));\n order: 0;\n }\n\n :host([placement='right']) .toggle-btn {\n right: auto;\n left: -14px;\n }\n\n :host([placement='right']) .sidebar-header {\n justify-content: flex-start;\n }\n\n :host([placement='right']) .sidebar-nav {\n padding-right: 0;\n padding-left: var(--nile-spacing-xl, var(--ng-spacing-xl));\n }\n`;\n"]}
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* This source code is licensed under the BSD-3-Clause license found in the
|
|
5
5
|
* LICENSE file in the root directory of this source tree.
|
|
6
6
|
*/
|
|
7
|
-
import { CSSResultArray, TemplateResult } from 'lit';
|
|
7
|
+
import { CSSResultArray, TemplateResult, PropertyValues } from 'lit';
|
|
8
8
|
import NileElement from '../internal/nile-element';
|
|
9
9
|
/**
|
|
10
10
|
* Nile inline sidebar component.
|
|
@@ -17,6 +17,16 @@ export declare class NileInlineSidebar extends NileElement {
|
|
|
17
17
|
showTooltip: boolean;
|
|
18
18
|
/** The side on which the sidebar is placed. */
|
|
19
19
|
placement: 'left' | 'right';
|
|
20
|
+
/** Enables a draggable resize handle on the sidebar's trailing edge. */
|
|
21
|
+
resizable: boolean;
|
|
22
|
+
/** Current sidebar width in pixels when resizable is enabled. */
|
|
23
|
+
sidebarWidth: number;
|
|
24
|
+
/** Minimum sidebar width in pixels. */
|
|
25
|
+
minSidebarWidth: number;
|
|
26
|
+
showToggleBtn: boolean;
|
|
27
|
+
/** Maximum sidebar width in pixels. */
|
|
28
|
+
maxSidebarWidth: number;
|
|
29
|
+
variant?: 'minimal' | 'rich';
|
|
20
30
|
private activeIndex;
|
|
21
31
|
private defaultSlot;
|
|
22
32
|
private mutationObserver?;
|
|
@@ -25,6 +35,9 @@ export declare class NileInlineSidebar extends NileElement {
|
|
|
25
35
|
connectedCallback(): void;
|
|
26
36
|
disconnectedCallback(): void;
|
|
27
37
|
firstUpdated(): void;
|
|
38
|
+
updated(changedProperties: PropertyValues): void;
|
|
39
|
+
/** Pushes sidebar `variant` onto each item (rich vs minimal) so layout stays in sync with slotted content. */
|
|
40
|
+
private syncChildSidebarItemVariants;
|
|
28
41
|
private observeSidebarItems;
|
|
29
42
|
private syncActiveFromItems;
|
|
30
43
|
private get focusableItems();
|
|
@@ -34,6 +47,9 @@ export declare class NileInlineSidebar extends NileElement {
|
|
|
34
47
|
private handleItemSelect;
|
|
35
48
|
private toggleCollapse;
|
|
36
49
|
private handleMenuItemClick;
|
|
50
|
+
private handleSeparatorDrag;
|
|
51
|
+
private handleSeparatorKeyDown;
|
|
52
|
+
private get separatorTemplate();
|
|
37
53
|
private get menuItemsTemplate();
|
|
38
54
|
render(): TemplateResult;
|
|
39
55
|
}
|
|
@@ -5,10 +5,13 @@
|
|
|
5
5
|
* LICENSE file in the root directory of this source tree.
|
|
6
6
|
*/
|
|
7
7
|
import { __decorate } from "tslib";
|
|
8
|
-
import { html } from 'lit';
|
|
8
|
+
import { html, nothing } from 'lit';
|
|
9
9
|
import { customElement, property, query, state } from 'lit/decorators.js';
|
|
10
|
+
import { classMap } from 'lit/directives/class-map.js';
|
|
10
11
|
import { styles } from './nile-inline-sidebar.css';
|
|
11
12
|
import NileElement from '../internal/nile-element';
|
|
13
|
+
import { drag } from '../internal/drag';
|
|
14
|
+
import { clamp } from '../internal/math';
|
|
12
15
|
/**
|
|
13
16
|
* Nile inline sidebar component.
|
|
14
17
|
*
|
|
@@ -22,6 +25,16 @@ let NileInlineSidebar = class NileInlineSidebar extends NileElement {
|
|
|
22
25
|
this.showTooltip = false;
|
|
23
26
|
/** The side on which the sidebar is placed. */
|
|
24
27
|
this.placement = 'left';
|
|
28
|
+
/** Enables a draggable resize handle on the sidebar's trailing edge. */
|
|
29
|
+
this.resizable = false;
|
|
30
|
+
/** Current sidebar width in pixels when resizable is enabled. */
|
|
31
|
+
this.sidebarWidth = 216;
|
|
32
|
+
/** Minimum sidebar width in pixels. */
|
|
33
|
+
this.minSidebarWidth = 120;
|
|
34
|
+
this.showToggleBtn = true;
|
|
35
|
+
/** Maximum sidebar width in pixels. */
|
|
36
|
+
this.maxSidebarWidth = 400;
|
|
37
|
+
this.variant = 'minimal';
|
|
25
38
|
this.activeIndex = -1;
|
|
26
39
|
this.handleKeyDown = (event) => {
|
|
27
40
|
if (this.collapsed)
|
|
@@ -103,10 +116,25 @@ let NileInlineSidebar = class NileInlineSidebar extends NileElement {
|
|
|
103
116
|
firstUpdated() {
|
|
104
117
|
this.observeSidebarItems();
|
|
105
118
|
this.syncActiveFromItems();
|
|
119
|
+
this.syncChildSidebarItemVariants();
|
|
106
120
|
if (this.fixed) {
|
|
107
121
|
this.collapsed = false;
|
|
108
122
|
}
|
|
109
123
|
}
|
|
124
|
+
updated(changedProperties) {
|
|
125
|
+
super.updated(changedProperties);
|
|
126
|
+
if (changedProperties.has('variant')) {
|
|
127
|
+
this.syncChildSidebarItemVariants();
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
/** Pushes sidebar `variant` onto each item (rich vs minimal) so layout stays in sync with slotted content. */
|
|
131
|
+
syncChildSidebarItemVariants() {
|
|
132
|
+
const items = this.querySelectorAll('nile-inline-sidebar-item');
|
|
133
|
+
const v = this.variant ?? 'minimal';
|
|
134
|
+
items.forEach(item => {
|
|
135
|
+
item.variant = v;
|
|
136
|
+
});
|
|
137
|
+
}
|
|
110
138
|
observeSidebarItems() {
|
|
111
139
|
if (!this.sidebarItems?.length || !this.mutationObserver)
|
|
112
140
|
return;
|
|
@@ -181,6 +209,76 @@ let NileInlineSidebar = class NileInlineSidebar extends NileElement {
|
|
|
181
209
|
window.location.href = href;
|
|
182
210
|
this.requestUpdate();
|
|
183
211
|
}
|
|
212
|
+
handleSeparatorDrag(event) {
|
|
213
|
+
if (!this.resizable || this.collapsed)
|
|
214
|
+
return;
|
|
215
|
+
if (event.cancelable)
|
|
216
|
+
event.preventDefault();
|
|
217
|
+
const isRight = this.placement === 'right';
|
|
218
|
+
this.style.setProperty('--sidebar-transition', 'none');
|
|
219
|
+
drag(this, {
|
|
220
|
+
onMove: (x) => {
|
|
221
|
+
const hostRect = this.getBoundingClientRect();
|
|
222
|
+
let newWidth;
|
|
223
|
+
if (isRight) {
|
|
224
|
+
newWidth = hostRect.width - x;
|
|
225
|
+
}
|
|
226
|
+
else {
|
|
227
|
+
newWidth = x;
|
|
228
|
+
}
|
|
229
|
+
this.sidebarWidth = clamp(newWidth, this.minSidebarWidth, this.maxSidebarWidth);
|
|
230
|
+
this.emit('nile-sidebar-resize', { width: this.sidebarWidth });
|
|
231
|
+
},
|
|
232
|
+
onStop: () => {
|
|
233
|
+
this.style.removeProperty('--sidebar-transition');
|
|
234
|
+
},
|
|
235
|
+
initialEvent: event,
|
|
236
|
+
});
|
|
237
|
+
}
|
|
238
|
+
handleSeparatorKeyDown(event) {
|
|
239
|
+
if (!this.resizable || this.collapsed)
|
|
240
|
+
return;
|
|
241
|
+
const step = event.shiftKey ? 10 : 1;
|
|
242
|
+
let newWidth = this.sidebarWidth;
|
|
243
|
+
switch (event.key) {
|
|
244
|
+
case 'ArrowLeft':
|
|
245
|
+
newWidth -= step;
|
|
246
|
+
break;
|
|
247
|
+
case 'ArrowRight':
|
|
248
|
+
newWidth += step;
|
|
249
|
+
break;
|
|
250
|
+
case 'Home':
|
|
251
|
+
newWidth = this.minSidebarWidth;
|
|
252
|
+
break;
|
|
253
|
+
case 'End':
|
|
254
|
+
newWidth = this.maxSidebarWidth;
|
|
255
|
+
break;
|
|
256
|
+
default:
|
|
257
|
+
return;
|
|
258
|
+
}
|
|
259
|
+
event.preventDefault();
|
|
260
|
+
this.sidebarWidth = clamp(newWidth, this.minSidebarWidth, this.maxSidebarWidth);
|
|
261
|
+
this.emit('nile-sidebar-resize', { width: this.sidebarWidth });
|
|
262
|
+
}
|
|
263
|
+
get separatorTemplate() {
|
|
264
|
+
if (!this.resizable || this.collapsed)
|
|
265
|
+
return nothing;
|
|
266
|
+
return html `
|
|
267
|
+
<div
|
|
268
|
+
class="separator"
|
|
269
|
+
part="separator"
|
|
270
|
+
tabindex="0"
|
|
271
|
+
role="separator"
|
|
272
|
+
aria-valuenow=${this.sidebarWidth}
|
|
273
|
+
aria-valuemin=${this.minSidebarWidth}
|
|
274
|
+
aria-valuemax=${this.maxSidebarWidth}
|
|
275
|
+
aria-label="Resize sidebar"
|
|
276
|
+
@keydown=${this.handleSeparatorKeyDown}
|
|
277
|
+
@mousedown=${this.handleSeparatorDrag}
|
|
278
|
+
@touchstart=${this.handleSeparatorDrag}
|
|
279
|
+
></div>
|
|
280
|
+
`;
|
|
281
|
+
}
|
|
184
282
|
get menuItemsTemplate() {
|
|
185
283
|
if (!this.sidebarItems?.length)
|
|
186
284
|
return null;
|
|
@@ -216,8 +314,11 @@ let NileInlineSidebar = class NileInlineSidebar extends NileElement {
|
|
|
216
314
|
const collapsedIcon = isRight ? 'menu_open' : 'menu_close';
|
|
217
315
|
const expandedIcon = isRight ? 'menu_close' : 'menu_open';
|
|
218
316
|
const actionPlacement = isRight ? 'bottom-end' : 'bottom-start';
|
|
317
|
+
const sidebarStyle = !this.collapsed
|
|
318
|
+
? `width: ${this.sidebarWidth}px;`
|
|
319
|
+
: '';
|
|
219
320
|
return html `
|
|
220
|
-
<div class="sidebar" part="base">
|
|
321
|
+
<div class="sidebar" part="base" style=${sidebarStyle}>
|
|
221
322
|
<div class="sidebar-header" part="header">
|
|
222
323
|
${!this.fixed
|
|
223
324
|
? this.collapsed
|
|
@@ -229,33 +330,41 @@ let NileInlineSidebar = class NileInlineSidebar extends NileElement {
|
|
|
229
330
|
open
|
|
230
331
|
triggerDropdown="hover"
|
|
231
332
|
>
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
333
|
+
${this.showToggleBtn
|
|
334
|
+
? html `
|
|
335
|
+
<nile-button
|
|
336
|
+
slot="trigger"
|
|
337
|
+
class="toggle-btn"
|
|
338
|
+
variant="tertiary"
|
|
339
|
+
@click=${this.toggleCollapse}
|
|
340
|
+
>
|
|
341
|
+
<nile-icon name=${collapsedIcon}></nile-icon>
|
|
342
|
+
</nile-button>
|
|
343
|
+
`
|
|
344
|
+
: nothing}
|
|
240
345
|
<nile-side-bar-action-menu>
|
|
241
346
|
${this.menuItemsTemplate}
|
|
242
347
|
</nile-side-bar-action-menu>
|
|
243
348
|
</nile-side-bar-action>
|
|
244
349
|
`
|
|
245
350
|
: html `
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
351
|
+
${this.showToggleBtn
|
|
352
|
+
? html `
|
|
353
|
+
<nile-button
|
|
354
|
+
class="toggle-btn"
|
|
355
|
+
variant="tertiary"
|
|
356
|
+
@click=${this.toggleCollapse}
|
|
357
|
+
>
|
|
358
|
+
<nile-icon name=${expandedIcon}></nile-icon>
|
|
359
|
+
</nile-button>
|
|
360
|
+
`
|
|
361
|
+
: nothing}
|
|
253
362
|
`
|
|
254
363
|
: null}
|
|
255
364
|
</div>
|
|
256
365
|
|
|
257
366
|
<nav
|
|
258
|
-
class
|
|
367
|
+
class=${classMap({ 'sidebar-nav': true, 'sidebar-nav--rich': this.variant === 'rich' })}
|
|
259
368
|
role="navigation"
|
|
260
369
|
aria-label="Sidebar"
|
|
261
370
|
style=${this.collapsed ? 'display:none;' : ''}
|
|
@@ -266,10 +375,12 @@ let NileInlineSidebar = class NileInlineSidebar extends NileElement {
|
|
|
266
375
|
this.requestUpdate();
|
|
267
376
|
this.observeSidebarItems();
|
|
268
377
|
this.syncActiveFromItems();
|
|
378
|
+
this.syncChildSidebarItemVariants();
|
|
269
379
|
}}
|
|
270
380
|
></slot>
|
|
271
381
|
</nav>
|
|
272
382
|
</div>
|
|
383
|
+
${this.separatorTemplate}
|
|
273
384
|
`;
|
|
274
385
|
}
|
|
275
386
|
};
|
|
@@ -285,6 +396,24 @@ __decorate([
|
|
|
285
396
|
__decorate([
|
|
286
397
|
property({ type: String, reflect: true })
|
|
287
398
|
], NileInlineSidebar.prototype, "placement", void 0);
|
|
399
|
+
__decorate([
|
|
400
|
+
property({ type: Boolean, reflect: true })
|
|
401
|
+
], NileInlineSidebar.prototype, "resizable", void 0);
|
|
402
|
+
__decorate([
|
|
403
|
+
property({ type: Number, attribute: true })
|
|
404
|
+
], NileInlineSidebar.prototype, "sidebarWidth", void 0);
|
|
405
|
+
__decorate([
|
|
406
|
+
property({ type: Number, attribute: true })
|
|
407
|
+
], NileInlineSidebar.prototype, "minSidebarWidth", void 0);
|
|
408
|
+
__decorate([
|
|
409
|
+
property({ type: Boolean, attribute: true })
|
|
410
|
+
], NileInlineSidebar.prototype, "showToggleBtn", void 0);
|
|
411
|
+
__decorate([
|
|
412
|
+
property({ type: Number, attribute: true })
|
|
413
|
+
], NileInlineSidebar.prototype, "maxSidebarWidth", void 0);
|
|
414
|
+
__decorate([
|
|
415
|
+
property({ type: String, reflect: true, attribute: true })
|
|
416
|
+
], NileInlineSidebar.prototype, "variant", void 0);
|
|
288
417
|
__decorate([
|
|
289
418
|
state()
|
|
290
419
|
], NileInlineSidebar.prototype, "activeIndex", void 0);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nile-inline-sidebar.js","sourceRoot":"","sources":["../../../src/nile-inline-sidebar/nile-inline-sidebar.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Copyright Aquera Inc 2025\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 { html, CSSResultArray, TemplateResult } from 'lit';\nimport { customElement, property, query, state } from 'lit/decorators.js';\nimport { styles } from './nile-inline-sidebar.css';\nimport NileElement from '../internal/nile-element';\n\n/**\n * Nile inline sidebar component.\n *\n * @tag nile-inline-sidebar\n */\n@customElement('nile-inline-sidebar')\nexport class NileInlineSidebar extends NileElement {\n @property({ type: Boolean, reflect: true }) collapsed = false;\n\n @property({ type: Boolean, reflect: true, attribute: true }) fixed = false;\n\n @property({ type: Boolean, reflect: true }) showTooltip = false;\n\n /** The side on which the sidebar is placed. */\n @property({ type: String, reflect: true }) placement: 'left' | 'right' = 'left';\n\n @state() private activeIndex: number = -1;\n\n @query('slot') private defaultSlot!: HTMLSlotElement;\n\n private mutationObserver?: MutationObserver;\n\n public static get styles(): CSSResultArray {\n return [styles];\n }\n\n private get sidebarItems(): HTMLElement[] {\n if (!this.defaultSlot) return [];\n const assigned = this.defaultSlot.assignedElements({ flatten: true });\n const items = assigned.flatMap(el =>\n el.tagName.toLowerCase() === 'nile-inline-sidebar-item'\n ? [el]\n : Array.from(el.querySelectorAll('nile-inline-sidebar-item'))\n );\n return items as HTMLElement[];\n }\n\n connectedCallback() {\n super.connectedCallback();\n this.addEventListener('nile-click', this.handleItemSelect);\n this.addEventListener('keydown', this.handleKeyDown);\n this.mutationObserver = new MutationObserver(() =>\n this.syncActiveFromItems()\n );\n }\n\n disconnectedCallback() {\n super.disconnectedCallback();\n this.mutationObserver?.disconnect();\n this.removeEventListener('nile-click', this.handleItemSelect);\n this.removeEventListener('keydown', this.handleKeyDown);\n }\n\n firstUpdated() {\n this.observeSidebarItems();\n this.syncActiveFromItems();\n\n if (this.fixed) {\n this.collapsed = false;\n }\n }\n\n private observeSidebarItems() {\n if (!this.sidebarItems?.length || !this.mutationObserver) return;\n this.sidebarItems.forEach(item =>\n this.mutationObserver!.observe(item, {\n attributes: true,\n attributeFilter: ['active'],\n })\n );\n }\n\n private syncActiveFromItems() {\n if (!this.sidebarItems?.length) return;\n const activeIndex = this.sidebarItems.findIndex(item =>\n item.hasAttribute('active')\n );\n if (activeIndex !== -1 && activeIndex !== this.activeIndex) {\n this.activeIndex = activeIndex;\n this.requestUpdate();\n }\n this.updateTabIndices();\n }\n\n \n private get focusableItems(): HTMLElement[] {\n return this.sidebarItems.filter(\n item => !item.hasAttribute('disabled')\n );\n }\n\n private updateTabIndices() {\n const items = this.sidebarItems;\n if (!items.length) return;\n\n const focusTarget =\n this.activeIndex >= 0 ? items[this.activeIndex] : null;\n\n items.forEach(item => {\n if (item.hasAttribute('disabled')) {\n item.setAttribute('tabindex', '-1');\n } else if (item === focusTarget) {\n item.setAttribute('tabindex', '0');\n } else if (!focusTarget && item === this.focusableItems[0]) {\n item.setAttribute('tabindex', '0');\n } else {\n item.setAttribute('tabindex', '-1');\n }\n });\n }\n\n private focusItem(item: HTMLElement) {\n const items = this.sidebarItems;\n items.forEach(el => el.setAttribute('tabindex', '-1'));\n item.setAttribute('tabindex', '0');\n item.focus();\n }\n\n private handleKeyDown = (event: KeyboardEvent) => {\n if (this.collapsed) return;\n\n const focusable = this.focusableItems;\n if (!focusable.length) return;\n\n const currentFocus = this.sidebarItems.find(\n item =>\n item === document.activeElement ||\n item === this.shadowRoot?.activeElement ||\n item.matches(':focus-within')\n );\n\n const currentIndex = currentFocus\n ? focusable.indexOf(currentFocus)\n : -1;\n\n let nextIndex: number | null = null;\n\n switch (event.key) {\n case 'ArrowDown':\n nextIndex =\n currentIndex < focusable.length - 1 ? currentIndex + 1 : 0;\n break;\n\n case 'ArrowUp':\n nextIndex =\n currentIndex > 0 ? currentIndex - 1 : focusable.length - 1;\n break;\n\n case 'Home':\n nextIndex = 0;\n break;\n\n case 'End':\n nextIndex = focusable.length - 1;\n break;\n\n case 'Enter':\n case ' ':\n return;\n\n default:\n return;\n }\n\n event.preventDefault();\n\n if (nextIndex !== null && focusable[nextIndex]) {\n this.focusItem(focusable[nextIndex]);\n }\n };\n\n private handleItemSelect = (event: CustomEvent) => {\n const selectedItem = event.detail.item as HTMLElement;\n const index = this.sidebarItems.indexOf(selectedItem);\n\n this.sidebarItems.forEach(\n (item, i) => ((item as any).active = i === index)\n );\n this.activeIndex = index;\n this.updateTabIndices();\n\n this.dispatchEvent(\n new CustomEvent('nile-change', {\n detail: { selectedItem, index },\n bubbles: true,\n composed: true,\n })\n );\n\n this.requestUpdate();\n };\n\n private toggleCollapse() {\n if (this.fixed) return;\n this.collapsed = !this.collapsed;\n\n this.dispatchEvent(\n new CustomEvent('nile-toggle', {\n detail: { collapsed: this.collapsed },\n bubbles: true,\n composed: true,\n })\n );\n }\n\n private handleMenuItemClick(index: number) {\n const selectedItem = this.sidebarItems[index];\n if (!selectedItem || selectedItem.hasAttribute('disabled')) return;\n\n this.sidebarItems.forEach(\n (item, i) => ((item as any).active = i === index)\n );\n this.activeIndex = index;\n const text = selectedItem.textContent?.trim() || '';\n const href = (selectedItem as any).href;\n this.dispatchEvent(\n new CustomEvent('nile-click', {\n detail: { item: selectedItem, href, text },\n bubbles: true,\n composed: true,\n })\n );\n\n if (href) window.location.href = href;\n\n this.requestUpdate();\n }\n\n private get menuItemsTemplate() {\n if (!this.sidebarItems?.length) return null;\n\n const tooltipPlacement = this.placement === 'right' ? 'left' : 'right';\n\n return this.sidebarItems.map((item, index) => {\n const shouldShowTooltip = (item as any).tooltip;\n const isTruncated =\n item.scrollWidth > item.clientWidth ||\n item.scrollHeight > item.clientHeight;\n \n const content = html`\n <nile-side-bar-action-menu-item\n ?disabled=${item.hasAttribute('disabled')}\n ?active=${this.activeIndex === index}\n @click=${() => this.handleMenuItemClick(index)}\n >\n ${item.textContent}\n </nile-side-bar-action-menu-item>\n `;\n return shouldShowTooltip || isTruncated\n ? html`\n <nile-tooltip\n content=${item.textContent?.trim() || ''}\n hoist\n placement=${tooltipPlacement}\n >\n ${content}\n </nile-tooltip>\n `\n : content;\n });\n }\n \n \n \n\n public render(): TemplateResult {\n const isRight = this.placement === 'right';\n const collapsedIcon = isRight ? 'menu_open' : 'menu_close';\n const expandedIcon = isRight ? 'menu_close' : 'menu_open';\n const actionPlacement = isRight ? 'bottom-end' : 'bottom-start';\n\n return html`\n <div class=\"sidebar\" part=\"base\">\n <div class=\"sidebar-header\" part=\"header\">\n ${!this.fixed\n ? this.collapsed\n ? html`\n <nile-side-bar-action\n class=\"toggle-action\"\n placement=${actionPlacement}\n hoist\n open\n triggerDropdown=\"hover\"\n >\n <nile-button\n slot=\"trigger\"\n class=\"toggle-btn\"\n variant=\"tertiary\"\n @click=${this.toggleCollapse}\n >\n <nile-icon name=${collapsedIcon}></nile-icon>\n </nile-button>\n <nile-side-bar-action-menu>\n ${this.menuItemsTemplate}\n </nile-side-bar-action-menu>\n </nile-side-bar-action>\n `\n : html`\n <nile-button\n class=\"toggle-btn\"\n variant=\"tertiary\"\n @click=${this.toggleCollapse}\n >\n <nile-icon name=${expandedIcon}></nile-icon>\n </nile-button>\n `\n : null}\n </div>\n\n <nav\n class=\"sidebar-nav\"\n role=\"navigation\"\n aria-label=\"Sidebar\"\n style=${this.collapsed ? 'display:none;' : ''}\n part=\"nav-items\"\n >\n <slot\n @slotchange=${() => {\n this.requestUpdate();\n this.observeSidebarItems();\n this.syncActiveFromItems();\n }}\n ></slot>\n </nav>\n </div>\n `;\n }\n}\n\nexport default NileInlineSidebar;\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'nile-inline-sidebar': NileInlineSidebar;\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"nile-inline-sidebar.js","sourceRoot":"","sources":["../../../src/nile-inline-sidebar/nile-inline-sidebar.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Copyright Aquera Inc 2025\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 { html, CSSResultArray, TemplateResult, nothing, PropertyValues } from 'lit';\nimport { customElement, property, query, state } from 'lit/decorators.js';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { styles } from './nile-inline-sidebar.css';\nimport NileElement from '../internal/nile-element';\nimport { drag } from '../internal/drag';\nimport { clamp } from '../internal/math';\nimport NileInlineSidebarItem from '../nile-inline-sidebar-item/nile-inline-sidebar-item';\n\n/**\n * Nile inline sidebar component.\n *\n * @tag nile-inline-sidebar\n */\n@customElement('nile-inline-sidebar')\nexport class NileInlineSidebar extends NileElement {\n @property({ type: Boolean, reflect: true }) collapsed = false;\n\n @property({ type: Boolean, reflect: true, attribute: true }) fixed = false;\n\n @property({ type: Boolean, reflect: true }) showTooltip = false;\n\n /** The side on which the sidebar is placed. */\n @property({ type: String, reflect: true }) placement: 'left' | 'right' = 'left';\n\n /** Enables a draggable resize handle on the sidebar's trailing edge. */\n @property({ type: Boolean, reflect: true }) resizable = false;\n\n /** Current sidebar width in pixels when resizable is enabled. */\n @property({ type: Number, attribute: true }) sidebarWidth = 216;\n\n /** Minimum sidebar width in pixels. */\n @property({ type: Number, attribute: true }) minSidebarWidth = 120;\n\n @property({ type: Boolean, attribute: true }) showToggleBtn = true;\n\n /** Maximum sidebar width in pixels. */\n @property({ type: Number, attribute: true}) maxSidebarWidth = 400;\n\n @property({ type: String, reflect: true, attribute: true }) variant?: 'minimal' | 'rich' = 'minimal';\n\n @state() private activeIndex: number = -1;\n\n @query('slot') private defaultSlot!: HTMLSlotElement;\n\n private mutationObserver?: MutationObserver;\n\n public static get styles(): CSSResultArray {\n return [styles];\n }\n\n private get sidebarItems(): HTMLElement[] {\n if (!this.defaultSlot) return [];\n const assigned = this.defaultSlot.assignedElements({ flatten: true });\n const items = assigned.flatMap(el =>\n el.tagName.toLowerCase() === 'nile-inline-sidebar-item'\n ? [el]\n : Array.from(el.querySelectorAll('nile-inline-sidebar-item'))\n );\n return items as HTMLElement[];\n }\n\n connectedCallback() {\n super.connectedCallback();\n this.addEventListener('nile-click', this.handleItemSelect);\n this.addEventListener('keydown', this.handleKeyDown);\n this.mutationObserver = new MutationObserver(() =>\n this.syncActiveFromItems()\n );\n }\n\n disconnectedCallback() {\n super.disconnectedCallback();\n this.mutationObserver?.disconnect();\n this.removeEventListener('nile-click', this.handleItemSelect);\n this.removeEventListener('keydown', this.handleKeyDown);\n }\n\n firstUpdated() {\n this.observeSidebarItems();\n this.syncActiveFromItems();\n this.syncChildSidebarItemVariants();\n\n if (this.fixed) {\n this.collapsed = false;\n }\n }\n\n updated(changedProperties: PropertyValues) {\n super.updated(changedProperties);\n if (changedProperties.has('variant')) {\n this.syncChildSidebarItemVariants();\n }\n }\n\n /** Pushes sidebar `variant` onto each item (rich vs minimal) so layout stays in sync with slotted content. */\n private syncChildSidebarItemVariants() {\n const items = this.querySelectorAll(\n 'nile-inline-sidebar-item',\n ) as NodeListOf<NileInlineSidebarItem>;\n const v = this.variant ?? 'minimal';\n items.forEach(item => {\n item.variant = v;\n });\n }\n\n private observeSidebarItems() {\n if (!this.sidebarItems?.length || !this.mutationObserver) return;\n this.sidebarItems.forEach(item =>\n this.mutationObserver!.observe(item, {\n attributes: true,\n attributeFilter: ['active'],\n })\n );\n }\n\n private syncActiveFromItems() {\n if (!this.sidebarItems?.length) return;\n const activeIndex = this.sidebarItems.findIndex(item =>\n item.hasAttribute('active')\n );\n if (activeIndex !== -1 && activeIndex !== this.activeIndex) {\n this.activeIndex = activeIndex;\n this.requestUpdate();\n }\n this.updateTabIndices();\n }\n\n \n private get focusableItems(): HTMLElement[] {\n return this.sidebarItems.filter(\n item => !item.hasAttribute('disabled')\n );\n }\n\n private updateTabIndices() {\n const items = this.sidebarItems;\n if (!items.length) return;\n\n const focusTarget =\n this.activeIndex >= 0 ? items[this.activeIndex] : null;\n\n items.forEach(item => {\n if (item.hasAttribute('disabled')) {\n item.setAttribute('tabindex', '-1');\n } else if (item === focusTarget) {\n item.setAttribute('tabindex', '0');\n } else if (!focusTarget && item === this.focusableItems[0]) {\n item.setAttribute('tabindex', '0');\n } else {\n item.setAttribute('tabindex', '-1');\n }\n });\n }\n\n private focusItem(item: HTMLElement) {\n const items = this.sidebarItems;\n items.forEach(el => el.setAttribute('tabindex', '-1'));\n item.setAttribute('tabindex', '0');\n item.focus();\n }\n\n private handleKeyDown = (event: KeyboardEvent) => {\n if (this.collapsed) return;\n\n const focusable = this.focusableItems;\n if (!focusable.length) return;\n\n const currentFocus = this.sidebarItems.find(\n item =>\n item === document.activeElement ||\n item === this.shadowRoot?.activeElement ||\n item.matches(':focus-within')\n );\n\n const currentIndex = currentFocus\n ? focusable.indexOf(currentFocus)\n : -1;\n\n let nextIndex: number | null = null;\n\n switch (event.key) {\n case 'ArrowDown':\n nextIndex =\n currentIndex < focusable.length - 1 ? currentIndex + 1 : 0;\n break;\n\n case 'ArrowUp':\n nextIndex =\n currentIndex > 0 ? currentIndex - 1 : focusable.length - 1;\n break;\n\n case 'Home':\n nextIndex = 0;\n break;\n\n case 'End':\n nextIndex = focusable.length - 1;\n break;\n\n case 'Enter':\n case ' ':\n return;\n\n default:\n return;\n }\n\n event.preventDefault();\n\n if (nextIndex !== null && focusable[nextIndex]) {\n this.focusItem(focusable[nextIndex]);\n }\n };\n\n private handleItemSelect = (event: CustomEvent) => {\n const selectedItem = event.detail.item as HTMLElement;\n const index = this.sidebarItems.indexOf(selectedItem);\n\n this.sidebarItems.forEach(\n (item, i) => ((item as any).active = i === index)\n );\n this.activeIndex = index;\n this.updateTabIndices();\n\n this.dispatchEvent(\n new CustomEvent('nile-change', {\n detail: { selectedItem, index },\n bubbles: true,\n composed: true,\n })\n );\n\n this.requestUpdate();\n };\n\n private toggleCollapse() {\n if (this.fixed) return;\n this.collapsed = !this.collapsed;\n\n this.dispatchEvent(\n new CustomEvent('nile-toggle', {\n detail: { collapsed: this.collapsed },\n bubbles: true,\n composed: true,\n })\n );\n }\n\n private handleMenuItemClick(index: number) {\n const selectedItem = this.sidebarItems[index];\n if (!selectedItem || selectedItem.hasAttribute('disabled')) return;\n\n this.sidebarItems.forEach(\n (item, i) => ((item as any).active = i === index)\n );\n this.activeIndex = index;\n const text = selectedItem.textContent?.trim() || '';\n const href = (selectedItem as any).href;\n this.dispatchEvent(\n new CustomEvent('nile-click', {\n detail: { item: selectedItem, href, text },\n bubbles: true,\n composed: true,\n })\n );\n\n if (href) window.location.href = href;\n\n this.requestUpdate();\n }\n\n private handleSeparatorDrag(event: PointerEvent) {\n if (!this.resizable || this.collapsed) return;\n if (event.cancelable) event.preventDefault();\n\n const isRight = this.placement === 'right';\n\n this.style.setProperty('--sidebar-transition', 'none');\n\n drag(this, {\n onMove: (x: number) => {\n const hostRect = this.getBoundingClientRect();\n let newWidth: number;\n\n if (isRight) {\n newWidth = hostRect.width - x;\n } else {\n newWidth = x;\n }\n\n this.sidebarWidth = clamp(newWidth, this.minSidebarWidth, this.maxSidebarWidth);\n this.emit('nile-sidebar-resize', { width: this.sidebarWidth });\n },\n onStop: () => {\n this.style.removeProperty('--sidebar-transition');\n },\n initialEvent: event,\n });\n }\n\n private handleSeparatorKeyDown(event: KeyboardEvent) {\n if (!this.resizable || this.collapsed) return;\n\n const step = event.shiftKey ? 10 : 1;\n let newWidth = this.sidebarWidth;\n\n switch (event.key) {\n case 'ArrowLeft':\n newWidth -= step;\n break;\n case 'ArrowRight':\n newWidth += step;\n break;\n case 'Home':\n newWidth = this.minSidebarWidth;\n break;\n case 'End':\n newWidth = this.maxSidebarWidth;\n break;\n default:\n return;\n }\n\n event.preventDefault();\n this.sidebarWidth = clamp(newWidth, this.minSidebarWidth, this.maxSidebarWidth);\n this.emit('nile-sidebar-resize', { width: this.sidebarWidth });\n }\n\n private get separatorTemplate() {\n if (!this.resizable || this.collapsed) return nothing;\n\n return html`\n <div\n class=\"separator\"\n part=\"separator\"\n tabindex=\"0\"\n role=\"separator\"\n aria-valuenow=${this.sidebarWidth}\n aria-valuemin=${this.minSidebarWidth}\n aria-valuemax=${this.maxSidebarWidth}\n aria-label=\"Resize sidebar\"\n @keydown=${this.handleSeparatorKeyDown}\n @mousedown=${this.handleSeparatorDrag}\n @touchstart=${this.handleSeparatorDrag}\n ></div>\n `;\n }\n\n private get menuItemsTemplate() {\n if (!this.sidebarItems?.length) return null;\n\n const tooltipPlacement = this.placement === 'right' ? 'left' : 'right';\n\n return this.sidebarItems.map((item, index) => {\n const shouldShowTooltip = (item as any).tooltip;\n const isTruncated =\n item.scrollWidth > item.clientWidth ||\n item.scrollHeight > item.clientHeight;\n \n const content = html`\n <nile-side-bar-action-menu-item\n ?disabled=${item.hasAttribute('disabled')}\n ?active=${this.activeIndex === index}\n @click=${() => this.handleMenuItemClick(index)}\n >\n ${item.textContent}\n </nile-side-bar-action-menu-item>\n `;\n return shouldShowTooltip || isTruncated\n ? html`\n <nile-tooltip\n content=${item.textContent?.trim() || ''}\n hoist\n placement=${tooltipPlacement}\n >\n ${content}\n </nile-tooltip>\n `\n : content;\n });\n }\n \n \n \n\n public render(): TemplateResult {\n const isRight = this.placement === 'right';\n const collapsedIcon = isRight ? 'menu_open' : 'menu_close';\n const expandedIcon = isRight ? 'menu_close' : 'menu_open';\n const actionPlacement = isRight ? 'bottom-end' : 'bottom-start';\n\n const sidebarStyle = !this.collapsed\n ? `width: ${this.sidebarWidth}px;`\n : '';\n\n return html`\n <div class=\"sidebar\" part=\"base\" style=${sidebarStyle}>\n <div class=\"sidebar-header\" part=\"header\">\n ${!this.fixed\n ? this.collapsed\n ? html`\n <nile-side-bar-action\n class=\"toggle-action\"\n placement=${actionPlacement}\n hoist\n open\n triggerDropdown=\"hover\"\n >\n ${this.showToggleBtn\n ? html`\n <nile-button\n slot=\"trigger\"\n class=\"toggle-btn\"\n variant=\"tertiary\"\n @click=${this.toggleCollapse}\n >\n <nile-icon name=${collapsedIcon}></nile-icon>\n </nile-button>\n `\n : nothing}\n <nile-side-bar-action-menu>\n ${this.menuItemsTemplate}\n </nile-side-bar-action-menu>\n </nile-side-bar-action>\n `\n : html`\n ${this.showToggleBtn\n ? html` \n <nile-button\n class=\"toggle-btn\"\n variant=\"tertiary\"\n @click=${this.toggleCollapse}\n >\n <nile-icon name=${expandedIcon}></nile-icon>\n </nile-button>\n `\n : nothing}\n `\n : null}\n </div>\n\n <nav\n class=${classMap({ 'sidebar-nav': true, 'sidebar-nav--rich': this.variant === 'rich' })}\n role=\"navigation\"\n aria-label=\"Sidebar\"\n style=${this.collapsed ? 'display:none;' : ''}\n part=\"nav-items\"\n >\n <slot\n @slotchange=${() => {\n this.requestUpdate();\n this.observeSidebarItems();\n this.syncActiveFromItems();\n this.syncChildSidebarItemVariants();\n }}\n ></slot>\n </nav>\n </div>\n ${this.separatorTemplate}\n `;\n }\n}\n\nexport default NileInlineSidebar;\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'nile-inline-sidebar': NileInlineSidebar;\n }\n}\n"]}
|
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
* This source code is licensed under the BSD-3-Clause license found in the
|
|
5
5
|
* LICENSE file in the root directory of this source tree.
|
|
6
6
|
*/
|
|
7
|
+
/** Enterprise (`--nile-*`) primary, NxtGen (`--ng-*`) fallback. */
|
|
7
8
|
export declare const styles: import("lit").CSSResult;
|
|
8
9
|
declare const _default: import("lit").CSSResult[];
|
|
9
10
|
export default _default;
|
|
@@ -5,6 +5,7 @@
|
|
|
5
5
|
* LICENSE file in the root directory of this source tree.
|
|
6
6
|
*/
|
|
7
7
|
import { css } from 'lit';
|
|
8
|
+
/** Enterprise (`--nile-*`) primary, NxtGen (`--ng-*`) fallback. */
|
|
8
9
|
export const styles = css `
|
|
9
10
|
:host {
|
|
10
11
|
display: block;
|
|
@@ -13,10 +14,9 @@ export const styles = css `
|
|
|
13
14
|
.group {
|
|
14
15
|
display: flex;
|
|
15
16
|
flex-direction: column;
|
|
16
|
-
gap: var(--nile-spacing-xs);
|
|
17
|
+
gap: var(--nile-spacing-xs, var(--ng-spacing-xs));
|
|
17
18
|
}
|
|
18
19
|
|
|
19
|
-
|
|
20
20
|
:host([divider="false"]) .group {
|
|
21
21
|
border-bottom: none;
|
|
22
22
|
margin-bottom: 0;
|
|
@@ -24,18 +24,18 @@ export const styles = css `
|
|
|
24
24
|
}
|
|
25
25
|
|
|
26
26
|
.group-label {
|
|
27
|
-
font-size: var(--nile-type-scale-3);
|
|
28
|
-
font-weight: var(--nile-font-weight-semibold);
|
|
27
|
+
font-size: var(--nile-type-scale-3, var(--ng-font-size-text-sm));
|
|
28
|
+
font-weight: var(--nile-font-weight-semibold, var(--ng-font-weight-semibold));
|
|
29
29
|
text-transform: uppercase;
|
|
30
|
-
color:
|
|
31
|
-
margin: var(--nile-spacing-xs) 0 var(--nile-spacing-xs) var(--nile-spacing-md);
|
|
30
|
+
color: var(--nile-colors-neutral-500, var(--ng-colors-text-disabled));
|
|
31
|
+
margin: var(--nile-spacing-xs, var(--ng-spacing-xs)) 0 var(--nile-spacing-xs, var(--ng-spacing-xs)) var(--nile-spacing-md, var(--ng-spacing-md));
|
|
32
32
|
letter-spacing: 0.05em;
|
|
33
33
|
}
|
|
34
34
|
|
|
35
35
|
.group-items {
|
|
36
36
|
display: flex;
|
|
37
37
|
flex-direction: column;
|
|
38
|
-
gap: var(--nile-spacing-xs);
|
|
38
|
+
gap: var(--nile-spacing-xs, var(--ng-spacing-xs));
|
|
39
39
|
}
|
|
40
40
|
`;
|
|
41
41
|
export default [styles];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nile-inline-sidebar-group.css.js","sourceRoot":"","sources":["../../../src/nile-inline-sidebar-group/nile-inline-sidebar-group.css.ts"],"names":[],"mappings":"AAAA;;;;;EAKE;AAEF,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA
|
|
1
|
+
{"version":3,"file":"nile-inline-sidebar-group.css.js","sourceRoot":"","sources":["../../../src/nile-inline-sidebar-group/nile-inline-sidebar-group.css.ts"],"names":[],"mappings":"AAAA;;;;;EAKE;AAEF,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B,mEAAmE;AACnE,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA+BxB,CAAC;AAEF,eAAe,CAAC,MAAM,CAAC,CAAC","sourcesContent":["/**\n* Copyright Aquera Inc 2025\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 { css } from 'lit';\n\n/** Enterprise (`--nile-*`) primary, NxtGen (`--ng-*`) fallback. */\nexport const styles = css`\n:host {\n display: block;\n}\n\n.group {\n display: flex;\n flex-direction: column;\n gap: var(--nile-spacing-xs, var(--ng-spacing-xs));\n}\n\n:host([divider=\"false\"]) .group {\n border-bottom: none;\n margin-bottom: 0;\n padding-bottom: 0;\n}\n\n.group-label {\n font-size: var(--nile-type-scale-3, var(--ng-font-size-text-sm));\n font-weight: var(--nile-font-weight-semibold, var(--ng-font-weight-semibold));\n text-transform: uppercase;\n color: var(--nile-colors-neutral-500, var(--ng-colors-text-disabled));\n margin: var(--nile-spacing-xs, var(--ng-spacing-xs)) 0 var(--nile-spacing-xs, var(--ng-spacing-xs)) var(--nile-spacing-md, var(--ng-spacing-md));\n letter-spacing: 0.05em;\n}\n\n.group-items {\n display: flex;\n flex-direction: column;\n gap: var(--nile-spacing-xs, var(--ng-spacing-xs));\n}\n`;\n\nexport default [styles];\n"]}
|