@greypan/web-ui 1.3.1 → 1.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (26) hide show
  1. package/README.CN.md +231 -2
  2. package/README.md +231 -2
  3. package/dist/components/back-top/index.js +12 -15
  4. package/dist/components/back-top/index.js.map +1 -1
  5. package/dist/components/button/index.js +13 -15
  6. package/dist/components/button/index.js.map +1 -1
  7. package/dist/components/layout/index.js +8 -9
  8. package/dist/components/layout/index.js.map +1 -1
  9. package/dist/components/svg-draw-lines/index.js +10 -14
  10. package/dist/components/svg-draw-lines/index.js.map +1 -1
  11. package/package.json +5 -9
  12. package/dist/node_modules/.pnpm/@lit_reactive-element@2.1.2/node_modules/@lit/reactive-element/css-tag.js +0 -32
  13. package/dist/node_modules/.pnpm/@lit_reactive-element@2.1.2/node_modules/@lit/reactive-element/css-tag.js.map +0 -1
  14. package/dist/node_modules/.pnpm/@lit_reactive-element@2.1.2/node_modules/@lit/reactive-element/decorators/base.js +0 -6
  15. package/dist/node_modules/.pnpm/@lit_reactive-element@2.1.2/node_modules/@lit/reactive-element/decorators/base.js.map +0 -1
  16. package/dist/node_modules/.pnpm/@lit_reactive-element@2.1.2/node_modules/@lit/reactive-element/decorators/custom-element.js +0 -10
  17. package/dist/node_modules/.pnpm/@lit_reactive-element@2.1.2/node_modules/@lit/reactive-element/decorators/custom-element.js.map +0 -1
  18. package/dist/node_modules/.pnpm/@lit_reactive-element@2.1.2/node_modules/@lit/reactive-element/decorators/property.js +0 -41
  19. package/dist/node_modules/.pnpm/@lit_reactive-element@2.1.2/node_modules/@lit/reactive-element/decorators/property.js.map +0 -1
  20. package/dist/node_modules/.pnpm/@lit_reactive-element@2.1.2/node_modules/@lit/reactive-element/decorators/query.js +0 -31
  21. package/dist/node_modules/.pnpm/@lit_reactive-element@2.1.2/node_modules/@lit/reactive-element/decorators/query.js.map +0 -1
  22. package/dist/node_modules/.pnpm/@lit_reactive-element@2.1.2/node_modules/@lit/reactive-element/decorators/state.js +0 -13
  23. package/dist/node_modules/.pnpm/@lit_reactive-element@2.1.2/node_modules/@lit/reactive-element/decorators/state.js.map +0 -1
  24. package/dist/node_modules/.pnpm/@lit_reactive-element@2.1.2/node_modules/@lit/reactive-element/reactive-element.js +0 -229
  25. package/dist/node_modules/.pnpm/@lit_reactive-element@2.1.2/node_modules/@lit/reactive-element/reactive-element.js.map +0 -1
  26. package/dist/node_modules/.pnpm/lit@3.3.3/node_modules/lit/decorators.js +0 -5
package/README.CN.md CHANGED
@@ -11,6 +11,7 @@
11
11
  - **Layout**:带 header/sidebar/tabbar 插槽的页面布局
12
12
  - **SVG Draw Lines**:带缓动控制的 SVG 线条绘制动画
13
13
  - **框架兼容**:支持 React、Vue 和原生 HTML
14
+ - **类型安全**:为 React 和 Vue 提供完整的 TypeScript 类型
14
15
 
15
16
  ## 安装
16
17
 
@@ -32,9 +33,12 @@ bun add @greypan/web-ui
32
33
 
33
34
  ## 快速开始
34
35
 
35
- ```html
36
- <script type="module" src="@greypan/web-ui"></script>
36
+ ```js
37
+ import '@greypan/web-ui'
38
+ // import '@greypan/web-ui/components/button'
39
+ ```
37
40
 
41
+ ```html
38
42
  <web-ui-button primary>点击我</web-ui-button>
39
43
  <web-ui-button text>取消</web-ui-button>
40
44
  <web-ui-button icon>
@@ -42,6 +46,231 @@ bun add @greypan/web-ui
42
46
  </web-ui-button>
43
47
  ```
44
48
 
49
+ ## React 中使用
50
+
51
+ > 需要 `@types/react >= 16` 作为可选 peer 依赖,用于类型支持。
52
+
53
+ ### 初始化
54
+
55
+ **方式 A — auto-import(Vite,推荐)**
56
+
57
+ 使用 `unplugin-web-components` 自动注册自定义组件:
58
+
59
+ ```ts
60
+ // vite.config.ts
61
+ import unpluginWebComponents from '@greypan/unplugin-web-components/vite'
62
+
63
+ export default {
64
+ plugins: [
65
+ unpluginWebComponents({
66
+ tagPrefix: 'web-ui',
67
+ packageName: '@greypan/web-ui',
68
+ sideEffects: true
69
+ })
70
+ ]
71
+ }
72
+ ```
73
+
74
+ **方式 B — 手动导入**
75
+
76
+ 在应用入口全量导入,注册所有组件(side-effect 注册):
77
+
78
+ ```tsx
79
+ // main.tsx
80
+ import '@greypan/web-ui'
81
+ // import '@greypan/web-ui/components/button'
82
+ ```
83
+
84
+ 或按需导入,只注册需要的组件:
85
+
86
+ ```tsx
87
+ // main.tsx 或任意组件文件
88
+ import '@greypan/web-ui/components/button'
89
+ import '@greypan/web-ui/components/back-top'
90
+ ```
91
+
92
+ 添加类型声明以让 TypeScript 识别自定义元素 JSX 属性:
93
+
94
+ ```tsx
95
+ // env.d.ts 或任意类型声明文件
96
+ import '@greypan/web-ui/types/react'
97
+ ```
98
+
99
+ ### 应用布局
100
+
101
+ 用 `<web-ui-layout>` 包裹路由,配合 `<web-ui-back-top>` 实现全局回到顶部:
102
+
103
+ ```tsx
104
+ // root.tsx
105
+ import { Outlet } from '@tanstack/react-router'
106
+
107
+ export function Root() {
108
+ return (
109
+ <>
110
+ <web-ui-layout>
111
+ <h1>My App</h1>
112
+
113
+ {/* 按钮变体 */}
114
+ <div className="flex gap-2">
115
+ <web-ui-button>默认</web-ui-button>
116
+ <web-ui-button primary>Primary</web-ui-button>
117
+ <web-ui-button text>Text</web-ui-button>
118
+ <web-ui-button full>Full Width</web-ui-button>
119
+ </div>
120
+
121
+ {/* 具名插槽 */}
122
+ <web-ui-button>
123
+ <span slot="prefix">前缀</span>
124
+ 带前后缀插槽的按钮
125
+ <span slot="suffix">后缀</span>
126
+ </web-ui-button>
127
+
128
+ {/* 路由出口 */}
129
+ <Outlet />
130
+ </web-ui-layout>
131
+
132
+ <web-ui-back-top
133
+ threshold={300}
134
+ onvisible-change={e => {
135
+ console.log('visible: ', e.detail.visible)
136
+ }}
137
+ />
138
+ </>
139
+ )
140
+ }
141
+ ```
142
+
143
+ > `onvisible-change` 在 React 19+ 中可用(props 转发到 custom element)。React 18 请改用 `ref` + `addEventListener`。
144
+
145
+ ### SVG 线条动画
146
+
147
+ 包裹内联 `<svg>` 来实现线条绘制动画:
148
+
149
+ ```tsx
150
+ function SvgDemo() {
151
+ return (
152
+ <web-ui-svg-draw-lines>
153
+ <svg viewBox="0 0 24 24" width="100" height="100" fill="none" stroke="currentColor" stroke-width="2">
154
+ <path d="M4 4v16M8 6h12M8 12h6m-6 6h10" />
155
+ </svg>
156
+ </web-ui-svg-draw-lines>
157
+ )
158
+ }
159
+ ```
160
+
161
+ ## Vue 中使用
162
+
163
+ > 需要 `vue >= 3` 作为可选 peer 依赖。
164
+
165
+ ### 初始化
166
+
167
+ **方式 A — auto-import(Vite,推荐)**
168
+
169
+ 使用 `unplugin-web-components` 自动注册:
170
+
171
+ ```ts
172
+ // vite.config.ts
173
+ import vue from '@vitejs/plugin-vue'
174
+ import unpluginWebComponents from '@greypan/unplugin-web-components/vite'
175
+
176
+ export default {
177
+ plugins: [
178
+ vue({
179
+ template: {
180
+ compilerOptions: {
181
+ // 告诉 Vue 模板编译器将 web-ui-* 标签视为自定义元素
182
+ isCustomElement: tag => tag.startsWith('web-ui-') || tag.startsWith('WebUi')
183
+ }
184
+ }
185
+ }),
186
+ unpluginWebComponents({
187
+ tagPrefix: 'web-ui',
188
+ packageName: '@greypan/web-ui',
189
+ sideEffects: true
190
+ })
191
+ ]
192
+ }
193
+ ```
194
+
195
+ **方式 B — 手动导入**
196
+
197
+ ```ts
198
+ // main.ts
199
+ import { createApp } from 'vue'
200
+ import '@greypan/web-ui' // 全量导入
201
+ // import '@greypan/web-ui/components/button'
202
+ import App from './App.vue'
203
+
204
+ createApp(App).mount('#app')
205
+ ```
206
+
207
+ 同时配置 Vue 编译器以识别自定义元素:
208
+
209
+ ```ts
210
+ // vite.config.ts
211
+ vue({
212
+ template: {
213
+ compilerOptions: {
214
+ isCustomElement: tag => tag.startsWith('web-ui-') || tag.startsWith('WebUi')
215
+ }
216
+ }
217
+ })
218
+ ```
219
+
220
+ Vue 模板中的类型增强:
221
+
222
+ ```ts
223
+ // env.d.ts 或任意类型声明文件
224
+ import '@greypan/web-ui/types/vue'
225
+ ```
226
+
227
+ ### 应用布局
228
+
229
+ 用 `<web-ui-layout>` 包裹应用,使用按钮的各种变体:
230
+
231
+ ```vue
232
+ <template>
233
+ <web-ui-layout>
234
+ <h1>My App</h1>
235
+
236
+ <div class="flex gap-2">
237
+ <web-ui-button>默认</web-ui-button>
238
+ <web-ui-button primary>Primary</web-ui-button>
239
+ <web-ui-button text>Text</web-ui-button>
240
+ <web-ui-button full>Full Width</web-ui-button>
241
+ </div>
242
+
243
+ <web-ui-button>
244
+ <span slot="prefix">前缀</span>
245
+ 带前后缀插槽的按钮
246
+ <span slot="suffix">后缀</span>
247
+ </web-ui-button>
248
+
249
+ <RouterView />
250
+ </web-ui-layout>
251
+
252
+ <web-ui-back-top :threshold="300" @visible-change="onVisibleChange" />
253
+ </template>
254
+
255
+ <script setup lang="ts">
256
+ function onVisibleChange(e: CustomEvent<{ visible: boolean }>) {
257
+ console.log('visible: ', e.detail.visible)
258
+ }
259
+ </script>
260
+ ```
261
+
262
+ ### SVG 线条动画
263
+
264
+ ```vue
265
+ <template>
266
+ <web-ui-svg-draw-lines>
267
+ <svg viewBox="0 0 24 24" width="100" height="100" fill="none" stroke="currentColor" stroke-width="2">
268
+ <path d="M4 4v16M8 6h12M8 12h6m-6 6h10" />
269
+ </svg>
270
+ </web-ui-svg-draw-lines>
271
+ </template>
272
+ ```
273
+
45
274
  ## API
46
275
 
47
276
  ### `<web-ui-button>`
package/README.md CHANGED
@@ -11,6 +11,7 @@ English | [简体中文](./README.CN.md)
11
11
  - **Layout**: Page layout with header/sidebar/tabbar slots
12
12
  - **SVG Draw Lines**: SVG line drawing animation with easing control
13
13
  - **Framework compatible**: Works with React, Vue, and vanilla HTML
14
+ - **Type safe**: Full TypeScript types for React and Vue
14
15
 
15
16
  ## Install
16
17
 
@@ -32,9 +33,12 @@ bun add @greypan/web-ui
32
33
 
33
34
  ## Quick Start
34
35
 
35
- ```html
36
- <script type="module" src="@greypan/web-ui"></script>
36
+ ```js
37
+ import '@greypan/web-ui'
38
+ // import '@greypan/web-ui/components/button'
39
+ ```
37
40
 
41
+ ```html
38
42
  <web-ui-button primary>Click me</web-ui-button>
39
43
  <web-ui-button text>Cancel</web-ui-button>
40
44
  <web-ui-button icon>
@@ -42,6 +46,231 @@ bun add @greypan/web-ui
42
46
  </web-ui-button>
43
47
  ```
