@aquera/nile-elements 2.0.6 → 2.0.7
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 +3 -0
- package/dist/index.js +15 -5
- package/dist/nile-side-bar-footer/nile-side-bar-footer.cjs.js +1 -1
- package/dist/nile-side-bar-footer/nile-side-bar-footer.cjs.js.map +1 -1
- package/dist/nile-side-bar-footer/nile-side-bar-footer.css.cjs.js +1 -1
- package/dist/nile-side-bar-footer/nile-side-bar-footer.css.cjs.js.map +1 -1
- package/dist/nile-side-bar-footer/nile-side-bar-footer.css.esm.js +5 -0
- package/dist/nile-side-bar-footer/nile-side-bar-footer.esm.js +2 -2
- package/dist/nile-side-bar-header/nile-side-bar-header.cjs.js +1 -1
- package/dist/nile-side-bar-header/nile-side-bar-header.cjs.js.map +1 -1
- package/dist/nile-side-bar-header/nile-side-bar-header.css.cjs.js +1 -1
- package/dist/nile-side-bar-header/nile-side-bar-header.css.cjs.js.map +1 -1
- package/dist/nile-side-bar-header/nile-side-bar-header.css.esm.js +5 -0
- package/dist/nile-side-bar-header/nile-side-bar-header.esm.js +2 -2
- package/dist/src/nile-side-bar-footer/nile-side-bar-footer.css.js +5 -0
- package/dist/src/nile-side-bar-footer/nile-side-bar-footer.css.js.map +1 -1
- package/dist/src/nile-side-bar-footer/nile-side-bar-footer.d.ts +10 -0
- package/dist/src/nile-side-bar-footer/nile-side-bar-footer.js +17 -1
- package/dist/src/nile-side-bar-footer/nile-side-bar-footer.js.map +1 -1
- package/dist/src/nile-side-bar-footer/nile-side-bar-footer.test.d.ts +1 -0
- package/dist/src/nile-side-bar-footer/nile-side-bar-footer.test.js +42 -0
- package/dist/src/nile-side-bar-footer/nile-side-bar-footer.test.js.map +1 -0
- package/dist/src/nile-side-bar-header/nile-side-bar-app-shell.test.d.ts +4 -0
- package/dist/src/nile-side-bar-header/nile-side-bar-app-shell.test.js +68 -0
- package/dist/src/nile-side-bar-header/nile-side-bar-app-shell.test.js.map +1 -0
- package/dist/src/nile-side-bar-header/nile-side-bar-header.css.js +5 -0
- package/dist/src/nile-side-bar-header/nile-side-bar-header.css.js.map +1 -1
- package/dist/src/nile-side-bar-header/nile-side-bar-header.d.ts +9 -0
- package/dist/src/nile-side-bar-header/nile-side-bar-header.js +17 -1
- package/dist/src/nile-side-bar-header/nile-side-bar-header.js.map +1 -1
- package/dist/src/nile-side-bar-header/nile-side-bar-header.test.d.ts +1 -0
- package/dist/src/nile-side-bar-header/nile-side-bar-header.test.js +42 -0
- package/dist/src/nile-side-bar-header/nile-side-bar-header.test.js.map +1 -0
- package/dist/src/version.js +1 -1
- package/dist/src/version.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +1 -1
- package/src/nile-side-bar-footer/nile-side-bar-footer.css.ts +5 -0
- package/src/nile-side-bar-footer/nile-side-bar-footer.test.ts +55 -0
- package/src/nile-side-bar-footer/nile-side-bar-footer.ts +12 -1
- package/src/nile-side-bar-header/nile-side-bar-app-shell.test.ts +78 -0
- package/src/nile-side-bar-header/nile-side-bar-header.css.ts +5 -0
- package/src/nile-side-bar-header/nile-side-bar-header.test.ts +55 -0
- package/src/nile-side-bar-header/nile-side-bar-header.ts +10 -0
- package/vscode-html-custom-data.json +30 -4
package/README.md
CHANGED
|
@@ -91,6 +91,9 @@ To run a local development server that serves the basic demo located in `demo/in
|
|
|
91
91
|
|
|
92
92
|
In this section, you can find the updates for each release of `nile-elements`. It's a good practice to maintain detailed release notes to help users and developers understand what changes have been made from one version to another and how these changes might affect their projects.
|
|
93
93
|
|
|
94
|
+
#### Version 2.0.7 (September 07, 2026)
|
|
95
|
+
- Nile Side Bar Header & Nile Side Bar Footer: Added a `background` property. The default keeps the sidebar surface color, and `background="transparent"` drops it so whatever sits behind the header/footer shows through (UIF-1347)
|
|
96
|
+
|
|
94
97
|
#### Version 2.0.6 (September 07, 2026)
|
|
95
98
|
- Nile Floating Panel: Fixed the arrow leaving a gap in the panel border — (UIF-1341)
|
|
96
99
|
- Nile Popover: Fixed the panel border cutting across the base of the arrow (UIF-1342)
|
package/dist/index.js
CHANGED
|
@@ -19274,7 +19274,7 @@ nile-rich-text-editor[disabled] .editor figure.rte-image {
|
|
|
19274
19274
|
${this._renderTrigger()}
|
|
19275
19275
|
${e}
|
|
19276
19276
|
</nile-popover>
|
|
19277
|
-
`:e}};e([de({type:String,attribute:!0,reflect:!0})],NS.prototype,"type",void 0),e([de({type:String,attribute:!0,reflect:!0})],NS.prototype,"value",void 0),e([de({type:String,reflect:!0})],NS.prototype,"swatchTooltip",void 0),e([de({type:Number,reflect:!0})],NS.prototype,"recentColorsCount",void 0),e([de({type:Boolean,reflect:!0})],NS.prototype,"noFill",void 0),e([de({type:String,reflect:!0})],NS.prototype,"mode",void 0),e([de({type:Boolean,reflect:!0})],NS.prototype,"showCanvas",void 0),e([de({type:Boolean,reflect:!0})],NS.prototype,"showHue",void 0),e([de({type:Boolean,reflect:!0})],NS.prototype,"showInputs",void 0),e([de({type:Boolean,reflect:!0})],NS.prototype,"showActions",void 0),e([de({type:Boolean,reflect:!0,attribute:!0})],NS.prototype,"open",void 0),e([de({attribute:"palette",converter:{fromAttribute:e=>{try{const t=JSON.parse(e);return Array.isArray(t)?t.map((e=>"string"==typeof e?{color:e,name:e}:e&&"string"==typeof e.color?{color:e.color,name:e.name||e.color}:null)).filter(Boolean):[]}catch{return[]}},toAttribute:e=>JSON.stringify(e)}})],NS.prototype,"palette",void 0),e([he()],NS.prototype,"_view",void 0),e([he()],NS.prototype,"_recentColors",void 0),e([he()],NS.prototype,"_hue",void 0),e([he()],NS.prototype,"_sat",void 0),e([he()],NS.prototype,"_val",void 0),e([he()],NS.prototype,"_colorMode",void 0),e([he()],NS.prototype,"_hexInput",void 0),e([he()],NS.prototype,"_r",void 0),e([he()],NS.prototype,"_g",void 0),e([he()],NS.prototype,"_b",void 0),NS=e([ce("nile-color-picker")],NS);function pS(){return function(){if("undefined"==typeof window||"function"!=typeof getComputedStyle)return null;try{return getComputedStyle(document.documentElement).getPropertyValue("--nile-version").trim().replace(/^["']|["']$/g,"")||null}catch{return null}}()??"1.3.2"}if("undefined"!=typeof window){window.nileElementsVersion='"2.0.
|
|
19277
|
+
`:e}};e([de({type:String,attribute:!0,reflect:!0})],NS.prototype,"type",void 0),e([de({type:String,attribute:!0,reflect:!0})],NS.prototype,"value",void 0),e([de({type:String,reflect:!0})],NS.prototype,"swatchTooltip",void 0),e([de({type:Number,reflect:!0})],NS.prototype,"recentColorsCount",void 0),e([de({type:Boolean,reflect:!0})],NS.prototype,"noFill",void 0),e([de({type:String,reflect:!0})],NS.prototype,"mode",void 0),e([de({type:Boolean,reflect:!0})],NS.prototype,"showCanvas",void 0),e([de({type:Boolean,reflect:!0})],NS.prototype,"showHue",void 0),e([de({type:Boolean,reflect:!0})],NS.prototype,"showInputs",void 0),e([de({type:Boolean,reflect:!0})],NS.prototype,"showActions",void 0),e([de({type:Boolean,reflect:!0,attribute:!0})],NS.prototype,"open",void 0),e([de({attribute:"palette",converter:{fromAttribute:e=>{try{const t=JSON.parse(e);return Array.isArray(t)?t.map((e=>"string"==typeof e?{color:e,name:e}:e&&"string"==typeof e.color?{color:e.color,name:e.name||e.color}:null)).filter(Boolean):[]}catch{return[]}},toAttribute:e=>JSON.stringify(e)}})],NS.prototype,"palette",void 0),e([he()],NS.prototype,"_view",void 0),e([he()],NS.prototype,"_recentColors",void 0),e([he()],NS.prototype,"_hue",void 0),e([he()],NS.prototype,"_sat",void 0),e([he()],NS.prototype,"_val",void 0),e([he()],NS.prototype,"_colorMode",void 0),e([he()],NS.prototype,"_hexInput",void 0),e([he()],NS.prototype,"_r",void 0),e([he()],NS.prototype,"_g",void 0),e([he()],NS.prototype,"_b",void 0),NS=e([ce("nile-color-picker")],NS);function pS(){return function(){if("undefined"==typeof window||"function"!=typeof getComputedStyle)return null;try{return getComputedStyle(document.documentElement).getPropertyValue("--nile-version").trim().replace(/^["']|["']$/g,"")||null}catch{return null}}()??"1.3.2"}if("undefined"!=typeof window){window.nileElementsVersion='"2.0.7"';let e=null;Object.defineProperty(window,"nileVersion",{configurable:!0,get:()=>e??pS(),set:t=>{e=t}}),window.process=window.process||{env:{NODE_ENV:"production"}}}const DS=s`
|
|
19278
19278
|
:host {
|
|
19279
19279
|
/* Geometry. Values come from design tokens wherever one exists; the bare
|
|
19280
19280
|
pixels are shell geometry with no matching token. */
|
|
@@ -20367,6 +20367,11 @@ nile-rich-text-editor[disabled] .editor figure.rte-image {
|
|
|
20367
20367
|
background: var(--nile-colors-neutral-100, var(--ng-colors-bg-primary));
|
|
20368
20368
|
}
|
|
20369
20369
|
|
|
20370
|
+
/* Opt-in: drop the surface color so the header sits on whatever is behind it. */
|
|
20371
|
+
:host([background='transparent']) {
|
|
20372
|
+
background: transparent;
|
|
20373
|
+
}
|
|
20374
|
+
|
|
20370
20375
|
.header-content {
|
|
20371
20376
|
display: flex;
|
|
20372
20377
|
align-items: center;
|
|
@@ -20399,12 +20404,12 @@ nile-rich-text-editor[disabled] .editor figure.rte-image {
|
|
|
20399
20404
|
gap: var(--nile-spacing-md);
|
|
20400
20405
|
}
|
|
20401
20406
|
|
|
20402
|
-
`;let kS=class extends Ge{static get styles(){return[SS]}render(){return R`
|
|
20407
|
+
`;let kS=class extends Ge{constructor(){super(...arguments),this.background="default"}static get styles(){return[SS]}render(){return R`
|
|
20403
20408
|
<div class="header-content" part="header-content">
|
|
20404
20409
|
<slot name="logo" part="logo"></slot>
|
|
20405
20410
|
<slot name="expand" part="expand"></slot>
|
|
20406
20411
|
</div>
|
|
20407
|
-
`}};kS=e([ce("nile-side-bar-header")],kS);const ES=s`
|
|
20412
|
+
`}};e([de({type:String,reflect:!0,attribute:!0})],kS.prototype,"background",void 0),kS=e([ce("nile-side-bar-header")],kS);const ES=s`
|
|
20408
20413
|
:host {
|
|
20409
20414
|
justify-content: center;
|
|
20410
20415
|
height: 100%;
|
|
@@ -20714,6 +20719,11 @@ justify-content: center;
|
|
|
20714
20719
|
background: var(--nile-colors-neutral-100, var(--ng-colors-bg-primary));
|
|
20715
20720
|
}
|
|
20716
20721
|
|
|
20722
|
+
/* Opt-in: drop the surface color so the footer sits on whatever is behind it. */
|
|
20723
|
+
:host([background='transparent']) {
|
|
20724
|
+
background: transparent;
|
|
20725
|
+
}
|
|
20726
|
+
|
|
20717
20727
|
.footer {
|
|
20718
20728
|
display: flex;
|
|
20719
20729
|
flex-direction: column;
|
|
@@ -20738,11 +20748,11 @@ justify-content: center;
|
|
|
20738
20748
|
|
|
20739
20749
|
|
|
20740
20750
|
|
|
20741
|
-
`;let GS=class extends Ge{static get styles(){return[$S]}render(){return R`
|
|
20751
|
+
`;let GS=class extends Ge{constructor(){super(...arguments),this.background="default"}static get styles(){return[$S]}render(){return R`
|
|
20742
20752
|
<div part="base" class="footer">
|
|
20743
20753
|
<slot> </slot>
|
|
20744
20754
|
</div>
|
|
20745
|
-
`}};GS=e([ce("nile-side-bar-footer")],GS);const FS=s`
|
|
20755
|
+
`}};e([de({type:String,reflect:!0,attribute:!0})],GS.prototype,"background",void 0),GS=e([ce("nile-side-bar-footer")],GS);const FS=s`
|
|
20746
20756
|
:host {
|
|
20747
20757
|
display: block;
|
|
20748
20758
|
width: 100%;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
function _typeof(o){"@babel/helpers - typeof";return _typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(o){return typeof o;}:function(o){return o&&"function"==typeof Symbol&&o.constructor===Symbol&&o!==Symbol.prototype?"symbol":typeof o;},_typeof(o);}System.register(["tslib","lit","lit/decorators.js","./nile-side-bar-footer.css.cjs.js","../internal/nile-element.cjs.js","../internal/accessibility/a11y.state.enum.cjs.js","../internal/accessibility/a11y.property.enum.cjs.js","../internal/accessibility/role.enum.cjs.js"],function(_export,_context){"use strict";var
|
|
1
|
+
function _typeof(o){"@babel/helpers - typeof";return _typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(o){return typeof o;}:function(o){return o&&"function"==typeof Symbol&&o.constructor===Symbol&&o!==Symbol.prototype?"symbol":typeof o;},_typeof(o);}System.register(["tslib","lit","lit/decorators.js","./nile-side-bar-footer.css.cjs.js","../internal/nile-element.cjs.js","../internal/accessibility/a11y.state.enum.cjs.js","../internal/accessibility/a11y.property.enum.cjs.js","../internal/accessibility/role.enum.cjs.js"],function(_export,_context){"use strict";var t,e,r,s,i,o,_templateObject,a;function _taggedTemplateLiteral(e,t){return t||(t=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}}));}function _classCallCheck(a,n){if(!(a instanceof n))throw new TypeError("Cannot call a class as a function");}function _defineProperties(e,r){for(var t=0;t<r.length;t++){var o=r[t];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(e,_toPropertyKey(o.key),o);}}function _createClass(e,r,t){return r&&_defineProperties(e.prototype,r),t&&_defineProperties(e,t),Object.defineProperty(e,"prototype",{writable:!1}),e;}function _toPropertyKey(t){var i=_toPrimitive(t,"string");return"symbol"==_typeof(i)?i:i+"";}function _toPrimitive(t,r){if("object"!=_typeof(t)||!t)return t;var e=t[Symbol.toPrimitive];if(void 0!==e){var i=e.call(t,r||"default");if("object"!=_typeof(i))return i;throw new TypeError("@@toPrimitive must return a primitive value.");}return("string"===r?String:Number)(t);}function _callSuper(t,o,e){return o=_getPrototypeOf(o),_possibleConstructorReturn(t,_isNativeReflectConstruct()?Reflect.construct(o,e||[],_getPrototypeOf(t).constructor):o.apply(t,e));}function _possibleConstructorReturn(t,e){if(e&&("object"==_typeof(e)||"function"==typeof e))return e;if(void 0!==e)throw new TypeError("Derived constructors may only return object or undefined");return _assertThisInitialized(t);}function _assertThisInitialized(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e;}function _isNativeReflectConstruct(){try{var t=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}));}catch(t){}return(_isNativeReflectConstruct=function _isNativeReflectConstruct(){return!!t;})();}function _getPrototypeOf(t){return _getPrototypeOf=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(t){return t.__proto__||Object.getPrototypeOf(t);},_getPrototypeOf(t);}function _inherits(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),Object.defineProperty(t,"prototype",{writable:!1}),e&&_setPrototypeOf(t,e);}function _setPrototypeOf(t,e){return _setPrototypeOf=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(t,e){return t.__proto__=e,t;},_setPrototypeOf(t,e);}return{setters:[function(_tslib){t=_tslib.__decorate;},function(_lit){e=_lit.html;},function(_litDecoratorsJs){r=_litDecoratorsJs.property;s=_litDecoratorsJs.customElement;},function(_nileSideBarFooterCssCjsJs){i=_nileSideBarFooterCssCjsJs.s;},function(_internalNileElementCjsJs){o=_internalNileElementCjsJs.N;},function(_internalAccessibilityA11yStateEnumCjsJs){},function(_internalAccessibilityA11yPropertyEnumCjsJs){},function(_internalAccessibilityRoleEnumCjsJs){}],execute:function execute(){_export("N",a=/*#__PURE__*/function(_o){function a(){var _this;_classCallCheck(this,a);_this=_callSuper(this,a,arguments),_this.background="default";return _this;}_inherits(a,_o);return _createClass(a,[{key:"render",value:function render(){return e(_templateObject||(_templateObject=_taggedTemplateLiteral(["\n <div part=\"base\" class=\"footer\">\n <slot> </slot>\n </div>\n "])));}}],[{key:"styles",get:function get(){return[i];}}]);}(o));t([r({type:String,reflect:!0,attribute:!0})],a.prototype,"background",void 0),_export("N",a=t([s("nile-side-bar-footer")],a));}};});
|
|
2
2
|
//# sourceMappingURL=nile-side-bar-footer.cjs.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nile-side-bar-footer.cjs.js","sources":["../../../src/nile-side-bar-footer/nile-side-bar-footer.ts"],"sourcesContent":["/**\n * Copyright Aquera Inc 2023\n *\n * This source code is licensed under the BSD-3-Clause license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport { html, CSSResultArray, TemplateResult } from 'lit';\nimport { customElement } from 'lit/decorators.js';\nimport { styles } from './nile-side-bar-footer.css';\nimport NileElement from '../internal/nile-element';\n\n/**\n * Nile side-bar-footer component.\n *\n * @tag nile-side-bar-footer\n *\n * @slot icon - Slot for footer icon\n * @slot text - Slot for footer text\n */\n@customElement('nile-side-bar-footer')\nexport class NileSideBarFooter extends NileElement {\n public static get styles(): CSSResultArray {\n return [styles];\n }\n\n public render(): TemplateResult {\n return html`\n <div part=\"base\" class=\"footer\">\n <slot> </slot>\n </div>\n `;\n }\n}\n\nexport default NileSideBarFooter;\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'nile-side-bar-footer': NileSideBarFooter;\n }\n}\n"],"names":["NileSideBarFooter","
|
|
1
|
+
{"version":3,"file":"nile-side-bar-footer.cjs.js","sources":["../../../src/nile-side-bar-footer/nile-side-bar-footer.ts"],"sourcesContent":["/**\n * Copyright Aquera Inc 2023\n *\n * This source code is licensed under the BSD-3-Clause license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport { html, CSSResultArray, TemplateResult } from 'lit';\nimport { customElement, property } from 'lit/decorators.js';\nimport { styles } from './nile-side-bar-footer.css';\nimport NileElement from '../internal/nile-element';\n\n/**\n * Nile side-bar-footer component.\n *\n * @tag nile-side-bar-footer\n *\n * @slot icon - Slot for footer icon\n * @slot text - Slot for footer text\n *\n * @attr background - Background treatment of the footer (\"default\" | \"transparent\").\n * Defaults to \"default\", which paints the sidebar surface color. Set to\n * \"transparent\" to drop the background so whatever sits behind the footer shows\n * through.\n */\n@customElement('nile-side-bar-footer')\nexport class NileSideBarFooter extends NileElement {\n /**\n * Background treatment of the footer. `default` keeps the sidebar surface\n * color; `transparent` removes it.\n */\n @property({ type: String, reflect: true, attribute: true }) background: 'default' | 'transparent' = 'default';\n\n public static get styles(): CSSResultArray {\n return [styles];\n }\n\n public render(): TemplateResult {\n return html`\n <div part=\"base\" class=\"footer\">\n <slot> </slot>\n </div>\n `;\n }\n}\n\nexport default NileSideBarFooter;\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'nile-side-bar-footer': NileSideBarFooter;\n }\n}\n"],"names":["NileSideBarFooter","a","constructor","this","background","_this","_inherits","_o","_createClass","key","value","render","html","_templateObject","_taggedTemplateLiteral","get","styles","NileElement","__decorate","property","type","String","reflect","attribute","prototype","customElement"],"mappings":"q8GA0BaA,4BAAN,SAAAC,EAAA,CAAAC,KAAAA,KAAAA,CAAAA,eAAAA,MAAAA,CAAAA,qCAKuDC,KAAAA,CAAUC,UAAAA,CAA8B,SAarG,QAAAC,KAAA,EAXQC,SAAA,CAAAL,CAAA,CAAAM,EAAA,SAAAC,YAAA,CAAAP,CAAA,GAAAQ,GAAA,UAAAC,KAAA,CAIA,SAAAC,MAAAA,CAAAA,CAAAA,CACL,MAAOC,CAAAA,CAAI,CAAAC,eAAA,GAAAA,eAAA,CAAAC,sBAAA,+FAKZ,CAAA,KAAAL,GAAA,UAAAM,GAAA,CAVM,SAAAA,IAAA,CACL,CAAA,MAAO,CAACC,CACT,CAAA,EAEM,MAX8BC,CAAAA,GAKuBC,EAAA,CAA3DC,CAAAA,CAAS,CAAEC,IAAMC,CAAAA,MAAAA,CAAQC,SAAS,CAAMC,CAAAA,SAAAA,CAAAA,CAAW,KAA0DvB,CAAAwB,CAAAA,SAAAA,CAAA,iBAAA,EALnGxB,CAAAA,CAAAA,OAAAA,KAAAA,CAAAA,CAAiBkB,EAAA,CAD7BO,CAAAA,CAAc,yBACFzB"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
System.register(["lit"],function(_export,_context){"use strict";var a,_templateObject,n;function _taggedTemplateLiteral(e,t){return t||(t=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}}));}return{setters:[function(_lit){a=_lit.css;}],execute:function execute(){_export("s",n=a(_templateObject||(_templateObject=_taggedTemplateLiteral(["\n :host {\n display: block;\n bottom: var(--nile-spacing-md);\n padding-bottom: var(--nile-spacing-xl, var(--ng-spacing-3xl));\n\tpadding-left: var(--nile-spacing-xl, var(--ng-spacing-xl));\n\tpadding-right: var(--nile-spacing-xl, var(--ng-spacing-xl));\n padding-top: var(--nile-spacing-xs, var(--ng-spacing-xs));\n gap: var(--nile-spacing-md, var(--ng-spacing-xl));\n bottom: 0;\n background: var(--nile-colors-neutral-100, var(--ng-colors-bg-primary));\n}\n\n.footer {\n display: flex;\n flex-direction: column; \n align-items: stretch; \n gap: var(--nile-spacing-md, var(--ng-spacing-lg)); \n}\n\n::slotted(nile-side-bar-footer-item) {\n display: flex;\n align-items: center;\n gap: var(--nile-spacing-md, var(--ng-spacing-xs));\n justify-content: center;\n \n font-size: var(--nile-type-scale-3, var(--ng-font-size-text-sm));\n color: var(--nile-colors-dark-900, var(--ng-colors-text-primary-900));\n cursor: pointer;\n border-radius: var(--nile-radius-sm, var(--ng-radius-sm));\n transition: background 0.2s ease;\n}\n\n\n\n\n \n"]))));}};});
|
|
1
|
+
System.register(["lit"],function(_export,_context){"use strict";var a,_templateObject,n;function _taggedTemplateLiteral(e,t){return t||(t=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}}));}return{setters:[function(_lit){a=_lit.css;}],execute:function execute(){_export("s",n=a(_templateObject||(_templateObject=_taggedTemplateLiteral(["\n :host {\n display: block;\n bottom: var(--nile-spacing-md);\n padding-bottom: var(--nile-spacing-xl, var(--ng-spacing-3xl));\n\tpadding-left: var(--nile-spacing-xl, var(--ng-spacing-xl));\n\tpadding-right: var(--nile-spacing-xl, var(--ng-spacing-xl));\n padding-top: var(--nile-spacing-xs, var(--ng-spacing-xs));\n gap: var(--nile-spacing-md, var(--ng-spacing-xl));\n bottom: 0;\n background: var(--nile-colors-neutral-100, var(--ng-colors-bg-primary));\n}\n\n/* Opt-in: drop the surface color so the footer sits on whatever is behind it. */\n:host([background='transparent']) {\n background: transparent;\n}\n\n.footer {\n display: flex;\n flex-direction: column; \n align-items: stretch; \n gap: var(--nile-spacing-md, var(--ng-spacing-lg)); \n}\n\n::slotted(nile-side-bar-footer-item) {\n display: flex;\n align-items: center;\n gap: var(--nile-spacing-md, var(--ng-spacing-xs));\n justify-content: center;\n \n font-size: var(--nile-type-scale-3, var(--ng-font-size-text-sm));\n color: var(--nile-colors-dark-900, var(--ng-colors-text-primary-900));\n cursor: pointer;\n border-radius: var(--nile-radius-sm, var(--ng-radius-sm));\n transition: background 0.2s ease;\n}\n\n\n\n\n \n"]))));}};});
|
|
2
2
|
//# sourceMappingURL=nile-side-bar-footer.css.cjs.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nile-side-bar-footer.css.cjs.js","sources":["../../../src/nile-side-bar-footer/nile-side-bar-footer.css.ts"],"sourcesContent":["import { css } from 'lit';\n\n/**\n * SideBarFooter CSS\n */\nexport const styles = css`\n :host {\n display: block;\n bottom: var(--nile-spacing-md);\n padding-bottom: var(--nile-spacing-xl, var(--ng-spacing-3xl));\n\tpadding-left: var(--nile-spacing-xl, var(--ng-spacing-xl));\n\tpadding-right: var(--nile-spacing-xl, var(--ng-spacing-xl));\n padding-top: var(--nile-spacing-xs, var(--ng-spacing-xs));\n gap: var(--nile-spacing-md, var(--ng-spacing-xl));\n bottom: 0;\n background: var(--nile-colors-neutral-100, var(--ng-colors-bg-primary));\n}\n\n.footer {\n display: flex;\n flex-direction: column; \n align-items: stretch; \n gap: var(--nile-spacing-md, var(--ng-spacing-lg)); \n}\n\n::slotted(nile-side-bar-footer-item) {\n display: flex;\n align-items: center;\n gap: var(--nile-spacing-md, var(--ng-spacing-xs));\n justify-content: center;\n \n font-size: var(--nile-type-scale-3, var(--ng-font-size-text-sm));\n color: var(--nile-colors-dark-900, var(--ng-colors-text-primary-900));\n cursor: pointer;\n border-radius: var(--nile-radius-sm, var(--ng-radius-sm));\n transition: background 0.2s ease;\n}\n\n\n\n\n \n`;\n\nexport default [styles];\n"],"names":["styles","css","_templateObject","_taggedTemplateLiteral"],"mappings":"oTAKaA,CAAAA,CAASC,CAAG,CAAAC,eAAA,GAAAA,eAAA,CAAAC,sBAAA"}
|
|
1
|
+
{"version":3,"file":"nile-side-bar-footer.css.cjs.js","sources":["../../../src/nile-side-bar-footer/nile-side-bar-footer.css.ts"],"sourcesContent":["import { css } from 'lit';\n\n/**\n * SideBarFooter CSS\n */\nexport const styles = css`\n :host {\n display: block;\n bottom: var(--nile-spacing-md);\n padding-bottom: var(--nile-spacing-xl, var(--ng-spacing-3xl));\n\tpadding-left: var(--nile-spacing-xl, var(--ng-spacing-xl));\n\tpadding-right: var(--nile-spacing-xl, var(--ng-spacing-xl));\n padding-top: var(--nile-spacing-xs, var(--ng-spacing-xs));\n gap: var(--nile-spacing-md, var(--ng-spacing-xl));\n bottom: 0;\n background: var(--nile-colors-neutral-100, var(--ng-colors-bg-primary));\n}\n\n/* Opt-in: drop the surface color so the footer sits on whatever is behind it. */\n:host([background='transparent']) {\n background: transparent;\n}\n\n.footer {\n display: flex;\n flex-direction: column; \n align-items: stretch; \n gap: var(--nile-spacing-md, var(--ng-spacing-lg)); \n}\n\n::slotted(nile-side-bar-footer-item) {\n display: flex;\n align-items: center;\n gap: var(--nile-spacing-md, var(--ng-spacing-xs));\n justify-content: center;\n \n font-size: var(--nile-type-scale-3, var(--ng-font-size-text-sm));\n color: var(--nile-colors-dark-900, var(--ng-colors-text-primary-900));\n cursor: pointer;\n border-radius: var(--nile-radius-sm, var(--ng-radius-sm));\n transition: background 0.2s ease;\n}\n\n\n\n\n \n`;\n\nexport default [styles];\n"],"names":["styles","css","_templateObject","_taggedTemplateLiteral"],"mappings":"oTAKaA,CAAAA,CAASC,CAAG,CAAAC,eAAA,GAAAA,eAAA,CAAAC,sBAAA"}
|
|
@@ -11,6 +11,11 @@ import{css as a}from"lit";const n=a`
|
|
|
11
11
|
background: var(--nile-colors-neutral-100, var(--ng-colors-bg-primary));
|
|
12
12
|
}
|
|
13
13
|
|
|
14
|
+
/* Opt-in: drop the surface color so the footer sits on whatever is behind it. */
|
|
15
|
+
:host([background='transparent']) {
|
|
16
|
+
background: transparent;
|
|
17
|
+
}
|
|
18
|
+
|
|
14
19
|
.footer {
|
|
15
20
|
display: flex;
|
|
16
21
|
flex-direction: column;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import{__decorate as
|
|
1
|
+
import{__decorate as t}from"tslib";import{html as e}from"lit";import{property as r,customElement as s}from"lit/decorators.js";import{s as i}from"./nile-side-bar-footer.css.esm.js";import{N as o}from"../internal/nile-element.esm.js";import"../internal/accessibility/a11y.state.enum.esm.js";import"../internal/accessibility/a11y.property.enum.esm.js";import"../internal/accessibility/role.enum.esm.js";let a=class extends o{constructor(){super(...arguments),this.background="default"}static get styles(){return[i]}render(){return e`
|
|
2
2
|
<div part="base" class="footer">
|
|
3
3
|
<slot> </slot>
|
|
4
4
|
</div>
|
|
5
|
-
`}};
|
|
5
|
+
`}};t([r({type:String,reflect:!0,attribute:!0})],a.prototype,"background",void 0),a=t([s("nile-side-bar-footer")],a);export{a as N};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
function _typeof(o){"@babel/helpers - typeof";return _typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(o){return typeof o;}:function(o){return o&&"function"==typeof Symbol&&o.constructor===Symbol&&o!==Symbol.prototype?"symbol":typeof o;},_typeof(o);}System.register(["tslib","lit","lit/decorators.js","./nile-side-bar-header.css.cjs.js","../internal/nile-element.cjs.js","../internal/accessibility/a11y.state.enum.cjs.js","../internal/accessibility/a11y.property.enum.cjs.js","../internal/accessibility/role.enum.cjs.js"],function(_export,_context){"use strict";var e,
|
|
1
|
+
function _typeof(o){"@babel/helpers - typeof";return _typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(o){return typeof o;}:function(o){return o&&"function"==typeof Symbol&&o.constructor===Symbol&&o!==Symbol.prototype?"symbol":typeof o;},_typeof(o);}System.register(["tslib","lit","lit/decorators.js","./nile-side-bar-header.css.cjs.js","../internal/nile-element.cjs.js","../internal/accessibility/a11y.state.enum.cjs.js","../internal/accessibility/a11y.property.enum.cjs.js","../internal/accessibility/role.enum.cjs.js"],function(_export,_context){"use strict";var t,e,r,s,i,a,_templateObject,o;function _taggedTemplateLiteral(e,t){return t||(t=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}}));}function _classCallCheck(a,n){if(!(a instanceof n))throw new TypeError("Cannot call a class as a function");}function _defineProperties(e,r){for(var t=0;t<r.length;t++){var o=r[t];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(e,_toPropertyKey(o.key),o);}}function _createClass(e,r,t){return r&&_defineProperties(e.prototype,r),t&&_defineProperties(e,t),Object.defineProperty(e,"prototype",{writable:!1}),e;}function _toPropertyKey(t){var i=_toPrimitive(t,"string");return"symbol"==_typeof(i)?i:i+"";}function _toPrimitive(t,r){if("object"!=_typeof(t)||!t)return t;var e=t[Symbol.toPrimitive];if(void 0!==e){var i=e.call(t,r||"default");if("object"!=_typeof(i))return i;throw new TypeError("@@toPrimitive must return a primitive value.");}return("string"===r?String:Number)(t);}function _callSuper(t,o,e){return o=_getPrototypeOf(o),_possibleConstructorReturn(t,_isNativeReflectConstruct()?Reflect.construct(o,e||[],_getPrototypeOf(t).constructor):o.apply(t,e));}function _possibleConstructorReturn(t,e){if(e&&("object"==_typeof(e)||"function"==typeof e))return e;if(void 0!==e)throw new TypeError("Derived constructors may only return object or undefined");return _assertThisInitialized(t);}function _assertThisInitialized(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e;}function _isNativeReflectConstruct(){try{var t=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}));}catch(t){}return(_isNativeReflectConstruct=function _isNativeReflectConstruct(){return!!t;})();}function _getPrototypeOf(t){return _getPrototypeOf=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(t){return t.__proto__||Object.getPrototypeOf(t);},_getPrototypeOf(t);}function _inherits(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),Object.defineProperty(t,"prototype",{writable:!1}),e&&_setPrototypeOf(t,e);}function _setPrototypeOf(t,e){return _setPrototypeOf=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(t,e){return t.__proto__=e,t;},_setPrototypeOf(t,e);}return{setters:[function(_tslib){t=_tslib.__decorate;},function(_lit){e=_lit.html;},function(_litDecoratorsJs){r=_litDecoratorsJs.property;s=_litDecoratorsJs.customElement;},function(_nileSideBarHeaderCssCjsJs){i=_nileSideBarHeaderCssCjsJs.s;},function(_internalNileElementCjsJs){a=_internalNileElementCjsJs.N;},function(_internalAccessibilityA11yStateEnumCjsJs){},function(_internalAccessibilityA11yPropertyEnumCjsJs){},function(_internalAccessibilityRoleEnumCjsJs){}],execute:function execute(){_export("N",o=/*#__PURE__*/function(_a){function o(){var _this;_classCallCheck(this,o);_this=_callSuper(this,o,arguments),_this.background="default";return _this;}_inherits(o,_a);return _createClass(o,[{key:"render",value:function render(){return e(_templateObject||(_templateObject=_taggedTemplateLiteral(["\n\t\t <div class=\"header-content\" part=\"header-content\">\n <slot name=\"logo\" part=\"logo\"></slot>\n <slot name=\"expand\" part=\"expand\"></slot>\n </div>\n\t\t\t"])));}}],[{key:"styles",get:function get(){return[i];}}]);}(a));t([r({type:String,reflect:!0,attribute:!0})],o.prototype,"background",void 0),_export("N",o=t([s("nile-side-bar-header")],o));}};});
|
|
2
2
|
//# sourceMappingURL=nile-side-bar-header.cjs.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nile-side-bar-header.cjs.js","sources":["../../../src/nile-side-bar-header/nile-side-bar-header.ts"],"sourcesContent":["/**\n * Copyright Aquera Inc 2023\n *\n * This source code is licensed under the BSD-3-Clause license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport {LitElement, html, CSSResultArray, TemplateResult} from 'lit';\nimport { customElement, property} from 'lit/decorators.js';\nimport {styles} from './nile-side-bar-header.css';\nimport NileElement from '../internal/nile-element';\n\n\n/**\n * Nile side-bar-header component.\n *\n * @tag nile-side-bar-header\n *\n */\n@customElement('nile-side-bar-header')\nexport class NileSideBarHeader extends NileElement {\n\n\t/**\n\t * The styles for nile-side-bar-header\n\t * @remarks If you are extending this class you can extend the base styles with super. Eg `return [super(), myCustomStyles]`\n\t */\n\tpublic static get styles(): CSSResultArray {\n\t\treturn [styles];\n\t}\n\n\t/* #endregion */\n\n\t/* #region Methods */\n\n\t/**\n\t * Render method\n\t * @slot This is a slot test\n\t */\n\tpublic render(): TemplateResult {\n\t\treturn html`\n\t\t <div class=\"header-content\" part=\"header-content\">\n <slot name=\"logo\" part=\"logo\"></slot>\n <slot name=\"expand\" part=\"expand\"></slot>\n </div>\n\t\t\t`;\n\t}\n\n\t/* #endregion */\n}\n\nexport default NileSideBarHeader;\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'nile-side-bar-header': NileSideBarHeader;\n }\n}"],"names":["NileSideBarHeader","
|
|
1
|
+
{"version":3,"file":"nile-side-bar-header.cjs.js","sources":["../../../src/nile-side-bar-header/nile-side-bar-header.ts"],"sourcesContent":["/**\n * Copyright Aquera Inc 2023\n *\n * This source code is licensed under the BSD-3-Clause license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport {LitElement, html, CSSResultArray, TemplateResult} from 'lit';\nimport { customElement, property} from 'lit/decorators.js';\nimport {styles} from './nile-side-bar-header.css';\nimport NileElement from '../internal/nile-element';\n\n\n/**\n * Nile side-bar-header component.\n *\n * @tag nile-side-bar-header\n *\n * @attr background - Background treatment of the header (\"default\" | \"transparent\").\n * Defaults to \"default\", which paints the sidebar surface color. Set to\n * \"transparent\" to drop the background so whatever sits behind the header shows\n * through.\n */\n@customElement('nile-side-bar-header')\nexport class NileSideBarHeader extends NileElement {\n\n\t/**\n\t * Background treatment of the header. `default` keeps the sidebar surface\n\t * color; `transparent` removes it.\n\t */\n\t@property({ type: String, reflect: true, attribute: true }) background: 'default' | 'transparent' = 'default';\n\n\t/**\n\t * The styles for nile-side-bar-header\n\t * @remarks If you are extending this class you can extend the base styles with super. Eg `return [super(), myCustomStyles]`\n\t */\n\tpublic static get styles(): CSSResultArray {\n\t\treturn [styles];\n\t}\n\n\t/* #endregion */\n\n\t/* #region Methods */\n\n\t/**\n\t * Render method\n\t * @slot This is a slot test\n\t */\n\tpublic render(): TemplateResult {\n\t\treturn html`\n\t\t <div class=\"header-content\" part=\"header-content\">\n <slot name=\"logo\" part=\"logo\"></slot>\n <slot name=\"expand\" part=\"expand\"></slot>\n </div>\n\t\t\t`;\n\t}\n\n\t/* #endregion */\n}\n\nexport default NileSideBarHeader;\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'nile-side-bar-header': NileSideBarHeader;\n }\n}"],"names":["NileSideBarHeader","o","constructor","this","background","_this","_inherits","_a","_createClass","key","value","render","html","_templateObject","_taggedTemplateLiteral","get","styles","NileElement","__decorate","property","type","String","reflect","attribute","prototype","customElement"],"mappings":"q8GAwBaA,4BAAN,SAAAC,EAAA,CAAAC,KAAAA,KAAAA,CAAAA,eAAAA,MAAAA,CAAAA,qCAMsDC,KAAAA,CAAUC,UAAAA,CAA8B,SA4BpG,QAAAC,KAAA,EAtBOC,SAAA,CAAAL,CAAA,CAAAM,EAAA,SAAAC,YAAA,CAAAP,CAAA,GAAAQ,GAAA,UAAAC,KAAA,CAYA,SAAAC,MAAAA,CAAAA,CAAAA,CACN,MAAOC,CAAAA,CAAI,CAAAC,eAAA,GAAAA,eAAA,CAAAC,sBAAA,iMAMX,CAAA,KAAAL,GAAA,UAAAM,GAAA,CAnBM,SAAAA,IAAA,CACN,CAAA,MAAO,CAACC,CACR,CAAA,EAUM,MAxB+BC,CAAAA,GAMsBC,EAAA,CAA3DC,CAAAA,CAAS,CAAEC,IAAMC,CAAAA,MAAAA,CAAQC,SAAS,CAAMC,CAAAA,SAAAA,CAAAA,CAAW,KAA0DvB,CAAAwB,CAAAA,SAAAA,CAAA,iBAAA,EANlGxB,CAAAA,CAAAA,OAAAA,KAAAA,CAAAA,CAAiBkB,EAAA,CAD7BO,CAAAA,CAAc,yBACFzB"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
System.register(["lit"],function(_export,_context){"use strict";var n,_templateObject,e;function _taggedTemplateLiteral(e,t){return t||(t=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}}));}return{setters:[function(_lit){n=_lit.css;}],execute:function execute(){_export("s",e=n(_templateObject||(_templateObject=_taggedTemplateLiteral(["\n :host {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding-top: var(--nile-spacing-xl, var(--ng-spacing-3xl));\n padding-bottom: var(--nile-spacing-lg, var(--ng-spacing-xl));\n padding-left: var(--nile-spacing-xl, var(--ng-spacing-2xl));\n padding-right: var(--nile-spacing-xl, var(--ng-spacing-2xl));\n top: 0;\n background: var(--nile-colors-neutral-100, var(--ng-colors-bg-primary));\n}\n\n.header-content {\n display: flex;\n align-items: center;\n justify-content: space-between;\n width: 100%;\n}\n\n\n:host([collapsed]) .header-content {\n flex-direction: column;\n justify-content: center;\n gap: var(--nile-spacing-lg, var(--ng-spacing-md));\n}\n\n\n\n \n \n::slotted([slot='logo']) {\n font-size: var(--nile-type-scale-3, var(--ng-font-size-text-sm));\n font-weight: var(--nile-font-weight-bold, var(--ng-font-weight-bold));\n letter-spacing: -0.02em;\n color: var(--nile-colors-dark-900, var(--ng-colors-graylightmode-900));\n text-transform: none;\n}\n\n::slotted([slot='actions']) {\n display: flex;\n align-items: center;\n gap: var(--nile-spacing-md);\n}\n\n"]))));}};});
|
|
1
|
+
System.register(["lit"],function(_export,_context){"use strict";var n,_templateObject,e;function _taggedTemplateLiteral(e,t){return t||(t=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}}));}return{setters:[function(_lit){n=_lit.css;}],execute:function execute(){_export("s",e=n(_templateObject||(_templateObject=_taggedTemplateLiteral(["\n :host {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding-top: var(--nile-spacing-xl, var(--ng-spacing-3xl));\n padding-bottom: var(--nile-spacing-lg, var(--ng-spacing-xl));\n padding-left: var(--nile-spacing-xl, var(--ng-spacing-2xl));\n padding-right: var(--nile-spacing-xl, var(--ng-spacing-2xl));\n top: 0;\n background: var(--nile-colors-neutral-100, var(--ng-colors-bg-primary));\n}\n\n/* Opt-in: drop the surface color so the header sits on whatever is behind it. */\n:host([background='transparent']) {\n background: transparent;\n}\n\n.header-content {\n display: flex;\n align-items: center;\n justify-content: space-between;\n width: 100%;\n}\n\n\n:host([collapsed]) .header-content {\n flex-direction: column;\n justify-content: center;\n gap: var(--nile-spacing-lg, var(--ng-spacing-md));\n}\n\n\n\n \n \n::slotted([slot='logo']) {\n font-size: var(--nile-type-scale-3, var(--ng-font-size-text-sm));\n font-weight: var(--nile-font-weight-bold, var(--ng-font-weight-bold));\n letter-spacing: -0.02em;\n color: var(--nile-colors-dark-900, var(--ng-colors-graylightmode-900));\n text-transform: none;\n}\n\n::slotted([slot='actions']) {\n display: flex;\n align-items: center;\n gap: var(--nile-spacing-md);\n}\n\n"]))));}};});
|
|
2
2
|
//# sourceMappingURL=nile-side-bar-header.css.cjs.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nile-side-bar-header.css.cjs.js","sources":["../../../src/nile-side-bar-header/nile-side-bar-header.css.ts"],"sourcesContent":["/**\n* Copyright Aquera Inc 2023\n*\n* This source code is licensed under the BSD-3-Clause license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\nimport {css} from 'lit';\n\n/**\n * SideBarHeader CSS\n */\nexport const styles = css`\n :host {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding-top: var(--nile-spacing-xl, var(--ng-spacing-3xl));\n padding-bottom: var(--nile-spacing-lg, var(--ng-spacing-xl));\n padding-left: var(--nile-spacing-xl, var(--ng-spacing-2xl));\n padding-right: var(--nile-spacing-xl, var(--ng-spacing-2xl));\n top: 0;\n background: var(--nile-colors-neutral-100, var(--ng-colors-bg-primary));\n}\n\n.header-content {\n display: flex;\n align-items: center;\n justify-content: space-between;\n width: 100%;\n}\n\n\n:host([collapsed]) .header-content {\n flex-direction: column;\n justify-content: center;\n gap: var(--nile-spacing-lg, var(--ng-spacing-md));\n}\n\n\n\n \n \n::slotted([slot='logo']) {\n font-size: var(--nile-type-scale-3, var(--ng-font-size-text-sm));\n font-weight: var(--nile-font-weight-bold, var(--ng-font-weight-bold));\n letter-spacing: -0.02em;\n color: var(--nile-colors-dark-900, var(--ng-colors-graylightmode-900));\n text-transform: none;\n}\n\n::slotted([slot='actions']) {\n display: flex;\n align-items: center;\n gap: var(--nile-spacing-md);\n}\n\n`;\n\nexport default [styles];"],"names":["styles","css","_templateObject","_taggedTemplateLiteral"],"mappings":"oTAYaA,CAAAA,CAASC,CAAG,CAAAC,eAAA,GAAAA,eAAA,CAAAC,sBAAA"}
|
|
1
|
+
{"version":3,"file":"nile-side-bar-header.css.cjs.js","sources":["../../../src/nile-side-bar-header/nile-side-bar-header.css.ts"],"sourcesContent":["/**\n* Copyright Aquera Inc 2023\n*\n* This source code is licensed under the BSD-3-Clause license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\nimport {css} from 'lit';\n\n/**\n * SideBarHeader CSS\n */\nexport const styles = css`\n :host {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding-top: var(--nile-spacing-xl, var(--ng-spacing-3xl));\n padding-bottom: var(--nile-spacing-lg, var(--ng-spacing-xl));\n padding-left: var(--nile-spacing-xl, var(--ng-spacing-2xl));\n padding-right: var(--nile-spacing-xl, var(--ng-spacing-2xl));\n top: 0;\n background: var(--nile-colors-neutral-100, var(--ng-colors-bg-primary));\n}\n\n/* Opt-in: drop the surface color so the header sits on whatever is behind it. */\n:host([background='transparent']) {\n background: transparent;\n}\n\n.header-content {\n display: flex;\n align-items: center;\n justify-content: space-between;\n width: 100%;\n}\n\n\n:host([collapsed]) .header-content {\n flex-direction: column;\n justify-content: center;\n gap: var(--nile-spacing-lg, var(--ng-spacing-md));\n}\n\n\n\n \n \n::slotted([slot='logo']) {\n font-size: var(--nile-type-scale-3, var(--ng-font-size-text-sm));\n font-weight: var(--nile-font-weight-bold, var(--ng-font-weight-bold));\n letter-spacing: -0.02em;\n color: var(--nile-colors-dark-900, var(--ng-colors-graylightmode-900));\n text-transform: none;\n}\n\n::slotted([slot='actions']) {\n display: flex;\n align-items: center;\n gap: var(--nile-spacing-md);\n}\n\n`;\n\nexport default [styles];"],"names":["styles","css","_templateObject","_taggedTemplateLiteral"],"mappings":"oTAYaA,CAAAA,CAASC,CAAG,CAAAC,eAAA,GAAAA,eAAA,CAAAC,sBAAA"}
|
|
@@ -11,6 +11,11 @@ import{css as n}from"lit";const e=n`
|
|
|
11
11
|
background: var(--nile-colors-neutral-100, var(--ng-colors-bg-primary));
|
|
12
12
|
}
|
|
13
13
|
|
|
14
|
+
/* Opt-in: drop the surface color so the header sits on whatever is behind it. */
|
|
15
|
+
:host([background='transparent']) {
|
|
16
|
+
background: transparent;
|
|
17
|
+
}
|
|
18
|
+
|
|
14
19
|
.header-content {
|
|
15
20
|
display: flex;
|
|
16
21
|
align-items: center;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import{__decorate as e}from"tslib";import{html as t}from"lit";import{customElement as s}from"lit/decorators.js";import{s as
|
|
1
|
+
import{__decorate as e}from"tslib";import{html as t}from"lit";import{property as r,customElement as s}from"lit/decorators.js";import{s as i}from"./nile-side-bar-header.css.esm.js";import{N as a}from"../internal/nile-element.esm.js";import"../internal/accessibility/a11y.state.enum.esm.js";import"../internal/accessibility/a11y.property.enum.esm.js";import"../internal/accessibility/role.enum.esm.js";let o=class extends a{constructor(){super(...arguments),this.background="default"}static get styles(){return[i]}render(){return t`
|
|
2
2
|
<div class="header-content" part="header-content">
|
|
3
3
|
<slot name="logo" part="logo"></slot>
|
|
4
4
|
<slot name="expand" part="expand"></slot>
|
|
5
5
|
</div>
|
|
6
|
-
`}};
|
|
6
|
+
`}};e([r({type:String,reflect:!0,attribute:!0})],o.prototype,"background",void 0),o=e([s("nile-side-bar-header")],o);export{o as N};
|
|
@@ -15,6 +15,11 @@ export const styles = css `
|
|
|
15
15
|
background: var(--nile-colors-neutral-100, var(--ng-colors-bg-primary));
|
|
16
16
|
}
|
|
17
17
|
|
|
18
|
+
/* Opt-in: drop the surface color so the footer sits on whatever is behind it. */
|
|
19
|
+
:host([background='transparent']) {
|
|
20
|
+
background: transparent;
|
|
21
|
+
}
|
|
22
|
+
|
|
18
23
|
.footer {
|
|
19
24
|
display: flex;
|
|
20
25
|
flex-direction: column;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nile-side-bar-footer.css.js","sourceRoot":"","sources":["../../../src/nile-side-bar-footer/nile-side-bar-footer.css.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B;;GAEG;AACH,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA
|
|
1
|
+
{"version":3,"file":"nile-side-bar-footer.css.js","sourceRoot":"","sources":["../../../src/nile-side-bar-footer/nile-side-bar-footer.css.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B;;GAEG;AACH,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA0CxB,CAAC;AAEF,eAAe,CAAC,MAAM,CAAC,CAAC","sourcesContent":["import { css } from 'lit';\n\n/**\n * SideBarFooter CSS\n */\nexport const styles = css`\n :host {\n display: block;\n bottom: var(--nile-spacing-md);\n padding-bottom: var(--nile-spacing-xl, var(--ng-spacing-3xl));\n\tpadding-left: var(--nile-spacing-xl, var(--ng-spacing-xl));\n\tpadding-right: var(--nile-spacing-xl, var(--ng-spacing-xl));\n padding-top: var(--nile-spacing-xs, var(--ng-spacing-xs));\n gap: var(--nile-spacing-md, var(--ng-spacing-xl));\n bottom: 0;\n background: var(--nile-colors-neutral-100, var(--ng-colors-bg-primary));\n}\n\n/* Opt-in: drop the surface color so the footer sits on whatever is behind it. */\n:host([background='transparent']) {\n background: transparent;\n}\n\n.footer {\n display: flex;\n flex-direction: column; \n align-items: stretch; \n gap: var(--nile-spacing-md, var(--ng-spacing-lg)); \n}\n\n::slotted(nile-side-bar-footer-item) {\n display: flex;\n align-items: center;\n gap: var(--nile-spacing-md, var(--ng-spacing-xs));\n justify-content: center;\n \n font-size: var(--nile-type-scale-3, var(--ng-font-size-text-sm));\n color: var(--nile-colors-dark-900, var(--ng-colors-text-primary-900));\n cursor: pointer;\n border-radius: var(--nile-radius-sm, var(--ng-radius-sm));\n transition: background 0.2s ease;\n}\n\n\n\n\n \n`;\n\nexport default [styles];\n"]}
|
|
@@ -13,8 +13,18 @@ import NileElement from '../internal/nile-element';
|
|
|
13
13
|
*
|
|
14
14
|
* @slot icon - Slot for footer icon
|
|
15
15
|
* @slot text - Slot for footer text
|
|
16
|
+
*
|
|
17
|
+
* @attr background - Background treatment of the footer ("default" | "transparent").
|
|
18
|
+
* Defaults to "default", which paints the sidebar surface color. Set to
|
|
19
|
+
* "transparent" to drop the background so whatever sits behind the footer shows
|
|
20
|
+
* through.
|
|
16
21
|
*/
|
|
17
22
|
export declare class NileSideBarFooter extends NileElement {
|
|
23
|
+
/**
|
|
24
|
+
* Background treatment of the footer. `default` keeps the sidebar surface
|
|
25
|
+
* color; `transparent` removes it.
|
|
26
|
+
*/
|
|
27
|
+
background: 'default' | 'transparent';
|
|
18
28
|
static get styles(): CSSResultArray;
|
|
19
29
|
render(): TemplateResult;
|
|
20
30
|
}
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
*/
|
|
7
7
|
import { __decorate } from "tslib";
|
|
8
8
|
import { html } from 'lit';
|
|
9
|
-
import { customElement } from 'lit/decorators.js';
|
|
9
|
+
import { customElement, property } from 'lit/decorators.js';
|
|
10
10
|
import { styles } from './nile-side-bar-footer.css';
|
|
11
11
|
import NileElement from '../internal/nile-element';
|
|
12
12
|
/**
|
|
@@ -16,8 +16,21 @@ import NileElement from '../internal/nile-element';
|
|
|
16
16
|
*
|
|
17
17
|
* @slot icon - Slot for footer icon
|
|
18
18
|
* @slot text - Slot for footer text
|
|
19
|
+
*
|
|
20
|
+
* @attr background - Background treatment of the footer ("default" | "transparent").
|
|
21
|
+
* Defaults to "default", which paints the sidebar surface color. Set to
|
|
22
|
+
* "transparent" to drop the background so whatever sits behind the footer shows
|
|
23
|
+
* through.
|
|
19
24
|
*/
|
|
20
25
|
let NileSideBarFooter = class NileSideBarFooter extends NileElement {
|
|
26
|
+
constructor() {
|
|
27
|
+
super(...arguments);
|
|
28
|
+
/**
|
|
29
|
+
* Background treatment of the footer. `default` keeps the sidebar surface
|
|
30
|
+
* color; `transparent` removes it.
|
|
31
|
+
*/
|
|
32
|
+
this.background = 'default';
|
|
33
|
+
}
|
|
21
34
|
static get styles() {
|
|
22
35
|
return [styles];
|
|
23
36
|
}
|
|
@@ -29,6 +42,9 @@ let NileSideBarFooter = class NileSideBarFooter extends NileElement {
|
|
|
29
42
|
`;
|
|
30
43
|
}
|
|
31
44
|
};
|
|
45
|
+
__decorate([
|
|
46
|
+
property({ type: String, reflect: true, attribute: true })
|
|
47
|
+
], NileSideBarFooter.prototype, "background", void 0);
|
|
32
48
|
NileSideBarFooter = __decorate([
|
|
33
49
|
customElement('nile-side-bar-footer')
|
|
34
50
|
], NileSideBarFooter);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nile-side-bar-footer.js","sourceRoot":"","sources":["../../../src/nile-side-bar-footer/nile-side-bar-footer.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;;AAEH,OAAO,EAAE,IAAI,EAAkC,MAAM,KAAK,CAAC;AAC3D,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"nile-side-bar-footer.js","sourceRoot":"","sources":["../../../src/nile-side-bar-footer/nile-side-bar-footer.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;;AAEH,OAAO,EAAE,IAAI,EAAkC,MAAM,KAAK,CAAC;AAC3D,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC5D,OAAO,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAC;AACpD,OAAO,WAAW,MAAM,0BAA0B,CAAC;AAEnD;;;;;;;;;;;;GAYG;AAEI,IAAM,iBAAiB,GAAvB,MAAM,iBAAkB,SAAQ,WAAW;IAA3C;;QACL;;;WAGG;QACyD,eAAU,GAA8B,SAAS,CAAC;IAahH,CAAC;IAXQ,MAAM,KAAK,MAAM;QACtB,OAAO,CAAC,MAAM,CAAC,CAAC;IAClB,CAAC;IAEM,MAAM;QACX,OAAO,IAAI,CAAA;;;;KAIV,CAAC;IACJ,CAAC;CACF,CAAA;AAb6D;IAA3D,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;qDAAmD;AALnG,iBAAiB;IAD7B,aAAa,CAAC,sBAAsB,CAAC;GACzB,iBAAiB,CAkB7B;;AAED,eAAe,iBAAiB,CAAC","sourcesContent":["/**\n * Copyright Aquera Inc 2023\n *\n * This source code is licensed under the BSD-3-Clause license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport { html, CSSResultArray, TemplateResult } from 'lit';\nimport { customElement, property } from 'lit/decorators.js';\nimport { styles } from './nile-side-bar-footer.css';\nimport NileElement from '../internal/nile-element';\n\n/**\n * Nile side-bar-footer component.\n *\n * @tag nile-side-bar-footer\n *\n * @slot icon - Slot for footer icon\n * @slot text - Slot for footer text\n *\n * @attr background - Background treatment of the footer (\"default\" | \"transparent\").\n * Defaults to \"default\", which paints the sidebar surface color. Set to\n * \"transparent\" to drop the background so whatever sits behind the footer shows\n * through.\n */\n@customElement('nile-side-bar-footer')\nexport class NileSideBarFooter extends NileElement {\n /**\n * Background treatment of the footer. `default` keeps the sidebar surface\n * color; `transparent` removes it.\n */\n @property({ type: String, reflect: true, attribute: true }) background: 'default' | 'transparent' = 'default';\n\n public static get styles(): CSSResultArray {\n return [styles];\n }\n\n public render(): TemplateResult {\n return html`\n <div part=\"base\" class=\"footer\">\n <slot> </slot>\n </div>\n `;\n }\n}\n\nexport default NileSideBarFooter;\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'nile-side-bar-footer': NileSideBarFooter;\n }\n}\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import './nile-side-bar-footer';
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { expect, fixture, html } from '@open-wc/testing';
|
|
2
|
+
import './nile-side-bar-footer';
|
|
3
|
+
const TRANSPARENT = 'rgba(0, 0, 0, 0)';
|
|
4
|
+
/**
|
|
5
|
+
* The surface color comes from a design token, which a bare fixture does not
|
|
6
|
+
* load — so pin it on a wrapper to have something concrete to assert against.
|
|
7
|
+
*/
|
|
8
|
+
async function withToken(markup) {
|
|
9
|
+
const wrapper = await fixture(html `<div style="--nile-colors-neutral-100: rgb(1, 2, 3)">${markup}</div>`);
|
|
10
|
+
const el = wrapper.querySelector('nile-side-bar-footer');
|
|
11
|
+
await el.updateComplete;
|
|
12
|
+
return el;
|
|
13
|
+
}
|
|
14
|
+
const backgroundOf = (el) => getComputedStyle(el).backgroundColor;
|
|
15
|
+
describe('NileSideBarFooter — background', () => {
|
|
16
|
+
it('1. defaults to "default" and reflects the attribute', async () => {
|
|
17
|
+
const el = await withToken(html `<nile-side-bar-footer></nile-side-bar-footer>`);
|
|
18
|
+
expect(el.background).to.equal('default');
|
|
19
|
+
expect(el.getAttribute('background')).to.equal('default');
|
|
20
|
+
});
|
|
21
|
+
it('2. paints the sidebar surface color by default', async () => {
|
|
22
|
+
const el = await withToken(html `<nile-side-bar-footer></nile-side-bar-footer>`);
|
|
23
|
+
expect(backgroundOf(el)).to.equal('rgb(1, 2, 3)');
|
|
24
|
+
});
|
|
25
|
+
it('3. background="transparent" removes the background', async () => {
|
|
26
|
+
const el = await withToken(html `<nile-side-bar-footer background="transparent"></nile-side-bar-footer>`);
|
|
27
|
+
expect(el.background).to.equal('transparent');
|
|
28
|
+
expect(backgroundOf(el)).to.equal(TRANSPARENT);
|
|
29
|
+
});
|
|
30
|
+
it('4. setting the property at runtime reflects and re-styles both ways', async () => {
|
|
31
|
+
const el = await withToken(html `<nile-side-bar-footer></nile-side-bar-footer>`);
|
|
32
|
+
el.background = 'transparent';
|
|
33
|
+
await el.updateComplete;
|
|
34
|
+
expect(el.getAttribute('background')).to.equal('transparent');
|
|
35
|
+
expect(backgroundOf(el)).to.equal(TRANSPARENT);
|
|
36
|
+
el.background = 'default';
|
|
37
|
+
await el.updateComplete;
|
|
38
|
+
expect(el.getAttribute('background')).to.equal('default');
|
|
39
|
+
expect(backgroundOf(el)).to.equal('rgb(1, 2, 3)');
|
|
40
|
+
});
|
|
41
|
+
});
|
|
42
|
+
//# sourceMappingURL=nile-side-bar-footer.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"nile-side-bar-footer.test.js","sourceRoot":"","sources":["../../../src/nile-side-bar-footer/nile-side-bar-footer.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AACzD,OAAO,wBAAwB,CAAC;AAGhC,MAAM,WAAW,GAAG,kBAAkB,CAAC;AAEvC;;;GAGG;AACH,KAAK,UAAU,SAAS,CAAC,MAAe;IACtC,MAAM,OAAO,GAAG,MAAM,OAAO,CAC3B,IAAI,CAAA,wDAAwD,MAAM,QAAQ,CAC3E,CAAC;IACF,MAAM,EAAE,GAAG,OAAO,CAAC,aAAa,CAAC,sBAAsB,CAAsB,CAAC;IAC9E,MAAM,EAAE,CAAC,cAAc,CAAC;IACxB,OAAO,EAAE,CAAC;AACZ,CAAC;AAED,MAAM,YAAY,GAAG,CAAC,EAAqB,EAAE,EAAE,CAAC,gBAAgB,CAAC,EAAE,CAAC,CAAC,eAAe,CAAC;AAErF,QAAQ,CAAC,gCAAgC,EAAE,GAAG,EAAE;IAC9C,EAAE,CAAC,qDAAqD,EAAE,KAAK,IAAI,EAAE;QACnE,MAAM,EAAE,GAAG,MAAM,SAAS,CAAC,IAAI,CAAA,+CAA+C,CAAC,CAAC;QAChF,MAAM,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QAC1C,MAAM,CAAC,EAAE,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IAC5D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gDAAgD,EAAE,KAAK,IAAI,EAAE;QAC9D,MAAM,EAAE,GAAG,MAAM,SAAS,CAAC,IAAI,CAAA,+CAA+C,CAAC,CAAC;QAChF,MAAM,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;IACpD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,oDAAoD,EAAE,KAAK,IAAI,EAAE;QAClE,MAAM,EAAE,GAAG,MAAM,SAAS,CACxB,IAAI,CAAA,wEAAwE,CAC7E,CAAC;QACF,MAAM,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;QAC9C,MAAM,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;IACjD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,qEAAqE,EAAE,KAAK,IAAI,EAAE;QACnF,MAAM,EAAE,GAAG,MAAM,SAAS,CAAC,IAAI,CAAA,+CAA+C,CAAC,CAAC;QAEhF,EAAE,CAAC,UAAU,GAAG,aAAa,CAAC;QAC9B,MAAM,EAAE,CAAC,cAAc,CAAC;QACxB,MAAM,CAAC,EAAE,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;QAC9D,MAAM,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;QAE/C,EAAE,CAAC,UAAU,GAAG,SAAS,CAAC;QAC1B,MAAM,EAAE,CAAC,cAAc,CAAC;QACxB,MAAM,CAAC,EAAE,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QAC1D,MAAM,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;IACpD,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC","sourcesContent":["import { expect, fixture, html } from '@open-wc/testing';\nimport './nile-side-bar-footer';\nimport type { NileSideBarFooter } from './nile-side-bar-footer';\n\nconst TRANSPARENT = 'rgba(0, 0, 0, 0)';\n\n/**\n * The surface color comes from a design token, which a bare fixture does not\n * load — so pin it on a wrapper to have something concrete to assert against.\n */\nasync function withToken(markup: unknown) {\n const wrapper = await fixture<HTMLDivElement>(\n html`<div style=\"--nile-colors-neutral-100: rgb(1, 2, 3)\">${markup}</div>`\n );\n const el = wrapper.querySelector('nile-side-bar-footer') as NileSideBarFooter;\n await el.updateComplete;\n return el;\n}\n\nconst backgroundOf = (el: NileSideBarFooter) => getComputedStyle(el).backgroundColor;\n\ndescribe('NileSideBarFooter — background', () => {\n it('1. defaults to \"default\" and reflects the attribute', async () => {\n const el = await withToken(html`<nile-side-bar-footer></nile-side-bar-footer>`);\n expect(el.background).to.equal('default');\n expect(el.getAttribute('background')).to.equal('default');\n });\n\n it('2. paints the sidebar surface color by default', async () => {\n const el = await withToken(html`<nile-side-bar-footer></nile-side-bar-footer>`);\n expect(backgroundOf(el)).to.equal('rgb(1, 2, 3)');\n });\n\n it('3. background=\"transparent\" removes the background', async () => {\n const el = await withToken(\n html`<nile-side-bar-footer background=\"transparent\"></nile-side-bar-footer>`\n );\n expect(el.background).to.equal('transparent');\n expect(backgroundOf(el)).to.equal(TRANSPARENT);\n });\n\n it('4. setting the property at runtime reflects and re-styles both ways', async () => {\n const el = await withToken(html`<nile-side-bar-footer></nile-side-bar-footer>`);\n\n el.background = 'transparent';\n await el.updateComplete;\n expect(el.getAttribute('background')).to.equal('transparent');\n expect(backgroundOf(el)).to.equal(TRANSPARENT);\n\n el.background = 'default';\n await el.updateComplete;\n expect(el.getAttribute('background')).to.equal('default');\n expect(backgroundOf(el)).to.equal('rgb(1, 2, 3)');\n });\n});\n"]}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
import { expect, fixture, html, waitUntil } from '@open-wc/testing';
|
|
2
|
+
import '../nile-app-shell/nile-app-shell';
|
|
3
|
+
import '../nile-side-bar/nile-side-bar';
|
|
4
|
+
import './nile-side-bar-header';
|
|
5
|
+
import '../nile-side-bar-footer/nile-side-bar-footer';
|
|
6
|
+
const TRANSPARENT = 'rgba(0, 0, 0, 0)';
|
|
7
|
+
const SURFACE = 'rgb(1, 2, 3)';
|
|
8
|
+
/**
|
|
9
|
+
* nile-app-shell owns the nav track's surface, so it forces the slotted
|
|
10
|
+
* sidebar's own background off:
|
|
11
|
+
*
|
|
12
|
+
* ::slotted([slot='side-nav']) {
|
|
13
|
+
* background: var(--nile-app-shell-side-nav-bg, transparent) !important;
|
|
14
|
+
* }
|
|
15
|
+
*
|
|
16
|
+
* That reaches the `nile-side-bar` only. The header and footer live one level
|
|
17
|
+
* deeper — they are light-DOM children of the sidebar, slotted into ITS shadow
|
|
18
|
+
* root — so the shell cannot see them, and their own surface color survives.
|
|
19
|
+
* These tests pin that boundary down, because it is the whole reason
|
|
20
|
+
* `background="transparent"` exists.
|
|
21
|
+
*/
|
|
22
|
+
async function shellWithSidebar(headerBg, footerBg) {
|
|
23
|
+
const el = await fixture(html `
|
|
24
|
+
<nile-app-shell style="width: 1400px; height: 600px; --nile-colors-neutral-100: ${SURFACE};">
|
|
25
|
+
<nile-side-bar slot="side-nav">
|
|
26
|
+
<nile-side-bar-header slot="header" background="${headerBg ?? 'default'}">
|
|
27
|
+
<span slot="logo">Logo</span>
|
|
28
|
+
</nile-side-bar-header>
|
|
29
|
+
<nile-side-bar-footer slot="footer" background="${footerBg ?? 'default'}">
|
|
30
|
+
<span>Help</span>
|
|
31
|
+
</nile-side-bar-footer>
|
|
32
|
+
</nile-side-bar>
|
|
33
|
+
<span slot="top-bar">Title</span>
|
|
34
|
+
<p>page</p>
|
|
35
|
+
</nile-app-shell>
|
|
36
|
+
`);
|
|
37
|
+
await waitUntil(() => el.hasAttribute('has-side-nav'));
|
|
38
|
+
const sidebar = el.querySelector('nile-side-bar');
|
|
39
|
+
const header = el.querySelector('nile-side-bar-header');
|
|
40
|
+
const footer = el.querySelector('nile-side-bar-footer');
|
|
41
|
+
await header.updateComplete;
|
|
42
|
+
await footer.updateComplete;
|
|
43
|
+
return { el, sidebar, header, footer };
|
|
44
|
+
}
|
|
45
|
+
const bg = (el) => getComputedStyle(el).backgroundColor;
|
|
46
|
+
describe('side-bar header/footer inside nile-app-shell', () => {
|
|
47
|
+
it('1. the shell strips the sidebar\'s own background', async () => {
|
|
48
|
+
const { sidebar } = await shellWithSidebar();
|
|
49
|
+
expect(bg(sidebar)).to.equal(TRANSPARENT);
|
|
50
|
+
});
|
|
51
|
+
it('2. without the new property the header/footer keep painting a surface, which is the seam', async () => {
|
|
52
|
+
const { header, footer } = await shellWithSidebar();
|
|
53
|
+
expect(bg(header)).to.equal(SURFACE);
|
|
54
|
+
expect(bg(footer)).to.equal(SURFACE);
|
|
55
|
+
});
|
|
56
|
+
it('3. background="transparent" closes the seam — nav track is one flat surface', async () => {
|
|
57
|
+
const { sidebar, header, footer } = await shellWithSidebar('transparent', 'transparent');
|
|
58
|
+
expect(bg(sidebar)).to.equal(TRANSPARENT);
|
|
59
|
+
expect(bg(header)).to.equal(TRANSPARENT);
|
|
60
|
+
expect(bg(footer)).to.equal(TRANSPARENT);
|
|
61
|
+
});
|
|
62
|
+
it('4. the shell\'s !important rule does not override the header/footer either way', async () => {
|
|
63
|
+
const { header, footer } = await shellWithSidebar('default', 'transparent');
|
|
64
|
+
expect(bg(header)).to.equal(SURFACE);
|
|
65
|
+
expect(bg(footer)).to.equal(TRANSPARENT);
|
|
66
|
+
});
|
|
67
|
+
});
|
|
68
|
+
//# sourceMappingURL=nile-side-bar-app-shell.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"nile-side-bar-app-shell.test.js","sourceRoot":"","sources":["../../../src/nile-side-bar-header/nile-side-bar-app-shell.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AACpE,OAAO,kCAAkC,CAAC;AAC1C,OAAO,gCAAgC,CAAC;AACxC,OAAO,wBAAwB,CAAC;AAChC,OAAO,8CAA8C,CAAC;AAKtD,MAAM,WAAW,GAAG,kBAAkB,CAAC;AACvC,MAAM,OAAO,GAAG,cAAc,CAAC;AAE/B;;;;;;;;;;;;;GAaG;AACH,KAAK,UAAU,gBAAgB,CAAC,QAAiB,EAAE,QAAiB;IAClE,MAAM,EAAE,GAAG,MAAM,OAAO,CAAe,IAAI,CAAA;sFACyC,OAAO;;0DAEnC,QAAQ,IAAI,SAAS;;;0DAGrB,QAAQ,IAAI,SAAS;;;;;;;GAO5E,CAAC,CAAC;IACH,MAAM,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,YAAY,CAAC,cAAc,CAAC,CAAC,CAAC;IAEvD,MAAM,OAAO,GAAG,EAAE,CAAC,aAAa,CAAC,eAAe,CAAgB,CAAC;IACjE,MAAM,MAAM,GAAG,EAAE,CAAC,aAAa,CAAC,sBAAsB,CAAsB,CAAC;IAC7E,MAAM,MAAM,GAAG,EAAE,CAAC,aAAa,CAAC,sBAAsB,CAAsB,CAAC;IAC7E,MAAM,MAAM,CAAC,cAAc,CAAC;IAC5B,MAAM,MAAM,CAAC,cAAc,CAAC;IAC5B,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;AACzC,CAAC;AAED,MAAM,EAAE,GAAG,CAAC,EAAe,EAAE,EAAE,CAAC,gBAAgB,CAAC,EAAE,CAAC,CAAC,eAAe,CAAC;AAErE,QAAQ,CAAC,8CAA8C,EAAE,GAAG,EAAE;IAC5D,EAAE,CAAC,mDAAmD,EAAE,KAAK,IAAI,EAAE;QACjE,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,gBAAgB,EAAE,CAAC;QAC7C,MAAM,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;IAC5C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,0FAA0F,EAAE,KAAK,IAAI,EAAE;QACxG,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,gBAAgB,EAAE,CAAC;QACpD,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QACrC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IACvC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6EAA6E,EAAE,KAAK,IAAI,EAAE;QAC3F,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,gBAAgB,CAAC,aAAa,EAAE,aAAa,CAAC,CAAC;QACzF,MAAM,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;QAC1C,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;QACzC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;IAC3C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gFAAgF,EAAE,KAAK,IAAI,EAAE;QAC9F,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,gBAAgB,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;QAC5E,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QACrC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;IAC3C,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC","sourcesContent":["import { expect, fixture, html, waitUntil } from '@open-wc/testing';\nimport '../nile-app-shell/nile-app-shell';\nimport '../nile-side-bar/nile-side-bar';\nimport './nile-side-bar-header';\nimport '../nile-side-bar-footer/nile-side-bar-footer';\nimport type { NileAppShell } from '../nile-app-shell/nile-app-shell';\nimport type { NileSideBarHeader } from './nile-side-bar-header';\nimport type { NileSideBarFooter } from '../nile-side-bar-footer/nile-side-bar-footer';\n\nconst TRANSPARENT = 'rgba(0, 0, 0, 0)';\nconst SURFACE = 'rgb(1, 2, 3)';\n\n/**\n * nile-app-shell owns the nav track's surface, so it forces the slotted\n * sidebar's own background off:\n *\n * ::slotted([slot='side-nav']) {\n * background: var(--nile-app-shell-side-nav-bg, transparent) !important;\n * }\n *\n * That reaches the `nile-side-bar` only. The header and footer live one level\n * deeper — they are light-DOM children of the sidebar, slotted into ITS shadow\n * root — so the shell cannot see them, and their own surface color survives.\n * These tests pin that boundary down, because it is the whole reason\n * `background=\"transparent\"` exists.\n */\nasync function shellWithSidebar(headerBg?: string, footerBg?: string) {\n const el = await fixture<NileAppShell>(html`\n <nile-app-shell style=\"width: 1400px; height: 600px; --nile-colors-neutral-100: ${SURFACE};\">\n <nile-side-bar slot=\"side-nav\">\n <nile-side-bar-header slot=\"header\" background=\"${headerBg ?? 'default'}\">\n <span slot=\"logo\">Logo</span>\n </nile-side-bar-header>\n <nile-side-bar-footer slot=\"footer\" background=\"${footerBg ?? 'default'}\">\n <span>Help</span>\n </nile-side-bar-footer>\n </nile-side-bar>\n <span slot=\"top-bar\">Title</span>\n <p>page</p>\n </nile-app-shell>\n `);\n await waitUntil(() => el.hasAttribute('has-side-nav'));\n\n const sidebar = el.querySelector('nile-side-bar') as HTMLElement;\n const header = el.querySelector('nile-side-bar-header') as NileSideBarHeader;\n const footer = el.querySelector('nile-side-bar-footer') as NileSideBarFooter;\n await header.updateComplete;\n await footer.updateComplete;\n return { el, sidebar, header, footer };\n}\n\nconst bg = (el: HTMLElement) => getComputedStyle(el).backgroundColor;\n\ndescribe('side-bar header/footer inside nile-app-shell', () => {\n it('1. the shell strips the sidebar\\'s own background', async () => {\n const { sidebar } = await shellWithSidebar();\n expect(bg(sidebar)).to.equal(TRANSPARENT);\n });\n\n it('2. without the new property the header/footer keep painting a surface, which is the seam', async () => {\n const { header, footer } = await shellWithSidebar();\n expect(bg(header)).to.equal(SURFACE);\n expect(bg(footer)).to.equal(SURFACE);\n });\n\n it('3. background=\"transparent\" closes the seam — nav track is one flat surface', async () => {\n const { sidebar, header, footer } = await shellWithSidebar('transparent', 'transparent');\n expect(bg(sidebar)).to.equal(TRANSPARENT);\n expect(bg(header)).to.equal(TRANSPARENT);\n expect(bg(footer)).to.equal(TRANSPARENT);\n });\n\n it('4. the shell\\'s !important rule does not override the header/footer either way', async () => {\n const { header, footer } = await shellWithSidebar('default', 'transparent');\n expect(bg(header)).to.equal(SURFACE);\n expect(bg(footer)).to.equal(TRANSPARENT);\n });\n});\n"]}
|
|
@@ -21,6 +21,11 @@ export const styles = css `
|
|
|
21
21
|
background: var(--nile-colors-neutral-100, var(--ng-colors-bg-primary));
|
|
22
22
|
}
|
|
23
23
|
|
|
24
|
+
/* Opt-in: drop the surface color so the header sits on whatever is behind it. */
|
|
25
|
+
:host([background='transparent']) {
|
|
26
|
+
background: transparent;
|
|
27
|
+
}
|
|
28
|
+
|
|
24
29
|
.header-content {
|
|
25
30
|
display: flex;
|
|
26
31
|
align-items: center;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nile-side-bar-header.css.js","sourceRoot":"","sources":["../../../src/nile-side-bar-header/nile-side-bar-header.css.ts"],"names":[],"mappings":"AAAA;;;;;EAKE;AAEF,OAAO,EAAC,GAAG,EAAC,MAAM,KAAK,CAAC;AAExB;;GAEG;AACH,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA
|
|
1
|
+
{"version":3,"file":"nile-side-bar-header.css.js","sourceRoot":"","sources":["../../../src/nile-side-bar-header/nile-side-bar-header.css.ts"],"names":[],"mappings":"AAAA;;;;;EAKE;AAEF,OAAO,EAAC,GAAG,EAAC,MAAM,KAAK,CAAC;AAExB;;GAEG;AACH,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkDxB,CAAC;AAEF,eAAe,CAAC,MAAM,CAAC,CAAC","sourcesContent":["/**\n* Copyright Aquera Inc 2023\n*\n* This source code is licensed under the BSD-3-Clause license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\nimport {css} from 'lit';\n\n/**\n * SideBarHeader CSS\n */\nexport const styles = css`\n :host {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding-top: var(--nile-spacing-xl, var(--ng-spacing-3xl));\n padding-bottom: var(--nile-spacing-lg, var(--ng-spacing-xl));\n padding-left: var(--nile-spacing-xl, var(--ng-spacing-2xl));\n padding-right: var(--nile-spacing-xl, var(--ng-spacing-2xl));\n top: 0;\n background: var(--nile-colors-neutral-100, var(--ng-colors-bg-primary));\n}\n\n/* Opt-in: drop the surface color so the header sits on whatever is behind it. */\n:host([background='transparent']) {\n background: transparent;\n}\n\n.header-content {\n display: flex;\n align-items: center;\n justify-content: space-between;\n width: 100%;\n}\n\n\n:host([collapsed]) .header-content {\n flex-direction: column;\n justify-content: center;\n gap: var(--nile-spacing-lg, var(--ng-spacing-md));\n}\n\n\n\n \n \n::slotted([slot='logo']) {\n font-size: var(--nile-type-scale-3, var(--ng-font-size-text-sm));\n font-weight: var(--nile-font-weight-bold, var(--ng-font-weight-bold));\n letter-spacing: -0.02em;\n color: var(--nile-colors-dark-900, var(--ng-colors-graylightmode-900));\n text-transform: none;\n}\n\n::slotted([slot='actions']) {\n display: flex;\n align-items: center;\n gap: var(--nile-spacing-md);\n}\n\n`;\n\nexport default [styles];"]}
|
|
@@ -11,8 +11,17 @@ import NileElement from '../internal/nile-element';
|
|
|
11
11
|
*
|
|
12
12
|
* @tag nile-side-bar-header
|
|
13
13
|
*
|
|
14
|
+
* @attr background - Background treatment of the header ("default" | "transparent").
|
|
15
|
+
* Defaults to "default", which paints the sidebar surface color. Set to
|
|
16
|
+
* "transparent" to drop the background so whatever sits behind the header shows
|
|
17
|
+
* through.
|
|
14
18
|
*/
|
|
15
19
|
export declare class NileSideBarHeader extends NileElement {
|
|
20
|
+
/**
|
|
21
|
+
* Background treatment of the header. `default` keeps the sidebar surface
|
|
22
|
+
* color; `transparent` removes it.
|
|
23
|
+
*/
|
|
24
|
+
background: 'default' | 'transparent';
|
|
16
25
|
/**
|
|
17
26
|
* The styles for nile-side-bar-header
|
|
18
27
|
* @remarks If you are extending this class you can extend the base styles with super. Eg `return [super(), myCustomStyles]`
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
*/
|
|
7
7
|
import { __decorate } from "tslib";
|
|
8
8
|
import { html } from 'lit';
|
|
9
|
-
import { customElement } from 'lit/decorators.js';
|
|
9
|
+
import { customElement, property } from 'lit/decorators.js';
|
|
10
10
|
import { styles } from './nile-side-bar-header.css';
|
|
11
11
|
import NileElement from '../internal/nile-element';
|
|
12
12
|
/**
|
|
@@ -14,8 +14,21 @@ import NileElement from '../internal/nile-element';
|
|
|
14
14
|
*
|
|
15
15
|
* @tag nile-side-bar-header
|
|
16
16
|
*
|
|
17
|
+
* @attr background - Background treatment of the header ("default" | "transparent").
|
|
18
|
+
* Defaults to "default", which paints the sidebar surface color. Set to
|
|
19
|
+
* "transparent" to drop the background so whatever sits behind the header shows
|
|
20
|
+
* through.
|
|
17
21
|
*/
|
|
18
22
|
let NileSideBarHeader = class NileSideBarHeader extends NileElement {
|
|
23
|
+
constructor() {
|
|
24
|
+
super(...arguments);
|
|
25
|
+
/**
|
|
26
|
+
* Background treatment of the header. `default` keeps the sidebar surface
|
|
27
|
+
* color; `transparent` removes it.
|
|
28
|
+
*/
|
|
29
|
+
this.background = 'default';
|
|
30
|
+
/* #endregion */
|
|
31
|
+
}
|
|
19
32
|
/**
|
|
20
33
|
* The styles for nile-side-bar-header
|
|
21
34
|
* @remarks If you are extending this class you can extend the base styles with super. Eg `return [super(), myCustomStyles]`
|
|
@@ -38,6 +51,9 @@ let NileSideBarHeader = class NileSideBarHeader extends NileElement {
|
|
|
38
51
|
`;
|
|
39
52
|
}
|
|
40
53
|
};
|
|
54
|
+
__decorate([
|
|
55
|
+
property({ type: String, reflect: true, attribute: true })
|
|
56
|
+
], NileSideBarHeader.prototype, "background", void 0);
|
|
41
57
|
NileSideBarHeader = __decorate([
|
|
42
58
|
customElement('nile-side-bar-header')
|
|
43
59
|
], NileSideBarHeader);
|