snice 2.2.3 → 2.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +93 -14
- package/bin/templates/base/src/main.ts +3 -0
- package/bin/templates/base/src/pages/about-page.ts +10 -1
- package/bin/templates/base/src/pages/home-page.ts +10 -1
- package/bin/templates/base/src/router.ts +3 -2
- package/dist/components/accordion/snice-accordion-item.js +3 -3
- package/dist/components/accordion/snice-accordion-item.js.map +1 -1
- package/dist/components/accordion/snice-accordion.js +1 -1
- package/dist/components/accordion/snice-accordion.js.map +1 -1
- package/dist/components/alert/snice-alert.js +5 -5
- package/dist/components/alert/snice-alert.js.map +1 -1
- package/dist/components/avatar/snice-avatar.js +7 -7
- package/dist/components/avatar/snice-avatar.js.map +1 -1
- package/dist/components/badge/snice-badge.js +10 -10
- package/dist/components/badge/snice-badge.js.map +1 -1
- package/dist/components/breadcrumbs/snice-breadcrumbs.js +3 -3
- package/dist/components/breadcrumbs/snice-breadcrumbs.js.map +1 -1
- package/dist/components/breadcrumbs/snice-crumb.js +5 -5
- package/dist/components/breadcrumbs/snice-crumb.js.map +1 -1
- package/dist/components/button/snice-button.js +12 -12
- package/dist/components/button/snice-button.js.map +1 -1
- package/dist/components/card/snice-card.js +5 -5
- package/dist/components/card/snice-card.js.map +1 -1
- package/dist/components/checkbox/snice-checkbox.js +9 -9
- package/dist/components/checkbox/snice-checkbox.js.map +1 -1
- package/dist/components/chip/snice-chip.js +8 -8
- package/dist/components/chip/snice-chip.js.map +1 -1
- package/dist/components/date-picker/snice-date-picker.js +18 -18
- package/dist/components/date-picker/snice-date-picker.js.map +1 -1
- package/dist/components/divider/snice-divider.js +8 -8
- package/dist/components/divider/snice-divider.js.map +1 -1
- package/dist/components/drawer/snice-drawer.d.ts +4 -0
- package/dist/components/drawer/snice-drawer.js +67 -32
- package/dist/components/drawer/snice-drawer.js.map +1 -1
- package/dist/components/drawer/snice-drawer.types.d.ts +1 -0
- package/dist/components/input/snice-input.js +24 -24
- package/dist/components/input/snice-input.js.map +1 -1
- package/dist/components/layout/snice-layout-blog.d.ts +10 -1
- package/dist/components/layout/snice-layout-blog.js +47 -8
- package/dist/components/layout/snice-layout-blog.js.map +1 -1
- package/dist/components/layout/snice-layout-card.js +2 -2
- package/dist/components/layout/snice-layout-card.js.map +1 -1
- package/dist/components/layout/snice-layout-centered.js +1 -1
- package/dist/components/layout/snice-layout-centered.js.map +1 -1
- package/dist/components/layout/snice-layout-dashboard.d.ts +12 -1
- package/dist/components/layout/snice-layout-dashboard.js +92 -13
- package/dist/components/layout/snice-layout-dashboard.js.map +1 -1
- package/dist/components/layout/snice-layout-fullscreen.js +1 -1
- package/dist/components/layout/snice-layout-fullscreen.js.map +1 -1
- package/dist/components/layout/snice-layout-landing.d.ts +10 -1
- package/dist/components/layout/snice-layout-landing.js +47 -8
- package/dist/components/layout/snice-layout-landing.js.map +1 -1
- package/dist/components/layout/snice-layout-sidebar.d.ts +13 -1
- package/dist/components/layout/snice-layout-sidebar.js +70 -29
- package/dist/components/layout/snice-layout-sidebar.js.map +1 -1
- package/dist/components/layout/snice-layout-split.js +2 -2
- package/dist/components/layout/snice-layout-split.js.map +1 -1
- package/dist/components/layout/snice-layout.d.ts +9 -1
- package/dist/components/layout/snice-layout.js +35 -8
- package/dist/components/layout/snice-layout.js.map +1 -1
- package/dist/components/layout/snice-layout.types.d.ts +2 -1
- package/dist/components/login/snice-login.js +8 -8
- package/dist/components/login/snice-login.js.map +1 -1
- package/dist/components/modal/snice-modal.js +7 -7
- package/dist/components/modal/snice-modal.js.map +1 -1
- package/dist/components/nav/snice-nav.d.ts +16 -0
- package/dist/components/nav/snice-nav.js +158 -0
- package/dist/components/nav/snice-nav.js.map +1 -0
- package/dist/components/nav/snice-nav.types.d.ts +11 -0
- package/dist/components/pagination/snice-pagination.js +9 -9
- package/dist/components/pagination/snice-pagination.js.map +1 -1
- package/dist/components/progress/snice-progress.js +11 -11
- package/dist/components/progress/snice-progress.js.map +1 -1
- package/dist/components/radio/snice-radio.js +8 -8
- package/dist/components/radio/snice-radio.js.map +1 -1
- package/dist/components/select/snice-option.js +5 -5
- package/dist/components/select/snice-option.js.map +1 -1
- package/dist/components/select/snice-select.js +14 -14
- package/dist/components/select/snice-select.js.map +1 -1
- package/dist/components/skeleton/snice-skeleton.js +6 -6
- package/dist/components/skeleton/snice-skeleton.js.map +1 -1
- package/dist/components/switch/snice-switch.js +10 -10
- package/dist/components/switch/snice-switch.js.map +1 -1
- package/dist/components/table/snice-cell-boolean.js +8 -8
- package/dist/components/table/snice-cell-boolean.js.map +1 -1
- package/dist/components/table/snice-cell-date.js +8 -8
- package/dist/components/table/snice-cell-date.js.map +1 -1
- package/dist/components/table/snice-cell-duration.js +3 -3
- package/dist/components/table/snice-cell-duration.js.map +1 -1
- package/dist/components/table/snice-cell-filesize.js +3 -3
- package/dist/components/table/snice-cell-filesize.js.map +1 -1
- package/dist/components/table/snice-cell-number.js +9 -9
- package/dist/components/table/snice-cell-number.js.map +1 -1
- package/dist/components/table/snice-cell-progress.js +3 -3
- package/dist/components/table/snice-cell-progress.js.map +1 -1
- package/dist/components/table/snice-cell-rating.js +3 -3
- package/dist/components/table/snice-cell-rating.js.map +1 -1
- package/dist/components/table/snice-cell-sparkline.js +13 -13
- package/dist/components/table/snice-cell-sparkline.js.map +1 -1
- package/dist/components/table/snice-cell-text.js +4 -4
- package/dist/components/table/snice-cell-text.js.map +1 -1
- package/dist/components/table/snice-cell.js +2 -2
- package/dist/components/table/snice-cell.js.map +1 -1
- package/dist/components/table/snice-column.js +10 -10
- package/dist/components/table/snice-column.js.map +1 -1
- package/dist/components/table/snice-header.js +5 -5
- package/dist/components/table/snice-header.js.map +1 -1
- package/dist/components/table/snice-row.js +5 -5
- package/dist/components/table/snice-row.js.map +1 -1
- package/dist/components/table/snice-table.js +7 -7
- package/dist/components/table/snice-table.js.map +1 -1
- package/dist/components/tabs/snice-tab-panel.js +5 -5
- package/dist/components/tabs/snice-tab-panel.js.map +1 -1
- package/dist/components/tabs/snice-tab.js +2 -2
- package/dist/components/tabs/snice-tab.js.map +1 -1
- package/dist/components/tabs/snice-tabs.js +4 -4
- package/dist/components/tabs/snice-tabs.js.map +1 -1
- package/dist/components/toast/snice-toast-container.js +1 -1
- package/dist/components/toast/snice-toast-container.js.map +1 -1
- package/dist/components/toast/snice-toast.js +4 -4
- package/dist/components/toast/snice-toast.js.map +1 -1
- package/dist/components/tooltip/snice-tooltip.js +11 -11
- package/dist/components/tooltip/snice-tooltip.js.map +1 -1
- package/dist/index.cjs +361 -144
- package/dist/index.cjs.map +1 -1
- package/dist/index.esm.js +360 -141
- package/dist/index.esm.js.map +1 -1
- package/dist/index.iife.js +361 -144
- package/dist/index.iife.js.map +1 -1
- package/dist/symbols.cjs.map +1 -1
- package/dist/symbols.esm.js +8 -2
- package/dist/symbols.esm.js.map +1 -1
- package/dist/transitions.esm.js +1 -1
- package/dist/types/controller.d.ts +1 -1
- package/dist/types/element.d.ts +70 -3
- package/dist/types/events.d.ts +2 -2
- package/dist/types/global.d.ts +1 -1
- package/dist/types/index.d.ts +3 -2
- package/dist/types/observe.d.ts +1 -1
- package/dist/types/request-response.d.ts +2 -2
- package/dist/types/router.d.ts +2 -2
- package/dist/types/symbols.d.ts +5 -0
- package/dist/types/testing.d.ts +4 -0
- package/dist/types/transitions.d.ts +1 -1
- package/dist/types/types/adopted-options.d.ts +4 -0
- package/dist/types/types/app-context.d.ts +81 -0
- package/dist/types/types/guard.d.ts +19 -0
- package/dist/types/types/index.d.ts +23 -17
- package/dist/types/types/moved-options.d.ts +4 -0
- package/dist/types/types/{PageOptions.d.ts → page-options.d.ts} +13 -4
- package/dist/types/types/placard.d.ts +90 -0
- package/dist/types/types/{PropertyOptions.d.ts → property-options.d.ts} +2 -3
- package/dist/types/types/route-params.d.ts +21 -0
- package/dist/types/types/{RouterInstance.d.ts → router-instance.d.ts} +5 -3
- package/dist/types/types/{RouterOptions.d.ts → router-options.d.ts} +1 -1
- package/dist/types/utils.d.ts +8 -0
- package/package.json +6 -2
- /package/dist/types/types/{DispatchOptions.d.ts → dispatch-options.d.ts} +0 -0
- /package/dist/types/types/{IController.d.ts → i-controller.d.ts} +0 -0
- /package/dist/types/types/{ObserveOptions.d.ts → observe-options.d.ts} +0 -0
- /package/dist/types/types/{OnOptions.d.ts → on-options.d.ts} +0 -0
- /package/dist/types/types/{PartOptions.d.ts → part-options.d.ts} +0 -0
- /package/dist/types/types/{PropertyConverter.d.ts → property-converter.d.ts} +0 -0
- /package/dist/types/types/{QueryOptions.d.ts → query-options.d.ts} +0 -0
- /package/dist/types/types/{RequestOptions.d.ts → request-options.d.ts} +0 -0
- /package/dist/types/types/{RespondOptions.d.ts → respond-options.d.ts} +0 -0
- /package/dist/types/types/{SimpleArray.d.ts → simple-array.d.ts} +0 -0
- /package/dist/types/types/{SniceElement.d.ts → snice-element.d.ts} +0 -0
- /package/dist/types/types/{SniceGlobal.d.ts → snice-global.d.ts} +0 -0
- /package/dist/types/types/{Transition.d.ts → transition.d.ts} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"snice-layout-centered.js","sources":["../../../components/layout/snice-layout-centered.css?inline","../../../../components/layout/snice-layout-centered.ts"],"sourcesContent":["export default \"/* Centered Layout - For forms, auth pages, etc */\\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 min-height: 100vh;\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n padding: var(--snice-spacing-lg, 2rem);\\n background: var(--snice-color-background-secondary, #f8fafc);\\n}\\n\\n.container {\\n width: 100%;\\n max-width: 400px;\\n background: var(--snice-color-background, white);\\n border-radius: var(--snice-border-radius-lg, 8px);\\n box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06);\\n padding: var(--snice-spacing-xl, 3rem);\\n}\\n\\n/* Width variants */\\n:host([width=\\\"sm\\\"]) .container {\\n max-width: 320px;\\n}\\n\\n:host([width=\\\"md\\\"]) .container {\\n max-width: 400px;\\n}\\n\\n:host([width=\\\"lg\\\"]) .container {\\n max-width: 500px;\\n}\\n\\n:host([width=\\\"xl\\\"]) .container {\\n max-width: 600px;\\n}\\n\\n/* Mobile responsive */\\n@media (max-width: 480px) {\\n .layout {\\n padding: var(--snice-spacing-md, 1rem);\\n }\\n \\n .container {\\n padding: var(--snice-spacing-lg, 2rem);\\n }\\n}\";",null],"names":[],"mappings":";;;AAAA,UAAe,0oCAA0oC;;ICI5oC,mBAAmB,GAAA,CAAA,MAAA;4BAD/B,OAAO,CAAC,uBAAuB,CAAC,CAAA;;;;sBACQ,WAAW;;;;AAAnB,KAAA,cAAQ,WAAW,CAAA;;;;
|
|
1
|
+
{"version":3,"file":"snice-layout-centered.js","sources":["../../../components/layout/snice-layout-centered.css?inline","../../../../components/layout/snice-layout-centered.ts"],"sourcesContent":["export default \"/* Centered Layout - For forms, auth pages, etc */\\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 min-height: 100vh;\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n padding: var(--snice-spacing-lg, 2rem);\\n background: var(--snice-color-background-secondary, #f8fafc);\\n}\\n\\n.container {\\n width: 100%;\\n max-width: 400px;\\n background: var(--snice-color-background, white);\\n border-radius: var(--snice-border-radius-lg, 8px);\\n box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06);\\n padding: var(--snice-spacing-xl, 3rem);\\n}\\n\\n/* Width variants */\\n:host([width=\\\"sm\\\"]) .container {\\n max-width: 320px;\\n}\\n\\n:host([width=\\\"md\\\"]) .container {\\n max-width: 400px;\\n}\\n\\n:host([width=\\\"lg\\\"]) .container {\\n max-width: 500px;\\n}\\n\\n:host([width=\\\"xl\\\"]) .container {\\n max-width: 600px;\\n}\\n\\n/* Mobile responsive */\\n@media (max-width: 480px) {\\n .layout {\\n padding: var(--snice-spacing-md, 1rem);\\n }\\n \\n .container {\\n padding: var(--snice-spacing-lg, 2rem);\\n }\\n}\";",null],"names":[],"mappings":";;;AAAA,UAAe,0oCAA0oC;;ICI5oC,mBAAmB,GAAA,CAAA,MAAA;4BAD/B,OAAO,CAAC,uBAAuB,CAAC,CAAA;;;;sBACQ,WAAW;;;;AAAnB,KAAA,cAAQ,WAAW,CAAA;;;;iCACjD,QAAQ,CAAC,EAAI,CAAC,CAAA;YACf,YAAA,CAAA,IAAA,EAAA,IAAA,EAAA,iBAAA,EAAA,EAAA,IAAA,EAAA,OAAA,EAAA,IAAA,EAAA,OAAA,EAAA,MAAA,EAAA,KAAA,EAAA,OAAA,EAAA,KAAA,EAAA,MAAA,EAAA,EAAA,GAAA,EAAA,GAAA,IAAA,OAAA,IAAA,GAAA,EAAA,GAAA,EAAA,GAAA,IAAA,GAAA,CAAA,KAAK,EAAA,GAAA,EAAA,CAAA,GAAA,EAAA,KAAA,KAAA,EAAA,GAAA,CAAL,KAAK,GAAA,KAAA,CAAA,CAAA,CAAA,EAAA,EAAA,QAAA,EAAA,SAAA,EAAA,EAAA,mBAAA,EAAA,wBAAA,CAAA;YAFP,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;;QAIX,IAAI,GAAA;AACF,YAAA,gBAAe;;;;;;KAMd;QACH;QAEA,GAAG,GAAA;AACD,YAAA,OAAO,GAAG;QACZ;;;YAdA,IAAA,CAAA,KAAK,GAAA,iBAAA,CAAA,IAAA,EAAA,mBAAA,EAA8B,IAAI,CAAA;;;;;;;;;"}
|
|
@@ -1,4 +1,15 @@
|
|
|
1
|
-
|
|
1
|
+
import type { AppContext, Placard, RouteParams, Layout } from 'snice';
|
|
2
|
+
import '../breadcrumbs/snice-breadcrumbs.ts';
|
|
3
|
+
import '../nav/snice-nav.ts';
|
|
4
|
+
import type { SniceNav } from '../nav/snice-nav.ts';
|
|
5
|
+
export declare class SniceLayoutDashboard extends HTMLElement implements Layout {
|
|
6
|
+
navElement: SniceNav;
|
|
7
|
+
private placards;
|
|
8
|
+
private currentRoute;
|
|
2
9
|
html(): string;
|
|
3
10
|
css(): string;
|
|
11
|
+
update(_appContext: AppContext, placards: Placard[], currentRoute: string, _routeParams: RouteParams): void;
|
|
12
|
+
renderNav(): string;
|
|
13
|
+
renderBreadcrumbs(): string;
|
|
14
|
+
private buildBreadcrumbTrail;
|
|
4
15
|
}
|
|
@@ -1,5 +1,7 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { element } from 'snice';
|
|
1
|
+
import { __runInitializers, __esDecorate } from 'tslib';
|
|
2
|
+
import { element, query, part } from 'snice';
|
|
3
|
+
import '../breadcrumbs/snice-breadcrumbs.js';
|
|
4
|
+
import '../nav/snice-nav.js';
|
|
3
5
|
|
|
4
6
|
var css = "/* Dashboard Layout - Complex grid with multiple areas */\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-areas: \n \"header header header\"\n \"nav nav nav\"\n \"sidebar main right-sidebar\";\n grid-template-rows: auto auto 1fr;\n grid-template-columns: 250px 1fr 250px;\n min-height: 100vh;\n gap: 1px;\n background: var(--snice-color-border, #d1d5db);\n}\n\n.header {\n grid-area: 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}\n\n.header-start h1 {\n margin: 0;\n font-size: var(--snice-font-size-xl, 1.5rem);\n font-weight: var(--snice-font-weight-semibold, 600);\n color: var(--snice-color-text, #374151);\n}\n\n.header-center {\n flex: 1;\n max-width: 400px;\n margin: 0 var(--snice-spacing-lg, 2rem);\n}\n\n.nav {\n grid-area: nav;\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}\n\n.sidebar {\n grid-area: sidebar;\n background: var(--snice-color-background, white);\n padding: var(--snice-spacing-lg, 2rem);\n overflow-y: auto;\n}\n\n.main {\n grid-area: main;\n padding: var(--snice-spacing-lg, 2rem);\n background: var(--snice-color-background-secondary, #f8fafc);\n overflow-y: auto;\n}\n\n.right-sidebar {\n grid-area: right-sidebar;\n background: var(--snice-color-background, white);\n padding: var(--snice-spacing-lg, 2rem);\n overflow-y: auto;\n}\n\n/* Responsive */\n@media (max-width: 1024px) {\n .layout {\n grid-template-areas: \n \"header header\"\n \"nav nav\"\n \"main main\";\n grid-template-columns: 1fr;\n }\n \n .sidebar,\n .right-sidebar {\n display: none;\n }\n}\n\n@media (max-width: 768px) {\n .header {\n flex-direction: column;\n gap: var(--snice-spacing-md, 1rem);\n }\n \n .header-center {\n margin: 0;\n max-width: none;\n width: 100%;\n }\n}";
|
|
5
7
|
|
|
@@ -9,10 +11,28 @@ let SniceLayoutDashboard = (() => {
|
|
|
9
11
|
let _classExtraInitializers = [];
|
|
10
12
|
let _classThis;
|
|
11
13
|
let _classSuper = HTMLElement;
|
|
14
|
+
let _instanceExtraInitializers = [];
|
|
15
|
+
let _navElement_decorators;
|
|
16
|
+
let _navElement_initializers = [];
|
|
17
|
+
let _navElement_extraInitializers = [];
|
|
18
|
+
let _renderNav_decorators;
|
|
19
|
+
let _renderBreadcrumbs_decorators;
|
|
12
20
|
(class extends _classSuper {
|
|
13
21
|
static { _classThis = this; }
|
|
22
|
+
constructor() {
|
|
23
|
+
super(...arguments);
|
|
24
|
+
this.navElement = (__runInitializers(this, _instanceExtraInitializers), __runInitializers(this, _navElement_initializers, void 0));
|
|
25
|
+
this.placards = (__runInitializers(this, _navElement_extraInitializers), []);
|
|
26
|
+
this.currentRoute = '';
|
|
27
|
+
}
|
|
14
28
|
static {
|
|
15
29
|
const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
|
|
30
|
+
_navElement_decorators = [query('snice-nav')];
|
|
31
|
+
_renderNav_decorators = [part('nav')];
|
|
32
|
+
_renderBreadcrumbs_decorators = [part('breadcrumbs')];
|
|
33
|
+
__esDecorate(this, null, _renderNav_decorators, { kind: "method", name: "renderNav", static: false, private: false, access: { has: obj => "renderNav" in obj, get: obj => obj.renderNav }, metadata: _metadata }, null, _instanceExtraInitializers);
|
|
34
|
+
__esDecorate(this, null, _renderBreadcrumbs_decorators, { kind: "method", name: "renderBreadcrumbs", static: false, private: false, access: { has: obj => "renderBreadcrumbs" in obj, get: obj => obj.renderBreadcrumbs }, metadata: _metadata }, null, _instanceExtraInitializers);
|
|
35
|
+
__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);
|
|
16
36
|
__esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
|
|
17
37
|
_classThis = _classDescriptor.value;
|
|
18
38
|
if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
|
|
@@ -34,19 +54,15 @@ let SniceLayoutDashboard = (() => {
|
|
|
34
54
|
<slot name="user"></slot>
|
|
35
55
|
</div>
|
|
36
56
|
</header>
|
|
37
|
-
|
|
38
|
-
<nav class="nav">
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
<aside class="sidebar">
|
|
43
|
-
<slot name="sidebar"></slot>
|
|
44
|
-
</aside>
|
|
45
|
-
|
|
57
|
+
|
|
58
|
+
<snice-nav class="nav" part="nav" variant="grouped" orientation="horizontal"></snice-nav>
|
|
59
|
+
|
|
60
|
+
<aside class="sidebar" part="breadcrumbs"></aside>
|
|
61
|
+
|
|
46
62
|
<main class="main">
|
|
47
|
-
<slot></slot>
|
|
63
|
+
<slot name="page"></slot>
|
|
48
64
|
</main>
|
|
49
|
-
|
|
65
|
+
|
|
50
66
|
<aside class="right-sidebar">
|
|
51
67
|
<slot name="right-sidebar"></slot>
|
|
52
68
|
</aside>
|
|
@@ -56,6 +72,69 @@ let SniceLayoutDashboard = (() => {
|
|
|
56
72
|
css() {
|
|
57
73
|
return css;
|
|
58
74
|
}
|
|
75
|
+
update(_appContext, placards, currentRoute, _routeParams) {
|
|
76
|
+
this.placards = placards;
|
|
77
|
+
this.currentRoute = currentRoute;
|
|
78
|
+
// Update navigation and breadcrumbs
|
|
79
|
+
this.renderNav();
|
|
80
|
+
this.renderBreadcrumbs();
|
|
81
|
+
}
|
|
82
|
+
renderNav() {
|
|
83
|
+
if (this.navElement) {
|
|
84
|
+
this.navElement.placards = this.placards;
|
|
85
|
+
this.navElement.currentRoute = this.currentRoute;
|
|
86
|
+
}
|
|
87
|
+
return '';
|
|
88
|
+
}
|
|
89
|
+
renderBreadcrumbs() {
|
|
90
|
+
const currentPlacard = this.placards.find(p => this.currentRoute === p.name || this.currentRoute.startsWith(`/${p.name}`));
|
|
91
|
+
if (!currentPlacard) {
|
|
92
|
+
return '';
|
|
93
|
+
}
|
|
94
|
+
// Build breadcrumb trail
|
|
95
|
+
const breadcrumbs = this.buildBreadcrumbTrail(currentPlacard);
|
|
96
|
+
if (breadcrumbs.length === 0) {
|
|
97
|
+
return '';
|
|
98
|
+
}
|
|
99
|
+
return `
|
|
100
|
+
<snice-breadcrumbs
|
|
101
|
+
items='${JSON.stringify(breadcrumbs.map(p => ({
|
|
102
|
+
label: p.title,
|
|
103
|
+
href: `#/${p.name}`,
|
|
104
|
+
icon: p.icon
|
|
105
|
+
})))}'
|
|
106
|
+
separator="/">
|
|
107
|
+
</snice-breadcrumbs>
|
|
108
|
+
`;
|
|
109
|
+
}
|
|
110
|
+
buildBreadcrumbTrail(placard) {
|
|
111
|
+
const trail = [];
|
|
112
|
+
// If explicit breadcrumbs are defined, use them
|
|
113
|
+
if (placard.breadcrumbs && placard.breadcrumbs.length > 0) {
|
|
114
|
+
placard.breadcrumbs.forEach(name => {
|
|
115
|
+
const p = this.placards.find(pc => pc.name === name);
|
|
116
|
+
if (p)
|
|
117
|
+
trail.push(p);
|
|
118
|
+
});
|
|
119
|
+
return trail;
|
|
120
|
+
}
|
|
121
|
+
// Otherwise, build from parent hierarchy
|
|
122
|
+
let current = placard;
|
|
123
|
+
const visited = new Set();
|
|
124
|
+
while (current) {
|
|
125
|
+
if (visited.has(current.name))
|
|
126
|
+
break; // Prevent infinite loops
|
|
127
|
+
visited.add(current.name);
|
|
128
|
+
trail.unshift(current);
|
|
129
|
+
if (current.parent) {
|
|
130
|
+
current = this.placards.find(p => p.name === current.parent);
|
|
131
|
+
}
|
|
132
|
+
else {
|
|
133
|
+
break;
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
return trail;
|
|
137
|
+
}
|
|
59
138
|
});
|
|
60
139
|
return _classThis;
|
|
61
140
|
})();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"snice-layout-dashboard.js","sources":["../../../components/layout/snice-layout-dashboard.css?inline","../../../../components/layout/snice-layout-dashboard.ts"],"sourcesContent":["export default \"/* Dashboard Layout - Complex grid with multiple areas */\\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-areas: \\n \\\"header header header\\\"\\n \\\"nav nav nav\\\"\\n \\\"sidebar main right-sidebar\\\";\\n grid-template-rows: auto auto 1fr;\\n grid-template-columns: 250px 1fr 250px;\\n min-height: 100vh;\\n gap: 1px;\\n background: var(--snice-color-border, #d1d5db);\\n}\\n\\n.header {\\n grid-area: 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}\\n\\n.header-start h1 {\\n margin: 0;\\n font-size: var(--snice-font-size-xl, 1.5rem);\\n font-weight: var(--snice-font-weight-semibold, 600);\\n color: var(--snice-color-text, #374151);\\n}\\n\\n.header-center {\\n flex: 1;\\n max-width: 400px;\\n margin: 0 var(--snice-spacing-lg, 2rem);\\n}\\n\\n.nav {\\n grid-area: nav;\\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}\\n\\n.sidebar {\\n grid-area: sidebar;\\n background: var(--snice-color-background, white);\\n padding: var(--snice-spacing-lg, 2rem);\\n overflow-y: auto;\\n}\\n\\n.main {\\n grid-area: main;\\n padding: var(--snice-spacing-lg, 2rem);\\n background: var(--snice-color-background-secondary, #f8fafc);\\n overflow-y: auto;\\n}\\n\\n.right-sidebar {\\n grid-area: right-sidebar;\\n background: var(--snice-color-background, white);\\n padding: var(--snice-spacing-lg, 2rem);\\n overflow-y: auto;\\n}\\n\\n/* Responsive */\\n@media (max-width: 1024px) {\\n .layout {\\n grid-template-areas: \\n \\\"header header\\\"\\n \\\"nav nav\\\"\\n \\\"main main\\\";\\n grid-template-columns: 1fr;\\n }\\n \\n .sidebar,\\n .right-sidebar {\\n display: none;\\n }\\n}\\n\\n@media (max-width: 768px) {\\n .header {\\n flex-direction: column;\\n gap: var(--snice-spacing-md, 1rem);\\n }\\n \\n .header-center {\\n margin: 0;\\n max-width: none;\\n width: 100%;\\n }\\n}\";",null],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"snice-layout-dashboard.js","sources":["../../../components/layout/snice-layout-dashboard.css?inline","../../../../components/layout/snice-layout-dashboard.ts"],"sourcesContent":["export default \"/* Dashboard Layout - Complex grid with multiple areas */\\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-areas: \\n \\\"header header header\\\"\\n \\\"nav nav nav\\\"\\n \\\"sidebar main right-sidebar\\\";\\n grid-template-rows: auto auto 1fr;\\n grid-template-columns: 250px 1fr 250px;\\n min-height: 100vh;\\n gap: 1px;\\n background: var(--snice-color-border, #d1d5db);\\n}\\n\\n.header {\\n grid-area: 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}\\n\\n.header-start h1 {\\n margin: 0;\\n font-size: var(--snice-font-size-xl, 1.5rem);\\n font-weight: var(--snice-font-weight-semibold, 600);\\n color: var(--snice-color-text, #374151);\\n}\\n\\n.header-center {\\n flex: 1;\\n max-width: 400px;\\n margin: 0 var(--snice-spacing-lg, 2rem);\\n}\\n\\n.nav {\\n grid-area: nav;\\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}\\n\\n.sidebar {\\n grid-area: sidebar;\\n background: var(--snice-color-background, white);\\n padding: var(--snice-spacing-lg, 2rem);\\n overflow-y: auto;\\n}\\n\\n.main {\\n grid-area: main;\\n padding: var(--snice-spacing-lg, 2rem);\\n background: var(--snice-color-background-secondary, #f8fafc);\\n overflow-y: auto;\\n}\\n\\n.right-sidebar {\\n grid-area: right-sidebar;\\n background: var(--snice-color-background, white);\\n padding: var(--snice-spacing-lg, 2rem);\\n overflow-y: auto;\\n}\\n\\n/* Responsive */\\n@media (max-width: 1024px) {\\n .layout {\\n grid-template-areas: \\n \\\"header header\\\"\\n \\\"nav nav\\\"\\n \\\"main main\\\";\\n grid-template-columns: 1fr;\\n }\\n \\n .sidebar,\\n .right-sidebar {\\n display: none;\\n }\\n}\\n\\n@media (max-width: 768px) {\\n .header {\\n flex-direction: column;\\n gap: var(--snice-spacing-md, 1rem);\\n }\\n \\n .header-center {\\n margin: 0;\\n max-width: none;\\n width: 100%;\\n }\\n}\";",null],"names":[],"mappings":"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"}
|
|
@@ -16,7 +16,7 @@ let SniceLayoutFullscreen = (() => {
|
|
|
16
16
|
static { _classThis = this; }
|
|
17
17
|
static {
|
|
18
18
|
const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
|
|
19
|
-
_overlay_decorators = [property({ type: Boolean,
|
|
19
|
+
_overlay_decorators = [property({ type: Boolean, })];
|
|
20
20
|
__esDecorate(null, null, _overlay_decorators, { kind: "field", name: "overlay", static: false, private: false, access: { has: obj => "overlay" in obj, get: obj => obj.overlay, set: (obj, value) => { obj.overlay = value; } }, metadata: _metadata }, _overlay_initializers, _overlay_extraInitializers);
|
|
21
21
|
__esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
|
|
22
22
|
_classThis = _classDescriptor.value;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"snice-layout-fullscreen.js","sources":["../../../components/layout/snice-layout-fullscreen.css?inline","../../../../components/layout/snice-layout-fullscreen.ts"],"sourcesContent":["export default \"/* Fullscreen Layout - For presentations, media viewers, etc */\\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 position: relative;\\n width: 100vw;\\n height: 100vh;\\n overflow: hidden;\\n background: var(--snice-color-background-dark, #111827);\\n}\\n\\n.background {\\n position: absolute;\\n inset: 0;\\n z-index: 1;\\n}\\n\\n.overlay {\\n position: absolute;\\n inset: 0;\\n z-index: 2;\\n background: rgba(0, 0, 0, 0.5);\\n opacity: 0;\\n transition: opacity var(--snice-transition-normal, 0.25s) ease;\\n pointer-events: none;\\n}\\n\\n:host([overlay]) .overlay {\\n opacity: 1;\\n pointer-events: auto;\\n}\\n\\n.content {\\n position: absolute;\\n inset: 0;\\n z-index: 3;\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n padding: var(--snice-spacing-lg, 2rem);\\n}\\n\\n.controls {\\n position: absolute;\\n bottom: 0;\\n left: 0;\\n right: 0;\\n z-index: 4;\\n padding: var(--snice-spacing-lg, 2rem);\\n background: linear-gradient(transparent, rgba(0, 0, 0, 0.8));\\n transform: translateY(100%);\\n transition: transform var(--snice-transition-normal, 0.25s) ease;\\n}\\n\\n:host(:hover) .controls {\\n transform: translateY(0);\\n}\\n\\n/* Media queries for mobile */\\n@media (max-width: 768px) {\\n .controls {\\n transform: translateY(0);\\n background: rgba(0, 0, 0, 0.8);\\n }\\n \\n .content {\\n padding: var(--snice-spacing-md, 1rem);\\n }\\n}\";",null],"names":[],"mappings":";;;AAAA,UAAe,28CAA28C;;ICI78C,qBAAqB,GAAA,CAAA,MAAA;4BADjC,OAAO,CAAC,yBAAyB,CAAC,CAAA;;;;sBACQ,WAAW;;;;AAAnB,KAAA,cAAQ,WAAW,CAAA;;;;
|
|
1
|
+
{"version":3,"file":"snice-layout-fullscreen.js","sources":["../../../components/layout/snice-layout-fullscreen.css?inline","../../../../components/layout/snice-layout-fullscreen.ts"],"sourcesContent":["export default \"/* Fullscreen Layout - For presentations, media viewers, etc */\\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 position: relative;\\n width: 100vw;\\n height: 100vh;\\n overflow: hidden;\\n background: var(--snice-color-background-dark, #111827);\\n}\\n\\n.background {\\n position: absolute;\\n inset: 0;\\n z-index: 1;\\n}\\n\\n.overlay {\\n position: absolute;\\n inset: 0;\\n z-index: 2;\\n background: rgba(0, 0, 0, 0.5);\\n opacity: 0;\\n transition: opacity var(--snice-transition-normal, 0.25s) ease;\\n pointer-events: none;\\n}\\n\\n:host([overlay]) .overlay {\\n opacity: 1;\\n pointer-events: auto;\\n}\\n\\n.content {\\n position: absolute;\\n inset: 0;\\n z-index: 3;\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n padding: var(--snice-spacing-lg, 2rem);\\n}\\n\\n.controls {\\n position: absolute;\\n bottom: 0;\\n left: 0;\\n right: 0;\\n z-index: 4;\\n padding: var(--snice-spacing-lg, 2rem);\\n background: linear-gradient(transparent, rgba(0, 0, 0, 0.8));\\n transform: translateY(100%);\\n transition: transform var(--snice-transition-normal, 0.25s) ease;\\n}\\n\\n:host(:hover) .controls {\\n transform: translateY(0);\\n}\\n\\n/* Media queries for mobile */\\n@media (max-width: 768px) {\\n .controls {\\n transform: translateY(0);\\n background: rgba(0, 0, 0, 0.8);\\n }\\n \\n .content {\\n padding: var(--snice-spacing-md, 1rem);\\n }\\n}\";",null],"names":[],"mappings":";;;AAAA,UAAe,28CAA28C;;ICI78C,qBAAqB,GAAA,CAAA,MAAA;4BADjC,OAAO,CAAC,yBAAyB,CAAC,CAAA;;;;sBACQ,WAAW;;;;AAAnB,KAAA,cAAQ,WAAW,CAAA;;;;AACnD,YAAA,mBAAA,GAAA,CAAA,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,GAAI,CAAC,CAAA;YAC9B,YAAA,CAAA,IAAA,EAAA,IAAA,EAAA,mBAAA,EAAA,EAAA,IAAA,EAAA,OAAA,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,GAAA,EAAA,CAAA,GAAA,EAAA,KAAA,KAAA,EAAA,GAAA,CAAP,OAAO,GAAA,KAAA,CAAA,CAAA,CAAA,EAAA,EAAA,QAAA,EAAA,SAAA,EAAA,EAAA,qBAAA,EAAA,0BAAA,CAAA;YAFT,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;;QAIX,IAAI,GAAA;AACF,YAAA,gBAAe;;;;;;;;;;;;;;;;;;KAkBd;QACH;QAEA,GAAG,GAAA;AACD,YAAA,OAAO,GAAG;QACZ;;;YA1BA,IAAA,CAAA,OAAO,GAAA,iBAAA,CAAA,IAAA,EAAA,qBAAA,EAAG,KAAK,CAAA;;;;;;;;;"}
|
|
@@ -1,4 +1,13 @@
|
|
|
1
|
-
|
|
1
|
+
import type { AppContext, Placard, RouteParams, Layout } from 'snice';
|
|
2
|
+
import '../nav/snice-nav.ts';
|
|
3
|
+
import type { SniceNav } from '../nav/snice-nav.ts';
|
|
4
|
+
export declare class SniceLayoutLanding extends HTMLElement implements Layout {
|
|
5
|
+
navElement?: SniceNav;
|
|
6
|
+
useNav: boolean;
|
|
7
|
+
private placards;
|
|
8
|
+
private currentRoute;
|
|
2
9
|
html(): string;
|
|
3
10
|
css(): string;
|
|
11
|
+
update(_appContext: AppContext, placards: Placard[], currentRoute: string, _routeParams: RouteParams): void;
|
|
12
|
+
renderNav(): string;
|
|
4
13
|
}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { element } from 'snice';
|
|
1
|
+
import { __runInitializers, __esDecorate } from 'tslib';
|
|
2
|
+
import { element, query, property, part } from 'snice';
|
|
3
|
+
import '../nav/snice-nav.js';
|
|
3
4
|
|
|
4
5
|
var css = "/* Landing Page Layout */\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 min-height: 100vh;\n display: flex;\n flex-direction: column;\n}\n\n.container {\n max-width: 1200px;\n margin: 0 auto;\n padding: 0 var(--snice-spacing-lg, 2rem);\n}\n\n.header {\n background: var(--snice-color-background, white);\n border-bottom: 1px solid var(--snice-color-border, #d1d5db);\n position: sticky;\n top: 0;\n z-index: 100;\n}\n\n.header .container {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding-top: var(--snice-spacing-md, 1rem);\n padding-bottom: var(--snice-spacing-md, 1rem);\n}\n\n.brand h1 {\n margin: 0;\n font-size: var(--snice-font-size-xl, 1.5rem);\n font-weight: var(--snice-font-weight-bold, 700);\n color: var(--snice-color-text, #374151);\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 transition: color var(--snice-transition-fast, 0.15s) ease;\n}\n\n.nav ::slotted(a:hover) {\n color: var(--snice-color-primary, #3b82f6);\n}\n\n.main {\n flex: 1;\n}\n\n.hero {\n background: var(--snice-color-background-secondary, #f8fafc);\n padding: var(--snice-spacing-2xl, 4rem) 0;\n}\n\n.content {\n background: var(--snice-color-background, white);\n}\n\n.footer {\n background: var(--snice-color-background-tertiary, #f1f5f9);\n border-top: 1px solid var(--snice-color-border, #d1d5db);\n padding: var(--snice-spacing-xl, 3rem) 0;\n margin-top: auto;\n}\n\n/* Mobile responsive */\n@media (max-width: 768px) {\n .header .container {\n flex-direction: column;\n gap: var(--snice-spacing-md, 1rem);\n }\n \n .nav {\n gap: var(--snice-spacing-md, 1rem);\n }\n \n .hero {\n padding: var(--snice-spacing-xl, 3rem) 0;\n }\n}";
|
|
5
6
|
|
|
@@ -9,10 +10,31 @@ let SniceLayoutLanding = (() => {
|
|
|
9
10
|
let _classExtraInitializers = [];
|
|
10
11
|
let _classThis;
|
|
11
12
|
let _classSuper = HTMLElement;
|
|
13
|
+
let _instanceExtraInitializers = [];
|
|
14
|
+
let _navElement_decorators;
|
|
15
|
+
let _navElement_initializers = [];
|
|
16
|
+
let _navElement_extraInitializers = [];
|
|
17
|
+
let _useNav_decorators;
|
|
18
|
+
let _useNav_initializers = [];
|
|
19
|
+
let _useNav_extraInitializers = [];
|
|
20
|
+
let _renderNav_decorators;
|
|
12
21
|
(class extends _classSuper {
|
|
13
22
|
static { _classThis = this; }
|
|
23
|
+
constructor() {
|
|
24
|
+
super(...arguments);
|
|
25
|
+
this.navElement = (__runInitializers(this, _instanceExtraInitializers), __runInitializers(this, _navElement_initializers, void 0));
|
|
26
|
+
this.useNav = (__runInitializers(this, _navElement_extraInitializers), __runInitializers(this, _useNav_initializers, false));
|
|
27
|
+
this.placards = (__runInitializers(this, _useNav_extraInitializers), []);
|
|
28
|
+
this.currentRoute = '';
|
|
29
|
+
}
|
|
14
30
|
static {
|
|
15
31
|
const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
|
|
32
|
+
_navElement_decorators = [query('snice-nav')];
|
|
33
|
+
_useNav_decorators = [property({ type: Boolean, attribute: 'use-nav' })];
|
|
34
|
+
_renderNav_decorators = [part('nav')];
|
|
35
|
+
__esDecorate(this, null, _renderNav_decorators, { kind: "method", name: "renderNav", static: false, private: false, access: { has: obj => "renderNav" in obj, get: obj => obj.renderNav }, metadata: _metadata }, null, _instanceExtraInitializers);
|
|
36
|
+
__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);
|
|
37
|
+
__esDecorate(null, null, _useNav_decorators, { kind: "field", name: "useNav", static: false, private: false, access: { has: obj => "useNav" in obj, get: obj => obj.useNav, set: (obj, value) => { obj.useNav = value; } }, metadata: _metadata }, _useNav_initializers, _useNav_extraInitializers);
|
|
16
38
|
__esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
|
|
17
39
|
_classThis = _classDescriptor.value;
|
|
18
40
|
if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
|
|
@@ -28,25 +50,29 @@ let SniceLayoutLanding = (() => {
|
|
|
28
50
|
<h1>Brand</h1>
|
|
29
51
|
</slot>
|
|
30
52
|
</div>
|
|
31
|
-
|
|
32
|
-
<
|
|
33
|
-
|
|
53
|
+
${this.useNav ? /*html*/ `
|
|
54
|
+
<snice-nav class="nav" part="nav" variant="flat" orientation="horizontal"></snice-nav>
|
|
55
|
+
` : /*html*/ `
|
|
56
|
+
<nav class="nav">
|
|
57
|
+
<slot name="nav"></slot>
|
|
58
|
+
</nav>
|
|
59
|
+
`}
|
|
34
60
|
<div class="cta">
|
|
35
61
|
<slot name="cta"></slot>
|
|
36
62
|
</div>
|
|
37
63
|
</div>
|
|
38
64
|
</header>
|
|
39
|
-
|
|
65
|
+
|
|
40
66
|
<main class="main">
|
|
41
67
|
<section class="hero">
|
|
42
68
|
<slot name="hero"></slot>
|
|
43
69
|
</section>
|
|
44
|
-
|
|
70
|
+
|
|
45
71
|
<div class="content">
|
|
46
72
|
<slot></slot>
|
|
47
73
|
</div>
|
|
48
74
|
</main>
|
|
49
|
-
|
|
75
|
+
|
|
50
76
|
<footer class="footer">
|
|
51
77
|
<div class="container">
|
|
52
78
|
<slot name="footer"></slot>
|
|
@@ -58,6 +84,19 @@ let SniceLayoutLanding = (() => {
|
|
|
58
84
|
css() {
|
|
59
85
|
return css;
|
|
60
86
|
}
|
|
87
|
+
update(_appContext, placards, currentRoute, _routeParams) {
|
|
88
|
+
this.placards = placards;
|
|
89
|
+
this.currentRoute = currentRoute;
|
|
90
|
+
this.useNav = true;
|
|
91
|
+
this.renderNav();
|
|
92
|
+
}
|
|
93
|
+
renderNav() {
|
|
94
|
+
if (this.navElement) {
|
|
95
|
+
this.navElement.placards = this.placards;
|
|
96
|
+
this.navElement.currentRoute = this.currentRoute;
|
|
97
|
+
}
|
|
98
|
+
return '';
|
|
99
|
+
}
|
|
61
100
|
});
|
|
62
101
|
return _classThis;
|
|
63
102
|
})();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"snice-layout-landing.js","sources":["../../../components/layout/snice-layout-landing.css?inline","../../../../components/layout/snice-layout-landing.ts"],"sourcesContent":["export default \"/* Landing Page Layout */\\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 min-height: 100vh;\\n display: flex;\\n flex-direction: column;\\n}\\n\\n.container {\\n max-width: 1200px;\\n margin: 0 auto;\\n padding: 0 var(--snice-spacing-lg, 2rem);\\n}\\n\\n.header {\\n background: var(--snice-color-background, white);\\n border-bottom: 1px solid var(--snice-color-border, #d1d5db);\\n position: sticky;\\n top: 0;\\n z-index: 100;\\n}\\n\\n.header .container {\\n display: flex;\\n align-items: center;\\n justify-content: space-between;\\n padding-top: var(--snice-spacing-md, 1rem);\\n padding-bottom: var(--snice-spacing-md, 1rem);\\n}\\n\\n.brand h1 {\\n margin: 0;\\n font-size: var(--snice-font-size-xl, 1.5rem);\\n font-weight: var(--snice-font-weight-bold, 700);\\n color: var(--snice-color-text, #374151);\\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 transition: color var(--snice-transition-fast, 0.15s) ease;\\n}\\n\\n.nav ::slotted(a:hover) {\\n color: var(--snice-color-primary, #3b82f6);\\n}\\n\\n.main {\\n flex: 1;\\n}\\n\\n.hero {\\n background: var(--snice-color-background-secondary, #f8fafc);\\n padding: var(--snice-spacing-2xl, 4rem) 0;\\n}\\n\\n.content {\\n background: var(--snice-color-background, white);\\n}\\n\\n.footer {\\n background: var(--snice-color-background-tertiary, #f1f5f9);\\n border-top: 1px solid var(--snice-color-border, #d1d5db);\\n padding: var(--snice-spacing-xl, 3rem) 0;\\n margin-top: auto;\\n}\\n\\n/* Mobile responsive */\\n@media (max-width: 768px) {\\n .header .container {\\n flex-direction: column;\\n gap: var(--snice-spacing-md, 1rem);\\n }\\n \\n .nav {\\n gap: var(--snice-spacing-md, 1rem);\\n }\\n \\n .hero {\\n padding: var(--snice-spacing-xl, 3rem) 0;\\n }\\n}\";",null],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"snice-layout-landing.js","sources":["../../../components/layout/snice-layout-landing.css?inline","../../../../components/layout/snice-layout-landing.ts"],"sourcesContent":["export default \"/* Landing Page Layout */\\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 min-height: 100vh;\\n display: flex;\\n flex-direction: column;\\n}\\n\\n.container {\\n max-width: 1200px;\\n margin: 0 auto;\\n padding: 0 var(--snice-spacing-lg, 2rem);\\n}\\n\\n.header {\\n background: var(--snice-color-background, white);\\n border-bottom: 1px solid var(--snice-color-border, #d1d5db);\\n position: sticky;\\n top: 0;\\n z-index: 100;\\n}\\n\\n.header .container {\\n display: flex;\\n align-items: center;\\n justify-content: space-between;\\n padding-top: var(--snice-spacing-md, 1rem);\\n padding-bottom: var(--snice-spacing-md, 1rem);\\n}\\n\\n.brand h1 {\\n margin: 0;\\n font-size: var(--snice-font-size-xl, 1.5rem);\\n font-weight: var(--snice-font-weight-bold, 700);\\n color: var(--snice-color-text, #374151);\\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 transition: color var(--snice-transition-fast, 0.15s) ease;\\n}\\n\\n.nav ::slotted(a:hover) {\\n color: var(--snice-color-primary, #3b82f6);\\n}\\n\\n.main {\\n flex: 1;\\n}\\n\\n.hero {\\n background: var(--snice-color-background-secondary, #f8fafc);\\n padding: var(--snice-spacing-2xl, 4rem) 0;\\n}\\n\\n.content {\\n background: var(--snice-color-background, white);\\n}\\n\\n.footer {\\n background: var(--snice-color-background-tertiary, #f1f5f9);\\n border-top: 1px solid var(--snice-color-border, #d1d5db);\\n padding: var(--snice-spacing-xl, 3rem) 0;\\n margin-top: auto;\\n}\\n\\n/* Mobile responsive */\\n@media (max-width: 768px) {\\n .header .container {\\n flex-direction: column;\\n gap: var(--snice-spacing-md, 1rem);\\n }\\n \\n .nav {\\n gap: var(--snice-spacing-md, 1rem);\\n }\\n \\n .hero {\\n padding: var(--snice-spacing-xl, 3rem) 0;\\n }\\n}\";",null],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,17 @@
|
|
|
1
|
-
|
|
1
|
+
import type { AppContext, Placard, RouteParams, Layout } from 'snice';
|
|
2
|
+
import '../drawer/snice-drawer.ts';
|
|
3
|
+
import '../nav/snice-nav.ts';
|
|
4
|
+
import type { SniceNav } from '../nav/snice-nav.ts';
|
|
5
|
+
import type { SniceDrawerElement } from '../drawer/snice-drawer.types.ts';
|
|
6
|
+
export declare class SniceLayoutSidebar extends HTMLElement implements Layout {
|
|
2
7
|
collapsed: boolean;
|
|
8
|
+
sidebarDrawer?: SniceDrawerElement;
|
|
9
|
+
navElement: SniceNav;
|
|
10
|
+
private placards;
|
|
11
|
+
private currentRoute;
|
|
3
12
|
html(): string;
|
|
4
13
|
css(): string;
|
|
14
|
+
handleSidebarToggle(): void;
|
|
15
|
+
update(_appContext: AppContext, placards: Placard[], currentRoute: string, _routeParams: RouteParams): void;
|
|
16
|
+
renderNav(): string;
|
|
5
17
|
}
|
|
@@ -1,7 +1,9 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { element, property } from 'snice';
|
|
1
|
+
import { __runInitializers, __esDecorate } from 'tslib';
|
|
2
|
+
import { element, property, query, on, part } from 'snice';
|
|
3
|
+
import '../drawer/snice-drawer.js';
|
|
4
|
+
import '../nav/snice-nav.js';
|
|
3
5
|
|
|
4
|
-
var css = "/* Sidebar Layout */\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-
|
|
6
|
+
var css = "/* Sidebar Layout with full-width header */\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 spans full width */\n.header {\n display: flex;\n align-items: center;\n gap: var(--snice-spacing-md, 1rem);\n padding: var(--snice-spacing-md, 1rem) var(--snice-spacing-lg, 1.25rem);\n background: var(--snice-color-background, white);\n border-bottom: 1px solid var(--snice-color-border, #e5e7eb);\n z-index: 10;\n}\n\n.header-brand {\n display: flex;\n align-items: center;\n}\n\n.header-brand h2 {\n margin: 0;\n font-size: var(--snice-font-size-lg, 1.125rem);\n font-weight: var(--snice-font-weight-semibold, 600);\n color: var(--snice-color-text, #111827);\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.sidebar-toggle {\n display: flex;\n align-items: center;\n justify-content: center;\n width: var(--snice-size-control-md, 2rem);\n height: var(--snice-size-control-md, 2rem);\n background: none;\n border: none;\n color: var(--snice-color-text-secondary, #6b7280);\n cursor: pointer;\n padding: var(--snice-spacing-xs, 0.5rem);\n border-radius: var(--snice-border-radius-md, 6px);\n transition: all var(--snice-transition-fast, 150ms) ease;\n}\n\n.sidebar-toggle:hover {\n background: var(--snice-color-primary, rgb(59 130 246));\n color: var(--snice-color-text-inverse, white);\n}\n\n.sidebar-toggle:focus-visible {\n outline: var(--snice-focus-ring-width, 2px) solid var(--snice-focus-ring-color, #3b82f6);\n outline-offset: var(--snice-focus-ring-offset, 2px);\n}\n\n.header-content {\n flex: 1;\n min-width: 0; /* Allow flex item to shrink below content size */\n display: flex;\n align-items: center;\n gap: var(--snice-spacing-md, 1rem);\n}\n\n/* Ensure slotted content can take full width */\n.header-content ::slotted(*) {\n flex: 1;\n width: 100%;\n}\n\n/* Body area contains drawer and main content */\n.body-area {\n position: relative;\n display: flex;\n flex: 1;\n overflow: hidden;\n background: var(--snice-color-background-secondary, #f8fafc);\n}\n\n.sidebar-drawer {\n flex-shrink: 0;\n}\n\n.sidebar-nav {\n display: flex;\n flex-direction: column;\n gap: var(--snice-spacing-sm, 0.75rem);\n padding: var(--snice-spacing-md, 1rem);\n}\n\n.main {\n flex: 1;\n padding: var(--snice-spacing-lg, 1.25rem);\n overflow-y: auto;\n background: var(--snice-color-background-secondary, #f8fafc);\n}\n\n/* Footer spans full width */\n.footer {\n padding: var(--snice-spacing-md, 1rem) var(--snice-spacing-lg, 1.25rem);\n background: var(--snice-color-background, white);\n border-top: 1px solid var(--snice-color-border, #e5e7eb);\n}\n\n.footer:empty {\n display: none;\n}\n\n/* Responsive behavior */\n@media (max-width: 768px) {\n .header {\n padding: var(--snice-spacing-sm, 0.75rem) var(--snice-spacing-md, 1rem);\n }\n\n .main {\n padding: var(--snice-spacing-md, 1rem);\n }\n\n .footer {\n padding: var(--snice-spacing-sm, 0.75rem) var(--snice-spacing-md, 1rem);\n }\n}";
|
|
5
7
|
|
|
6
8
|
let SniceLayoutSidebar = (() => {
|
|
7
9
|
let _classDecorators = [element('snice-layout-sidebar')];
|
|
@@ -9,15 +11,40 @@ let SniceLayoutSidebar = (() => {
|
|
|
9
11
|
let _classExtraInitializers = [];
|
|
10
12
|
let _classThis;
|
|
11
13
|
let _classSuper = HTMLElement;
|
|
14
|
+
let _instanceExtraInitializers = [];
|
|
12
15
|
let _collapsed_decorators;
|
|
13
16
|
let _collapsed_initializers = [];
|
|
14
17
|
let _collapsed_extraInitializers = [];
|
|
18
|
+
let _sidebarDrawer_decorators;
|
|
19
|
+
let _sidebarDrawer_initializers = [];
|
|
20
|
+
let _sidebarDrawer_extraInitializers = [];
|
|
21
|
+
let _navElement_decorators;
|
|
22
|
+
let _navElement_initializers = [];
|
|
23
|
+
let _navElement_extraInitializers = [];
|
|
24
|
+
let _handleSidebarToggle_decorators;
|
|
25
|
+
let _renderNav_decorators;
|
|
15
26
|
(class extends _classSuper {
|
|
16
27
|
static { _classThis = this; }
|
|
28
|
+
constructor() {
|
|
29
|
+
super(...arguments);
|
|
30
|
+
this.collapsed = (__runInitializers(this, _instanceExtraInitializers), __runInitializers(this, _collapsed_initializers, false));
|
|
31
|
+
this.sidebarDrawer = (__runInitializers(this, _collapsed_extraInitializers), __runInitializers(this, _sidebarDrawer_initializers, void 0));
|
|
32
|
+
this.navElement = (__runInitializers(this, _sidebarDrawer_extraInitializers), __runInitializers(this, _navElement_initializers, void 0));
|
|
33
|
+
this.placards = (__runInitializers(this, _navElement_extraInitializers), []);
|
|
34
|
+
this.currentRoute = '';
|
|
35
|
+
}
|
|
17
36
|
static {
|
|
18
37
|
const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
|
|
19
|
-
_collapsed_decorators = [property({ type: Boolean,
|
|
38
|
+
_collapsed_decorators = [property({ type: Boolean, })];
|
|
39
|
+
_sidebarDrawer_decorators = [query('.sidebar-drawer')];
|
|
40
|
+
_navElement_decorators = [query('snice-nav')];
|
|
41
|
+
_handleSidebarToggle_decorators = [on('click', '.sidebar-toggle')];
|
|
42
|
+
_renderNav_decorators = [part('nav')];
|
|
43
|
+
__esDecorate(this, null, _handleSidebarToggle_decorators, { kind: "method", name: "handleSidebarToggle", static: false, private: false, access: { has: obj => "handleSidebarToggle" in obj, get: obj => obj.handleSidebarToggle }, metadata: _metadata }, null, _instanceExtraInitializers);
|
|
44
|
+
__esDecorate(this, null, _renderNav_decorators, { kind: "method", name: "renderNav", static: false, private: false, access: { has: obj => "renderNav" in obj, get: obj => obj.renderNav }, metadata: _metadata }, null, _instanceExtraInitializers);
|
|
20
45
|
__esDecorate(null, null, _collapsed_decorators, { kind: "field", name: "collapsed", static: false, private: false, access: { has: obj => "collapsed" in obj, get: obj => obj.collapsed, set: (obj, value) => { obj.collapsed = value; } }, metadata: _metadata }, _collapsed_initializers, _collapsed_extraInitializers);
|
|
46
|
+
__esDecorate(null, null, _sidebarDrawer_decorators, { kind: "field", name: "sidebarDrawer", static: false, private: false, access: { has: obj => "sidebarDrawer" in obj, get: obj => obj.sidebarDrawer, set: (obj, value) => { obj.sidebarDrawer = value; } }, metadata: _metadata }, _sidebarDrawer_initializers, _sidebarDrawer_extraInitializers);
|
|
47
|
+
__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);
|
|
21
48
|
__esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
|
|
22
49
|
_classThis = _classDescriptor.value;
|
|
23
50
|
if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
|
|
@@ -26,45 +53,59 @@ let SniceLayoutSidebar = (() => {
|
|
|
26
53
|
html() {
|
|
27
54
|
return /*html*/ `
|
|
28
55
|
<div class="layout">
|
|
29
|
-
<
|
|
30
|
-
<
|
|
56
|
+
<header class="header">
|
|
57
|
+
<button class="sidebar-toggle" type="button" aria-label="Toggle sidebar">
|
|
58
|
+
<svg viewBox="0 0 24 24" width="20" height="20">
|
|
59
|
+
<path d="M3 18h18v-2H3v2zm0-5h18v-2H3v2zm0-7v2h18V6H3z" fill="currentColor"/>
|
|
60
|
+
</svg>
|
|
61
|
+
</button>
|
|
62
|
+
<div class="header-brand">
|
|
31
63
|
<slot name="brand">
|
|
32
64
|
<h2>App</h2>
|
|
33
65
|
</slot>
|
|
34
66
|
</div>
|
|
35
|
-
<
|
|
36
|
-
<slot name="nav"></slot>
|
|
37
|
-
</nav>
|
|
38
|
-
</aside>
|
|
39
|
-
|
|
40
|
-
<div class="content-area">
|
|
41
|
-
<header class="header">
|
|
42
|
-
<button class="sidebar-toggle" type="button" aria-label="Toggle sidebar">
|
|
43
|
-
<svg viewBox="0 0 24 24" width="20" height="20">
|
|
44
|
-
<path d="M3 18h18v-2H3v2zm0-5h18v-2H3v2zm0-7v2h18V6H3z" fill="currentColor"/>
|
|
45
|
-
</svg>
|
|
46
|
-
</button>
|
|
67
|
+
<div class="header-content">
|
|
47
68
|
<slot name="header"></slot>
|
|
48
|
-
</
|
|
49
|
-
|
|
69
|
+
</div>
|
|
70
|
+
</header>
|
|
71
|
+
|
|
72
|
+
<div class="body-area">
|
|
73
|
+
<snice-drawer class="sidebar-drawer" position="left" size="medium" contained>
|
|
74
|
+
<span slot="title">Navigation</span>
|
|
75
|
+
<snice-nav class="sidebar-nav" part="nav" variant="hierarchical" orientation="vertical"></snice-nav>
|
|
76
|
+
</snice-drawer>
|
|
77
|
+
|
|
50
78
|
<main class="main">
|
|
51
|
-
<slot></slot>
|
|
79
|
+
<slot name="page"></slot>
|
|
52
80
|
</main>
|
|
53
|
-
|
|
54
|
-
<footer class="footer">
|
|
55
|
-
<slot name="footer"></slot>
|
|
56
|
-
</footer>
|
|
57
81
|
</div>
|
|
82
|
+
|
|
83
|
+
<footer class="footer">
|
|
84
|
+
<slot name="footer"></slot>
|
|
85
|
+
</footer>
|
|
58
86
|
</div>
|
|
59
87
|
`;
|
|
60
88
|
}
|
|
61
89
|
css() {
|
|
62
90
|
return css;
|
|
63
91
|
}
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
92
|
+
handleSidebarToggle() {
|
|
93
|
+
if (this.sidebarDrawer) {
|
|
94
|
+
this.sidebarDrawer.toggle();
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
update(_appContext, placards, currentRoute, _routeParams) {
|
|
98
|
+
this.placards = placards;
|
|
99
|
+
this.currentRoute = currentRoute;
|
|
100
|
+
// Update the navigation
|
|
101
|
+
this.renderNav();
|
|
102
|
+
}
|
|
103
|
+
renderNav() {
|
|
104
|
+
if (this.navElement) {
|
|
105
|
+
this.navElement.placards = this.placards;
|
|
106
|
+
this.navElement.currentRoute = this.currentRoute;
|
|
107
|
+
}
|
|
108
|
+
return '';
|
|
68
109
|
}
|
|
69
110
|
});
|
|
70
111
|
return _classThis;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"snice-layout-sidebar.js","sources":["../../../components/layout/snice-layout-sidebar.css?inline","../../../../components/layout/snice-layout-sidebar.ts"],"sourcesContent":["export default \"/* Sidebar Layout */\\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-
|
|
1
|
+
{"version":3,"file":"snice-layout-sidebar.js","sources":["../../../components/layout/snice-layout-sidebar.css?inline","../../../../components/layout/snice-layout-sidebar.ts"],"sourcesContent":["export default \"/* Sidebar Layout with full-width header */\\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 spans full width */\\n.header {\\n display: flex;\\n align-items: center;\\n gap: var(--snice-spacing-md, 1rem);\\n padding: var(--snice-spacing-md, 1rem) var(--snice-spacing-lg, 1.25rem);\\n background: var(--snice-color-background, white);\\n border-bottom: 1px solid var(--snice-color-border, #e5e7eb);\\n z-index: 10;\\n}\\n\\n.header-brand {\\n display: flex;\\n align-items: center;\\n}\\n\\n.header-brand h2 {\\n margin: 0;\\n font-size: var(--snice-font-size-lg, 1.125rem);\\n font-weight: var(--snice-font-weight-semibold, 600);\\n color: var(--snice-color-text, #111827);\\n white-space: nowrap;\\n overflow: hidden;\\n text-overflow: ellipsis;\\n}\\n\\n.sidebar-toggle {\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n width: var(--snice-size-control-md, 2rem);\\n height: var(--snice-size-control-md, 2rem);\\n background: none;\\n border: none;\\n color: var(--snice-color-text-secondary, #6b7280);\\n cursor: pointer;\\n padding: var(--snice-spacing-xs, 0.5rem);\\n border-radius: var(--snice-border-radius-md, 6px);\\n transition: all var(--snice-transition-fast, 150ms) ease;\\n}\\n\\n.sidebar-toggle:hover {\\n background: var(--snice-color-primary, rgb(59 130 246));\\n color: var(--snice-color-text-inverse, white);\\n}\\n\\n.sidebar-toggle:focus-visible {\\n outline: var(--snice-focus-ring-width, 2px) solid var(--snice-focus-ring-color, #3b82f6);\\n outline-offset: var(--snice-focus-ring-offset, 2px);\\n}\\n\\n.header-content {\\n flex: 1;\\n min-width: 0; /* Allow flex item to shrink below content size */\\n display: flex;\\n align-items: center;\\n gap: var(--snice-spacing-md, 1rem);\\n}\\n\\n/* Ensure slotted content can take full width */\\n.header-content ::slotted(*) {\\n flex: 1;\\n width: 100%;\\n}\\n\\n/* Body area contains drawer and main content */\\n.body-area {\\n position: relative;\\n display: flex;\\n flex: 1;\\n overflow: hidden;\\n background: var(--snice-color-background-secondary, #f8fafc);\\n}\\n\\n.sidebar-drawer {\\n flex-shrink: 0;\\n}\\n\\n.sidebar-nav {\\n display: flex;\\n flex-direction: column;\\n gap: var(--snice-spacing-sm, 0.75rem);\\n padding: var(--snice-spacing-md, 1rem);\\n}\\n\\n.main {\\n flex: 1;\\n padding: var(--snice-spacing-lg, 1.25rem);\\n overflow-y: auto;\\n background: var(--snice-color-background-secondary, #f8fafc);\\n}\\n\\n/* Footer spans full width */\\n.footer {\\n padding: var(--snice-spacing-md, 1rem) var(--snice-spacing-lg, 1.25rem);\\n background: var(--snice-color-background, white);\\n border-top: 1px solid var(--snice-color-border, #e5e7eb);\\n}\\n\\n.footer:empty {\\n display: none;\\n}\\n\\n/* Responsive behavior */\\n@media (max-width: 768px) {\\n .header {\\n padding: var(--snice-spacing-sm, 0.75rem) var(--snice-spacing-md, 1rem);\\n }\\n\\n .main {\\n padding: var(--snice-spacing-md, 1rem);\\n }\\n\\n .footer {\\n padding: var(--snice-spacing-sm, 0.75rem) var(--snice-spacing-md, 1rem);\\n }\\n}\";",null],"names":[],"mappings":";;;;;AAAA,UAAe,gnGAAgnG;;ICSlnG,kBAAkB,GAAA,CAAA,MAAA;4BAD9B,OAAO,CAAC,sBAAsB,CAAC,CAAA;;;;sBACQ,WAAW;;;;;;;;;;;;;AAAnB,KAAA,cAAQ,WAAW,CAAA;;;;AAEjD,YAAA,IAAA,CAAA,SAAS,IAFE,iBAAA,CAAA,IAAA,EAAA,0BAAA,CAAkB,EAAA,iBAAA,CAAA,IAAA,EAAA,uBAAA,EAEjB,KAAK,CAAA,CAAA;AAGjB,YAAA,IAAA,CAAA,aAAa,IAAA,iBAAA,CAAA,IAAA,EAAA,4BAAA,CAAA,EAAA,iBAAA,CAAA,IAAA,EAAA,2BAAA,EAAA,MAAA,CAAA,CAAA;AAGb,YAAA,IAAA,CAAA,UAAU,IAAA,iBAAA,CAAA,IAAA,EAAA,gCAAA,CAAA,EAAA,iBAAA,CAAA,IAAA,EAAA,wBAAA,EAAA,MAAA,CAAA,CAAA;YAEF,IAAA,CAAA,QAAQ,IAAA,iBAAA,CAAA,IAAA,EAAA,6BAAA,CAAA,EAAc,EAAE,CAAA;YACxB,IAAA,CAAA,YAAY,GAAG,EAAE;QAkE3B;;;AA5EG,YAAA,qBAAA,GAAA,CAAA,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,GAAI,CAAC,CAAA;yCAG7B,KAAK,CAAC,iBAAiB,CAAC,CAAA;sCAGxB,KAAK,CAAC,WAAW,CAAC,CAAA;AA+ClB,YAAA,+BAAA,GAAA,CAAA,EAAE,CAAC,OAAO,EAAE,iBAAiB,CAAC,CAAA;qCAe9B,IAAI,CAAC,KAAK,CAAC,CAAA;AAdZ,YAAA,YAAA,CAAA,IAAA,EAAA,IAAA,EAAA,+BAAA,EAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,KAAA,EAAA,OAAA,EAAA,KAAA,EAAA,MAAA,EAAA,EAAA,GAAA,EAAA,GAAA,IAAA,qBAAA,IAAA,GAAA,EAAA,GAAA,EAAA,GAAA,IAAA,GAAA,CAAA,mBAAmB,EAAA,EAAA,QAAA,EAAA,SAAA,EAAA,EAAA,IAAA,EAAA,0BAAA,CAAA;AAenB,YAAA,YAAA,CAAA,IAAA,EAAA,IAAA,EAAA,qBAAA,EAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,WAAA,EAAA,MAAA,EAAA,KAAA,EAAA,OAAA,EAAA,KAAA,EAAA,MAAA,EAAA,EAAA,GAAA,EAAA,GAAA,IAAA,WAAA,IAAA,GAAA,EAAA,GAAA,EAAA,GAAA,IAAA,GAAA,CAAA,SAAS,EAAA,EAAA,QAAA,EAAA,SAAA,EAAA,EAAA,IAAA,EAAA,0BAAA,CAAA;YApET,YAAA,CAAA,IAAA,EAAA,IAAA,EAAA,qBAAA,EAAA,EAAA,IAAA,EAAA,OAAA,EAAA,IAAA,EAAA,WAAA,EAAA,MAAA,EAAA,KAAA,EAAA,OAAA,EAAA,KAAA,EAAA,MAAA,EAAA,EAAA,GAAA,EAAA,GAAA,IAAA,WAAA,IAAA,GAAA,EAAA,GAAA,EAAA,GAAA,IAAA,GAAA,CAAA,SAAS,EAAA,GAAA,EAAA,CAAA,GAAA,EAAA,KAAA,KAAA,EAAA,GAAA,CAAT,SAAS,GAAA,KAAA,CAAA,CAAA,CAAA,EAAA,EAAA,QAAA,EAAA,SAAA,EAAA,EAAA,uBAAA,EAAA,4BAAA,CAAA;YAGT,YAAA,CAAA,IAAA,EAAA,IAAA,EAAA,yBAAA,EAAA,EAAA,IAAA,EAAA,OAAA,EAAA,IAAA,EAAA,eAAA,EAAA,MAAA,EAAA,KAAA,EAAA,OAAA,EAAA,KAAA,EAAA,MAAA,EAAA,EAAA,GAAA,EAAA,GAAA,IAAA,eAAA,IAAA,GAAA,EAAA,GAAA,EAAA,GAAA,IAAA,GAAA,CAAA,aAAa,EAAA,GAAA,EAAA,CAAA,GAAA,EAAA,KAAA,KAAA,EAAA,GAAA,CAAb,aAAa,GAAA,KAAA,CAAA,CAAA,CAAA,EAAA,EAAA,QAAA,EAAA,SAAA,EAAA,EAAA,2BAAA,EAAA,gCAAA,CAAA;YAGb,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;YARZ,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;;QAaX,IAAI,GAAA;AACF,YAAA,gBAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAiCd;QACH;QAEA,GAAG,GAAA;AACD,YAAA,OAAO,GAAG;QACZ;QAGA,mBAAmB,GAAA;AACjB,YAAA,IAAI,IAAI,CAAC,aAAa,EAAE;AACtB,gBAAA,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE;YAC7B;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;;YAGhC,IAAI,CAAC,SAAS,EAAE;QAClB;QAGA,SAAS,GAAA;AACP,YAAA,IAAI,IAAI,CAAC,UAAU,EAAE;gBACnB,IAAI,CAAC,UAAU,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ;gBACxC,IAAI,CAAC,UAAU,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY;YAClD;AACA,YAAA,OAAO,EAAE;QACX;;;;;;;"}
|
|
@@ -19,8 +19,8 @@ let SniceLayoutSplit = (() => {
|
|
|
19
19
|
static { _classThis = this; }
|
|
20
20
|
static {
|
|
21
21
|
const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
|
|
22
|
-
_direction_decorators = [property({
|
|
23
|
-
_ratio_decorators = [property({
|
|
22
|
+
_direction_decorators = [property({})];
|
|
23
|
+
_ratio_decorators = [property({})];
|
|
24
24
|
__esDecorate(null, null, _direction_decorators, { kind: "field", name: "direction", static: false, private: false, access: { has: obj => "direction" in obj, get: obj => obj.direction, set: (obj, value) => { obj.direction = value; } }, metadata: _metadata }, _direction_initializers, _direction_extraInitializers);
|
|
25
25
|
__esDecorate(null, null, _ratio_decorators, { kind: "field", name: "ratio", static: false, private: false, access: { has: obj => "ratio" in obj, get: obj => obj.ratio, set: (obj, value) => { obj.ratio = value; } }, metadata: _metadata }, _ratio_initializers, _ratio_extraInitializers);
|
|
26
26
|
__esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"snice-layout-split.js","sources":["../../../components/layout/snice-layout-split.css?inline","../../../../components/layout/snice-layout-split.ts"],"sourcesContent":["export default \"/* Split Layout - Two panels side by side */\\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 min-height: 100vh;\\n gap: 1px;\\n background: var(--snice-color-border, #d1d5db);\\n}\\n\\n/* Horizontal split (default) */\\n:host([direction=\\\"horizontal\\\"]) .layout,\\n:host(:not([direction])) .layout {\\n grid-template-columns: 1fr auto 1fr;\\n grid-template-rows: 1fr;\\n}\\n\\n/* Vertical split */\\n:host([direction=\\\"vertical\\\"]) .layout {\\n grid-template-rows: 1fr auto 1fr;\\n grid-template-columns: 1fr;\\n}\\n\\n/* Ratio variants - Horizontal */\\n:host([ratio=\\\"50-50\\\"]) .layout,\\n:host(:not([ratio])) .layout {\\n grid-template-columns: 1fr 1px 1fr;\\n}\\n\\n:host([ratio=\\\"60-40\\\"]) .layout {\\n grid-template-columns: 60fr 1px 40fr;\\n}\\n\\n:host([ratio=\\\"70-30\\\"]) .layout {\\n grid-template-columns: 70fr 1px 30fr;\\n}\\n\\n:host([ratio=\\\"33-67\\\"]) .layout {\\n grid-template-columns: 33fr 1px 67fr;\\n}\\n\\n:host([ratio=\\\"67-33\\\"]) .layout {\\n grid-template-columns: 67fr 1px 33fr;\\n}\\n\\n/* Ratio variants - Vertical */\\n:host([direction=\\\"vertical\\\"][ratio=\\\"50-50\\\"]) .layout,\\n:host([direction=\\\"vertical\\\"]:not([ratio])) .layout {\\n grid-template-rows: 1fr 1px 1fr;\\n}\\n\\n:host([direction=\\\"vertical\\\"][ratio=\\\"60-40\\\"]) .layout {\\n grid-template-rows: 60fr 1px 40fr;\\n}\\n\\n:host([direction=\\\"vertical\\\"][ratio=\\\"70-30\\\"]) .layout {\\n grid-template-rows: 70fr 1px 30fr;\\n}\\n\\n:host([direction=\\\"vertical\\\"][ratio=\\\"33-67\\\"]) .layout {\\n grid-template-rows: 33fr 1px 67fr;\\n}\\n\\n:host([direction=\\\"vertical\\\"][ratio=\\\"67-33\\\"]) .layout {\\n grid-template-rows: 67fr 1px 33fr;\\n}\\n\\n.panel {\\n background: var(--snice-color-background, white);\\n overflow: auto;\\n}\\n\\n.panel-left {\\n padding: var(--snice-spacing-lg, 2rem);\\n}\\n\\n.panel-right {\\n padding: var(--snice-spacing-lg, 2rem);\\n}\\n\\n.divider {\\n background: var(--snice-color-border, #d1d5db);\\n}\\n\\n/* Mobile responsive */\\n@media (max-width: 768px) {\\n .layout {\\n grid-template-columns: 1fr !important;\\n grid-template-rows: auto auto auto !important;\\n }\\n \\n .divider {\\n height: 1px;\\n }\\n \\n .panel-left,\\n .panel-right {\\n padding: var(--snice-spacing-md, 1rem);\\n }\\n}\";",null],"names":[],"mappings":";;;AAAA,UAAe,kvEAAkvE;;ICIpvE,gBAAgB,GAAA,CAAA,MAAA;4BAD5B,OAAO,CAAC,oBAAoB,CAAC,CAAA;;;;sBACQ,WAAW;;;;;;;AAAnB,KAAA,cAAQ,WAAW,CAAA;;;;
|
|
1
|
+
{"version":3,"file":"snice-layout-split.js","sources":["../../../components/layout/snice-layout-split.css?inline","../../../../components/layout/snice-layout-split.ts"],"sourcesContent":["export default \"/* Split Layout - Two panels side by side */\\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 min-height: 100vh;\\n gap: 1px;\\n background: var(--snice-color-border, #d1d5db);\\n}\\n\\n/* Horizontal split (default) */\\n:host([direction=\\\"horizontal\\\"]) .layout,\\n:host(:not([direction])) .layout {\\n grid-template-columns: 1fr auto 1fr;\\n grid-template-rows: 1fr;\\n}\\n\\n/* Vertical split */\\n:host([direction=\\\"vertical\\\"]) .layout {\\n grid-template-rows: 1fr auto 1fr;\\n grid-template-columns: 1fr;\\n}\\n\\n/* Ratio variants - Horizontal */\\n:host([ratio=\\\"50-50\\\"]) .layout,\\n:host(:not([ratio])) .layout {\\n grid-template-columns: 1fr 1px 1fr;\\n}\\n\\n:host([ratio=\\\"60-40\\\"]) .layout {\\n grid-template-columns: 60fr 1px 40fr;\\n}\\n\\n:host([ratio=\\\"70-30\\\"]) .layout {\\n grid-template-columns: 70fr 1px 30fr;\\n}\\n\\n:host([ratio=\\\"33-67\\\"]) .layout {\\n grid-template-columns: 33fr 1px 67fr;\\n}\\n\\n:host([ratio=\\\"67-33\\\"]) .layout {\\n grid-template-columns: 67fr 1px 33fr;\\n}\\n\\n/* Ratio variants - Vertical */\\n:host([direction=\\\"vertical\\\"][ratio=\\\"50-50\\\"]) .layout,\\n:host([direction=\\\"vertical\\\"]:not([ratio])) .layout {\\n grid-template-rows: 1fr 1px 1fr;\\n}\\n\\n:host([direction=\\\"vertical\\\"][ratio=\\\"60-40\\\"]) .layout {\\n grid-template-rows: 60fr 1px 40fr;\\n}\\n\\n:host([direction=\\\"vertical\\\"][ratio=\\\"70-30\\\"]) .layout {\\n grid-template-rows: 70fr 1px 30fr;\\n}\\n\\n:host([direction=\\\"vertical\\\"][ratio=\\\"33-67\\\"]) .layout {\\n grid-template-rows: 33fr 1px 67fr;\\n}\\n\\n:host([direction=\\\"vertical\\\"][ratio=\\\"67-33\\\"]) .layout {\\n grid-template-rows: 67fr 1px 33fr;\\n}\\n\\n.panel {\\n background: var(--snice-color-background, white);\\n overflow: auto;\\n}\\n\\n.panel-left {\\n padding: var(--snice-spacing-lg, 2rem);\\n}\\n\\n.panel-right {\\n padding: var(--snice-spacing-lg, 2rem);\\n}\\n\\n.divider {\\n background: var(--snice-color-border, #d1d5db);\\n}\\n\\n/* Mobile responsive */\\n@media (max-width: 768px) {\\n .layout {\\n grid-template-columns: 1fr !important;\\n grid-template-rows: auto auto auto !important;\\n }\\n \\n .divider {\\n height: 1px;\\n }\\n \\n .panel-left,\\n .panel-right {\\n padding: var(--snice-spacing-md, 1rem);\\n }\\n}\";",null],"names":[],"mappings":";;;AAAA,UAAe,kvEAAkvE;;ICIpvE,gBAAgB,GAAA,CAAA,MAAA;4BAD5B,OAAO,CAAC,oBAAoB,CAAC,CAAA;;;;sBACQ,WAAW;;;;;;;AAAnB,KAAA,cAAQ,WAAW,CAAA;;;;qCAC9C,QAAQ,CAAC,EAAI,CAAC,CAAA;iCAGd,QAAQ,CAAC,EAAI,CAAC,CAAA;YAFf,YAAA,CAAA,IAAA,EAAA,IAAA,EAAA,qBAAA,EAAA,EAAA,IAAA,EAAA,OAAA,EAAA,IAAA,EAAA,WAAA,EAAA,MAAA,EAAA,KAAA,EAAA,OAAA,EAAA,KAAA,EAAA,MAAA,EAAA,EAAA,GAAA,EAAA,GAAA,IAAA,WAAA,IAAA,GAAA,EAAA,GAAA,EAAA,GAAA,IAAA,GAAA,CAAA,SAAS,EAAA,GAAA,EAAA,CAAA,GAAA,EAAA,KAAA,KAAA,EAAA,GAAA,CAAT,SAAS,GAAA,KAAA,CAAA,CAAA,CAAA,EAAA,EAAA,QAAA,EAAA,SAAA,EAAA,EAAA,uBAAA,EAAA,4BAAA,CAAA;YAGT,YAAA,CAAA,IAAA,EAAA,IAAA,EAAA,iBAAA,EAAA,EAAA,IAAA,EAAA,OAAA,EAAA,IAAA,EAAA,OAAA,EAAA,MAAA,EAAA,KAAA,EAAA,OAAA,EAAA,KAAA,EAAA,MAAA,EAAA,EAAA,GAAA,EAAA,GAAA,IAAA,OAAA,IAAA,GAAA,EAAA,GAAA,EAAA,GAAA,IAAA,GAAA,CAAA,KAAK,EAAA,GAAA,EAAA,CAAA,GAAA,EAAA,KAAA,KAAA,EAAA,GAAA,CAAL,KAAK,GAAA,KAAA,CAAA,CAAA,CAAA,EAAA,EAAA,QAAA,EAAA,SAAA,EAAA,EAAA,mBAAA,EAAA,wBAAA,CAAA;YALP,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;;;;;;;;;;KAUd;QACH;QAEA,GAAG,GAAA;AACD,YAAA,OAAO,GAAG;QACZ;;;YArBA,IAAA,CAAA,SAAS,GAAA,iBAAA,CAAA,IAAA,EAAA,uBAAA,EAA8B,YAAY,CAAA;YAGnD,IAAA,CAAA,KAAK,IAAA,iBAAA,CAAA,IAAA,EAAA,4BAAA,CAAA,EAAA,iBAAA,CAAA,IAAA,EAAA,mBAAA,EAAoD,OAAO,CAAA,CAAA;;;;;;;;;"}
|