lyco 1.2.1 → 1.2.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs.js","names":["fn?: renderFnType","fnOrArray?: renderFnOrArrayType","injectBox?: (\n\t\tbox: TemplateResult<1>,\n\t\tidx?: number,\n\t\tisArray?: boolean,\n\t\tisFunc?: boolean\n\t) => TemplateResult<1>","prefix?: string","injectBox?: (box: TemplateResult<1>) => TemplateResult<1>","f?: renderFnType","injectBox?: (\n\t\tbox: TemplateResult<1> | TemplateResult<1>[]\n\t) => TemplateResult<1> | TemplateResult<1>[]","injectBox2?: (\n\t\tbox: TemplateResult<1>,\n\t\tidx?: number,\n\t\tisArray?: boolean,\n\t\tisFunc?: boolean\n\t) => TemplateResult<1>","f?: renderFnOrArrayType","props?: { fadeBg?: string; zIndex?: number }","children?: renderFnType","strings: TemplateStringsArray","props?: { space?: string | number }","children?: renderFnOrArrayType","props?: FlexProps","children?: renderFnType","children: renderFnType","strings: TemplateStringsArray","children?: renderFnType","props?: { columns?: number; gap?: string | number }","children?: renderFnOrArrayType","props?: { gap?: string | number }","children?: renderFnType","strings: TemplateStringsArray","props?: { span?: number }","children?: renderFnType","strings: TemplateStringsArray","props?: { gap?: string | number }","children?: renderFnType","strings: TemplateStringsArray","props?: { space?: string | number }","children?: renderFnOrArrayType","props?: WaterFlowProps","children?: renderFnType","strings: TemplateStringsArray","props?: {\n\t\tfirstHeight?: string; // 第一个面板固定高度或百分比\n\t\tgap?: string | number;\n\t}","children?: renderFnType","strings: TemplateStringsArray","props?: {\n\t\tfirstWidth?: string; // 第一个面板固定宽度或百分比\n\t\tgap?: string | number;\n\t}","children?: renderFnType","props?: {\n\t\tdirection?: \"vertical\" | \"horizontal\";\n\t\theight?: string;\n\t\twidth?: string;\n\t\tcustomCss?: string;\n\t\tclassName?: string;\n\t}","children?: renderFnType","strings: TemplateStringsArray","props?: {\n\t\tsidebarWidth?: string; // 侧边栏宽度,比如 \"240px\"\n\t\tsidebarPosition?: \"left\" | \"right\";\n\t\tgap?: string | number;\n\t}","children?: renderFnOrArrayType","props: SwiperProps","slides?: TemplateResult<1>[] | (() => TemplateResult<1>[])","_slides: TemplateResult<1>[]","index: number","scrollOffset: number","distance: number","e: TouchEvent","e: WheelEvent","container: HTMLElement | null","autoplayInterval: ReturnType<typeof setInterval>","cleanupFns: (() => void)[]","props?: {\n\t\ttop?: string;\n\t\tright?: string;\n\t\tbottom?: string;\n\t\tleft?: string;\n\t\twidth?: string;\n\t\theight?: string;\n\t\tzIndex?: number;\n\t}","children?: renderFnType","props?: AcrylicBarProps","children?: renderFnOrArrayType","children: TemplateResult","props: AspectRatioProps","children?: renderFnOrArrayType","props: {\n\t\tminItemWidth: string;\n\t\tgap?: string | number;\n\t}","children?: renderFnType","strings: TemplateStringsArray","props?: { size?: string; overlap?: string }","children?: renderFnOrArrayType","avatar: TemplateResult","idx?: number","props?: BadgeProps","children?: renderFnType","strings: TemplateStringsArray","props?: CardProps","children?: renderFnOrArrayType","props?: { width?: string; height?: string; background?: string }","children?: renderFnType","strings: TemplateStringsArray","props?: ContainerProps","children?: renderFnOrArrayType","props?: {\n\torientation?: \"horizontal\" | \"vertical\";\n\tthickness?: string;\n\tcolor?: string;\n\tmargin?: string;\n}","props?: FooterLayoutProps","children?: renderFnType","strings: TemplateStringsArray","props: GridBreakpointProps","children?: renderFnType","strings: TemplateStringsArray","props?: {\n\t\tbackgroundImage?: string;\n\t\theight?: string;\n\t\toverlayColor?: string;\n\t}","children?: renderFnOrArrayType","props?: HiddenProps","children?: renderFnType","strings: TemplateStringsArray","props?: {\n\t\tbordered?: boolean;\n\t\tstriped?: boolean;\n\t\thover?: boolean;\n\t\tclassName?: string;\n\t}","children?: renderFnOrArrayType","children: TemplateResult<1>","_idx?: number","isArray?: boolean","_isFunc?: boolean","children: TemplateResult<1> | TemplateResult<1>[]","props?: { background?: string; zIndex?: number; fullScreen?: boolean }","children?: renderFnOrArrayType","props?: { width?: string; height?: string; background?: string }","children?: renderFnType","props?: { width?: string; height?: string }","props?: {\n\ttype?: \"rect\" | \"circle\";\n\twidth?: string;\n\theight?: string;\n\tborderRadius?: string;\n\tanimation?: boolean;\n\tclassName?: string;\n}","props?: StickyProps","children?: renderFnType","strings: TemplateStringsArray","props?: TableProps","children?: renderFnType","strings: TemplateStringsArray","props?: WrapProps","children?: renderFnOrArrayType","props?: ZStackProps","children?: renderFnOrArrayType"],"sources":["../src/components/core.ts","../src/components/LightboxContainer.ts","../src/components/Column.ts","../src/components/Flex.ts","../src/components/FlowItem.ts","../src/components/Grid.ts","../src/components/GridCol.ts","../src/components/GridItem.ts","../src/components/GridRow.ts","../src/components/Row.ts","../src/components/WaterFlow.ts","../src/components/ColumnSplit.ts","../src/components/RowSplit.ts","../src/components/ScrollBar.ts","../src/components/SideBarContainer.ts","../src/components/Swiper.ts","../src/components/AbsoluteBox.ts","../src/components/AcrylicBar.ts","../src/components/AspectRatio.ts","../src/components/AutoFitGrid.ts","../src/components/AvatarStack.ts","../src/components/Badge.ts","../src/components/Card.ts","../src/components/Center.ts","../src/components/Container.ts","../src/components/Divider.ts","../src/components/FooterLayout.ts","../src/components/GridBreakpoint.ts","../src/components/HeroSection.ts","../src/components/Hidden.ts","../src/components/ListGroup.ts","../src/components/Overlay.ts","../src/components/PositionContainer.ts","../src/components/SizedBox.ts","../src/components/SkeletonLoader.ts","../src/components/Spacer.ts","../src/components/Sticky.ts","../src/components/Table.ts","../src/components/Wrap.ts","../src/components/ZStack.ts"],"sourcesContent":["import { html, TemplateResult } from \"lit\";\n\nexport type renderFnType = TemplateResult<1> | (() => TemplateResult<1>);\n\nexport type renderFnOrArrayType =\n\t| renderFnType\n\t| Array<TemplateResult<1>>\n\t| (() => TemplateResult<1>[]);\n\nexport function renderFn(fn?: renderFnType): TemplateResult<1> {\n\treturn fn ? (typeof fn === \"function\" ? fn() : fn) : html``;\n}\n\nexport type WithHtml<K> = ((children?: K) => TemplateResult<1>) & {\n\thtml: (\n\t\tstrings: TemplateStringsArray,\n\t\t...values: unknown[]\n\t) => TemplateResult<1>;\n};\n\nexport function renderFnOrArray(\n\tfnOrArray?: renderFnOrArrayType,\n\tinjectBox?: (\n\t\tbox: TemplateResult<1>,\n\t\tidx?: number,\n\t\tisArray?: boolean,\n\t\tisFunc?: boolean\n\t) => TemplateResult<1>\n): TemplateResult<1> | TemplateResult<1>[] {\n\tlet _injectBox = injectBox ?? ((box) => box);\n\tif (fnOrArray === undefined) {\n\t\treturn html``;\n\t}\n\tif (Array.isArray(fnOrArray)) {\n\t\treturn fnOrArray.map((htmlTemp, idx) =>\n\t\t\t_injectBox(renderFn(htmlTemp), idx, true, false)\n\t\t);\n\t} else if (typeof fnOrArray !== \"function\") {\n\t\treturn _injectBox(renderFn(fnOrArray), undefined, false, false);\n\t}\n\n\tconst result = fnOrArray();\n\tif (Array.isArray(result)) {\n\t\treturn result.map((htmlTemp, idx) =>\n\t\t\t_injectBox(renderFn(htmlTemp), idx, true, false)\n\t\t);\n\t} else {\n\t\treturn _injectBox(renderFn(result), undefined, false, true);\n\t}\n}\n\nexport function randomClassName(prefix?: string): string {\n\tconst random = Math.random().toString(36).substring(2, 15);\n\treturn prefix ? `lyco-${prefix}-${random}` : `lyco-${random}`;\n}\n\nexport function renderFnOrCurry(\n\tfn?: renderFnType,\n\tinjectBox?: (box: TemplateResult<1>) => TemplateResult<1>\n): TemplateResult<1> | ((fn?: renderFnType) => TemplateResult<1>) {\n\tconst _injectBox = injectBox ?? ((box) => box);\n\tconst curriedFn = (f?: renderFnType) => _injectBox(renderFn(f!));\n\n\treturn fn ? curriedFn(fn) : curriedFn;\n}\n\nexport function renderFnOrArrayOrCurry(\n\tfnOrArray?: renderFnOrArrayType,\n\tinjectBox?: (\n\t\tbox: TemplateResult<1> | TemplateResult<1>[]\n\t) => TemplateResult<1> | TemplateResult<1>[],\n\tinjectBox2?: (\n\t\tbox: TemplateResult<1>,\n\t\tidx?: number,\n\t\tisArray?: boolean,\n\t\tisFunc?: boolean\n\t) => TemplateResult<1>\n):\n\t| TemplateResult<1>\n\t| TemplateResult<1>[]\n\t| ((\n\t\t\tfnOrArray?: renderFnOrArrayType\n\t ) => TemplateResult<1> | TemplateResult<1>[]) {\n\tconst _injectBox = injectBox ?? ((box) => box);\n\tconst curriedFn = (f?: renderFnOrArrayType) =>\n\t\t_injectBox(renderFnOrArray(f, injectBox2)!);\n\n\treturn fnOrArray ? curriedFn(fnOrArray) : curriedFn;\n}\n","import { html, TemplateResult } from \"lit\";\nimport { renderFn, renderFnType, WithHtml } from \"./core\";\n\nexport function LightboxContainer(props?: {\n\tfadeBg?: string;\n\tzIndex?: number;\n}): WithHtml<renderFnType>;\n\nexport function LightboxContainer(\n\tprops?: { fadeBg?: string; zIndex?: number },\n\tchildren?: renderFnType\n): TemplateResult<1>;\n\nexport function LightboxContainer(\n\tprops?: { fadeBg?: string; zIndex?: number },\n\tchildren?: renderFnType\n): TemplateResult<1> | WithHtml<renderFnType> {\n\tif (children === undefined) {\n\t\tconst _ = (children?: renderFnType) =>\n\t\t\tLightboxContainer(props, children ?? html``);\n\t\t_.html = (strings: TemplateStringsArray, ...values: unknown[]) =>\n\t\t\tLightboxContainer(props, html(strings, ...values));\n\t\treturn _;\n\t}\n\tconst bg = props?.fadeBg ?? \"rgba(0,0,0,0.7)\";\n\tconst z = props?.zIndex ?? 2000;\n\treturn html`\n\t\t<div\n\t\t\tstyle=\"\n position: fixed;\n top: 0; left: 0; right: 0; bottom: 0;\n background: ${bg};\n z-index: ${z};\n display: flex;\n justify-content: center;\n align-items: center;\n \"\n\t\t>\n\t\t\t${renderFn(children)}\n\t\t</div>\n\t`;\n}\n","import { html, TemplateResult } from \"lit\";\nimport { renderFnOrArray, renderFnOrArrayType } from \"./core\";\n\nexport function Column(props?: {\n\tspace?: string | number;\n}): (children?: renderFnOrArrayType) => TemplateResult<1>;\n\nexport function Column(\n\tprops?: { space?: string | number },\n\tchildren?: renderFnOrArrayType\n): TemplateResult<1>;\n\nexport function Column(\n\tprops?: { space?: string | number },\n\tchildren?: renderFnOrArrayType\n): TemplateResult<1> | ((children?: renderFnOrArrayType) => TemplateResult<1>) {\n\tif (children === undefined) {\n\t\treturn (children) => Column(props, children ?? [html``]);\n\t}\n\treturn html`\n\t\t<div\n\t\t\tstyle=\"\n display: flex;\n flex-direction: column;\n ${props?.space ? `gap: ${props.space};` : \"\"}\n \"\n\t\t>\n\t\t\t${renderFnOrArray(children)}\n\t\t</div>\n\t`;\n}\n","import { html, TemplateResult } from \"lit\";\nimport { renderFn, renderFnType, WithHtml } from \"./core\";\ninterface FlexProps {\n\tdirection?: \"row\" | \"column\";\n\tjustify?: string;\n\talign?: string;\n\tgap?: string | number;\n}\n\nexport function Flex(props?: FlexProps): WithHtml<renderFnType>;\n\nexport function Flex(\n\tprops?: FlexProps,\n\tchildren?: renderFnType\n): TemplateResult<1>;\n\nexport function Flex(props?: FlexProps, children?: renderFnType) {\n\tif (children === undefined) {\n\t\tconst _ = (children: renderFnType) => Flex(props, children ?? html``);\n\t\t_.html = (strings: TemplateStringsArray, ...values: unknown[]) =>\n\t\t\tFlex(props, html(strings, ...values));\n\t\treturn _;\n\t}\n\tconst dir = props?.direction ?? \"row\";\n\treturn html`\n\t\t<div\n\t\t\tstyle=\"\n display: flex;\n flex-direction: ${dir};\n ${props?.justify ? `justify-content: ${props.justify};` : \"\"}\n ${props?.align ? `align-items: ${props.align};` : \"\"}\n ${props?.gap ? `gap: ${props.gap};` : \"\"}\n \"\n\t\t>\n\t\t\t${renderFn(children)}\n\t\t</div>\n\t`;\n}\n","import { html } from \"lit\";\nimport { renderFn, renderFnType } from \"./core\";\n\nexport function FlowItem(children?: renderFnType) {\n\treturn html`\n\t\t<div style=\"break-inside: avoid; margin-bottom: 16px;\">\n\t\t\t${renderFn(children)}\n\t\t</div>\n\t`;\n}\n","import { html, TemplateResult } from \"lit\";\nimport { renderFnOrArray, renderFnOrArrayType } from \"./core\";\n\nexport function Grid(props?: {\n\tcolumns?: number;\n\tgap?: string | number;\n}): (children?: renderFnOrArrayType) => TemplateResult<1>;\n\nexport function Grid(\n\tprops?: { columns?: number; gap?: string | number },\n\tchildren?: renderFnOrArrayType\n): TemplateResult<1>;\n\nexport function Grid(\n\tprops?: { columns?: number; gap?: string | number },\n\tchildren?: renderFnOrArrayType\n): TemplateResult<1> | ((children?: renderFnOrArrayType) => TemplateResult<1>) {\n\tif (children === undefined) {\n\t\treturn (children) => Grid(props, children ?? [html``]);\n\t}\n\n\tconst cols = props?.columns ?? 1;\n\treturn html`\n\t\t<div\n\t\t\tstyle=\"\n display: grid;\n grid-template-columns: repeat(${cols}, 1fr);\n ${props?.gap ? `gap: ${props.gap};` : \"\"}\n \"\n\t\t>\n\t\t\t${renderFnOrArray(children)}\n\t\t</div>\n\t`;\n}\n","import { html, TemplateResult } from \"lit\";\nimport { renderFn, renderFnType, WithHtml } from \"./core\";\n\nexport function GridCol(props?: {\n\tgap?: string | number;\n}): WithHtml<renderFnType>;\n\nexport function GridCol(\n\tprops?: { gap?: string | number },\n\tchildren?: renderFnType\n): TemplateResult<1>;\n\nexport function GridCol(\n\tprops?: { gap?: string | number },\n\tchildren?: renderFnType\n) {\n\tif (children === undefined) {\n\t\tconst _ = (children?: renderFnType) => GridCol(props, children ?? html``);\n\t\t_.html = (strings: TemplateStringsArray, ...values: unknown[]) =>\n\t\t\tGridCol(props, html(strings, ...values));\n\t\treturn _;\n\t}\n\treturn html`\n\t\t<div\n\t\t\tstyle=\"\n display: grid;\n grid-auto-flow: column;\n ${props?.gap ? `column-gap: ${props.gap};` : \"\"}\n \"\n\t\t>\n\t\t\t${renderFn(children)}\n\t\t</div>\n\t`;\n}\n","import { html, TemplateResult } from \"lit\";\nimport { renderFn, renderFnType, WithHtml } from \"./core\";\n\nexport function GridItem(props?: { span?: number }): WithHtml<renderFnType>;\n\nexport function GridItem(\n\tprops?: { span?: number },\n\tchildren?: renderFnType\n): TemplateResult<1>;\n\nexport function GridItem(\n\tprops?: { span?: number },\n\tchildren?: renderFnType\n): TemplateResult<1> | WithHtml<renderFnType> {\n\tif (children === undefined) {\n\t\tconst _ = (children?: renderFnType) => GridItem(props, children ?? html``);\n\t\t_.html = (strings: TemplateStringsArray, ...values: unknown[]) =>\n\t\t\tGridItem(props, html(strings, ...values));\n\t\treturn _;\n\t}\n\treturn html`\n\t\t<div style=\"${props?.span ? `grid-column: span ${props.span};` : \"\"}\">\n\t\t\t${renderFn(children)}\n\t\t</div>\n\t`;\n}\n","import { html, TemplateResult } from \"lit\";\nimport { renderFn, renderFnType, WithHtml } from \"./core\";\n\nexport function GridRow(props?: {\n\tgap?: string | number;\n}): WithHtml<renderFnType>;\n\nexport function GridRow(\n\tprops?: { gap?: string | number },\n\tchildren?: renderFnType\n): TemplateResult<1>;\n\nexport function GridRow(\n\tprops?: { gap?: string | number },\n\tchildren?: renderFnType\n) {\n\tif (children === undefined) {\n\t\tconst _ = (children?: renderFnType) => GridRow(props, children ?? html``);\n\t\t_.html = (strings: TemplateStringsArray, ...values: unknown[]) =>\n\t\t\tGridRow(props, html(strings, ...values));\n\t\treturn _;\n\t}\n\n\treturn html`\n\t\t<div\n\t\t\tstyle=\"\n display: grid;\n grid-auto-flow: row;\n ${props?.gap ? `row-gap: ${props.gap};` : \"\"}\n \"\n\t\t>\n\t\t\t${renderFn(children)}\n\t\t</div>\n\t`;\n}\n","import { html } from \"lit\";\nimport { renderFnOrArray, renderFnOrArrayType } from \"./core\";\n\nexport function Row(\n\tprops?: { space?: string | number },\n\tchildren?: renderFnOrArrayType\n) {\n\treturn html`\n\t\t<div\n\t\t\tstyle=\"\n display: flex;\n flex-direction: row;\n ${props?.space ? `gap: ${props.space};` : \"\"}\n \"\n\t\t>\n\t\t\t${renderFnOrArray(children)}\n\t\t</div>\n\t`;\n}\n","import { html, TemplateResult } from \"lit\";\nimport { randomClassName, renderFn, renderFnType, WithHtml } from \"./core\";\n\nexport interface WaterFlowProps {\n\tcolumnCount?: number;\n\tgap?: string | number;\n}\n\nexport function WaterFlow(props?: WaterFlowProps): WithHtml<renderFnType>;\n\nexport function WaterFlow(\n\tprops?: WaterFlowProps,\n\tchildren?: renderFnType\n): TemplateResult<1>;\n\nexport function WaterFlow(\n\tprops?: WaterFlowProps,\n\tchildren?: renderFnType\n): TemplateResult<1> | WithHtml<renderFnType> {\n\t// 如果只传了 props,不传 children,则返回一个接收 children 的函数\n\tif (children === undefined) {\n\t\tconst _ = (children?: renderFnType) =>\n\t\t\tWaterFlow(props, children ?? html``) as TemplateResult<1>;\n\t\t_.html = (strings: TemplateStringsArray, ...values: unknown[]) =>\n\t\t\tWaterFlow(props, html(strings, ...values)) as TemplateResult<1>;\n\t\treturn _;\n\t}\n\n\t// 解构 props,并设置默认值\n\tconst count = props?.columnCount ?? 3;\n\tconst gapValue = props?.gap ?? \"16px\";\n\n\t// 生成一个随机 className,方便后续扩展样式或避免样式冲突\n\tconst _className = randomClassName(\"waterflow\");\n\n\treturn html`\n\t\t<style>\n\t\t\t/* 使用 CSS 类来控制多列布局 */\n\t\t\t.${_className} {\n\t\t\t\tcolumn-count: ${count};\n\t\t\t\tcolumn-gap: ${typeof gapValue === \"number\"\n\t\t\t\t\t? `${gapValue}px`\n\t\t\t\t\t: gapValue};\n\t\t\t}\n\t\t\t/* 子元素如果是块级元素,需要让它们适应多列流式布局 */\n\t\t\t.${_className} > * {\n\t\t\t\tdisplay: inline-block;\n\t\t\t\twidth: 100%;\n\t\t\t}\n\t\t</style>\n\n\t\t<div class=\"${_className}\">${renderFn(children)}</div>\n\t`;\n}\n\nWaterFlow().html`\n<div>\n <div>1</div>\n <div>2</div>\n <div>3</div>\n <div>4</div>\n <div>5</div>\n <div>6</div>\n <div>7</div>\n <div>8</div>\n <div>9</div>\n <div>10</div>\n</div>\n`;\n","import { html, TemplateResult } from \"lit\";\nimport { renderFn, renderFnType, WithHtml } from \"./core\";\n\nexport function ColumnSplit(props?: {\n\tfirstHeight?: string; // 第一个面板固定高度或百分比\n\tgap?: string | number;\n}): WithHtml<renderFnType>;\n\nexport function ColumnSplit(\n\tprops?: {\n\t\tfirstHeight?: string; // 第个面板固定高度或百分比\n\t\tgap?: string | number;\n\t},\n\tchildren?: renderFnType\n): TemplateResult<1>;\n\nexport function ColumnSplit(\n\tprops?: {\n\t\tfirstHeight?: string; // 第一个面板固定高度或百分比\n\t\tgap?: string | number;\n\t},\n\tchildren?: renderFnType\n): TemplateResult<1> | WithHtml<renderFnType> {\n\tif (children === undefined) {\n\t\tconst _ = (children?: renderFnType) =>\n\t\t\tColumnSplit(props, children ?? html``);\n\t\t_.html = (strings: TemplateStringsArray, ...values: unknown[]) =>\n\t\t\tColumnSplit(props, html(strings, ...values));\n\t\treturn _;\n\t}\n\tconst gap = props?.gap ?? \"0px\";\n\tconst firstH = props?.firstHeight ?? \"50%\";\n\n\tlet topNode = html``;\n\tlet bottomNode = html``;\n\n\tif (typeof children === \"function\") {\n\t\t// @ts-ignore\n\t\tconst arr = (children as any).call?.(null) ?? [];\n\t\ttopNode = arr[0] ?? html``;\n\t\tbottomNode = arr[1] ?? html``;\n\t} else {\n\t\ttopNode = renderFn(children) as any;\n\t}\n\n\treturn html`\n\t\t<div\n\t\t\tstyle=\"\n display: flex;\n flex-direction: column;\n width: 100%;\n height: 100%;\n gap: ${gap};\n \"\n\t\t>\n\t\t\t<div style=\"flex: 0 0 ${firstH}; overflow: auto;\">${topNode}</div>\n\t\t\t<div style=\"flex: 1 1 auto; overflow: auto;\">${bottomNode}</div>\n\t\t</div>\n\t`;\n}\n","import { html } from \"lit\";\nimport { renderFn, renderFnType } from \"./core\";\n\nexport function RowSplit(\n\tprops?: {\n\t\tfirstWidth?: string; // 第一个面板固定宽度或百分比\n\t\tgap?: string | number;\n\t},\n\tchildren?: renderFnType\n) {\n\tconst gap = props?.gap ?? \"0px\";\n\tconst firstW = props?.firstWidth ?? \"50%\";\n\n\tlet leftNode = html``;\n\tlet rightNode = html``;\n\n\tif (typeof children === \"function\") {\n\t\t// @ts-ignore\n\t\tconst arr = (children as any).call?.(null) ?? [];\n\t\tleftNode = arr[0] ?? html``;\n\t\trightNode = arr[1] ?? html``;\n\t} else {\n\t\tleftNode = renderFn(children) as any;\n\t}\n\n\treturn html`\n\t\t<div\n\t\t\tstyle=\"\n display: flex;\n flex-direction: row;\n width: 100%;\n height: 100%;\n gap: ${gap};\n \"\n\t\t>\n\t\t\t<div style=\"flex: 0 0 ${firstW}; overflow: auto;\">${leftNode}</div>\n\t\t\t<div style=\"flex: 1 1 auto; overflow: auto;\">${rightNode}</div>\n\t\t</div>\n\t`;\n}\n","import { html, TemplateResult } from \"lit\";\nimport { randomClassName, renderFn, renderFnType, WithHtml } from \"./core\";\n\nexport function ScrollBar(props?: {\n\tdirection?: \"vertical\" | \"horizontal\";\n\theight?: string;\n\twidth?: string;\n\tcustomCss?: string;\n\tclassName?: string;\n}): WithHtml<renderFnType>;\n\nexport function ScrollBar(\n\tprops?: {\n\t\tdirection?: \"vertical\" | \"horizontal\";\n\t\theight?: string;\n\t\twidth?: string;\n\t\tcustomCss?: string;\n\t\tclassName?: string;\n\t},\n\tchildren?: renderFnType\n): TemplateResult<1>;\n\nexport function ScrollBar(\n\tprops?: {\n\t\tdirection?: \"vertical\" | \"horizontal\";\n\t\theight?: string;\n\t\twidth?: string;\n\t\tcustomCss?: string;\n\t\tclassName?: string;\n\t},\n\tchildren?: renderFnType\n): TemplateResult<1> | WithHtml<renderFnType> {\n\tif (children === undefined) {\n\t\tconst _ = (children?: renderFnType) => ScrollBar(props, children ?? html``);\n\t\t_.html = (strings: TemplateStringsArray, ...values: unknown[]) =>\n\t\t\tScrollBar(props, html(strings, ...values));\n\t\treturn _;\n\t}\n\tconst dir = props?.direction ?? \"vertical\";\n\tconst h = props?.height ?? \"100%\";\n\tconst w = props?.width ?? \"100%\";\n\tconst extraCss = props?.customCss ?? \"\";\n\tconst _className = props?.className ?? randomClassName(\"scrollbar-container\");\n\tconst overflowStyle =\n\t\tdir === \"horizontal\"\n\t\t\t? \"overflow-x: auto; overflow-y: hidden\"\n\t\t\t: \"overflow-y: auto; overflow-x: hidden\";\n\n\treturn html`\n\t\t<style>\n\t\t\t.${_className} {\n\t\t\t ${overflowStyle};\n\t\t\t width: ${w};\n\t\t\t height: ${h};\n\t\t\t}\n\t\t\t.${_className}::-webkit-scrollbar {\n\t\t\t width: 8px;\n\t\t\t height: 8px;\n\t\t\t}\n\t\t\t.${_className}::-webkit-scrollbar-thumb {\n\t\t\t background-color: rgba(0, 0, 0, 0.2);\n\t\t\t border-radius: 4px;\n\t\t\t}\n\t\t\t.${_className}::-webkit-scrollbar-track {\n\t\t\t background: rgba(0, 0, 0, 0.05);\n\t\t\t}\n\t\t\t${extraCss}\n\t\t</style>\n\t\t<div class=\"${_className}\">${renderFn(children)}</div>\n\t`;\n}\n","import { html, TemplateResult } from \"lit\";\nimport { renderFnOrArray, renderFnOrArrayType } from \"./core\";\n\nexport function SideBarContainer(props?: {\n\tsidebarWidth?: string; // 侧边栏宽度,比如 \"240px\"\n\tsidebarPosition?: \"left\" | \"right\";\n\tgap?: string | number;\n}): (children?: renderFnOrArrayType) => TemplateResult<1>;\n\nexport function SideBarContainer(\n\tprops?: {\n\t\tsidebarWidth?: string; // 侧边栏宽度,比如 \"240px\"\n\t\tsidebarPosition?: \"left\" | \"right\";\n\t\tgap?: string | number;\n\t},\n\tchildren?: renderFnOrArrayType\n): TemplateResult<1>;\n\nexport function SideBarContainer(\n\tprops?: {\n\t\tsidebarWidth?: string; // 侧边栏宽度,比如 \"240px\"\n\t\tsidebarPosition?: \"left\" | \"right\";\n\t\tgap?: string | number;\n\t},\n\tchildren?: renderFnOrArrayType\n): TemplateResult<1> | ((children?: renderFnOrArrayType) => TemplateResult<1>) {\n\tif (children === undefined) {\n\t\treturn (children?: renderFnOrArrayType) =>\n\t\t\tSideBarContainer(props, children ?? [html``]);\n\t}\n\tconst width = props?.sidebarWidth ?? \"240px\";\n\tconst pos = props?.sidebarPosition ?? \"left\";\n\tconst gap = props?.gap ?? \"0px\";\n\n\tlet sidebarContent = html``;\n\tlet mainContent = html``;\n\n\tif (typeof children === \"function\") {\n\t\t// @ts-ignore\n\t\tconst arr = (children as any).call?.(null) ?? [];\n\t\tsidebarContent = arr[0] ?? html``;\n\t\tmainContent = arr[1] ?? html``;\n\t} else {\n\t\tmainContent = renderFnOrArray(children) as any;\n\t}\n\n\treturn html`\n\t\t<div\n\t\t\tstyle=\"\n display: flex;\n flex-direction: ${pos === \"left\" ? \"row\" : \"row-reverse\"};\n width: 100%;\n height: 100%;\n gap: ${gap};\n \"\n\t\t>\n\t\t\t<div style=\"flex: 0 0 ${width}; overflow: auto;\">${sidebarContent}</div>\n\t\t\t<div style=\"flex: 1 1 auto; overflow: auto;\">${mainContent}</div>\n\t\t</div>\n\t`;\n}\n","import { html, TemplateResult } from \"lit\";\nimport { randomClassName } from \"./core\";\n\ntype ScrollDirection = \"x\" | \"y\" | \"both\";\ntype ScrollBehavior = \"auto\" | \"smooth\";\ntype Alignment = \"start\" | \"center\" | \"end\" | \"none\";\ntype NavigationButtonPosition = \"inside\" | \"outside\" | \"none\";\ntype PaginationType = \"dots\" | \"bullets\" | \"fraction\" | \"progressbar\" | \"none\";\n\nexport interface SwiperProps {\n\tgap?: string | number;\n\tsnapType?: \"mandatory\" | \"proximity\";\n\theight?: string;\n\twidth?: string;\n\tclassName?: string;\n\tdirection?: ScrollDirection;\n\tscrollBehavior?: ScrollBehavior;\n\talign?: Alignment;\n\tshowNavigation?: boolean;\n\tnavigationPosition?: NavigationButtonPosition;\n\tshowPagination?: boolean;\n\tpaginationType?: PaginationType;\n\tautoPlay?: boolean;\n\tinterval?: number;\n\tloop?: boolean;\n\ttouchEnabled?: boolean;\n\tmouseWheel?: boolean;\n\tonSlideChange?: (index: number) => void;\n}\n\n// 支持柯里化调用\nexport function Swiper(\n\tprops?: SwiperProps\n): (\n\tslides?: TemplateResult<1>[] | (() => TemplateResult<1>[])\n) => TemplateResult<1>;\n\nexport function Swiper(\n\tprops?: SwiperProps,\n\tslides?: TemplateResult<1>[] | (() => TemplateResult<1>[])\n): TemplateResult<1>;\n\nexport function Swiper(\n\tprops: SwiperProps = {},\n\tslides?: TemplateResult<1>[] | (() => TemplateResult<1>[])\n):\n\t| ((\n\t\t\tslides?: TemplateResult<1>[] | (() => TemplateResult<1>[])\n\t ) => TemplateResult<1>)\n\t| TemplateResult {\n\t// 如果没有传 slides,就返回一个“部分应用”的函数\n\tif (slides === undefined) {\n\t\treturn (slides?: TemplateResult<1>[] | (() => TemplateResult<1>[])) =>\n\t\t\tSwiper(props, slides ?? [html``]);\n\t}\n\n\t// 解构 props,并设置默认值\n\tconst {\n\t\tgap = \"8px\",\n\t\tsnapType = \"mandatory\",\n\t\theight = \"auto\",\n\t\twidth = \"100%\",\n\t\tclassName = randomClassName(\"swiper\"),\n\t\tdirection = \"x\",\n\t\tscrollBehavior = \"smooth\",\n\t\talign = \"start\",\n\t\tshowNavigation = true,\n\t\tnavigationPosition = \"inside\",\n\t\tshowPagination = true,\n\t\tpaginationType = \"dots\",\n\t\tautoPlay = false,\n\t\tinterval = 3000,\n\t\tloop = false,\n\t\ttouchEnabled = true,\n\t\tmouseWheel = false,\n\t\tonSlideChange,\n\t} = props;\n\n\tconst _className = className;\n\tconst _containerClassName = _className + \"-container\";\n\tconst _slideClassName = _className + \"-slide\";\n\tconst _navigationClassName = _className + \"-navigation\";\n\tconst _paginationClassName = _className + \"-pagination\";\n\n\t// 将 slides 规范成数组\n\tlet _slides: TemplateResult<1>[];\n\tif (!slides) _slides = [];\n\telse if (typeof slides === \"function\") _slides = slides();\n\telse _slides = slides;\n\n\tconst slideCount = _slides.length;\n\n\t// 内部状态:当前索引\n\tconst [currentSlide, setCurrentSlide] = (() => {\n\t\tconst state = { value: 0 };\n\t\treturn [\n\t\t\t() => state.value,\n\t\t\t(index: number) => {\n\t\t\t\tconst newIndex = Math.max(0, Math.min(index, slideCount - 1));\n\t\t\t\tif (state.value !== newIndex) {\n\t\t\t\t\tstate.value = newIndex;\n\t\t\t\t\tonSlideChange?.(newIndex);\n\t\t\t\t}\n\t\t\t},\n\t\t];\n\t})();\n\n\t// 滚动到指定 slide\n\tconst scrollToSlide = (index: number) => {\n\t\tconst container =\n\t\t\ttypeof document !== \"undefined\"\n\t\t\t\t? (document.querySelector(\n\t\t\t\t\t\t`.${_containerClassName}`\n\t\t\t\t ) as HTMLElement | null)\n\t\t\t\t: null;\n\t\tif (!container) return;\n\n\t\tconst slides = container.querySelectorAll(`.${_slideClassName}`);\n\t\tif (index < 0 || index >= slides.length) return;\n\n\t\tconst slide = slides[index] as HTMLElement;\n\t\tconst slideRect = slide.getBoundingClientRect();\n\t\tconst containerRect = container.getBoundingClientRect();\n\n\t\tlet scrollOffset: number;\n\t\tif (direction === \"x\") {\n\t\t\tscrollOffset = slide.offsetLeft - container.offsetLeft;\n\t\t\tif (align === \"center\") {\n\t\t\t\tscrollOffset -= (containerRect.width - slideRect.width) / 2;\n\t\t\t} else if (align === \"end\") {\n\t\t\t\tscrollOffset -= containerRect.width - slideRect.width;\n\t\t\t}\n\t\t\tcontainer.scrollTo({ left: scrollOffset, behavior: scrollBehavior });\n\t\t} else {\n\t\t\tscrollOffset = slide.offsetTop - container.offsetTop;\n\t\t\tif (align === \"center\") {\n\t\t\t\tscrollOffset -= (containerRect.height - slideRect.height) / 2;\n\t\t\t} else if (align === \"end\") {\n\t\t\t\tscrollOffset -= containerRect.height - slideRect.height;\n\t\t\t}\n\t\t\tcontainer.scrollTo({ top: scrollOffset, behavior: scrollBehavior });\n\t\t}\n\n\t\tsetCurrentSlide(index);\n\t};\n\n\t// 下一页/上一页\n\tconst nextSlide = () => {\n\t\tconst nextIndex =\n\t\t\tcurrentSlide() + 1 >= slideCount\n\t\t\t\t? loop\n\t\t\t\t\t? 0\n\t\t\t\t\t: currentSlide()\n\t\t\t\t: currentSlide() + 1;\n\t\tscrollToSlide(nextIndex);\n\t};\n\tconst prevSlide = () => {\n\t\tconst prevIndex =\n\t\t\tcurrentSlide() - 1 < 0\n\t\t\t\t? loop\n\t\t\t\t\t? slideCount - 1\n\t\t\t\t\t: currentSlide()\n\t\t\t\t: currentSlide() - 1;\n\t\tscrollToSlide(prevIndex);\n\t};\n\n\t// 监听滚动:找出最接近中心的 slide\n\tconst handleScroll = () => {\n\t\tconst container =\n\t\t\ttypeof document !== \"undefined\"\n\t\t\t\t? (document.querySelector(\n\t\t\t\t\t\t`.${_containerClassName}`\n\t\t\t\t ) as HTMLElement | null)\n\t\t\t\t: null;\n\t\tif (!container) return;\n\n\t\tconst slides = container.querySelectorAll(`.${_slideClassName}`);\n\t\tlet closestIndex = 0;\n\t\tlet minDistance = Infinity;\n\n\t\tslides.forEach((slide, index) => {\n\t\t\tconst slideRect = slide.getBoundingClientRect();\n\t\t\tconst containerRect = container.getBoundingClientRect();\n\n\t\t\tlet distance: number;\n\t\t\tif (direction === \"x\") {\n\t\t\t\tconst centerOffset =\n\t\t\t\t\tslideRect.left +\n\t\t\t\t\tslideRect.width / 2 -\n\t\t\t\t\t(containerRect.left + containerRect.width / 2);\n\t\t\t\tdistance = Math.abs(centerOffset);\n\t\t\t} else {\n\t\t\t\tconst centerOffset =\n\t\t\t\t\tslideRect.top +\n\t\t\t\t\tslideRect.height / 2 -\n\t\t\t\t\t(containerRect.top + containerRect.height / 2);\n\t\t\t\tdistance = Math.abs(centerOffset);\n\t\t\t}\n\n\t\t\tif (distance < minDistance) {\n\t\t\t\tminDistance = distance;\n\t\t\t\tclosestIndex = index;\n\t\t\t}\n\t\t});\n\n\t\tsetCurrentSlide(closestIndex);\n\t};\n\n\t// Touch 事件\n\tconst handleTouchStart = (e: TouchEvent) => {\n\t\tif (!touchEnabled) return;\n\t\tconst touch = e.touches[0];\n\t\tconst container = e.currentTarget as HTMLElement;\n\t\tcontainer.dataset.touchStartX = touch.clientX.toString();\n\t\tcontainer.dataset.touchStartY = touch.clientY.toString();\n\t};\n\n\tconst handleTouchMove = (e: TouchEvent) => {\n\t\tif (!touchEnabled) return;\n\t\tconst touch = e.touches[0];\n\t\tconst container = e.currentTarget as HTMLElement;\n\t\tconst startX = parseFloat(container.dataset.touchStartX || \"0\");\n\t\tconst startY = parseFloat(container.dataset.touchStartY || \"0\");\n\t\tconst diffX = touch.clientX - startX;\n\t\tconst diffY = touch.clientY - startY;\n\n\t\tif (Math.abs(diffX) > Math.abs(diffY) || direction === \"x\") {\n\t\t\te.preventDefault();\n\t\t}\n\t};\n\n\tconst handleTouchEnd = (e: TouchEvent) => {\n\t\tif (!touchEnabled) return;\n\t\tconst container = e.currentTarget as HTMLElement;\n\t\tconst startX = parseFloat(container.dataset.touchStartX || \"0\");\n\t\tconst startY = parseFloat(container.dataset.touchStartY || \"0\");\n\t\tif (!startX && !startY) return;\n\n\t\tconst touch = e.changedTouches[0];\n\t\tconst diffX = touch.clientX - startX;\n\t\tconst diffY = touch.clientY - startY;\n\n\t\tconst isSwipe = Math.max(Math.abs(diffX), Math.abs(diffY)) > 30;\n\t\tif (isSwipe) {\n\t\t\tif (direction === \"x\") {\n\t\t\t\tdiffX > 0 ? prevSlide() : nextSlide();\n\t\t\t} else {\n\t\t\t\tdiffY > 0 ? prevSlide() : nextSlide();\n\t\t\t}\n\t\t}\n\n\t\tdelete container.dataset.touchStartX;\n\t\tdelete container.dataset.touchStartY;\n\t};\n\n\t// 鼠标滚轮\n\tconst handleWheel = (e: WheelEvent) => {\n\t\tif (!mouseWheel) return;\n\t\te.preventDefault();\n\t\te.deltaY > 0 ? nextSlide() : prevSlide();\n\t};\n\n\t// 自动播放\n\tconst setupAutoPlay = (container: HTMLElement | null) => {\n\t\tif (!autoPlay || !container) return;\n\n\t\tlet autoplayInterval: ReturnType<typeof setInterval>;\n\n\t\tconst startAutoPlay = () => {\n\t\t\tautoplayInterval = setInterval(nextSlide, interval);\n\t\t};\n\t\tconst stopAutoPlay = () => {\n\t\t\tclearInterval(autoplayInterval);\n\t\t};\n\n\t\tcontainer.addEventListener(\"mouseenter\", stopAutoPlay);\n\t\tcontainer.addEventListener(\"mouseleave\", startAutoPlay);\n\n\t\tstartAutoPlay();\n\n\t\treturn () => {\n\t\t\tclearInterval(autoplayInterval);\n\t\t\tcontainer.removeEventListener(\"mouseenter\", stopAutoPlay);\n\t\t\tcontainer.removeEventListener(\"mouseleave\", startAutoPlay);\n\t\t};\n\t};\n\n\t// 只在客户端执行副作用:绑定各类事件、启动自动播放、初始化滚动\n\tconst runSideEffects = () => {\n\t\tconst container =\n\t\t\ttypeof document !== \"undefined\"\n\t\t\t\t? (document.querySelector(\n\t\t\t\t\t\t`.${_containerClassName}`\n\t\t\t\t ) as HTMLElement | null)\n\t\t\t\t: null;\n\t\tif (!container) return;\n\n\t\tconst cleanupFns: (() => void)[] = [];\n\n\t\tcontainer.addEventListener(\"scroll\", handleScroll);\n\t\tcleanupFns.push(() =>\n\t\t\tcontainer.removeEventListener(\"scroll\", handleScroll)\n\t\t);\n\n\t\tif (touchEnabled) {\n\t\t\tcontainer.addEventListener(\"touchstart\", handleTouchStart);\n\t\t\tcontainer.addEventListener(\"touchmove\", handleTouchMove, {\n\t\t\t\tpassive: false,\n\t\t\t});\n\t\t\tcontainer.addEventListener(\"touchend\", handleTouchEnd);\n\t\t\tcleanupFns.push(() =>\n\t\t\t\tcontainer.removeEventListener(\"touchstart\", handleTouchStart)\n\t\t\t);\n\t\t\tcleanupFns.push(() =>\n\t\t\t\tcontainer.removeEventListener(\"touchmove\", handleTouchMove)\n\t\t\t);\n\t\t\tcleanupFns.push(() =>\n\t\t\t\tcontainer.removeEventListener(\"touchend\", handleTouchEnd)\n\t\t\t);\n\t\t}\n\n\t\tif (mouseWheel) {\n\t\t\tcontainer.addEventListener(\"wheel\", handleWheel, { passive: false });\n\t\t\tcleanupFns.push(() =>\n\t\t\t\tcontainer.removeEventListener(\"wheel\", handleWheel)\n\t\t\t);\n\t\t}\n\n\t\tconst cleanupAutoPlay = setupAutoPlay(container);\n\t\tif (cleanupAutoPlay) cleanupFns.push(cleanupAutoPlay);\n\n\t\tscrollToSlide(0);\n\n\t\t// 如果你想在未来某个时机清理所有事件,可以调用:\n\t\t// cleanupFns.forEach(fn => fn());\n\t\treturn () => cleanupFns.forEach((fn) => fn());\n\t};\n\n\t// **SSR 优化**:只有在浏览器环境下才调度 runSideEffects\n\tif (typeof window !== \"undefined\" && typeof document !== \"undefined\") {\n\t\tsetTimeout(runSideEffects, 0);\n\t}\n\n\t// 生成分页 dots\n\tconst paginationDots = html`\n\t\t<div class=\"${_paginationClassName}\">\n\t\t\t${Array.from(\n\t\t\t\t{ length: slideCount },\n\t\t\t\t(_, i) => html`\n\t\t\t\t\t<button\n\t\t\t\t\t\tclass=\"${i === currentSlide() ? \"active\" : \"\"}\"\n\t\t\t\t\t\t@click=${() => scrollToSlide(i)}\n\t\t\t\t\t></button>\n\t\t\t\t`\n\t\t\t)}\n\t\t</div>\n\t`;\n\n\t// 生成分页 fraction\n\tconst paginationFraction = html`\n\t\t<div class=\"${_paginationClassName} fraction\">\n\t\t\t<span class=\"current\">${currentSlide() + 1}</span>\n\t\t\t<span class=\"separator\">/</span>\n\t\t\t<span class=\"total\">${slideCount}</span>\n\t\t</div>\n\t`;\n\n\t// 生成分页 progressbar\n\tconst paginationProgress = html`\n\t\t<div class=\"${_paginationClassName} progressbar\">\n\t\t\t<div\n\t\t\t\tclass=\"progress\"\n\t\t\t\tstyle=\"width: ${slideCount > 1\n\t\t\t\t\t? (currentSlide() / (slideCount - 1)) * 100\n\t\t\t\t\t: 0}%\"\n\t\t\t></div>\n\t\t</div>\n\t`;\n\n\t// 生成导航按钮\n\tconst navigationButtons = html`\n\t\t<div class=\"${_navigationClassName}\">\n\t\t\t<button class=\"prev\" @click=${prevSlide}>◀</button>\n\t\t\t<button class=\"next\" @click=${nextSlide}>▶</button>\n\t\t</div>\n\t`;\n\n\t// 最终返回的模板\n\treturn html`\n\t\t<style>\n\t\t\t.${_className} {\n\t\t\t\tposition: relative;\n\t\t\t\toverflow: hidden;\n\t\t\t\twidth: ${width};\n\t\t\t\theight: ${height};\n\t\t\t}\n\n\t\t\t.${_containerClassName} {\n\t\t\t\twidth: 100%;\n\t\t\t\theight: 100%;\n\t\t\t\toverflow: auto;\n\t\t\t\tscroll-snap-type: ${direction + \" \" + snapType};\n\t\t\t\t-webkit-overflow-scrolling: touch;\n\t\t\t\tscroll-behavior: ${scrollBehavior};\n\t\t\t\tgap: ${gap};\n\t\t\t\tdisplay: flex;\n\t\t\t\tflex-direction: ${direction === \"x\" ? \"row\" : \"column\"};\n\t\t\t}\n\n\t\t\t.${_slideClassName} {\n\t\t\t\tscroll-snap-align: ${align};\n\t\t\t\tflex-shrink: 0;\n\t\t\t}\n\n\t\t\t.${_navigationClassName} {\n\t\t\t\tposition: absolute;\n\t\t\t\ttop: 50%;\n\t\t\t\tleft: 0;\n\t\t\t\tright: 0;\n\t\t\t\ttransform: translateY(-50%);\n\t\t\t\tdisplay: flex;\n\t\t\t\tjustify-content: space-between;\n\t\t\t\tpointer-events: none;\n\t\t\t\tpadding: ${navigationPosition === \"outside\" ? \"0 1rem\" : \"0 0.5rem\"};\n\t\t\t}\n\n\t\t\t.${_navigationClassName} button {\n\t\t\t\twidth: 2.5rem;\n\t\t\t\theight: 2.5rem;\n\t\t\t\tborder-radius: 50%;\n\t\t\t\tbackground-color: rgba(0, 0, 0, 0.5);\n\t\t\t\tcolor: white;\n\t\t\t\tborder: none;\n\t\t\t\tdisplay: flex;\n\t\t\t\talign-items: center;\n\t\t\t\tjustify-content: center;\n\t\t\t\tcursor: pointer;\n\t\t\t\tpointer-events: auto;\n\t\t\t\ttransition: background-color 0.3s;\n\t\t\t}\n\n\t\t\t.${_navigationClassName} button:hover {\n\t\t\t\tbackground-color: rgba(0, 0, 0, 0.8);\n\t\t\t}\n\n\t\t\t.${_paginationClassName} {\n\t\t\t\tposition: absolute;\n\t\t\t\tbottom: 1rem;\n\t\t\t\tleft: 0;\n\t\t\t\tright: 0;\n\t\t\t\tdisplay: flex;\n\t\t\t\tjustify-content: center;\n\t\t\t\tgap: 0.5rem;\n\t\t\t\talign-items: center;\n\t\t\t}\n\t\t\t.${_paginationClassName} button {\n\t\t\t\twidth: 0.75rem;\n\t\t\t\theight: 0.75rem;\n\t\t\t\tborder-radius: 50%;\n\t\t\t\tbackground-color: rgba(255, 255, 255, 0.5);\n\t\t\t\tborder: none;\n\t\t\t\tcursor: pointer;\n\t\t\t\ttransition: background-color 0.3s, transform 0.3s;\n\t\t\t}\n\t\t\t.${_paginationClassName} button.active {\n\t\t\t\tbackground-color: white;\n\t\t\t\ttransform: scale(1.2);\n\t\t\t}\n\n\t\t\t.${_paginationClassName}.fraction {\n\t\t\t\tposition: absolute;\n\t\t\t\tbottom: 1rem;\n\t\t\t\tleft: 50%;\n\t\t\t\ttransform: translateX(-50%);\n\t\t\t\tcolor: white;\n\t\t\t\tfont-size: 1rem;\n\t\t\t\tdisplay: flex;\n\t\t\t\talign-items: center;\n\t\t\t\tgap: 0.25rem;\n\t\t\t}\n\n\t\t\t.${_paginationClassName}.progressbar {\n\t\t\t\tposition: absolute;\n\t\t\t\tbottom: 0.5rem;\n\t\t\t\tleft: 0;\n\t\t\t\tright: 0;\n\t\t\t\theight: 0.25rem;\n\t\t\t\tbackground-color: rgba(255, 255, 255, 0.2);\n\t\t\t}\n\t\t\t.${_paginationClassName}.progressbar .progress {\n\t\t\t\theight: 100%;\n\t\t\t\tbackground-color: white;\n\t\t\t\ttransition: width 0.3s;\n\t\t\t}\n\t\t</style>\n\n\t\t<div class=\"${_className}\">\n\t\t\t<div class=\"${_containerClassName}\">\n\t\t\t\t${_slides.map(\n\t\t\t\t\t(slide, index) => html`\n\t\t\t\t\t\t<div class=\"${_slideClassName} --slide-${index}\" key=${index}>\n\t\t\t\t\t\t\t${slide}\n\t\t\t\t\t\t</div>\n\t\t\t\t\t`\n\t\t\t\t)}\n\t\t\t</div>\n\n\t\t\t${showNavigation ? navigationButtons : null}\n\t\t\t${showPagination && paginationType === \"dots\" ? paginationDots : null}\n\t\t\t${showPagination && paginationType === \"fraction\"\n\t\t\t\t? paginationFraction\n\t\t\t\t: null}\n\t\t\t${showPagination && paginationType === \"progressbar\"\n\t\t\t\t? paginationProgress\n\t\t\t\t: null}\n\t\t</div>\n\t`;\n}\n","import { html, TemplateResult } from \"lit\";\nimport { renderFn, renderFnOrCurry, renderFnType } from \"./core\";\n\nexport function AbsoluteBox(props?: {\n\ttop?: string;\n\tright?: string;\n\tbottom?: string;\n\tleft?: string;\n\twidth?: string;\n\theight?: string;\n\tzIndex?: number;\n}): (children?: renderFnType) => TemplateResult<1>;\n\nexport function AbsoluteBox(\n\tprops?: {\n\t\ttop?: string;\n\t\tright?: string;\n\t\tbottom?: string;\n\t\tleft?: string;\n\t\twidth?: string;\n\t\theight?: string;\n\t\tzIndex?: number;\n\t},\n\tchildren?: renderFnType\n): TemplateResult<1>;\n\nexport function AbsoluteBox(\n\tprops?: {\n\t\ttop?: string;\n\t\tright?: string;\n\t\tbottom?: string;\n\t\tleft?: string;\n\t\twidth?: string;\n\t\theight?: string;\n\t\tzIndex?: number;\n\t},\n\tchildren?: renderFnType\n) {\n\tconst t = props?.top ? `top: ${props.top};` : \"\";\n\tconst r = props?.right ? `right: ${props.right};` : \"\";\n\tconst b = props?.bottom ? `bottom: ${props.bottom};` : \"\";\n\tconst l = props?.left ? `left: ${props.left};` : \"\";\n\tconst w = props?.width ? `width: ${props.width};` : \"\";\n\tconst h = props?.height ? `height: ${props.height};` : \"\";\n\tconst z =\n\t\ttypeof props?.zIndex === \"number\" ? `z-index: ${props.zIndex};` : \"\";\n\tconst render = (children?: renderFnType) => {\n\t\treturn html`\n\t\t\t<div\n\t\t\t\tstyle=\"\n position: absolute;\n ${t} ${r} ${b} ${l}\n ${w} ${h}\n ${z}\n \"\n\t\t\t>\n\t\t\t\t${renderFn(children)}\n\t\t\t</div>\n\t\t`;\n\t};\n\treturn renderFnOrCurry(children, render);\n}\n","import { html, TemplateResult } from \"lit\";\nimport { renderFnOrArrayOrCurry, renderFnOrArrayType } from \"./core\";\n\ninterface AcrylicBarProps {\n\twidth?: string; // 宽度,如 \"300px\" 或 \"50%\"\n\theight?: string; // 高度,如 \"auto\" 或 \"200px\"\n\ttop?: string; // 距离顶部距离,默认 \"20%\"\n\tbottom?: string; // 距离底部距离,默认 \"auto\"\n\tleft?: string; // 距离左侧距离,默认 \"50%\"\n\tright?: string; // 距离右侧距离,默认 \"auto\"\n\tbackground?: string; // 背景色,支持透明度,默认 \"rgba(255,255,255,0.3)\"\n\tblur?: string; // 模糊半径,默认 \"10px\"\n\tborderRadius?: string; // 圆角,默认 \"12px\"\n\tpadding?: string; // 内边距,默认 \"16px\"\n\tzIndex?: number; // z-index,默认 1000\n}\n\nexport function AcrylicBar(\n\tprops?: AcrylicBarProps\n): (children?: renderFnOrArrayType) => TemplateResult<1>;\n\nexport function AcrylicBar(\n\tprops?: AcrylicBarProps,\n\tchildren?: renderFnOrArrayType\n): TemplateResult<1>;\n\nexport function AcrylicBar(\n\tprops?: AcrylicBarProps,\n\tchildren?: renderFnOrArrayType\n) {\n\tconst w = props?.width ?? \"300px\";\n\tconst h = props?.height ?? \"auto\";\n\tconst top = props?.top ?? \"20%\";\n\tconst bottom = props?.bottom ?? \"auto\";\n\tconst left = props?.left ?? \"50%\";\n\tconst right = props?.right ?? \"auto\";\n\t// 如果 left 被设置为非 \"auto\",则让组件水平居中\n\tconst translateX = left !== \"auto\" ? \"transform: translateX(-50%);\" : \"\";\n\tconst bg = props?.background ?? \"rgba(255, 255, 255, 0.3)\";\n\tconst blur = props?.blur ?? \"10px\";\n\tconst br = props?.borderRadius ?? \"12px\";\n\tconst pd = props?.padding ?? \"16px\";\n\tconst z = props?.zIndex ?? 1000;\n\n\tconst render = (children: TemplateResult) => {\n\t\treturn html`\n\t\t\t<div\n\t\t\t\tstyle=\"\n position: fixed;\n top: ${top};\n bottom: ${bottom};\n left: ${left};\n right: ${right};\n ${translateX}\n width: ${w};\n height: ${h};\n background: ${bg};\n backdrop-filter: blur(${blur});\n -webkit-backdrop-filter: blur(${blur});\n border-radius: ${br};\n padding: ${pd};\n box-shadow: 0 4px 16px rgba(0, 0, 0, 0.2);\n z-index: ${z};\n display: flex;\n flex-direction: column;\n \"\n\t\t\t>\n\t\t\t\t${children}\n\t\t\t</div>\n\t\t`;\n\t};\n\treturn renderFnOrArrayOrCurry(children, undefined, render);\n}\n","import { html, TemplateResult } from \"lit\";\nimport { renderFnOrArray, renderFnOrArrayType } from \"./core\";\n\ninterface AspectRatioProps {\n\tratio: number; // 宽高比,例如 16/9、4/3\n\tmaxWidth?: string;\n\tbackground?: string;\n\toverflow?: string;\n}\n\nexport function AspectRatio(\n\tprops: AspectRatioProps\n): (children?: renderFnOrArrayType) => TemplateResult<1>;\n\nexport function AspectRatio(\n\tprops: AspectRatioProps,\n\tchildren?: renderFnOrArrayType\n): TemplateResult<1>;\n\nexport function AspectRatio(\n\tprops: AspectRatioProps,\n\tchildren?: renderFnOrArrayType\n): TemplateResult<1> | ((children?: renderFnOrArrayType) => TemplateResult<1>) {\n\tif (children === undefined) {\n\t\treturn (children) => AspectRatio(props, children ?? [html``]);\n\t}\n\tconst paddingTop = `${100 / props.ratio}%`;\n\tconst mw = props.maxWidth ? `max-width: ${props.maxWidth};` : \"\";\n\tconst bg = props.background ? `background: ${props.background};` : \"\";\n\tconst ov = props.overflow ?? \"hidden\";\n\n\treturn html`\n\t\t<div\n\t\t\tstyle=\"\n position: relative;\n width: 100%;\n ${mw}\n ${bg}\n overflow: ${ov};\n \"\n\t\t>\n\t\t\t<div style=\"width: 100%; padding-top: ${paddingTop};\"></div>\n\t\t\t<div\n\t\t\t\tstyle=\"\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n \"\n\t\t\t>\n\t\t\t\t${renderFnOrArray(children)}\n\t\t\t</div>\n\t\t</div>\n\t`;\n}\n","import { html, TemplateResult } from \"lit\";\nimport { renderFn, renderFnType, WithHtml } from \"./core\";\n\nexport function AutoFitGrid(props: {\n\tminItemWidth: string;\n\tgap?: string | number;\n}): WithHtml<renderFnType>;\n\nexport function AutoFitGrid(\n\tprops: {\n\t\tminItemWidth: string;\n\t\tgap?: string | number;\n\t},\n\tchildren?: renderFnType\n): TemplateResult<1>;\n\nexport function AutoFitGrid(\n\tprops: {\n\t\tminItemWidth: string;\n\t\tgap?: string | number;\n\t},\n\tchildren?: renderFnType\n): TemplateResult<1> | WithHtml<renderFnType> {\n\tif (children === undefined) {\n\t\tconst _ = (children?: renderFnType) => AutoFitGrid(props, children);\n\t\t_.html = (strings: TemplateStringsArray, ...values: unknown[]) =>\n\t\t\tAutoFitGrid(props, html(strings, ...values));\n\t\treturn _;\n\t}\n\tconst gap = props?.gap ?? \"16px\";\n\treturn html`\n\t\t<div\n\t\t\tstyle=\"\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(${props.minItemWidth}, 1fr));\n gap: ${gap};\n \"\n\t\t>\n\t\t\t${renderFn(children)}\n\t\t</div>\n\t`;\n}\n","import { html, TemplateResult } from \"lit\";\nimport { type renderFnOrArrayType, renderFnOrArray } from \"./core\";\n\nexport function AvatarStack(props?: {\n\tsize?: string;\n\toverlap?: string;\n}): (children?: renderFnOrArrayType) => TemplateResult<1>;\n\nexport function AvatarStack(\n\tprops?: { size?: string; overlap?: string },\n\tchildren?: renderFnOrArrayType\n): TemplateResult<1>;\n\nexport function AvatarStack(\n\tprops?: { size?: string; overlap?: string },\n\tchildren?: renderFnOrArrayType\n): TemplateResult<1> | ((children?: renderFnOrArrayType) => TemplateResult<1>) {\n\tif (children === undefined) {\n\t\treturn (children?: renderFnOrArrayType) =>\n\t\t\tAvatarStack(props, children ?? [html``]);\n\t}\n\tconst sz = props?.size ?? \"32px\";\n\tconst ov = props?.overlap ?? \"-8px\";\n\tconst injectBox = (avatar: TemplateResult, idx?: number) => html`\n\t\t<div\n\t\t\tstyle=\"\n width: ${sz};\n height: ${sz};\n border-radius: 50%;\n overflow: hidden;\n border: 2px solid #fff;\n margin-left: ${idx === 0 ? \"0\" : ov};\n box-sizing: content-box;\n \"\n\t\t>\n\t\t\t${avatar}\n\t\t</div>\n\t`;\n\treturn html`\n\t\t<div style=\"display: flex; align-items: center;\">\n\t\t\t${renderFnOrArray(children, injectBox)}\n\t\t</div>\n\t`;\n}\n","// Badge.ts\nimport { html, TemplateResult } from \"lit\";\nimport { renderFn, renderFnType, WithHtml } from \"./core\";\n\ninterface BadgeProps {\n\tcontent?: string | number;\n\tposition?: \"top-left\" | \"top-right\" | \"bottom-left\" | \"bottom-right\";\n\tsize?: string;\n\tbackground?: string;\n\tcolor?: string;\n}\n\nexport function Badge(props?: BadgeProps): WithHtml<renderFnType>;\n\nexport function Badge(\n\tprops?: BadgeProps,\n\tchildren?: renderFnType\n): TemplateResult<1>;\n\nexport function Badge(\n\tprops?: BadgeProps,\n\tchildren?: renderFnType\n): TemplateResult<1> | WithHtml<renderFnType> {\n\tif (children === undefined) {\n\t\tconst _ = (children?: renderFnType) => Badge(props, children ?? html``);\n\t\t_.html = (strings: TemplateStringsArray, ...values: unknown[]) =>\n\t\t\tBadge(props, html(strings, ...values));\n\t\treturn _;\n\t}\n\tconst pos = props?.position ?? \"top-right\";\n\tconst size = props?.size ?? \"16px\";\n\tconst bg = props?.background ?? \"red\";\n\tconst col = props?.color ?? \"#fff\";\n\t// 计算定位\n\tconst [top, right, bottom, left] = [\n\t\tpos.includes(\"top\") ? \"0\" : \"auto\",\n\t\tpos.includes(\"right\") ? \"0\" : \"auto\",\n\t\tpos.includes(\"bottom\") ? \"0\" : \"auto\",\n\t\tpos.includes(\"left\") ? \"0\" : \"auto\",\n\t];\n\treturn html`\n\t\t<div style=\"position: relative; display: inline-block;\">\n\t\t\t${renderFn(children)}\n\t\t\t<div\n\t\t\t\tstyle=\"\n position: absolute;\n top: ${top};\n right: ${right};\n bottom: ${bottom};\n left: ${left};\n width: ${size};\n height: ${size};\n background: ${bg};\n color: ${col};\n font-size: calc(${size} * 0.6);\n border-radius: 50%;\n display: flex;\n justify-content: center;\n align-items: center;\n transform: translate(${left === \"0\"\n\t\t\t\t\t? \"-50%\"\n\t\t\t\t\t: left === \"auto\"\n\t\t\t\t\t? \"0\"\n\t\t\t\t\t: \"0\"}, ${top === \"0\" ? \"-50%\" : top === \"auto\" ? \"0\" : \"0\"});\n \"\n\t\t\t>\n\t\t\t\t${props?.content ?? \"\"}\n\t\t\t</div>\n\t\t</div>\n\t`;\n}\n","import { html, TemplateResult } from \"lit\";\nimport { renderFnOrArray, renderFnOrArrayType } from \"./core\";\n\ninterface CardProps {\n\tpadding?: string;\n\tborderRadius?: string;\n\tshadow?: string;\n\tbackground?: string;\n}\n\nexport function Card(\n\tprops?: CardProps\n): (children?: renderFnOrArrayType) => TemplateResult<1>;\n\nexport function Card(\n\tprops?: CardProps,\n\tchildren?: renderFnOrArrayType\n): TemplateResult<1>;\n\nexport function Card(\n\tprops?: CardProps,\n\tchildren?: renderFnOrArrayType\n): TemplateResult<1> | ((children?: renderFnOrArrayType) => TemplateResult<1>) {\n\tif (children === undefined) {\n\t\treturn (children) => Card(props, children ?? [html``]);\n\t}\n\tconst pd = props?.padding ?? \"16px\";\n\tconst br = props?.borderRadius ?? \"8px\";\n\tconst sd = props?.shadow ?? \"0 2px 8px rgba(0,0,0,0.1)\";\n\tconst bg = props?.background ?? \"#fff\";\n\treturn html`\n\t\t<div\n\t\t\tstyle=\"\n background: ${bg};\n border-radius: ${br};\n box-shadow: ${sd};\n padding: ${pd};\n box-sizing: border-box;\n \"\n\t\t>\n\t\t\t${renderFnOrArray(children)}\n\t\t</div>\n\t`;\n}\n","import { html, TemplateResult } from \"lit\";\nimport { renderFn, renderFnType, WithHtml } from \"./core\";\n\nexport function Center(props?: {\n\twidth?: string;\n\theight?: string;\n\tbackground?: string;\n}): WithHtml<renderFnType>;\n\nexport function Center(\n\tprops?: { width?: string; height?: string; background?: string },\n\tchildren?: renderFnType\n): TemplateResult<1>;\n\nexport function Center(\n\tprops?: { width?: string; height?: string; background?: string },\n\tchildren?: renderFnType\n): TemplateResult<1> | WithHtml<renderFnType> {\n\tif (children === undefined) {\n\t\tconst _ = (children?: renderFnType) => Center(props, children ?? html``);\n\t\t_.html = (strings: TemplateStringsArray, ...values: unknown[]) =>\n\t\t\tCenter(props, html(strings, ...values));\n\t\treturn _;\n\t}\n\tconst w = props?.width ? `width: ${props.width};` : \"\";\n\tconst h = props?.height ? `height: ${props.height};` : \"\";\n\tconst bg = props?.background ? `background: ${props.background};` : \"\";\n\n\treturn html`\n\t\t<div\n\t\t\tstyle=\"\n display: flex;\n justify-content: center;\n align-items: center;\n ${w} ${h} ${bg}\n \"\n\t\t>\n\t\t\t${renderFn(children)}\n\t\t</div>\n\t`;\n}\n","import { html, TemplateResult } from \"lit\";\nimport { renderFnOrArray, renderFnOrArrayType } from \"./core\";\n\nexport type ContainerProps = {\n\tmaxWidth?: string;\n\tpadding?: string;\n\tbackground?: string;\n\tfullHeight?: boolean;\n};\n\nexport function Container(\n\tprops?: ContainerProps\n): (children?: renderFnOrArrayType) => TemplateResult<1>;\n\nexport function Container(\n\tprops?: ContainerProps,\n\tchildren?: renderFnOrArrayType\n): TemplateResult<1>;\n\nexport function Container(\n\tprops?: ContainerProps,\n\tchildren?: renderFnOrArrayType\n): TemplateResult<1> | ((children?: renderFnOrArrayType) => TemplateResult<1>) {\n\tif (children === undefined) {\n\t\treturn (children) => Container(props, children ?? [html``]);\n\t}\n\tconst mw = props?.maxWidth ?? \"1024px\";\n\tconst pad = props?.padding ?? \"0 16px\";\n\tconst bg = props?.background ? `background: ${props.background};` : \"\";\n\tconst h = props?.fullHeight ? \"height: 100%;\" : \"\";\n\n\treturn html`\n\t\t<div\n\t\t\tstyle=\"\n width: 100%;\n max-width: ${mw};\n margin-left: auto;\n margin-right: auto;\n padding: ${pad};\n ${bg}\n ${h}\n box-sizing: border-box;\n \"\n\t\t>\n\t\t\t${renderFnOrArray(children)}\n\t\t</div>\n\t`;\n}\n","import { html } from \"lit\";\n\nexport function Divider(props?: {\n\torientation?: \"horizontal\" | \"vertical\";\n\tthickness?: string;\n\tcolor?: string;\n\tmargin?: string;\n}) {\n\tconst ori = props?.orientation ?? \"horizontal\";\n\tconst thickness = props?.thickness ?? \"1px\";\n\tconst color = props?.color ?? \"#e0e0e0\";\n\tconst margin = props?.margin ?? (ori === \"horizontal\" ? \"8px 0\" : \"0 8px\");\n\n\tconst style =\n\t\tori === \"horizontal\"\n\t\t\t? `width: 100%; height: ${thickness}; background: ${color}; margin: ${margin};`\n\t\t\t: `width: ${thickness}; height: 100%; background: ${color}; margin: ${margin};`;\n\n\treturn html`<div style=\"${style}\"></div>`;\n}\n","// FooterLayout.ts\nimport { html, TemplateResult } from \"lit\";\nimport { renderFn, renderFnType, WithHtml } from \"./core\";\n\ninterface FooterLayoutProps {\n\tcolumns?: number;\n\tgap?: string;\n\tbackground?: string;\n\tpadding?: string;\n}\n\nexport function FooterLayout(props?: FooterLayoutProps): WithHtml<renderFnType>;\n\nexport function FooterLayout(\n\tprops?: FooterLayoutProps,\n\tchildren?: renderFnType\n): TemplateResult<1>;\n\nexport function FooterLayout(\n\tprops?: FooterLayoutProps,\n\tchildren?: renderFnType\n) {\n\tif (children === undefined) {\n\t\tconst _ = (children?: renderFnType) =>\n\t\t\tFooterLayout(props, children ?? html``);\n\t\t_.html = (strings: TemplateStringsArray, ...values: unknown[]) =>\n\t\t\tFooterLayout(props, html(strings, ...values));\n\t\treturn _;\n\t}\n\tconst cols = props?.columns ?? 4;\n\tconst gap = props?.gap ?? \"24px\";\n\tconst bg = props?.background ?? \"#f8f8f8\";\n\tconst pad = props?.padding ?? \"40px 16px\";\n\treturn html`\n\t\t<div\n\t\t\tstyle=\"\n width: 100%;\n background: ${bg};\n padding: ${pad};\n box-sizing: border-box;\n \"\n\t\t>\n\t\t\t<div\n\t\t\t\tstyle=\"\n display: grid;\n grid-template-columns: repeat(${cols}, 1fr);\n gap: ${gap};\n \"\n\t\t\t>\n\t\t\t\t${renderFn(children)}\n\t\t\t</div>\n\t\t\t<div style=\"text-align: center; margin-top: 24px; color: #666;\">\n\t\t\t\t© ${new Date().getFullYear()} Your Company. All rights reserved.\n\t\t\t</div>\n\t\t</div>\n\t`;\n}\n","import { html, TemplateResult } from \"lit\";\nimport { randomClassName, renderFn, renderFnType, WithHtml } from \"./core\";\n\nexport type GridBreakpointProps = {\n\tbreakpoints: Record<string, number>;\n\tdefaultColumns?: number;\n\tgap?: string;\n\tclassName?: string;\n};\n\nexport function GridBreakpoint(\n\tprops: GridBreakpointProps\n): WithHtml<renderFnType>;\n\nexport function GridBreakpoint(\n\tprops: GridBreakpointProps,\n\tchildren?: renderFnType\n): TemplateResult<1>;\n\nexport function GridBreakpoint(\n\tprops: GridBreakpointProps,\n\tchildren?: renderFnType\n): TemplateResult<1> | WithHtml<renderFnType> {\n\tif (children === undefined) {\n\t\tconst _ = (children?: renderFnType) =>\n\t\t\tGridBreakpoint(props, children ?? html``);\n\t\t_.html = (strings: TemplateStringsArray, ...values: unknown[]) =>\n\t\t\tGridBreakpoint(props, html(strings, ...values));\n\t\treturn _;\n\t}\n\n\tconst defCols = props.defaultColumns ?? 1;\n\tconst gap = props.gap ?? \"16px\";\n\tconst _className = props.className ?? randomClassName(\"grid-breakpoint\");\n\t// 生成媒体查询 CSS\n\tconst mqCss = Object.entries(props.breakpoints)\n\t\t.map(\n\t\t\t([query, cols]) => `\n @media ${query} {\n .${_className} { grid-template-columns: repeat(${cols}, 1fr); }\n }\n `\n\t\t)\n\t\t.join(\"\\n\");\n\treturn html`\n\t\t<style>\n\t\t\t.${_className} {\n\t\t\t display: grid;\n\t\t\t grid-template-columns: repeat(${defCols}, 1fr);\n\t\t\t gap: ${gap};\n\t\t\t}\n\t\t\t${mqCss}\n\t\t</style>\n\t\t<div class=\"${_className}\">${renderFn(children)}</div>\n\t`;\n}\n","import { html, TemplateResult } from \"lit\";\nimport { renderFnOrArray, renderFnOrArrayType } from \"./core\";\n\nexport function HeroSection(props?: {\n\tbackgroundImage?: string;\n\theight?: string;\n\toverlayColor?: string;\n}): (children?: renderFnOrArrayType) => TemplateResult<1>;\n\nexport function HeroSection(\n\tprops?: {\n\t\tbackgroundImage?: string;\n\t\theight?: string;\n\t\toverlayColor?: string;\n\t},\n\tchildren?: renderFnOrArrayType\n): TemplateResult<1>;\n\nexport function HeroSection(\n\tprops?: {\n\t\tbackgroundImage?: string;\n\t\theight?: string;\n\t\toverlayColor?: string;\n\t},\n\tchildren?: renderFnOrArrayType\n): TemplateResult<1> | ((children?: renderFnOrArrayType) => TemplateResult<1>) {\n\tif (children === undefined) {\n\t\treturn (children) => HeroSection(props, children ?? [html``]);\n\t}\n\n\tconst bgImage = props?.backgroundImage\n\t\t? `background-image: url('${props.backgroundImage}');`\n\t\t: \"\";\n\tconst height = props?.height ?? \"400px\";\n\tconst overlay = props?.overlayColor ?? \"rgba(0, 0, 0, 0.3)\";\n\treturn html`\n\t\t<div\n\t\t\tstyle=\"\n position: relative;\n width: 100%;\n height: ${height};\n ${bgImage}\n background-size: cover;\n background-position: center;\n \"\n\t\t>\n\t\t\t<div\n\t\t\t\tstyle=\"\n position: absolute;\n top: 0; left: 0; right: 0; bottom: 0;\n background: ${overlay};\n \"\n\t\t\t></div>\n\t\t\t<div\n\t\t\t\tstyle=\"\n position: relative;\n z-index: 1;\n width: 100%;\n height: 100%;\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n color: #fff;\n text-align: center;\n padding: 0 16px;\n box-sizing: border-box;\n \"\n\t\t\t>\n\t\t\t\t${renderFnOrArray(children)}\n\t\t\t</div>\n\t\t</div>\n\t`;\n}\n","// Hidden.ts\nimport { html, TemplateResult } from \"lit\";\nimport { randomClassName, renderFn, renderFnType, WithHtml } from \"./core\";\n\nexport type HiddenProps = {\n\tbreakpoint?: string;\n\tmode?: \"hide\" | \"show\";\n\tclassName?: string;\n};\n\nexport function Hidden(props?: HiddenProps): WithHtml<renderFnType>;\n\nexport function Hidden(\n\tprops?: HiddenProps,\n\tchildren?: renderFnType\n): TemplateResult<1>;\n\nexport function Hidden(\n\tprops?: HiddenProps,\n\tchildren?: renderFnType\n): TemplateResult<1> | WithHtml<renderFnType> {\n\tif (children === undefined) {\n\t\tconst _ = (children?: renderFnType) => Hidden(props, children ?? html``);\n\t\t_.html = (strings: TemplateStringsArray, ...values: unknown[]) =>\n\t\t\tHidden(props, html(strings, ...values));\n\t\treturn _;\n\t}\n\tconst bp = props?.breakpoint ?? \"(max-width: 600px)\";\n\tconst mode = props?.mode ?? \"hide\";\n\tconst _className = props?.className ?? randomClassName(\"hidden-container\");\n\tconst styleContent =\n\t\tmode === \"hide\"\n\t\t\t? `@media ${bp} { .${_className} { display: none !important; } }`\n\t\t\t: `@media ${bp} { .${_className} { display: block !important; } }\n @media not ${bp} { .${_className} { display: none !important; } }`;\n\treturn html`\n\t\t<style>\n\t\t\t.${_className} {\n\t\t\t display: block;\n\t\t\t}\n\t\t\t${styleContent}\n\t\t</style>\n\t\t<div class=\"${_className}\">${renderFn(children)}</div>\n\t`;\n}\n","import { html, TemplateResult } from \"lit\";\nimport {\n\trandomClassName,\n\trenderFnOrArray,\n\trenderFnOrArrayOrCurry,\n\trenderFnOrArrayType,\n} from \"./core\";\n\nexport function ListGroup(props?: {\n\tbordered?: boolean;\n\tstriped?: boolean;\n\thover?: boolean;\n\tclassName?: string;\n}): (children?: renderFnOrArrayType) => TemplateResult<1>;\n\nexport function ListGroup(\n\tprops?: {\n\t\tbordered?: boolean;\n\t\tstriped?: boolean;\n\t\thover?: boolean;\n\t\tclassName?: string;\n\t},\n\tchildren?: renderFnOrArrayType\n): TemplateResult<1>;\n\nexport function ListGroup(\n\tprops?: {\n\t\tbordered?: boolean;\n\t\tstriped?: boolean;\n\t\thover?: boolean;\n\t\tclassName?: string;\n\t},\n\tchildren?: renderFnOrArrayType\n) {\n\tconst bordered = props?.bordered\n\t\t? `border: 1px solid #ddd; border-radius: 4px`\n\t\t: \"\";\n\tconst striped = props?.striped\n\t\t? `li:nth-child(even) { background: #f9f9f9; }`\n\t\t: \"\";\n\tconst hover = props?.hover\n\t\t? `li:hover { background: #f1f1f1; cursor: pointer; }`\n\t\t: \"\";\n\tconst _className = props?.className ?? randomClassName(\"list-group\");\n\tconst injectRender = (\n\t\tchildren: TemplateResult<1>,\n\t\t_idx?: number,\n\t\tisArray?: boolean,\n\t\t_isFunc?: boolean\n\t) => {\n\t\tif (!isArray) {\n\t\t\treturn children;\n\t\t} else {\n\t\t\treturn html` <li>${children}</li> `;\n\t\t}\n\t};\n\tconst render = (children: TemplateResult<1> | TemplateResult<1>[]) => html`\n\t\t<style>\n\t\t\tul.${_className} {\n\t\t\t list-style: none;\n\t\t\t margin: 0;\n\t\t\t padding: 0;\n\t\t\t ${bordered};\n\t\t\t}\n\t\t\tul.${_className} li {\n\t\t\t padding: 12px 16px;\n\t\t\t ${props?.bordered ? \"border-bottom: 1px solid #ddd\" : \"\"};\n\t\t\t}\n\t\t\tul.${_className} li:last-child {\n\t\t\t ${props?.bordered ? \"border-bottom: none\" : \"\"};\n\t\t\t}\n\t\t\t${striped}\n\t\t\t${hover}\n\t\t</style>\n\t\t<ul class=\"${_className}\">\n\t\t\t${renderFnOrArray(children, injectRender)}\n\t\t</ul>\n\t`;\n\n\treturn renderFnOrArrayOrCurry(children, render);\n}\n","import { html } from \"lit\";\nimport { renderFnOrArray, renderFnOrArrayType } from \"./core\";\n\nexport function Overlay(\n\tprops?: { background?: string; zIndex?: number; fullScreen?: boolean },\n\tchildren?: renderFnOrArrayType\n) {\n\tconst bg = props?.background ?? \"rgba(0, 0, 0, 0.5)\";\n\tconst z = props?.zIndex ?? 1000;\n\tconst full = props?.fullScreen !== false;\n\treturn html`\n\t\t<div\n\t\t\tstyle=\"\n position: ${full ? \"fixed\" : \"absolute\"};\n top: 0; left: 0; right: 0; bottom: 0;\n background: ${bg};\n z-index: ${z};\n display: flex;\n justify-content: center;\n align-items: center;\n \"\n\t\t>\n\t\t\t${renderFnOrArray(children)}\n\t\t</div>\n\t`;\n}\n","import { html } from \"lit\";\nimport { renderFn, renderFnType } from \"./core\";\n\nexport function PositionContainer(\n\tprops?: { width?: string; height?: string; background?: string },\n\tchildren?: renderFnType\n) {\n\tconst w = props?.width ? `width: ${props.width};` : \"\";\n\tconst h = props?.height ? `height: ${props.height};` : \"\";\n\tconst bg = props?.background ? `background: ${props.background};` : \"\";\n\n\treturn html`\n\t\t<div\n\t\t\tstyle=\"\n position: relative;\n ${w} ${h} ${bg}\n overflow: hidden;\n \"\n\t\t>\n\t\t\t${renderFn(children)}\n\t\t</div>\n\t`;\n}\n","import { html } from \"lit\";\n\nexport function SizedBox(props?: { width?: string; height?: string }) {\n\tconst w = props?.width ? `width: ${props.width};` : \"\";\n\tconst h = props?.height ? `height: ${props.height};` : \"\";\n\treturn html` <div style=\"${w} ${h}\"></div> `;\n}\n","// SkeletonLoader.ts\nimport { html } from \"lit\";\nimport { randomClassName } from \"./core\";\n\nexport function SkeletonLoader(props?: {\n\ttype?: \"rect\" | \"circle\";\n\twidth?: string;\n\theight?: string;\n\tborderRadius?: string;\n\tanimation?: boolean;\n\tclassName?: string;\n}) {\n\tconst type = props?.type ?? \"rect\";\n\tconst w = props?.width ?? \"100%\";\n\tconst h = props?.height ?? \"16px\";\n\tconst br = props?.borderRadius ?? \"4px\";\n\tconst anim = props?.animation !== false;\n\tconst _className = props?.className ?? randomClassName(\"skeleton-shimmer\");\n\tconst shapeStyle =\n\t\ttype === \"circle\"\n\t\t\t? `border-radius: 50%; width: ${w}; height: ${w}`\n\t\t\t: `border-radius: ${br}; width: ${w}; height: ${h}`;\n\treturn html`\n\t\t<style>\n\t\t\t${`\n @keyframes ${_className + \"-shimmer\"} {\n\t\t\t 0% { background-color: #eee; }\n\t\t\t 50% { background-color: #ddd; }\n\t\t\t 100% { background-color: #eee; }\n\t\t\t} \n `}\n\t\t\t.${_className} {\n\t\t\t ${shapeStyle};\n\t\t\t background-color: #eee;\n\t\t\t ${anim\n\t\t\t\t? `animation: ${_className + \"-shimmer\"} 1.2s infinite ease-in-out`\n\t\t\t\t: \"\"};\n\t\t\t}\n\t\t</style>\n\t\t<div class=\"${_className}\"></div>\n\t`;\n}\n","import { html } from \"lit\";\n\nexport function Spacer() {\n\treturn html`<div style=\"flex: 1 1 auto;\"></div>`;\n}\n","import { html, TemplateResult } from \"lit\";\nimport { renderFn, renderFnType, WithHtml } from \"./core\";\n\ninterface StickyProps {\n\ttop?: string;\n\tbottom?: string;\n\tzIndex?: number;\n}\n\nexport function Sticky(props?: StickyProps): WithHtml<renderFnType>;\n\nexport function Sticky(\n\tprops?: StickyProps,\n\tchildren?: renderFnType\n): TemplateResult<1>;\nexport function Sticky(\n\tprops?: StickyProps,\n\tchildren?: renderFnType\n): TemplateResult<1> | WithHtml<renderFnType> {\n\tif (children === undefined) {\n\t\tconst _ = (children?: renderFnType) => Sticky(props, children ?? html``);\n\t\t_.html = (strings: TemplateStringsArray, ...values: unknown[]) =>\n\t\t\tSticky(props, html(strings, ...values));\n\t\treturn _;\n\t}\n\n\tconst top = props?.top ? `top: ${props.top};` : \"\";\n\tconst bottom = props?.bottom ? `bottom: ${props.bottom};` : \"\";\n\tconst z =\n\t\ttypeof props?.zIndex === \"number\" ? `z-index: ${props.zIndex};` : \"\";\n\n\treturn html`\n\t\t<div\n\t\t\tstyle=\"\n position: sticky;\n ${top} ${bottom}\n ${z}\n \"\n\t\t>\n\t\t\t${renderFn(children)}\n\t\t</div>\n\t`;\n}\n","import { html, TemplateResult } from \"lit\";\nimport { randomClassName, renderFn, renderFnType, WithHtml } from \"./core\";\n\nexport interface TableProps {\n\tstriped?: boolean;\n\thover?: boolean;\n\tbordered?: boolean;\n\tclassName?: string;\n}\n\nexport function Table(props?: TableProps): WithHtml<renderFnType>;\n\nexport function Table(\n\tprops?: TableProps,\n\tchildren?: renderFnType // TemplateResult | (() => TemplateResult)\n): TemplateResult<1>;\n\nexport function Table(\n\tprops?: TableProps,\n\tchildren?: renderFnType\n): TemplateResult<1> | WithHtml<renderFnType> {\n\t// 如果第二个参数 children 没传,则返回一个只接收 children 的函数\n\tif (children === undefined) {\n\t\tconst _ = (children?: renderFnType) => Table(props, children ?? html``);\n\t\t_.html = (strings: TemplateStringsArray, ...values: unknown[]) =>\n\t\t\tTable(props, html(strings, ...values));\n\t\treturn _;\n\t}\n\n\t// 到这里说明 props 和 children 都已经传齐\n\tconst _className = props?.className ?? randomClassName(\"table\");\n\tconst striped = props?.striped\n\t\t? `\n .${_className} tr:nth-child(even) { background: #f9f9f9; }\n `\n\t\t: \"\";\n\tconst hover = props?.hover\n\t\t? `\n .${_className} tr:hover { background: #f1f1f1; }\n `\n\t\t: \"\";\n\tconst bordered = props?.bordered\n\t\t? `\n .${_className}, .${_className} th, .${_className} td { border: 1px solid #ddd; }\n `\n\t\t: \"\";\n\n\treturn html`\n\t\t<style>\n\t\t\t/* 将表格包裹在带有 _className 的 div 里,使后续 CSS 作用于该 div 下的 table */\n\t\t\t.${_className} table {\n\t\t\t width: 100%;\n\t\t\t border-collapse: collapse;\n\t\t\t}\n\t\t\t.${_className} th,\n\t\t\t.${_className} td {\n\t\t\t padding: 8px 12px;\n\t\t\t text-align: left;\n\t\t\t}\n\t\t\t${striped}\n\t\t\t${hover}\n\t\t\t${bordered}\n\t\t</style>\n\n\t\t<div class=\"${_className}\">\n\t\t\t<table>\n\t\t\t\t${renderFn(children)}\n\t\t\t</table>\n\t\t</div>\n\t`;\n}\n","import { html, TemplateResult } from \"lit\";\nimport { renderFnOrArray, renderFnOrArrayType } from \"./core\";\n\ninterface WrapProps {\n\tdirection?: \"row\" | \"column\";\n\tgap?: string | number;\n\talign?: string;\n\tjustify?: string;\n}\n\nexport function Wrap(\n\tprops?: WrapProps\n): (children?: renderFnOrArrayType) => TemplateResult<1>;\n\nexport function Wrap(\n\tprops?: WrapProps,\n\tchildren?: renderFnOrArrayType\n): TemplateResult<1>;\n\nexport function Wrap(\n\tprops?: WrapProps,\n\tchildren?: renderFnOrArrayType\n): TemplateResult<1> | ((children?: renderFnOrArrayType) => TemplateResult<1>) {\n\tconst dir = props?.direction ?? \"row\";\n\tif (children === undefined) {\n\t\treturn (children) => Wrap(props, children ?? html``);\n\t}\n\treturn html`\n\t\t<div\n\t\t\tstyle=\"\n display: flex;\n flex-direction: ${dir};\n flex-wrap: wrap;\n ${props?.gap ? `gap: ${props.gap};` : \"\"}\n ${props?.align ? `align-items: ${props.align};` : \"\"}\n ${props?.justify ? `justify-content: ${props.justify};` : \"\"}\n \"\n\t\t>\n\t\t\t${renderFnOrArray(children)}\n\t\t</div>\n\t`;\n}\n","import { html, TemplateResult } from \"lit\";\nimport { renderFnOrArray, renderFnOrArrayType } from \"./core\";\n\ninterface ZStackProps {\n\twidth?: string;\n\theight?: string;\n\tbackground?: string;\n\talign?: \"top-left\" | \"top-right\" | \"center\" | \"bottom-left\" | \"bottom-right\";\n}\n\nexport function ZStack(\n\tprops?: ZStackProps\n): (children?: renderFnOrArrayType) => TemplateResult<1>;\n\nexport function ZStack(\n\tprops?: ZStackProps,\n\tchildren?: renderFnOrArrayType\n): TemplateResult<1>;\n\nexport function ZStack(\n\tprops?: ZStackProps,\n\tchildren?: renderFnOrArrayType\n): TemplateResult<1> | ((children?: renderFnOrArrayType) => TemplateResult<1>) {\n\tconst w = props?.width ? `width: ${props.width};` : \"\";\n\tconst h = props?.height ? `height: ${props.height};` : \"\";\n\tconst bg = props?.background ? `background: ${props.background};` : \"\";\n\n\tif (children === undefined) {\n\t\treturn (children?: renderFnOrArrayType) =>\n\t\t\tZStack(props, children ?? [html``]);\n\t}\n\n\tlet justify = \"flex-start\";\n\tlet alignItems = \"flex-start\";\n\tswitch (props?.align) {\n\t\tcase \"top-right\":\n\t\t\tjustify = \"flex-end\";\n\t\t\talignItems = \"flex-start\";\n\t\t\tbreak;\n\t\tcase \"center\":\n\t\t\tjustify = \"center\";\n\t\t\talignItems = \"center\";\n\t\t\tbreak;\n\t\tcase \"bottom-left\":\n\t\t\tjustify = \"flex-start\";\n\t\t\talignItems = \"flex-end\";\n\t\t\tbreak;\n\t\tcase \"bottom-right\":\n\t\t\tjustify = \"flex-end\";\n\t\t\talignItems = \"flex-end\";\n\t\t\tbreak;\n\t\tdefault:\n\t\t\t// \"top-left\"\n\t\t\tjustify = \"flex-start\";\n\t\t\talignItems = \"flex-start\";\n\t}\n\n\treturn html`\n\t\t<div\n\t\t\tstyle=\"\n position: relative;\n display: flex;\n justify-content: ${justify};\n align-items: ${alignItems};\n ${w} ${h} ${bg}\n \"\n\t\t>\n\t\t\t${renderFnOrArray(children)}\n\t\t</div>\n\t`;\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"index.cjs.js","names":["fn?: renderFnType","fnOrArray?: renderFnOrArrayType","injectBox?: (\n\t\tbox: TemplateResult<1>,\n\t\tidx?: number,\n\t\tisArray?: boolean,\n\t\tisFunc?: boolean\n\t) => TemplateResult<1>","prefix?: string","injectBox?: (box: TemplateResult<1>) => TemplateResult<1>","f?: renderFnType","injectBox?: (\n\t\tbox: TemplateResult<1> | TemplateResult<1>[]\n\t) => TemplateResult<1> | TemplateResult<1>[]","injectBox2?: (\n\t\tbox: TemplateResult<1>,\n\t\tidx?: number,\n\t\tisArray?: boolean,\n\t\tisFunc?: boolean\n\t) => TemplateResult<1>","f?: renderFnOrArrayType","prefix: string","key: keyof typeof allRandomClassName","props?: { fadeBg?: string; zIndex?: number }","children?: renderFnType","strings: TemplateStringsArray","props?: { space?: string | number }","children?: renderFnOrArrayType","props?: FlexProps","children?: renderFnType","children: renderFnType","strings: TemplateStringsArray","children?: renderFnType","props?: { columns?: number; gap?: string | number }","children?: renderFnOrArrayType","props?: { gap?: string | number }","children?: renderFnType","strings: TemplateStringsArray","props?: { span?: number }","children?: renderFnType","strings: TemplateStringsArray","props?: { gap?: string | number }","children?: renderFnType","strings: TemplateStringsArray","props?: { space?: string | number }","children?: renderFnOrArrayType","props?: WaterFlowProps","children?: renderFnType","strings: TemplateStringsArray","props?: {\n\t\tfirstHeight?: string; // 第一个面板固定高度或百分比\n\t\tgap?: string | number;\n\t}","children?: renderFnType","strings: TemplateStringsArray","props?: {\n\t\tfirstWidth?: string; // 第一个面板固定宽度或百分比\n\t\tgap?: string | number;\n\t}","children?: renderFnType","strings: TemplateStringsArray","props?: {\n\t\tdirection?: \"vertical\" | \"horizontal\";\n\t\theight?: string;\n\t\twidth?: string;\n\t\tcustomCss?: string;\n\t\tclassName?: string;\n\t}","children?: renderFnType","strings: TemplateStringsArray","props?: {\n\t\tsidebarWidth?: string; // 侧边栏宽度,比如 \"240px\"\n\t\tsidebarPosition?: \"left\" | \"right\";\n\t\tgap?: string | number;\n\t}","children?: renderFnOrArrayType","props: SwiperProps","slides?: TemplateResult<1>[] | (() => TemplateResult<1>[])","_slides: TemplateResult<1>[]","index: number","scrollOffset: number","distance: number","e: TouchEvent","e: WheelEvent","container: HTMLElement | null","autoplayInterval: ReturnType<typeof setInterval>","cleanupFns: (() => void)[]","props?: AbsoluteBoxProps","children?: renderFnType","props?: AcrylicBarProps","children?: renderFnOrArrayType","children: TemplateResult","props: AspectRatioProps","children?: renderFnOrArrayType","props: {\n\t\tminItemWidth: string;\n\t\tgap?: string | number;\n\t}","children?: renderFnType","strings: TemplateStringsArray","props?: { size?: string; overlap?: string }","children?: renderFnOrArrayType","avatar: TemplateResult","idx?: number","props?: BadgeProps","children?: renderFnType","strings: TemplateStringsArray","props?: CardProps","children?: renderFnOrArrayType","props?: { width?: string; height?: string; background?: string }","children?: renderFnType","strings: TemplateStringsArray","props?: ContainerProps","children?: renderFnOrArrayType","props?: {\n\torientation?: \"horizontal\" | \"vertical\";\n\tthickness?: string;\n\tcolor?: string;\n\tmargin?: string;\n}","props?: FooterLayoutProps","children?: renderFnType","strings: TemplateStringsArray","props: GridBreakpointProps","children?: renderFnType","strings: TemplateStringsArray","props?: {\n\t\tbackgroundImage?: string;\n\t\theight?: string;\n\t\toverlayColor?: string;\n\t}","children?: renderFnOrArrayType","props?: HiddenProps","children?: renderFnType","strings: TemplateStringsArray","props?: {\n\t\tbordered?: boolean;\n\t\tstriped?: boolean;\n\t\thover?: boolean;\n\t\tclassName?: string;\n\t}","children?: renderFnOrArrayType","children: TemplateResult<1>","_idx?: number","isArray?: boolean","_isFunc?: boolean","children: TemplateResult<1> | TemplateResult<1>[]","props?: { background?: string; zIndex?: number; fullScreen?: boolean }","children?: renderFnOrArrayType","props?: { width?: string; height?: string; background?: string }","children?: renderFnType","strings: TemplateStringsArray","props?: { width?: string; height?: string }","props?: {\n\ttype?: \"rect\" | \"circle\";\n\twidth?: string;\n\theight?: string;\n\tborderRadius?: string;\n\tanimation?: boolean;\n\tclassName?: string;\n}","props?: StickyProps","children?: renderFnType","strings: TemplateStringsArray","props?: TableProps","children?: renderFnType","strings: TemplateStringsArray","props?: WrapProps","children?: renderFnOrArrayType","props?: ZStackProps","children?: renderFnOrArrayType"],"sources":["../src/components/core.ts","../src/components/LightboxContainer.ts","../src/components/Column.ts","../src/components/Flex.ts","../src/components/FlowItem.ts","../src/components/Grid.ts","../src/components/GridCol.ts","../src/components/GridItem.ts","../src/components/GridRow.ts","../src/components/Row.ts","../src/components/WaterFlow.ts","../src/components/ColumnSplit.ts","../src/components/RowSplit.ts","../src/components/ScrollBar.ts","../src/components/SideBarContainer.ts","../src/components/Swiper.ts","../src/components/AbsoluteBox.ts","../src/components/AcrylicBar.ts","../src/components/AspectRatio.ts","../src/components/AutoFitGrid.ts","../src/components/AvatarStack.ts","../src/components/Badge.ts","../src/components/Card.ts","../src/components/Center.ts","../src/components/Container.ts","../src/components/Divider.ts","../src/components/FooterLayout.ts","../src/components/GridBreakpoint.ts","../src/components/HeroSection.ts","../src/components/Hidden.ts","../src/components/ListGroup.ts","../src/components/Overlay.ts","../src/components/PositionContainer.ts","../src/components/SizedBox.ts","../src/components/SkeletonLoader.ts","../src/components/Spacer.ts","../src/components/Sticky.ts","../src/components/Table.ts","../src/components/Wrap.ts","../src/components/ZStack.ts"],"sourcesContent":["import { html, TemplateResult } from \"lit\";\n\nexport type renderFnType = TemplateResult<1> | (() => TemplateResult<1>);\n\nexport type renderFnOrArrayType =\n\t| renderFnType\n\t| Array<TemplateResult<1>>\n\t| (() => TemplateResult<1>[]);\n\nexport function renderFn(fn?: renderFnType): TemplateResult<1> {\n\treturn fn ? (typeof fn === \"function\" ? fn() : fn) : html``;\n}\n\nexport type WithHtml<K> = ((children?: K) => TemplateResult<1>) & {\n\thtml: (\n\t\tstrings: TemplateStringsArray,\n\t\t...values: unknown[]\n\t) => TemplateResult<1>;\n};\n\nexport function renderFnOrArray(\n\tfnOrArray?: renderFnOrArrayType,\n\tinjectBox?: (\n\t\tbox: TemplateResult<1>,\n\t\tidx?: number,\n\t\tisArray?: boolean,\n\t\tisFunc?: boolean\n\t) => TemplateResult<1>\n): TemplateResult<1> | TemplateResult<1>[] {\n\tlet _injectBox = injectBox ?? ((box) => box);\n\tif (fnOrArray === undefined) {\n\t\treturn html``;\n\t}\n\tif (Array.isArray(fnOrArray)) {\n\t\treturn fnOrArray.map((htmlTemp, idx) =>\n\t\t\t_injectBox(renderFn(htmlTemp), idx, true, false)\n\t\t);\n\t} else if (typeof fnOrArray !== \"function\") {\n\t\treturn _injectBox(renderFn(fnOrArray), undefined, false, false);\n\t}\n\n\tconst result = fnOrArray();\n\tif (Array.isArray(result)) {\n\t\treturn result.map((htmlTemp, idx) =>\n\t\t\t_injectBox(renderFn(htmlTemp), idx, true, false)\n\t\t);\n\t} else {\n\t\treturn _injectBox(renderFn(result), undefined, false, true);\n\t}\n}\n\nexport function randomClassName(prefix?: string): string {\n\tconst random = Math.random().toString(36).substring(2, 15);\n\treturn prefix ? `lyco-${prefix}-${random}` : `lyco-${random}`;\n}\n\nexport function renderFnOrCurry(\n\tfn?: renderFnType,\n\tinjectBox?: (box: TemplateResult<1>) => TemplateResult<1>\n): TemplateResult<1> | ((fn?: renderFnType) => TemplateResult<1>) {\n\tconst _injectBox = injectBox ?? ((box) => box);\n\tconst curriedFn = (f?: renderFnType) => _injectBox(renderFn(f!));\n\n\treturn fn ? curriedFn(fn) : curriedFn;\n}\n\nexport function renderFnOrArrayOrCurry(\n\tfnOrArray?: renderFnOrArrayType,\n\tinjectBox?: (\n\t\tbox: TemplateResult<1> | TemplateResult<1>[]\n\t) => TemplateResult<1> | TemplateResult<1>[],\n\tinjectBox2?: (\n\t\tbox: TemplateResult<1>,\n\t\tidx?: number,\n\t\tisArray?: boolean,\n\t\tisFunc?: boolean\n\t) => TemplateResult<1>\n):\n\t| TemplateResult<1>\n\t| TemplateResult<1>[]\n\t| ((\n\t\t\tfnOrArray?: renderFnOrArrayType\n\t ) => TemplateResult<1> | TemplateResult<1>[]) {\n\tconst _injectBox = injectBox ?? ((box) => box);\n\tconst curriedFn = (f?: renderFnOrArrayType) =>\n\t\t_injectBox(renderFnOrArray(f, injectBox2)!);\n\n\treturn fnOrArray ? curriedFn(fnOrArray) : curriedFn;\n}\n\nconst withInit = (prefix: string) => ({\n\tinit: false,\n\tprefix,\n\tclassName: \"___LYCO_NULL___\",\n});\n\nconst allRandomClassName = {\n\t\"GridBreakpoint::grid-breakpoint\": withInit(\"grid-breakpoint\"),\n\t\"Hidden::hidden-container\": withInit(\"hidden-container\"),\n\t\"ListGroup::list-group\": withInit(\"list-group\"),\n\t\"ScrollBar::scrollbar-container\": withInit(\"scrollbar-container\"),\n\t\"SkeletonLoader::skeleton-shimmer\": withInit(\"skeleton-shimmer\"),\n\t\"Swiper::swiper\": withInit(\"swiper\"),\n\t\"Table::table\": withInit(\"table\"),\n\t\"WaterFlow::waterflow\": withInit(\"waterflow\"),\n\t\"AutoFitGrid::auto-fit-grid\": withInit(\"auto-fit-grid\"),\n\t\"GridCol::grid-col\": withInit(\"grid-col\"),\n\t\"GridRow::grid-row\": withInit(\"grid-row\"),\n};\n\nexport function getRandomClassName(key: keyof typeof allRandomClassName) {\n\tconst r = allRandomClassName[key];\n\tif (!r.init) {\n\t\tallRandomClassName[key].init = true;\n\t\tallRandomClassName[key].className = randomClassName(r.prefix);\n\t}\n\treturn allRandomClassName[key].className === \"___LYCO_NULL___\"\n\t\t? randomClassName(r.prefix)\n\t\t: allRandomClassName[key].className;\n}\n","import { html, TemplateResult } from \"lit\";\nimport { renderFn, renderFnType, WithHtml } from \"./core\";\n\nexport function LightboxContainer(props?: {\n\tfadeBg?: string;\n\tzIndex?: number;\n}): WithHtml<renderFnType>;\n\nexport function LightboxContainer(\n\tprops?: { fadeBg?: string; zIndex?: number },\n\tchildren?: renderFnType\n): TemplateResult<1>;\n\nexport function LightboxContainer(\n\tprops?: { fadeBg?: string; zIndex?: number },\n\tchildren?: renderFnType\n): TemplateResult<1> | WithHtml<renderFnType> {\n\tif (children === undefined) {\n\t\tconst _ = (children?: renderFnType) =>\n\t\t\tLightboxContainer(props, children ?? html``);\n\t\t_.html = (strings: TemplateStringsArray, ...values: unknown[]) =>\n\t\t\tLightboxContainer(props, html(strings, ...values));\n\t\treturn _;\n\t}\n\tconst bg = props?.fadeBg ?? \"rgba(0,0,0,0.7)\";\n\tconst z = props?.zIndex ?? 2000;\n\treturn html`\n\t\t<div\n\t\t\tstyle=\"\n position: fixed;\n top: 0; left: 0; right: 0; bottom: 0;\n background: ${bg};\n z-index: ${z};\n display: flex;\n justify-content: center;\n align-items: center;\n \"\n\t\t>\n\t\t\t${renderFn(children)}\n\t\t</div>\n\t`;\n}\n","import { html, TemplateResult } from \"lit\";\nimport { renderFnOrArray, renderFnOrArrayType } from \"./core\";\n\nexport function Column(props?: {\n\tspace?: string | number;\n}): (children?: renderFnOrArrayType) => TemplateResult<1>;\n\nexport function Column(\n\tprops?: { space?: string | number },\n\tchildren?: renderFnOrArrayType\n): TemplateResult<1>;\n\nexport function Column(\n\tprops?: { space?: string | number },\n\tchildren?: renderFnOrArrayType\n): TemplateResult<1> | ((children?: renderFnOrArrayType) => TemplateResult<1>) {\n\tif (children === undefined) {\n\t\treturn (children) => Column(props, children ?? [html``]);\n\t}\n\treturn html`\n\t\t<div\n\t\t\tstyle=\"\n display: flex;\n flex-direction: column;\n ${props?.space ? `gap: ${props.space};` : \"\"}\n \"\n\t\t>\n\t\t\t${renderFnOrArray(children)}\n\t\t</div>\n\t`;\n}\n","import { html, TemplateResult } from \"lit\";\nimport { renderFn, renderFnType, WithHtml } from \"./core\";\ninterface FlexProps {\n\tdirection?: \"row\" | \"column\";\n\tjustify?: string;\n\talign?: string;\n\tgap?: string | number;\n}\n\nexport function Flex(props?: FlexProps): WithHtml<renderFnType>;\n\nexport function Flex(\n\tprops?: FlexProps,\n\tchildren?: renderFnType\n): TemplateResult<1>;\n\nexport function Flex(props?: FlexProps, children?: renderFnType) {\n\tif (children === undefined) {\n\t\tconst _ = (children: renderFnType) => Flex(props, children ?? html``);\n\t\t_.html = (strings: TemplateStringsArray, ...values: unknown[]) =>\n\t\t\tFlex(props, html(strings, ...values));\n\t\treturn _;\n\t}\n\tconst dir = props?.direction ?? \"row\";\n\treturn html`\n\t\t<div\n\t\t\tstyle=\"\n display: flex;\n flex-direction: ${dir};\n ${props?.justify ? `justify-content: ${props.justify};` : \"\"}\n ${props?.align ? `align-items: ${props.align};` : \"\"}\n ${props?.gap ? `gap: ${props.gap};` : \"\"}\n \"\n\t\t>\n\t\t\t${renderFn(children)}\n\t\t</div>\n\t`;\n}\n","import { html } from \"lit\";\nimport { renderFn, renderFnType } from \"./core\";\n\nexport function FlowItem(children?: renderFnType) {\n\treturn html`\n\t\t<div style=\"break-inside: avoid; margin-bottom: 16px;\">\n\t\t\t${renderFn(children)}\n\t\t</div>\n\t`;\n}\n","import { html, TemplateResult } from \"lit\";\nimport { renderFnOrArray, renderFnOrArrayType } from \"./core\";\n\nexport function Grid(props?: {\n\tcolumns?: number;\n\tgap?: string | number;\n}): (children?: renderFnOrArrayType) => TemplateResult<1>;\n\nexport function Grid(\n\tprops?: { columns?: number; gap?: string | number },\n\tchildren?: renderFnOrArrayType\n): TemplateResult<1>;\n\nexport function Grid(\n\tprops?: { columns?: number; gap?: string | number },\n\tchildren?: renderFnOrArrayType\n): TemplateResult<1> | ((children?: renderFnOrArrayType) => TemplateResult<1>) {\n\tif (children === undefined) {\n\t\treturn (children) => Grid(props, children ?? [html``]);\n\t}\n\n\tconst cols = props?.columns ?? 1;\n\treturn html`\n\t\t<div\n\t\t\tstyle=\"\n display: grid;\n grid-template-columns: repeat(${cols}, 1fr);\n ${props?.gap ? `gap: ${props.gap};` : \"\"}\n \"\n\t\t>\n\t\t\t${renderFnOrArray(children)}\n\t\t</div>\n\t`;\n}\n","import { html, TemplateResult } from \"lit\";\nimport { getRandomClassName, renderFn, renderFnType, WithHtml } from \"./core\";\n\nexport function GridCol(props?: {\n\tgap?: string | number;\n}): WithHtml<renderFnType>;\n\nexport function GridCol(\n\tprops?: { gap?: string | number },\n\tchildren?: renderFnType\n): TemplateResult<1>;\n\nexport function GridCol(\n\tprops?: { gap?: string | number },\n\tchildren?: renderFnType\n) {\n\tif (children === undefined) {\n\t\tconst _ = (children?: renderFnType) => GridCol(props, children ?? html``);\n\t\t_.html = (strings: TemplateStringsArray, ...values: unknown[]) =>\n\t\t\tGridCol(props, html(strings, ...values));\n\t\treturn _;\n\t}\n\n\tconst _className = getRandomClassName(\"GridCol::grid-col\"); // 生成随机类名\n\tconst gapStyle = props?.gap ? `column-gap: ${props.gap};` : \"\";\n\tconst css = `\n .${_className} {\n display: grid;\n grid-auto-flow: column;\n ${gapStyle}\n }\n `;\n\treturn html`\n\t\t<style>\n\t\t\t${css}\n\t\t</style>\n\t\t<div class=\"${_className}\">${renderFn(children)}</div>\n\t`;\n}\n","import { html, TemplateResult } from \"lit\";\nimport { renderFn, renderFnType, WithHtml } from \"./core\";\n\nexport function GridItem(props?: { span?: number }): WithHtml<renderFnType>;\n\nexport function GridItem(\n\tprops?: { span?: number },\n\tchildren?: renderFnType\n): TemplateResult<1>;\n\nexport function GridItem(\n\tprops?: { span?: number },\n\tchildren?: renderFnType\n): TemplateResult<1> | WithHtml<renderFnType> {\n\tif (children === undefined) {\n\t\tconst _ = (children?: renderFnType) => GridItem(props, children ?? html``);\n\t\t_.html = (strings: TemplateStringsArray, ...values: unknown[]) =>\n\t\t\tGridItem(props, html(strings, ...values));\n\t\treturn _;\n\t}\n\treturn html`\n\t\t<div style=\"${props?.span ? `grid-column: span ${props.span};` : \"\"}\">\n\t\t\t${renderFn(children)}\n\t\t</div>\n\t`;\n}\n","import { html, TemplateResult } from \"lit\";\nimport { getRandomClassName, renderFn, renderFnType, WithHtml } from \"./core\";\n\nexport function GridRow(props?: {\n\tgap?: string | number;\n}): WithHtml<renderFnType>;\n\nexport function GridRow(\n\tprops?: { gap?: string | number },\n\tchildren?: renderFnType\n): TemplateResult<1>;\n\nexport function GridRow(\n\tprops?: { gap?: string | number },\n\tchildren?: renderFnType\n) {\n\tif (children === undefined) {\n\t\tconst _ = (children?: renderFnType) => GridRow(props, children ?? html``);\n\t\t_.html = (strings: TemplateStringsArray, ...values: unknown[]) =>\n\t\t\tGridRow(props, html(strings, ...values));\n\t\treturn _;\n\t}\n\n\tconst _className = getRandomClassName(\"GridRow::grid-row\"); // 生成随机类名\n\tconst gapStyle = props?.gap ? `row-gap: ${props.gap};` : \"\";\n\tconst css = `\n .${_className} {\n display: grid;\n grid-auto-flow: row;\n ${gapStyle}\n }\n `;\n\treturn html`\n\t\t<style>\n\t\t\t${css}\n\t\t</style>\n\t\t<div class=\"${_className}\">${renderFn(children)}</div>\n\t`;\n}\n","import { html, TemplateResult } from \"lit\";\nimport { renderFnOrArray, renderFnOrArrayType } from \"./core\";\n\nexport function Row(props?: {\n\tspace?: string | number;\n}): (children?: renderFnOrArrayType) => TemplateResult<1>;\n\nexport function Row(\n\tprops?: { space?: string | number },\n\tchildren?: renderFnOrArrayType\n): TemplateResult<1>;\n\nexport function Row(\n\tprops?: { space?: string | number },\n\tchildren?: renderFnOrArrayType\n): TemplateResult<1> | ((children?: renderFnOrArrayType) => TemplateResult<1>) {\n\tif (children === undefined) {\n\t\treturn (children?: renderFnOrArrayType) => Row(props, children ?? [html``]);\n\t}\n\treturn html`\n\t\t<div\n\t\t\tstyle=\"\n display: flex;\n flex-direction: row;\n ${props?.space ? `gap: ${props.space};` : \"\"}\n \"\n\t\t>\n\t\t\t${renderFnOrArray(children)}\n\t\t</div>\n\t`;\n}\n","import { html, TemplateResult } from \"lit\";\nimport { getRandomClassName, renderFn, renderFnType, WithHtml } from \"./core\";\n\nexport interface WaterFlowProps {\n\tcolumnCount?: number;\n\tgap?: string | number;\n}\n\nexport function WaterFlow(props?: WaterFlowProps): WithHtml<renderFnType>;\n\nexport function WaterFlow(\n\tprops?: WaterFlowProps,\n\tchildren?: renderFnType\n): TemplateResult<1>;\n\nexport function WaterFlow(\n\tprops?: WaterFlowProps,\n\tchildren?: renderFnType\n): TemplateResult<1> | WithHtml<renderFnType> {\n\t// 如果只传了 props,不传 children,则返回一个接收 children 的函数\n\tif (children === undefined) {\n\t\tconst _ = (children?: renderFnType) =>\n\t\t\tWaterFlow(props, children ?? html``) as TemplateResult<1>;\n\t\t_.html = (strings: TemplateStringsArray, ...values: unknown[]) =>\n\t\t\tWaterFlow(props, html(strings, ...values)) as TemplateResult<1>;\n\t\treturn _;\n\t}\n\n\t// 解构 props,并设置默认值\n\tconst count = props?.columnCount ?? 3;\n\tconst gapValue = props?.gap ?? \"16px\";\n\n\t// 生成一个随机 className,方便后续扩展样式或避免样式冲突\n\tconst _className = getRandomClassName(\"WaterFlow::waterflow\");\n\n\treturn html`\n\t\t<style>\n\t\t\t/* 使用 CSS 类来控制多列布局 */\n\t\t\t.${_className} {\n\t\t\t\tcolumn-count: ${count};\n\t\t\t\tcolumn-gap: ${typeof gapValue === \"number\"\n\t\t\t\t\t? `${gapValue}px`\n\t\t\t\t\t: gapValue};\n\t\t\t}\n\t\t\t/* 子元素如果是块级元素,需要让它们适应多列流式布局 */\n\t\t\t.${_className} > * {\n\t\t\t\tdisplay: inline-block;\n\t\t\t\twidth: 100%;\n\t\t\t}\n\t\t</style>\n\n\t\t<div class=\"${_className}\">${renderFn(children)}</div>\n\t`;\n}\n\nWaterFlow().html`\n<div>\n <div>1</div>\n <div>2</div>\n <div>3</div>\n <div>4</div>\n <div>5</div>\n <div>6</div>\n <div>7</div>\n <div>8</div>\n <div>9</div>\n <div>10</div>\n</div>\n`;\n","import { html, TemplateResult } from \"lit\";\nimport { renderFn, renderFnType, WithHtml } from \"./core\";\n\nexport function ColumnSplit(props?: {\n\tfirstHeight?: string; // 第一个面板固定高度或百分比\n\tgap?: string | number;\n}): WithHtml<renderFnType>;\n\nexport function ColumnSplit(\n\tprops?: {\n\t\tfirstHeight?: string; // 第个面板固定高度或百分比\n\t\tgap?: string | number;\n\t},\n\tchildren?: renderFnType\n): TemplateResult<1>;\n\nexport function ColumnSplit(\n\tprops?: {\n\t\tfirstHeight?: string; // 第一个面板固定高度或百分比\n\t\tgap?: string | number;\n\t},\n\tchildren?: renderFnType\n): TemplateResult<1> | WithHtml<renderFnType> {\n\tif (children === undefined) {\n\t\tconst _ = (children?: renderFnType) =>\n\t\t\tColumnSplit(props, children ?? html``);\n\t\t_.html = (strings: TemplateStringsArray, ...values: unknown[]) =>\n\t\t\tColumnSplit(props, html(strings, ...values));\n\t\treturn _;\n\t}\n\tconst gap = props?.gap ?? \"0px\";\n\tconst firstH = props?.firstHeight ?? \"50%\";\n\n\tlet topNode = html``;\n\tlet bottomNode = html``;\n\n\tif (typeof children === \"function\") {\n\t\t// @ts-ignore\n\t\tconst arr = (children as any).call?.(null) ?? [];\n\t\ttopNode = arr[0] ?? html``;\n\t\tbottomNode = arr[1] ?? html``;\n\t} else {\n\t\ttopNode = renderFn(children) as any;\n\t}\n\n\treturn html`\n\t\t<div\n\t\t\tstyle=\"\n display: flex;\n flex-direction: column;\n width: 100%;\n height: 100%;\n gap: ${gap};\n \"\n\t\t>\n\t\t\t<div style=\"flex: 0 0 ${firstH}; overflow: auto;\">${topNode}</div>\n\t\t\t<div style=\"flex: 1 1 auto; overflow: auto;\">${bottomNode}</div>\n\t\t</div>\n\t`;\n}\n","import { html, TemplateResult } from \"lit\";\nimport { renderFn, renderFnType, WithHtml } from \"./core\";\n\nexport function RowSplit(props?: {\n\tfirstWidth?: string; // 第一个面板固定宽度或百分比\n\tgap?: string | number;\n}): WithHtml<renderFnType>;\n\nexport function RowSplit(\n\tprops?: {\n\t\tfirstWidth?: string; // 第一个面板固定宽度或百分比\n\t\tgap?: string | number;\n\t},\n\tchildren?: renderFnType\n): TemplateResult<1>;\n\nexport function RowSplit(\n\tprops?: {\n\t\tfirstWidth?: string; // 第一个面板固定宽度或百分比\n\t\tgap?: string | number;\n\t},\n\tchildren?: renderFnType\n): TemplateResult<1> | WithHtml<renderFnType> {\n\tif (children === undefined) {\n\t\tconst _ = (children?: renderFnType) => RowSplit(props, children ?? html``);\n\t\t_.html = (strings: TemplateStringsArray, ...values: unknown[]) =>\n\t\t\tRowSplit(props, html(strings, ...values));\n\t\treturn _;\n\t}\n\tconst gap = props?.gap ?? \"0px\";\n\tconst firstW = props?.firstWidth ?? \"50%\";\n\n\tlet leftNode = html``;\n\tlet rightNode = html``;\n\n\tif (typeof children === \"function\") {\n\t\t// @ts-ignore\n\t\tconst arr = (children as any).call?.(null) ?? [];\n\t\tleftNode = arr[0] ?? html``;\n\t\trightNode = arr[1] ?? html``;\n\t} else {\n\t\tleftNode = renderFn(children) as any;\n\t}\n\n\treturn html`\n\t\t<div\n\t\t\tstyle=\"\n display: flex;\n flex-direction: row;\n width: 100%;\n height: 100%;\n gap: ${gap};\n \"\n\t\t>\n\t\t\t<div style=\"flex: 0 0 ${firstW}; overflow: auto;\">${leftNode}</div>\n\t\t\t<div style=\"flex: 1 1 auto; overflow: auto;\">${rightNode}</div>\n\t\t</div>\n\t`;\n}\n","import { html, TemplateResult } from \"lit\";\nimport { getRandomClassName, renderFn, renderFnType, WithHtml } from \"./core\";\n\nexport function ScrollBar(props?: {\n\tdirection?: \"vertical\" | \"horizontal\";\n\theight?: string;\n\twidth?: string;\n\tcustomCss?: string;\n\tclassName?: string;\n}): WithHtml<renderFnType>;\n\nexport function ScrollBar(\n\tprops?: {\n\t\tdirection?: \"vertical\" | \"horizontal\";\n\t\theight?: string;\n\t\twidth?: string;\n\t\tcustomCss?: string;\n\t\tclassName?: string;\n\t},\n\tchildren?: renderFnType\n): TemplateResult<1>;\n\nexport function ScrollBar(\n\tprops?: {\n\t\tdirection?: \"vertical\" | \"horizontal\";\n\t\theight?: string;\n\t\twidth?: string;\n\t\tcustomCss?: string;\n\t\tclassName?: string;\n\t},\n\tchildren?: renderFnType\n): TemplateResult<1> | WithHtml<renderFnType> {\n\tif (children === undefined) {\n\t\tconst _ = (children?: renderFnType) => ScrollBar(props, children ?? html``);\n\t\t_.html = (strings: TemplateStringsArray, ...values: unknown[]) =>\n\t\t\tScrollBar(props, html(strings, ...values));\n\t\treturn _;\n\t}\n\tconst dir = props?.direction ?? \"vertical\";\n\tconst h = props?.height ?? \"100%\";\n\tconst w = props?.width ?? \"100%\";\n\tconst extraCss = props?.customCss ?? \"\";\n\tconst _className =\n\t\tprops?.className ?? getRandomClassName(\"ScrollBar::scrollbar-container\");\n\tconst overflowStyle =\n\t\tdir === \"horizontal\"\n\t\t\t? \"overflow-x: auto; overflow-y: hidden\"\n\t\t\t: \"overflow-y: auto; overflow-x: hidden\";\n\n\treturn html`\n\t\t<style>\n\t\t\t.${_className} {\n\t\t\t ${overflowStyle};\n\t\t\t width: ${w};\n\t\t\t height: ${h};\n\t\t\t}\n\t\t\t.${_className}::-webkit-scrollbar {\n\t\t\t width: 8px;\n\t\t\t height: 8px;\n\t\t\t}\n\t\t\t.${_className}::-webkit-scrollbar-thumb {\n\t\t\t background-color: rgba(0, 0, 0, 0.2);\n\t\t\t border-radius: 4px;\n\t\t\t}\n\t\t\t.${_className}::-webkit-scrollbar-track {\n\t\t\t background: rgba(0, 0, 0, 0.05);\n\t\t\t}\n\t\t\t${extraCss}\n\t\t</style>\n\t\t<div class=\"${_className}\">${renderFn(children)}</div>\n\t`;\n}\n","import { html, TemplateResult } from \"lit\";\nimport { renderFnOrArray, renderFnOrArrayType } from \"./core\";\n\nexport function SideBarContainer(props?: {\n\tsidebarWidth?: string; // 侧边栏宽度,比如 \"240px\"\n\tsidebarPosition?: \"left\" | \"right\";\n\tgap?: string | number;\n}): (children?: renderFnOrArrayType) => TemplateResult<1>;\n\nexport function SideBarContainer(\n\tprops?: {\n\t\tsidebarWidth?: string; // 侧边栏宽度,比如 \"240px\"\n\t\tsidebarPosition?: \"left\" | \"right\";\n\t\tgap?: string | number;\n\t},\n\tchildren?: renderFnOrArrayType\n): TemplateResult<1>;\n\nexport function SideBarContainer(\n\tprops?: {\n\t\tsidebarWidth?: string; // 侧边栏宽度,比如 \"240px\"\n\t\tsidebarPosition?: \"left\" | \"right\";\n\t\tgap?: string | number;\n\t},\n\tchildren?: renderFnOrArrayType\n): TemplateResult<1> | ((children?: renderFnOrArrayType) => TemplateResult<1>) {\n\tif (children === undefined) {\n\t\treturn (children?: renderFnOrArrayType) =>\n\t\t\tSideBarContainer(props, children ?? [html``]);\n\t}\n\tconst width = props?.sidebarWidth ?? \"240px\";\n\tconst pos = props?.sidebarPosition ?? \"left\";\n\tconst gap = props?.gap ?? \"0px\";\n\n\tlet sidebarContent = html``;\n\tlet mainContent = html``;\n\n\tif (typeof children === \"function\") {\n\t\t// @ts-ignore\n\t\tconst arr = (children as any).call?.(null) ?? [];\n\t\tsidebarContent = arr[0] ?? html``;\n\t\tmainContent = arr[1] ?? html``;\n\t} else {\n\t\tmainContent = renderFnOrArray(children) as any;\n\t}\n\n\treturn html`\n\t\t<div\n\t\t\tstyle=\"\n display: flex;\n flex-direction: ${pos === \"left\" ? \"row\" : \"row-reverse\"};\n width: 100%;\n height: 100%;\n gap: ${gap};\n \"\n\t\t>\n\t\t\t<div style=\"flex: 0 0 ${width}; overflow: auto;\">${sidebarContent}</div>\n\t\t\t<div style=\"flex: 1 1 auto; overflow: auto;\">${mainContent}</div>\n\t\t</div>\n\t`;\n}\n","import { html, TemplateResult } from \"lit\";\nimport { getRandomClassName } from \"./core\";\n\ntype ScrollDirection = \"x\" | \"y\" | \"both\";\ntype ScrollBehavior = \"auto\" | \"smooth\";\ntype Alignment = \"start\" | \"center\" | \"end\" | \"none\";\ntype NavigationButtonPosition = \"inside\" | \"outside\" | \"none\";\ntype PaginationType = \"dots\" | \"bullets\" | \"fraction\" | \"progressbar\" | \"none\";\n\nexport interface SwiperProps {\n\tgap?: string | number;\n\tsnapType?: \"mandatory\" | \"proximity\";\n\theight?: string;\n\twidth?: string;\n\tclassName?: string;\n\tdirection?: ScrollDirection;\n\tscrollBehavior?: ScrollBehavior;\n\talign?: Alignment;\n\tshowNavigation?: boolean;\n\tnavigationPosition?: NavigationButtonPosition;\n\tshowPagination?: boolean;\n\tpaginationType?: PaginationType;\n\tautoPlay?: boolean;\n\tinterval?: number;\n\tloop?: boolean;\n\ttouchEnabled?: boolean;\n\tmouseWheel?: boolean;\n\tonSlideChange?: (index: number) => void;\n}\n\n// 支持柯里化调用\nexport function Swiper(\n\tprops?: SwiperProps\n): (\n\tslides?: TemplateResult<1>[] | (() => TemplateResult<1>[])\n) => TemplateResult<1>;\n\nexport function Swiper(\n\tprops?: SwiperProps,\n\tslides?: TemplateResult<1>[] | (() => TemplateResult<1>[])\n): TemplateResult<1>;\n\nexport function Swiper(\n\tprops: SwiperProps = {},\n\tslides?: TemplateResult<1>[] | (() => TemplateResult<1>[])\n):\n\t| ((\n\t\t\tslides?: TemplateResult<1>[] | (() => TemplateResult<1>[])\n\t ) => TemplateResult<1>)\n\t| TemplateResult {\n\t// 如果没有传 slides,就返回一个“部分应用”的函数\n\tif (slides === undefined) {\n\t\treturn (slides?: TemplateResult<1>[] | (() => TemplateResult<1>[])) =>\n\t\t\tSwiper(props, slides ?? [html``]);\n\t}\n\n\t// 解构 props,并设置默认值\n\tconst {\n\t\tgap = \"8px\",\n\t\tsnapType = \"mandatory\",\n\t\theight = \"auto\",\n\t\twidth = \"100%\",\n\t\tclassName = getRandomClassName(\"Swiper::swiper\"),\n\t\tdirection = \"x\",\n\t\tscrollBehavior = \"smooth\",\n\t\talign = \"start\",\n\t\tshowNavigation = true,\n\t\tnavigationPosition = \"inside\",\n\t\tshowPagination = true,\n\t\tpaginationType = \"dots\",\n\t\tautoPlay = false,\n\t\tinterval = 3000,\n\t\tloop = false,\n\t\ttouchEnabled = true,\n\t\tmouseWheel = false,\n\t\tonSlideChange,\n\t} = props;\n\n\tconst _className = className;\n\tconst _containerClassName = _className + \"-container\";\n\tconst _slideClassName = _className + \"-slide\";\n\tconst _navigationClassName = _className + \"-navigation\";\n\tconst _paginationClassName = _className + \"-pagination\";\n\n\t// 将 slides 规范成数组\n\tlet _slides: TemplateResult<1>[];\n\tif (!slides) _slides = [];\n\telse if (typeof slides === \"function\") _slides = slides();\n\telse _slides = slides;\n\n\tconst slideCount = _slides.length;\n\n\t// 内部状态:当前索引\n\tconst [currentSlide, setCurrentSlide] = (() => {\n\t\tconst state = { value: 0 };\n\t\treturn [\n\t\t\t() => state.value,\n\t\t\t(index: number) => {\n\t\t\t\tconst newIndex = Math.max(0, Math.min(index, slideCount - 1));\n\t\t\t\tif (state.value !== newIndex) {\n\t\t\t\t\tstate.value = newIndex;\n\t\t\t\t\tonSlideChange?.(newIndex);\n\t\t\t\t}\n\t\t\t},\n\t\t];\n\t})();\n\n\t// 滚动到指定 slide\n\tconst scrollToSlide = (index: number) => {\n\t\tconst container =\n\t\t\ttypeof document !== \"undefined\"\n\t\t\t\t? (document.querySelector(\n\t\t\t\t\t\t`.${_containerClassName}`\n\t\t\t\t ) as HTMLElement | null)\n\t\t\t\t: null;\n\t\tif (!container) return;\n\n\t\tconst slides = container.querySelectorAll(`.${_slideClassName}`);\n\t\tif (index < 0 || index >= slides.length) return;\n\n\t\tconst slide = slides[index] as HTMLElement;\n\t\tconst slideRect = slide.getBoundingClientRect();\n\t\tconst containerRect = container.getBoundingClientRect();\n\n\t\tlet scrollOffset: number;\n\t\tif (direction === \"x\") {\n\t\t\tscrollOffset = slide.offsetLeft - container.offsetLeft;\n\t\t\tif (align === \"center\") {\n\t\t\t\tscrollOffset -= (containerRect.width - slideRect.width) / 2;\n\t\t\t} else if (align === \"end\") {\n\t\t\t\tscrollOffset -= containerRect.width - slideRect.width;\n\t\t\t}\n\t\t\tcontainer.scrollTo({ left: scrollOffset, behavior: scrollBehavior });\n\t\t} else {\n\t\t\tscrollOffset = slide.offsetTop - container.offsetTop;\n\t\t\tif (align === \"center\") {\n\t\t\t\tscrollOffset -= (containerRect.height - slideRect.height) / 2;\n\t\t\t} else if (align === \"end\") {\n\t\t\t\tscrollOffset -= containerRect.height - slideRect.height;\n\t\t\t}\n\t\t\tcontainer.scrollTo({ top: scrollOffset, behavior: scrollBehavior });\n\t\t}\n\n\t\tsetCurrentSlide(index);\n\t};\n\n\t// 下一页/上一页\n\tconst nextSlide = () => {\n\t\tconst nextIndex =\n\t\t\tcurrentSlide() + 1 >= slideCount\n\t\t\t\t? loop\n\t\t\t\t\t? 0\n\t\t\t\t\t: currentSlide()\n\t\t\t\t: currentSlide() + 1;\n\t\tscrollToSlide(nextIndex);\n\t};\n\tconst prevSlide = () => {\n\t\tconst prevIndex =\n\t\t\tcurrentSlide() - 1 < 0\n\t\t\t\t? loop\n\t\t\t\t\t? slideCount - 1\n\t\t\t\t\t: currentSlide()\n\t\t\t\t: currentSlide() - 1;\n\t\tscrollToSlide(prevIndex);\n\t};\n\n\t// 监听滚动:找出最接近中心的 slide\n\tconst handleScroll = () => {\n\t\tconst container =\n\t\t\ttypeof document !== \"undefined\"\n\t\t\t\t? (document.querySelector(\n\t\t\t\t\t\t`.${_containerClassName}`\n\t\t\t\t ) as HTMLElement | null)\n\t\t\t\t: null;\n\t\tif (!container) return;\n\n\t\tconst slides = container.querySelectorAll(`.${_slideClassName}`);\n\t\tlet closestIndex = 0;\n\t\tlet minDistance = Infinity;\n\n\t\tslides.forEach((slide, index) => {\n\t\t\tconst slideRect = slide.getBoundingClientRect();\n\t\t\tconst containerRect = container.getBoundingClientRect();\n\n\t\t\tlet distance: number;\n\t\t\tif (direction === \"x\") {\n\t\t\t\tconst centerOffset =\n\t\t\t\t\tslideRect.left +\n\t\t\t\t\tslideRect.width / 2 -\n\t\t\t\t\t(containerRect.left + containerRect.width / 2);\n\t\t\t\tdistance = Math.abs(centerOffset);\n\t\t\t} else {\n\t\t\t\tconst centerOffset =\n\t\t\t\t\tslideRect.top +\n\t\t\t\t\tslideRect.height / 2 -\n\t\t\t\t\t(containerRect.top + containerRect.height / 2);\n\t\t\t\tdistance = Math.abs(centerOffset);\n\t\t\t}\n\n\t\t\tif (distance < minDistance) {\n\t\t\t\tminDistance = distance;\n\t\t\t\tclosestIndex = index;\n\t\t\t}\n\t\t});\n\n\t\tsetCurrentSlide(closestIndex);\n\t};\n\n\t// Touch 事件\n\tconst handleTouchStart = (e: TouchEvent) => {\n\t\tif (!touchEnabled) return;\n\t\tconst touch = e.touches[0];\n\t\tconst container = e.currentTarget as HTMLElement;\n\t\tcontainer.dataset.touchStartX = touch.clientX.toString();\n\t\tcontainer.dataset.touchStartY = touch.clientY.toString();\n\t};\n\n\tconst handleTouchMove = (e: TouchEvent) => {\n\t\tif (!touchEnabled) return;\n\t\tconst touch = e.touches[0];\n\t\tconst container = e.currentTarget as HTMLElement;\n\t\tconst startX = parseFloat(container.dataset.touchStartX || \"0\");\n\t\tconst startY = parseFloat(container.dataset.touchStartY || \"0\");\n\t\tconst diffX = touch.clientX - startX;\n\t\tconst diffY = touch.clientY - startY;\n\n\t\tif (Math.abs(diffX) > Math.abs(diffY) || direction === \"x\") {\n\t\t\te.preventDefault();\n\t\t}\n\t};\n\n\tconst handleTouchEnd = (e: TouchEvent) => {\n\t\tif (!touchEnabled) return;\n\t\tconst container = e.currentTarget as HTMLElement;\n\t\tconst startX = parseFloat(container.dataset.touchStartX || \"0\");\n\t\tconst startY = parseFloat(container.dataset.touchStartY || \"0\");\n\t\tif (!startX && !startY) return;\n\n\t\tconst touch = e.changedTouches[0];\n\t\tconst diffX = touch.clientX - startX;\n\t\tconst diffY = touch.clientY - startY;\n\n\t\tconst isSwipe = Math.max(Math.abs(diffX), Math.abs(diffY)) > 30;\n\t\tif (isSwipe) {\n\t\t\tif (direction === \"x\") {\n\t\t\t\tdiffX > 0 ? prevSlide() : nextSlide();\n\t\t\t} else {\n\t\t\t\tdiffY > 0 ? prevSlide() : nextSlide();\n\t\t\t}\n\t\t}\n\n\t\tdelete container.dataset.touchStartX;\n\t\tdelete container.dataset.touchStartY;\n\t};\n\n\t// 鼠标滚轮\n\tconst handleWheel = (e: WheelEvent) => {\n\t\tif (!mouseWheel) return;\n\t\te.preventDefault();\n\t\te.deltaY > 0 ? nextSlide() : prevSlide();\n\t};\n\n\t// 自动播放\n\tconst setupAutoPlay = (container: HTMLElement | null) => {\n\t\tif (!autoPlay || !container) return;\n\n\t\tlet autoplayInterval: ReturnType<typeof setInterval>;\n\n\t\tconst startAutoPlay = () => {\n\t\t\tautoplayInterval = setInterval(nextSlide, interval);\n\t\t};\n\t\tconst stopAutoPlay = () => {\n\t\t\tclearInterval(autoplayInterval);\n\t\t};\n\n\t\tcontainer.addEventListener(\"mouseenter\", stopAutoPlay);\n\t\tcontainer.addEventListener(\"mouseleave\", startAutoPlay);\n\n\t\tstartAutoPlay();\n\n\t\treturn () => {\n\t\t\tclearInterval(autoplayInterval);\n\t\t\tcontainer.removeEventListener(\"mouseenter\", stopAutoPlay);\n\t\t\tcontainer.removeEventListener(\"mouseleave\", startAutoPlay);\n\t\t};\n\t};\n\n\t// 只在客户端执行副作用:绑定各类事件、启动自动播放、初始化滚动\n\tconst runSideEffects = () => {\n\t\tconst container =\n\t\t\ttypeof document !== \"undefined\"\n\t\t\t\t? (document.querySelector(\n\t\t\t\t\t\t`.${_containerClassName}`\n\t\t\t\t ) as HTMLElement | null)\n\t\t\t\t: null;\n\t\tif (!container) return;\n\n\t\tconst cleanupFns: (() => void)[] = [];\n\n\t\tcontainer.addEventListener(\"scroll\", handleScroll);\n\t\tcleanupFns.push(() =>\n\t\t\tcontainer.removeEventListener(\"scroll\", handleScroll)\n\t\t);\n\n\t\tif (touchEnabled) {\n\t\t\tcontainer.addEventListener(\"touchstart\", handleTouchStart);\n\t\t\tcontainer.addEventListener(\"touchmove\", handleTouchMove, {\n\t\t\t\tpassive: false,\n\t\t\t});\n\t\t\tcontainer.addEventListener(\"touchend\", handleTouchEnd);\n\t\t\tcleanupFns.push(() =>\n\t\t\t\tcontainer.removeEventListener(\"touchstart\", handleTouchStart)\n\t\t\t);\n\t\t\tcleanupFns.push(() =>\n\t\t\t\tcontainer.removeEventListener(\"touchmove\", handleTouchMove)\n\t\t\t);\n\t\t\tcleanupFns.push(() =>\n\t\t\t\tcontainer.removeEventListener(\"touchend\", handleTouchEnd)\n\t\t\t);\n\t\t}\n\n\t\tif (mouseWheel) {\n\t\t\tcontainer.addEventListener(\"wheel\", handleWheel, { passive: false });\n\t\t\tcleanupFns.push(() =>\n\t\t\t\tcontainer.removeEventListener(\"wheel\", handleWheel)\n\t\t\t);\n\t\t}\n\n\t\tconst cleanupAutoPlay = setupAutoPlay(container);\n\t\tif (cleanupAutoPlay) cleanupFns.push(cleanupAutoPlay);\n\n\t\tscrollToSlide(0);\n\n\t\t// 如果你想在未来某个时机清理所有事件,可以调用:\n\t\t// cleanupFns.forEach(fn => fn());\n\t\treturn () => cleanupFns.forEach((fn) => fn());\n\t};\n\n\t// **SSR 优化**:只有在浏览器环境下才调度 runSideEffects\n\tif (typeof window !== \"undefined\" && typeof document !== \"undefined\") {\n\t\tsetTimeout(runSideEffects, 0);\n\t}\n\n\t// 生成分页 dots\n\tconst paginationDots = html`\n\t\t<div class=\"${_paginationClassName}\">\n\t\t\t${Array.from(\n\t\t\t\t{ length: slideCount },\n\t\t\t\t(_, i) => html`\n\t\t\t\t\t<button\n\t\t\t\t\t\tclass=\"${i === currentSlide() ? \"active\" : \"\"}\"\n\t\t\t\t\t\t@click=${() => scrollToSlide(i)}\n\t\t\t\t\t></button>\n\t\t\t\t`\n\t\t\t)}\n\t\t</div>\n\t`;\n\n\t// 生成分页 fraction\n\tconst paginationFraction = html`\n\t\t<div class=\"${_paginationClassName} fraction\">\n\t\t\t<span class=\"current\">${currentSlide() + 1}</span>\n\t\t\t<span class=\"separator\">/</span>\n\t\t\t<span class=\"total\">${slideCount}</span>\n\t\t</div>\n\t`;\n\n\t// 生成分页 progressbar\n\tconst paginationProgress = html`\n\t\t<div class=\"${_paginationClassName} progressbar\">\n\t\t\t<div\n\t\t\t\tclass=\"progress\"\n\t\t\t\tstyle=\"width: ${slideCount > 1\n\t\t\t\t\t? (currentSlide() / (slideCount - 1)) * 100\n\t\t\t\t\t: 0}%\"\n\t\t\t></div>\n\t\t</div>\n\t`;\n\n\t// 生成导航按钮\n\tconst navigationButtons = html`\n\t\t<div class=\"${_navigationClassName}\">\n\t\t\t<button class=\"prev\" @click=${prevSlide}>◀</button>\n\t\t\t<button class=\"next\" @click=${nextSlide}>▶</button>\n\t\t</div>\n\t`;\n\n\t// 最终返回的模板\n\treturn html`\n\t\t<style>\n\t\t\t.${_className} {\n\t\t\t\tposition: relative;\n\t\t\t\toverflow: hidden;\n\t\t\t\twidth: ${width};\n\t\t\t\theight: ${height};\n\t\t\t}\n\n\t\t\t.${_containerClassName} {\n\t\t\t\twidth: 100%;\n\t\t\t\theight: 100%;\n\t\t\t\toverflow: auto;\n\t\t\t\tscroll-snap-type: ${direction + \" \" + snapType};\n\t\t\t\t-webkit-overflow-scrolling: touch;\n\t\t\t\tscroll-behavior: ${scrollBehavior};\n\t\t\t\tgap: ${gap};\n\t\t\t\tdisplay: flex;\n\t\t\t\tflex-direction: ${direction === \"x\" ? \"row\" : \"column\"};\n\t\t\t}\n\n\t\t\t.${_slideClassName} {\n\t\t\t\tscroll-snap-align: ${align};\n\t\t\t\tflex-shrink: 0;\n\t\t\t}\n\n\t\t\t.${_navigationClassName} {\n\t\t\t\tposition: absolute;\n\t\t\t\ttop: 50%;\n\t\t\t\tleft: 0;\n\t\t\t\tright: 0;\n\t\t\t\ttransform: translateY(-50%);\n\t\t\t\tdisplay: flex;\n\t\t\t\tjustify-content: space-between;\n\t\t\t\tpointer-events: none;\n\t\t\t\tpadding: ${navigationPosition === \"outside\" ? \"0 1rem\" : \"0 0.5rem\"};\n\t\t\t}\n\n\t\t\t.${_navigationClassName} button {\n\t\t\t\twidth: 2.5rem;\n\t\t\t\theight: 2.5rem;\n\t\t\t\tborder-radius: 50%;\n\t\t\t\tbackground-color: rgba(0, 0, 0, 0.5);\n\t\t\t\tcolor: white;\n\t\t\t\tborder: none;\n\t\t\t\tdisplay: flex;\n\t\t\t\talign-items: center;\n\t\t\t\tjustify-content: center;\n\t\t\t\tcursor: pointer;\n\t\t\t\tpointer-events: auto;\n\t\t\t\ttransition: background-color 0.3s;\n\t\t\t}\n\n\t\t\t.${_navigationClassName} button:hover {\n\t\t\t\tbackground-color: rgba(0, 0, 0, 0.8);\n\t\t\t}\n\n\t\t\t.${_paginationClassName} {\n\t\t\t\tposition: absolute;\n\t\t\t\tbottom: 1rem;\n\t\t\t\tleft: 0;\n\t\t\t\tright: 0;\n\t\t\t\tdisplay: flex;\n\t\t\t\tjustify-content: center;\n\t\t\t\tgap: 0.5rem;\n\t\t\t\talign-items: center;\n\t\t\t}\n\t\t\t.${_paginationClassName} button {\n\t\t\t\twidth: 0.75rem;\n\t\t\t\theight: 0.75rem;\n\t\t\t\tborder-radius: 50%;\n\t\t\t\tbackground-color: rgba(255, 255, 255, 0.5);\n\t\t\t\tborder: none;\n\t\t\t\tcursor: pointer;\n\t\t\t\ttransition: background-color 0.3s, transform 0.3s;\n\t\t\t}\n\t\t\t.${_paginationClassName} button.active {\n\t\t\t\tbackground-color: white;\n\t\t\t\ttransform: scale(1.2);\n\t\t\t}\n\n\t\t\t.${_paginationClassName}.fraction {\n\t\t\t\tposition: absolute;\n\t\t\t\tbottom: 1rem;\n\t\t\t\tleft: 50%;\n\t\t\t\ttransform: translateX(-50%);\n\t\t\t\tcolor: white;\n\t\t\t\tfont-size: 1rem;\n\t\t\t\tdisplay: flex;\n\t\t\t\talign-items: center;\n\t\t\t\tgap: 0.25rem;\n\t\t\t}\n\n\t\t\t.${_paginationClassName}.progressbar {\n\t\t\t\tposition: absolute;\n\t\t\t\tbottom: 0.5rem;\n\t\t\t\tleft: 0;\n\t\t\t\tright: 0;\n\t\t\t\theight: 0.25rem;\n\t\t\t\tbackground-color: rgba(255, 255, 255, 0.2);\n\t\t\t}\n\t\t\t.${_paginationClassName}.progressbar .progress {\n\t\t\t\theight: 100%;\n\t\t\t\tbackground-color: white;\n\t\t\t\ttransition: width 0.3s;\n\t\t\t}\n\t\t</style>\n\n\t\t<div class=\"${_className}\">\n\t\t\t<div class=\"${_containerClassName}\">\n\t\t\t\t${_slides.map(\n\t\t\t\t\t(slide, index) => html`\n\t\t\t\t\t\t<div class=\"${_slideClassName} --slide-${index}\" key=${index}>\n\t\t\t\t\t\t\t${slide}\n\t\t\t\t\t\t</div>\n\t\t\t\t\t`\n\t\t\t\t)}\n\t\t\t</div>\n\n\t\t\t${showNavigation ? navigationButtons : null}\n\t\t\t${showPagination && paginationType === \"dots\" ? paginationDots : null}\n\t\t\t${showPagination && paginationType === \"fraction\"\n\t\t\t\t? paginationFraction\n\t\t\t\t: null}\n\t\t\t${showPagination && paginationType === \"progressbar\"\n\t\t\t\t? paginationProgress\n\t\t\t\t: null}\n\t\t</div>\n\t`;\n}\n","import { html, TemplateResult } from \"lit\";\nimport { renderFn, renderFnOrCurry, renderFnType } from \"./core\";\n\ninterface AbsoluteBoxProps {\n\ttop?: string;\n\tright?: string;\n\tbottom?: string;\n\tleft?: string;\n\twidth?: string;\n\theight?: string;\n\tzIndex?: number;\n\tstyle?: string;\n\tclassName?: string;\n}\n\nexport function AbsoluteBox(\n\tprops?: AbsoluteBoxProps\n): (children?: renderFnType) => TemplateResult<1>;\n\nexport function AbsoluteBox(\n\tprops?: AbsoluteBoxProps,\n\tchildren?: renderFnType\n): TemplateResult<1>;\n\nexport function AbsoluteBox(props?: AbsoluteBoxProps, children?: renderFnType) {\n\tconst t = props?.top ? `top: ${props.top};` : \"\";\n\tconst r = props?.right ? `right: ${props.right};` : \"\";\n\tconst b = props?.bottom ? `bottom: ${props.bottom};` : \"\";\n\tconst l = props?.left ? `left: ${props.left};` : \"\";\n\tconst w = props?.width ? `width: ${props.width};` : \"\";\n\tconst h = props?.height ? `height: ${props.height};` : \"\";\n\tconst z =\n\t\ttypeof props?.zIndex === \"number\" ? `z-index: ${props.zIndex};` : \"\";\n\tconst style = props?.style ? props.style : \"\";\n\tconst className = props?.className ? props.className : \"\";\n\tconst render = (children?: renderFnType) => {\n\t\treturn html`\n\t\t\t<div\n\t\t\t\tclass=\"${className}\"\n\t\t\t\tstyle=\"\n position: absolute;\n ${t} ${r} ${b} ${l}\n ${w} ${h}\n ${z}\n\t ${style}\n \"\n\t\t\t>\n\t\t\t\t${renderFn(children)}\n\t\t\t</div>\n\t\t`;\n\t};\n\treturn renderFnOrCurry(children, render);\n}\n","import { html, TemplateResult } from \"lit\";\nimport { renderFnOrArrayOrCurry, renderFnOrArrayType } from \"./core\";\n\ninterface AcrylicBarProps {\n\twidth?: string; // 宽度,如 \"300px\" 或 \"50%\"\n\theight?: string; // 高度,如 \"auto\" 或 \"200px\"\n\ttop?: string; // 距离顶部距离,默认 \"20%\"\n\tbottom?: string; // 距离底部距离,默认 \"auto\"\n\tleft?: string; // 距离左侧距离,默认 \"50%\"\n\tright?: string; // 距离右侧距离,默认 \"auto\"\n\tbackground?: string; // 背景色,支持透明度,默认 \"rgba(255,255,255,0.3)\"\n\tblur?: string; // 模糊半径,默认 \"10px\"\n\tborderRadius?: string; // 圆角,默认 \"12px\"\n\tpadding?: string; // 内边距,默认 \"16px\"\n\tzIndex?: number; // z-index,默认 1000\n}\n\nexport function AcrylicBar(\n\tprops?: AcrylicBarProps\n): (children?: renderFnOrArrayType) => TemplateResult<1>;\n\nexport function AcrylicBar(\n\tprops?: AcrylicBarProps,\n\tchildren?: renderFnOrArrayType\n): TemplateResult<1>;\n\nexport function AcrylicBar(\n\tprops?: AcrylicBarProps,\n\tchildren?: renderFnOrArrayType\n) {\n\tconst w = props?.width ?? \"300px\";\n\tconst h = props?.height ?? \"auto\";\n\tconst top = props?.top ?? \"20%\";\n\tconst bottom = props?.bottom ?? \"auto\";\n\tconst left = props?.left ?? \"50%\";\n\tconst right = props?.right ?? \"auto\";\n\t// 如果 left 被设置为非 \"auto\",则让组件水平居中\n\tconst translateX = left !== \"auto\" ? \"transform: translateX(-50%);\" : \"\";\n\tconst bg = props?.background ?? \"rgba(255, 255, 255, 0.3)\";\n\tconst blur = props?.blur ?? \"10px\";\n\tconst br = props?.borderRadius ?? \"12px\";\n\tconst pd = props?.padding ?? \"16px\";\n\tconst z = props?.zIndex ?? 1000;\n\n\tconst render = (children: TemplateResult) => {\n\t\treturn html`\n\t\t\t<div\n\t\t\t\tstyle=\"\n position: fixed;\n top: ${top};\n bottom: ${bottom};\n left: ${left};\n right: ${right};\n ${translateX}\n width: ${w};\n height: ${h};\n background: ${bg};\n backdrop-filter: blur(${blur});\n -webkit-backdrop-filter: blur(${blur});\n border-radius: ${br};\n padding: ${pd};\n box-shadow: 0 4px 16px rgba(0, 0, 0, 0.2);\n z-index: ${z};\n display: flex;\n flex-direction: column;\n \"\n\t\t\t>\n\t\t\t\t${children}\n\t\t\t</div>\n\t\t`;\n\t};\n\treturn renderFnOrArrayOrCurry(children, undefined, render);\n}\n","import { html, TemplateResult } from \"lit\";\nimport { renderFnOrArray, renderFnOrArrayType } from \"./core\";\n\ninterface AspectRatioProps {\n\tratio: number; // 宽高比,例如 16/9、4/3\n\tmaxWidth?: string;\n\tbackground?: string;\n\toverflow?: string;\n}\n\nexport function AspectRatio(\n\tprops: AspectRatioProps\n): (children?: renderFnOrArrayType) => TemplateResult<1>;\n\nexport function AspectRatio(\n\tprops: AspectRatioProps,\n\tchildren?: renderFnOrArrayType\n): TemplateResult<1>;\n\nexport function AspectRatio(\n\tprops: AspectRatioProps,\n\tchildren?: renderFnOrArrayType\n): TemplateResult<1> | ((children?: renderFnOrArrayType) => TemplateResult<1>) {\n\tif (children === undefined) {\n\t\treturn (children) => AspectRatio(props, children ?? [html``]);\n\t}\n\tconst paddingTop = `${100 / props.ratio}%`;\n\tconst mw = props.maxWidth ? `max-width: ${props.maxWidth};` : \"\";\n\tconst bg = props.background ? `background: ${props.background};` : \"\";\n\tconst ov = props.overflow ?? \"hidden\";\n\n\treturn html`\n\t\t<div\n\t\t\tstyle=\"\n position: relative;\n width: 100%;\n ${mw}\n ${bg}\n overflow: ${ov};\n \"\n\t\t>\n\t\t\t<div style=\"width: 100%; padding-top: ${paddingTop};\"></div>\n\t\t\t<div\n\t\t\t\tstyle=\"\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n \"\n\t\t\t>\n\t\t\t\t${renderFnOrArray(children)}\n\t\t\t</div>\n\t\t</div>\n\t`;\n}\n","import { html, TemplateResult } from \"lit\";\nimport { getRandomClassName, renderFn, renderFnType, WithHtml } from \"./core\";\n\nexport function AutoFitGrid(props: {\n\tminItemWidth: string;\n\tgap?: string | number;\n}): WithHtml<renderFnType>;\n\nexport function AutoFitGrid(\n\tprops: {\n\t\tminItemWidth: string;\n\t\tgap?: string | number;\n\t},\n\tchildren?: renderFnType\n): TemplateResult<1>;\n\nexport function AutoFitGrid(\n\tprops: {\n\t\tminItemWidth: string;\n\t\tgap?: string | number;\n\t},\n\tchildren?: renderFnType\n): TemplateResult<1> | WithHtml<renderFnType> {\n\tif (children === undefined) {\n\t\tconst _ = (children?: renderFnType) => AutoFitGrid(props, children);\n\t\t_.html = (strings: TemplateStringsArray, ...values: unknown[]) =>\n\t\t\tAutoFitGrid(props, html(strings, ...values));\n\t\treturn _;\n\t}\n\tconst _className = getRandomClassName(\"AutoFitGrid::auto-fit-grid\"); // 生成随机类名\n\tconst gap = props?.gap ?? \"16px\";\n\tconst css = `\n .${_className} {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(${props.minItemWidth}, 1fr));\n gap: ${gap};\n }\n `;\n\treturn html`\n\t\t<style>\n\t\t\t${css}\n\t\t</style>\n\t\t<div class=\"${_className}\">${renderFn(children)}</div>\n\t`;\n}\n","import { html, TemplateResult } from \"lit\";\nimport { type renderFnOrArrayType, renderFnOrArray } from \"./core\";\n\nexport function AvatarStack(props?: {\n\tsize?: string;\n\toverlap?: string;\n}): (children?: renderFnOrArrayType) => TemplateResult<1>;\n\nexport function AvatarStack(\n\tprops?: { size?: string; overlap?: string },\n\tchildren?: renderFnOrArrayType\n): TemplateResult<1>;\n\nexport function AvatarStack(\n\tprops?: { size?: string; overlap?: string },\n\tchildren?: renderFnOrArrayType\n): TemplateResult<1> | ((children?: renderFnOrArrayType) => TemplateResult<1>) {\n\tif (children === undefined) {\n\t\treturn (children?: renderFnOrArrayType) =>\n\t\t\tAvatarStack(props, children ?? [html``]);\n\t}\n\tconst sz = props?.size ?? \"32px\";\n\tconst ov = props?.overlap ?? \"-8px\";\n\tconst injectBox = (avatar: TemplateResult, idx?: number) => html`\n\t\t<div\n\t\t\tstyle=\"\n width: ${sz};\n height: ${sz};\n border-radius: 50%;\n overflow: hidden;\n border: 2px solid #fff;\n margin-left: ${idx === 0 ? \"0\" : ov};\n box-sizing: content-box;\n \"\n\t\t>\n\t\t\t${avatar}\n\t\t</div>\n\t`;\n\treturn html`\n\t\t<div style=\"display: flex; align-items: center;\">\n\t\t\t${renderFnOrArray(children, injectBox)}\n\t\t</div>\n\t`;\n}\n","// Badge.ts\nimport { html, TemplateResult } from \"lit\";\nimport { renderFn, renderFnType, WithHtml } from \"./core\";\n\ninterface BadgeProps {\n\tcontent?: string | number;\n\tposition?: \"top-left\" | \"top-right\" | \"bottom-left\" | \"bottom-right\";\n\tsize?: string;\n\tbackground?: string;\n\tcolor?: string;\n}\n\nexport function Badge(props?: BadgeProps): WithHtml<renderFnType>;\n\nexport function Badge(\n\tprops?: BadgeProps,\n\tchildren?: renderFnType\n): TemplateResult<1>;\n\nexport function Badge(\n\tprops?: BadgeProps,\n\tchildren?: renderFnType\n): TemplateResult<1> | WithHtml<renderFnType> {\n\tif (children === undefined) {\n\t\tconst _ = (children?: renderFnType) => Badge(props, children ?? html``);\n\t\t_.html = (strings: TemplateStringsArray, ...values: unknown[]) =>\n\t\t\tBadge(props, html(strings, ...values));\n\t\treturn _;\n\t}\n\tconst pos = props?.position ?? \"top-right\";\n\tconst size = props?.size ?? \"16px\";\n\tconst bg = props?.background ?? \"red\";\n\tconst col = props?.color ?? \"#fff\";\n\t// 计算定位\n\tconst [top, right, bottom, left] = [\n\t\tpos.includes(\"top\") ? \"0\" : \"auto\",\n\t\tpos.includes(\"right\") ? \"0\" : \"auto\",\n\t\tpos.includes(\"bottom\") ? \"0\" : \"auto\",\n\t\tpos.includes(\"left\") ? \"0\" : \"auto\",\n\t];\n\treturn html`\n\t\t<div style=\"position: relative; display: inline-block;\">\n\t\t\t${renderFn(children)}\n\t\t\t<div\n\t\t\t\tstyle=\"\n position: absolute;\n top: ${top};\n right: ${right};\n bottom: ${bottom};\n left: ${left};\n width: ${size};\n height: ${size};\n background: ${bg};\n color: ${col};\n font-size: calc(${size} * 0.6);\n border-radius: 50%;\n display: flex;\n justify-content: center;\n align-items: center;\n transform: translate(${left === \"0\"\n\t\t\t\t\t? \"-50%\"\n\t\t\t\t\t: left === \"auto\"\n\t\t\t\t\t? \"0\"\n\t\t\t\t\t: \"0\"}, ${top === \"0\" ? \"-50%\" : top === \"auto\" ? \"0\" : \"0\"});\n \"\n\t\t\t>\n\t\t\t\t${props?.content ?? \"\"}\n\t\t\t</div>\n\t\t</div>\n\t`;\n}\n","import { html, TemplateResult } from \"lit\";\nimport { renderFnOrArray, renderFnOrArrayType } from \"./core\";\n\ninterface CardProps {\n\tpadding?: string;\n\tborderRadius?: string;\n\tshadow?: string;\n\tbackground?: string;\n}\n\nexport function Card(\n\tprops?: CardProps\n): (children?: renderFnOrArrayType) => TemplateResult<1>;\n\nexport function Card(\n\tprops?: CardProps,\n\tchildren?: renderFnOrArrayType\n): TemplateResult<1>;\n\nexport function Card(\n\tprops?: CardProps,\n\tchildren?: renderFnOrArrayType\n): TemplateResult<1> | ((children?: renderFnOrArrayType) => TemplateResult<1>) {\n\tif (children === undefined) {\n\t\treturn (children) => Card(props, children ?? [html``]);\n\t}\n\tconst pd = props?.padding ?? \"16px\";\n\tconst br = props?.borderRadius ?? \"8px\";\n\tconst sd = props?.shadow ?? \"0 2px 8px rgba(0,0,0,0.1)\";\n\tconst bg = props?.background ?? \"#fff\";\n\treturn html`\n\t\t<div\n\t\t\tstyle=\"\n background: ${bg};\n border-radius: ${br};\n box-shadow: ${sd};\n padding: ${pd};\n box-sizing: border-box;\n \"\n\t\t>\n\t\t\t${renderFnOrArray(children)}\n\t\t</div>\n\t`;\n}\n","import { html, TemplateResult } from \"lit\";\nimport { renderFn, renderFnType, WithHtml } from \"./core\";\n\nexport function Center(props?: {\n\twidth?: string;\n\theight?: string;\n\tbackground?: string;\n}): WithHtml<renderFnType>;\n\nexport function Center(\n\tprops?: { width?: string; height?: string; background?: string },\n\tchildren?: renderFnType\n): TemplateResult<1>;\n\nexport function Center(\n\tprops?: { width?: string; height?: string; background?: string },\n\tchildren?: renderFnType\n): TemplateResult<1> | WithHtml<renderFnType> {\n\tif (children === undefined) {\n\t\tconst _ = (children?: renderFnType) => Center(props, children ?? html``);\n\t\t_.html = (strings: TemplateStringsArray, ...values: unknown[]) =>\n\t\t\tCenter(props, html(strings, ...values));\n\t\treturn _;\n\t}\n\tconst w = props?.width ? `width: ${props.width};` : \"\";\n\tconst h = props?.height ? `height: ${props.height};` : \"\";\n\tconst bg = props?.background ? `background: ${props.background};` : \"\";\n\n\treturn html`\n\t\t<div\n\t\t\tstyle=\"\n display: flex;\n justify-content: center;\n align-items: center;\n ${w} ${h} ${bg}\n \"\n\t\t>\n\t\t\t${renderFn(children)}\n\t\t</div>\n\t`;\n}\n","import { html, TemplateResult } from \"lit\";\nimport { renderFnOrArray, renderFnOrArrayType } from \"./core\";\n\nexport type ContainerProps = {\n\tmaxWidth?: string;\n\tpadding?: string;\n\tbackground?: string;\n\tfullHeight?: boolean;\n};\n\nexport function Container(\n\tprops?: ContainerProps\n): (children?: renderFnOrArrayType) => TemplateResult<1>;\n\nexport function Container(\n\tprops?: ContainerProps,\n\tchildren?: renderFnOrArrayType\n): TemplateResult<1>;\n\nexport function Container(\n\tprops?: ContainerProps,\n\tchildren?: renderFnOrArrayType\n): TemplateResult<1> | ((children?: renderFnOrArrayType) => TemplateResult<1>) {\n\tif (children === undefined) {\n\t\treturn (children) => Container(props, children ?? [html``]);\n\t}\n\tconst mw = props?.maxWidth ?? \"1024px\";\n\tconst pad = props?.padding ?? \"0 16px\";\n\tconst bg = props?.background ? `background: ${props.background};` : \"\";\n\tconst h = props?.fullHeight ? \"height: 100%;\" : \"\";\n\n\treturn html`\n\t\t<div\n\t\t\tstyle=\"\n width: 100%;\n max-width: ${mw};\n margin-left: auto;\n margin-right: auto;\n padding: ${pad};\n ${bg}\n ${h}\n box-sizing: border-box;\n \"\n\t\t>\n\t\t\t${renderFnOrArray(children)}\n\t\t</div>\n\t`;\n}\n","import { html } from \"lit\";\n\nexport function Divider(props?: {\n\torientation?: \"horizontal\" | \"vertical\";\n\tthickness?: string;\n\tcolor?: string;\n\tmargin?: string;\n}) {\n\tconst ori = props?.orientation ?? \"horizontal\";\n\tconst thickness = props?.thickness ?? \"1px\";\n\tconst color = props?.color ?? \"#e0e0e0\";\n\tconst margin = props?.margin ?? (ori === \"horizontal\" ? \"8px 0\" : \"0 8px\");\n\n\tconst style =\n\t\tori === \"horizontal\"\n\t\t\t? `width: 100%; height: ${thickness}; background: ${color}; margin: ${margin};`\n\t\t\t: `width: ${thickness}; height: 100%; background: ${color}; margin: ${margin};`;\n\n\treturn html`<div style=\"${style}\"></div>`;\n}\n","// FooterLayout.ts\nimport { html, TemplateResult } from \"lit\";\nimport { renderFn, renderFnType, WithHtml } from \"./core\";\n\ninterface FooterLayoutProps {\n\tcolumns?: number;\n\tgap?: string;\n\tbackground?: string;\n\tpadding?: string;\n}\n\nexport function FooterLayout(props?: FooterLayoutProps): WithHtml<renderFnType>;\n\nexport function FooterLayout(\n\tprops?: FooterLayoutProps,\n\tchildren?: renderFnType\n): TemplateResult<1>;\n\nexport function FooterLayout(\n\tprops?: FooterLayoutProps,\n\tchildren?: renderFnType\n) {\n\tif (children === undefined) {\n\t\tconst _ = (children?: renderFnType) =>\n\t\t\tFooterLayout(props, children ?? html``);\n\t\t_.html = (strings: TemplateStringsArray, ...values: unknown[]) =>\n\t\t\tFooterLayout(props, html(strings, ...values));\n\t\treturn _;\n\t}\n\tconst cols = props?.columns ?? 4;\n\tconst gap = props?.gap ?? \"24px\";\n\tconst bg = props?.background ?? \"#f8f8f8\";\n\tconst pad = props?.padding ?? \"40px 16px\";\n\treturn html`\n\t\t<div\n\t\t\tstyle=\"\n width: 100%;\n background: ${bg};\n padding: ${pad};\n box-sizing: border-box;\n \"\n\t\t>\n\t\t\t<div\n\t\t\t\tstyle=\"\n display: grid;\n grid-template-columns: repeat(${cols}, 1fr);\n gap: ${gap};\n \"\n\t\t\t>\n\t\t\t\t${renderFn(children)}\n\t\t\t</div>\n\t\t\t<div style=\"text-align: center; margin-top: 24px; color: #666;\">\n\t\t\t\t© ${new Date().getFullYear()} Your Company. All rights reserved.\n\t\t\t</div>\n\t\t</div>\n\t`;\n}\n","import { html, TemplateResult } from \"lit\";\nimport { getRandomClassName, renderFn, renderFnType, WithHtml } from \"./core\";\n\nexport type GridBreakpointProps = {\n\tbreakpoints: Record<string, number>;\n\tdefaultColumns?: number;\n\tgap?: string;\n\tclassName?: string;\n};\n\nexport function GridBreakpoint(\n\tprops: GridBreakpointProps\n): WithHtml<renderFnType>;\n\nexport function GridBreakpoint(\n\tprops: GridBreakpointProps,\n\tchildren?: renderFnType\n): TemplateResult<1>;\n\nexport function GridBreakpoint(\n\tprops: GridBreakpointProps,\n\tchildren?: renderFnType\n): TemplateResult<1> | WithHtml<renderFnType> {\n\tif (children === undefined) {\n\t\tconst _ = (children?: renderFnType) =>\n\t\t\tGridBreakpoint(props, children ?? html``);\n\t\t_.html = (strings: TemplateStringsArray, ...values: unknown[]) =>\n\t\t\tGridBreakpoint(props, html(strings, ...values));\n\t\treturn _;\n\t}\n\n\tconst defCols = props.defaultColumns ?? 1;\n\tconst gap = props.gap ?? \"16px\";\n\tconst _className =\n\t\tprops.className ?? getRandomClassName(\"GridBreakpoint::grid-breakpoint\");\n\t// 生成媒体查询 CSS\n\tconst mqCss = Object.entries(props.breakpoints)\n\t\t.map(\n\t\t\t([query, cols]) => `\n @media ${query} {\n .${_className} { grid-template-columns: repeat(${cols}, 1fr); }\n }\n `\n\t\t)\n\t\t.join(\"\\n\");\n\treturn html`\n\t\t<style>\n\t\t\t.${_className} {\n\t\t\t display: grid;\n\t\t\t grid-template-columns: repeat(${defCols}, 1fr);\n\t\t\t gap: ${gap};\n\t\t\t}\n\t\t\t${mqCss}\n\t\t</style>\n\t\t<div class=\"${_className}\">${renderFn(children)}</div>\n\t`;\n}\n","import { html, TemplateResult } from \"lit\";\nimport { renderFnOrArray, renderFnOrArrayType } from \"./core\";\n\nexport function HeroSection(props?: {\n\tbackgroundImage?: string;\n\theight?: string;\n\toverlayColor?: string;\n}): (children?: renderFnOrArrayType) => TemplateResult<1>;\n\nexport function HeroSection(\n\tprops?: {\n\t\tbackgroundImage?: string;\n\t\theight?: string;\n\t\toverlayColor?: string;\n\t},\n\tchildren?: renderFnOrArrayType\n): TemplateResult<1>;\n\nexport function HeroSection(\n\tprops?: {\n\t\tbackgroundImage?: string;\n\t\theight?: string;\n\t\toverlayColor?: string;\n\t},\n\tchildren?: renderFnOrArrayType\n): TemplateResult<1> | ((children?: renderFnOrArrayType) => TemplateResult<1>) {\n\tif (children === undefined) {\n\t\treturn (children) => HeroSection(props, children ?? [html``]);\n\t}\n\n\tconst bgImage = props?.backgroundImage\n\t\t? `background-image: url('${props.backgroundImage}');`\n\t\t: \"\";\n\tconst height = props?.height ?? \"400px\";\n\tconst overlay = props?.overlayColor ?? \"rgba(0, 0, 0, 0.3)\";\n\treturn html`\n\t\t<div\n\t\t\tstyle=\"\n position: relative;\n width: 100%;\n height: ${height};\n ${bgImage}\n background-size: cover;\n background-position: center;\n \"\n\t\t>\n\t\t\t<div\n\t\t\t\tstyle=\"\n position: absolute;\n top: 0; left: 0; right: 0; bottom: 0;\n background: ${overlay};\n \"\n\t\t\t></div>\n\t\t\t<div\n\t\t\t\tstyle=\"\n position: relative;\n z-index: 1;\n width: 100%;\n height: 100%;\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n color: #fff;\n text-align: center;\n padding: 0 16px;\n box-sizing: border-box;\n \"\n\t\t\t>\n\t\t\t\t${renderFnOrArray(children)}\n\t\t\t</div>\n\t\t</div>\n\t`;\n}\n","// Hidden.ts\nimport { html, TemplateResult } from \"lit\";\nimport { getRandomClassName, renderFn, renderFnType, WithHtml } from \"./core\";\n\nexport type HiddenProps = {\n\tbreakpoint?: string;\n\tmode?: \"hide\" | \"show\";\n\tclassName?: string;\n};\n\nexport function Hidden(props?: HiddenProps): WithHtml<renderFnType>;\n\nexport function Hidden(\n\tprops?: HiddenProps,\n\tchildren?: renderFnType\n): TemplateResult<1>;\n\nexport function Hidden(\n\tprops?: HiddenProps,\n\tchildren?: renderFnType\n): TemplateResult<1> | WithHtml<renderFnType> {\n\tif (children === undefined) {\n\t\tconst _ = (children?: renderFnType) => Hidden(props, children ?? html``);\n\t\t_.html = (strings: TemplateStringsArray, ...values: unknown[]) =>\n\t\t\tHidden(props, html(strings, ...values));\n\t\treturn _;\n\t}\n\tconst bp = props?.breakpoint ?? \"(max-width: 600px)\";\n\tconst mode = props?.mode ?? \"hide\";\n\tconst _className =\n\t\tprops?.className ?? getRandomClassName(\"Hidden::hidden-container\");\n\tconst styleContent =\n\t\tmode === \"hide\"\n\t\t\t? `@media ${bp} { .${_className} { display: none !important; } }`\n\t\t\t: `@media ${bp} { .${_className} { display: block !important; } }\n @media not ${bp} { .${_className} { display: none !important; } }`;\n\treturn html`\n\t\t<style>\n\t\t\t.${_className} {\n\t\t\t display: block;\n\t\t\t}\n\t\t\t${styleContent}\n\t\t</style>\n\t\t<div class=\"${_className}\">${renderFn(children)}</div>\n\t`;\n}\n","import { html, TemplateResult } from \"lit\";\nimport {\n\tgetRandomClassName,\n\trenderFnOrArray,\n\trenderFnOrArrayOrCurry,\n\trenderFnOrArrayType,\n} from \"./core\";\n\nexport function ListGroup(props?: {\n\tbordered?: boolean;\n\tstriped?: boolean;\n\thover?: boolean;\n\tclassName?: string;\n}): (children?: renderFnOrArrayType) => TemplateResult<1>;\n\nexport function ListGroup(\n\tprops?: {\n\t\tbordered?: boolean;\n\t\tstriped?: boolean;\n\t\thover?: boolean;\n\t\tclassName?: string;\n\t},\n\tchildren?: renderFnOrArrayType\n): TemplateResult<1>;\n\nexport function ListGroup(\n\tprops?: {\n\t\tbordered?: boolean;\n\t\tstriped?: boolean;\n\t\thover?: boolean;\n\t\tclassName?: string;\n\t},\n\tchildren?: renderFnOrArrayType\n) {\n\tconst bordered = props?.bordered\n\t\t? `border: 1px solid #ddd; border-radius: 4px`\n\t\t: \"\";\n\tconst striped = props?.striped\n\t\t? `li:nth-child(even) { background: #f9f9f9; }`\n\t\t: \"\";\n\tconst hover = props?.hover\n\t\t? `li:hover { background: #f1f1f1; cursor: pointer; }`\n\t\t: \"\";\n\tconst _className =\n\t\tprops?.className ?? getRandomClassName(\"ListGroup::list-group\");\n\tconst injectRender = (\n\t\tchildren: TemplateResult<1>,\n\t\t_idx?: number,\n\t\tisArray?: boolean,\n\t\t_isFunc?: boolean\n\t) => {\n\t\tif (!isArray) {\n\t\t\treturn children;\n\t\t} else {\n\t\t\treturn html` <li>${children}</li> `;\n\t\t}\n\t};\n\tconst render = (children: TemplateResult<1> | TemplateResult<1>[]) => html`\n\t\t<style>\n\t\t\tul.${_className} {\n\t\t\t list-style: none;\n\t\t\t margin: 0;\n\t\t\t padding: 0;\n\t\t\t ${bordered};\n\t\t\t}\n\t\t\tul.${_className} li {\n\t\t\t padding: 12px 16px;\n\t\t\t ${props?.bordered ? \"border-bottom: 1px solid #ddd\" : \"\"};\n\t\t\t}\n\t\t\tul.${_className} li:last-child {\n\t\t\t ${props?.bordered ? \"border-bottom: none\" : \"\"};\n\t\t\t}\n\t\t\t${striped}\n\t\t\t${hover}\n\t\t</style>\n\t\t<ul class=\"${_className}\">\n\t\t\t${renderFnOrArray(children, injectRender)}\n\t\t</ul>\n\t`;\n\n\treturn renderFnOrArrayOrCurry(children, render);\n}\n","import { html, TemplateResult } from \"lit\";\nimport { renderFnOrArray, renderFnOrArrayType } from \"./core\";\n\nexport function Overlay(props?: {\n\tbackground?: string;\n\tzIndex?: number;\n\tfullScreen?: boolean;\n}): (children?: renderFnOrArrayType) => TemplateResult<1>;\n\nexport function Overlay(\n\tprops?: { background?: string; zIndex?: number; fullScreen?: boolean },\n\tchildren?: renderFnOrArrayType\n): TemplateResult<1>;\n\nexport function Overlay(\n\tprops?: { background?: string; zIndex?: number; fullScreen?: boolean },\n\tchildren?: renderFnOrArrayType\n): TemplateResult<1> | ((children?: renderFnOrArrayType) => TemplateResult<1>) {\n\tif (children === undefined) {\n\t\treturn (children?: renderFnOrArrayType) =>\n\t\t\tOverlay(props, children ?? [html``]);\n\t}\n\tconst bg = props?.background ?? \"rgba(0, 0, 0, 0.5)\";\n\tconst z = props?.zIndex ?? 1000;\n\tconst full = props?.fullScreen !== false;\n\treturn html`\n\t\t<div\n\t\t\tstyle=\"\n position: ${full ? \"fixed\" : \"absolute\"};\n top: 0; left: 0; right: 0; bottom: 0;\n background: ${bg};\n z-index: ${z};\n display: flex;\n justify-content: center;\n align-items: center;\n \"\n\t\t>\n\t\t\t${renderFnOrArray(children)}\n\t\t</div>\n\t`;\n}\n","import { html, TemplateResult } from \"lit\";\nimport { renderFn, renderFnType, WithHtml } from \"./core\";\n\nexport function PositionContainer(props?: {\n\twidth?: string;\n\theight?: string;\n\tbackground?: string;\n}): WithHtml<renderFnType>;\n\nexport function PositionContainer(\n\tprops?: { width?: string; height?: string; background?: string },\n\tchildren?: renderFnType\n): TemplateResult<1>;\n\nexport function PositionContainer(\n\tprops?: { width?: string; height?: string; background?: string },\n\tchildren?: renderFnType\n): TemplateResult<1> | WithHtml<renderFnType> {\n\tif (children === undefined) {\n\t\tconst _ = (children?: renderFnType) =>\n\t\t\tPositionContainer(props, children ?? html``);\n\t\t_.html = (strings: TemplateStringsArray, ...values: unknown[]) =>\n\t\t\tPositionContainer(props, html(strings, ...values));\n\t\treturn _;\n\t}\n\n\tconst w = props?.width ? `width: ${props.width};` : \"\";\n\tconst h = props?.height ? `height: ${props.height};` : \"\";\n\tconst bg = props?.background ? `background: ${props.background};` : \"\";\n\n\treturn html`\n\t\t<div\n\t\t\tstyle=\"\n position: relative;\n ${w} ${h} ${bg}\n overflow: hidden;\n \"\n\t\t>\n\t\t\t${renderFn(children)}\n\t\t</div>\n\t`;\n}\n","import { html } from \"lit\";\n\nexport function SizedBox(props?: { width?: string; height?: string }) {\n\tconst w = props?.width ? `width: ${props.width};` : \"\";\n\tconst h = props?.height ? `height: ${props.height};` : \"\";\n\treturn html` <div style=\"${w} ${h}\"></div> `;\n}\n","// SkeletonLoader.ts\nimport { html } from \"lit\";\nimport { getRandomClassName } from \"./core\";\n\nexport function SkeletonLoader(props?: {\n\ttype?: \"rect\" | \"circle\";\n\twidth?: string;\n\theight?: string;\n\tborderRadius?: string;\n\tanimation?: boolean;\n\tclassName?: string;\n}) {\n\tconst type = props?.type ?? \"rect\";\n\tconst w = props?.width ?? \"100%\";\n\tconst h = props?.height ?? \"16px\";\n\tconst br = props?.borderRadius ?? \"4px\";\n\tconst anim = props?.animation !== false;\n\tconst _className =\n\t\tprops?.className ?? getRandomClassName(\"SkeletonLoader::skeleton-shimmer\");\n\tconst shapeStyle =\n\t\ttype === \"circle\"\n\t\t\t? `border-radius: 50%; width: ${w}; height: ${w}`\n\t\t\t: `border-radius: ${br}; width: ${w}; height: ${h}`;\n\treturn html`\n\t\t<style>\n\t\t\t${`\n @keyframes ${_className + \"-shimmer\"} {\n\t\t\t 0% { background-color: #eee; }\n\t\t\t 50% { background-color: #ddd; }\n\t\t\t 100% { background-color: #eee; }\n\t\t\t} \n `}\n\t\t\t.${_className} {\n\t\t\t ${shapeStyle};\n\t\t\t background-color: #eee;\n\t\t\t ${anim\n\t\t\t\t? `animation: ${_className + \"-shimmer\"} 1.2s infinite ease-in-out`\n\t\t\t\t: \"\"};\n\t\t\t}\n\t\t</style>\n\t\t<div class=\"${_className}\"></div>\n\t`;\n}\n","import { html } from \"lit\";\n\nexport function Spacer() {\n\treturn html`<div style=\"flex: 1 1 auto;\"></div>`;\n}\n","import { html, TemplateResult } from \"lit\";\nimport { renderFn, renderFnType, WithHtml } from \"./core\";\n\ninterface StickyProps {\n\ttop?: string;\n\tbottom?: string;\n\tzIndex?: number;\n}\n\nexport function Sticky(props?: StickyProps): WithHtml<renderFnType>;\n\nexport function Sticky(\n\tprops?: StickyProps,\n\tchildren?: renderFnType\n): TemplateResult<1>;\nexport function Sticky(\n\tprops?: StickyProps,\n\tchildren?: renderFnType\n): TemplateResult<1> | WithHtml<renderFnType> {\n\tif (children === undefined) {\n\t\tconst _ = (children?: renderFnType) => Sticky(props, children ?? html``);\n\t\t_.html = (strings: TemplateStringsArray, ...values: unknown[]) =>\n\t\t\tSticky(props, html(strings, ...values));\n\t\treturn _;\n\t}\n\n\tconst top = props?.top ? `top: ${props.top};` : \"\";\n\tconst bottom = props?.bottom ? `bottom: ${props.bottom};` : \"\";\n\tconst z =\n\t\ttypeof props?.zIndex === \"number\" ? `z-index: ${props.zIndex};` : \"\";\n\n\treturn html`\n\t\t<div\n\t\t\tstyle=\"\n position: sticky;\n ${top} ${bottom}\n ${z}\n \"\n\t\t>\n\t\t\t${renderFn(children)}\n\t\t</div>\n\t`;\n}\n","import { html, TemplateResult } from \"lit\";\nimport { getRandomClassName, renderFn, renderFnType, WithHtml } from \"./core\";\n\nexport interface TableProps {\n\tstriped?: boolean;\n\thover?: boolean;\n\tbordered?: boolean;\n\tclassName?: string;\n}\n\nexport function Table(props?: TableProps): WithHtml<renderFnType>;\n\nexport function Table(\n\tprops?: TableProps,\n\tchildren?: renderFnType // TemplateResult | (() => TemplateResult)\n): TemplateResult<1>;\n\nexport function Table(\n\tprops?: TableProps,\n\tchildren?: renderFnType\n): TemplateResult<1> | WithHtml<renderFnType> {\n\t// 如果第二个参数 children 没传,则返回一个只接收 children 的函数\n\tif (children === undefined) {\n\t\tconst _ = (children?: renderFnType) => Table(props, children ?? html``);\n\t\t_.html = (strings: TemplateStringsArray, ...values: unknown[]) =>\n\t\t\tTable(props, html(strings, ...values));\n\t\treturn _;\n\t}\n\n\t// 到这里说明 props 和 children 都已经传齐\n\tconst _className = props?.className ?? getRandomClassName(\"Table::table\");\n\tconst striped = props?.striped\n\t\t? `\n .${_className} tr:nth-child(even) { background: #f9f9f9; }\n `\n\t\t: \"\";\n\tconst hover = props?.hover\n\t\t? `\n .${_className} tr:hover { background: #f1f1f1; }\n `\n\t\t: \"\";\n\tconst bordered = props?.bordered\n\t\t? `\n .${_className}, .${_className} th, .${_className} td { border: 1px solid #ddd; }\n `\n\t\t: \"\";\n\n\treturn html`\n\t\t<style>\n\t\t\t/* 将表格包裹在带有 _className 的 div 里,使后续 CSS 作用于该 div 下的 table */\n\t\t\t.${_className} table {\n\t\t\t width: 100%;\n\t\t\t border-collapse: collapse;\n\t\t\t}\n\t\t\t.${_className} th,\n\t\t\t.${_className} td {\n\t\t\t padding: 8px 12px;\n\t\t\t text-align: left;\n\t\t\t}\n\t\t\t${striped}\n\t\t\t${hover}\n\t\t\t${bordered}\n\t\t</style>\n\n\t\t<div class=\"${_className}\">\n\t\t\t<table>\n\t\t\t\t${renderFn(children)}\n\t\t\t</table>\n\t\t</div>\n\t`;\n}\n","import { html, TemplateResult } from \"lit\";\nimport { renderFnOrArray, renderFnOrArrayType } from \"./core\";\n\ninterface WrapProps {\n\tdirection?: \"row\" | \"column\";\n\tgap?: string | number;\n\talign?: string;\n\tjustify?: string;\n}\n\nexport function Wrap(\n\tprops?: WrapProps\n): (children?: renderFnOrArrayType) => TemplateResult<1>;\n\nexport function Wrap(\n\tprops?: WrapProps,\n\tchildren?: renderFnOrArrayType\n): TemplateResult<1>;\n\nexport function Wrap(\n\tprops?: WrapProps,\n\tchildren?: renderFnOrArrayType\n): TemplateResult<1> | ((children?: renderFnOrArrayType) => TemplateResult<1>) {\n\tconst dir = props?.direction ?? \"row\";\n\tif (children === undefined) {\n\t\treturn (children) => Wrap(props, children ?? html``);\n\t}\n\treturn html`\n\t\t<div\n\t\t\tstyle=\"\n display: flex;\n flex-direction: ${dir};\n flex-wrap: wrap;\n ${props?.gap ? `gap: ${props.gap};` : \"\"}\n ${props?.align ? `align-items: ${props.align};` : \"\"}\n ${props?.justify ? `justify-content: ${props.justify};` : \"\"}\n \"\n\t\t>\n\t\t\t${renderFnOrArray(children)}\n\t\t</div>\n\t`;\n}\n","import { html, TemplateResult } from \"lit\";\nimport { renderFnOrArray, renderFnOrArrayType } from \"./core\";\n\ninterface ZStackProps {\n\twidth?: string;\n\theight?: string;\n\tbackground?: string;\n\talign?: \"top-left\" | \"top-right\" | \"center\" | \"bottom-left\" | \"bottom-right\";\n}\n\nexport function ZStack(\n\tprops?: ZStackProps\n): (children?: renderFnOrArrayType) => TemplateResult<1>;\n\nexport function ZStack(\n\tprops?: ZStackProps,\n\tchildren?: renderFnOrArrayType\n): TemplateResult<1>;\n\nexport function ZStack(\n\tprops?: ZStackProps,\n\tchildren?: renderFnOrArrayType\n): TemplateResult<1> | ((children?: renderFnOrArrayType) => TemplateResult<1>) {\n\tconst w = props?.width ? `width: ${props.width};` : \"\";\n\tconst h = props?.height ? `height: ${props.height};` : \"\";\n\tconst bg = props?.background ? `background: ${props.background};` : \"\";\n\n\tif (children === undefined) {\n\t\treturn (children?: renderFnOrArrayType) =>\n\t\t\tZStack(props, children ?? [html``]);\n\t}\n\n\tlet justify = \"flex-start\";\n\tlet alignItems = \"flex-start\";\n\tswitch (props?.align) {\n\t\tcase \"top-right\":\n\t\t\tjustify = \"flex-end\";\n\t\t\talignItems = \"flex-start\";\n\t\t\tbreak;\n\t\tcase \"center\":\n\t\t\tjustify = \"center\";\n\t\t\talignItems = \"center\";\n\t\t\tbreak;\n\t\tcase \"bottom-left\":\n\t\t\tjustify = \"flex-start\";\n\t\t\talignItems = \"flex-end\";\n\t\t\tbreak;\n\t\tcase \"bottom-right\":\n\t\t\tjustify = \"flex-end\";\n\t\t\talignItems = \"flex-end\";\n\t\t\tbreak;\n\t\tdefault:\n\t\t\t// \"top-left\"\n\t\t\tjustify = \"flex-start\";\n\t\t\talignItems = \"flex-start\";\n\t}\n\n\treturn html`\n\t\t<div\n\t\t\tstyle=\"\n position: relative;\n display: flex;\n justify-content: ${justify};\n align-items: ${alignItems};\n ${w} ${h} ${bg}\n \"\n\t\t>\n\t\t\t${renderFnOrArray(children)}\n\t\t</div>\n\t`;\n}\n"],"mappings":"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"}