44
48
 
49
+ ## React
50
+
51
+ > Requires `@types/react >= 16` as an optional peer dependency for type support.
52
+
53
+ ### Setup
54
+
55
+ **Option A — auto-import (Vite, recommended)**
56
+
57
+ Use `unplugin-web-components` to auto-register components when their tags appear in JSX:
58
+
59
+ ```ts
60
+ // vite.config.ts
61
+ import unpluginWebComponents from '@greypan/unplugin-web-components/vite'
62
+
63
+ export default {
64
+ plugins: [
65
+ unpluginWebComponents({
66
+ tagPrefix: 'web-ui',
67
+ packageName: '@greypan/web-ui',
68
+ sideEffects: true
69
+ })
70
+ ]
71
+ }
72
+ ```
73
+
74
+ **Option B — manual import**
75
+
76
+ Import the full library to register all components (side-effect registration):
77
+
78
+ ```tsx
79
+ // main.tsx
80
+ import '@greypan/web-ui'
81
+ // import '@greypan/web-ui/components/button'
82
+ ```
83
+
84
+ Or import only specific components for smaller bundle:
85
+
86
+ ```tsx
87
+ // main.tsx or any component file
88
+ import '@greypan/web-ui/components/button'
89
+ import '@greypan/web-ui/components/back-top'
90
+ ```
91
+
92
+ Add type augmentation so TypeScript recognizes the custom element JSX attributes:
93
+
94
+ ```tsx
95
+ // env.d.ts or any type declaration file
96
+ import '@greypan/web-ui/types/react'
97
+ ```
98
+
99
+ ### App Layout
100
+
101
+ Wrap your router with `<web-ui-layout>` and use `<web-ui-back-top>` for global scroll-to-top:
102
+
103
+ ```tsx
104
+ // root.tsx
105
+ import { Outlet } from '@tanstack/react-router'
106
+
107
+ export function Root() {
108
+ return (
109
+ <>
110
+ <web-ui-layout>
111
+ <h1>My App</h1>
112
+
113
+ {/* Button variants */}
114
+ <div className="flex gap-2">
115
+ <web-ui-button>Default</web-ui-button>
116
+ <web-ui-button primary>Primary</web-ui-button>
117
+ <web-ui-button text>Text</web-ui-button>
118
+ <web-ui-button full>Full Width</web-ui-button>
119
+ </div>
120
+
121
+ {/* Named slots */}
122
+ <web-ui-button>
123
+ <span slot="prefix">prefix</span>
124
+ Button with prefix/suffix slots
125
+ <span slot="suffix">suffix</span>
126
+ </web-ui-button>
127
+
128
+ {/* Router outlet for page content */}
129
+ <Outlet />
130
+ </web-ui-layout>
131
+
132
+ <web-ui-back-top
133
+ threshold={300}
134
+ onvisible-change={e => {
135
+ console.log('visible: ', e.detail.visible)
136
+ }}
137
+ />
138
+ </>
139
+ )
140
+ }
141
+ ```
142
+
143
+ > `onvisible-change` works in React 19+ (props forward to custom elements). For React 18, use a `ref` + `addEventListener` instead.
144
+
145
+ ### SVG Draw Lines
146
+
147
+ Wrap an inline `<svg>` to animate its stroke drawing:
148
+
149
+ ```tsx
150
+ function SvgDemo() {
151
+ return (
152
+ <web-ui-svg-draw-lines>
153
+ <svg viewBox="0 0 24 24" width="100" height="100" fill="none" stroke="currentColor" stroke-width="2">
154
+ <path d="M4 4v16M8 6h12M8 12h6m-6 6h10" />
155
+ </svg>
156
+ </web-ui-svg-draw-lines>
157
+ )
158
+ }
159
+ ```
160
+
161
+ ## Vue
162
+
163
+ > Requires `vue >= 3` as an optional peer dependency.
164
+
165
+ ### Setup
166
+
167
+ **Option A — auto-import (Vite, recommended)**
168
+
169
+ Use `unplugin-web-components` for auto-registration:
170
+
171
+ ```ts
172
+ // vite.config.ts
173
+ import vue from '@vitejs/plugin-vue'
174
+ import unpluginWebComponents from '@greypan/unplugin-web-components/vite'
175
+
176
+ export default {
177
+ plugins: [
178
+ vue({
179
+ template: {
180
+ compilerOptions: {
181
+ // tell Vue's template compiler to treat web-ui-* tags as custom elements
182
+ isCustomElement: tag => tag.startsWith('web-ui-') || tag.startsWith('WebUi')
183
+ }
184
+ }
185
+ }),
186
+ unpluginWebComponents({
187
+ tagPrefix: 'web-ui',
188
+ packageName: '@greypan/web-ui',
189
+ sideEffects: true
190
+ })
191
+ ]
192
+ }
193
+ ```
194
+
195
+ **Option B — manual import**
196
+
197
+ ```ts
198
+ // main.ts
199
+ import { createApp } from 'vue'
200
+ import '@greypan/web-ui' // register all components
201
+ // import '@greypan/web-ui/components/button'
202
+ import App from './App.vue'
203
+
204
+ createApp(App).mount('#app')
205
+ ```
206
+
207
+ And configure the Vue compiler to recognize custom elements:
208
+
209
+ ```ts
210
+ // vite.config.ts
211
+ vue({
212
+ template: {
213
+ compilerOptions: {
214
+ isCustomElement: tag => tag.startsWith('web-ui-') || tag.startsWith('WebUi')
215
+ }
216
+ }
217
+ })
218
+ ```
219
+
220
+ For type augmentation in Vue templates:
221
+
222
+ ```ts
223
+ // env.d.ts or any type declaration file
224
+ import '@greypan/web-ui/types/vue'
225
+ ```
226
+
227
+ ### App Layout
228
+
229
+ Wrap your app with `<web-ui-layout>` and use the button variants:
230
+
231
+ ```vue
232
+ <template>
233
+ <web-ui-layout>
234
+ <h1>My App</h1>
235
+
236
+ <div class="flex gap-2">
237
+ <web-ui-button>默认</web-ui-button>
238
+ <web-ui-button primary>Primary</web-ui-button>
239
+ <web-ui-button text>Text</web-ui-button>
240
+ <web-ui-button full>Full Width</web-ui-button>
241
+ </div>
242
+
243
+ <web-ui-button>
244
+ <span slot="prefix">prefix</span>
245
+ 带前后缀插槽的按钮
246
+ <span slot="suffix">suffix</span>
247
+ </web-ui-button>
248
+
249
+ <RouterView />
250
+ </web-ui-layout>
251
+
252
+ <web-ui-back-top :threshold="300" @visible-change="onVisibleChange" />
253
+ </template>
254
+
255
+ <script setup lang="ts">
256
+ function onVisibleChange(e: CustomEvent<{ visible: boolean }>) {
257
+ console.log('visible: ', e.detail.visible)
258
+ }
259
+ </script>
260
+ ```
261
+
262
+ ### SVG Draw Lines
263
+
264
+ ```vue
265
+ <template>
266
+ <web-ui-svg-draw-lines>
267
+ <svg viewBox="0 0 24 24" width="100" height="100" fill="none" stroke="currentColor" stroke-width="2">
268
+ <path d="M4 4v16M8 6h12M8 12h6m-6 6h10" />
269
+ </svg>
270
+ </web-ui-svg-draw-lines>
271
+ </template>
272
+ ```
273
+
45
274
  ## API
46
275
 
47
276
  ### `<web-ui-button>`
@@ -1,19 +1,16 @@
1
- import { customElement as e } from "../../node_modules/.pnpm/@lit_reactive-element@2.1.2/node_modules/@lit/reactive-element/decorators/custom-element.js";
2
- import { property as t } from "../../node_modules/.pnpm/@lit_reactive-element@2.1.2/node_modules/@lit/reactive-element/decorators/property.js";
3
- import { state as n } from "../../node_modules/.pnpm/@lit_reactive-element@2.1.2/node_modules/@lit/reactive-element/decorators/state.js";
4
- import "../../node_modules/.pnpm/lit@3.3.3/node_modules/lit/decorators.js";
5
- import r from "../../_virtual/_@oxc-project_runtime@0.138.0/helpers/esm/decorate.js";
6
- import i from "./style.js";
1
+ import e from "../../_virtual/_@oxc-project_runtime@0.138.0/helpers/esm/decorate.js";
2
+ import t from "./style.js";
7
3
  import "iconify-icon";
8
- import { LitElement as a, html as o, unsafeCSS as s } from "lit";
4
+ import { LitElement as n, html as r, unsafeCSS as i } from "lit";
5
+ import { customElement as a, property as o, state as s } from "lit/decorators.js";
9
6
  import { getRootScrollTop as c } from "@greypan/browser-kit";
10
7
  //#region src/components/back-top/index.ts
