@aquera/nile-elements 2.0.4 → 2.0.6
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 +9 -0
- package/demo/nxtgen-classes.css +609 -12
- package/demo/nxtgen-dark.css +254 -35
- package/demo/nxtgen-properties.css +27 -24
- package/demo/nxtgen-utilities.css +633 -36
- package/demo/nxtgen.css +70 -12
- package/demo/utilities.css +3 -0
- package/demo/variables.css +3 -0
- package/dist/index.cjs.js +1 -1
- package/dist/index.esm.js +1 -1
- package/dist/index.js +1375 -358
- package/dist/internal/glyph.cjs.js +1 -1
- package/dist/internal/glyph.cjs.js.map +1 -1
- package/dist/internal/glyph.esm.js +6 -5
- package/dist/nile-app-shell/index.cjs.js +2 -0
- package/dist/nile-app-shell/index.cjs.js.map +1 -0
- package/dist/nile-app-shell/index.esm.js +1 -0
- package/dist/nile-app-shell/nile-app-shell.cjs.js +2 -0
- package/dist/nile-app-shell/nile-app-shell.cjs.js.map +1 -0
- package/dist/nile-app-shell/nile-app-shell.css.cjs.js +2 -0
- package/dist/nile-app-shell/nile-app-shell.css.cjs.js.map +1 -0
- package/dist/nile-app-shell/nile-app-shell.css.esm.js +554 -0
- package/dist/nile-app-shell/nile-app-shell.esm.js +155 -0
- package/dist/nile-app-shell/shell-controller.cjs.js +2 -0
- package/dist/nile-app-shell/shell-controller.cjs.js.map +1 -0
- package/dist/nile-app-shell/shell-controller.esm.js +1 -0
- package/dist/nile-app-shell-main/index.cjs.js +2 -0
- package/dist/nile-app-shell-main/index.cjs.js.map +1 -0
- package/dist/nile-app-shell-main/index.esm.js +1 -0
- package/dist/nile-app-shell-main/nile-app-shell-main.cjs.js +2 -0
- package/dist/nile-app-shell-main/nile-app-shell-main.cjs.js.map +1 -0
- package/dist/nile-app-shell-main/nile-app-shell-main.css.cjs.js +2 -0
- package/dist/nile-app-shell-main/nile-app-shell-main.css.cjs.js.map +1 -0
- package/dist/nile-app-shell-main/nile-app-shell-main.css.esm.js +18 -0
- package/dist/nile-app-shell-main/nile-app-shell-main.esm.js +1 -0
- package/dist/nile-app-shell-nav-toggle/index.cjs.js +2 -0
- package/dist/nile-app-shell-nav-toggle/index.cjs.js.map +1 -0
- package/dist/nile-app-shell-nav-toggle/index.esm.js +1 -0
- package/dist/nile-app-shell-nav-toggle/nile-app-shell-nav-toggle.cjs.js +2 -0
- package/dist/nile-app-shell-nav-toggle/nile-app-shell-nav-toggle.cjs.js.map +1 -0
- package/dist/nile-app-shell-nav-toggle/nile-app-shell-nav-toggle.css.cjs.js +2 -0
- package/dist/nile-app-shell-nav-toggle/nile-app-shell-nav-toggle.css.cjs.js.map +1 -0
- package/dist/nile-app-shell-nav-toggle/nile-app-shell-nav-toggle.css.esm.js +29 -0
- package/dist/nile-app-shell-nav-toggle/nile-app-shell-nav-toggle.esm.js +16 -0
- package/dist/nile-app-shell-panel/index.cjs.js +2 -0
- package/dist/nile-app-shell-panel/index.cjs.js.map +1 -0
- package/dist/nile-app-shell-panel/index.esm.js +1 -0
- package/dist/nile-app-shell-panel/nile-app-shell-panel.cjs.js +2 -0
- package/dist/nile-app-shell-panel/nile-app-shell-panel.cjs.js.map +1 -0
- package/dist/nile-app-shell-panel/nile-app-shell-panel.css.cjs.js +2 -0
- package/dist/nile-app-shell-panel/nile-app-shell-panel.css.cjs.js.map +1 -0
- package/dist/nile-app-shell-panel/nile-app-shell-panel.css.esm.js +103 -0
- package/dist/nile-app-shell-panel/nile-app-shell-panel.esm.js +33 -0
- package/dist/nile-app-shell-side-nav/index.cjs.js +2 -0
- package/dist/nile-app-shell-side-nav/index.cjs.js.map +1 -0
- package/dist/nile-app-shell-side-nav/index.esm.js +1 -0
- package/dist/nile-app-shell-side-nav/nile-app-shell-side-nav.cjs.js +2 -0
- package/dist/nile-app-shell-side-nav/nile-app-shell-side-nav.cjs.js.map +1 -0
- package/dist/nile-app-shell-side-nav/nile-app-shell-side-nav.css.cjs.js +2 -0
- package/dist/nile-app-shell-side-nav/nile-app-shell-side-nav.css.cjs.js.map +1 -0
- package/dist/nile-app-shell-side-nav/nile-app-shell-side-nav.css.esm.js +55 -0
- package/dist/nile-app-shell-side-nav/nile-app-shell-side-nav.esm.js +5 -0
- package/dist/nile-combobox/nile-combobox.cjs.js +1 -1
- package/dist/nile-combobox/nile-combobox.cjs.js.map +1 -1
- package/dist/nile-combobox/nile-combobox.css.cjs.js +1 -1
- package/dist/nile-combobox/nile-combobox.css.cjs.js.map +1 -1
- package/dist/nile-combobox/nile-combobox.css.esm.js +28 -15
- package/dist/nile-combobox/nile-combobox.esm.js +11 -8
- package/dist/nile-combobox/portal-manager.cjs.js +1 -1
- package/dist/nile-combobox/portal-manager.cjs.js.map +1 -1
- package/dist/nile-combobox/portal-manager.esm.js +1 -1
- package/dist/nile-combobox/renderer.cjs.js +1 -1
- package/dist/nile-combobox/renderer.cjs.js.map +1 -1
- package/dist/nile-combobox/renderer.esm.js +31 -43
- package/dist/nile-floating-panel/nile-floating-panel.cjs.js +1 -1
- package/dist/nile-floating-panel/nile-floating-panel.cjs.js.map +1 -1
- package/dist/nile-floating-panel/nile-floating-panel.css.cjs.js +1 -1
- package/dist/nile-floating-panel/nile-floating-panel.css.cjs.js.map +1 -1
- package/dist/nile-floating-panel/nile-floating-panel.css.esm.js +46 -8
- package/dist/nile-floating-panel/nile-floating-panel.esm.js +1 -1
- package/dist/nile-popover/nile-popover.cjs.js +1 -1
- package/dist/nile-popover/nile-popover.cjs.js.map +1 -1
- package/dist/nile-popover/nile-popover.css.cjs.js +1 -1
- package/dist/nile-popover/nile-popover.css.cjs.js.map +1 -1
- package/dist/nile-popover/nile-popover.css.esm.js +32 -17
- package/dist/nile-popover/nile-popover.esm.js +1 -1
- package/dist/nile-wysiwyg-editor/index.cjs.js +1 -1
- package/dist/nile-wysiwyg-editor/index.esm.js +1 -1
- package/dist/nile-wysiwyg-editor/nile-wysiwyg-editor.cjs.js +1 -1
- package/dist/nile-wysiwyg-editor/nile-wysiwyg-editor.esm.js +1 -1
- package/dist/nile-wysiwyg-editor/nile-wysiwyg-toolbar/index.cjs.js +1 -1
- package/dist/nile-wysiwyg-editor/nile-wysiwyg-toolbar/index.esm.js +1 -1
- package/dist/nile-wysiwyg-editor/nile-wysiwyg-toolbar/nile-wysiwyg-toolbar.cjs.js +1 -1
- package/dist/nile-wysiwyg-editor/nile-wysiwyg-toolbar/nile-wysiwyg-toolbar.esm.js +1 -1
- package/dist/nile-wysiwyg-editor/ui/bubble-menu.cjs.js +1 -1
- package/dist/nile-wysiwyg-editor/ui/bubble-menu.cjs.js.map +1 -1
- package/dist/nile-wysiwyg-editor/ui/bubble-menu.esm.js +1 -1
- package/dist/nile-wysiwyg-editor/ui/embed-menu.cjs.js +1 -1
- package/dist/nile-wysiwyg-editor/ui/embed-menu.cjs.js.map +1 -1
- package/dist/nile-wysiwyg-editor/ui/embed-menu.esm.js +2 -2
- package/dist/nile-wysiwyg-editor/ui/image-menu.cjs.js +1 -1
- package/dist/nile-wysiwyg-editor/ui/image-menu.cjs.js.map +1 -1
- package/dist/nile-wysiwyg-editor/ui/image-menu.esm.js +4 -4
- package/dist/nile-wysiwyg-editor/ui/table-menu.cjs.js +1 -1
- package/dist/nile-wysiwyg-editor/ui/table-menu.cjs.js.map +1 -1
- package/dist/nile-wysiwyg-editor/ui/table-menu.esm.js +1 -1
- package/dist/src/index.d.ts +7 -2
- package/dist/src/index.js +6 -1
- package/dist/src/index.js.map +1 -1
- package/dist/src/internal/glyph.d.ts +6 -1
- package/dist/src/internal/glyph.js +8 -1
- package/dist/src/internal/glyph.js.map +1 -1
- package/dist/src/nile-app-shell/index.d.ts +7 -0
- package/dist/src/nile-app-shell/index.js +8 -0
- package/dist/src/nile-app-shell/index.js.map +1 -0
- package/dist/src/nile-app-shell/nile-app-shell-regions.test.d.ts +4 -0
- package/dist/src/nile-app-shell/nile-app-shell-regions.test.js +177 -0
- package/dist/src/nile-app-shell/nile-app-shell-regions.test.js.map +1 -0
- package/dist/src/nile-app-shell/nile-app-shell.css.d.ts +18 -0
- package/dist/src/nile-app-shell/nile-app-shell.css.js +572 -0
- package/dist/src/nile-app-shell/nile-app-shell.css.js.map +1 -0
- package/dist/src/nile-app-shell/nile-app-shell.d.ts +292 -0
- package/dist/src/nile-app-shell/nile-app-shell.js +796 -0
- package/dist/src/nile-app-shell/nile-app-shell.js.map +1 -0
- package/dist/src/nile-app-shell/nile-app-shell.test.d.ts +3 -0
- package/dist/src/nile-app-shell/nile-app-shell.test.js +454 -0
- package/dist/src/nile-app-shell/nile-app-shell.test.js.map +1 -0
- package/dist/src/nile-app-shell/shell-controller.d.ts +34 -0
- package/dist/src/nile-app-shell/shell-controller.js +80 -0
- package/dist/src/nile-app-shell/shell-controller.js.map +1 -0
- package/dist/src/nile-app-shell-main/index.d.ts +7 -0
- package/dist/src/nile-app-shell-main/index.js +8 -0
- package/dist/src/nile-app-shell-main/index.js.map +1 -0
- package/dist/src/nile-app-shell-main/nile-app-shell-main.css.d.ts +9 -0
- package/dist/src/nile-app-shell-main/nile-app-shell-main.css.js +27 -0
- package/dist/src/nile-app-shell-main/nile-app-shell-main.css.js.map +1 -0
- package/dist/src/nile-app-shell-main/nile-app-shell-main.d.ts +38 -0
- package/dist/src/nile-app-shell-main/nile-app-shell-main.js +51 -0
- package/dist/src/nile-app-shell-main/nile-app-shell-main.js.map +1 -0
- package/dist/src/nile-app-shell-nav-toggle/index.d.ts +7 -0
- package/dist/src/nile-app-shell-nav-toggle/index.js +8 -0
- package/dist/src/nile-app-shell-nav-toggle/index.js.map +1 -0
- package/dist/src/nile-app-shell-nav-toggle/nile-app-shell-nav-toggle.css.d.ts +13 -0
- package/dist/src/nile-app-shell-nav-toggle/nile-app-shell-nav-toggle.css.js +42 -0
- package/dist/src/nile-app-shell-nav-toggle/nile-app-shell-nav-toggle.css.js.map +1 -0
- package/dist/src/nile-app-shell-nav-toggle/nile-app-shell-nav-toggle.d.ts +56 -0
- package/dist/src/nile-app-shell-nav-toggle/nile-app-shell-nav-toggle.js +126 -0
- package/dist/src/nile-app-shell-nav-toggle/nile-app-shell-nav-toggle.js.map +1 -0
- package/dist/src/nile-app-shell-panel/index.d.ts +7 -0
- package/dist/src/nile-app-shell-panel/index.js +8 -0
- package/dist/src/nile-app-shell-panel/index.js.map +1 -0
- package/dist/src/nile-app-shell-panel/nile-app-shell-panel.css.d.ts +9 -0
- package/dist/src/nile-app-shell-panel/nile-app-shell-panel.css.js +112 -0
- package/dist/src/nile-app-shell-panel/nile-app-shell-panel.css.js.map +1 -0
- package/dist/src/nile-app-shell-panel/nile-app-shell-panel.d.ts +73 -0
- package/dist/src/nile-app-shell-panel/nile-app-shell-panel.js +158 -0
- package/dist/src/nile-app-shell-panel/nile-app-shell-panel.js.map +1 -0
- package/dist/src/nile-app-shell-side-nav/index.d.ts +7 -0
- package/dist/src/nile-app-shell-side-nav/index.js +8 -0
- package/dist/src/nile-app-shell-side-nav/index.js.map +1 -0
- package/dist/src/nile-app-shell-side-nav/nile-app-shell-side-nav.css.d.ts +13 -0
- package/dist/src/nile-app-shell-side-nav/nile-app-shell-side-nav.css.js +68 -0
- package/dist/src/nile-app-shell-side-nav/nile-app-shell-side-nav.css.js.map +1 -0
- package/dist/src/nile-app-shell-side-nav/nile-app-shell-side-nav.d.ts +54 -0
- package/dist/src/nile-app-shell-side-nav/nile-app-shell-side-nav.js +83 -0
- package/dist/src/nile-app-shell-side-nav/nile-app-shell-side-nav.js.map +1 -0
- package/dist/src/nile-combobox/nile-combobox.css.js +28 -15
- package/dist/src/nile-combobox/nile-combobox.css.js.map +1 -1
- package/dist/src/nile-combobox/nile-combobox.js +49 -10
- package/dist/src/nile-combobox/nile-combobox.js.map +1 -1
- package/dist/src/nile-combobox/portal-manager.js +2 -22
- package/dist/src/nile-combobox/portal-manager.js.map +1 -1
- package/dist/src/nile-combobox/renderer.d.ts +2 -3
- package/dist/src/nile-combobox/renderer.js +14 -45
- package/dist/src/nile-combobox/renderer.js.map +1 -1
- package/dist/src/nile-floating-panel/nile-floating-panel.css.js +46 -8
- package/dist/src/nile-floating-panel/nile-floating-panel.css.js.map +1 -1
- package/dist/src/nile-floating-panel/nile-floating-panel.js +13 -1
- package/dist/src/nile-floating-panel/nile-floating-panel.js.map +1 -1
- package/dist/src/nile-popover/nile-popover.css.js +30 -15
- package/dist/src/nile-popover/nile-popover.css.js.map +1 -1
- package/dist/src/nile-popover/nile-popover.js +1 -1
- package/dist/src/nile-popover/nile-popover.js.map +1 -1
- package/dist/src/nile-popover/nile-popover.test.js +1 -1
- package/dist/src/nile-popover/nile-popover.test.js.map +1 -1
- package/dist/src/version.d.ts +11 -1
- package/dist/src/version.js +56 -5
- package/dist/src/version.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/version.cjs.js +1 -1
- package/dist/version.cjs.js.map +1 -1
- package/dist/version.esm.js +1 -1
- package/package.json +8 -2
- package/scripts/replace-version.cjs +12 -10
- package/src/index.ts +16 -4
- package/src/internal/glyph.ts +12 -1
- package/src/nile-app-shell/index.ts +8 -0
- package/src/nile-app-shell/nile-app-shell-regions.test.ts +215 -0
- package/src/nile-app-shell/nile-app-shell.css.ts +574 -0
- package/src/nile-app-shell/nile-app-shell.test.ts +536 -0
- package/src/nile-app-shell/nile-app-shell.ts +838 -0
- package/src/nile-app-shell/shell-controller.ts +100 -0
- package/src/nile-app-shell-main/index.ts +8 -0
- package/src/nile-app-shell-main/nile-app-shell-main.css.ts +29 -0
- package/src/nile-app-shell-main/nile-app-shell-main.ts +52 -0
- package/src/nile-app-shell-nav-toggle/index.ts +8 -0
- package/src/nile-app-shell-nav-toggle/nile-app-shell-nav-toggle.css.ts +44 -0
- package/src/nile-app-shell-nav-toggle/nile-app-shell-nav-toggle.ts +138 -0
- package/src/nile-app-shell-panel/index.ts +8 -0
- package/src/nile-app-shell-panel/nile-app-shell-panel.css.ts +114 -0
- package/src/nile-app-shell-panel/nile-app-shell-panel.ts +161 -0
- package/src/nile-app-shell-side-nav/index.ts +8 -0
- package/src/nile-app-shell-side-nav/nile-app-shell-side-nav.css.ts +70 -0
- package/src/nile-app-shell-side-nav/nile-app-shell-side-nav.ts +86 -0
- package/src/nile-combobox/nile-combobox.css.ts +28 -15
- package/src/nile-combobox/nile-combobox.ts +61 -12
- package/src/nile-combobox/portal-manager.ts +4 -22
- package/src/nile-combobox/renderer.ts +26 -69
- package/src/nile-floating-panel/nile-floating-panel.css.ts +46 -8
- package/src/nile-floating-panel/nile-floating-panel.ts +19 -1
- package/src/nile-popover/nile-popover.css.ts +30 -15
- package/src/nile-popover/nile-popover.test.ts +1 -1
- package/src/nile-popover/nile-popover.ts +1 -1
- package/src/version.ts +61 -4
- package/vscode-html-custom-data.json +216 -5
|
@@ -81,26 +81,24 @@ export const styles = css`
|
|
|
81
81
|
display: none;
|
|
82
82
|
}
|
|
83
83
|
|
|
84
|
+
/* Offset arrow by 0.5px so its outline aligns with the panel border and its fill fully covers it. */
|
|
84
85
|
.tippy-box[data-theme~='floating-panel'][data-placement^='top'] > .tippy-svg-arrow { bottom: 0; }
|
|
85
|
-
.tippy-box[data-theme~='floating-panel'][data-placement^='top'] > .tippy-svg-arrow:after,
|
|
86
86
|
.tippy-box[data-theme~='floating-panel'][data-placement^='top'] > .tippy-svg-arrow > svg {
|
|
87
|
-
top:
|
|
87
|
+
top: 15.5px;
|
|
88
88
|
transform: rotate(180deg);
|
|
89
89
|
}
|
|
90
90
|
.tippy-box[data-theme~='floating-panel'][data-placement^='bottom'] > .tippy-svg-arrow { top: 0; }
|
|
91
|
-
.tippy-box[data-theme~='floating-panel'][data-placement^='bottom'] > .tippy-svg-arrow > svg { bottom:
|
|
91
|
+
.tippy-box[data-theme~='floating-panel'][data-placement^='bottom'] > .tippy-svg-arrow > svg { bottom: 15.5px; }
|
|
92
92
|
.tippy-box[data-theme~='floating-panel'][data-placement^='left'] > .tippy-svg-arrow { right: 0; }
|
|
93
|
-
.tippy-box[data-theme~='floating-panel'][data-placement^='left'] > .tippy-svg-arrow:after,
|
|
94
93
|
.tippy-box[data-theme~='floating-panel'][data-placement^='left'] > .tippy-svg-arrow > svg {
|
|
95
94
|
transform: rotate(90deg);
|
|
96
|
-
top: calc(50% -
|
|
95
|
+
top: calc(50% - 3.5px);
|
|
97
96
|
left: 11px;
|
|
98
97
|
}
|
|
99
98
|
.tippy-box[data-theme~='floating-panel'][data-placement^='right'] > .tippy-svg-arrow { left: 0; }
|
|
100
|
-
.tippy-box[data-theme~='floating-panel'][data-placement^='right'] > .tippy-svg-arrow:after,
|
|
101
99
|
.tippy-box[data-theme~='floating-panel'][data-placement^='right'] > .tippy-svg-arrow > svg {
|
|
102
100
|
transform: rotate(-90deg);
|
|
103
|
-
top: calc(50% -
|
|
101
|
+
top: calc(50% - 3.5px);
|
|
104
102
|
right: 11px;
|
|
105
103
|
}
|
|
106
104
|
|
|
@@ -113,6 +111,14 @@ export const styles = css`
|
|
|
113
111
|
|
|
114
112
|
.tippy-box[data-theme~='floating-panel'] > .tippy-svg-arrow > svg {
|
|
115
113
|
position: absolute;
|
|
114
|
+
overflow: visible;
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
.tippy-box[data-theme~='floating-panel'] > .tippy-svg-arrow > svg > .nile-floating-panel__arrow-outline {
|
|
118
|
+
fill: none;
|
|
119
|
+
stroke: var(--nile-colors-dark-200, var(--ng-colors-border-secondary-alt));
|
|
120
|
+
stroke-width: 1;
|
|
121
|
+
vector-effect: non-scaling-stroke;
|
|
116
122
|
}
|
|
117
123
|
|
|
118
124
|
.tippy-box[data-theme~='floating-panel'][data-placement^='top'] > .tippy-arrow {
|
|
@@ -123,6 +129,13 @@ export const styles = css`
|
|
|
123
129
|
border-width: 8px 8px 0;
|
|
124
130
|
border-top-color: initial;
|
|
125
131
|
}
|
|
132
|
+
.tippy-box[data-theme~='floating-panel'][data-placement^='top'] > .tippy-arrow:after {
|
|
133
|
+
bottom: -8px;
|
|
134
|
+
left: -1px;
|
|
135
|
+
border-width: 9px 9px 0;
|
|
136
|
+
border-top-color: var(--nile-colors-dark-200, var(--ng-colors-border-secondary-alt));
|
|
137
|
+
clip-path: inset(2px 0 0 0);
|
|
138
|
+
}
|
|
126
139
|
.tippy-box[data-theme~='floating-panel'][data-placement^='bottom'] > .tippy-arrow {
|
|
127
140
|
top: 0;
|
|
128
141
|
}
|
|
@@ -131,6 +144,13 @@ export const styles = css`
|
|
|
131
144
|
border-width: 0 8px 8px;
|
|
132
145
|
border-bottom-color: initial;
|
|
133
146
|
}
|
|
147
|
+
.tippy-box[data-theme~='floating-panel'][data-placement^='bottom'] > .tippy-arrow:after {
|
|
148
|
+
top: -8px;
|
|
149
|
+
left: -1px;
|
|
150
|
+
border-width: 0 9px 9px;
|
|
151
|
+
border-bottom-color: var(--nile-colors-dark-200, var(--ng-colors-border-secondary-alt));
|
|
152
|
+
clip-path: inset(0 0 2px 0);
|
|
153
|
+
}
|
|
134
154
|
.tippy-box[data-theme~='floating-panel'][data-placement^='left'] > .tippy-arrow {
|
|
135
155
|
right: 0;
|
|
136
156
|
}
|
|
@@ -139,6 +159,13 @@ export const styles = css`
|
|
|
139
159
|
border-width: 8px 0 8px 8px;
|
|
140
160
|
border-left-color: initial;
|
|
141
161
|
}
|
|
162
|
+
.tippy-box[data-theme~='floating-panel'][data-placement^='left'] > .tippy-arrow:after {
|
|
163
|
+
right: -8px;
|
|
164
|
+
top: -1px;
|
|
165
|
+
border-width: 9px 0 9px 9px;
|
|
166
|
+
border-left-color: var(--nile-colors-dark-200, var(--ng-colors-border-secondary-alt));
|
|
167
|
+
clip-path: inset(0 0 0 2px);
|
|
168
|
+
}
|
|
142
169
|
.tippy-box[data-theme~='floating-panel'][data-placement^='right'] > .tippy-arrow {
|
|
143
170
|
left: 0;
|
|
144
171
|
}
|
|
@@ -147,18 +174,29 @@ export const styles = css`
|
|
|
147
174
|
border-width: 8px 8px 8px 0;
|
|
148
175
|
border-right-color: initial;
|
|
149
176
|
}
|
|
177
|
+
.tippy-box[data-theme~='floating-panel'][data-placement^='right'] > .tippy-arrow:after {
|
|
178
|
+
left: -8px;
|
|
179
|
+
top: -1px;
|
|
180
|
+
border-width: 9px 9px 9px 0;
|
|
181
|
+
border-right-color: var(--nile-colors-dark-200, var(--ng-colors-border-secondary-alt));
|
|
182
|
+
clip-path: inset(0 2px 0 0);
|
|
183
|
+
}
|
|
150
184
|
|
|
151
185
|
.tippy-box[data-theme~='floating-panel'] > .tippy-arrow {
|
|
152
186
|
width: 16px;
|
|
153
187
|
height: 16px;
|
|
154
188
|
color: var(--nile-colors-white-base, var(--ng-colors-bg-primary));
|
|
155
189
|
}
|
|
156
|
-
|
|
190
|
+
/* :after is a 1px-larger triangle in the border colour, stacked behind :before, so the border continues around the arrow. */
|
|
191
|
+
.tippy-box[data-theme~='floating-panel'] > .tippy-arrow:before,
|
|
192
|
+
.tippy-box[data-theme~='floating-panel'] > .tippy-arrow:after {
|
|
157
193
|
content: '';
|
|
158
194
|
position: absolute;
|
|
159
195
|
border-color: transparent;
|
|
160
196
|
border-style: solid;
|
|
161
197
|
}
|
|
198
|
+
.tippy-box[data-theme~='floating-panel'] > .tippy-arrow:before { z-index: 1; }
|
|
199
|
+
.tippy-box[data-theme~='floating-panel'] > .tippy-arrow:after { z-index: 0; }
|
|
162
200
|
`;
|
|
163
201
|
|
|
164
202
|
export function injectGlobalFloatingPanelStyles(): void {
|
|
@@ -21,6 +21,24 @@ import {
|
|
|
21
21
|
} from '../nile-lite-tooltip/utils';
|
|
22
22
|
import { VisibilityManager } from '../utilities/visibility-manager.js';
|
|
23
23
|
|
|
24
|
+
const TIPPY_ROUND_ARROW =
|
|
25
|
+
/^<svg width="(\d+)" height="(\d+)"[^>]*><path d="(.+?)H0z"/.exec(roundArrow);
|
|
26
|
+
|
|
27
|
+
const NILE_ROUND_ARROW = ((): string => {
|
|
28
|
+
if (!TIPPY_ROUND_ARROW) return roundArrow;
|
|
29
|
+
|
|
30
|
+
const [, rawWidth, rawHeight, curve] = TIPPY_ROUND_ARROW;
|
|
31
|
+
const width = Number(rawWidth);
|
|
32
|
+
const height = Number(rawHeight) + 1; // + the skirt that covers the border
|
|
33
|
+
|
|
34
|
+
return (
|
|
35
|
+
`<svg width="${width}" height="${height}" viewBox="0 0 ${width} ${height}" aria-hidden="true" focusable="false" xmlns="http://www.w3.org/2000/svg">` +
|
|
36
|
+
`<path d="${curve}V${height}H0Z"></path>` +
|
|
37
|
+
`<path class="nile-floating-panel__arrow-outline" d="${curve}"></path>` +
|
|
38
|
+
`</svg>`
|
|
39
|
+
);
|
|
40
|
+
})();
|
|
41
|
+
|
|
24
42
|
/**
|
|
25
43
|
* Nile floating-panel component.
|
|
26
44
|
*
|
|
@@ -482,7 +500,7 @@ export class NileFloatingPanel extends NileElement {
|
|
|
482
500
|
|
|
483
501
|
private _resolveArrow() {
|
|
484
502
|
switch (this.arrow) {
|
|
485
|
-
case 'round': return
|
|
503
|
+
case 'round': return NILE_ROUND_ARROW;
|
|
486
504
|
case 'none': return false as const;
|
|
487
505
|
default: return true as const;
|
|
488
506
|
}
|
|
@@ -40,10 +40,6 @@ export const styles = css`
|
|
|
40
40
|
background-color: var(--nile-colors-white-base, var(--ng-colors-bg-primary));
|
|
41
41
|
border: solid 1px var(--nile-colors-dark-200, var(--ng-colors-border-secondary-alt));
|
|
42
42
|
box-shadow: var(--nile-box-shadow-2, var(--ng-shadow-lg));
|
|
43
|
-
--arrow-size: 18px;
|
|
44
|
-
--arrow-size-diagonal: calc(var(--arrow-size) * 0.7071);
|
|
45
|
-
--arrow-padding-offset: calc(var(--arrow-size-diagonal) - var(--arrow-size));
|
|
46
|
-
--arrow-color: var(--nile-colors-white-base, var(--ng-colors-text-white));
|
|
47
43
|
}
|
|
48
44
|
|
|
49
45
|
.popover__action {
|
|
@@ -52,19 +48,38 @@ export const styles = css`
|
|
|
52
48
|
}
|
|
53
49
|
|
|
54
50
|
nile-popup {
|
|
55
|
-
--arrow-size:
|
|
56
|
-
--arrow-color: var(--nile-colors-white-base, var(--ng-colors-
|
|
51
|
+
--arrow-size: 10px;
|
|
52
|
+
--arrow-color: var(--nile-colors-white-base, var(--ng-colors-bg-primary));
|
|
53
|
+
--arrow-border-color: var(
|
|
54
|
+
--nile-colors-dark-200,
|
|
55
|
+
var(--ng-colors-border-secondary-alt)
|
|
56
|
+
);
|
|
57
57
|
}
|
|
58
58
|
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
border: solid 1px var(--
|
|
67
|
-
|
|
59
|
+
nile-popup::part(arrow) {
|
|
60
|
+
z-index: 1;
|
|
61
|
+
border: none;
|
|
62
|
+
box-shadow: none;
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
nile-popup[data-current-placement^='bottom']::part(arrow) {
|
|
66
|
+
border-top: solid 1px var(--arrow-border-color);
|
|
67
|
+
border-left: solid 1px var(--arrow-border-color);
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
nile-popup[data-current-placement^='top']::part(arrow) {
|
|
71
|
+
border-bottom: solid 1px var(--arrow-border-color);
|
|
72
|
+
border-right: solid 1px var(--arrow-border-color);
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
nile-popup[data-current-placement^='left']::part(arrow) {
|
|
76
|
+
border-top: solid 1px var(--arrow-border-color);
|
|
77
|
+
border-right: solid 1px var(--arrow-border-color);
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
nile-popup[data-current-placement^='right']::part(arrow) {
|
|
81
|
+
border-bottom: solid 1px var(--arrow-border-color);
|
|
82
|
+
border-left: solid 1px var(--arrow-border-color);
|
|
68
83
|
}
|
|
69
84
|
`;
|
|
70
85
|
|
|
@@ -7,7 +7,7 @@ describe('NilePopover', () => {
|
|
|
7
7
|
it('2. shadow root', async () => { const el = await fixture<NilePopover>(html`<nile-popover></nile-popover>`); expect(el.shadowRoot).to.not.be.null; });
|
|
8
8
|
it('3. tag name', async () => { const el = await fixture<NilePopover>(html`<nile-popover></nile-popover>`); expect(el.tagName.toLowerCase()).to.equal('nile-popover'); });
|
|
9
9
|
it('4. placement defaults top', async () => { const el = await fixture<NilePopover>(html`<nile-popover></nile-popover>`); expect(el.placement).to.equal('top'); });
|
|
10
|
-
it('5. distance defaults
|
|
10
|
+
it('5. distance defaults 12', async () => { const el = await fixture<NilePopover>(html`<nile-popover></nile-popover>`); expect(el.distance).to.equal(12); });
|
|
11
11
|
it('6. preventOverlayClose defaults false', async () => { const el = await fixture<NilePopover>(html`<nile-popover></nile-popover>`); expect(el.preventOverlayClose).to.equal(false); });
|
|
12
12
|
it('7. arrow defaults true', async () => { const el = await fixture<NilePopover>(html`<nile-popover></nile-popover>`); expect(el.arrow).to.equal(true); });
|
|
13
13
|
it('8. title defaults empty', async () => { const el = await fixture<NilePopover>(html`<nile-popover></nile-popover>`); expect(el.title).to.equal(''); });
|
|
@@ -56,7 +56,7 @@ export class NilePopover extends NileElement {
|
|
|
56
56
|
| 'left-end' = 'top';
|
|
57
57
|
|
|
58
58
|
/** The distance in pixels from which to offset the popover away from its target. */
|
|
59
|
-
@property({ type: Number }) distance =
|
|
59
|
+
@property({ type: Number }) distance = 12;
|
|
60
60
|
|
|
61
61
|
@property({ type: Boolean, reflect: true }) preventOverlayClose = false;
|
|
62
62
|
|
package/src/version.ts
CHANGED
|
@@ -1,10 +1,67 @@
|
|
|
1
|
-
// Version utility
|
|
1
|
+
// Version utility.
|
|
2
|
+
//
|
|
3
|
+
// NILE_ELEMENTS_VERSION is this package's own version and is still substituted
|
|
4
|
+
// at build time by scripts/replace-version.cjs.
|
|
5
|
+
//
|
|
6
|
+
// The tokens version is read from the loaded Nile stylesheet's --nile-version
|
|
7
|
+
// custom property (stamped by @aquera/nile's scripts/stamp-css-version.mjs),
|
|
8
|
+
// falling back to the @aquera/nile installed alongside this package.
|
|
9
|
+
//
|
|
10
|
+
// Reading the stylesheet is what makes a tokens-only release visible. The
|
|
11
|
+
// imported constant alone is not enough: rollup.config.js bundles
|
|
12
|
+
// @aquera/nile/lib/version.js into dist/index.js, so on the CDN build it is
|
|
13
|
+
// frozen at this package's build time. The stylesheet is the live source.
|
|
14
|
+
import { NILE_VERSION as BUILT_IN_NILE_VERSION } from '@aquera/nile/lib/version.js';
|
|
15
|
+
|
|
2
16
|
export const NILE_ELEMENTS_VERSION = '__NILE_ELEMENTS_VERSION__';
|
|
3
|
-
|
|
17
|
+
|
|
18
|
+
function readStylesheetNileVersion(): string | null {
|
|
19
|
+
if (typeof window === 'undefined' || typeof getComputedStyle !== 'function') {
|
|
20
|
+
return null;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
try {
|
|
24
|
+
const value = getComputedStyle(document.documentElement)
|
|
25
|
+
.getPropertyValue('--nile-version')
|
|
26
|
+
.trim()
|
|
27
|
+
.replace(/^["']|["']$/g, '');
|
|
28
|
+
|
|
29
|
+
return value || null;
|
|
30
|
+
} catch {
|
|
31
|
+
return null;
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
/**
|
|
36
|
+
* The version of @aquera/nile (tokens/stylesheets) whose CSS is loaded in the
|
|
37
|
+
* page, falling back to the @aquera/nile bundled into this package when no
|
|
38
|
+
* stamped stylesheet is present.
|
|
39
|
+
*
|
|
40
|
+
* This is the canonical runtime API. It resolves on every call rather than
|
|
41
|
+
* caching, so it is correct even when the Nile stylesheet is added to the page
|
|
42
|
+
* after this module evaluates - which is the common case, and why no
|
|
43
|
+
* module-evaluation-time snapshot of it is exported.
|
|
44
|
+
*/
|
|
45
|
+
export function getNileVersion(): string {
|
|
46
|
+
return readStylesheetNileVersion() ?? BUILT_IN_NILE_VERSION;
|
|
47
|
+
}
|
|
4
48
|
|
|
5
49
|
// Set global versions for runtime access
|
|
6
50
|
if (typeof window !== 'undefined') {
|
|
7
51
|
(window as any).nileElementsVersion = NILE_ELEMENTS_VERSION;
|
|
8
|
-
|
|
9
|
-
|
|
52
|
+
|
|
53
|
+
// A getter rather than a value, so window.nileVersion reflects whichever
|
|
54
|
+
// stylesheet is loaded at read time regardless of script/style ordering.
|
|
55
|
+
let override: string | null = null;
|
|
56
|
+
Object.defineProperty(window, 'nileVersion', {
|
|
57
|
+
configurable: true,
|
|
58
|
+
get: () => override ?? getNileVersion(),
|
|
59
|
+
set: (value: string) => {
|
|
60
|
+
override = value;
|
|
61
|
+
},
|
|
62
|
+
});
|
|
63
|
+
|
|
64
|
+
(window as any).process = (window as any).process || {
|
|
65
|
+
env: { NODE_ENV: 'production' },
|
|
66
|
+
};
|
|
10
67
|
}
|
|
@@ -60,6 +60,217 @@
|
|
|
60
60
|
}
|
|
61
61
|
]
|
|
62
62
|
},
|
|
63
|
+
{
|
|
64
|
+
"name": "nile-app-shell-main",
|
|
65
|
+
"description": "Slots:\n\n * ` ` {} - The page body.\n\nAttributes:\n\n * `no-container` {`boolean`} - Drops the size query container.\n\nProperties:\n\n * `noContainer` {`boolean`} - Drops the size query container.\n\n * `BUBBLES` {`boolean`} - \n\n * `COMPOSED` {`boolean`} - \n\n * `CANCELABLE` {`boolean`} - ",
|
|
66
|
+
"attributes": [
|
|
67
|
+
{
|
|
68
|
+
"name": "no-container",
|
|
69
|
+
"description": "`no-container` {`boolean`} - Drops the size query container.\n\nProperty: noContainer\n\nDefault: false",
|
|
70
|
+
"valueSet": "v"
|
|
71
|
+
}
|
|
72
|
+
]
|
|
73
|
+
},
|
|
74
|
+
{
|
|
75
|
+
"name": "nile-app-shell-nav-toggle",
|
|
76
|
+
"description": "Attributes:\n\n * `with-rule` {`boolean`} - Draws the vertical rule the shell's own bar puts after the toggle.\n\n * `shell` {`string | undefined`} - The shell to drive. Defaults to the nearest `nile-app-shell` ancestor, or\nthe element with this id.\n\nProperties:\n\n * `withRule` {`boolean`} - Draws the vertical rule the shell's own bar puts after the toggle.\n\n * `shell` {`string | undefined`} - The shell to drive. Defaults to the nearest `nile-app-shell` ancestor, or\nthe element with this id.\n\n * `_rail` {`boolean`} - \n\n * `_locked` {`boolean`} - \n\n * `_observed` - \n\n * `appShell` - The shell this toggle drives, if it found one.\n\n * `_onShellToggle` - \n\n * `_onClick` - \n\n * `BUBBLES` {`boolean`} - \n\n * `COMPOSED` {`boolean`} - \n\n * `CANCELABLE` {`boolean`} - ",
|
|
77
|
+
"attributes": [
|
|
78
|
+
{
|
|
79
|
+
"name": "with-rule",
|
|
80
|
+
"description": "`with-rule` {`boolean`} - Draws the vertical rule the shell's own bar puts after the toggle.\n\nProperty: withRule\n\nDefault: false",
|
|
81
|
+
"valueSet": "v"
|
|
82
|
+
},
|
|
83
|
+
{
|
|
84
|
+
"name": "shell",
|
|
85
|
+
"description": "`shell` {`string | undefined`} - The shell to drive. Defaults to the nearest `nile-app-shell` ancestor, or\nthe element with this id.\n\nProperty: shell",
|
|
86
|
+
"values": []
|
|
87
|
+
}
|
|
88
|
+
]
|
|
89
|
+
},
|
|
90
|
+
{
|
|
91
|
+
"name": "nile-app-shell-panel",
|
|
92
|
+
"description": "Events:\n\n * `nile-close` {} - Emitted when the close button is pressed, after the shell\nhas been told to close. Cancelable is not honoured; listen to it to react,\nand use `no-close` to own the control yourself.\n\nSlots:\n\n * ` ` {} - The panel body. Scrolls.\n\n * `header` {} - Replaces the default heading (mark plus label).\n\n * `actions` {} - Controls added before the close button.\n\n * `footer` {} - A composer, docked below the scroll region.\n\nAttributes:\n\n * `label` {`string`} - The heading, and the accessible name of the region.\n\n * `no-header` {`boolean`} - Drops the header bar entirely.\n\n * `no-close` {`boolean`} - Drops the close button — for a panel the page closes its own way.\n\n * `no-padding` {`boolean`} - Removes the body's padding, for a full-bleed transcript.\n\n * `shell` {`string | undefined`} - Id of the shell to follow. Defaults to the nearest ancestor.\n\n * `mode` {`NileAppShellPanelMode`} - Mirrors the shell's panel mode. Set by the shell; treat it as read-only and\nstyle against it (`nile-app-shell-panel[mode='overlay']`).\n\nProperties:\n\n * `shellLink` - \n\n * `label` {`string`} - The heading, and the accessible name of the region.\n\n * `noHeader` {`boolean`} - Drops the header bar entirely.\n\n * `noClose` {`boolean`} - Drops the close button — for a panel the page closes its own way.\n\n * `noPadding` {`boolean`} - Removes the body's padding, for a full-bleed transcript.\n\n * `shell` {`string | undefined`} - Id of the shell to follow. Defaults to the nearest ancestor.\n\n * `mode` {`NileAppShellPanelMode`} - Mirrors the shell's panel mode. Set by the shell; treat it as read-only and\nstyle against it (`nile-app-shell-panel[mode='overlay']`).\n\n * `_hasFooter` {`boolean`} - \n\n * `BUBBLES` {`boolean`} - \n\n * `COMPOSED` {`boolean`} - \n\n * `CANCELABLE` {`boolean`} - ",
|
|
93
|
+
"attributes": [
|
|
94
|
+
{
|
|
95
|
+
"name": "label",
|
|
96
|
+
"description": "`label` {`string`} - The heading, and the accessible name of the region.\n\nProperty: label\n\nDefault: Ask Aquera"
|
|
97
|
+
},
|
|
98
|
+
{
|
|
99
|
+
"name": "no-header",
|
|
100
|
+
"description": "`no-header` {`boolean`} - Drops the header bar entirely.\n\nProperty: noHeader\n\nDefault: false",
|
|
101
|
+
"valueSet": "v"
|
|
102
|
+
},
|
|
103
|
+
{
|
|
104
|
+
"name": "no-close",
|
|
105
|
+
"description": "`no-close` {`boolean`} - Drops the close button — for a panel the page closes its own way.\n\nProperty: noClose\n\nDefault: false",
|
|
106
|
+
"valueSet": "v"
|
|
107
|
+
},
|
|
108
|
+
{
|
|
109
|
+
"name": "no-padding",
|
|
110
|
+
"description": "`no-padding` {`boolean`} - Removes the body's padding, for a full-bleed transcript.\n\nProperty: noPadding\n\nDefault: false",
|
|
111
|
+
"valueSet": "v"
|
|
112
|
+
},
|
|
113
|
+
{
|
|
114
|
+
"name": "shell",
|
|
115
|
+
"description": "`shell` {`string | undefined`} - Id of the shell to follow. Defaults to the nearest ancestor.\n\nProperty: shell",
|
|
116
|
+
"values": []
|
|
117
|
+
},
|
|
118
|
+
{
|
|
119
|
+
"name": "mode",
|
|
120
|
+
"description": "`mode` {`NileAppShellPanelMode`} - Mirrors the shell's panel mode. Set by the shell; treat it as read-only and\nstyle against it (`nile-app-shell-panel[mode='overlay']`).\n\nProperty: mode\n\nDefault: docked",
|
|
121
|
+
"values": [
|
|
122
|
+
{
|
|
123
|
+
"name": "docked"
|
|
124
|
+
},
|
|
125
|
+
{
|
|
126
|
+
"name": "overlay"
|
|
127
|
+
}
|
|
128
|
+
]
|
|
129
|
+
},
|
|
130
|
+
{
|
|
131
|
+
"name": "onnile-close",
|
|
132
|
+
"description": "`nile-close` {} - Emitted when the close button is pressed, after the shell\nhas been told to close. Cancelable is not honoured; listen to it to react,\nand use `no-close` to own the control yourself."
|
|
133
|
+
}
|
|
134
|
+
]
|
|
135
|
+
},
|
|
136
|
+
{
|
|
137
|
+
"name": "nile-app-shell-side-nav",
|
|
138
|
+
"description": "Slots:\n\n * ` ` {} - The nav body. Scrolls.\n\n * `header` {} - Pinned above the scroll region — a wordmark or product switcher.\n\n * `footer` {} - Pinned below it — an account row or help link.\n\nAttributes:\n\n * `collapsed` {`boolean`} - Mirrors the shell's effective rail state — the user's preference, or a rail\nforced by the shell's width. Set by the shell; treat it as read-only and\nstyle against it (`nile-app-shell-side-nav[collapsed] .label`).\n\n * `shell` {`string | undefined`} - Id of the shell to follow. Defaults to the nearest ancestor.\n\nProperties:\n\n * `shellLink` - \n\n * `collapsed` {`boolean`} - Mirrors the shell's effective rail state — the user's preference, or a rail\nforced by the shell's width. Set by the shell; treat it as read-only and\nstyle against it (`nile-app-shell-side-nav[collapsed] .label`).\n\n * `shell` {`string | undefined`} - Id of the shell to follow. Defaults to the nearest ancestor.\n\n * `BUBBLES` {`boolean`} - \n\n * `COMPOSED` {`boolean`} - \n\n * `CANCELABLE` {`boolean`} - ",
|
|
139
|
+
"attributes": [
|
|
140
|
+
{
|
|
141
|
+
"name": "collapsed",
|
|
142
|
+
"description": "`collapsed` {`boolean`} - Mirrors the shell's effective rail state — the user's preference, or a rail\nforced by the shell's width. Set by the shell; treat it as read-only and\nstyle against it (`nile-app-shell-side-nav[collapsed] .label`).\n\nProperty: collapsed\n\nDefault: false",
|
|
143
|
+
"valueSet": "v"
|
|
144
|
+
},
|
|
145
|
+
{
|
|
146
|
+
"name": "shell",
|
|
147
|
+
"description": "`shell` {`string | undefined`} - Id of the shell to follow. Defaults to the nearest ancestor.\n\nProperty: shell",
|
|
148
|
+
"values": []
|
|
149
|
+
}
|
|
150
|
+
]
|
|
151
|
+
},
|
|
152
|
+
{
|
|
153
|
+
"name": "nile-app-shell",
|
|
154
|
+
"description": "Events:\n\n * `nile-nav-toggle` {} - Emitted after the nav's collapsed state or its\nforced-rail lock changes. `detail: { collapsed, locked }`.\n\n * `nile-panel-toggle` {} - Emitted after the panel opens or closes.\n`detail: { open, mode }`.\n\n * `nile-panel-mode-change` {} - Emitted when the panel flips between docked\nand overlay. `detail: { mode }`.\n\nSlots:\n\n * ` ` {} - The page body, inside the content container.\n\n * `banner` {} - A full-width strip above every other region.\n\n * `top-bar` {} - The page-title bar. Mounted inside the container by default,\nor spanning the shell when `top-bar-placement=\"shell\"`. The nav toggle is\nrendered before whatever is slotted here.\n\n * `top-bar-actions` {} - Controls pinned to the end of the top bar.\n\n * `tabs` {} - A hoisted second-level tab strip, flush under the top bar and\noutside `<main>`'s scroller, so it never scrolls away. The region carries\nthe strip's height, padding and rule, so slot a `<nile-tab-group>` or the\ntab controls themselves.\n\n * `side-nav` {} - The navigation track. Works best with `<nile-side-bar>`.\n\n * `aside` {} - A secondary column between the content container and the panel.\n\n * `panel` {} - The AI panel's body. When nothing is slotted here the panel is\nunmounted and `openPanel()` is a no-op.\n\n * `panel-header` {} - Replaces the default panel heading (mark plus title).\n\n * `panel-actions` {} - Controls added before the panel's close button.\n\n * `panel-footer` {} - A bar docked below the panel's scroll region, for a\ncomposer.\n\nAttributes:\n\n * `nav-collapsed` {`boolean`} - The user's nav preference. The nav can still render as a rail while this is\nfalse — see `navLocked`.\n\n * `panel-open` {`boolean`} - Whether the AI panel is open.\n\n * `no-panel` {`boolean`} - Unmounts the AI panel for this route even when the `panel` slot is filled.\n`openPanel()` becomes a no-op.\n\n * `panel-label` {`string`} - The default panel heading. Ignored when `panel-header` is slotted.\n\n * `no-nav-toggle` {`boolean`} - Hides the built-in nav toggle. Mount `nile-app-shell-nav-toggle` yourself.\n\n * `no-panel-shortcut` {`boolean`} - Drops the Cmd/Ctrl+J and Escape panel shortcuts.\n\n * `no-skip-link` {`boolean`} - Hides the skip-to-content link.\n\n * `skip-link-label` {`string`} - Label for the skip-to-content link.\n\n * `top-bar-placement` {`NileAppShellTopBarPlacement`} - Where the top bar is mounted: inside the container, or spanning the shell.\n\n * `content-align` {`NileAppShellContentAlign`} - `centered` caps the page body at `--nile-app-shell-centered-width`.\n\n * `content-container` {`boolean`} - Makes the slotted page root a size query container, so page CSS can size\nagainst the content container instead of the viewport. Query it unnamed —\n`@container (min-width: 720px)` — because a container name declared inside\nthe shell's shadow tree is not visible to page CSS. Opt-in, because it\nalso applies layout containment to that element.\n\n * `flat` {`boolean`} - Drops the container's card chrome for a full-bleed page.\n\n * `no-padding` {`boolean`} - Removes the container's inner padding.\n\n * `ask-label` {`string`} - The label on the built-in Ask button.\n\nThe button is the shell's, not the app's: it is the one control that has\nto know whether a panel is mounted for this route and how to open it, and\nslotted content can see neither. Everything else in the bar — the\nbreadcrumb, the page actions, the tab strip — is slotted markup.\n\n * `no-ask` {`boolean`} - Drops the built-in Ask button, for a bar that renders its own.\n\n * `full-height` {`boolean`} - Sizes the shell to the viewport instead of its parent.\n\n * `overlay-breakpoint` {`number`} - Below this shell width the panel overlays the content instead of pushing\nit, and the nav is forced to a rail.\n\nZero — the default — means never: the panel is furniture that squeezes the\npage, at every width. It earns its room from the nav rail first and from\nits own width next (see `--nile-app-shell-panel-min-width`), so it does\nnot have to cover the page to fit. Set a width here to opt back into an\noverlay drawer below it.\n\n * `docked-rail-breakpoint` {`number`} - Below this shell width an open docked panel forces the nav to a rail.\nA floor, not the whole rule: the nav also rails as soon as the expanded\ntrack is what stops the row from fitting. This is the first thing the\npanel takes room from, so it can push rather than cover.\n\n * `persist-key` {`string | undefined`} - Persists the nav preference and the docked panel state under this key.\nOverlay panel state is never persisted — a reload opens closed.\n\nProperties:\n\n * `navCollapsed` {`boolean`} - The user's nav preference. The nav can still render as a rail while this is\nfalse — see `navLocked`.\n\n * `panelOpen` {`boolean`} - Whether the AI panel is open.\n\n * `noPanel` {`boolean`} - Unmounts the AI panel for this route even when the `panel` slot is filled.\n`openPanel()` becomes a no-op.\n\n * `panelLabel` {`string`} - The default panel heading. Ignored when `panel-header` is slotted.\n\n * `noNavToggle` {`boolean`} - Hides the built-in nav toggle. Mount `nile-app-shell-nav-toggle` yourself.\n\n * `noPanelShortcut` {`boolean`} - Drops the Cmd/Ctrl+J and Escape panel shortcuts.\n\n * `noSkipLink` {`boolean`} - Hides the skip-to-content link.\n\n * `skipLinkLabel` {`string`} - Label for the skip-to-content link.\n\n * `topBarPlacement` {`NileAppShellTopBarPlacement`} - Where the top bar is mounted: inside the container, or spanning the shell.\n\n * `contentAlign` {`NileAppShellContentAlign`} - `centered` caps the page body at `--nile-app-shell-centered-width`.\n\n * `contentContainer` {`boolean`} - Makes the slotted page root a size query container, so page CSS can size\nagainst the content container instead of the viewport. Query it unnamed —\n`@container (min-width: 720px)` — because a container name declared inside\nthe shell's shadow tree is not visible to page CSS. Opt-in, because it\nalso applies layout containment to that element.\n\n * `flat` {`boolean`} - Drops the container's card chrome for a full-bleed page.\n\n * `noPadding` {`boolean`} - Removes the container's inner padding.\n\n * `askLabel` {`string`} - The label on the built-in Ask button.\n\nThe button is the shell's, not the app's: it is the one control that has\nto know whether a panel is mounted for this route and how to open it, and\nslotted content can see neither. Everything else in the bar — the\nbreadcrumb, the page actions, the tab strip — is slotted markup.\n\n * `noAsk` {`boolean`} - Drops the built-in Ask button, for a bar that renders its own.\n\n * `fullHeight` {`boolean`} - Sizes the shell to the viewport instead of its parent.\n\n * `overlayBreakpoint` {`number`} - Below this shell width the panel overlays the content instead of pushing\nit, and the nav is forced to a rail.\n\nZero — the default — means never: the panel is furniture that squeezes the\npage, at every width. It earns its room from the nav rail first and from\nits own width next (see `--nile-app-shell-panel-min-width`), so it does\nnot have to cover the page to fit. Set a width here to opt back into an\noverlay drawer below it.\n\n * `dockedRailBreakpoint` {`number`} - Below this shell width an open docked panel forces the nav to a rail.\nA floor, not the whole rule: the nav also rails as soon as the expanded\ntrack is what stops the row from fitting. This is the first thing the\npanel takes room from, so it can push rather than cover.\n\n * `persistKey` {`string | undefined`} - Persists the nav preference and the docked panel state under this key.\nOverlay panel state is never persisted — a reload opens closed.\n\n * `_panelMode` {`NileAppShellPanelMode`} - The panel's current mode. Derived from the shell's width.\n\n * `_navLocked` {`boolean`} - Whether the nav is held at a rail by the shell's width.\n\n * `_hasBanner` {`boolean`} - \n\n * `_hasSideNav` {`boolean`} - \n\n * `_hasTopBar` {`boolean`} - \n\n * `_hasTopBarActions` {`boolean`} - \n\n * `_hasTabs` {`boolean`} - \n\n * `_hasPanel` {`boolean`} - \n\n * `_hasPanelFooter` {`boolean`} - \n\n * `_panelOwnsChrome` {`boolean`} - True when a `nile-app-shell-panel` is slotted. That component owns the\npanel's heading, actions, close button and footer, so the shell renders a\nbare region and keeps only the geometry and the open state — the same\nhand-off as `no-nav-toggle` plus `nile-app-shell-nav-toggle`.\n\n * `_hasAside` {`boolean`} - \n\n * `_main` {`HTMLElement | undefined`} - \n\n * `_width` {`number`} - \n\n * `_resizeObserver` - \n\n * `_restoredPanelOpen` {`boolean | null`} - \n\n * `panelMode` {`NileAppShellPanelMode`} - The panel's current mode: `docked` or `overlay`.\n\n * `navLocked` {`boolean`} - Whether the shell is holding the nav at a rail. The toggle is disabled.\n\n * `panelAvailable` {`boolean`} - Whether a panel is mounted for this route.\n\n * `askVisible` {`boolean`} - Whether the built-in Ask button is rendered.\n\n * `rail` {`boolean`} - Whether the nav renders as a rail right now, preference or lock.\n\n * `_onSideNavToggle` - A slotted sidebar's own expand button is the same toggle.\n\n * `_onKeyDown` - \n\n * `BUBBLES` {`boolean`} - \n\n * `COMPOSED` {`boolean`} - \n\n * `CANCELABLE` {`boolean`} - ",
|
|
155
|
+
"attributes": [
|
|
156
|
+
{
|
|
157
|
+
"name": "nav-collapsed",
|
|
158
|
+
"description": "`nav-collapsed` {`boolean`} - The user's nav preference. The nav can still render as a rail while this is\nfalse — see `navLocked`.\n\nProperty: navCollapsed\n\nDefault: false",
|
|
159
|
+
"valueSet": "v"
|
|
160
|
+
},
|
|
161
|
+
{
|
|
162
|
+
"name": "panel-open",
|
|
163
|
+
"description": "`panel-open` {`boolean`} - Whether the AI panel is open.\n\nProperty: panelOpen\n\nDefault: false",
|
|
164
|
+
"valueSet": "v"
|
|
165
|
+
},
|
|
166
|
+
{
|
|
167
|
+
"name": "no-panel",
|
|
168
|
+
"description": "`no-panel` {`boolean`} - Unmounts the AI panel for this route even when the `panel` slot is filled.\n`openPanel()` becomes a no-op.\n\nProperty: noPanel\n\nDefault: false",
|
|
169
|
+
"valueSet": "v"
|
|
170
|
+
},
|
|
171
|
+
{
|
|
172
|
+
"name": "panel-label",
|
|
173
|
+
"description": "`panel-label` {`string`} - The default panel heading. Ignored when `panel-header` is slotted.\n\nProperty: panelLabel\n\nDefault: Ask Aquera"
|
|
174
|
+
},
|
|
175
|
+
{
|
|
176
|
+
"name": "no-nav-toggle",
|
|
177
|
+
"description": "`no-nav-toggle` {`boolean`} - Hides the built-in nav toggle. Mount `nile-app-shell-nav-toggle` yourself.\n\nProperty: noNavToggle\n\nDefault: false",
|
|
178
|
+
"valueSet": "v"
|
|
179
|
+
},
|
|
180
|
+
{
|
|
181
|
+
"name": "no-panel-shortcut",
|
|
182
|
+
"description": "`no-panel-shortcut` {`boolean`} - Drops the Cmd/Ctrl+J and Escape panel shortcuts.\n\nProperty: noPanelShortcut\n\nDefault: false",
|
|
183
|
+
"valueSet": "v"
|
|
184
|
+
},
|
|
185
|
+
{
|
|
186
|
+
"name": "no-skip-link",
|
|
187
|
+
"description": "`no-skip-link` {`boolean`} - Hides the skip-to-content link.\n\nProperty: noSkipLink\n\nDefault: false",
|
|
188
|
+
"valueSet": "v"
|
|
189
|
+
},
|
|
190
|
+
{
|
|
191
|
+
"name": "skip-link-label",
|
|
192
|
+
"description": "`skip-link-label` {`string`} - Label for the skip-to-content link.\n\nProperty: skipLinkLabel\n\nDefault: Skip to main content"
|
|
193
|
+
},
|
|
194
|
+
{
|
|
195
|
+
"name": "top-bar-placement",
|
|
196
|
+
"description": "`top-bar-placement` {`NileAppShellTopBarPlacement`} - Where the top bar is mounted: inside the container, or spanning the shell.\n\nProperty: topBarPlacement\n\nDefault: content",
|
|
197
|
+
"values": [
|
|
198
|
+
{
|
|
199
|
+
"name": "content"
|
|
200
|
+
},
|
|
201
|
+
{
|
|
202
|
+
"name": "shell"
|
|
203
|
+
}
|
|
204
|
+
]
|
|
205
|
+
},
|
|
206
|
+
{
|
|
207
|
+
"name": "content-align",
|
|
208
|
+
"description": "`content-align` {`NileAppShellContentAlign`} - `centered` caps the page body at `--nile-app-shell-centered-width`.\n\nProperty: contentAlign\n\nDefault: fluid",
|
|
209
|
+
"values": [
|
|
210
|
+
{
|
|
211
|
+
"name": "fluid"
|
|
212
|
+
},
|
|
213
|
+
{
|
|
214
|
+
"name": "centered"
|
|
215
|
+
}
|
|
216
|
+
]
|
|
217
|
+
},
|
|
218
|
+
{
|
|
219
|
+
"name": "content-container",
|
|
220
|
+
"description": "`content-container` {`boolean`} - Makes the slotted page root a size query container, so page CSS can size\nagainst the content container instead of the viewport. Query it unnamed —\n`@container (min-width: 720px)` — because a container name declared inside\nthe shell's shadow tree is not visible to page CSS. Opt-in, because it\nalso applies layout containment to that element.\n\nProperty: contentContainer\n\nDefault: false",
|
|
221
|
+
"valueSet": "v"
|
|
222
|
+
},
|
|
223
|
+
{
|
|
224
|
+
"name": "flat",
|
|
225
|
+
"description": "`flat` {`boolean`} - Drops the container's card chrome for a full-bleed page.\n\nProperty: flat\n\nDefault: false",
|
|
226
|
+
"valueSet": "v"
|
|
227
|
+
},
|
|
228
|
+
{
|
|
229
|
+
"name": "no-padding",
|
|
230
|
+
"description": "`no-padding` {`boolean`} - Removes the container's inner padding.\n\nProperty: noPadding\n\nDefault: false",
|
|
231
|
+
"valueSet": "v"
|
|
232
|
+
},
|
|
233
|
+
{
|
|
234
|
+
"name": "ask-label",
|
|
235
|
+
"description": "`ask-label` {`string`} - The label on the built-in Ask button.\n\nThe button is the shell's, not the app's: it is the one control that has\nto know whether a panel is mounted for this route and how to open it, and\nslotted content can see neither. Everything else in the bar — the\nbreadcrumb, the page actions, the tab strip — is slotted markup.\n\nProperty: askLabel\n\nDefault: Ask"
|
|
236
|
+
},
|
|
237
|
+
{
|
|
238
|
+
"name": "no-ask",
|
|
239
|
+
"description": "`no-ask` {`boolean`} - Drops the built-in Ask button, for a bar that renders its own.\n\nProperty: noAsk\n\nDefault: false",
|
|
240
|
+
"valueSet": "v"
|
|
241
|
+
},
|
|
242
|
+
{
|
|
243
|
+
"name": "full-height",
|
|
244
|
+
"description": "`full-height` {`boolean`} - Sizes the shell to the viewport instead of its parent.\n\nProperty: fullHeight\n\nDefault: false",
|
|
245
|
+
"valueSet": "v"
|
|
246
|
+
},
|
|
247
|
+
{
|
|
248
|
+
"name": "overlay-breakpoint",
|
|
249
|
+
"description": "`overlay-breakpoint` {`number`} - Below this shell width the panel overlays the content instead of pushing\nit, and the nav is forced to a rail.\n\nZero — the default — means never: the panel is furniture that squeezes the\npage, at every width. It earns its room from the nav rail first and from\nits own width next (see `--nile-app-shell-panel-min-width`), so it does\nnot have to cover the page to fit. Set a width here to opt back into an\noverlay drawer below it.\n\nProperty: overlayBreakpoint\n\nDefault: 0"
|
|
250
|
+
},
|
|
251
|
+
{
|
|
252
|
+
"name": "docked-rail-breakpoint",
|
|
253
|
+
"description": "`docked-rail-breakpoint` {`number`} - Below this shell width an open docked panel forces the nav to a rail.\nA floor, not the whole rule: the nav also rails as soon as the expanded\ntrack is what stops the row from fitting. This is the first thing the\npanel takes room from, so it can push rather than cover.\n\nProperty: dockedRailBreakpoint\n\nDefault: 1440"
|
|
254
|
+
},
|
|
255
|
+
{
|
|
256
|
+
"name": "persist-key",
|
|
257
|
+
"description": "`persist-key` {`string | undefined`} - Persists the nav preference and the docked panel state under this key.\nOverlay panel state is never persisted — a reload opens closed.\n\nProperty: persistKey",
|
|
258
|
+
"values": []
|
|
259
|
+
},
|
|
260
|
+
{
|
|
261
|
+
"name": "onnile-nav-toggle",
|
|
262
|
+
"description": "`nile-nav-toggle` {} - Emitted after the nav's collapsed state or its\nforced-rail lock changes. `detail: { collapsed, locked }`."
|
|
263
|
+
},
|
|
264
|
+
{
|
|
265
|
+
"name": "onnile-panel-toggle",
|
|
266
|
+
"description": "`nile-panel-toggle` {} - Emitted after the panel opens or closes.\n`detail: { open, mode }`."
|
|
267
|
+
},
|
|
268
|
+
{
|
|
269
|
+
"name": "onnile-panel-mode-change",
|
|
270
|
+
"description": "`nile-panel-mode-change` {} - Emitted when the panel flips between docked\nand overlay. `detail: { mode }`."
|
|
271
|
+
}
|
|
272
|
+
]
|
|
273
|
+
},
|
|
63
274
|
{
|
|
64
275
|
"name": "nile-auto-complete",
|
|
65
276
|
"description": "Attributes:\n\n * `disabled` {`boolean`} - \n\n * `isDropdownOpen` {`boolean`} - \n\n * `portal` {`boolean`} - When true, the dropdown menu will be appended to the document body instead of the parent container.\nThis is useful when the parent has overflow: hidden, clip-path, or transform applied.\n\n * `enableVirtualScroll` {`boolean`} - \n\n * `openOnFocus` {`boolean`} - \n\n * `value` {`string`} - \n\n * `placeholder` {`string`} - \n\n * `noBorder` {`boolean`} - \n\n * `noOutline` {`boolean`} - \n\n * `noPadding` {`boolean`} - \n\n * `loading` {`boolean`} - \n\n * `allMenuItems` - \n\n * `enableVisibilityEffect` {`boolean`} - \n\n * `enableTabClose` {`boolean`} - \n\n * `noDropdownClose` {`boolean`} - \n\n * `label` {`string`} - \n\nProperties:\n\n * `styles` - \n\n * `visibilityManager` - \n\n * `dropdownElement` - \n\n * `inputElement` - \n\n * `disabled` {`boolean`} - \n\n * `isDropdownOpen` {`boolean`} - \n\n * `portal` {`boolean`} - When true, the dropdown menu will be appended to the document body instead of the parent container.\nThis is useful when the parent has overflow: hidden, clip-path, or transform applied.\n\n * `portalManager` - \n\n * `enableVirtualScroll` {`boolean`} - \n\n * `openOnFocus` {`boolean`} - \n\n * `value` {`string`} - \n\n * `placeholder` {`string`} - \n\n * `noBorder` {`boolean`} - \n\n * `noOutline` {`boolean`} - \n\n * `noPadding` {`boolean`} - \n\n * `loading` {`boolean`} - \n\n * `filterFunction` - \n\n * `renderItemFunction` - \n\n * `allMenuItems` - \n\n * `enableVisibilityEffect` {`boolean`} - \n\n * `enableTabClose` {`boolean`} - \n\n * `noDropdownClose` {`boolean`} - \n\n * `label` {`string`} - \n\n * `menuItems` - \n\n * `handleWindowResize` - \n\n * `handleWindowScroll` - \n\n * `BUBBLES` {`boolean`} - \n\n * `COMPOSED` {`boolean`} - \n\n * `CANCELABLE` {`boolean`} - ",
|
|
@@ -2537,7 +2748,7 @@
|
|
|
2537
2748
|
},
|
|
2538
2749
|
{
|
|
2539
2750
|
"name": "nile-empty-state",
|
|
2540
|
-
"description": "Nile empty-state component.\n\nAttributes:\n\n * `size` {`\"sm\" | \"md\" | \"lg\"`} - \n\n * `variant` {`\"
|
|
2751
|
+
"description": "Nile empty-state component.\n\nAttributes:\n\n * `size` {`\"sm\" | \"md\" | \"lg\"`} - \n\n * `variant` {`\"content\" | \"flat\" | \"tonal\"`} - \n\n * `status` {`\"error\" | \"empty\" | \"no-results\" | \"not-found\" | \"no-access\" | \"offline\" | undefined`} - \n\n * `layout` {`NileEmptyStateLayout`} - \n\n * `code` {`string | undefined`} - \n\n * `bordered` {`boolean`} - \n\n * `svgIconUrl` {`string`} - \n\n * `svgIconSize` {`number | undefined`} - Overrides the layout-driven glyph size for a custom `svgIconUrl`. Left unset,\nthe SVG matches whatever size the current variant/layout draws at.\n\n * `svgIconColor` {`string`} - \n\n * `icon` {`string`} - \n\n * `text` {`string`} - Headline. Resolves through the `status` preset to `DEFAULT_TEXT`.\n\n * `sub-text` {`string`} - Supporting line. Resolves through the `status` preset to `DEFAULT_SUB_TEXT`.\n\n * `tone` {`NileEmptyStateTone`} - \n\nProperties:\n\n * `size` {`\"sm\" | \"md\" | \"lg\"`} - \n\n * `variant` {`\"content\" | \"flat\" | \"tonal\"`} - \n\n * `status` {`\"error\" | \"empty\" | \"no-results\" | \"not-found\" | \"no-access\" | \"offline\" | undefined`} - \n\n * `layout` {`NileEmptyStateLayout`} - \n\n * `code` {`string | undefined`} - \n\n * `bordered` {`boolean`} - \n\n * `svgIconUrl` {`string`} - \n\n * `svgIconSize` {`number | undefined`} - Overrides the layout-driven glyph size for a custom `svgIconUrl`. Left unset,\nthe SVG matches whatever size the current variant/layout draws at.\n\n * `svgIconColor` {`string`} - \n\n * `_icon` {`string | undefined`} - \n\n * `_text` {`string | undefined`} - \n\n * `_subText` {`string | undefined`} - \n\n * `_tone` {`\"warning\" | \"error\" | \"info\" | \"neutral\" | undefined`} - \n\n * `icon` {`string`} - \n\n * `text` {`string`} - Headline. Resolves through the `status` preset to `DEFAULT_TEXT`.\n\n * `subText` {`string`} - Supporting line. Resolves through the `status` preset to `DEFAULT_SUB_TEXT`.\n\n * `tone` {`NileEmptyStateTone`} - \n\n * `preset` {`StatusPreset | undefined`} - The preset backing the current `status`, or undefined when none is set.\n\n * `glyphColor` {`string | undefined`} - \n\n * `liveRegion` {`{ role: string; live: string; } | undefined`} - ARIA wiring\n\n * `BUBBLES` {`boolean`} - \n\n * `COMPOSED` {`boolean`} - \n\n * `CANCELABLE` {`boolean`} - ",
|
|
2541
2752
|
"attributes": [
|
|
2542
2753
|
{
|
|
2543
2754
|
"name": "size",
|
|
@@ -2556,13 +2767,13 @@
|
|
|
2556
2767
|
},
|
|
2557
2768
|
{
|
|
2558
2769
|
"name": "variant",
|
|
2559
|
-
"description": "`variant` {`\"
|
|
2770
|
+
"description": "`variant` {`\"content\" | \"flat\" | \"tonal\"`} - \n\nProperty: variant\n\nDefault: tonal",
|
|
2560
2771
|
"values": [
|
|
2561
2772
|
{
|
|
2562
|
-
"name": "
|
|
2773
|
+
"name": "content"
|
|
2563
2774
|
},
|
|
2564
2775
|
{
|
|
2565
|
-
"name": "
|
|
2776
|
+
"name": "flat"
|
|
2566
2777
|
},
|
|
2567
2778
|
{
|
|
2568
2779
|
"name": "tonal"
|
|
@@ -5221,7 +5432,7 @@
|
|
|
5221
5432
|
},
|
|
5222
5433
|
{
|
|
5223
5434
|
"name": "distance",
|
|
5224
|
-
"description": "`distance` {`number`} - The distance in pixels from which to offset the popover away from its target.\n\nProperty: distance\n\nDefault:
|
|
5435
|
+
"description": "`distance` {`number`} - The distance in pixels from which to offset the popover away from its target.\n\nProperty: distance\n\nDefault: 12"
|
|
5225
5436
|
},
|
|
5226
5437
|
{
|
|
5227
5438
|
"name": "preventOverlayClose",
|