@mhmo91/schmancy 0.10.18 → 0.10.19
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/dist/agent/{flow-CvG1fLW5.js.map → flow-3RrZM-e7.js.map} +1 -1
- package/dist/agent/overlay.confirm-body-D3jQyXgA.js +2863 -0
- package/dist/agent/overlay.confirm-body-D3jQyXgA.js.map +1 -0
- package/dist/agent/{rolldown-runtime-DsMetpgY.js → rolldown-runtime-BIIoCavz.js} +9 -2
- package/dist/agent/schmancy.agent.js +3870 -5769
- package/dist/agent/schmancy.agent.js.map +1 -1
- package/dist/agent/{vendor-material-color-DcL7ZPxx.js.map → vendor-material-color-33Mj762T.js.map} +1 -1
- package/dist/{audio-D-TZzpXF.cjs → audio-Cvmemu84.cjs} +1 -1
- package/dist/{audio-D-TZzpXF.cjs.map → audio-Cvmemu84.cjs.map} +1 -1
- package/dist/{audio-DS43uoRA.js → audio-CxO5a2HL.js} +1 -1
- package/dist/{audio-DS43uoRA.js.map → audio-CxO5a2HL.js.map} +1 -1
- package/dist/audio.cjs +1 -1
- package/dist/audio.js +2 -2
- package/dist/badge.cjs +1 -1
- package/dist/badge.js +1 -1
- package/dist/{boat-cuoSkhGI.js → boat-CNWIQPA1.js} +1 -1
- package/dist/{boat-cuoSkhGI.js.map → boat-CNWIQPA1.js.map} +1 -1
- package/dist/{boat-DN1_tyvx.cjs → boat-OatK_MGh.cjs} +1 -1
- package/dist/{boat-DN1_tyvx.cjs.map → boat-OatK_MGh.cjs.map} +1 -1
- package/dist/boat.cjs +1 -1
- package/dist/boat.js +1 -1
- package/dist/{chips-m2NPN480.js → chips-D1kJrbzo.js} +1 -1
- package/dist/{chips-m2NPN480.js.map → chips-D1kJrbzo.js.map} +1 -1
- package/dist/{chips-DSdvCpmi.cjs → chips-Dx_WvOGk.cjs} +1 -1
- package/dist/{chips-DSdvCpmi.cjs.map → chips-Dx_WvOGk.cjs.map} +1 -1
- package/dist/chips.cjs +1 -1
- package/dist/chips.js +1 -1
- package/dist/connectivity.cjs +1 -1
- package/dist/connectivity.js +1 -1
- package/dist/content-drawer.cjs +1 -1
- package/dist/content-drawer.js +1 -1
- package/dist/{date-range-D98QcCHl.js → date-range-Dv-DM6mB.js} +1 -1
- package/dist/{date-range-D98QcCHl.js.map → date-range-Dv-DM6mB.js.map} +1 -1
- package/dist/{date-range-DxS3Agbj.cjs → date-range-H903Vt_r.cjs} +1 -1
- package/dist/{date-range-DxS3Agbj.cjs.map → date-range-H903Vt_r.cjs.map} +1 -1
- package/dist/date-range.cjs +1 -1
- package/dist/date-range.js +1 -1
- package/dist/directives.cjs +1 -1
- package/dist/directives.js +1 -1
- package/dist/{float-B8NcSE3a.cjs → float-CfbQM_2v.cjs} +1 -1
- package/dist/{float-B8NcSE3a.cjs.map → float-CfbQM_2v.cjs.map} +1 -1
- package/dist/{float-C-glc-3u.js → float-KmbhaQHA.js} +1 -1
- package/dist/{float-C-glc-3u.js.map → float-KmbhaQHA.js.map} +1 -1
- package/dist/float.cjs +1 -1
- package/dist/float.js +1 -1
- package/dist/{form-DJvxIyfW.js → form-8IcmP8uV.js} +2 -2
- package/dist/{form-DJvxIyfW.js.map → form-8IcmP8uV.js.map} +1 -1
- package/dist/{form-St_IwR7y.cjs → form-CuBIrKOA.cjs} +1 -1
- package/dist/{form-St_IwR7y.cjs.map → form-CuBIrKOA.cjs.map} +1 -1
- package/dist/form.cjs +1 -1
- package/dist/form.js +2 -2
- package/dist/handover/agent-runtime-followups.md +1 -1
- package/dist/handover/agent-runtime-v1.md +3 -3
- package/dist/index.cjs +1 -1
- package/dist/index.js +56 -53
- package/dist/json.cjs +1 -1
- package/dist/json.js +1 -1
- package/dist/{layout-Delq-QvR.cjs → layout-BbCIfIgo.cjs} +1 -1
- package/dist/{layout-Delq-QvR.cjs.map → layout-BbCIfIgo.cjs.map} +1 -1
- package/dist/{layout-BH28sKGc.js → layout-Dq2oeOTS.js} +1 -1
- package/dist/{layout-BH28sKGc.js.map → layout-Dq2oeOTS.js.map} +1 -1
- package/dist/{menu-Dag0cuWV.cjs → menu-BqKQ-s0C.cjs} +1 -1
- package/dist/{menu-Dag0cuWV.cjs.map → menu-BqKQ-s0C.cjs.map} +1 -1
- package/dist/{menu-B_-weNpZ.js → menu-C5ksITpG.js} +1 -1
- package/dist/{menu-B_-weNpZ.js.map → menu-C5ksITpG.js.map} +1 -1
- package/dist/menu.cjs +1 -1
- package/dist/menu.js +1 -1
- package/dist/nav-drawer.cjs +1 -1
- package/dist/nav-drawer.js +1 -1
- package/dist/navigation-bar.cjs +1 -1
- package/dist/navigation-bar.js +1 -1
- package/dist/{notification-yd2KeHjd.cjs → notification-DR3gvWt8.cjs} +1 -1
- package/dist/{notification-yd2KeHjd.cjs.map → notification-DR3gvWt8.cjs.map} +1 -1
- package/dist/{notification-DySnvQeO.js → notification-eZxtr3NN.js} +1 -1
- package/dist/{notification-DySnvQeO.js.map → notification-eZxtr3NN.js.map} +1 -1
- package/dist/notification.cjs +1 -1
- package/dist/notification.js +1 -1
- package/dist/overlay-DG6EeyKt.cjs +80 -0
- package/dist/overlay-DG6EeyKt.cjs.map +1 -0
- package/dist/overlay-oxM9OLXP.js +745 -0
- package/dist/overlay-oxM9OLXP.js.map +1 -0
- package/dist/overlay.cjs +1 -80
- package/dist/{overlay.confirm-body-sUmd_zVy.cjs.map → overlay.confirm-body-78e1WrN9.cjs.map} +1 -1
- package/dist/{overlay.confirm-body-DESGpbru.js.map → overlay.confirm-body-D_P2e7l6.js.map} +1 -1
- package/dist/overlay.js +5 -746
- package/dist/{overlay.service-DV_o_xQ0.js → overlay.service-C8NwO4Bx.js} +2 -2
- package/dist/{overlay.service-DV_o_xQ0.js.map → overlay.service-C8NwO4Bx.js.map} +1 -1
- package/dist/{overlay.service-BxtEFFSH.cjs → overlay.service-DQkGPUY7.cjs} +1 -1
- package/dist/{overlay.service-BxtEFFSH.cjs.map → overlay.service-DQkGPUY7.cjs.map} +1 -1
- package/dist/page.cjs +1 -1
- package/dist/page.js +2 -2
- package/dist/{rxjs-utils-Dv9T9IpA.js.map → rxjs-utils-Cs6XGwF6.js.map} +1 -1
- package/dist/{rxjs-utils-BKB2UM_j.cjs.map → rxjs-utils-Dsj75cJy.cjs.map} +1 -1
- package/dist/rxjs-utils.cjs +1 -1
- package/dist/rxjs-utils.js +1 -1
- package/dist/{sound.service-DyY78ukR.cjs → sound.service-DVJZb9ox.cjs} +1 -1
- package/dist/{sound.service-DyY78ukR.cjs.map → sound.service-DVJZb9ox.cjs.map} +1 -1
- package/dist/{sound.service-BIN2W7Rv.js → sound.service-v_jqCkos.js} +1 -1
- package/dist/{sound.service-BIN2W7Rv.js.map → sound.service-v_jqCkos.js.map} +1 -1
- package/dist/{splash-screen-25PTDqnp.cjs.map → splash-screen-BvaDkvJU.cjs.map} +1 -1
- package/dist/{splash-screen-bGW_sS4i.js.map → splash-screen-ChMkAPLU.js.map} +1 -1
- package/dist/splash-screen.cjs +1 -1
- package/dist/splash-screen.js +1 -1
- package/dist/{src-Blm9PNcf.cjs → src-BIlD63Cz.cjs} +1 -1
- package/dist/{src-Blm9PNcf.cjs.map → src-BIlD63Cz.cjs.map} +1 -1
- package/dist/{src-olrlFt4e.js → src-DnunCC4X.js} +18 -17
- package/dist/{src-olrlFt4e.js.map → src-DnunCC4X.js.map} +1 -1
- package/dist/{state-nm8yzMPp.js → state-CHbIt2Dw.js} +198 -202
- package/dist/{state-nm8yzMPp.js.map → state-CHbIt2Dw.js.map} +1 -1
- package/dist/state-DcGj-pJJ.cjs +1 -0
- package/dist/{state-avic94Ft.cjs.map → state-DcGj-pJJ.cjs.map} +1 -1
- package/dist/state.cjs +1 -1
- package/dist/state.js +1 -1
- package/dist/{tabs-BVC_qn8S.js.map → tabs-CkDNLbiS.js.map} +1 -1
- package/dist/{tabs-Dc3_Ox2B.cjs.map → tabs-lxQHWEb7.cjs.map} +1 -1
- package/dist/tabs.cjs +1 -1
- package/dist/tabs.js +1 -1
- package/dist/teleport.cjs +1 -1
- package/dist/teleport.js +1 -1
- package/dist/{theme-DCybsrfv.cjs → theme-CMyXTDht.cjs} +1 -1
- package/dist/{theme-DCybsrfv.cjs.map → theme-CMyXTDht.cjs.map} +1 -1
- package/dist/{theme-BiCwFfCf.js → theme-CNWRYdfn.js} +2 -2
- package/dist/{theme-BiCwFfCf.js.map → theme-CNWRYdfn.js.map} +1 -1
- package/dist/{theme-button-DqiA0rJg.js.map → theme-button-CixloLin.js.map} +1 -1
- package/dist/{theme-button-cZGRyQRK.cjs.map → theme-button-kMhsX5Oe.cjs.map} +1 -1
- package/dist/theme-button.cjs +1 -1
- package/dist/theme-button.js +1 -1
- package/dist/theme.cjs +1 -1
- package/dist/theme.js +2 -2
- package/dist/{theme.service-BOWIT_5k.js → theme.service-CSzNkqBB.js} +1 -1
- package/dist/{theme.service-BOWIT_5k.js.map → theme.service-CSzNkqBB.js.map} +1 -1
- package/dist/{theme.service-DkdH1t60.cjs → theme.service-CnFUmUpc.cjs} +1 -1
- package/dist/{theme.service-DkdH1t60.cjs.map → theme.service-CnFUmUpc.cjs.map} +1 -1
- package/dist/{utils-D2QUu4-g.cjs.map → utils-C-Q8ePtG.cjs.map} +1 -1
- package/dist/{utils-Cj_nRRyx.js.map → utils-DXE5fBBd.js.map} +1 -1
- package/dist/utils.cjs +1 -1
- package/dist/utils.js +1 -1
- package/dist/{window-DMy5Gsgu.js → window-BcvDNi9D.js} +1 -1
- package/dist/{window-DMy5Gsgu.js.map → window-BcvDNi9D.js.map} +1 -1
- package/dist/{window-BMecbTzs.cjs → window-qaGFMn_4.cjs} +1 -1
- package/dist/{window-BMecbTzs.cjs.map → window-qaGFMn_4.cjs.map} +1 -1
- package/dist/window.cjs +1 -1
- package/dist/window.js +1 -1
- package/package.json +1 -1
- package/src/index.ts +8 -0
- package/src/state/index.ts +31 -9
- package/types/src/index.d.ts +1 -0
- package/dist/overlay.cjs.map +0 -1
- package/dist/overlay.js.map +0 -1
- package/dist/state-avic94Ft.cjs +0 -1
- /package/dist/agent/{flow-CvG1fLW5.js → flow-3RrZM-e7.js} +0 -0
- /package/dist/agent/{vendor-material-color-DcL7ZPxx.js → vendor-material-color-33Mj762T.js} +0 -0
- /package/dist/{overlay.confirm-body-sUmd_zVy.cjs → overlay.confirm-body-78e1WrN9.cjs} +0 -0
- /package/dist/{overlay.confirm-body-DESGpbru.js → overlay.confirm-body-D_P2e7l6.js} +0 -0
- /package/dist/{rxjs-utils-Dv9T9IpA.js → rxjs-utils-Cs6XGwF6.js} +0 -0
- /package/dist/{rxjs-utils-BKB2UM_j.cjs → rxjs-utils-Dsj75cJy.cjs} +0 -0
- /package/dist/{splash-screen-25PTDqnp.cjs → splash-screen-BvaDkvJU.cjs} +0 -0
- /package/dist/{splash-screen-bGW_sS4i.js → splash-screen-ChMkAPLU.js} +0 -0
- /package/dist/{tabs-BVC_qn8S.js → tabs-CkDNLbiS.js} +0 -0
- /package/dist/{tabs-Dc3_Ox2B.cjs → tabs-lxQHWEb7.cjs} +0 -0
- /package/dist/{theme-button-DqiA0rJg.js → theme-button-CixloLin.js} +0 -0
- /package/dist/{theme-button-cZGRyQRK.cjs → theme-button-kMhsX5Oe.cjs} +0 -0
- /package/dist/{utils-D2QUu4-g.cjs → utils-C-Q8ePtG.cjs} +0 -0
- /package/dist/{utils-Cj_nRRyx.js → utils-DXE5fBBd.js} +0 -0
package/dist/state.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`}),require(`./chunk-CncqDLb2.cjs`);const e=require(`./active-host-jH3iloCR.cjs`),t=require(`./state-
|
|
1
|
+
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`}),require(`./chunk-CncqDLb2.cjs`);const e=require(`./active-host-jH3iloCR.cjs`),t=require(`./state-DcGj-pJJ.cjs`);let n=require(`@lit-labs/signals`);exports.SchmancyContext=t.o,Object.defineProperty(exports,`Signal`,{enumerable:!0,get:function(){return n.Signal}}),exports._activeHost=e.t,exports.bindState=t.t,Object.defineProperty(exports,`computed`,{enumerable:!0,get:function(){return n.computed}}),exports.effect=t.n,exports.observe=t.r,exports.state=t.i,exports.stateFromObservable=t.a;
|
package/dist/state.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import { t as e } from "./active-host-BP0zy_Y9.js";
|
|
2
|
-
import { a as t, c as n, i as r, n as i, o as a, r as o, s, t as c } from "./state-
|
|
2
|
+
import { a as t, c as n, i as r, n as i, o as a, r as o, s, t as c } from "./state-CHbIt2Dw.js";
|
|
3
3
|
export { n as SchmancyContext, c as Signal, e as _activeHost, i as bindState, o as computed, r as effect, t as observe, a as state, s as stateFromObservable };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tabs-BVC_qn8S.js","names":[],"sources":["../src/tabs/context.ts","../src/tabs/tab.ts","../src/tabs/tabs-group.ts"],"sourcesContent":["import { createContext } from '@lit/context'\n\nexport type TSchmancyTabsMode = 'scroll' | 'tabs'\n\nexport const SchmancyTabsModeContext = createContext<TSchmancyTabsMode>('tabs')\n","import { consume } from '@lit/context'\nimport { SchmancyElement } from '@mixins/index'\nimport { html } from 'lit'\nimport { customElement, property, state } from 'lit/decorators.js'\nimport { SchmancyTabsModeContext } from './context'\n\n@customElement('schmancy-tab')\nexport default class SchmancyTab extends SchmancyElement {\n\t@property({ type: String, reflect: true }) label\n\t@property({ type: String, reflect: true }) value\n\t@property({ type: Boolean, reflect: true }) active!: boolean\n\n\t@consume({ context: SchmancyTabsModeContext, subscribe: true })\n\t@state()\n\tmode\n\n\tprotected updated(changedProperties: Map<PropertyKey, unknown>) {\n\t\tif (changedProperties.has('active') && this.active) {\n\t\t\t// Trigger resize for virtualizers to recalculate when tab becomes visible\n\t\t\trequestAnimationFrame(() => {\n\t\t\t\twindow.dispatchEvent(new Event('resize'))\n\t\t\t})\n\t\t}\n\t}\n\n\tprotected render(): unknown {\n\t\t// Don't render content until tab is active (virtualizers need actual layout, not hidden)\n\t\tif (this.mode === 'tabs' && !this.active) {\n\t\t\treturn html``\n\t\t}\n\t\treturn html`<slot></slot>`\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-tab': SchmancyTab\n\t}\n}\n","import { provide } from '@lit/context'\nimport { SchmancyElement } from '@mixins/index'\nimport { css, html } from 'lit'\nimport { customElement, property, query, queryAssignedElements, state } from 'lit/decorators.js'\nimport { repeat } from 'lit/directives/repeat.js'\nimport { filter, fromEvent, interval, map, take, throttleTime } from 'rxjs'\nimport { SchmancyTabsModeContext, TSchmancyTabsMode } from './context'\nimport SchmancyTab from './tab'\n\n/**\n * @slot - The content of the tab group\n * @fires tab-changed - The event fired when the tab is changed\n */\n@customElement('schmancy-tab-group')\nexport default class SchmancyTabGroup extends SchmancyElement {\n\tstatic styles = [css`\n\t:host {\n\t\tdisplay: block;\n\t\theight: 100%;\n\t}\n`];\n\t@provide({ context: SchmancyTabsModeContext })\n\t@property({ type: String })\n\tmode: TSchmancyTabsMode = 'tabs'\n\n\t@property({ type: Boolean }) rounded = true\n\n\t@property({ type: String, reflect: true }) activeTab: string\n\t@queryAssignedElements({\n\t\tflatten: true,\n\t})\n\tprivate tabsElements!: Array<SchmancyTab>\n\n\t@query('#tabsNavigation') navElement!: HTMLElement\n\t@query('#tabsContent') tabsContent!: HTMLElement\n\n\t@state()\n\tprivate tabs: Array<SchmancyTab> = []\n\n\tconnectedCallback(): void {\n\t\tsuper.connectedCallback()\n\t\tfromEvent(window, 'scroll')\n\t\t\t.pipe(\n\t\t\t\tthrottleTime(1000),\n\t\t\t\tfilter(() => this.mode === 'scroll'),\n\t\t\t\tmap(() => {\n\t\t\t\t\tlet closestDiv = null\n\t\t\t\t\tlet closestDistance = Infinity\n\t\t\t\t\tthis.tabsElements.forEach(div => {\n\t\t\t\t\t\tconst distance =\n\t\t\t\t\t\t\tdiv.getBoundingClientRect().top - this.navElement.clientHeight + document.body.offsetHeight / 3\n\n\t\t\t\t\t\tif (distance < closestDistance && distance > 0) {\n\t\t\t\t\t\t\tclosestDistance = distance\n\t\t\t\t\t\t\tclosestDiv = div\n\t\t\t\t\t\t}\n\t\t\t\t\t})\n\t\t\t\t\treturn closestDiv\n\t\t\t\t}),\n\t\t\t\tfilter((el: SchmancyTab | null) => el !== null),\n\t\t\t)\n\t\t\t.subscribe({\n\t\t\t\tnext: (el: SchmancyTab) => {\n\t\t\t\t\tthis.activeTab = el.value\n\t\t\t\t},\n\t\t\t})\n\t}\n\n\tfirstUpdated() {\n\t\tinterval(0)\n\t\t\t.pipe(\n\t\t\t\tfilter(() => !!this.navElement.clientHeight),\n\t\t\t\ttake(1),\n\t\t\t)\n\t\t\t.subscribe(() => {\n\t\t\t\tthis.tabsElements.forEach(tab => {\n\t\t\t\t\tif (this.mode === 'scroll') tab.style.paddingTop = this.navElement.clientHeight + 'px'\n\t\t\t\t})\n\t\t\t})\n\t}\n\n\thydrateTabs() {\n\t\tthis.tabs = this.tabsElements\n\t\tif (!this.activeTab && this.tabsElements[0]) {\n\t\t\tthis.activeTab = this.tabsElements[0].value\n\t\t\tthis.tabsElements[0].active = true\n\t\t} else {\n\t\t\tthis.tabsElements.forEach(tab => {\n\t\t\t\tif (tab.value === this.activeTab) tab.active = true\n\t\t\t\telse tab.active = false\n\t\t\t})\n\t\t}\n\t\tconst lastTab = this.tabs?.[-1]\n\t\tif (lastTab) {\n\t\t\tlastTab.style.paddingBottom = lastTab.offsetHeight + 'px'\n\t\t}\n\t}\n\n\ttabChanged(selectedTab: { label: string; value: string }) {\n\t\tlet activeTabElement: SchmancyTab | undefined\n\t\tthis.tabsElements.forEach(tab => {\n\t\t\tif (tab.value === selectedTab.value) {\n\t\t\t\ttab.active = true\n\t\t\t\tactiveTabElement = tab\n\t\t\t\t// scroll to the tab\n\t\t\t\tif (this.mode === 'scroll') {\n\t\t\t\t\t// Scroll the desired element into view\n\t\t\t\t\tactiveTabElement.scrollIntoView({\n\t\t\t\t\t\tbehavior: 'smooth',\n\t\t\t\t\t\tblock: 'start',\n\t\t\t\t\t\tinline: 'start',\n\t\t\t\t\t})\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\ttab.active = false\n\t\t\t}\n\t\t})\n\t\tif (this.mode === 'tabs') {\n\t\t\tthis.activeTab = selectedTab.value\n\t\t}\n\t\tthis.dispatchEvent(new CustomEvent('tab-changed', { detail: this.activeTab }))\n\t}\n\n\tprotected render(): unknown {\n\t\tconst tabs = {\n\t\t\t'bg-surface-default color-surface-on': true,\n\t\t\t'flex z-50 overflow-auto': true,\n\t\t\t'sticky top-0 shadow-md': this.mode === 'scroll',\n\t\t\t'rounded-full': this.rounded,\n\t\t}\n\n\t\tconst activeTab = {\n\t\t\t'text-primary-default': true,\n\t\t}\n\n\t\tconst inactiveTab = {\n\t\t\t'border-transparent': true,\n\t\t\t'hover:text-surface-on': true,\n\t\t\t'hover:border-outlineVariant': true,\n\t\t\t'text-surface-onVariant': true,\n\t\t}\n\n\t\treturn html`\n\t\t\t<section id=\"tabsNavigation\" class=\"${this.classMap(tabs)}\" aria-label=\"Tabs\">\n\t\t\t\t${repeat(\n\t\t\t\t\tthis.tabs,\n\t\t\t\t\ttab => tab.value,\n\t\t\t\t\ttab => html`\n\t\t\t\t\t\t<schmancy-button\n\t\t\t\t\t\t\t@click=${() => {\n\t\t\t\t\t\t\t\tthis.tabChanged({\n\t\t\t\t\t\t\t\t\tlabel: tab.label,\n\t\t\t\t\t\t\t\t\tvalue: tab.value,\n\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\taria-current=\"page\"\n\t\t\t\t\t\t\tclass=\"h-auto relative\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\tclass=\"px-4 py-3 ${this.activeTab === tab.value\n\t\t\t\t\t\t\t\t\t? this.classMap(activeTab)\n\t\t\t\t\t\t\t\t\t: this.classMap(inactiveTab)}\"\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<schmancy-typography class=\"h-full align-middle flex \" type=\"title\" token=\"md\" weight=\"medium\">\n\t\t\t\t\t\t\t\t\t${tab.label}\n\t\t\t\t\t\t\t\t</schmancy-typography>\n\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\t.hidden=${this.activeTab !== tab.value}\n\t\t\t\t\t\t\t\t\tclass=\"border-primary-default absolute bottom-0 inset-x-6 border-solid border-2 rounded-t-full\"\n\t\t\t\t\t\t\t\t></div>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</schmancy-button>\n\t\t\t\t\t`,\n\t\t\t\t)}\n\t\t\t</section>\n\t\t\t<section id=\"tabsContent\" class=\"h-full\">\n\t\t\t\t<slot @slotchange=${() => this.hydrateTabs()}></slot>\n\t\t\t</section>\n\t\t`\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-tab-group': SchmancyTabGroup\n\t}\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"tabs-CkDNLbiS.js","names":[],"sources":["../src/tabs/context.ts","../src/tabs/tab.ts","../src/tabs/tabs-group.ts"],"sourcesContent":["import { createContext } from '@lit/context'\n\nexport type TSchmancyTabsMode = 'scroll' | 'tabs'\n\nexport const SchmancyTabsModeContext = createContext<TSchmancyTabsMode>('tabs')\n","import { consume } from '@lit/context'\nimport { SchmancyElement } from '@mixins/index'\nimport { html } from 'lit'\nimport { customElement, property, state } from 'lit/decorators.js'\nimport { SchmancyTabsModeContext } from './context'\n\n@customElement('schmancy-tab')\nexport default class SchmancyTab extends SchmancyElement {\n\t@property({ type: String, reflect: true }) label\n\t@property({ type: String, reflect: true }) value\n\t@property({ type: Boolean, reflect: true }) active!: boolean\n\n\t@consume({ context: SchmancyTabsModeContext, subscribe: true })\n\t@state()\n\tmode\n\n\tprotected updated(changedProperties: Map<PropertyKey, unknown>) {\n\t\tif (changedProperties.has('active') && this.active) {\n\t\t\t// Trigger resize for virtualizers to recalculate when tab becomes visible\n\t\t\trequestAnimationFrame(() => {\n\t\t\t\twindow.dispatchEvent(new Event('resize'))\n\t\t\t})\n\t\t}\n\t}\n\n\tprotected render(): unknown {\n\t\t// Don't render content until tab is active (virtualizers need actual layout, not hidden)\n\t\tif (this.mode === 'tabs' && !this.active) {\n\t\t\treturn html``\n\t\t}\n\t\treturn html`<slot></slot>`\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-tab': SchmancyTab\n\t}\n}\n","import { provide } from '@lit/context'\nimport { SchmancyElement } from '@mixins/index'\nimport { css, html } from 'lit'\nimport { customElement, property, query, queryAssignedElements, state } from 'lit/decorators.js'\nimport { repeat } from 'lit/directives/repeat.js'\nimport { filter, fromEvent, interval, map, take, throttleTime } from 'rxjs'\nimport { SchmancyTabsModeContext, TSchmancyTabsMode } from './context'\nimport SchmancyTab from './tab'\n\n/**\n * @slot - The content of the tab group\n * @fires tab-changed - The event fired when the tab is changed\n */\n@customElement('schmancy-tab-group')\nexport default class SchmancyTabGroup extends SchmancyElement {\n\tstatic styles = [css`\n\t:host {\n\t\tdisplay: block;\n\t\theight: 100%;\n\t}\n`];\n\t@provide({ context: SchmancyTabsModeContext })\n\t@property({ type: String })\n\tmode: TSchmancyTabsMode = 'tabs'\n\n\t@property({ type: Boolean }) rounded = true\n\n\t@property({ type: String, reflect: true }) activeTab: string\n\t@queryAssignedElements({\n\t\tflatten: true,\n\t})\n\tprivate tabsElements!: Array<SchmancyTab>\n\n\t@query('#tabsNavigation') navElement!: HTMLElement\n\t@query('#tabsContent') tabsContent!: HTMLElement\n\n\t@state()\n\tprivate tabs: Array<SchmancyTab> = []\n\n\tconnectedCallback(): void {\n\t\tsuper.connectedCallback()\n\t\tfromEvent(window, 'scroll')\n\t\t\t.pipe(\n\t\t\t\tthrottleTime(1000),\n\t\t\t\tfilter(() => this.mode === 'scroll'),\n\t\t\t\tmap(() => {\n\t\t\t\t\tlet closestDiv = null\n\t\t\t\t\tlet closestDistance = Infinity\n\t\t\t\t\tthis.tabsElements.forEach(div => {\n\t\t\t\t\t\tconst distance =\n\t\t\t\t\t\t\tdiv.getBoundingClientRect().top - this.navElement.clientHeight + document.body.offsetHeight / 3\n\n\t\t\t\t\t\tif (distance < closestDistance && distance > 0) {\n\t\t\t\t\t\t\tclosestDistance = distance\n\t\t\t\t\t\t\tclosestDiv = div\n\t\t\t\t\t\t}\n\t\t\t\t\t})\n\t\t\t\t\treturn closestDiv\n\t\t\t\t}),\n\t\t\t\tfilter((el: SchmancyTab | null) => el !== null),\n\t\t\t)\n\t\t\t.subscribe({\n\t\t\t\tnext: (el: SchmancyTab) => {\n\t\t\t\t\tthis.activeTab = el.value\n\t\t\t\t},\n\t\t\t})\n\t}\n\n\tfirstUpdated() {\n\t\tinterval(0)\n\t\t\t.pipe(\n\t\t\t\tfilter(() => !!this.navElement.clientHeight),\n\t\t\t\ttake(1),\n\t\t\t)\n\t\t\t.subscribe(() => {\n\t\t\t\tthis.tabsElements.forEach(tab => {\n\t\t\t\t\tif (this.mode === 'scroll') tab.style.paddingTop = this.navElement.clientHeight + 'px'\n\t\t\t\t})\n\t\t\t})\n\t}\n\n\thydrateTabs() {\n\t\tthis.tabs = this.tabsElements\n\t\tif (!this.activeTab && this.tabsElements[0]) {\n\t\t\tthis.activeTab = this.tabsElements[0].value\n\t\t\tthis.tabsElements[0].active = true\n\t\t} else {\n\t\t\tthis.tabsElements.forEach(tab => {\n\t\t\t\tif (tab.value === this.activeTab) tab.active = true\n\t\t\t\telse tab.active = false\n\t\t\t})\n\t\t}\n\t\tconst lastTab = this.tabs?.[-1]\n\t\tif (lastTab) {\n\t\t\tlastTab.style.paddingBottom = lastTab.offsetHeight + 'px'\n\t\t}\n\t}\n\n\ttabChanged(selectedTab: { label: string; value: string }) {\n\t\tlet activeTabElement: SchmancyTab | undefined\n\t\tthis.tabsElements.forEach(tab => {\n\t\t\tif (tab.value === selectedTab.value) {\n\t\t\t\ttab.active = true\n\t\t\t\tactiveTabElement = tab\n\t\t\t\t// scroll to the tab\n\t\t\t\tif (this.mode === 'scroll') {\n\t\t\t\t\t// Scroll the desired element into view\n\t\t\t\t\tactiveTabElement.scrollIntoView({\n\t\t\t\t\t\tbehavior: 'smooth',\n\t\t\t\t\t\tblock: 'start',\n\t\t\t\t\t\tinline: 'start',\n\t\t\t\t\t})\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\ttab.active = false\n\t\t\t}\n\t\t})\n\t\tif (this.mode === 'tabs') {\n\t\t\tthis.activeTab = selectedTab.value\n\t\t}\n\t\tthis.dispatchEvent(new CustomEvent('tab-changed', { detail: this.activeTab }))\n\t}\n\n\tprotected render(): unknown {\n\t\tconst tabs = {\n\t\t\t'bg-surface-default color-surface-on': true,\n\t\t\t'flex z-50 overflow-auto': true,\n\t\t\t'sticky top-0 shadow-md': this.mode === 'scroll',\n\t\t\t'rounded-full': this.rounded,\n\t\t}\n\n\t\tconst activeTab = {\n\t\t\t'text-primary-default': true,\n\t\t}\n\n\t\tconst inactiveTab = {\n\t\t\t'border-transparent': true,\n\t\t\t'hover:text-surface-on': true,\n\t\t\t'hover:border-outlineVariant': true,\n\t\t\t'text-surface-onVariant': true,\n\t\t}\n\n\t\treturn html`\n\t\t\t<section id=\"tabsNavigation\" class=\"${this.classMap(tabs)}\" aria-label=\"Tabs\">\n\t\t\t\t${repeat(\n\t\t\t\t\tthis.tabs,\n\t\t\t\t\ttab => tab.value,\n\t\t\t\t\ttab => html`\n\t\t\t\t\t\t<schmancy-button\n\t\t\t\t\t\t\t@click=${() => {\n\t\t\t\t\t\t\t\tthis.tabChanged({\n\t\t\t\t\t\t\t\t\tlabel: tab.label,\n\t\t\t\t\t\t\t\t\tvalue: tab.value,\n\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\taria-current=\"page\"\n\t\t\t\t\t\t\tclass=\"h-auto relative\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\tclass=\"px-4 py-3 ${this.activeTab === tab.value\n\t\t\t\t\t\t\t\t\t? this.classMap(activeTab)\n\t\t\t\t\t\t\t\t\t: this.classMap(inactiveTab)}\"\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<schmancy-typography class=\"h-full align-middle flex \" type=\"title\" token=\"md\" weight=\"medium\">\n\t\t\t\t\t\t\t\t\t${tab.label}\n\t\t\t\t\t\t\t\t</schmancy-typography>\n\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\t.hidden=${this.activeTab !== tab.value}\n\t\t\t\t\t\t\t\t\tclass=\"border-primary-default absolute bottom-0 inset-x-6 border-solid border-2 rounded-t-full\"\n\t\t\t\t\t\t\t\t></div>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</schmancy-button>\n\t\t\t\t\t`,\n\t\t\t\t)}\n\t\t\t</section>\n\t\t\t<section id=\"tabsContent\" class=\"h-full\">\n\t\t\t\t<slot @slotchange=${() => this.hydrateTabs()}></slot>\n\t\t\t</section>\n\t\t`\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-tab-group': SchmancyTabGroup\n\t}\n}\n"],"mappings":";;;;;;;AAIA,IAAa,IAA0B,EAAiC,OAAA,ECGzD,IAAA,cAA0B,EAAA;CASxC,QAAkB,GAAA;EACb,EAAkB,IAAI,SAAA,IAAa,KAAK,UAE3C,4BAAA;GACC,OAAO,cAAc,IAAI,MAAM,SAAA,CAAA;IAAA;;CAKlC,SAAA;EAEC,OAAI,KAAK,SAAS,UAAW,KAAK,SAG3B,CAAI,kBAFH,CAAI;;;AAAA,EAAA,CApBZ,EAAS;CAAE,MAAM;CAAQ,SAAA,CAAS;CAAA,CAAA,CAAA,EAAO,EAAA,WAAA,SAAA,KAAA,EAAA,EAAA,EAAA,CACzC,EAAS;CAAE,MAAM;CAAQ,SAAA,CAAS;CAAA,CAAA,CAAA,EAAO,EAAA,WAAA,SAAA,KAAA,EAAA,EAAA,EAAA,CACzC,EAAS;CAAE,MAAM;CAAS,SAAA,CAAS;CAAA,CAAA,CAAA,EAAO,EAAA,WAAA,UAAA,KAAA,EAAA,EAAA,EAAA,CAE1C,EAAQ;CAAE,SAAS;CAAyB,WAAA,CAAW;CAAA,CAAA,EACvD,GAAA,CAAA,EAAO,EAAA,WAAA,QAAA,KAAA,EAAA,EAAA,IAAA,EAAA,CAPR,EAAc,eAAA,CAAA,EAAe,EAAA;ACQf,IAAA,IAAA,cAA+B,EAAA;CAAA,YAAA,GAAA,GAAA;EAAA,MAAA,GAAA,EAAA,EAAA,KAAA,OASnB,QAAA,KAAA,UAAA,CAEa,GAAA,KAAA,OAYJ,EAAA;;CAAA;EAAA,KAAA,SAtBnB,CAAC,CAAG;;;;;;;CAwBpB,oBAAA;EACC,MAAM,mBAAA,EACN,EAAU,QAAQ,SAAA,CAChB,KACA,EAAa,IAAA,EACb,QAAa,KAAK,SAAS,SAAT,EAClB,QAAA;GACC,IAAI,IAAa,MACb,IAAkB;GAUtB,OATA,KAAK,aAAa,SAAQ,MAAA;IACzB,IAAM,IACL,EAAI,uBAAA,CAAwB,MAAM,KAAK,WAAW,eAAe,SAAS,KAAK,eAAe;IAE3F,IAAW,KAAmB,IAAW,MAC5C,IAAkB,GAClB,IAAa;KAAA,EAGR;IAAA,EAER,GAAQ,MAA2B,MAAO,KAAP,CAAA,CAEnC,UAAU,EACV,OAAO,MAAA;GACN,KAAK,YAAY,EAAG;KAAA,CAAA;;CAKxB,eAAA;EACC,EAAS,EAAA,CACP,KACA,QAAA,CAAA,CAAe,KAAK,WAAW,aAAA,EAC/B,EAAK,EAAA,CAAA,CAEL,gBAAA;GACA,KAAK,aAAa,SAAQ,MAAA;IACP,AAAd,KAAK,SAAS,aAAU,EAAI,MAAM,aAAa,KAAK,WAAW,eAAe;KAAA;IAAA;;CAKtF,cAAA;EACC,KAAK,OAAO,KAAK,cAAA,CACZ,KAAK,aAAa,KAAK,aAAa,MACxC,KAAK,YAAY,KAAK,aAAa,GAAG,OACtC,KAAK,aAAa,GAAG,SAAA,CAAS,KAE9B,KAAK,aAAa,SAAQ,MAAA;GACrB,EAAI,UAAU,KAAK,YAAW,EAAI,SAAA,CAAS,IAC1C,EAAI,SAAA,CAAS;IAAA;EAGpB,IAAM,IAAU,KAAK,OAAA;EACjB,MACH,EAAQ,MAAM,gBAAgB,EAAQ,eAAe;;CAIvD,WAAW,GAAA;EACV,IAAI;EACJ,KAAK,aAAa,SAAQ,MAAA;GACrB,EAAI,UAAU,EAAY,SAC7B,EAAI,SAAA,CAAS,GACb,IAAmB,GAEf,KAAK,SAAS,YAEjB,EAAiB,eAAe;IAC/B,UAAU;IACV,OAAO;IACP,QAAQ;IAAA,CAAA,IAIV,EAAI,SAAA,CAAS;IAAA,EAGX,KAAK,SAAS,WACjB,KAAK,YAAY,EAAY,QAE9B,KAAK,cAAc,IAAI,YAAY,eAAe,EAAE,QAAQ,KAAK,WAAA,CAAA,CAAA;;CAGlE,SAAA;EACC,IAAM,IAAO;GACZ,uCAAA,CAAuC;GACvC,2BAAA,CAA2B;GAC3B,0BAA0B,KAAK,SAAS;GACxC,gBAAgB,KAAK;GAAA,EAGhB,IAAY,EACjB,wBAAA,CAAwB,GAAA,EAGnB,IAAc;GACnB,sBAAA,CAAsB;GACtB,yBAAA,CAAyB;GACzB,+BAAA,CAA+B;GAC/B,0BAAA,CAA0B;GAAA;EAG3B,OAAO,CAAI;yCAC4B,KAAK,SAAS,EAAA,CAAA;MACjD,EACD,KAAK,OACL,MAAO,EAAI,QACX,MAAO,CAAI;;;GAGR,KAAK,WAAW;IACf,OAAO,EAAI;IACX,OAAO,EAAI;IAAA,CAAA;IAAA;;;;;2BAOO,KAAK,cAAc,EAAI,QACvC,KAAK,SAAS,EAAA,GACd,KAAK,SAAS,EAAA,CAAA;;;WAGd,EAAI,MAAA;;;mBAGI,KAAK,cAAc,EAAI,MAAA;;;;;;;;8BASZ,KAAK,aAAA,CAAA;;;;;GA3JjC,EAAQ,EAAE,SAAS,GAAA,CAAA,EACnB,EAAS,EAAE,MAAM,QAAA,CAAA,CAAA,EAAS,EAAA,WAAA,QAAA,KAAA,EAAA,EAAA,EAAA,CAG1B,EAAS,EAAE,MAAM,SAAA,CAAA,CAAA,EAAU,EAAA,WAAA,WAAA,KAAA,EAAA,EAAA,EAAA,CAE3B,EAAS;CAAE,MAAM;CAAQ,SAAA,CAAS;CAAA,CAAA,CAAA,EAAO,EAAA,WAAA,aAAA,KAAA,EAAA,EAAA,EAAA,CACzC,EAAsB,EACtB,SAAA,CAAS,GAAA,CAAA,CAAA,EACR,EAAA,WAAA,gBAAA,KAAA,EAAA,EAAA,EAAA,CAGD,EAAM,kBAAA,CAAA,EAAkB,EAAA,WAAA,cAAA,KAAA,EAAA,EAAA,EAAA,CACxB,EAAM,eAAA,CAAA,EAAe,EAAA,WAAA,eAAA,KAAA,EAAA,EAAA,EAAA,CAErB,GAAA,CAAA,EAAO,EAAA,WAAA,QAAA,KAAA,EAAA,EAAA,IAAA,EAAA,CAvBR,EAAc,qBAAA,CAAA,EAAqB,EAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tabs-Dc3_Ox2B.cjs","names":[],"sources":["../src/tabs/context.ts","../src/tabs/tab.ts","../src/tabs/tabs-group.ts"],"sourcesContent":["import { createContext } from '@lit/context'\n\nexport type TSchmancyTabsMode = 'scroll' | 'tabs'\n\nexport const SchmancyTabsModeContext = createContext<TSchmancyTabsMode>('tabs')\n","import { consume } from '@lit/context'\nimport { SchmancyElement } from '@mixins/index'\nimport { html } from 'lit'\nimport { customElement, property, state } from 'lit/decorators.js'\nimport { SchmancyTabsModeContext } from './context'\n\n@customElement('schmancy-tab')\nexport default class SchmancyTab extends SchmancyElement {\n\t@property({ type: String, reflect: true }) label\n\t@property({ type: String, reflect: true }) value\n\t@property({ type: Boolean, reflect: true }) active!: boolean\n\n\t@consume({ context: SchmancyTabsModeContext, subscribe: true })\n\t@state()\n\tmode\n\n\tprotected updated(changedProperties: Map<PropertyKey, unknown>) {\n\t\tif (changedProperties.has('active') && this.active) {\n\t\t\t// Trigger resize for virtualizers to recalculate when tab becomes visible\n\t\t\trequestAnimationFrame(() => {\n\t\t\t\twindow.dispatchEvent(new Event('resize'))\n\t\t\t})\n\t\t}\n\t}\n\n\tprotected render(): unknown {\n\t\t// Don't render content until tab is active (virtualizers need actual layout, not hidden)\n\t\tif (this.mode === 'tabs' && !this.active) {\n\t\t\treturn html``\n\t\t}\n\t\treturn html`<slot></slot>`\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-tab': SchmancyTab\n\t}\n}\n","import { provide } from '@lit/context'\nimport { SchmancyElement } from '@mixins/index'\nimport { css, html } from 'lit'\nimport { customElement, property, query, queryAssignedElements, state } from 'lit/decorators.js'\nimport { repeat } from 'lit/directives/repeat.js'\nimport { filter, fromEvent, interval, map, take, throttleTime } from 'rxjs'\nimport { SchmancyTabsModeContext, TSchmancyTabsMode } from './context'\nimport SchmancyTab from './tab'\n\n/**\n * @slot - The content of the tab group\n * @fires tab-changed - The event fired when the tab is changed\n */\n@customElement('schmancy-tab-group')\nexport default class SchmancyTabGroup extends SchmancyElement {\n\tstatic styles = [css`\n\t:host {\n\t\tdisplay: block;\n\t\theight: 100%;\n\t}\n`];\n\t@provide({ context: SchmancyTabsModeContext })\n\t@property({ type: String })\n\tmode: TSchmancyTabsMode = 'tabs'\n\n\t@property({ type: Boolean }) rounded = true\n\n\t@property({ type: String, reflect: true }) activeTab: string\n\t@queryAssignedElements({\n\t\tflatten: true,\n\t})\n\tprivate tabsElements!: Array<SchmancyTab>\n\n\t@query('#tabsNavigation') navElement!: HTMLElement\n\t@query('#tabsContent') tabsContent!: HTMLElement\n\n\t@state()\n\tprivate tabs: Array<SchmancyTab> = []\n\n\tconnectedCallback(): void {\n\t\tsuper.connectedCallback()\n\t\tfromEvent(window, 'scroll')\n\t\t\t.pipe(\n\t\t\t\tthrottleTime(1000),\n\t\t\t\tfilter(() => this.mode === 'scroll'),\n\t\t\t\tmap(() => {\n\t\t\t\t\tlet closestDiv = null\n\t\t\t\t\tlet closestDistance = Infinity\n\t\t\t\t\tthis.tabsElements.forEach(div => {\n\t\t\t\t\t\tconst distance =\n\t\t\t\t\t\t\tdiv.getBoundingClientRect().top - this.navElement.clientHeight + document.body.offsetHeight / 3\n\n\t\t\t\t\t\tif (distance < closestDistance && distance > 0) {\n\t\t\t\t\t\t\tclosestDistance = distance\n\t\t\t\t\t\t\tclosestDiv = div\n\t\t\t\t\t\t}\n\t\t\t\t\t})\n\t\t\t\t\treturn closestDiv\n\t\t\t\t}),\n\t\t\t\tfilter((el: SchmancyTab | null) => el !== null),\n\t\t\t)\n\t\t\t.subscribe({\n\t\t\t\tnext: (el: SchmancyTab) => {\n\t\t\t\t\tthis.activeTab = el.value\n\t\t\t\t},\n\t\t\t})\n\t}\n\n\tfirstUpdated() {\n\t\tinterval(0)\n\t\t\t.pipe(\n\t\t\t\tfilter(() => !!this.navElement.clientHeight),\n\t\t\t\ttake(1),\n\t\t\t)\n\t\t\t.subscribe(() => {\n\t\t\t\tthis.tabsElements.forEach(tab => {\n\t\t\t\t\tif (this.mode === 'scroll') tab.style.paddingTop = this.navElement.clientHeight + 'px'\n\t\t\t\t})\n\t\t\t})\n\t}\n\n\thydrateTabs() {\n\t\tthis.tabs = this.tabsElements\n\t\tif (!this.activeTab && this.tabsElements[0]) {\n\t\t\tthis.activeTab = this.tabsElements[0].value\n\t\t\tthis.tabsElements[0].active = true\n\t\t} else {\n\t\t\tthis.tabsElements.forEach(tab => {\n\t\t\t\tif (tab.value === this.activeTab) tab.active = true\n\t\t\t\telse tab.active = false\n\t\t\t})\n\t\t}\n\t\tconst lastTab = this.tabs?.[-1]\n\t\tif (lastTab) {\n\t\t\tlastTab.style.paddingBottom = lastTab.offsetHeight + 'px'\n\t\t}\n\t}\n\n\ttabChanged(selectedTab: { label: string; value: string }) {\n\t\tlet activeTabElement: SchmancyTab | undefined\n\t\tthis.tabsElements.forEach(tab => {\n\t\t\tif (tab.value === selectedTab.value) {\n\t\t\t\ttab.active = true\n\t\t\t\tactiveTabElement = tab\n\t\t\t\t// scroll to the tab\n\t\t\t\tif (this.mode === 'scroll') {\n\t\t\t\t\t// Scroll the desired element into view\n\t\t\t\t\tactiveTabElement.scrollIntoView({\n\t\t\t\t\t\tbehavior: 'smooth',\n\t\t\t\t\t\tblock: 'start',\n\t\t\t\t\t\tinline: 'start',\n\t\t\t\t\t})\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\ttab.active = false\n\t\t\t}\n\t\t})\n\t\tif (this.mode === 'tabs') {\n\t\t\tthis.activeTab = selectedTab.value\n\t\t}\n\t\tthis.dispatchEvent(new CustomEvent('tab-changed', { detail: this.activeTab }))\n\t}\n\n\tprotected render(): unknown {\n\t\tconst tabs = {\n\t\t\t'bg-surface-default color-surface-on': true,\n\t\t\t'flex z-50 overflow-auto': true,\n\t\t\t'sticky top-0 shadow-md': this.mode === 'scroll',\n\t\t\t'rounded-full': this.rounded,\n\t\t}\n\n\t\tconst activeTab = {\n\t\t\t'text-primary-default': true,\n\t\t}\n\n\t\tconst inactiveTab = {\n\t\t\t'border-transparent': true,\n\t\t\t'hover:text-surface-on': true,\n\t\t\t'hover:border-outlineVariant': true,\n\t\t\t'text-surface-onVariant': true,\n\t\t}\n\n\t\treturn html`\n\t\t\t<section id=\"tabsNavigation\" class=\"${this.classMap(tabs)}\" aria-label=\"Tabs\">\n\t\t\t\t${repeat(\n\t\t\t\t\tthis.tabs,\n\t\t\t\t\ttab => tab.value,\n\t\t\t\t\ttab => html`\n\t\t\t\t\t\t<schmancy-button\n\t\t\t\t\t\t\t@click=${() => {\n\t\t\t\t\t\t\t\tthis.tabChanged({\n\t\t\t\t\t\t\t\t\tlabel: tab.label,\n\t\t\t\t\t\t\t\t\tvalue: tab.value,\n\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\taria-current=\"page\"\n\t\t\t\t\t\t\tclass=\"h-auto relative\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\tclass=\"px-4 py-3 ${this.activeTab === tab.value\n\t\t\t\t\t\t\t\t\t? this.classMap(activeTab)\n\t\t\t\t\t\t\t\t\t: this.classMap(inactiveTab)}\"\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<schmancy-typography class=\"h-full align-middle flex \" type=\"title\" token=\"md\" weight=\"medium\">\n\t\t\t\t\t\t\t\t\t${tab.label}\n\t\t\t\t\t\t\t\t</schmancy-typography>\n\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\t.hidden=${this.activeTab !== tab.value}\n\t\t\t\t\t\t\t\t\tclass=\"border-primary-default absolute bottom-0 inset-x-6 border-solid border-2 rounded-t-full\"\n\t\t\t\t\t\t\t\t></div>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</schmancy-button>\n\t\t\t\t\t`,\n\t\t\t\t)}\n\t\t\t</section>\n\t\t\t<section id=\"tabsContent\" class=\"h-full\">\n\t\t\t\t<slot @slotchange=${() => this.hydrateTabs()}></slot>\n\t\t\t</section>\n\t\t`\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-tab-group': SchmancyTabGroup\n\t}\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"tabs-lxQHWEb7.cjs","names":[],"sources":["../src/tabs/context.ts","../src/tabs/tab.ts","../src/tabs/tabs-group.ts"],"sourcesContent":["import { createContext } from '@lit/context'\n\nexport type TSchmancyTabsMode = 'scroll' | 'tabs'\n\nexport const SchmancyTabsModeContext = createContext<TSchmancyTabsMode>('tabs')\n","import { consume } from '@lit/context'\nimport { SchmancyElement } from '@mixins/index'\nimport { html } from 'lit'\nimport { customElement, property, state } from 'lit/decorators.js'\nimport { SchmancyTabsModeContext } from './context'\n\n@customElement('schmancy-tab')\nexport default class SchmancyTab extends SchmancyElement {\n\t@property({ type: String, reflect: true }) label\n\t@property({ type: String, reflect: true }) value\n\t@property({ type: Boolean, reflect: true }) active!: boolean\n\n\t@consume({ context: SchmancyTabsModeContext, subscribe: true })\n\t@state()\n\tmode\n\n\tprotected updated(changedProperties: Map<PropertyKey, unknown>) {\n\t\tif (changedProperties.has('active') && this.active) {\n\t\t\t// Trigger resize for virtualizers to recalculate when tab becomes visible\n\t\t\trequestAnimationFrame(() => {\n\t\t\t\twindow.dispatchEvent(new Event('resize'))\n\t\t\t})\n\t\t}\n\t}\n\n\tprotected render(): unknown {\n\t\t// Don't render content until tab is active (virtualizers need actual layout, not hidden)\n\t\tif (this.mode === 'tabs' && !this.active) {\n\t\t\treturn html``\n\t\t}\n\t\treturn html`<slot></slot>`\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-tab': SchmancyTab\n\t}\n}\n","import { provide } from '@lit/context'\nimport { SchmancyElement } from '@mixins/index'\nimport { css, html } from 'lit'\nimport { customElement, property, query, queryAssignedElements, state } from 'lit/decorators.js'\nimport { repeat } from 'lit/directives/repeat.js'\nimport { filter, fromEvent, interval, map, take, throttleTime } from 'rxjs'\nimport { SchmancyTabsModeContext, TSchmancyTabsMode } from './context'\nimport SchmancyTab from './tab'\n\n/**\n * @slot - The content of the tab group\n * @fires tab-changed - The event fired when the tab is changed\n */\n@customElement('schmancy-tab-group')\nexport default class SchmancyTabGroup extends SchmancyElement {\n\tstatic styles = [css`\n\t:host {\n\t\tdisplay: block;\n\t\theight: 100%;\n\t}\n`];\n\t@provide({ context: SchmancyTabsModeContext })\n\t@property({ type: String })\n\tmode: TSchmancyTabsMode = 'tabs'\n\n\t@property({ type: Boolean }) rounded = true\n\n\t@property({ type: String, reflect: true }) activeTab: string\n\t@queryAssignedElements({\n\t\tflatten: true,\n\t})\n\tprivate tabsElements!: Array<SchmancyTab>\n\n\t@query('#tabsNavigation') navElement!: HTMLElement\n\t@query('#tabsContent') tabsContent!: HTMLElement\n\n\t@state()\n\tprivate tabs: Array<SchmancyTab> = []\n\n\tconnectedCallback(): void {\n\t\tsuper.connectedCallback()\n\t\tfromEvent(window, 'scroll')\n\t\t\t.pipe(\n\t\t\t\tthrottleTime(1000),\n\t\t\t\tfilter(() => this.mode === 'scroll'),\n\t\t\t\tmap(() => {\n\t\t\t\t\tlet closestDiv = null\n\t\t\t\t\tlet closestDistance = Infinity\n\t\t\t\t\tthis.tabsElements.forEach(div => {\n\t\t\t\t\t\tconst distance =\n\t\t\t\t\t\t\tdiv.getBoundingClientRect().top - this.navElement.clientHeight + document.body.offsetHeight / 3\n\n\t\t\t\t\t\tif (distance < closestDistance && distance > 0) {\n\t\t\t\t\t\t\tclosestDistance = distance\n\t\t\t\t\t\t\tclosestDiv = div\n\t\t\t\t\t\t}\n\t\t\t\t\t})\n\t\t\t\t\treturn closestDiv\n\t\t\t\t}),\n\t\t\t\tfilter((el: SchmancyTab | null) => el !== null),\n\t\t\t)\n\t\t\t.subscribe({\n\t\t\t\tnext: (el: SchmancyTab) => {\n\t\t\t\t\tthis.activeTab = el.value\n\t\t\t\t},\n\t\t\t})\n\t}\n\n\tfirstUpdated() {\n\t\tinterval(0)\n\t\t\t.pipe(\n\t\t\t\tfilter(() => !!this.navElement.clientHeight),\n\t\t\t\ttake(1),\n\t\t\t)\n\t\t\t.subscribe(() => {\n\t\t\t\tthis.tabsElements.forEach(tab => {\n\t\t\t\t\tif (this.mode === 'scroll') tab.style.paddingTop = this.navElement.clientHeight + 'px'\n\t\t\t\t})\n\t\t\t})\n\t}\n\n\thydrateTabs() {\n\t\tthis.tabs = this.tabsElements\n\t\tif (!this.activeTab && this.tabsElements[0]) {\n\t\t\tthis.activeTab = this.tabsElements[0].value\n\t\t\tthis.tabsElements[0].active = true\n\t\t} else {\n\t\t\tthis.tabsElements.forEach(tab => {\n\t\t\t\tif (tab.value === this.activeTab) tab.active = true\n\t\t\t\telse tab.active = false\n\t\t\t})\n\t\t}\n\t\tconst lastTab = this.tabs?.[-1]\n\t\tif (lastTab) {\n\t\t\tlastTab.style.paddingBottom = lastTab.offsetHeight + 'px'\n\t\t}\n\t}\n\n\ttabChanged(selectedTab: { label: string; value: string }) {\n\t\tlet activeTabElement: SchmancyTab | undefined\n\t\tthis.tabsElements.forEach(tab => {\n\t\t\tif (tab.value === selectedTab.value) {\n\t\t\t\ttab.active = true\n\t\t\t\tactiveTabElement = tab\n\t\t\t\t// scroll to the tab\n\t\t\t\tif (this.mode === 'scroll') {\n\t\t\t\t\t// Scroll the desired element into view\n\t\t\t\t\tactiveTabElement.scrollIntoView({\n\t\t\t\t\t\tbehavior: 'smooth',\n\t\t\t\t\t\tblock: 'start',\n\t\t\t\t\t\tinline: 'start',\n\t\t\t\t\t})\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\ttab.active = false\n\t\t\t}\n\t\t})\n\t\tif (this.mode === 'tabs') {\n\t\t\tthis.activeTab = selectedTab.value\n\t\t}\n\t\tthis.dispatchEvent(new CustomEvent('tab-changed', { detail: this.activeTab }))\n\t}\n\n\tprotected render(): unknown {\n\t\tconst tabs = {\n\t\t\t'bg-surface-default color-surface-on': true,\n\t\t\t'flex z-50 overflow-auto': true,\n\t\t\t'sticky top-0 shadow-md': this.mode === 'scroll',\n\t\t\t'rounded-full': this.rounded,\n\t\t}\n\n\t\tconst activeTab = {\n\t\t\t'text-primary-default': true,\n\t\t}\n\n\t\tconst inactiveTab = {\n\t\t\t'border-transparent': true,\n\t\t\t'hover:text-surface-on': true,\n\t\t\t'hover:border-outlineVariant': true,\n\t\t\t'text-surface-onVariant': true,\n\t\t}\n\n\t\treturn html`\n\t\t\t<section id=\"tabsNavigation\" class=\"${this.classMap(tabs)}\" aria-label=\"Tabs\">\n\t\t\t\t${repeat(\n\t\t\t\t\tthis.tabs,\n\t\t\t\t\ttab => tab.value,\n\t\t\t\t\ttab => html`\n\t\t\t\t\t\t<schmancy-button\n\t\t\t\t\t\t\t@click=${() => {\n\t\t\t\t\t\t\t\tthis.tabChanged({\n\t\t\t\t\t\t\t\t\tlabel: tab.label,\n\t\t\t\t\t\t\t\t\tvalue: tab.value,\n\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\taria-current=\"page\"\n\t\t\t\t\t\t\tclass=\"h-auto relative\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\tclass=\"px-4 py-3 ${this.activeTab === tab.value\n\t\t\t\t\t\t\t\t\t? this.classMap(activeTab)\n\t\t\t\t\t\t\t\t\t: this.classMap(inactiveTab)}\"\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<schmancy-typography class=\"h-full align-middle flex \" type=\"title\" token=\"md\" weight=\"medium\">\n\t\t\t\t\t\t\t\t\t${tab.label}\n\t\t\t\t\t\t\t\t</schmancy-typography>\n\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\t.hidden=${this.activeTab !== tab.value}\n\t\t\t\t\t\t\t\t\tclass=\"border-primary-default absolute bottom-0 inset-x-6 border-solid border-2 rounded-t-full\"\n\t\t\t\t\t\t\t\t></div>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</schmancy-button>\n\t\t\t\t\t`,\n\t\t\t\t)}\n\t\t\t</section>\n\t\t\t<section id=\"tabsContent\" class=\"h-full\">\n\t\t\t\t<slot @slotchange=${() => this.hydrateTabs()}></slot>\n\t\t\t</section>\n\t\t`\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-tab-group': SchmancyTabGroup\n\t}\n}\n"],"mappings":"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"}
|
package/dist/tabs.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
require(`./tabs-
|
|
1
|
+
require(`./tabs-lxQHWEb7.cjs`);
|
package/dist/tabs.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import "./tabs-
|
|
1
|
+
import "./tabs-CkDNLbiS.js";
|
package/dist/teleport.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`./src-
|
|
1
|
+
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`./src-BIlD63Cz.cjs`);exports.HereMorty=e.n,Object.defineProperty(exports,`SchmancyTeleportation`,{enumerable:!0,get:function(){return e.t}}),exports.WhereAreYouRicky=e.r,exports.teleport=e.i;
|
package/dist/teleport.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { i as e, n as t, r as n, t as r } from "./src-
|
|
1
|
+
import { i as e, n as t, r as n, t as r } from "./src-DnunCC4X.js";
|
|
2
2
|
export { t as HereMorty, r as SchmancyTeleportation, n as WhereAreYouRicky, e as teleport };
|