11
- var l = class extends a {
8
+ var l = class extends n {
12
9
  constructor(...e) {
13
10
  super(...e), this.smooth = !0, this.threshold = 200, this.visible = !1, this.scrollTarget = window;
14
11
  }
15
12
  static {
16
- this.styles = s(i);
13
+ this.styles = i(t);
17
14
  }
18
15
  connectedCallback() {
19
16
  super.connectedCallback(), this.computeVisible(), this.onScrollTarget();
@@ -56,7 +53,7 @@ var l = class extends a {
56
53
  e.key == "Enter" && (e.preventDefault(), this.toTop());
57
54
  }
58
55
  render() {
59
- return o`
56
+ return r`
60
57
  <div role="button" tabindex="0" @click=${this.toTop} @keydown=${this.onEnter}>
61
58
  <slot>
62
59
  <!-- 默认 slot 加上 tabindex="-1",防止双重 focus -->
@@ -68,19 +65,19 @@ var l = class extends a {
68
65
  `;
69
66
  }
70
67
  };
71
- r([t({
68
+ e([o({
72
69
  type: Boolean,
73
70
  reflect: !0
74
- })], l.prototype, "smooth", void 0), r([t({
71
+ })], l.prototype, "smooth", void 0), e([o({
75
72
  type: Number,
76
73
  reflect: !0
77
- })], l.prototype, "threshold", void 0), r([t({
74
+ })], l.prototype, "threshold", void 0), e([o({
78
75
  type: Boolean,
79
76
  reflect: !0
80
- })], l.prototype, "visible", void 0), r([t({
77
+ })], l.prototype, "visible", void 0), e([o({
81
78
  type: Object,
82
79
  attribute: !1
83
- })], l.prototype, "scrollTarget", void 0), r([n()], l.prototype, "eventController", void 0), l = r([e("web-ui-back-top")], l);
80
+ })], l.prototype, "scrollTarget", void 0), e([s()], l.prototype, "eventController", void 0), l = e([a("web-ui-back-top")], l);
84
81
  //#endregion
85
82
  export { l as WebUiBackTop };
86
83
 
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":[],"sources":["../../../src/components/back-top/index.ts"],"sourcesContent":["import 'iconify-icon'\nimport '@/components/button'\nimport { getRootScrollTop } from '@greypan/browser-kit'\nimport { html, LitElement, type PropertyValues, unsafeCSS } from 'lit'\nimport { customElement, property, state } from 'lit/decorators.js'\n\nimport style from './style.css?inline'\n\n@customElement('web-ui-back-top')\nexport class WebUiBackTop extends LitElement {\n static override styles = unsafeCSS(style)\n\n @property({ type: Boolean, reflect: true }) smooth = true\n @property({ type: Number, reflect: true }) threshold: number = 200\n @property({ type: Boolean, reflect: true }) visible = false\n @property({ type: Object, attribute: false }) scrollTarget: HTMLElement | Window = window\n\n @state() private eventController?: AbortController\n\n override connectedCallback() {\n super.connectedCallback()\n this.computeVisible()\n this.onScrollTarget()\n }\n\n override disconnectedCallback() {\n super.disconnectedCallback()\n this.eventController?.abort()\n }\n\n protected override willUpdate(props: PropertyValues) {\n super.willUpdate(props)\n\n if (props.has('threshold') || props.has('scrollTarget')) {\n this.computeVisible()\n }\n if (props.has('scrollTarget') && this.hasUpdated) {\n this.onScrollTarget()\n }\n }\n\n private get target() {\n if (!this.scrollTarget) {\n return window\n }\n const isRoot =\n this.scrollTarget === window ||\n this.scrollTarget === document.documentElement ||\n this.scrollTarget === document.body\n return isRoot ? window : this.scrollTarget\n }\n\n private onScrollTarget() {\n this.eventController?.abort()\n this.eventController = new AbortController()\n\n this.target.addEventListener(\n 'scroll',\n () => {\n this.computeVisible()\n },\n {\n signal: this.eventController.signal,\n passive: true\n }\n )\n }\n\n private computeVisible() {\n const { target } = this\n let nextVisible: boolean\n if (target === window) {\n nextVisible = getRootScrollTop() >= this.threshold\n } else if (target instanceof HTMLElement) {\n nextVisible = target.scrollTop >= this.threshold\n } else {\n throw new Error('Prop scrollTarget must be HTMLElement or Window.')\n }\n if (nextVisible !== this.visible) {\n this.visible = nextVisible\n this.dispatchEvent(\n new CustomEvent('visible-change', {\n detail: { visible: nextVisible },\n bubbles: true,\n composed: true\n })\n )\n }\n }\n\n toTop() {\n this.target.scrollTo({\n top: 0,\n behavior: this.smooth ? 'smooth' : 'auto'\n })\n }\n\n private onEnter(e: KeyboardEvent) {\n if ((e as KeyboardEvent).key == 'Enter') {\n e.preventDefault()\n this.toTop()\n }\n }\n\n override render() {\n return html`\n <div role=\"button\" tabindex=\"0\" @click=${this.toTop} @keydown=${this.onEnter}>\n <slot>\n <!-- 默认 slot 加上 tabindex=\"-1\",防止双重 focus -->\n <web-ui-button tabindex=\"-1\" icon>\n <iconify-icon icon=\"octicon:move-to-top-16\" width=\"16\" height=\"16\"></iconify-icon>\n </web-ui-button>\n </slot>\n </div>\n `\n }\n}\n\nexport interface WebUiBackTop {\n readonly $events: {\n 'visible-change': CustomEvent<{ visible: boolean }>\n }\n}\n"],"mappings":";;;;;;;;;;AASO,IAAA,IAAA,cAA2B,EAAW;;6BAGU,qBACU,oBACT,wBAC6B;;;gBAL1D,EAAU,CAAK;;CASxC,oBAA6B;EAG3B,AAFA,MAAM,kBAAkB,GACxB,KAAK,eAAe,GACpB,KAAK,eAAe;CACtB;CAEA,uBAAgC;EAE9B,AADA,MAAM,qBAAqB,GAC3B,KAAK,iBAAiB,MAAM;CAC9B;CAEA,WAA8B,GAAuB;EAMnD,AALA,MAAM,WAAW,CAAK,IAElB,EAAM,IAAI,WAAW,KAAK,EAAM,IAAI,cAAc,MACpD,KAAK,eAAe,GAElB,EAAM,IAAI,cAAc,KAAK,KAAK,cACpC,KAAK,eAAe;CAExB;CAEA,IAAY,SAAS;EAQnB,OAPK,KAAK,eAIR,KAAK,iBAAiB,UACtB,KAAK,iBAAiB,SAAS,mBAC/B,KAAK,iBAAiB,SAAS,OACjB,SAAS,KAAK,eANrB;CAOX;CAEA,iBAAyB;EAIvB,AAHA,KAAK,iBAAiB,MAAM,GAC5B,KAAK,kBAAkB,IAAI,gBAAgB,GAE3C,KAAK,OAAO,iBACV,gBACM;GACJ,KAAK,eAAe;EACtB,GACA;GACE,QAAQ,KAAK,gBAAgB;GAC7B,SAAS;EACX,CACF;CACF;CAEA,iBAAyB;EACvB,IAAM,EAAE,cAAW,MACf;EACJ,IAAI,MAAW,QACb,IAAc,EAAiB,KAAK,KAAK;OACpC,IAAI,aAAkB,aAC3B,IAAc,EAAO,aAAa,KAAK;OAEvC,MAAU,MAAM,kDAAkD;EAEpE,AAAI,MAAgB,KAAK,YACvB,KAAK,UAAU,GACf,KAAK,cACH,IAAI,YAAY,kBAAkB;GAChC,QAAQ,EAAE,SAAS,EAAY;GAC/B,SAAS;GACT,UAAU;EACZ,CAAC,CACH;CAEJ;CAEA,QAAQ;EACN,KAAK,OAAO,SAAS;GACnB,KAAK;GACL,UAAU,KAAK,SAAS,WAAW;EACrC,CAAC;CACH;CAEA,QAAgB,GAAkB;EAChC,AAAK,EAAoB,OAAO,YAC9B,EAAE,eAAe,GACjB,KAAK,MAAM;CAEf;CAEA,SAAkB;EAChB,OAAO,CAAI;+CACgC,KAAK,MAAM,YAAY,KAAK,QAAQ;;;;;;;;;CASjF;AACF;GAxGG,EAAS;CAAE,MAAM;CAAS,SAAS;AAAK,CAAC,CAAA,GAAA,EAAA,WAAA,UAAA,KAAA,CAAA,MACzC,EAAS;CAAE,MAAM;CAAQ,SAAS;AAAK,CAAC,CAAA,GAAA,EAAA,WAAA,aAAA,KAAA,CAAA,MACxC,EAAS;CAAE,MAAM;CAAS,SAAS;AAAK,CAAC,CAAA,GAAA,EAAA,WAAA,WAAA,KAAA,CAAA,MACzC,EAAS;CAAE,MAAM;CAAQ,WAAW;AAAM,CAAC,CAAA,GAAA,EAAA,WAAA,gBAAA,KAAA,CAAA,MAE3C,EAAM,CAAA,GAAA,EAAA,WAAA,mBAAA,KAAA,CAAA,UATR,EAAc,iBAAiB,CAAA,GAAA,CAAA"}
1
+ {"version":3,"file":"index.js","names":[],"sources":["../../../src/components/back-top/index.ts"],"sourcesContent":["import 'iconify-icon'\nimport '@/components/button'\nimport { getRootScrollTop } from '@greypan/browser-kit'\nimport { html, LitElement, type PropertyValues, unsafeCSS } from 'lit'\nimport { customElement, property, state } from 'lit/decorators.js'\n\nimport style from './style.css?inline'\n\n@customElement('web-ui-back-top')\nexport class WebUiBackTop extends LitElement {\n static override styles = unsafeCSS(style)\n\n @property({ type: Boolean, reflect: true }) smooth = true\n @property({ type: Number, reflect: true }) threshold: number = 200\n @property({ type: Boolean, reflect: true }) visible = false\n @property({ type: Object, attribute: false }) scrollTarget: HTMLElement | Window = window\n\n @state() private eventController?: AbortController\n\n override connectedCallback() {\n super.connectedCallback()\n this.computeVisible()\n this.onScrollTarget()\n }\n\n override disconnectedCallback() {\n super.disconnectedCallback()\n this.eventController?.abort()\n }\n\n protected override willUpdate(props: PropertyValues) {\n super.willUpdate(props)\n\n if (props.has('threshold') || props.has('scrollTarget')) {\n this.computeVisible()\n }\n if (props.has('scrollTarget') && this.hasUpdated) {\n this.onScrollTarget()\n }\n }\n\n private get target() {\n if (!this.scrollTarget) {\n return window\n }\n const isRoot =\n this.scrollTarget === window ||\n this.scrollTarget === document.documentElement ||\n this.scrollTarget === document.body\n return isRoot ? window : this.scrollTarget\n }\n\n private onScrollTarget() {\n this.eventController?.abort()\n this.eventController = new AbortController()\n\n this.target.addEventListener(\n 'scroll',\n () => {\n this.computeVisible()\n },\n {\n signal: this.eventController.signal,\n passive: true\n }\n )\n }\n\n private computeVisible() {\n const { target } = this\n let nextVisible: boolean\n if (target === window) {\n nextVisible = getRootScrollTop() >= this.threshold\n } else if (target instanceof HTMLElement) {\n nextVisible = target.scrollTop >= this.threshold\n } else {\n throw new Error('Prop scrollTarget must be HTMLElement or Window.')\n }\n if (nextVisible !== this.visible) {\n this.visible = nextVisible\n this.dispatchEvent(\n new CustomEvent('visible-change', {\n detail: { visible: nextVisible },\n bubbles: true,\n composed: true\n })\n )\n }\n }\n\n toTop() {\n this.target.scrollTo({\n top: 0,\n behavior: this.smooth ? 'smooth' : 'auto'\n })\n }\n\n private onEnter(e: KeyboardEvent) {\n if ((e as KeyboardEvent).key == 'Enter') {\n e.preventDefault()\n this.toTop()\n }\n }\n\n override render() {\n return html`\n <div role=\"button\" tabindex=\"0\" @click=${this.toTop} @keydown=${this.onEnter}>\n <slot>\n <!-- 默认 slot 加上 tabindex=\"-1\",防止双重 focus -->\n <web-ui-button tabindex=\"-1\" icon>\n <iconify-icon icon=\"octicon:move-to-top-16\" width=\"16\" height=\"16\"></iconify-icon>\n </web-ui-button>\n </slot>\n </div>\n `\n }\n}\n\nexport interface WebUiBackTop {\n readonly $events: {\n 'visible-change': CustomEvent<{ visible: boolean }>\n }\n}\n"],"mappings":";;;;;;;AASO,IAAA,IAAA,cAA2B,EAAW;;6BAGU,qBACU,oBACT,wBAC6B;;;gBAL1D,EAAU,CAAK;;CASxC,oBAA6B;EAG3B,AAFA,MAAM,kBAAkB,GACxB,KAAK,eAAe,GACpB,KAAK,eAAe;CACtB;CAEA,uBAAgC;EAE9B,AADA,MAAM,qBAAqB,GAC3B,KAAK,iBAAiB,MAAM;CAC9B;CAEA,WAA8B,GAAuB;EAMnD,AALA,MAAM,WAAW,CAAK,IAElB,EAAM,IAAI,WAAW,KAAK,EAAM,IAAI,cAAc,MACpD,KAAK,eAAe,GAElB,EAAM,IAAI,cAAc,KAAK,KAAK,cACpC,KAAK,eAAe;CAExB;CAEA,IAAY,SAAS;EAQnB,OAPK,KAAK,eAIR,KAAK,iBAAiB,UACtB,KAAK,iBAAiB,SAAS,mBAC/B,KAAK,iBAAiB,SAAS,OACjB,SAAS,KAAK,eANrB;CAOX;CAEA,iBAAyB;EAIvB,AAHA,KAAK,iBAAiB,MAAM,GAC5B,KAAK,kBAAkB,IAAI,gBAAgB,GAE3C,KAAK,OAAO,iBACV,gBACM;GACJ,KAAK,eAAe;EACtB,GACA;GACE,QAAQ,KAAK,gBAAgB;GAC7B,SAAS;EACX,CACF;CACF;CAEA,iBAAyB;EACvB,IAAM,EAAE,cAAW,MACf;EACJ,IAAI,MAAW,QACb,IAAc,EAAiB,KAAK,KAAK;OACpC,IAAI,aAAkB,aAC3B,IAAc,EAAO,aAAa,KAAK;OAEvC,MAAU,MAAM,kDAAkD;EAEpE,AAAI,MAAgB,KAAK,YACvB,KAAK,UAAU,GACf,KAAK,cACH,IAAI,YAAY,kBAAkB;GAChC,QAAQ,EAAE,SAAS,EAAY;GAC/B,SAAS;GACT,UAAU;EACZ,CAAC,CACH;CAEJ;CAEA,QAAQ;EACN,KAAK,OAAO,SAAS;GACnB,KAAK;GACL,UAAU,KAAK,SAAS,WAAW;EACrC,CAAC;CACH;CAEA,QAAgB,GAAkB;EAChC,AAAK,EAAoB,OAAO,YAC9B,EAAE,eAAe,GACjB,KAAK,MAAM;CAEf;CAEA,SAAkB;EAChB,OAAO,CAAI;+CACgC,KAAK,MAAM,YAAY,KAAK,QAAQ;;;;;;;;;CASjF;AACF;GAxGG,EAAS;CAAE,MAAM;CAAS,SAAS;AAAK,CAAC,CAAA,GAAA,EAAA,WAAA,UAAA,KAAA,CAAA,MACzC,EAAS;CAAE,MAAM;CAAQ,SAAS;AAAK,CAAC,CAAA,GAAA,EAAA,WAAA,aAAA,KAAA,CAAA,MACxC,EAAS;CAAE,MAAM;CAAS,SAAS;AAAK,CAAC,CAAA,GAAA,EAAA,WAAA,WAAA,KAAA,CAAA,MACzC,EAAS;CAAE,MAAM;CAAQ,WAAW;AAAM,CAAC,CAAA,GAAA,EAAA,WAAA,gBAAA,KAAA,CAAA,MAE3C,EAAM,CAAA,GAAA,EAAA,WAAA,mBAAA,KAAA,CAAA,UATR,EAAc,iBAAiB,CAAA,GAAA,CAAA"}
@@ -1,21 +1,19 @@
1
- import { customElement as e } from "../../node_modules/.pnpm/@lit_reactive-element@2.1.2/node_modules/@lit/reactive-element/decorators/custom-element.js";
2
- import { property as t } from "../../node_modules/.pnpm/@lit_reactive-element@2.1.2/node_modules/@lit/reactive-element/decorators/property.js";
3
- import "../../node_modules/.pnpm/lit@3.3.3/node_modules/lit/decorators.js";
4
- import n from "./style.js";
5
- import r from "../../_virtual/_@oxc-project_runtime@0.138.0/helpers/esm/decorate.js";
6
- import { LitElement as i, html as a, unsafeCSS as o } from "lit";
1
+ import e from "./style.js";
2
+ import t from "../../_virtual/_@oxc-project_runtime@0.138.0/helpers/esm/decorate.js";
3
+ import { LitElement as n, html as r, unsafeCSS as i } from "lit";
4
+ import { customElement as a, property as o } from "lit/decorators.js";
7
5
  //#region src/components/button/index.ts
8
- var s = class extends i {
6
+ var s = class extends n {
9
7
  constructor(...e) {
10
8
  super(...e), this.full = !1, this.primary = !1, this.text = !1, this.icon = !1;
11
9
  }
12
10
  static {
13
- this.styles = o(n);
11
+ this.styles = i(e);
14
12
  }
15
13
  render() {
16
- return a`
14
+ return r`
17
15
  <button>
18
- ${this.icon ? a`<slot></slot>` : a`
16
+ ${this.icon ? r`<slot></slot>` : r`
19
17
  <slot name="prefix"></slot>
20
18
  <slot></slot>
21
19
  <slot name="suffix"></slot>
@@ -24,19 +22,19 @@ var s = class extends i {
24
22
  `;
25
23
  }
26
24
  };
27
- r([t({
25
+ t([o({
28
26
  type: Boolean,
29
27
  reflect: !0
30
- })], s.prototype, "full", void 0), r([t({
28
+ })], s.prototype, "full", void 0), t([o({
31
29
  type: Boolean,
32
30
  reflect: !0
33
- })], s.prototype, "primary", void 0), r([t({
31
+ })], s.prototype, "primary", void 0), t([o({
34
32
  type: Boolean,
35
33
  reflect: !0
36
- })], s.prototype, "text", void 0), r([t({
34
+ })], s.prototype, "text", void 0), t([o({
37
35
  type: Boolean,
38
36
  reflect: !0
39
- })], s.prototype, "icon", void 0), s = r([e("web-ui-button")], s);
37
+ })], s.prototype, "icon", void 0), s = t([a("web-ui-button")], s);
40
38
  //#endregion
41
39
  export { s as WebUiButton };
42
40
 
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":[],"sources":["../../../src/components/button/index.ts"],"sourcesContent":["import { html, LitElement, unsafeCSS } from 'lit'\nimport { customElement, property } from 'lit/decorators.js'\n\nimport style from './style.css?inline'\n\n@customElement('web-ui-button')\nexport class WebUiButton extends LitElement {\n static override styles = unsafeCSS(style)\n\n @property({ type: Boolean, reflect: true }) full = false\n @property({ type: Boolean, reflect: true }) primary = false\n @property({ type: Boolean, reflect: true }) text = false\n @property({ type: Boolean, reflect: true }) icon = false\n\n override render() {\n return html`\n <button>\n ${this.icon\n ? html`<slot></slot>`\n : html`\n <slot name=\"prefix\"></slot>\n <slot></slot>\n <slot name=\"suffix\"></slot>\n `}\n </button>\n `\n }\n}\n"],"mappings":";;;;;;;AAMO,IAAA,IAAA,cAA0B,EAAW;;2BAGS,mBACG,gBACH,gBACA;;;gBAL1B,EAAU,CAAK;;CAOxC,SAAkB;EAChB,OAAO,CAAI;;UAEL,KAAK,OACH,CAAI,kBACJ,CAAI;;;;cAIF;;;CAGZ;AACF;GAlBG,EAAS;CAAE,MAAM;CAAS,SAAS;AAAK,CAAC,CAAA,GAAA,EAAA,WAAA,QAAA,KAAA,CAAA,MACzC,EAAS;CAAE,MAAM;CAAS,SAAS;AAAK,CAAC,CAAA,GAAA,EAAA,WAAA,WAAA,KAAA,CAAA,MACzC,EAAS;CAAE,MAAM;CAAS,SAAS;AAAK,CAAC,CAAA,GAAA,EAAA,WAAA,QAAA,KAAA,CAAA,MACzC,EAAS;CAAE,MAAM;CAAS,SAAS;AAAK,CAAC,CAAA,GAAA,EAAA,WAAA,QAAA,KAAA,CAAA,UAP3C,EAAc,eAAe,CAAA,GAAA,CAAA"}
1
+ {"version":3,"file":"index.js","names":[],"sources":["../../../src/components/button/index.ts"],"sourcesContent":["import { html, LitElement, unsafeCSS } from 'lit'\nimport { customElement, property } from 'lit/decorators.js'\n\nimport style from './style.css?inline'\n\n@customElement('web-ui-button')\nexport class WebUiButton extends LitElement {\n static override styles = unsafeCSS(style)\n\n @property({ type: Boolean, reflect: true }) full = false\n @property({ type: Boolean, reflect: true }) primary = false\n @property({ type: Boolean, reflect: true }) text = false\n @property({ type: Boolean, reflect: true }) icon = false\n\n override render() {\n return html`\n <button>\n ${this.icon\n ? html`<slot></slot>`\n : html`\n <slot name=\"prefix\"></slot>\n <slot></slot>\n <slot name=\"suffix\"></slot>\n `}\n </button>\n `\n }\n}\n"],"mappings":";;;;;AAMO,IAAA,IAAA,cAA0B,EAAW;;2BAGS,mBACG,gBACH,gBACA;;;gBAL1B,EAAU,CAAK;;CAOxC,SAAkB;EAChB,OAAO,CAAI;;UAEL,KAAK,OACH,CAAI,kBACJ,CAAI;;;;cAIF;;;CAGZ;AACF;GAlBG,EAAS;CAAE,MAAM;CAAS,SAAS;AAAK,CAAC,CAAA,GAAA,EAAA,WAAA,QAAA,KAAA,CAAA,MACzC,EAAS;CAAE,MAAM;CAAS,SAAS;AAAK,CAAC,CAAA,GAAA,EAAA,WAAA,WAAA,KAAA,CAAA,MACzC,EAAS;CAAE,MAAM;CAAS,SAAS;AAAK,CAAC,CAAA,GAAA,EAAA,WAAA,QAAA,KAAA,CAAA,MACzC,EAAS;CAAE,MAAM;CAAS,SAAS;AAAK,CAAC,CAAA,GAAA,EAAA,WAAA,QAAA,KAAA,CAAA,UAP3C,EAAc,eAAe,CAAA,GAAA,CAAA"}
@@ -1,15 +1,14 @@
1
- import { customElement as e } from "../../node_modules/.pnpm/@lit_reactive-element@2.1.2/node_modules/@lit/reactive-element/decorators/custom-element.js";
2
- import "../../node_modules/.pnpm/lit@3.3.3/node_modules/lit/decorators.js";
3
- import t from "../../_virtual/_@oxc-project_runtime@0.138.0/helpers/esm/decorate.js";
4
- import n from "./style.js";
5
- import { LitElement as r, html as i, unsafeCSS as a } from "lit";
1
+ import e from "../../_virtual/_@oxc-project_runtime@0.138.0/helpers/esm/decorate.js";
2
+ import t from "./style.js";
3
+ import { LitElement as n, html as r, unsafeCSS as i } from "lit";
4
+ import { customElement as a } from "lit/decorators.js";
6
5
  //#region src/components/layout/index.ts
7
- var o = class extends r {
6
+ var o = class extends n {
8
7
  static {
9
- this.styles = a(n);
8
+ this.styles = i(t);
10
9
  }
11
10
  render() {
12
- return i`
11
+ return r`
13
12
  <header>
14
13
  <slot name="header"></slot>
15
14
  </header>
@@ -25,7 +24,7 @@ var o = class extends r {
25
24
  `;
26
25
  }
27
26
  };
28
- o = t([e("web-ui-layout")], o);
27
+ o = e([a("web-ui-layout")], o);
29
28
  //#endregion
30
29
  export { o as WebUiLayout };
31
30
 
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":[],"sources":["../../../src/components/layout/index.ts"],"sourcesContent":["import { html, LitElement, unsafeCSS } from 'lit'\nimport { customElement } from 'lit/decorators.js'\n\nimport style from './style.css?inline'\n\n@customElement('web-ui-layout')\nexport class WebUiLayout extends LitElement {\n static override styles = unsafeCSS(style)\n\n override render() {\n return html`\n <header>\n <slot name=\"header\"></slot>\n </header>\n <main>\n <slot></slot>\n </main>\n <aside>\n <div class=\"menu\"><slot name=\"sidebar\"></slot></div>\n </aside>\n <footer>\n <slot name=\"tabbar\"></slot>\n </footer>\n `\n }\n}\n"],"mappings":";;;;;;AAMO,IAAA,IAAA,cAA0B,EAAW;;gBACjB,EAAU,CAAK;;CAExC,SAAkB;EAChB,OAAO,CAAI;;;;;;;;;;;;;;CAcb;AACF;OApBC,EAAc,eAAe,CAAA,GAAA,CAAA"}
1
+ {"version":3,"file":"index.js","names":[],"sources":["../../../src/components/layout/index.ts"],"sourcesContent":["import { html, LitElement, unsafeCSS } from 'lit'\nimport { customElement } from 'lit/decorators.js'\n\nimport style from './style.css?inline'\n\n@customElement('web-ui-layout')\nexport class WebUiLayout extends LitElement {\n static override styles = unsafeCSS(style)\n\n override render() {\n return html`\n <header>\n <slot name=\"header\"></slot>\n </header>\n <main>\n <slot></slot>\n </main>\n <aside>\n <div class=\"menu\"><slot name=\"sidebar\"></slot></div>\n </aside>\n <footer>\n <slot name=\"tabbar\"></slot>\n </footer>\n `\n }\n}\n"],"mappings":";;;;;AAMO,IAAA,IAAA,cAA0B,EAAW;;gBACjB,EAAU,CAAK;;CAExC,SAAkB;EAChB,OAAO,CAAI;;;;;;;;;;;;;;CAcb;AACF;OApBC,EAAc,eAAe,CAAA,GAAA,CAAA"}
@@ -1,18 +1,14 @@
1
- import { customElement as e } from "../../node_modules/.pnpm/@lit_reactive-element@2.1.2/node_modules/@lit/reactive-element/decorators/custom-element.js";
2
- import { property as t } from "../../node_modules/.pnpm/@lit_reactive-element@2.1.2/node_modules/@lit/reactive-element/decorators/property.js";
3
- import { state as n } from "../../node_modules/.pnpm/@lit_reactive-element@2.1.2/node_modules/@lit/reactive-element/decorators/state.js";
4
- import { query as r } from "../../node_modules/.pnpm/@lit_reactive-element@2.1.2/node_modules/@lit/reactive-element/decorators/query.js";
5
- import "../../node_modules/.pnpm/lit@3.3.3/node_modules/lit/decorators.js";
6
- import i from "../../_virtual/_@oxc-project_runtime@0.138.0/helpers/esm/decorate.js";
7
- import a from "./style.js";
8
- import { LitElement as o, html as s, unsafeCSS as c } from "lit";
1
+ import e from "../../_virtual/_@oxc-project_runtime@0.138.0/helpers/esm/decorate.js";
2
+ import t from "./style.js";
3
+ import { LitElement as n, html as r, unsafeCSS as i } from "lit";
4
+ import { customElement as a, property as o, query as s, state as c } from "lit/decorators.js";
9
5
  //#region src/components/svg-draw-lines/index.ts
10
- var l = class extends o {
6
+ var l = class extends n {
11
7
  constructor(...e) {
12
8
  super(...e), this.duration = 1e3, this.easing = "linear", this.isAnimating = !1, this.svgClone = null;
13
9
  }
14
10
  static {
15
- this.styles = c(a);
11
+ this.styles = i(t);
16
12
  }
17
13
  handleSlotChange() {
18
14
  this.isAnimating || (this.cloneOriginalSvg(), this.isAnimating = !0, this.startAnimation());
@@ -71,19 +67,19 @@ var l = class extends o {
71
67
  this.isAnimating = !1, this.svgClone = null;
72
68
  }
73
69
  render() {
74
- return s`
70
+ return r`
75
71
  <slot ?hidden="${this.isAnimating}" @slotchange="${this.handleSlotChange}"></slot>
76
72
  ${this.isAnimating ? this.svgClone : ""}
77
73
  `;
78
74
  }
79
75
  };
80
- i([t({
76
+ e([o({
81
77
  type: Number,
82
78
  reflect: !0
83
- })], l.prototype, "duration", void 0), i([t({
79
+ })], l.prototype, "duration", void 0), e([o({
84
80
  type: String,
85
81
  reflect: !0
86
- })], l.prototype, "easing", void 0), i([n()], l.prototype, "isAnimating", void 0), i([n()], l.prototype, "svgClone", void 0), i([r("slot")], l.prototype, "slotEl", void 0), l = i([e("web-ui-svg-draw-lines")], l);
82
+ })], l.prototype, "easing", void 0), e([c()], l.prototype, "isAnimating", void 0), e([c()], l.prototype, "svgClone", void 0), e([s("slot")], l.prototype, "slotEl", void 0), l = e([a("web-ui-svg-draw-lines")], l);
87
83
  //#endregion
88
84
  export { l as WebUiSvgDrawLines };
89
85
 
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":[],"sources":["../../../src/components/svg-draw-lines/index.ts"],"sourcesContent":["import { html, LitElement, unsafeCSS } from 'lit'\nimport { customElement, property, query, state } from 'lit/decorators.js'\n\nimport style from './style.css?inline'\n\n@customElement('web-ui-svg-draw-lines')\nexport class WebUiSvgDrawLines extends LitElement {\n static override styles = unsafeCSS(style)\n\n @property({ type: Number, reflect: true }) duration = 1000\n @property({ type: String, reflect: true }) easing = 'linear'\n\n @state() private isAnimating = false\n @state() private svgClone: SVGSVGElement | null = null\n @query('slot') private slotEl!: HTMLSlotElement\n\n private handleSlotChange() {\n if (this.isAnimating) return\n\n this.cloneOriginalSvg()\n\n this.isAnimating = true\n void this.startAnimation()\n }\n\n private cloneOriginalSvg() {\n const original = this.slotEl.assignedElements({ flatten: true })[0]\n if (!(original instanceof SVGSVGElement)) return\n\n const svgClone = original.cloneNode(true) as SVGSVGElement\n svgClone.classList.add('svg-clone')\n this.svgClone = svgClone\n }\n\n private async startAnimation() {\n if (!this.svgClone) return\n await this.updateComplete\n\n const selectors = 'path, rect, circle, line, polyline, polygon, ellipse'\n const elements = Array.from(this.svgClone.querySelectorAll(selectors)) as SVGGeometryElement[]\n\n const animTasks: SVGGeometryElement[] = []\n let cursor = { x: 0, y: 0 }\n\n // 除 path 外其余几何图形无需额外处理\n // 将绘制多段路径的单 path 先拆分为多 path 并重新插入 dom\n // 再分别计算每个 path 的 total length\n elements.forEach(el => {\n if (el instanceof SVGPathElement) {\n const d = el.getAttribute('d') || ''\n const segments = d.split(/(?=[Mm])/).filter(s => s.trim())\n\n // 无论是一段还是多段,统一处理\n segments.forEach(seg => {\n const pathPart = segments.length > 1 ? (el.cloneNode() as SVGPathElement) : el\n let finalD = seg.startsWith('m') ? `M${cursor.x} ${cursor.y}${seg}` : seg\n\n finalD = this.fixPathGap(pathPart, finalD)\n pathPart.setAttribute('d', finalD)\n\n if (segments.length > 1) el.parentNode?.insertBefore(pathPart, el)\n\n animTasks.push(pathPart)\n\n const end = pathPart.getPointAtLength(pathPart.getTotalLength())\n cursor = { x: end.x, y: end.y }\n })\n\n if (segments.length > 1) el.remove()\n } else {\n animTasks.push(el)\n }\n })\n\n if (animTasks.length === 0) return this.stopAnimation()\n\n const promises = animTasks.map((el, i) => {\n return new Promise<void>(resolve => {\n this.drawLine(el, i, resolve)\n })\n })\n\n await Promise.all(promises)\n this.stopAnimation()\n }\n\n // 缺口修复逻辑\n // 多走 0.1px 触发渲染闭合和确定起始矢量方向\n private fixPathGap(pathEl: SVGPathElement, d: string): string {\n if (/[Zz]\\s*$/.test(d)) {\n pathEl.setAttribute('d', d)\n const p0 = pathEl.getPointAtLength(0)\n const p1 = pathEl.getPointAtLength(0.1)\n\n // 将 Z 替换为回到起点并多走 0.1px 的路径\n return d.replace(/[Zz]\\s*$/, `L${p0.x.toFixed(3)} ${p0.y.toFixed(3)} L${p1.x.toFixed(3)} ${p1.y.toFixed(3)}`)\n }\n return d\n }\n\n private drawLine(el: SVGGeometryElement, index: number, onFinish: () => void) {\n const strokeWidth = parseFloat(getComputedStyle(el).strokeWidth) || 0\n const len = el.getTotalLength() + strokeWidth\n\n el.style.strokeDasharray = `${len}`\n el.style.strokeDashoffset = `${len}`\n\n const anim = el.animate([{ strokeDashoffset: `${len}` }, { strokeDashoffset: '0' }], {\n duration: this.duration,\n easing: this.easing,\n fill: 'forwards'\n })\n anim.onfinish = onFinish\n }\n\n private stopAnimation() {\n this.isAnimating = false\n this.svgClone = null\n }\n\n override render() {\n return html`\n <slot ?hidden=\"${this.isAnimating}\" @slotchange=\"${this.handleSlotChange}\"></slot>\n ${this.isAnimating ? this.svgClone : ''}\n `\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","names":[],"sources":["../../../src/components/svg-draw-lines/index.ts"],"sourcesContent":["import { html, LitElement, unsafeCSS } from 'lit'\nimport { customElement, property, query, state } from 'lit/decorators.js'\n\nimport style from './style.css?inline'\n\n@customElement('web-ui-svg-draw-lines')\nexport class WebUiSvgDrawLines extends LitElement {\n static override styles = unsafeCSS(style)\n\n @property({ type: Number, reflect: true }) duration = 1000\n @property({ type: String, reflect: true }) easing = 'linear'\n\n @state() private isAnimating = false\n @state() private svgClone: SVGSVGElement | null = null\n @query('slot') private slotEl!: HTMLSlotElement\n\n private handleSlotChange() {\n if (this.isAnimating) return\n\n this.cloneOriginalSvg()\n\n this.isAnimating = true\n void this.startAnimation()\n }\n\n private cloneOriginalSvg() {\n const original = this.slotEl.assignedElements({ flatten: true })[0]\n if (!(original instanceof SVGSVGElement)) return\n\n const svgClone = original.cloneNode(true) as SVGSVGElement\n svgClone.classList.add('svg-clone')\n this.svgClone = svgClone\n }\n\n private async startAnimation() {\n if (!this.svgClone) return\n await this.updateComplete\n\n const selectors = 'path, rect, circle, line, polyline, polygon, ellipse'\n const elements = Array.from(this.svgClone.querySelectorAll(selectors)) as SVGGeometryElement[]\n\n const animTasks: SVGGeometryElement[] = []\n let cursor = { x: 0, y: 0 }\n\n // 除 path 外其余几何图形无需额外处理\n // 将绘制多段路径的单 path 先拆分为多 path 并重新插入 dom\n // 再分别计算每个 path 的 total length\n elements.forEach(el => {\n if (el instanceof SVGPathElement) {\n const d = el.getAttribute('d') || ''\n const segments = d.split(/(?=[Mm])/).filter(s => s.trim())\n\n // 无论是一段还是多段,统一处理\n segments.forEach(seg => {\n const pathPart = segments.length > 1 ? (el.cloneNode() as SVGPathElement) : el\n let finalD = seg.startsWith('m') ? `M${cursor.x} ${cursor.y}${seg}` : seg\n\n finalD = this.fixPathGap(pathPart, finalD)\n pathPart.setAttribute('d', finalD)\n\n if (segments.length > 1) el.parentNode?.insertBefore(pathPart, el)\n\n animTasks.push(pathPart)\n\n const end = pathPart.getPointAtLength(pathPart.getTotalLength())\n cursor = { x: end.x, y: end.y }\n })\n\n if (segments.length > 1) el.remove()\n } else {\n animTasks.push(el)\n }\n })\n\n if (animTasks.length === 0) return this.stopAnimation()\n\n const promises = animTasks.map((el, i) => {\n return new Promise<void>(resolve => {\n this.drawLine(el, i, resolve)\n })\n })\n\n await Promise.all(promises)\n this.stopAnimation()\n }\n\n // 缺口修复逻辑\n // 多走 0.1px 触发渲染闭合和确定起始矢量方向\n private fixPathGap(pathEl: SVGPathElement, d: string): string {\n if (/[Zz]\\s*$/.test(d)) {\n pathEl.setAttribute('d', d)\n const p0 = pathEl.getPointAtLength(0)\n const p1 = pathEl.getPointAtLength(0.1)\n\n // 将 Z 替换为回到起点并多走 0.1px 的路径\n return d.replace(/[Zz]\\s*$/, `L${p0.x.toFixed(3)} ${p0.y.toFixed(3)} L${p1.x.toFixed(3)} ${p1.y.toFixed(3)}`)\n }\n return d\n }\n\n private drawLine(el: SVGGeometryElement, index: number, onFinish: () => void) {\n const strokeWidth = parseFloat(getComputedStyle(el).strokeWidth) || 0\n const len = el.getTotalLength() + strokeWidth\n\n el.style.strokeDasharray = `${len}`\n el.style.strokeDashoffset = `${len}`\n\n const anim = el.animate([{ strokeDashoffset: `${len}` }, { strokeDashoffset: '0' }], {\n duration: this.duration,\n easing: this.easing,\n fill: 'forwards'\n })\n anim.onfinish = onFinish\n }\n\n private stopAnimation() {\n this.isAnimating = false\n this.svgClone = null\n }\n\n override render() {\n return html`\n <slot ?hidden=\"${this.isAnimating}\" @slotchange=\"${this.handleSlotChange}\"></slot>\n ${this.isAnimating ? this.svgClone : ''}\n `\n }\n}\n"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@greypan/web-ui",
3
- "version": "1.3.1",
3
+ "version": "1.4.0",
4
4
  "description": "Lit-based web components for React, Vue, and vanilla JS",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -34,26 +34,22 @@
34
34
  },
35
35
  "dependencies": {
36
36
  "iconify-icon": "^3.0.2",
37
- "@greypan/browser-kit": "1.7.1",
38
- "@greypan/js-kit": "1.6.1"
37
+ "@greypan/browser-kit": "1.7.2",
38
+ "@greypan/js-kit": "1.6.2"
39
39
  },
40
40
  "devDependencies": {
41
41
  "lit": "^3.3.3",
42
42
  "@types/react": "^19.2.17",
43
- "react": "^19.2.7",
44
43
  "vue": "^3.5.39",
45
44
  "@greypan/tsconfig": "1.0.1"
46
45
  },
47
46
  "peerDependencies": {
48
47
  "lit": "^3.3.3",
49
- "react": ">=16",
48
+ "@types/react": ">=16",
50
49
  "vue": ">=3"
51
50
  },
52
51
  "peerDependenciesMeta": {
53
- "lit": {
54
- "optional": false
55
- },
56
- "react": {
52
+ "@types/react": {
57
53
  "optional": true
58
54
  },
59
55
  "vue": {
@@ -1,32 +0,0 @@
1
- //#region ../../node_modules/.pnpm/@lit+reactive-element@2.1.2/node_modules/@lit/reactive-element/css-tag.js
2
- var e = globalThis, t = e.ShadowRoot && (e.ShadyCSS === void 0 || e.ShadyCSS.nativeShadow) && "adoptedStyleSheets" in Document.prototype && "replace" in CSSStyleSheet.prototype, n = Symbol(), r = /* @__PURE__ */ new WeakMap(), i = class {
3
- constructor(e, t, r) {
4
- if (this._$cssResult$ = !0, r !== n) throw Error("CSSResult is not constructable. Use `unsafeCSS` or `css` instead.");
5
- this.cssText = e, this.t = t;
6
- }
7
- get styleSheet() {
8
- let e = this.o, n = this.t;
9
- if (t && e === void 0) {
10
- let t = n !== void 0 && n.length === 1;
11
- t && (e = r.get(n)), e === void 0 && ((this.o = e = new CSSStyleSheet()).replaceSync(this.cssText), t && r.set(n, e));
12
- }
13
- return e;
14
- }
15
- toString() {
16
- return this.cssText;
17
- }
18
- }, a = (e) => new i(typeof e == "string" ? e : e + "", void 0, n), o = (n, r) => {
19
- if (t) n.adoptedStyleSheets = r.map((e) => e instanceof CSSStyleSheet ? e : e.styleSheet);
20
- else for (let t of r) {
21
- let r = document.createElement("style"), i = e.litNonce;
22
- i !== void 0 && r.setAttribute("nonce", i), r.textContent = t.cssText, n.appendChild(r);
23
- }
24
- }, s = t ? (e) => e : (e) => e instanceof CSSStyleSheet ? ((e) => {
25
- let t = "";
26
- for (let n of e.cssRules) t += n.cssText;
27
- return a(t);
28
- })(e) : e;
29
- //#endregion
30
- export { i as CSSResult, o as adoptStyles, s as getCompatibleStyle, t as supportsAdoptingStyleSheets, a as unsafeCSS };
31
-
32
- //# sourceMappingURL=css-tag.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"css-tag.js","names":[],"sources":["../../../../../../../../../node_modules/.pnpm/@lit+reactive-element@2.1.2/node_modules/@lit/reactive-element/css-tag.js"],"sourcesContent":["/**\n * @license\n * Copyright 2019 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nconst t=globalThis,e=t.ShadowRoot&&(void 0===t.ShadyCSS||t.ShadyCSS.nativeShadow)&&\"adoptedStyleSheets\"in Document.prototype&&\"replace\"in CSSStyleSheet.prototype,s=Symbol(),o=new WeakMap;class n{constructor(t,e,o){if(this._$cssResult$=!0,o!==s)throw Error(\"CSSResult is not constructable. Use `unsafeCSS` or `css` instead.\");this.cssText=t,this.t=e}get styleSheet(){let t=this.o;const s=this.t;if(e&&void 0===t){const e=void 0!==s&&1===s.length;e&&(t=o.get(s)),void 0===t&&((this.o=t=new CSSStyleSheet).replaceSync(this.cssText),e&&o.set(s,t))}return t}toString(){return this.cssText}}const r=t=>new n(\"string\"==typeof t?t:t+\"\",void 0,s),i=(t,...e)=>{const o=1===t.length?t[0]:e.reduce((e,s,o)=>e+(t=>{if(!0===t._$cssResult$)return t.cssText;if(\"number\"==typeof t)return t;throw Error(\"Value passed to 'css' function must be a 'css' function result: \"+t+\". Use 'unsafeCSS' to pass non-literal values, but take care to ensure page security.\")})(s)+t[o+1],t[0]);return new n(o,t,s)},S=(s,o)=>{if(e)s.adoptedStyleSheets=o.map(t=>t instanceof CSSStyleSheet?t:t.styleSheet);else for(const e of o){const o=document.createElement(\"style\"),n=t.litNonce;void 0!==n&&o.setAttribute(\"nonce\",n),o.textContent=e.cssText,s.appendChild(o)}},c=e?t=>t:t=>t instanceof CSSStyleSheet?(t=>{let e=\"\";for(const s of t.cssRules)e+=s.cssText;return r(e)})(t):t;export{n as CSSResult,S as adoptStyles,i as css,c as getCompatibleStyle,e as supportsAdoptingStyleSheets,r as unsafeCSS};\n//# sourceMappingURL=css-tag.js.map\n"],"x_google_ignoreList":[0],"mappings":";AAKA,IAAM,IAAE,YAAW,IAAE,EAAE,eAAsB,EAAE,aAAX,KAAK,KAAgB,EAAE,SAAS,iBAAe,wBAAuB,SAAS,aAAW,aAAY,cAAc,WAAU,IAAE,OAAO,GAAE,oBAAE,IAAI,QAAM,GAAQ,IAAN,MAAO;CAAC,YAAY,GAAE,GAAE,GAAE;EAAC,IAAG,KAAK,eAAa,CAAC,GAAE,MAAI,GAAE,MAAM,MAAM,mEAAmE;EAAE,KAAK,UAAQ,GAAE,KAAK,IAAE;CAAC;CAAC,IAAI,aAAY;EAAC,IAAI,IAAE,KAAK,GAAQ,IAAE,KAAK;EAAE,IAAG,KAAY,MAAT,KAAK,GAAM;GAAC,IAAM,IAAW,MAAT,KAAK,KAAW,EAAE,WAAN;GAAa,MAAI,IAAE,EAAE,IAAI,CAAC,IAAY,MAAT,KAAK,OAAS,KAAK,IAAE,IAAE,IAAI,cAAY,EAAA,CAAG,YAAY,KAAK,OAAO,GAAE,KAAG,EAAE,IAAI,GAAE,CAAC;EAAE;EAAC,OAAO;CAAC;CAAC,WAAU;EAAC,OAAO,KAAK;CAAO;AAAC,GAAO,KAAE,MAAG,IAAI,EAAY,OAAO,KAAjB,WAAmB,IAAE,IAAE,IAAG,KAAK,GAAE,CAAC,GAAyV,KAAG,GAAE,MAAI;CAAC,IAAG,GAAE,EAAE,qBAAmB,EAAE,KAAI,MAAG,aAAa,gBAAc,IAAE,EAAE,UAAU;MAAO,KAAI,IAAM,KAAK,GAAE;EAAC,IAAM,IAAE,SAAS,cAAc,OAAO,GAAE,IAAE,EAAE;EAAS,AAAS,MAAT,KAAK,KAAO,EAAE,aAAa,SAAQ,CAAC,GAAE,EAAE,cAAY,EAAE,SAAQ,EAAE,YAAY,CAAC;CAAC;AAAC,GAAE,IAAE,KAAE,MAAG,KAAE,MAAG,aAAa,kBAAe,MAAG;CAAC,IAAI,IAAE;CAAG,KAAI,IAAM,KAAK,EAAE,UAAS,KAAG,EAAE;CAAQ,OAAO,EAAE,CAAC;AAAC,EAAA,CAAG,CAAC,IAAE"}
@@ -1,6 +0,0 @@
1
- //#region ../../node_modules/.pnpm/@lit+reactive-element@2.1.2/node_modules/@lit/reactive-element/decorators/base.js
2
- var e = (e, t, n) => (n.configurable = !0, n.enumerable = !0, Reflect.decorate && typeof t != "object" && Object.defineProperty(e, t, n), n);
3
- //#endregion
4
- export { e as desc };
5
-
6
- //# sourceMappingURL=base.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"base.js","names":[],"sources":["../../../../../../../../../../node_modules/.pnpm/@lit+reactive-element@2.1.2/node_modules/@lit/reactive-element/decorators/base.js"],"sourcesContent":["/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nconst e=(e,t,c)=>(c.configurable=!0,c.enumerable=!0,Reflect.decorate&&\"object\"!=typeof t&&Object.defineProperty(e,t,c),c);export{e as desc};\n//# sourceMappingURL=base.js.map\n"],"x_google_ignoreList":[0],"mappings":";AAKA,IAAM,KAAG,GAAE,GAAE,OAAK,EAAE,eAAa,CAAC,GAAE,EAAE,aAAW,CAAC,GAAE,QAAQ,YAAoB,OAAO,KAAjB,YAAoB,OAAO,eAAe,GAAE,GAAE,CAAC,GAAE"}
@@ -1,10 +0,0 @@
1
- //#region ../../node_modules/.pnpm/@lit+reactive-element@2.1.2/node_modules/@lit/reactive-element/decorators/custom-element.js
2
- var e = (e) => (t, n) => {
3
- n === void 0 ? customElements.define(e, t) : n.addInitializer(() => {
4
- customElements.define(e, t);
5
- });
6
- };
7
- //#endregion
8
- export { e as customElement };
9
-
10
- //# sourceMappingURL=custom-element.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"custom-element.js","names":[],"sources":["../../../../../../../../../../node_modules/.pnpm/@lit+reactive-element@2.1.2/node_modules/@lit/reactive-element/decorators/custom-element.js"],"sourcesContent":["/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nconst t=t=>(e,o)=>{void 0!==o?o.addInitializer(()=>{customElements.define(t,e)}):customElements.define(t,e)};export{t as customElement};\n//# sourceMappingURL=custom-element.js.map\n"],"x_google_ignoreList":[0],"mappings":";AAKA,IAAM,KAAE,OAAI,GAAE,MAAI;CAAC,AAAS,MAAT,KAAK,IAAyD,eAAe,OAAO,GAAE,CAAC,IAA5E,EAAE,qBAAmB;EAAC,eAAe,OAAO,GAAE,CAAC;CAAC,CAAC;AAA4B"}
@@ -1,41 +0,0 @@
1
- import { defaultConverter as e, notEqual as t } from "../reactive-element.js";
2
- //#region ../../node_modules/.pnpm/@lit+reactive-element@2.1.2/node_modules/@lit/reactive-element/decorators/property.js
3
- var n = {
4
- attribute: !0,
5
- type: String,
6
- converter: e,
7
- reflect: !1,
8
- hasChanged: t
9
- }, r = (e = n, t, r) => {
10
- let { kind: i, metadata: a } = r, o = globalThis.litPropertyMetadata.get(a);
11
- if (o === void 0 && globalThis.litPropertyMetadata.set(a, o = /* @__PURE__ */ new Map()), i === "setter" && ((e = Object.create(e)).wrapped = !0), o.set(r.name, e), i === "accessor") {
12
- let { name: n } = r;
13
- return {
14
- set(r) {
15
- let i = t.get.call(this);
16
- t.set.call(this, r), this.requestUpdate(n, i, e, !0, r);
17
- },
18
- init(t) {
19
- return t !== void 0 && this.C(n, void 0, e, t), t;
20
- }
21
- };
22
- }
23
- if (i === "setter") {
24
- let { name: n } = r;
25
- return function(r) {
26
- let i = this[n];
27
- t.call(this, r), this.requestUpdate(n, i, e, !0, r);
28
- };
29
- }
30
- throw Error("Unsupported decorator location: " + i);
31
- };
32
- function i(e) {
33
- return (t, n) => typeof n == "object" ? r(e, t, n) : ((e, t, n) => {
34
- let r = t.hasOwnProperty(n);
35
- return t.constructor.createProperty(n, e), r ? Object.getOwnPropertyDescriptor(t, n) : void 0;
36
- })(e, t, n);
37
- }
38
- //#endregion
39
- export { i as property, r as standardProperty };
40
-
41
- //# sourceMappingURL=property.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"property.js","names":["e","t"],"sources":["../../../../../../../../../../node_modules/.pnpm/@lit+reactive-element@2.1.2/node_modules/@lit/reactive-element/decorators/property.js"],"sourcesContent":["import{notEqual as t,defaultConverter as e}from\"../reactive-element.js\";\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */const o={attribute:!0,type:String,converter:e,reflect:!1,hasChanged:t},r=(t=o,e,r)=>{const{kind:n,metadata:i}=r;let s=globalThis.litPropertyMetadata.get(i);if(void 0===s&&globalThis.litPropertyMetadata.set(i,s=new Map),\"setter\"===n&&((t=Object.create(t)).wrapped=!0),s.set(r.name,t),\"accessor\"===n){const{name:o}=r;return{set(r){const n=e.get.call(this);e.set.call(this,r),this.requestUpdate(o,n,t,!0,r)},init(e){return void 0!==e&&this.C(o,void 0,t,e),e}}}if(\"setter\"===n){const{name:o}=r;return function(r){const n=this[o];e.call(this,r),this.requestUpdate(o,n,t,!0,r)}}throw Error(\"Unsupported decorator location: \"+n)};function n(t){return(e,o)=>\"object\"==typeof o?r(t,e,o):((t,e,o)=>{const r=e.hasOwnProperty(o);return e.constructor.createProperty(o,t),r?Object.getOwnPropertyDescriptor(e,o):void 0})(t,e,o)}export{n as property,r as standardProperty};\n//# sourceMappingURL=property.js.map\n"],"x_google_ignoreList":[0],"mappings":";;AAKG,IAAM,IAAE;CAAC,WAAU,CAAC;CAAE,MAAK;CAAO,WAAUA;CAAE,SAAQ,CAAC;CAAE,YAAWC;AAAC,GAAE,KAAG,IAAE,GAAE,GAAE,MAAI;CAAC,IAAK,EAAC,MAAK,GAAE,UAAS,MAAG,GAAM,IAAE,WAAW,oBAAoB,IAAI,CAAC;CAAE,IAAY,MAAT,KAAK,KAAO,WAAW,oBAAoB,IAAI,GAAE,oBAAE,IAAI,IAAE,CAAC,GAAa,MAAX,aAAe,CAAC,IAAE,OAAO,OAAO,CAAC,EAAA,CAAG,UAAQ,CAAC,IAAG,EAAE,IAAI,EAAE,MAAK,CAAC,GAAe,MAAb,YAAe;EAAC,IAAK,EAAC,MAAK,MAAG;EAAE,OAAM;GAAC,IAAI,GAAE;IAAC,IAAM,IAAE,EAAE,IAAI,KAAK,IAAI;IAAE,EAAE,IAAI,KAAK,MAAK,CAAC,GAAE,KAAK,cAAc,GAAE,GAAE,GAAE,CAAC,GAAE,CAAC;GAAC;GAAE,KAAK,GAAE;IAAC,OAAgB,MAAT,KAAK,KAAO,KAAK,EAAE,GAAE,KAAK,GAAE,GAAE,CAAC,GAAE;GAAC;EAAC;CAAC;CAAC,IAAc,MAAX,UAAa;EAAC,IAAK,EAAC,MAAK,MAAG;EAAE,OAAO,SAAS,GAAE;GAAC,IAAM,IAAE,KAAK;GAAG,EAAE,KAAK,MAAK,CAAC,GAAE,KAAK,cAAc,GAAE,GAAE,GAAE,CAAC,GAAE,CAAC;EAAC;CAAC;CAAC,MAAM,MAAM,qCAAmC,CAAC;AAAC;AAAE,SAAS,EAAE,GAAE;CAAC,QAAO,GAAE,MAAc,OAAO,KAAjB,WAAmB,EAAE,GAAE,GAAE,CAAC,MAAI,GAAE,GAAE,MAAI;EAAC,IAAM,IAAE,EAAE,eAAe,CAAC;EAAE,OAAO,EAAE,YAAY,eAAe,GAAE,CAAC,GAAE,IAAE,OAAO,yBAAyB,GAAE,CAAC,IAAE,KAAK;CAAC,EAAA,CAAG,GAAE,GAAE,CAAC;AAAC"}
@@ -1,31 +0,0 @@
1
- import { desc as e } from "./base.js";
2
- //#region ../../node_modules/.pnpm/@lit+reactive-element@2.1.2/node_modules/@lit/reactive-element/decorators/query.js
3
- function t(t, n) {
4
- return (r, i, a) => {
5
- let o = (e) => e.renderRoot?.querySelector(t) ?? null;
6
- if (n) {
7
- let { get: t, set: n } = typeof i == "object" ? r : a ?? (() => {
8
- let e = Symbol();
9
- return {
10
- get() {
11
- return this[e];
12
- },
13
- set(t) {
14
- this[e] = t;
15
- }
16
- };
17
- })();
18
- return e(r, i, { get() {
19
- let e = t.call(this);
20
- return e === void 0 && (e = o(this), (e !== null || this.hasUpdated) && n.call(this, e)), e;
21
- } });
22
- }
23
- return e(r, i, { get() {
24
- return o(this);
25
- } });
26
- };
27
- }
28
- //#endregion
29
- export { t as query };
30
-
31
- //# sourceMappingURL=query.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"query.js","names":["t"],"sources":["../../../../../../../../../../node_modules/.pnpm/@lit+reactive-element@2.1.2/node_modules/@lit/reactive-element/decorators/query.js"],"sourcesContent":["import{desc as t}from\"./base.js\";\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */function e(e,r){return(n,s,i)=>{const o=t=>t.renderRoot?.querySelector(e)??null;if(r){const{get:e,set:r}=\"object\"==typeof s?n:i??(()=>{const t=Symbol();return{get(){return this[t]},set(e){this[t]=e}}})();return t(n,s,{get(){let t=e.call(this);return void 0===t&&(t=o(this),(null!==t||this.hasUpdated)&&r.call(this,t)),t}})}return t(n,s,{get(){return o(this)}})}}export{e as query};\n//# sourceMappingURL=query.js.map\n"],"x_google_ignoreList":[0],"mappings":";;AAKG,SAAS,EAAE,GAAE,GAAE;CAAC,QAAO,GAAE,GAAE,MAAI;EAAC,IAAM,KAAE,MAAG,EAAE,YAAY,cAAc,CAAC,KAAG;EAAK,IAAG,GAAE;GAAC,IAAK,EAAC,KAAI,GAAE,KAAI,MAAa,OAAO,KAAjB,WAAmB,IAAE,YAAQ;IAAC,IAAM,IAAE,OAAO;IAAE,OAAM;KAAC,MAAK;MAAC,OAAO,KAAK;KAAE;KAAE,IAAI,GAAE;MAAC,KAAK,KAAG;KAAC;IAAC;GAAC,EAAA,CAAG;GAAE,OAAOA,EAAE,GAAE,GAAE,EAAC,MAAK;IAAC,IAAI,IAAE,EAAE,KAAK,IAAI;IAAE,OAAgB,MAAT,KAAK,MAAQ,IAAE,EAAE,IAAI,IAAU,MAAP,QAAU,KAAK,eAAa,EAAE,KAAK,MAAK,CAAC,IAAG;GAAC,EAAC,CAAC;EAAC;EAAC,OAAOA,EAAE,GAAE,GAAE,EAAC,MAAK;GAAC,OAAO,EAAE,IAAI;EAAC,EAAC,CAAC;CAAC;AAAC"}
@@ -1,13 +0,0 @@
1
- import { property as e } from "./property.js";
2
- //#region ../../node_modules/.pnpm/@lit+reactive-element@2.1.2/node_modules/@lit/reactive-element/decorators/state.js
3
- function t(t) {
4
- return e({
5
- ...t,
6
- state: !0,
7
- attribute: !1
8
- });
9
- }
10
- //#endregion
11
- export { t as state };
12
-
13
- //# sourceMappingURL=state.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"state.js","names":["t"],"sources":["../../../../../../../../../../node_modules/.pnpm/@lit+reactive-element@2.1.2/node_modules/@lit/reactive-element/decorators/state.js"],"sourcesContent":["import{property as t}from\"./property.js\";\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */function r(r){return t({...r,state:!0,attribute:!1})}export{r as state};\n//# sourceMappingURL=state.js.map\n"],"x_google_ignoreList":[0],"mappings":";;AAKG,SAAS,EAAE,GAAE;CAAC,OAAOA,EAAE;EAAC,GAAG;EAAE,OAAM,CAAC;EAAE,WAAU,CAAC;CAAC,CAAC;AAAC"}
@@ -1,229 +0,0 @@
1
- import { adoptStyles as e, getCompatibleStyle as t } from "./css-tag.js";
2
- //#region ../../node_modules/.pnpm/@lit+reactive-element@2.1.2/node_modules/@lit/reactive-element/reactive-element.js
3
- var { is: n, defineProperty: r, getOwnPropertyDescriptor: i, getOwnPropertyNames: a, getOwnPropertySymbols: o, getPrototypeOf: s } = Object, c = globalThis, l = c.trustedTypes, u = l ? l.emptyScript : "", d = c.reactiveElementPolyfillSupport, f = (e, t) => e, p = {
4
- toAttribute(e, t) {
5
- switch (t) {
6
- case Boolean:
7
- e = e ? u : null;
8
- break;
9
- case Object:
10
- case Array: e = e == null ? e : JSON.stringify(e);
11
- }
12
- return e;
13
- },
14
- fromAttribute(e, t) {
15
- let n = e;
16
- switch (t) {
17
- case Boolean:
18
- n = e !== null;
19
- break;
20
- case Number:
21
- n = e === null ? null : Number(e);
22
- break;
23
- case Object:
24
- case Array: try {
25
- n = JSON.parse(e);
26
- } catch {
27
- n = null;
28
- }
29
- }
30
- return n;
31
- }
32
- }, m = (e, t) => !n(e, t), h = {
33
- attribute: !0,
34
- type: String,
35
- converter: p,
36
- reflect: !1,
37
- useDefault: !1,
38
- hasChanged: m
39
- };
40
- Symbol.metadata ??= Symbol("metadata"), c.litPropertyMetadata ??= /* @__PURE__ */ new WeakMap();
41
- var g = class extends HTMLElement {
42
- static addInitializer(e) {
43
- this._$Ei(), (this.l ??= []).push(e);
44
- }
45
- static get observedAttributes() {
46
- return this.finalize(), this._$Eh && [...this._$Eh.keys()];
47
- }
48
- static createProperty(e, t = h) {
49
- if (t.state && (t.attribute = !1), this._$Ei(), this.prototype.hasOwnProperty(e) && ((t = Object.create(t)).wrapped = !0), this.elementProperties.set(e, t), !t.noAccessor) {
50
- let n = Symbol(), i = this.getPropertyDescriptor(e, n, t);
51
- i !== void 0 && r(this.prototype, e, i);
52
- }
53
- }
54
- static getPropertyDescriptor(e, t, n) {
55
- let { get: r, set: a } = i(this.prototype, e) ?? {
56
- get() {
57
- return this[t];
58
- },
59
- set(e) {
60
- this[t] = e;
61
- }
62
- };
63
- return {
64
- get: r,
65
- set(t) {
66
- let i = r?.call(this);
67
- a?.call(this, t), this.requestUpdate(e, i, n);
68
- },
69
- configurable: !0,
70
- enumerable: !0
71
- };
72
- }
73
- static getPropertyOptions(e) {
74
- return this.elementProperties.get(e) ?? h;
75
- }
76
- static _$Ei() {
77
- if (this.hasOwnProperty(f("elementProperties"))) return;
78
- let e = s(this);
79
- e.finalize(), e.l !== void 0 && (this.l = [...e.l]), this.elementProperties = new Map(e.elementProperties);
80
- }
81
- static finalize() {
82
- if (this.hasOwnProperty(f("finalized"))) return;
83
- if (this.finalized = !0, this._$Ei(), this.hasOwnProperty(f("properties"))) {
84
- let e = this.properties, t = [...a(e), ...o(e)];
85
- for (let n of t) this.createProperty(n, e[n]);
86
- }
87
- let e = this[Symbol.metadata];
88
- if (e !== null) {
89
- let t = litPropertyMetadata.get(e);
90
- if (t !== void 0) for (let [e, n] of t) this.elementProperties.set(e, n);
91
- }
92
- this._$Eh = /* @__PURE__ */ new Map();
93
- for (let [e, t] of this.elementProperties) {
94
- let n = this._$Eu(e, t);
95
- n !== void 0 && this._$Eh.set(n, e);
96
- }
97
- this.elementStyles = this.finalizeStyles(this.styles);
98
- }
99
- static finalizeStyles(e) {
100
- let n = [];
101
- if (Array.isArray(e)) {
102
- let r = new Set(e.flat(Infinity).reverse());
103
- for (let e of r) n.unshift(t(e));
104
- } else e !== void 0 && n.push(t(e));
105
- return n;
106
- }
107
- static _$Eu(e, t) {
108
- let n = t.attribute;
109
- return !1 === n ? void 0 : typeof n == "string" ? n : typeof e == "string" ? e.toLowerCase() : void 0;
110
- }
111
- constructor() {
112
- super(), this._$Ep = void 0, this.isUpdatePending = !1, this.hasUpdated = !1, this._$Em = null, this._$Ev();
113
- }
114
- _$Ev() {
115
- this._$ES = new Promise((e) => this.enableUpdating = e), this._$AL = /* @__PURE__ */ new Map(), this._$E_(), this.requestUpdate(), this.constructor.l?.forEach((e) => e(this));
116
- }
117
- addController(e) {
118
- (this._$EO ??= /* @__PURE__ */ new Set()).add(e), this.renderRoot !== void 0 && this.isConnected && e.hostConnected?.();
119
- }
120
- removeController(e) {
121
- this._$EO?.delete(e);
122
- }
123
- _$E_() {
124
- let e = /* @__PURE__ */ new Map(), t = this.constructor.elementProperties;
125
- for (let n of t.keys()) this.hasOwnProperty(n) && (e.set(n, this[n]), delete this[n]);
126
- e.size > 0 && (this._$Ep = e);
127
- }
128
- createRenderRoot() {
129
- let t = this.shadowRoot ?? this.attachShadow(this.constructor.shadowRootOptions);
130
- return e(t, this.constructor.elementStyles), t;
131
- }
132
- connectedCallback() {
133
- this.renderRoot ??= this.createRenderRoot(), this.enableUpdating(!0), this._$EO?.forEach((e) => e.hostConnected?.());
134
- }
135
- enableUpdating(e) {}
136
- disconnectedCallback() {
137
- this._$EO?.forEach((e) => e.hostDisconnected?.());
138
- }
139
- attributeChangedCallback(e, t, n) {
140
- this._$AK(e, n);
141
- }
142
- _$ET(e, t) {
143
- let n = this.constructor.elementProperties.get(e), r = this.constructor._$Eu(e, n);
144
- if (r !== void 0 && !0 === n.reflect) {
145
- let i = (n.converter?.toAttribute === void 0 ? p : n.converter).toAttribute(t, n.type);
146
- this._$Em = e, i == null ? this.removeAttribute(r) : this.setAttribute(r, i), this._$Em = null;
147
- }
148
- }
149
- _$AK(e, t) {
150
- let n = this.constructor, r = n._$Eh.get(e);
151
- if (r !== void 0 && this._$Em !== r) {
152
- let e = n.getPropertyOptions(r), i = typeof e.converter == "function" ? { fromAttribute: e.converter } : e.converter?.fromAttribute === void 0 ? p : e.converter;
153
- this._$Em = r;
154
- let a = i.fromAttribute(t, e.type);
155
- this[r] = a ?? this._$Ej?.get(r) ?? a, this._$Em = null;
156
- }
157
- }
158
- requestUpdate(e, t, n, r = !1, i) {
159
- if (e !== void 0) {
160
- let a = this.constructor;
161
- if (!1 === r && (i = this[e]), n ??= a.getPropertyOptions(e), !((n.hasChanged ?? m)(i, t) || n.useDefault && n.reflect && i === this._$Ej?.get(e) && !this.hasAttribute(a._$Eu(e, n)))) return;
162
- this.C(e, t, n);
163
- }
164
- !1 === this.isUpdatePending && (this._$ES = this._$EP());
165
- }
166
- C(e, t, { useDefault: n, reflect: r, wrapped: i }, a) {
167
- n && !(this._$Ej ??= /* @__PURE__ */ new Map()).has(e) && (this._$Ej.set(e, a ?? t ?? this[e]), !0 !== i || a !== void 0) || (this._$AL.has(e) || (this.hasUpdated || n || (t = void 0), this._$AL.set(e, t)), !0 === r && this._$Em !== e && (this._$Eq ??= /* @__PURE__ */ new Set()).add(e));
168
- }
169
- async _$EP() {
170
- this.isUpdatePending = !0;
171
- try {
172
- await this._$ES;
173
- } catch (e) {
174
- Promise.reject(e);
175
- }
176
- let e = this.scheduleUpdate();
177
- return e != null && await e, !this.isUpdatePending;
178
- }
179
- scheduleUpdate() {
180
- return this.performUpdate();
181
- }
182
- performUpdate() {
183
- if (!this.isUpdatePending) return;
184
- if (!this.hasUpdated) {
185
- if (this.renderRoot ??= this.createRenderRoot(), this._$Ep) {
186
- for (let [e, t] of this._$Ep) this[e] = t;
187
- this._$Ep = void 0;
188
- }
189
- let e = this.constructor.elementProperties;
190
- if (e.size > 0) for (let [t, n] of e) {
191
- let { wrapped: e } = n, r = this[t];
192
- !0 !== e || this._$AL.has(t) || r === void 0 || this.C(t, void 0, n, r);
193
- }
194
- }
195
- let e = !1, t = this._$AL;
196
- try {
197
- e = this.shouldUpdate(t), e ? (this.willUpdate(t), this._$EO?.forEach((e) => e.hostUpdate?.()), this.update(t)) : this._$EM();
198
- } catch (t) {
199
- throw e = !1, this._$EM(), t;
200
- }
201
- e && this._$AE(t);
202
- }
203
- willUpdate(e) {}
204
- _$AE(e) {
205
- this._$EO?.forEach((e) => e.hostUpdated?.()), this.hasUpdated || (this.hasUpdated = !0, this.firstUpdated(e)), this.updated(e);
206
- }
207
- _$EM() {
208
- this._$AL = /* @__PURE__ */ new Map(), this.isUpdatePending = !1;
209
- }
210
- get updateComplete() {
211
- return this.getUpdateComplete();
212
- }
213
- getUpdateComplete() {
214
- return this._$ES;
215
- }
216
- shouldUpdate(e) {
217
- return !0;
218
- }
219
- update(e) {
220
- this._$Eq &&= this._$Eq.forEach((e) => this._$ET(e, this[e])), this._$EM();
221
- }
222
- updated(e) {}
223
- firstUpdated(e) {}
224
- };
225
- g.elementStyles = [], g.shadowRootOptions = { mode: "open" }, g[f("elementProperties")] = /* @__PURE__ */ new Map(), g[f("finalized")] = /* @__PURE__ */ new Map(), d?.({ ReactiveElement: g }), (c.reactiveElementVersions ??= []).push("2.1.2");
226
- //#endregion
227
- export { g as ReactiveElement, e as adoptStyles, p as defaultConverter, t as getCompatibleStyle, m as notEqual };
228
-
229
- //# sourceMappingURL=reactive-element.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"reactive-element.js","names":["t","s"],"sources":["../../../../../../../../../node_modules/.pnpm/@lit+reactive-element@2.1.2/node_modules/@lit/reactive-element/reactive-element.js"],"sourcesContent":["import{getCompatibleStyle as t,adoptStyles as s}from\"./css-tag.js\";export{CSSResult,css,supportsAdoptingStyleSheets,unsafeCSS}from\"./css-tag.js\";\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */const{is:i,defineProperty:e,getOwnPropertyDescriptor:h,getOwnPropertyNames:r,getOwnPropertySymbols:o,getPrototypeOf:n}=Object,a=globalThis,c=a.trustedTypes,l=c?c.emptyScript:\"\",p=a.reactiveElementPolyfillSupport,d=(t,s)=>t,u={toAttribute(t,s){switch(s){case Boolean:t=t?l:null;break;case Object:case Array:t=null==t?t:JSON.stringify(t)}return t},fromAttribute(t,s){let i=t;switch(s){case Boolean:i=null!==t;break;case Number:i=null===t?null:Number(t);break;case Object:case Array:try{i=JSON.parse(t)}catch(t){i=null}}return i}},f=(t,s)=>!i(t,s),b={attribute:!0,type:String,converter:u,reflect:!1,useDefault:!1,hasChanged:f};Symbol.metadata??=Symbol(\"metadata\"),a.litPropertyMetadata??=new WeakMap;class y extends HTMLElement{static addInitializer(t){this._$Ei(),(this.l??=[]).push(t)}static get observedAttributes(){return this.finalize(),this._$Eh&&[...this._$Eh.keys()]}static createProperty(t,s=b){if(s.state&&(s.attribute=!1),this._$Ei(),this.prototype.hasOwnProperty(t)&&((s=Object.create(s)).wrapped=!0),this.elementProperties.set(t,s),!s.noAccessor){const i=Symbol(),h=this.getPropertyDescriptor(t,i,s);void 0!==h&&e(this.prototype,t,h)}}static getPropertyDescriptor(t,s,i){const{get:e,set:r}=h(this.prototype,t)??{get(){return this[s]},set(t){this[s]=t}};return{get:e,set(s){const h=e?.call(this);r?.call(this,s),this.requestUpdate(t,h,i)},configurable:!0,enumerable:!0}}static getPropertyOptions(t){return this.elementProperties.get(t)??b}static _$Ei(){if(this.hasOwnProperty(d(\"elementProperties\")))return;const t=n(this);t.finalize(),void 0!==t.l&&(this.l=[...t.l]),this.elementProperties=new Map(t.elementProperties)}static finalize(){if(this.hasOwnProperty(d(\"finalized\")))return;if(this.finalized=!0,this._$Ei(),this.hasOwnProperty(d(\"properties\"))){const t=this.properties,s=[...r(t),...o(t)];for(const i of s)this.createProperty(i,t[i])}const t=this[Symbol.metadata];if(null!==t){const s=litPropertyMetadata.get(t);if(void 0!==s)for(const[t,i]of s)this.elementProperties.set(t,i)}this._$Eh=new Map;for(const[t,s]of this.elementProperties){const i=this._$Eu(t,s);void 0!==i&&this._$Eh.set(i,t)}this.elementStyles=this.finalizeStyles(this.styles)}static finalizeStyles(s){const i=[];if(Array.isArray(s)){const e=new Set(s.flat(1/0).reverse());for(const s of e)i.unshift(t(s))}else void 0!==s&&i.push(t(s));return i}static _$Eu(t,s){const i=s.attribute;return!1===i?void 0:\"string\"==typeof i?i:\"string\"==typeof t?t.toLowerCase():void 0}constructor(){super(),this._$Ep=void 0,this.isUpdatePending=!1,this.hasUpdated=!1,this._$Em=null,this._$Ev()}_$Ev(){this._$ES=new Promise(t=>this.enableUpdating=t),this._$AL=new Map,this._$E_(),this.requestUpdate(),this.constructor.l?.forEach(t=>t(this))}addController(t){(this._$EO??=new Set).add(t),void 0!==this.renderRoot&&this.isConnected&&t.hostConnected?.()}removeController(t){this._$EO?.delete(t)}_$E_(){const t=new Map,s=this.constructor.elementProperties;for(const i of s.keys())this.hasOwnProperty(i)&&(t.set(i,this[i]),delete this[i]);t.size>0&&(this._$Ep=t)}createRenderRoot(){const t=this.shadowRoot??this.attachShadow(this.constructor.shadowRootOptions);return s(t,this.constructor.elementStyles),t}connectedCallback(){this.renderRoot??=this.createRenderRoot(),this.enableUpdating(!0),this._$EO?.forEach(t=>t.hostConnected?.())}enableUpdating(t){}disconnectedCallback(){this._$EO?.forEach(t=>t.hostDisconnected?.())}attributeChangedCallback(t,s,i){this._$AK(t,i)}_$ET(t,s){const i=this.constructor.elementProperties.get(t),e=this.constructor._$Eu(t,i);if(void 0!==e&&!0===i.reflect){const h=(void 0!==i.converter?.toAttribute?i.converter:u).toAttribute(s,i.type);this._$Em=t,null==h?this.removeAttribute(e):this.setAttribute(e,h),this._$Em=null}}_$AK(t,s){const i=this.constructor,e=i._$Eh.get(t);if(void 0!==e&&this._$Em!==e){const t=i.getPropertyOptions(e),h=\"function\"==typeof t.converter?{fromAttribute:t.converter}:void 0!==t.converter?.fromAttribute?t.converter:u;this._$Em=e;const r=h.fromAttribute(s,t.type);this[e]=r??this._$Ej?.get(e)??r,this._$Em=null}}requestUpdate(t,s,i,e=!1,h){if(void 0!==t){const r=this.constructor;if(!1===e&&(h=this[t]),i??=r.getPropertyOptions(t),!((i.hasChanged??f)(h,s)||i.useDefault&&i.reflect&&h===this._$Ej?.get(t)&&!this.hasAttribute(r._$Eu(t,i))))return;this.C(t,s,i)}!1===this.isUpdatePending&&(this._$ES=this._$EP())}C(t,s,{useDefault:i,reflect:e,wrapped:h},r){i&&!(this._$Ej??=new Map).has(t)&&(this._$Ej.set(t,r??s??this[t]),!0!==h||void 0!==r)||(this._$AL.has(t)||(this.hasUpdated||i||(s=void 0),this._$AL.set(t,s)),!0===e&&this._$Em!==t&&(this._$Eq??=new Set).add(t))}async _$EP(){this.isUpdatePending=!0;try{await this._$ES}catch(t){Promise.reject(t)}const t=this.scheduleUpdate();return null!=t&&await t,!this.isUpdatePending}scheduleUpdate(){return this.performUpdate()}performUpdate(){if(!this.isUpdatePending)return;if(!this.hasUpdated){if(this.renderRoot??=this.createRenderRoot(),this._$Ep){for(const[t,s]of this._$Ep)this[t]=s;this._$Ep=void 0}const t=this.constructor.elementProperties;if(t.size>0)for(const[s,i]of t){const{wrapped:t}=i,e=this[s];!0!==t||this._$AL.has(s)||void 0===e||this.C(s,void 0,i,e)}}let t=!1;const s=this._$AL;try{t=this.shouldUpdate(s),t?(this.willUpdate(s),this._$EO?.forEach(t=>t.hostUpdate?.()),this.update(s)):this._$EM()}catch(s){throw t=!1,this._$EM(),s}t&&this._$AE(s)}willUpdate(t){}_$AE(t){this._$EO?.forEach(t=>t.hostUpdated?.()),this.hasUpdated||(this.hasUpdated=!0,this.firstUpdated(t)),this.updated(t)}_$EM(){this._$AL=new Map,this.isUpdatePending=!1}get updateComplete(){return this.getUpdateComplete()}getUpdateComplete(){return this._$ES}shouldUpdate(t){return!0}update(t){this._$Eq&&=this._$Eq.forEach(t=>this._$ET(t,this[t])),this._$EM()}updated(t){}firstUpdated(t){}}y.elementStyles=[],y.shadowRootOptions={mode:\"open\"},y[d(\"elementProperties\")]=new Map,y[d(\"finalized\")]=new Map,p?.({ReactiveElement:y}),(a.reactiveElementVersions??=[]).push(\"2.1.2\");export{y as ReactiveElement,s as adoptStyles,u as defaultConverter,t as getCompatibleStyle,f as notEqual};\n//# sourceMappingURL=reactive-element.js.map\n"],"x_google_ignoreList":[0],"mappings":"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"}
@@ -1,5 +0,0 @@
1
- import { customElement as e } from "../../../@lit_reactive-element@2.1.2/node_modules/@lit/reactive-element/decorators/custom-element.js";
2
- import { property as t, standardProperty as n } from "../../../@lit_reactive-element@2.1.2/node_modules/@lit/reactive-element/decorators/property.js";
3
- import { state as r } from "../../../@lit_reactive-element@2.1.2/node_modules/@lit/reactive-element/decorators/state.js";
4
- import { query as i } from "../../../@lit_reactive-element@2.1.2/node_modules/@lit/reactive-element/decorators/query.js";
5
- export { e as customElement, t as property, i as query, n as standardProperty, r as state };