snice 2.5.4 → 3.1.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 +501 -882
- package/bin/templates/base/src/components/counter-button.ts +13 -26
- package/bin/templates/base/src/controllers/counter-controller.ts +3 -3
- package/dist/components/accordion/snice-accordion-item.d.ts +4 -5
- package/dist/components/accordion/snice-accordion-item.js +37 -39
- package/dist/components/accordion/snice-accordion-item.js.map +1 -1
- package/dist/components/accordion/snice-accordion.d.ts +5 -11
- package/dist/components/accordion/snice-accordion.js +51 -52
- package/dist/components/accordion/snice-accordion.js.map +1 -1
- package/dist/components/alert/snice-alert.d.ts +2 -6
- package/dist/components/alert/snice-alert.js +41 -56
- package/dist/components/alert/snice-alert.js.map +1 -1
- package/dist/components/avatar/snice-avatar.d.ts +2 -6
- package/dist/components/avatar/snice-avatar.js +64 -71
- package/dist/components/avatar/snice-avatar.js.map +1 -1
- package/dist/components/badge/snice-badge.d.ts +2 -3
- package/dist/components/badge/snice-badge.js +22 -23
- package/dist/components/badge/snice-badge.js.map +1 -1
- package/dist/components/breadcrumbs/snice-breadcrumbs.d.ts +5 -12
- package/dist/components/breadcrumbs/snice-breadcrumbs.js +88 -89
- package/dist/components/breadcrumbs/snice-breadcrumbs.js.map +1 -1
- package/dist/components/button/snice-button.d.ts +3 -7
- package/dist/components/button/snice-button.js +37 -58
- package/dist/components/button/snice-button.js.map +1 -1
- package/dist/components/card/snice-card.d.ts +5 -8
- package/dist/components/card/snice-card.js +71 -56
- package/dist/components/card/snice-card.js.map +1 -1
- package/dist/components/checkbox/snice-checkbox.d.ts +4 -13
- package/dist/components/checkbox/snice-checkbox.js +66 -137
- package/dist/components/checkbox/snice-checkbox.js.map +1 -1
- package/dist/components/chip/snice-chip.d.ts +5 -11
- package/dist/components/chip/snice-chip.js +44 -47
- package/dist/components/chip/snice-chip.js.map +1 -1
- package/dist/components/date-picker/snice-date-picker.d.ts +11 -11
- package/dist/components/date-picker/snice-date-picker.js +134 -133
- package/dist/components/date-picker/snice-date-picker.js.map +1 -1
- package/dist/components/divider/snice-divider.d.ts +2 -4
- package/dist/components/divider/snice-divider.js +14 -22
- package/dist/components/divider/snice-divider.js.map +1 -1
- package/dist/components/drawer/snice-drawer.d.ts +4 -4
- package/dist/components/drawer/snice-drawer.js +25 -19
- package/dist/components/drawer/snice-drawer.js.map +1 -1
- package/dist/components/input/snice-input.d.ts +8 -6
- package/dist/components/input/snice-input.js +122 -105
- package/dist/components/input/snice-input.js.map +1 -1
- package/dist/components/layout/snice-layout-blog.d.ts +4 -4
- package/dist/components/layout/snice-layout-blog.js +21 -19
- package/dist/components/layout/snice-layout-blog.js.map +1 -1
- package/dist/components/layout/snice-layout-card.d.ts +2 -2
- package/dist/components/layout/snice-layout-card.js +16 -9
- package/dist/components/layout/snice-layout-card.js.map +1 -1
- package/dist/components/layout/snice-layout-centered.d.ts +2 -2
- package/dist/components/layout/snice-layout-centered.js +14 -7
- package/dist/components/layout/snice-layout-centered.js.map +1 -1
- package/dist/components/layout/snice-layout-dashboard.d.ts +5 -5
- package/dist/components/layout/snice-layout-dashboard.js +38 -30
- package/dist/components/layout/snice-layout-dashboard.js.map +1 -1
- package/dist/components/layout/snice-layout-fullscreen.d.ts +2 -2
- package/dist/components/layout/snice-layout-fullscreen.js +17 -10
- package/dist/components/layout/snice-layout-fullscreen.js.map +1 -1
- package/dist/components/layout/snice-layout-landing.d.ts +4 -4
- package/dist/components/layout/snice-layout-landing.js +21 -19
- package/dist/components/layout/snice-layout-landing.js.map +1 -1
- package/dist/components/layout/snice-layout-minimal.d.ts +2 -2
- package/dist/components/layout/snice-layout-minimal.js +17 -6
- package/dist/components/layout/snice-layout-minimal.js.map +1 -1
- package/dist/components/layout/snice-layout-sidebar.d.ts +5 -4
- package/dist/components/layout/snice-layout-sidebar.js +42 -20
- package/dist/components/layout/snice-layout-sidebar.js.map +1 -1
- package/dist/components/layout/snice-layout-split.d.ts +2 -2
- package/dist/components/layout/snice-layout-split.js +14 -7
- package/dist/components/layout/snice-layout-split.js.map +1 -1
- package/dist/components/layout/snice-layout.d.ts +4 -4
- package/dist/components/layout/snice-layout.js +16 -10
- package/dist/components/layout/snice-layout.js.map +1 -1
- package/dist/components/login/snice-login.d.ts +6 -11
- package/dist/components/login/snice-login.js +97 -71
- package/dist/components/login/snice-login.js.map +1 -1
- package/dist/components/modal/snice-modal.d.ts +5 -9
- package/dist/components/modal/snice-modal.js +47 -78
- package/dist/components/modal/snice-modal.js.map +1 -1
- package/dist/components/nav/snice-nav.d.ts +13 -7
- package/dist/components/nav/snice-nav.js +191 -100
- package/dist/components/nav/snice-nav.js.map +1 -1
- package/dist/components/nav/snice-nav.types.d.ts +3 -3
- package/dist/components/pagination/snice-pagination.d.ts +6 -7
- package/dist/components/pagination/snice-pagination.js +94 -81
- package/dist/components/pagination/snice-pagination.js.map +1 -1
- package/dist/components/progress/snice-progress.d.ts +2 -7
- package/dist/components/progress/snice-progress.js +41 -98
- package/dist/components/progress/snice-progress.js.map +1 -1
- package/dist/components/radio/snice-radio.d.ts +4 -4
- package/dist/components/radio/snice-radio.js +52 -44
- package/dist/components/radio/snice-radio.js.map +1 -1
- package/dist/components/select/snice-option.d.ts +2 -1
- package/dist/components/select/snice-option.js +12 -5
- package/dist/components/select/snice-option.js.map +1 -1
- package/dist/components/select/snice-select.d.ts +9 -21
- package/dist/components/select/snice-select.js +98 -170
- package/dist/components/select/snice-select.js.map +1 -1
- package/dist/components/skeleton/snice-skeleton.d.ts +2 -6
- package/dist/components/skeleton/snice-skeleton.js +18 -49
- package/dist/components/skeleton/snice-skeleton.js.map +1 -1
- package/dist/components/snice-cell-BLFVdxPp.js +4 -0
- package/dist/components/snice-cell-BLFVdxPp.js.map +1 -0
- package/dist/components/switch/snice-switch.d.ts +2 -2
- package/dist/components/switch/snice-switch.js +38 -26
- package/dist/components/switch/snice-switch.js.map +1 -1
- package/dist/components/table/snice-cell-actions.d.ts +24 -0
- package/dist/components/table/snice-cell-actions.js +149 -0
- package/dist/components/table/snice-cell-actions.js.map +1 -0
- package/dist/components/table/snice-cell-boolean.d.ts +2 -2
- package/dist/components/table/snice-cell-boolean.js +13 -7
- package/dist/components/table/snice-cell-boolean.js.map +1 -1
- package/dist/components/table/snice-cell-color.d.ts +18 -0
- package/dist/components/table/snice-cell-color.js +149 -0
- package/dist/components/table/snice-cell-color.js.map +1 -0
- package/dist/components/table/snice-cell-currency.d.ts +24 -0
- package/dist/components/table/snice-cell-currency.js +235 -0
- package/dist/components/table/snice-cell-currency.js.map +1 -0
- package/dist/components/table/snice-cell-date.d.ts +2 -2
- package/dist/components/table/snice-cell-date.js +14 -8
- package/dist/components/table/snice-cell-date.js.map +1 -1
- package/dist/components/table/snice-cell-duration.d.ts +2 -2
- package/dist/components/table/snice-cell-duration.js +12 -6
- package/dist/components/table/snice-cell-duration.js.map +1 -1
- package/dist/components/table/snice-cell-email.d.ts +15 -0
- package/dist/components/table/snice-cell-email.js +125 -0
- package/dist/components/table/snice-cell-email.js.map +1 -0
- package/dist/components/table/snice-cell-filesize.d.ts +2 -2
- package/dist/components/table/snice-cell-filesize.js +12 -6
- package/dist/components/table/snice-cell-filesize.js.map +1 -1
- package/dist/components/table/snice-cell-image.d.ts +20 -0
- package/dist/components/table/snice-cell-image.js +162 -0
- package/dist/components/table/snice-cell-image.js.map +1 -0
- package/dist/components/table/snice-cell-json.d.ts +20 -0
- package/dist/components/table/snice-cell-json.js +186 -0
- package/dist/components/table/snice-cell-json.js.map +1 -0
- package/dist/components/table/snice-cell-link.d.ts +17 -0
- package/dist/components/table/snice-cell-link.js +142 -0
- package/dist/components/table/snice-cell-link.js.map +1 -0
- package/dist/components/table/snice-cell-location.d.ts +19 -0
- package/dist/components/table/snice-cell-location.js +185 -0
- package/dist/components/table/snice-cell-location.js.map +1 -0
- package/dist/components/table/snice-cell-number.d.ts +2 -2
- package/dist/components/table/snice-cell-number.js +12 -6
- package/dist/components/table/snice-cell-number.js.map +1 -1
- package/dist/components/table/snice-cell-percentage.d.ts +22 -0
- package/dist/components/table/snice-cell-percentage.js +208 -0
- package/dist/components/table/snice-cell-percentage.js.map +1 -0
- package/dist/components/table/snice-cell-phone.d.ts +18 -0
- package/dist/components/table/snice-cell-phone.js +153 -0
- package/dist/components/table/snice-cell-phone.js.map +1 -0
- package/dist/components/table/snice-cell-progress.d.ts +2 -2
- package/dist/components/table/snice-cell-progress.js +12 -6
- package/dist/components/table/snice-cell-progress.js.map +1 -1
- package/dist/components/table/snice-cell-rating.d.ts +2 -2
- package/dist/components/table/snice-cell-rating.js +12 -6
- package/dist/components/table/snice-cell-rating.js.map +1 -1
- package/dist/components/table/snice-cell-sparkline.d.ts +2 -2
- package/dist/components/table/snice-cell-sparkline.js +13 -7
- package/dist/components/table/snice-cell-sparkline.js.map +1 -1
- package/dist/components/table/snice-cell-status.d.ts +17 -0
- package/dist/components/table/snice-cell-status.js +144 -0
- package/dist/components/table/snice-cell-status.js.map +1 -0
- package/dist/components/table/snice-cell-tag.d.ts +16 -0
- package/dist/components/table/snice-cell-tag.js +131 -0
- package/dist/components/table/snice-cell-tag.js.map +1 -0
- package/dist/components/table/snice-cell-text.d.ts +2 -2
- package/dist/components/table/snice-cell-text.js +14 -8
- package/dist/components/table/snice-cell-text.js.map +1 -1
- package/dist/components/table/snice-cell.d.ts +2 -2
- package/dist/components/table/snice-cell.js +12 -6
- package/dist/components/table/snice-cell.js.map +1 -1
- package/dist/components/table/snice-column.d.ts +1 -1
- package/dist/components/table/snice-column.js +6 -3
- package/dist/components/table/snice-column.js.map +1 -1
- package/dist/components/table/snice-header.d.ts +5 -5
- package/dist/components/table/snice-header.js +60 -50
- package/dist/components/table/snice-header.js.map +1 -1
- package/dist/components/table/snice-progress.d.ts +2 -2
- package/dist/components/table/snice-progress.js +18 -11
- package/dist/components/table/snice-progress.js.map +1 -1
- package/dist/components/table/snice-rating.d.ts +2 -2
- package/dist/components/table/snice-rating.js +15 -8
- package/dist/components/table/snice-rating.js.map +1 -1
- package/dist/components/table/snice-row.d.ts +17 -6
- package/dist/components/table/snice-row.js +95 -44
- package/dist/components/table/snice-row.js.map +1 -1
- package/dist/components/table/snice-table.d.ts +18 -10
- package/dist/components/table/snice-table.js +355 -173
- package/dist/components/table/snice-table.js.map +1 -1
- package/dist/components/table/snice-table.types.d.ts +101 -2
- package/dist/components/tabs/snice-tab-panel.d.ts +2 -2
- package/dist/components/tabs/snice-tab-panel.js +12 -6
- package/dist/components/tabs/snice-tab-panel.js.map +1 -1
- package/dist/components/tabs/snice-tab.d.ts +6 -5
- package/dist/components/tabs/snice-tab.js +36 -19
- package/dist/components/tabs/snice-tab.js.map +1 -1
- package/dist/components/tabs/snice-tabs.d.ts +5 -5
- package/dist/components/tabs/snice-tabs.js +38 -28
- package/dist/components/tabs/snice-tabs.js.map +1 -1
- package/dist/components/toast/snice-toast-container.d.ts +7 -7
- package/dist/components/toast/snice-toast-container.js +19 -12
- package/dist/components/toast/snice-toast-container.js.map +1 -1
- package/dist/components/toast/snice-toast.d.ts +3 -15
- package/dist/components/toast/snice-toast.js +49 -108
- package/dist/components/toast/snice-toast.js.map +1 -1
- package/dist/components/tooltip/snice-tooltip.d.ts +2 -2
- package/dist/components/tooltip/snice-tooltip.js +14 -7
- package/dist/components/tooltip/snice-tooltip.js.map +1 -1
- package/dist/context.d.ts +44 -0
- package/dist/element-ready.d.ts +40 -0
- package/dist/{types/element.d.ts → element.d.ts} +2 -8
- package/dist/{types/events.d.ts → events.d.ts} +0 -4
- package/dist/index.cjs +2589 -605
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +21 -0
- package/dist/index.esm.js +2568 -604
- package/dist/index.esm.js.map +1 -1
- package/dist/index.iife.js +2589 -605
- package/dist/index.iife.js.map +1 -1
- package/dist/method-decorators.d.ts +121 -0
- package/dist/on.d.ts +59 -0
- package/dist/parts.d.ts +159 -0
- package/dist/render-debug.d.ts +27 -0
- package/dist/render-tracker.d.ts +14 -0
- package/dist/render.d.ts +96 -0
- package/dist/symbols.cjs +163 -0
- package/dist/symbols.cjs.map +1 -1
- package/dist/{types/symbols.d.ts → symbols.d.ts} +22 -0
- package/dist/symbols.esm.js +27 -3
- package/dist/symbols.esm.js.map +1 -1
- package/dist/template.d.ts +100 -0
- package/dist/transitions.cjs +219 -0
- package/dist/transitions.esm.js +2 -2
- package/dist/types/context.d.ts +48 -0
- package/dist/types/element-options.d.ts +26 -0
- package/dist/types/index.d.ts +25 -9
- package/dist/types/nav-context.d.ts +19 -0
- package/dist/types/{types/on-options.d.ts → on-options.d.ts} +2 -0
- package/dist/types/{types/placard.d.ts → placard.d.ts} +0 -1
- package/docs/ai/README.md +17 -0
- package/docs/ai/api.md +175 -0
- package/docs/ai/architecture.md +160 -0
- package/docs/ai/components/accordion.md +174 -0
- package/docs/ai/components/alert.md +77 -0
- package/docs/ai/components/avatar.md +61 -0
- package/docs/ai/components/badge.md +69 -0
- package/docs/ai/components/breadcrumbs.md +74 -0
- package/docs/ai/components/button.md +75 -0
- package/docs/ai/components/card.md +61 -0
- package/docs/ai/components/checkbox.md +74 -0
- package/docs/ai/components/chip.md +73 -0
- package/docs/ai/components/date-picker.md +75 -0
- package/docs/ai/components/divider.md +66 -0
- package/docs/ai/components/drawer.md +80 -0
- package/docs/ai/components/input.md +111 -0
- package/docs/ai/components/login.md +109 -0
- package/docs/ai/components/modal.md +67 -0
- package/docs/ai/components/nav.md +76 -0
- package/docs/ai/components/pagination.md +55 -0
- package/docs/ai/components/progress.md +72 -0
- package/docs/ai/components/radio.md +79 -0
- package/docs/ai/components/select.md +92 -0
- package/docs/ai/components/skeleton.md +57 -0
- package/docs/ai/components/switch.md +53 -0
- package/docs/ai/components/table.md +227 -0
- package/docs/ai/components/tabs.md +83 -0
- package/docs/ai/components/toast.md +140 -0
- package/docs/ai/components/tooltip.md +146 -0
- package/docs/ai/patterns.md +244 -0
- package/docs/components/accordion.md +558 -0
- package/docs/components/drawer.md +602 -0
- package/docs/components/modal.md +558 -0
- package/docs/components/nav.md +239 -0
- package/docs/components/pagination.md +289 -0
- package/docs/components/select.md +599 -0
- package/docs/components/switch.md +354 -0
- package/docs/components/tabs.md +546 -0
- package/docs/components/toast.md +506 -0
- package/docs/components/tooltip.md +523 -0
- package/docs/controllers.md +744 -0
- package/docs/elements.md +855 -0
- package/docs/events.md +807 -0
- package/docs/migration-v2-to-v3.md +569 -0
- package/docs/observe.md +588 -0
- package/docs/placards.md +401 -0
- package/docs/request-response.md +852 -0
- package/docs/routing.md +1186 -0
- package/package.json +10 -11
- package/dist/components/snice-cell-C9N6yGxQ.js +0 -4
- package/dist/components/snice-cell-C9N6yGxQ.js.map +0 -1
- package/dist/types/types/index.d.ts +0 -23
- /package/dist/{types/controller.d.ts → controller.d.ts} +0 -0
- /package/dist/{types/global.d.ts → global.d.ts} +0 -0
- /package/dist/{types/observe.d.ts → observe.d.ts} +0 -0
- /package/dist/{types/request-response.d.ts → request-response.d.ts} +0 -0
- /package/dist/{types/router.d.ts → router.d.ts} +0 -0
- /package/dist/{types/testing.d.ts → testing.d.ts} +0 -0
- /package/dist/{types/transitions.d.ts → transitions.d.ts} +0 -0
- /package/dist/types/{types/adopted-options.d.ts → adopted-options.d.ts} +0 -0
- /package/dist/types/{types/app-context.d.ts → app-context.d.ts} +0 -0
- /package/dist/types/{types/dispatch-options.d.ts → dispatch-options.d.ts} +0 -0
- /package/dist/types/{types/guard.d.ts → guard.d.ts} +0 -0
- /package/dist/types/{types/i-controller.d.ts → i-controller.d.ts} +0 -0
- /package/dist/types/{types/moved-options.d.ts → moved-options.d.ts} +0 -0
- /package/dist/types/{types/observe-options.d.ts → observe-options.d.ts} +0 -0
- /package/dist/types/{types/page-options.d.ts → page-options.d.ts} +0 -0
- /package/dist/types/{types/part-options.d.ts → part-options.d.ts} +0 -0
- /package/dist/types/{types/property-converter.d.ts → property-converter.d.ts} +0 -0
- /package/dist/types/{types/property-options.d.ts → property-options.d.ts} +0 -0
- /package/dist/types/{types/query-options.d.ts → query-options.d.ts} +0 -0
- /package/dist/types/{types/request-options.d.ts → request-options.d.ts} +0 -0
- /package/dist/types/{types/respond-options.d.ts → respond-options.d.ts} +0 -0
- /package/dist/types/{types/route-params.d.ts → route-params.d.ts} +0 -0
- /package/dist/types/{types/router-instance.d.ts → router-instance.d.ts} +0 -0
- /package/dist/types/{types/router-options.d.ts → router-options.d.ts} +0 -0
- /package/dist/types/{types/simple-array.d.ts → simple-array.d.ts} +0 -0
- /package/dist/types/{types/snice-element.d.ts → snice-element.d.ts} +0 -0
- /package/dist/types/{types/snice-global.d.ts → snice-global.d.ts} +0 -0
- /package/dist/types/{types/transition.d.ts → transition.d.ts} +0 -0
- /package/dist/{types/utils.d.ts → utils.d.ts} +0 -0
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { __runInitializers, __esDecorate } from 'tslib';
|
|
2
|
-
import { element, property, query,
|
|
2
|
+
import { element, property, query, render, styles, ready, html, css } from 'snice';
|
|
3
3
|
import '../drawer/snice-drawer.js';
|
|
4
4
|
import '../nav/snice-nav.js';
|
|
5
5
|
|
|
6
|
-
var
|
|
6
|
+
var cssContent = "/* 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}";
|
|
7
7
|
|
|
8
8
|
let SniceLayoutSidebar = (() => {
|
|
9
9
|
let _classDecorators = [element('snice-layout-sidebar')];
|
|
@@ -21,8 +21,9 @@ let SniceLayoutSidebar = (() => {
|
|
|
21
21
|
let _navElement_decorators;
|
|
22
22
|
let _navElement_initializers = [];
|
|
23
23
|
let _navElement_extraInitializers = [];
|
|
24
|
-
let
|
|
25
|
-
let
|
|
24
|
+
let _renderContent_decorators;
|
|
25
|
+
let _componentStyles_decorators;
|
|
26
|
+
let _init_decorators;
|
|
26
27
|
(class extends _classSuper {
|
|
27
28
|
static { _classThis = this; }
|
|
28
29
|
constructor() {
|
|
@@ -38,10 +39,12 @@ let SniceLayoutSidebar = (() => {
|
|
|
38
39
|
_collapsed_decorators = [property({ type: Boolean, })];
|
|
39
40
|
_sidebarDrawer_decorators = [query('.sidebar-drawer')];
|
|
40
41
|
_navElement_decorators = [query('snice-nav')];
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
__esDecorate(this, null,
|
|
42
|
+
_renderContent_decorators = [render()];
|
|
43
|
+
_componentStyles_decorators = [styles()];
|
|
44
|
+
_init_decorators = [ready()];
|
|
45
|
+
__esDecorate(this, null, _renderContent_decorators, { kind: "method", name: "renderContent", static: false, private: false, access: { has: obj => "renderContent" in obj, get: obj => obj.renderContent }, metadata: _metadata }, null, _instanceExtraInitializers);
|
|
46
|
+
__esDecorate(this, null, _componentStyles_decorators, { kind: "method", name: "componentStyles", static: false, private: false, access: { has: obj => "componentStyles" in obj, get: obj => obj.componentStyles }, metadata: _metadata }, null, _instanceExtraInitializers);
|
|
47
|
+
__esDecorate(this, null, _init_decorators, { kind: "method", name: "init", static: false, private: false, access: { has: obj => "init" in obj, get: obj => obj.init }, metadata: _metadata }, null, _instanceExtraInitializers);
|
|
45
48
|
__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
49
|
__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
50
|
__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);
|
|
@@ -50,11 +53,11 @@ let SniceLayoutSidebar = (() => {
|
|
|
50
53
|
if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
|
|
51
54
|
__runInitializers(_classThis, _classExtraInitializers);
|
|
52
55
|
}
|
|
53
|
-
|
|
54
|
-
return /*html*/ `
|
|
56
|
+
renderContent() {
|
|
57
|
+
return html /*html*/ `
|
|
55
58
|
<div class="layout">
|
|
56
59
|
<header class="header">
|
|
57
|
-
<button class="sidebar-toggle" type="button" aria-label="Toggle sidebar">
|
|
60
|
+
<button class="sidebar-toggle" type="button" aria-label="Toggle sidebar" @click=${this.handleSidebarToggle}>
|
|
58
61
|
<svg viewBox="0 0 24 24" width="20" height="20">
|
|
59
62
|
<path d="M3 18h18v-2H3v2zm0-5h18v-2H3v2zm0-7v2h18V6H3z" fill="currentColor"/>
|
|
60
63
|
</svg>
|
|
@@ -72,7 +75,7 @@ let SniceLayoutSidebar = (() => {
|
|
|
72
75
|
<div class="body-area">
|
|
73
76
|
<snice-drawer class="sidebar-drawer" position="left" size="medium" contained>
|
|
74
77
|
<span slot="title">Navigation</span>
|
|
75
|
-
<snice-nav class="sidebar-nav"
|
|
78
|
+
<snice-nav class="sidebar-nav" variant="hierarchical" orientation="vertical"></snice-nav>
|
|
76
79
|
</snice-drawer>
|
|
77
80
|
|
|
78
81
|
<main class="main">
|
|
@@ -86,26 +89,45 @@ let SniceLayoutSidebar = (() => {
|
|
|
86
89
|
</div>
|
|
87
90
|
`;
|
|
88
91
|
}
|
|
89
|
-
|
|
90
|
-
return css
|
|
92
|
+
componentStyles() {
|
|
93
|
+
return css /*css*/ `${cssContent}`;
|
|
91
94
|
}
|
|
92
95
|
handleSidebarToggle() {
|
|
93
96
|
if (this.sidebarDrawer) {
|
|
94
97
|
this.sidebarDrawer.toggle();
|
|
95
98
|
}
|
|
96
99
|
}
|
|
97
|
-
|
|
100
|
+
init() {
|
|
101
|
+
// Update nav when component is ready and shadow DOM is available
|
|
102
|
+
this.updateNav();
|
|
103
|
+
}
|
|
104
|
+
update(appContext, placards, currentRoute, routeParams) {
|
|
98
105
|
this.placards = placards;
|
|
99
106
|
this.currentRoute = currentRoute;
|
|
100
107
|
// Update the navigation
|
|
101
|
-
this.
|
|
108
|
+
this.updateNav(appContext, routeParams);
|
|
102
109
|
}
|
|
103
|
-
|
|
110
|
+
updateNav(appContext, routeParams) {
|
|
111
|
+
// If @query hasn't resolved yet, try manual query
|
|
112
|
+
if (!this.navElement && this.shadowRoot) {
|
|
113
|
+
const manualNav = this.shadowRoot.querySelector('snice-nav');
|
|
114
|
+
if (manualNav) {
|
|
115
|
+
manualNav.update(this.placards, appContext, this.currentRoute, routeParams);
|
|
116
|
+
return;
|
|
117
|
+
}
|
|
118
|
+
}
|
|
104
119
|
if (this.navElement) {
|
|
105
|
-
this.navElement.placards
|
|
106
|
-
|
|
120
|
+
this.navElement.update(this.placards, appContext, this.currentRoute, routeParams);
|
|
121
|
+
}
|
|
122
|
+
else {
|
|
123
|
+
// Shadow DOM not ready yet, retry after next frame
|
|
124
|
+
requestAnimationFrame(() => {
|
|
125
|
+
const nav = this.shadowRoot?.querySelector('snice-nav');
|
|
126
|
+
if (nav) {
|
|
127
|
+
nav.update(this.placards, appContext, this.currentRoute, routeParams);
|
|
128
|
+
}
|
|
129
|
+
});
|
|
107
130
|
}
|
|
108
|
-
return '';
|
|
109
131
|
}
|
|
110
132
|
});
|
|
111
133
|
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 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,
|
|
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":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
export declare class SniceLayoutSplit extends HTMLElement {
|
|
2
2
|
direction: 'horizontal' | 'vertical';
|
|
3
3
|
ratio: '50-50' | '60-40' | '70-30' | '33-67' | '67-33';
|
|
4
|
-
|
|
5
|
-
|
|
4
|
+
renderContent(): import("snice").TemplateResult;
|
|
5
|
+
componentStyles(): import("snice").CSSResult;
|
|
6
6
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { __esDecorate, __runInitializers } from 'tslib';
|
|
2
|
-
import { element, property } from 'snice';
|
|
2
|
+
import { element, property, render, styles, html, css } from 'snice';
|
|
3
3
|
|
|
4
|
-
var
|
|
4
|
+
var cssContent = "/* 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}";
|
|
5
5
|
|
|
6
6
|
let SniceLayoutSplit = (() => {
|
|
7
7
|
let _classDecorators = [element('snice-layout-split')];
|
|
@@ -9,18 +9,25 @@ let SniceLayoutSplit = (() => {
|
|
|
9
9
|
let _classExtraInitializers = [];
|
|
10
10
|
let _classThis;
|
|
11
11
|
let _classSuper = HTMLElement;
|
|
12
|
+
let _instanceExtraInitializers = [];
|
|
12
13
|
let _direction_decorators;
|
|
13
14
|
let _direction_initializers = [];
|
|
14
15
|
let _direction_extraInitializers = [];
|
|
15
16
|
let _ratio_decorators;
|
|
16
17
|
let _ratio_initializers = [];
|
|
17
18
|
let _ratio_extraInitializers = [];
|
|
19
|
+
let _renderContent_decorators;
|
|
20
|
+
let _componentStyles_decorators;
|
|
18
21
|
(class extends _classSuper {
|
|
19
22
|
static { _classThis = this; }
|
|
20
23
|
static {
|
|
21
24
|
const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
|
|
22
25
|
_direction_decorators = [property({})];
|
|
23
26
|
_ratio_decorators = [property({})];
|
|
27
|
+
_renderContent_decorators = [render()];
|
|
28
|
+
_componentStyles_decorators = [styles()];
|
|
29
|
+
__esDecorate(this, null, _renderContent_decorators, { kind: "method", name: "renderContent", static: false, private: false, access: { has: obj => "renderContent" in obj, get: obj => obj.renderContent }, metadata: _metadata }, null, _instanceExtraInitializers);
|
|
30
|
+
__esDecorate(this, null, _componentStyles_decorators, { kind: "method", name: "componentStyles", static: false, private: false, access: { has: obj => "componentStyles" in obj, get: obj => obj.componentStyles }, metadata: _metadata }, null, _instanceExtraInitializers);
|
|
24
31
|
__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
32
|
__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
33
|
__esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
|
|
@@ -28,8 +35,8 @@ let SniceLayoutSplit = (() => {
|
|
|
28
35
|
if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
|
|
29
36
|
__runInitializers(_classThis, _classExtraInitializers);
|
|
30
37
|
}
|
|
31
|
-
|
|
32
|
-
return /*html*/ `
|
|
38
|
+
renderContent() {
|
|
39
|
+
return html /*html*/ `
|
|
33
40
|
<div class="layout">
|
|
34
41
|
<div class="panel panel-left">
|
|
35
42
|
<slot name="left"></slot>
|
|
@@ -41,12 +48,12 @@ let SniceLayoutSplit = (() => {
|
|
|
41
48
|
</div>
|
|
42
49
|
`;
|
|
43
50
|
}
|
|
44
|
-
|
|
45
|
-
return css
|
|
51
|
+
componentStyles() {
|
|
52
|
+
return css /*css*/ `${cssContent}`;
|
|
46
53
|
}
|
|
47
54
|
constructor() {
|
|
48
55
|
super(...arguments);
|
|
49
|
-
this.direction = __runInitializers(this, _direction_initializers, 'horizontal');
|
|
56
|
+
this.direction = (__runInitializers(this, _instanceExtraInitializers), __runInitializers(this, _direction_initializers, 'horizontal'));
|
|
50
57
|
this.ratio = (__runInitializers(this, _direction_extraInitializers), __runInitializers(this, _ratio_initializers, '50-50'));
|
|
51
58
|
__runInitializers(this, _ratio_extraInitializers);
|
|
52
59
|
}
|
|
@@ -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,
|
|
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":"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"}
|
|
@@ -5,9 +5,9 @@ export declare class SniceLayout extends HTMLElement implements Layout {
|
|
|
5
5
|
navElement: SniceNav;
|
|
6
6
|
private placards;
|
|
7
7
|
private currentRoute;
|
|
8
|
-
|
|
9
|
-
|
|
8
|
+
renderContent(): import("snice").TemplateResult;
|
|
9
|
+
componentStyles(): import("snice").CSSResult;
|
|
10
10
|
onReady(): void;
|
|
11
|
-
update(
|
|
12
|
-
updateNav(): void;
|
|
11
|
+
update(appContext: AppContext, placards: Placard[], currentRoute: string, routeParams: RouteParams): void;
|
|
12
|
+
updateNav(appContext?: AppContext, routeParams?: RouteParams): void;
|
|
13
13
|
}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { __runInitializers, __esDecorate } from 'tslib';
|
|
2
|
-
import { element, query, ready } from 'snice';
|
|
2
|
+
import { element, query, render, styles, ready, html, css } from 'snice';
|
|
3
3
|
import '../nav/snice-nav.js';
|
|
4
4
|
|
|
5
|
-
var
|
|
5
|
+
var cssContent = "/* 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}";
|
|
6
6
|
|
|
7
7
|
let SniceLayout = (() => {
|
|
8
8
|
let _classDecorators = [element('snice-layout')];
|
|
@@ -14,6 +14,8 @@ let SniceLayout = (() => {
|
|
|
14
14
|
let _navElement_decorators;
|
|
15
15
|
let _navElement_initializers = [];
|
|
16
16
|
let _navElement_extraInitializers = [];
|
|
17
|
+
let _renderContent_decorators;
|
|
18
|
+
let _componentStyles_decorators;
|
|
17
19
|
let _onReady_decorators;
|
|
18
20
|
(class extends _classSuper {
|
|
19
21
|
static { _classThis = this; }
|
|
@@ -26,7 +28,11 @@ let SniceLayout = (() => {
|
|
|
26
28
|
static {
|
|
27
29
|
const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
|
|
28
30
|
_navElement_decorators = [query('snice-nav')];
|
|
31
|
+
_renderContent_decorators = [render()];
|
|
32
|
+
_componentStyles_decorators = [styles()];
|
|
29
33
|
_onReady_decorators = [ready()];
|
|
34
|
+
__esDecorate(this, null, _renderContent_decorators, { kind: "method", name: "renderContent", static: false, private: false, access: { has: obj => "renderContent" in obj, get: obj => obj.renderContent }, metadata: _metadata }, null, _instanceExtraInitializers);
|
|
35
|
+
__esDecorate(this, null, _componentStyles_decorators, { kind: "method", name: "componentStyles", static: false, private: false, access: { has: obj => "componentStyles" in obj, get: obj => obj.componentStyles }, metadata: _metadata }, null, _instanceExtraInitializers);
|
|
30
36
|
__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
37
|
__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
38
|
__esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
|
|
@@ -34,8 +40,8 @@ let SniceLayout = (() => {
|
|
|
34
40
|
if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
|
|
35
41
|
__runInitializers(_classThis, _classExtraInitializers);
|
|
36
42
|
}
|
|
37
|
-
|
|
38
|
-
return /*html*/ `
|
|
43
|
+
renderContent() {
|
|
44
|
+
return html /*html*/ `
|
|
39
45
|
<div class="layout">
|
|
40
46
|
<header class="header">
|
|
41
47
|
<div class="brand">
|
|
@@ -57,8 +63,8 @@ let SniceLayout = (() => {
|
|
|
57
63
|
</div>
|
|
58
64
|
`;
|
|
59
65
|
}
|
|
60
|
-
|
|
61
|
-
return css
|
|
66
|
+
componentStyles() {
|
|
67
|
+
return css /*css*/ `${cssContent}`;
|
|
62
68
|
}
|
|
63
69
|
onReady() {
|
|
64
70
|
// Update nav if we already have placards
|
|
@@ -66,17 +72,17 @@ let SniceLayout = (() => {
|
|
|
66
72
|
this.updateNav();
|
|
67
73
|
}
|
|
68
74
|
}
|
|
69
|
-
update(
|
|
75
|
+
update(appContext, placards, currentRoute, routeParams) {
|
|
70
76
|
this.placards = placards;
|
|
71
77
|
this.currentRoute = currentRoute;
|
|
72
78
|
// Update navigation - only if shadow DOM exists
|
|
73
79
|
if (this.shadowRoot) {
|
|
74
|
-
this.updateNav();
|
|
80
|
+
this.updateNav(appContext, routeParams);
|
|
75
81
|
}
|
|
76
82
|
}
|
|
77
|
-
updateNav() {
|
|
83
|
+
updateNav(appContext, routeParams) {
|
|
78
84
|
if (this.navElement) {
|
|
79
|
-
this.navElement.update(this.placards, this.currentRoute);
|
|
85
|
+
this.navElement.update(this.placards, appContext, this.currentRoute, routeParams);
|
|
80
86
|
}
|
|
81
87
|
}
|
|
82
88
|
});
|
|
@@ -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,
|
|
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":"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"}
|
|
@@ -20,19 +20,14 @@ export declare class SniceLogin extends HTMLElement implements SniceLoginElement
|
|
|
20
20
|
inputElements: NodeListOf<HTMLInputElement>;
|
|
21
21
|
private alertMessage;
|
|
22
22
|
private alertVariant;
|
|
23
|
-
|
|
24
|
-
|
|
23
|
+
renderContent(): import("snice").TemplateResult;
|
|
24
|
+
componentStyles(): import("snice").CSSResult;
|
|
25
25
|
updateLoginClasses(): void;
|
|
26
26
|
login(credentials?: LoginCredentials): any;
|
|
27
|
-
handleButtonClick
|
|
28
|
-
handleSubmit
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
} | undefined>;
|
|
32
|
-
handleEnterKey(): void;
|
|
33
|
-
handleForgotPassword(event: Event): {
|
|
34
|
-
timestamp: string;
|
|
35
|
-
};
|
|
27
|
+
private handleButtonClick;
|
|
28
|
+
private handleSubmit;
|
|
29
|
+
private handleEnterKey;
|
|
30
|
+
private handleForgotPassword;
|
|
36
31
|
private dispatchLoginSuccess;
|
|
37
32
|
private dispatchLoginError;
|
|
38
33
|
private getFormData;
|