snice 2.5.1 → 2.5.3
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/bin/templates/base/package.json +2 -1
- package/bin/templates/base/src/router.ts +2 -2
- package/bin/templates/base/vite.config.ts +17 -0
- package/dist/components/layout/snice-layout-blog.js +1 -1
- package/dist/components/layout/snice-layout-card.js +1 -1
- package/dist/components/layout/snice-layout-centered.js +1 -1
- package/dist/components/layout/snice-layout-fullscreen.js +1 -1
- package/dist/components/layout/snice-layout-landing.js +1 -1
- package/dist/components/layout/snice-layout-minimal.js +1 -1
- package/dist/components/layout/snice-layout.d.ts +2 -1
- package/dist/components/layout/snice-layout.js +17 -11
- package/dist/components/layout/snice-layout.js.map +1 -1
- package/dist/components/nav/snice-nav.d.ts +2 -0
- package/dist/components/nav/snice-nav.js +28 -21
- package/dist/components/nav/snice-nav.js.map +1 -1
- package/dist/index.cjs +1 -1
- package/dist/index.esm.js +1 -1
- package/dist/index.iife.js +1 -1
- package/dist/symbols.esm.js +1 -1
- package/dist/transitions.esm.js +1 -1
- package/package.json +1 -1
|
@@ -9,12 +9,13 @@
|
|
|
9
9
|
"type-check": "tsc --noEmit"
|
|
10
10
|
},
|
|
11
11
|
"dependencies": {
|
|
12
|
-
"snice": "^
|
|
12
|
+
"snice": "^2.5.1"
|
|
13
13
|
},
|
|
14
14
|
"devDependencies": {
|
|
15
15
|
"@types/node": "^20.0.0",
|
|
16
16
|
"terser": "^5.24.0",
|
|
17
17
|
"typescript": "^5.3.3",
|
|
18
|
+
"unplugin-swc": "^1.5.7",
|
|
18
19
|
"vite": "^5.0.10"
|
|
19
20
|
}
|
|
20
21
|
}
|
|
@@ -8,8 +8,8 @@ const { page, initialize, navigate } = Router({
|
|
|
8
8
|
mode: 'simultaneous',
|
|
9
9
|
outDuration: 200,
|
|
10
10
|
inDuration: 200,
|
|
11
|
-
out: 'opacity: 0;
|
|
12
|
-
in: 'opacity: 1;
|
|
11
|
+
out: 'opacity: 0;',
|
|
12
|
+
in: 'opacity: 1;'
|
|
13
13
|
}
|
|
14
14
|
});
|
|
15
15
|
|
|
@@ -1,6 +1,23 @@
|
|
|
1
1
|
import { defineConfig } from 'vite';
|
|
2
|
+
import swc from 'unplugin-swc';
|
|
2
3
|
|
|
3
4
|
export default defineConfig({
|
|
5
|
+
plugins: [
|
|
6
|
+
swc.vite({
|
|
7
|
+
jsc: {
|
|
8
|
+
parser: {
|
|
9
|
+
syntax: 'typescript',
|
|
10
|
+
decorators: true,
|
|
11
|
+
},
|
|
12
|
+
target: 'es2022',
|
|
13
|
+
transform: {
|
|
14
|
+
decoratorMetadata: false,
|
|
15
|
+
decoratorVersion: '2022-03',
|
|
16
|
+
useDefineForClassFields: false,
|
|
17
|
+
},
|
|
18
|
+
},
|
|
19
|
+
}),
|
|
20
|
+
],
|
|
4
21
|
build: {
|
|
5
22
|
target: 'es2015',
|
|
6
23
|
minify: 'terser',
|
|
@@ -7,6 +7,7 @@ export declare class SniceLayout extends HTMLElement implements Layout {
|
|
|
7
7
|
private currentRoute;
|
|
8
8
|
html(): string;
|
|
9
9
|
css(): string;
|
|
10
|
+
onReady(): void;
|
|
10
11
|
update(_appContext: AppContext, placards: Placard[], currentRoute: string, _routeParams: RouteParams): void;
|
|
11
|
-
|
|
12
|
+
updateNav(): void;
|
|
12
13
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { __runInitializers, __esDecorate } from 'tslib';
|
|
2
|
-
import { element, query,
|
|
2
|
+
import { element, query, ready } from 'snice';
|
|
3
3
|
import '../nav/snice-nav.js';
|
|
4
4
|
|
|
5
5
|
var css = "/* Layout Component Styles */\n:host {\n display: block;\n font-family: var(--snice-font-family, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif);\n}\n\n.layout {\n display: grid;\n grid-template-rows: auto 1fr auto;\n min-height: 100vh;\n}\n\n.header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: var(--snice-spacing-md, 1rem) var(--snice-spacing-lg, 2rem);\n background: var(--snice-color-background, white);\n border-bottom: 1px solid var(--snice-color-border, #d1d5db);\n box-shadow: 0 2px 4px rgba(0,0,0,0.1);\n}\n\n.brand h1 {\n margin: 0;\n font-size: var(--snice-font-size-xl, 1.5rem);\n color: var(--snice-color-text, #374151);\n font-weight: var(--snice-font-weight-semibold, 600);\n}\n\n.nav {\n display: flex;\n gap: var(--snice-spacing-lg, 2rem);\n}\n\n.nav ::slotted(a) {\n text-decoration: none;\n color: var(--snice-color-text-secondary, #6b7280);\n font-weight: var(--snice-font-weight-medium, 500);\n padding: var(--snice-spacing-xs, 0.5rem) var(--snice-spacing-md, 1rem);\n border-radius: var(--snice-border-radius-md, 4px);\n transition: all var(--snice-transition-fast, 0.15s) ease;\n}\n\n.nav ::slotted(a:hover) {\n color: var(--snice-color-primary, #3b82f6);\n background: var(--snice-color-background-secondary, #f8fafc);\n}\n\n.nav ::slotted(a.active) {\n color: var(--snice-color-primary, #3b82f6);\n background: var(--snice-color-primary-light, #dbeafe);\n font-weight: var(--snice-font-weight-semibold, 600);\n}\n\n.main {\n padding: var(--snice-spacing-lg, 2rem);\n background: var(--snice-color-background-secondary, #f8fafc);\n overflow-y: auto;\n}\n\n.footer {\n padding: var(--snice-spacing-md, 1rem) var(--snice-spacing-lg, 2rem);\n background: var(--snice-color-background, white);\n border-top: 1px solid var(--snice-color-border, #d1d5db);\n text-align: center;\n color: var(--snice-color-text-secondary, #6b7280);\n font-size: var(--snice-font-size-sm, 0.875rem);\n}\n\n.footer p {\n margin: 0;\n}";
|
|
@@ -14,7 +14,7 @@ let SniceLayout = (() => {
|
|
|
14
14
|
let _navElement_decorators;
|
|
15
15
|
let _navElement_initializers = [];
|
|
16
16
|
let _navElement_extraInitializers = [];
|
|
17
|
-
let
|
|
17
|
+
let _onReady_decorators;
|
|
18
18
|
(class extends _classSuper {
|
|
19
19
|
static { _classThis = this; }
|
|
20
20
|
constructor() {
|
|
@@ -26,8 +26,8 @@ let SniceLayout = (() => {
|
|
|
26
26
|
static {
|
|
27
27
|
const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
|
|
28
28
|
_navElement_decorators = [query('snice-nav')];
|
|
29
|
-
|
|
30
|
-
__esDecorate(this, null,
|
|
29
|
+
_onReady_decorators = [ready()];
|
|
30
|
+
__esDecorate(this, null, _onReady_decorators, { kind: "method", name: "onReady", static: false, private: false, access: { has: obj => "onReady" in obj, get: obj => obj.onReady }, metadata: _metadata }, null, _instanceExtraInitializers);
|
|
31
31
|
__esDecorate(null, null, _navElement_decorators, { kind: "field", name: "navElement", static: false, private: false, access: { has: obj => "navElement" in obj, get: obj => obj.navElement, set: (obj, value) => { obj.navElement = value; } }, metadata: _metadata }, _navElement_initializers, _navElement_extraInitializers);
|
|
32
32
|
__esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
|
|
33
33
|
_classThis = _classDescriptor.value;
|
|
@@ -43,7 +43,7 @@ let SniceLayout = (() => {
|
|
|
43
43
|
<h1>App</h1>
|
|
44
44
|
</slot>
|
|
45
45
|
</div>
|
|
46
|
-
<snice-nav class="nav"
|
|
46
|
+
<snice-nav class="nav" variant="flat" orientation="horizontal"></snice-nav>
|
|
47
47
|
</header>
|
|
48
48
|
|
|
49
49
|
<main class="main">
|
|
@@ -60,18 +60,24 @@ let SniceLayout = (() => {
|
|
|
60
60
|
css() {
|
|
61
61
|
return css;
|
|
62
62
|
}
|
|
63
|
+
onReady() {
|
|
64
|
+
// Update nav if we already have placards
|
|
65
|
+
if (this.placards.length > 0) {
|
|
66
|
+
this.updateNav();
|
|
67
|
+
}
|
|
68
|
+
}
|
|
63
69
|
update(_appContext, placards, currentRoute, _routeParams) {
|
|
64
70
|
this.placards = placards;
|
|
65
71
|
this.currentRoute = currentRoute;
|
|
66
|
-
// Update navigation
|
|
67
|
-
this.
|
|
72
|
+
// Update navigation - only if shadow DOM exists
|
|
73
|
+
if (this.shadowRoot) {
|
|
74
|
+
this.updateNav();
|
|
75
|
+
}
|
|
68
76
|
}
|
|
69
|
-
|
|
77
|
+
updateNav() {
|
|
70
78
|
if (this.navElement) {
|
|
71
|
-
this.navElement.placards
|
|
72
|
-
this.navElement.currentRoute = this.currentRoute;
|
|
79
|
+
this.navElement.update(this.placards, this.currentRoute);
|
|
73
80
|
}
|
|
74
|
-
return '';
|
|
75
81
|
}
|
|
76
82
|
});
|
|
77
83
|
return _classThis;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"snice-layout.js","sources":["../../../components/layout/snice-layout.css?inline","../../../../components/layout/snice-layout.ts"],"sourcesContent":["export default \"/* Layout Component Styles */\\n:host {\\n display: block;\\n font-family: var(--snice-font-family, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif);\\n}\\n\\n.layout {\\n display: grid;\\n grid-template-rows: auto 1fr auto;\\n min-height: 100vh;\\n}\\n\\n.header {\\n display: flex;\\n align-items: center;\\n justify-content: space-between;\\n padding: var(--snice-spacing-md, 1rem) var(--snice-spacing-lg, 2rem);\\n background: var(--snice-color-background, white);\\n border-bottom: 1px solid var(--snice-color-border, #d1d5db);\\n box-shadow: 0 2px 4px rgba(0,0,0,0.1);\\n}\\n\\n.brand h1 {\\n margin: 0;\\n font-size: var(--snice-font-size-xl, 1.5rem);\\n color: var(--snice-color-text, #374151);\\n font-weight: var(--snice-font-weight-semibold, 600);\\n}\\n\\n.nav {\\n display: flex;\\n gap: var(--snice-spacing-lg, 2rem);\\n}\\n\\n.nav ::slotted(a) {\\n text-decoration: none;\\n color: var(--snice-color-text-secondary, #6b7280);\\n font-weight: var(--snice-font-weight-medium, 500);\\n padding: var(--snice-spacing-xs, 0.5rem) var(--snice-spacing-md, 1rem);\\n border-radius: var(--snice-border-radius-md, 4px);\\n transition: all var(--snice-transition-fast, 0.15s) ease;\\n}\\n\\n.nav ::slotted(a:hover) {\\n color: var(--snice-color-primary, #3b82f6);\\n background: var(--snice-color-background-secondary, #f8fafc);\\n}\\n\\n.nav ::slotted(a.active) {\\n color: var(--snice-color-primary, #3b82f6);\\n background: var(--snice-color-primary-light, #dbeafe);\\n font-weight: var(--snice-font-weight-semibold, 600);\\n}\\n\\n.main {\\n padding: var(--snice-spacing-lg, 2rem);\\n background: var(--snice-color-background-secondary, #f8fafc);\\n overflow-y: auto;\\n}\\n\\n.footer {\\n padding: var(--snice-spacing-md, 1rem) var(--snice-spacing-lg, 2rem);\\n background: var(--snice-color-background, white);\\n border-top: 1px solid var(--snice-color-border, #d1d5db);\\n text-align: center;\\n color: var(--snice-color-text-secondary, #6b7280);\\n font-size: var(--snice-font-size-sm, 0.875rem);\\n}\\n\\n.footer p {\\n margin: 0;\\n}\";",null],"names":[],"mappings":";;;;AAAA,UAAe,m/DAAm/D;;ICOr/D,WAAW,GAAA,CAAA,MAAA;4BADvB,OAAO,CAAC,cAAc,CAAC,CAAA;;;;sBACS,WAAW;;;;;;AAAnB,KAAA,cAAQ,WAAW,CAAA;;;;YAE1C,IAAA,CAAA,UAAU,IAFC,mDAAW,EAAA,iBAAA,CAAA,IAAA,EAAA,wBAAA,EAAA,MAAA,CAAA,CAAA;YAId,IAAA,CAAA,QAAQ,IAAA,iBAAA,CAAA,IAAA,EAAA,6BAAA,CAAA,EAAc,EAAE,CAAA;YACxB,IAAA,CAAA,YAAY,GAAG,EAAE;
|
|
1
|
+
{"version":3,"file":"snice-layout.js","sources":["../../../components/layout/snice-layout.css?inline","../../../../components/layout/snice-layout.ts"],"sourcesContent":["export default \"/* Layout Component Styles */\\n:host {\\n display: block;\\n font-family: var(--snice-font-family, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif);\\n}\\n\\n.layout {\\n display: grid;\\n grid-template-rows: auto 1fr auto;\\n min-height: 100vh;\\n}\\n\\n.header {\\n display: flex;\\n align-items: center;\\n justify-content: space-between;\\n padding: var(--snice-spacing-md, 1rem) var(--snice-spacing-lg, 2rem);\\n background: var(--snice-color-background, white);\\n border-bottom: 1px solid var(--snice-color-border, #d1d5db);\\n box-shadow: 0 2px 4px rgba(0,0,0,0.1);\\n}\\n\\n.brand h1 {\\n margin: 0;\\n font-size: var(--snice-font-size-xl, 1.5rem);\\n color: var(--snice-color-text, #374151);\\n font-weight: var(--snice-font-weight-semibold, 600);\\n}\\n\\n.nav {\\n display: flex;\\n gap: var(--snice-spacing-lg, 2rem);\\n}\\n\\n.nav ::slotted(a) {\\n text-decoration: none;\\n color: var(--snice-color-text-secondary, #6b7280);\\n font-weight: var(--snice-font-weight-medium, 500);\\n padding: var(--snice-spacing-xs, 0.5rem) var(--snice-spacing-md, 1rem);\\n border-radius: var(--snice-border-radius-md, 4px);\\n transition: all var(--snice-transition-fast, 0.15s) ease;\\n}\\n\\n.nav ::slotted(a:hover) {\\n color: var(--snice-color-primary, #3b82f6);\\n background: var(--snice-color-background-secondary, #f8fafc);\\n}\\n\\n.nav ::slotted(a.active) {\\n color: var(--snice-color-primary, #3b82f6);\\n background: var(--snice-color-primary-light, #dbeafe);\\n font-weight: var(--snice-font-weight-semibold, 600);\\n}\\n\\n.main {\\n padding: var(--snice-spacing-lg, 2rem);\\n background: var(--snice-color-background-secondary, #f8fafc);\\n overflow-y: auto;\\n}\\n\\n.footer {\\n padding: var(--snice-spacing-md, 1rem) var(--snice-spacing-lg, 2rem);\\n background: var(--snice-color-background, white);\\n border-top: 1px solid var(--snice-color-border, #d1d5db);\\n text-align: center;\\n color: var(--snice-color-text-secondary, #6b7280);\\n font-size: var(--snice-font-size-sm, 0.875rem);\\n}\\n\\n.footer p {\\n margin: 0;\\n}\";",null],"names":[],"mappings":";;;;AAAA,UAAe,m/DAAm/D;;ICOr/D,WAAW,GAAA,CAAA,MAAA;4BADvB,OAAO,CAAC,cAAc,CAAC,CAAA;;;;sBACS,WAAW;;;;;;AAAnB,KAAA,cAAQ,WAAW,CAAA;;;;YAE1C,IAAA,CAAA,UAAU,IAFC,mDAAW,EAAA,iBAAA,CAAA,IAAA,EAAA,wBAAA,EAAA,MAAA,CAAA,CAAA;YAId,IAAA,CAAA,QAAQ,IAAA,iBAAA,CAAA,IAAA,EAAA,6BAAA,CAAA,EAAc,EAAE,CAAA;YACxB,IAAA,CAAA,YAAY,GAAG,EAAE;QAqD3B;;;sCAzDG,KAAK,CAAC,WAAW,CAAC,CAAA;AAkClB,YAAA,mBAAA,GAAA,CAAA,KAAK,EAAE,CAAA;AACR,YAAA,YAAA,CAAA,IAAA,EAAA,IAAA,EAAA,mBAAA,EAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,SAAA,EAAA,MAAA,EAAA,KAAA,EAAA,OAAA,EAAA,KAAA,EAAA,MAAA,EAAA,EAAA,GAAA,EAAA,GAAA,IAAA,SAAA,IAAA,GAAA,EAAA,GAAA,EAAA,GAAA,IAAA,GAAA,CAAA,OAAO,EAAA,EAAA,QAAA,EAAA,SAAA,EAAA,EAAA,IAAA,EAAA,0BAAA,CAAA;YAlCP,YAAA,CAAA,IAAA,EAAA,IAAA,EAAA,sBAAA,EAAA,EAAA,IAAA,EAAA,OAAA,EAAA,IAAA,EAAA,YAAA,EAAA,MAAA,EAAA,KAAA,EAAA,OAAA,EAAA,KAAA,EAAA,MAAA,EAAA,EAAA,GAAA,EAAA,GAAA,IAAA,YAAA,IAAA,GAAA,EAAA,GAAA,EAAA,GAAA,IAAA,GAAA,CAAA,UAAU,EAAA,GAAA,EAAA,CAAA,GAAA,EAAA,KAAA,KAAA,EAAA,GAAA,CAAV,UAAU,GAAA,KAAA,CAAA,CAAA,CAAA,EAAA,EAAA,QAAA,EAAA,SAAA,EAAA,EAAA,wBAAA,EAAA,6BAAA,CAAA;YAFZ,YAAA,CAAA,IAAA,EAAA,gBAAA,GAAA,EAAA,KAAA,EAAA,UAAA,EAAA,EAAA,gBAAA,EAAA,EAAA,IAAA,EAAA,OAAA,EAAA,IAAA,EAAA,UAAA,CAAA,IAAA,EAAA,QAAA,EAAA,SAAA,EAAA,EAAA,IAAA,EAAA,uBAAA,CAAA;;;YAAa,iBAAA,CAAA,UAAA,EAAA,uBAAA,CAAA;;QAOX,IAAI,GAAA;AACF,YAAA,gBAAe;;;;;;;;;;;;;;;;;;;;KAoBd;QACH;QAEA,GAAG,GAAA;AACD,YAAA,OAAO,GAAG;QACZ;QAGA,OAAO,GAAA;;YAEL,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;gBAC5B,IAAI,CAAC,SAAS,EAAE;YAClB;QACF;AAEA,QAAA,MAAM,CAAC,WAAuB,EAAE,QAAmB,EAAE,YAAoB,EAAE,YAAyB,EAAA;AAClG,YAAA,IAAI,CAAC,QAAQ,GAAG,QAAQ;AACxB,YAAA,IAAI,CAAC,YAAY,GAAG,YAAY;;AAGhC,YAAA,IAAI,IAAI,CAAC,UAAU,EAAE;gBACnB,IAAI,CAAC,SAAS,EAAE;YAClB;QACF;QAEA,SAAS,GAAA;AACP,YAAA,IAAI,IAAI,CAAC,UAAU,EAAE;AACnB,gBAAA,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,YAAY,CAAC;YAC1D;QACF;;;;;;;"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { __esDecorate, __runInitializers } from 'tslib';
|
|
2
|
-
import { element, property } from 'snice';
|
|
2
|
+
import { element, property, part } from 'snice';
|
|
3
3
|
|
|
4
4
|
var css = ":host {\n display: block;\n font-family: var(--snice-font-family, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif);\n contain: layout style paint;\n}\n\n.nav {\n display: flex;\n gap: var(--snice-spacing-md, 1rem);\n}\n\n.nav--horizontal {\n flex-direction: row;\n align-items: center;\n}\n\n.nav--vertical {\n flex-direction: column;\n align-items: stretch;\n}\n\n.nav__item {\n position: relative;\n}\n\n.nav__link {\n display: flex;\n align-items: center;\n gap: var(--snice-spacing-sm, 0.75rem);\n padding: var(--snice-spacing-sm, 0.75rem) var(--snice-spacing-md, 1rem);\n color: var(--snice-color-text-secondary, rgb(107 114 128));\n text-decoration: none;\n border-radius: var(--snice-border-radius-md, 0.375rem);\n font-size: var(--snice-font-size-md, 1rem);\n font-weight: var(--snice-font-weight-medium, 500);\n transition:\n background-color var(--snice-transition-fast, 150ms) ease,\n color var(--snice-transition-fast, 150ms) ease;\n}\n\n.nav__link:hover {\n background-color: var(--snice-color-background-secondary, rgb(243 244 246));\n color: var(--snice-color-text, rgb(23 23 23));\n}\n\n.nav__link:focus-visible {\n outline: var(--snice-focus-ring-width, 2px) solid var(--snice-focus-ring-color, rgb(59 130 246 / 0.5));\n outline-offset: var(--snice-focus-ring-offset, 2px);\n}\n\n.nav__link--active {\n background-color: var(--snice-color-primary, rgb(37 99 235));\n color: var(--snice-color-text-inverse, rgb(250 250 250));\n}\n\n.nav__link--active:hover {\n background-color: var(--snice-color-primary-dark, rgb(29 78 216));\n color: var(--snice-color-text-inverse, rgb(250 250 250));\n}\n\n.nav__icon {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n font-size: var(--snice-font-size-lg, 1.125rem);\n}\n\n.nav__label {\n white-space: nowrap;\n}\n\n/* Hierarchical variant */\n.nav--hierarchical {\n flex-direction: column;\n gap: var(--snice-spacing-xs, 0.5rem);\n}\n\n.nav--hierarchical .nav__group {\n display: flex;\n flex-direction: column;\n gap: var(--snice-spacing-xs, 0.5rem);\n}\n\n.nav--hierarchical .nav__submenu {\n list-style: none;\n margin: 0;\n padding: 0 0 0 var(--snice-spacing-xl, 2rem);\n display: flex;\n flex-direction: column;\n gap: var(--snice-spacing-2xs, 0.25rem);\n}\n\n.nav--hierarchical .nav__submenu .nav__item {\n margin: 0;\n}\n\n.nav--hierarchical .nav__submenu .nav__link {\n font-size: var(--snice-font-size-sm, 0.875rem);\n padding: var(--snice-spacing-xs, 0.5rem) var(--snice-spacing-md, 1rem);\n}\n\n/* Grouped variant */\n.nav--grouped {\n flex-direction: column;\n gap: var(--snice-spacing-lg, 1.5rem);\n}\n\n.nav--grouped .nav__group {\n display: flex;\n flex-direction: column;\n gap: var(--snice-spacing-xs, 0.5rem);\n}\n\n.nav--grouped .nav__group-label {\n font-size: var(--snice-font-size-xs, 0.75rem);\n font-weight: var(--snice-font-weight-semibold, 600);\n color: var(--snice-color-text-tertiary, rgb(115 115 115));\n text-transform: uppercase;\n letter-spacing: 0.05em;\n padding: 0 var(--snice-spacing-md, 1rem);\n margin-bottom: var(--snice-spacing-2xs, 0.25rem);\n}\n\n/* Vertical orientation specific */\n.nav--vertical .nav__item,\n.nav--vertical .nav__link {\n width: 100%;\n}\n\n/* Responsive adjustments */\n@media (max-width: 768px) {\n .nav--horizontal {\n flex-wrap: wrap;\n }\n\n .nav__label {\n font-size: var(--snice-font-size-sm, 0.875rem);\n }\n}\n";
|
|
5
5
|
|
|
@@ -9,9 +9,7 @@ let SniceNav = (() => {
|
|
|
9
9
|
let _classExtraInitializers = [];
|
|
10
10
|
let _classThis;
|
|
11
11
|
let _classSuper = HTMLElement;
|
|
12
|
-
let
|
|
13
|
-
let _placards_initializers = [];
|
|
14
|
-
let _placards_extraInitializers = [];
|
|
12
|
+
let _instanceExtraInitializers = [];
|
|
15
13
|
let _currentRoute_decorators;
|
|
16
14
|
let _currentRoute_initializers = [];
|
|
17
15
|
let _currentRoute_extraInitializers = [];
|
|
@@ -21,15 +19,16 @@ let SniceNav = (() => {
|
|
|
21
19
|
let _orientation_decorators;
|
|
22
20
|
let _orientation_initializers = [];
|
|
23
21
|
let _orientation_extraInitializers = [];
|
|
22
|
+
let _renderNavContent_decorators;
|
|
24
23
|
(class extends _classSuper {
|
|
25
24
|
static { _classThis = this; }
|
|
26
25
|
static {
|
|
27
26
|
const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
|
|
28
|
-
_placards_decorators = [property({ type: Array })];
|
|
29
27
|
_currentRoute_decorators = [property()];
|
|
30
28
|
_variant_decorators = [property()];
|
|
31
29
|
_orientation_decorators = [property()];
|
|
32
|
-
|
|
30
|
+
_renderNavContent_decorators = [part('nav-content')];
|
|
31
|
+
__esDecorate(this, null, _renderNavContent_decorators, { kind: "method", name: "renderNavContent", static: false, private: false, access: { has: obj => "renderNavContent" in obj, get: obj => obj.renderNavContent }, metadata: _metadata }, null, _instanceExtraInitializers);
|
|
33
32
|
__esDecorate(null, null, _currentRoute_decorators, { kind: "field", name: "currentRoute", static: false, private: false, access: { has: obj => "currentRoute" in obj, get: obj => obj.currentRoute, set: (obj, value) => { obj.currentRoute = value; } }, metadata: _metadata }, _currentRoute_initializers, _currentRoute_extraInitializers);
|
|
34
33
|
__esDecorate(null, null, _variant_decorators, { kind: "field", name: "variant", static: false, private: false, access: { has: obj => "variant" in obj, get: obj => obj.variant, set: (obj, value) => { obj.variant = value; } }, metadata: _metadata }, _variant_initializers, _variant_extraInitializers);
|
|
35
34
|
__esDecorate(null, null, _orientation_decorators, { kind: "field", name: "orientation", static: false, private: false, access: { has: obj => "orientation" in obj, get: obj => obj.orientation, set: (obj, value) => { obj.orientation = value; } }, metadata: _metadata }, _orientation_initializers, _orientation_extraInitializers);
|
|
@@ -39,19 +38,7 @@ let SniceNav = (() => {
|
|
|
39
38
|
__runInitializers(_classThis, _classExtraInitializers);
|
|
40
39
|
}
|
|
41
40
|
html() {
|
|
42
|
-
|
|
43
|
-
.filter(p => !p.parent && p.show !== false)
|
|
44
|
-
.sort((a, b) => (a.order || 0) - (b.order || 0));
|
|
45
|
-
if (navItems.length === 0) {
|
|
46
|
-
return '<slot></slot>';
|
|
47
|
-
}
|
|
48
|
-
if (this.variant === 'grouped') {
|
|
49
|
-
return this.renderGrouped(navItems);
|
|
50
|
-
}
|
|
51
|
-
if (this.variant === 'hierarchical') {
|
|
52
|
-
return this.renderHierarchical(navItems);
|
|
53
|
-
}
|
|
54
|
-
return this.renderFlat(navItems);
|
|
41
|
+
return /*html*/ `<div part="nav-content"></div><slot></slot>`;
|
|
55
42
|
}
|
|
56
43
|
css() {
|
|
57
44
|
return css;
|
|
@@ -142,10 +129,30 @@ let SniceNav = (() => {
|
|
|
142
129
|
this.currentRoute.startsWith(`/${placard.name}`) ||
|
|
143
130
|
(placard.name === 'home' && this.currentRoute === '/');
|
|
144
131
|
}
|
|
132
|
+
update(placards, currentRoute) {
|
|
133
|
+
this.placards = placards;
|
|
134
|
+
this.currentRoute = currentRoute;
|
|
135
|
+
this.renderNavContent();
|
|
136
|
+
}
|
|
137
|
+
renderNavContent() {
|
|
138
|
+
const navItems = this.placards
|
|
139
|
+
.filter(p => !p.parent && p.show !== false)
|
|
140
|
+
.sort((a, b) => (a.order || 0) - (b.order || 0));
|
|
141
|
+
if (navItems.length === 0) {
|
|
142
|
+
return '';
|
|
143
|
+
}
|
|
144
|
+
if (this.variant === 'grouped') {
|
|
145
|
+
return this.renderGrouped(navItems);
|
|
146
|
+
}
|
|
147
|
+
if (this.variant === 'hierarchical') {
|
|
148
|
+
return this.renderHierarchical(navItems);
|
|
149
|
+
}
|
|
150
|
+
return this.renderFlat(navItems);
|
|
151
|
+
}
|
|
145
152
|
constructor() {
|
|
146
153
|
super(...arguments);
|
|
147
|
-
this.placards = __runInitializers(this,
|
|
148
|
-
this.currentRoute =
|
|
154
|
+
this.placards = (__runInitializers(this, _instanceExtraInitializers), []);
|
|
155
|
+
this.currentRoute = __runInitializers(this, _currentRoute_initializers, '');
|
|
149
156
|
this.variant = (__runInitializers(this, _currentRoute_extraInitializers), __runInitializers(this, _variant_initializers, 'flat'));
|
|
150
157
|
this.orientation = (__runInitializers(this, _variant_extraInitializers), __runInitializers(this, _orientation_initializers, 'horizontal'));
|
|
151
158
|
__runInitializers(this, _orientation_extraInitializers);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"snice-nav.js","sources":["../../../components/nav/snice-nav.css?inline","../../../../components/nav/snice-nav.ts"],"sourcesContent":["export default \":host {\\n display: block;\\n font-family: var(--snice-font-family, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif);\\n contain: layout style paint;\\n}\\n\\n.nav {\\n display: flex;\\n gap: var(--snice-spacing-md, 1rem);\\n}\\n\\n.nav--horizontal {\\n flex-direction: row;\\n align-items: center;\\n}\\n\\n.nav--vertical {\\n flex-direction: column;\\n align-items: stretch;\\n}\\n\\n.nav__item {\\n position: relative;\\n}\\n\\n.nav__link {\\n display: flex;\\n align-items: center;\\n gap: var(--snice-spacing-sm, 0.75rem);\\n padding: var(--snice-spacing-sm, 0.75rem) var(--snice-spacing-md, 1rem);\\n color: var(--snice-color-text-secondary, rgb(107 114 128));\\n text-decoration: none;\\n border-radius: var(--snice-border-radius-md, 0.375rem);\\n font-size: var(--snice-font-size-md, 1rem);\\n font-weight: var(--snice-font-weight-medium, 500);\\n transition:\\n background-color var(--snice-transition-fast, 150ms) ease,\\n color var(--snice-transition-fast, 150ms) ease;\\n}\\n\\n.nav__link:hover {\\n background-color: var(--snice-color-background-secondary, rgb(243 244 246));\\n color: var(--snice-color-text, rgb(23 23 23));\\n}\\n\\n.nav__link:focus-visible {\\n outline: var(--snice-focus-ring-width, 2px) solid var(--snice-focus-ring-color, rgb(59 130 246 / 0.5));\\n outline-offset: var(--snice-focus-ring-offset, 2px);\\n}\\n\\n.nav__link--active {\\n background-color: var(--snice-color-primary, rgb(37 99 235));\\n color: var(--snice-color-text-inverse, rgb(250 250 250));\\n}\\n\\n.nav__link--active:hover {\\n background-color: var(--snice-color-primary-dark, rgb(29 78 216));\\n color: var(--snice-color-text-inverse, rgb(250 250 250));\\n}\\n\\n.nav__icon {\\n display: inline-flex;\\n align-items: center;\\n justify-content: center;\\n font-size: var(--snice-font-size-lg, 1.125rem);\\n}\\n\\n.nav__label {\\n white-space: nowrap;\\n}\\n\\n/* Hierarchical variant */\\n.nav--hierarchical {\\n flex-direction: column;\\n gap: var(--snice-spacing-xs, 0.5rem);\\n}\\n\\n.nav--hierarchical .nav__group {\\n display: flex;\\n flex-direction: column;\\n gap: var(--snice-spacing-xs, 0.5rem);\\n}\\n\\n.nav--hierarchical .nav__submenu {\\n list-style: none;\\n margin: 0;\\n padding: 0 0 0 var(--snice-spacing-xl, 2rem);\\n display: flex;\\n flex-direction: column;\\n gap: var(--snice-spacing-2xs, 0.25rem);\\n}\\n\\n.nav--hierarchical .nav__submenu .nav__item {\\n margin: 0;\\n}\\n\\n.nav--hierarchical .nav__submenu .nav__link {\\n font-size: var(--snice-font-size-sm, 0.875rem);\\n padding: var(--snice-spacing-xs, 0.5rem) var(--snice-spacing-md, 1rem);\\n}\\n\\n/* Grouped variant */\\n.nav--grouped {\\n flex-direction: column;\\n gap: var(--snice-spacing-lg, 1.5rem);\\n}\\n\\n.nav--grouped .nav__group {\\n display: flex;\\n flex-direction: column;\\n gap: var(--snice-spacing-xs, 0.5rem);\\n}\\n\\n.nav--grouped .nav__group-label {\\n font-size: var(--snice-font-size-xs, 0.75rem);\\n font-weight: var(--snice-font-weight-semibold, 600);\\n color: var(--snice-color-text-tertiary, rgb(115 115 115));\\n text-transform: uppercase;\\n letter-spacing: 0.05em;\\n padding: 0 var(--snice-spacing-md, 1rem);\\n margin-bottom: var(--snice-spacing-2xs, 0.25rem);\\n}\\n\\n/* Vertical orientation specific */\\n.nav--vertical .nav__item,\\n.nav--vertical .nav__link {\\n width: 100%;\\n}\\n\\n/* Responsive adjustments */\\n@media (max-width: 768px) {\\n .nav--horizontal {\\n flex-wrap: wrap;\\n }\\n\\n .nav__label {\\n font-size: var(--snice-font-size-sm, 0.875rem);\\n }\\n}\\n\";",null],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"snice-nav.js","sources":["../../../components/nav/snice-nav.css?inline","../../../../components/nav/snice-nav.ts"],"sourcesContent":["export default \":host {\\n display: block;\\n font-family: var(--snice-font-family, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif);\\n contain: layout style paint;\\n}\\n\\n.nav {\\n display: flex;\\n gap: var(--snice-spacing-md, 1rem);\\n}\\n\\n.nav--horizontal {\\n flex-direction: row;\\n align-items: center;\\n}\\n\\n.nav--vertical {\\n flex-direction: column;\\n align-items: stretch;\\n}\\n\\n.nav__item {\\n position: relative;\\n}\\n\\n.nav__link {\\n display: flex;\\n align-items: center;\\n gap: var(--snice-spacing-sm, 0.75rem);\\n padding: var(--snice-spacing-sm, 0.75rem) var(--snice-spacing-md, 1rem);\\n color: var(--snice-color-text-secondary, rgb(107 114 128));\\n text-decoration: none;\\n border-radius: var(--snice-border-radius-md, 0.375rem);\\n font-size: var(--snice-font-size-md, 1rem);\\n font-weight: var(--snice-font-weight-medium, 500);\\n transition:\\n background-color var(--snice-transition-fast, 150ms) ease,\\n color var(--snice-transition-fast, 150ms) ease;\\n}\\n\\n.nav__link:hover {\\n background-color: var(--snice-color-background-secondary, rgb(243 244 246));\\n color: var(--snice-color-text, rgb(23 23 23));\\n}\\n\\n.nav__link:focus-visible {\\n outline: var(--snice-focus-ring-width, 2px) solid var(--snice-focus-ring-color, rgb(59 130 246 / 0.5));\\n outline-offset: var(--snice-focus-ring-offset, 2px);\\n}\\n\\n.nav__link--active {\\n background-color: var(--snice-color-primary, rgb(37 99 235));\\n color: var(--snice-color-text-inverse, rgb(250 250 250));\\n}\\n\\n.nav__link--active:hover {\\n background-color: var(--snice-color-primary-dark, rgb(29 78 216));\\n color: var(--snice-color-text-inverse, rgb(250 250 250));\\n}\\n\\n.nav__icon {\\n display: inline-flex;\\n align-items: center;\\n justify-content: center;\\n font-size: var(--snice-font-size-lg, 1.125rem);\\n}\\n\\n.nav__label {\\n white-space: nowrap;\\n}\\n\\n/* Hierarchical variant */\\n.nav--hierarchical {\\n flex-direction: column;\\n gap: var(--snice-spacing-xs, 0.5rem);\\n}\\n\\n.nav--hierarchical .nav__group {\\n display: flex;\\n flex-direction: column;\\n gap: var(--snice-spacing-xs, 0.5rem);\\n}\\n\\n.nav--hierarchical .nav__submenu {\\n list-style: none;\\n margin: 0;\\n padding: 0 0 0 var(--snice-spacing-xl, 2rem);\\n display: flex;\\n flex-direction: column;\\n gap: var(--snice-spacing-2xs, 0.25rem);\\n}\\n\\n.nav--hierarchical .nav__submenu .nav__item {\\n margin: 0;\\n}\\n\\n.nav--hierarchical .nav__submenu .nav__link {\\n font-size: var(--snice-font-size-sm, 0.875rem);\\n padding: var(--snice-spacing-xs, 0.5rem) var(--snice-spacing-md, 1rem);\\n}\\n\\n/* Grouped variant */\\n.nav--grouped {\\n flex-direction: column;\\n gap: var(--snice-spacing-lg, 1.5rem);\\n}\\n\\n.nav--grouped .nav__group {\\n display: flex;\\n flex-direction: column;\\n gap: var(--snice-spacing-xs, 0.5rem);\\n}\\n\\n.nav--grouped .nav__group-label {\\n font-size: var(--snice-font-size-xs, 0.75rem);\\n font-weight: var(--snice-font-weight-semibold, 600);\\n color: var(--snice-color-text-tertiary, rgb(115 115 115));\\n text-transform: uppercase;\\n letter-spacing: 0.05em;\\n padding: 0 var(--snice-spacing-md, 1rem);\\n margin-bottom: var(--snice-spacing-2xs, 0.25rem);\\n}\\n\\n/* Vertical orientation specific */\\n.nav--vertical .nav__item,\\n.nav--vertical .nav__link {\\n width: 100%;\\n}\\n\\n/* Responsive adjustments */\\n@media (max-width: 768px) {\\n .nav--horizontal {\\n flex-wrap: wrap;\\n }\\n\\n .nav__label {\\n font-size: var(--snice-font-size-sm, 0.875rem);\\n }\\n}\\n\";",null],"names":[],"mappings":"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"}
|
package/dist/index.cjs
CHANGED
package/dist/index.esm.js
CHANGED
package/dist/index.iife.js
CHANGED
package/dist/symbols.esm.js
CHANGED
package/dist/transitions.esm.js
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "snice",
|
|
3
|
-
"version": "2.5.
|
|
3
|
+
"version": "2.5.3",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "Imperative TypeScript framework for building vanilla web components with decorators, routing, and controllers. No virtual DOM, no build complexity.",
|
|
6
6
|
"main": "dist/index.cjs",
|