@greypan/web-ui 1.0.0 → 1.1.1

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 (44) hide show
  1. package/.turbo/turbo-build.log +38 -20
  2. package/.turbo/turbo-test.log +14 -34
  3. package/CHANGELOG.md +28 -0
  4. package/dist/components/back-top/index.js +24 -18
  5. package/dist/components/back-top/index.js.map +1 -1
  6. package/dist/components/back-top/style.js.map +1 -1
  7. package/dist/components/button/index.js +17 -12
  8. package/dist/components/button/index.js.map +1 -1
  9. package/dist/components/button/style.js.map +1 -1
  10. package/dist/components/layout/index.js +11 -7
  11. package/dist/components/layout/index.js.map +1 -1
  12. package/dist/components/layout/style.js.map +1 -1
  13. package/dist/components/svg-draw-lines/index.js +17 -10
  14. package/dist/components/svg-draw-lines/index.js.map +1 -1
  15. package/dist/components/svg-draw-lines/style.js.map +1 -1
  16. package/dist/node_modules/.pnpm/@lit_reactive-element@2.1.2/node_modules/@lit/reactive-element/css-tag.js +32 -0
  17. package/dist/node_modules/.pnpm/@lit_reactive-element@2.1.2/node_modules/@lit/reactive-element/css-tag.js.map +1 -0
  18. package/dist/node_modules/.pnpm/@lit_reactive-element@2.1.2/node_modules/@lit/reactive-element/decorators/base.js +6 -0
  19. package/dist/node_modules/.pnpm/@lit_reactive-element@2.1.2/node_modules/@lit/reactive-element/decorators/base.js.map +1 -0
  20. package/dist/node_modules/.pnpm/@lit_reactive-element@2.1.2/node_modules/@lit/reactive-element/decorators/custom-element.js +10 -0
  21. package/dist/node_modules/.pnpm/@lit_reactive-element@2.1.2/node_modules/@lit/reactive-element/decorators/custom-element.js.map +1 -0
  22. package/dist/node_modules/.pnpm/@lit_reactive-element@2.1.2/node_modules/@lit/reactive-element/decorators/property.js +41 -0
  23. package/dist/node_modules/.pnpm/@lit_reactive-element@2.1.2/node_modules/@lit/reactive-element/decorators/property.js.map +1 -0
  24. package/dist/node_modules/.pnpm/@lit_reactive-element@2.1.2/node_modules/@lit/reactive-element/decorators/query.js +31 -0
  25. package/dist/node_modules/.pnpm/@lit_reactive-element@2.1.2/node_modules/@lit/reactive-element/decorators/query.js.map +1 -0
  26. package/dist/node_modules/.pnpm/@lit_reactive-element@2.1.2/node_modules/@lit/reactive-element/decorators/state.js +13 -0
  27. package/dist/node_modules/.pnpm/@lit_reactive-element@2.1.2/node_modules/@lit/reactive-element/decorators/state.js.map +1 -0
  28. package/dist/node_modules/.pnpm/@lit_reactive-element@2.1.2/node_modules/@lit/reactive-element/reactive-element.js +229 -0
  29. package/dist/node_modules/.pnpm/@lit_reactive-element@2.1.2/node_modules/@lit/reactive-element/reactive-element.js.map +1 -0
  30. package/dist/node_modules/.pnpm/lit-element@4.2.2/node_modules/lit-element/lit-element.js +33 -0
  31. package/dist/node_modules/.pnpm/lit-element@4.2.2/node_modules/lit-element/lit-element.js.map +1 -0
  32. package/dist/node_modules/.pnpm/lit-html@3.3.3/node_modules/lit-html/lit-html.js +233 -0
  33. package/dist/node_modules/.pnpm/lit-html@3.3.3/node_modules/lit-html/lit-html.js.map +1 -0
  34. package/dist/node_modules/.pnpm/lit@3.3.3/node_modules/lit/decorators.js +5 -0
  35. package/dist/node_modules/.pnpm/lit@3.3.3/node_modules/lit/index.js +5 -0
  36. package/package.json +9 -7
  37. package/src/components/back-top/style.css +4 -0
  38. package/src/components/button/style.css +4 -0
  39. package/src/components/layout/style.css +5 -2
  40. package/src/components/svg-draw-lines/index.ts +1 -1
  41. package/src/components/svg-draw-lines/style.css +2 -0
  42. package/vite.config.ts +1 -1
  43. package/dist/packages/browser-kit/dist/dom/index.js +0 -8
  44. package/dist/packages/browser-kit/dist/dom/index.js.map +0 -1
@@ -1,26 +1,44 @@
1
1
 
2
- > @greypan/web-ui@1.0.0 build /Users/bopan/VibeCoding/mono/packages/web-ui
3
- > vp build
2
+ > @greypan/web-ui@1.1.1 build /home/runner/work/mono/mono/packages/web-ui
3
+ > run-p type-check "build-only {@}" --
4
4
 
5
- vite v8.1.2 building client environment for production...
6
- 
7
- rendering chunks...
8
5
 
9
- [unplugin:dts] Start generate declaration files...
10
- [unplugin:dts] Declaration files built in 775ms.
6
+ > @greypan/web-ui@1.1.1 type-check /home/runner/work/mono/mono/packages/web-ui
7
+ > vue-tsc --build
8
+
11
9
 
10
+ > @greypan/web-ui@1.1.1 build-only /home/runner/work/mono/mono/packages/web-ui
11
+ > vp build
12
+
13
+ vite v8.1.3 building client environment for production...
14
+ 
15
+ rendering chunks...
16
+ 
17
+ [unplugin:dts] Start generate declaration files...
18
+ [unplugin:dts] Declaration files built in 2295ms.
19
+ 
12
20
  computing gzip size...
13
- dist/packages/browser-kit/dist/dom/index.js 0.22 kB │ gzip: 0.18 kB │ map: 0.55 kB
14
- dist/components/svg-draw-lines/style.js 0.35 kB │ gzip: 0.26 kB │ map: 0.44 kB
15
- dist/index.js 0.36 kB │ gzip: 0.17 kB
16
- dist/_virtual/_@oxc-project_runtime@0.138.0/helpers/esm/decorate.js 0.51 kB │ gzip: 0.33 kB
17
- dist/components/back-top/style.js 0.55 kB │ gzip: 0.31 kB │ map: 0.66 kB
18
- dist/components/layout/style.js 0.72 kB │ gzip: 0.41 kB │ map: 0.97 kB
19
- dist/components/layout/index.js 0.75 kB │ gzip: 0.41 kB │ map: 0.86 kB
20
- dist/components/button/style.js 0.99 kB │ gzip: 0.43 kB │ map: 1.28 kB
21
- dist/components/button/index.js 1.09 kB │ gzip: 0.51 kB │ map: 1.42 kB
22
- dist/components/back-top/index.js 2.95 kB │ gzip: 1.26 kB │ map: 5.14 kB
23
- dist/components/svg-draw-lines/index.js 3.06 kB │ gzip: 1.38 kB │ map: 6.66 kB
24
- dist/node_modules/.pnpm/iconify-icon@3.0.2/node_modules/iconify-icon/dist/iconify-icon.js 29.01 kB │ gzip: 9.28 kB │ map: 97.11 kB
21
+ dist/node_modules/.pnpm/@lit_reactive-element@2.1.2/node_modules/@lit/reactive-element/decorators/state.js 0.30 kB │ gzip: 0.22 kB │ map: 0.59 kB
22
+ dist/node_modules/.pnpm/@lit_reactive-element@2.1.2/node_modules/@lit/reactive-element/decorators/base.js 0.32 kB │ gzip: 0.23 kB │ map: 0.64 kB
23
+ dist/node_modules/.pnpm/@lit_reactive-element@2.1.2/node_modules/@lit/reactive-element/decorators/custom-element.js 0.35 kB │ gzip: 0.23 kB │ map: 0.68 kB
24
+ dist/components/svg-draw-lines/style.js 0.35 kB │ gzip: 0.26 kB │ map: 0.45 kB
25
+ dist/index.js 0.36 kB │ gzip: 0.17 kB
26
+ dist/_virtual/_@oxc-project_runtime@0.138.0/helpers/esm/decorate.js 0.51 kB │ gzip: 0.33 kB
27
+ dist/components/back-top/style.js 0.55 kB │ gzip: 0.31 kB │ map: 0.67 kB
28
+ dist/node_modules/.pnpm/lit@3.3.3/node_modules/lit/decorators.js 0.62 kB │ gzip: 0.20 kB
29
+ dist/components/layout/style.js 0.72 kB │ gzip: 0.41 kB │ map: 0.97 kB
30
+ dist/node_modules/.pnpm/lit@3.3.3/node_modules/lit/index.js 0.76 kB │ gzip: 0.32 kB
31
+ dist/node_modules/.pnpm/@lit_reactive-element@2.1.2/node_modules/@lit/reactive-element/decorators/query.js 0.76 kB │ gzip: 0.43 kB │ map: 1.34 kB
32
+ dist/components/button/style.js 0.99 kB │ gzip: 0.43 kB │ map: 1.29 kB
33
+ dist/components/layout/index.js 1.29 kB │ gzip: 0.50 kB │ map: 0.86 kB
34
+ dist/node_modules/.pnpm/@lit_reactive-element@2.1.2/node_modules/@lit/reactive-element/decorators/property.js 1.33 kB │ gzip: 0.69 kB │ map: 2.38 kB
35
+ dist/node_modules/.pnpm/@lit_reactive-element@2.1.2/node_modules/@lit/reactive-element/css-tag.js 1.50 kB │ gzip: 0.78 kB │ map: 2.89 kB
36
+ dist/node_modules/.pnpm/lit-element@4.2.2/node_modules/lit-element/lit-element.js 1.65 kB │ gzip: 0.71 kB │ map: 2.06 kB
37
+ dist/components/button/index.js 1.75 kB │ gzip: 0.61 kB │ map: 1.43 kB
38
+ dist/components/back-top/index.js 3.72 kB │ gzip: 1.35 kB │ map: 5.15 kB
39
+ dist/components/svg-draw-lines/index.js 3.98 kB │ gzip: 1.50 kB │ map: 6.66 kB
40
+ dist/node_modules/.pnpm/@lit_reactive-element@2.1.2/node_modules/@lit/reactive-element/reactive-element.js 7.85 kB │ gzip: 2.64 kB │ map: 13.43 kB
41
+ dist/node_modules/.pnpm/lit-html@3.3.3/node_modules/lit-html/lit-html.js 9.27 kB │ gzip: 3.54 kB │ map: 17.03 kB
42
+ dist/node_modules/.pnpm/iconify-icon@3.0.2/node_modules/iconify-icon/dist/iconify-icon.js 29.01 kB │ gzip: 9.28 kB │ map: 97.11 kB
25
43
 
26
- ✓ built in 819ms
44
+ ✓ built in 2.39s
@@ -1,34 +1,14 @@
1
-
2
- > @mono/web-ui@1.0.0 test /Users/bopan/VibeCoding/mono/packages/web-ui
3
- > vp test run
4
-
5
- [?25l
6
-  RUN  v4.1.9 /Users/bopan/VibeCoding/mono/packages/web-ui
7
-
8
- [?2026h
9
-  Test Files 0 passed (1)
10
-  Tests 0 passed (0)
11
-  Start at 22:41:27
12
-  Duration 949ms
13
- [?2026l[?2026h
14
-  Test Files 0 passed (1)
15
-  Tests 0 passed (0)
16
-  Start at 22:41:27
17
-  Duration 1.96s
18
- [?2026l[?2026h
19
-  ❯ src/components/layout/__tests__/layout.spec.ts 0/1
20
-
21
-  Test Files 0 passed (1)
22
-  Tests 0 passed (1)
23
-  Start at 22:41:27
24
-  Duration 2.06s
25
- [?2026l ✓ src/components/layout/__tests__/layout.spec.ts (1 test) 3ms
26
- ✓ test (1)
27
- ✓ 1 + 1 = 2 2ms
28
-
29
-  Test Files  1 passed (1)
30
-  Tests  1 passed (1)
31
-  Start at  22:41:27
32
-  Duration  2.14s (transform 32ms, setup 0ms, import 47ms, tests 3ms, environment 1.73s)
33
-
34
- [?25h
1
+
2
+ > @greypan/web-ui@1.1.1 test /home/runner/work/mono/mono/packages/web-ui
3
+ > vp test run
4
+
5
+
6
+  RUN  v4.1.9 /home/runner/work/mono/mono/packages/web-ui
7
+
8
+ ✓ src/components/layout/__tests__/layout.spec.ts (1 test) 12ms
9
+
10
+  Test Files  1 passed (1)
11
+  Tests  1 passed (1)
12
+  Start at  14:32:08
13
+  Duration  4.15s (transform 69ms, setup 0ms, import 119ms, tests 12ms, environment 3.38s)
14
+
package/CHANGELOG.md ADDED
@@ -0,0 +1,28 @@
1
+ # @greypan/web-ui
2
+
3
+ ## 1.1.1
4
+
5
+ ### Patch Changes
6
+
7
+ - Updated dependencies [ec36e92]
8
+ - @greypan/js-kit@1.1.1
9
+ - @greypan/browser-kit@1.2.1
10
+
11
+ ## 1.1.0
12
+
13
+ ### Minor Changes
14
+
15
+ - 4dfde81: 完善子包依赖,修复依赖缺失
16
+
17
+ ### Patch Changes
18
+
19
+ - Updated dependencies [4dfde81]
20
+ - @greypan/browser-kit@1.2.0
21
+ - @greypan/js-kit@1.1.0
22
+
23
+ ## 1.0.1
24
+
25
+ ### Patch Changes
26
+
27
+ - Updated dependencies
28
+ - @greypan/browser-kit@1.1.0
@@ -1,16 +1,22 @@
1
1
  import "../../node_modules/.pnpm/iconify-icon@3.0.2/node_modules/iconify-icon/dist/iconify-icon.js";
2
- import e from "../../_virtual/_@oxc-project_runtime@0.138.0/helpers/esm/decorate.js";
3
- import { getRootScrollTop as t } from "../../packages/browser-kit/dist/dom/index.js";
4
- import n from "./style.js";
5
- import { LitElement as r, html as i, unsafeCSS as a } from "lit";
6
- import { customElement as o, property as s, state as c } from "lit/decorators.js";
2
+ import { unsafeCSS as e } from "../../node_modules/.pnpm/@lit_reactive-element@2.1.2/node_modules/@lit/reactive-element/css-tag.js";
3
+ import { html as t } from "../../node_modules/.pnpm/lit-html@3.3.3/node_modules/lit-html/lit-html.js";
4
+ import { LitElement as n } from "../../node_modules/.pnpm/lit-element@4.2.2/node_modules/lit-element/lit-element.js";
5
+ import "../../node_modules/.pnpm/lit@3.3.3/node_modules/lit/index.js";
6
+ import { customElement as r } from "../../node_modules/.pnpm/@lit_reactive-element@2.1.2/node_modules/@lit/reactive-element/decorators/custom-element.js";
7
+ import { property as i } from "../../node_modules/.pnpm/@lit_reactive-element@2.1.2/node_modules/@lit/reactive-element/decorators/property.js";
8
+ import { state as a } from "../../node_modules/.pnpm/@lit_reactive-element@2.1.2/node_modules/@lit/reactive-element/decorators/state.js";
9
+ import "../../node_modules/.pnpm/lit@3.3.3/node_modules/lit/decorators.js";
10
+ import o from "../../_virtual/_@oxc-project_runtime@0.138.0/helpers/esm/decorate.js";
11
+ import s from "./style.js";
12
+ import { getRootScrollTop as c } from "@greypan/browser-kit";
7
13
  //#region src/components/back-top/index.ts
8
- var l = class extends r {
14
+ var l = class extends n {
9
15
  constructor(...e) {
10
16
  super(...e), this.smooth = !0, this.threshold = 200, this.visible = !1, this.scrollTarget = window;
11
17
  }
12
18
  static {
13
- this.styles = a(n);
19
+ this.styles = e(s);
14
20
  }
15
21
  connectedCallback() {
16
22
  super.connectedCallback(), this.computeVisible(), this.onScrollTarget();
@@ -33,12 +39,12 @@ var l = class extends r {
33
39
  });
34
40
  }
35
41
  computeVisible() {
36
- let { target: e } = this, n;
37
- if (e === window) n = t() >= this.threshold;
38
- else if (e instanceof HTMLElement) n = e.scrollTop >= this.threshold;
42
+ let { target: e } = this, t;
43
+ if (e === window) t = c() >= this.threshold;
44
+ else if (e instanceof HTMLElement) t = e.scrollTop >= this.threshold;
39
45
  else throw Error("Prop scrollTarget must be HTMLElement or Window.");
40
- n !== this.visible && (this.visible = n, this.dispatchEvent(new CustomEvent("visible-change", {
41
- detail: { visible: n },
46
+ t !== this.visible && (this.visible = t, this.dispatchEvent(new CustomEvent("visible-change", {
47
+ detail: { visible: t },
42
48
  bubbles: !0,
43
49
  composed: !0
44
50
  })));
@@ -53,7 +59,7 @@ var l = class extends r {
53
59
  e.key == "Enter" && (e.preventDefault(), this.toTop());
54
60
  }
55
61
  render() {
56
- return i`
62
+ return t`
57
63
  <div role="button" tabindex="0" @click=${this.toTop} @keydown=${this.onEnter}>
58
64
  <slot>
59
65
  <!-- 默认 slot 加上 tabindex="-1",防止双重 focus -->
@@ -65,19 +71,19 @@ var l = class extends r {
65
71
  `;
66
72
  }
67
73
  };
68
- e([s({
74
+ o([i({
69
75
  type: Boolean,
70
76
  reflect: !0
71
- })], l.prototype, "smooth", void 0), e([s({
77
+ })], l.prototype, "smooth", void 0), o([i({
72
78
  type: Number,
73
79
  reflect: !0
74
- })], l.prototype, "threshold", void 0), e([s({
80
+ })], l.prototype, "threshold", void 0), o([i({
75
81
  type: Boolean,
76
82
  reflect: !0
77
- })], l.prototype, "visible", void 0), e([s({
83
+ })], l.prototype, "visible", void 0), o([i({
78
84
  type: Object,
79
85
  attribute: !1
80
- })], l.prototype, "scrollTarget", void 0), e([c()], l.prototype, "eventController", void 0), l = e([o("web-ui-back-top")], l);
86
+ })], l.prototype, "scrollTarget", void 0), o([a()], l.prototype, "eventController", void 0), l = o([r("web-ui-back-top")], l);
81
87
  //#endregion
82
88
  export { l as WebUiBackTop };
83
89
 
@@ -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 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 //避免首次与 connectedCallback 重复触发\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 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;;;gBALnE,EAAU,CAAK;;CAS/B,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;EAOnD,AANA,MAAM,WAAW,CAAK,IAElB,EAAM,IAAI,WAAW,KAAK,EAAM,IAAI,cAAc,MACpD,KAAK,eAAe,GAGlB,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,SAAS;EACP,OAAO,CAAI;+CACgC,KAAK,MAAM,YAAY,KAAK,QAAQ;;;;;;;;;CASjF;AACF;GAzGG,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 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 //避免首次与 connectedCallback 重复触发\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 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;;;gBALnE,EAAU,CAAK;;CAS/B,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;EAOnD,AANA,MAAM,WAAW,CAAK,IAElB,EAAM,IAAI,WAAW,KAAK,EAAM,IAAI,cAAc,MACpD,KAAK,eAAe,GAGlB,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,SAAS;EACP,OAAO,CAAI;+CACgC,KAAK,MAAM,YAAY,KAAK,QAAQ;;;;;;;;;CASjF;AACF;GAzGG,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 +1 @@
1
- {"version":3,"file":"style.js","names":[],"sources":["../../../src/components/back-top/style.css?inline"],"sourcesContent":[":host {\n pointer-events: none;\n position: fixed;\n z-index: var(--web-ui-back-top-z-index, auto);\n top: var(--web-ui-back-top-top, auto);\n right: var(--web-ui-back-top-right, 20px);\n bottom: var(--web-ui-back-top-bottom, 20px);\n left: var(--web-ui-back-top-left, auto);\n transform: scale(0);\n display: inline-block;\n visibility: hidden;\n opacity: 0;\n transition: all 0.3s ease-out;\n}\n\n:host([visible]) {\n pointer-events: auto;\n transform: scale(1);\n visibility: visible;\n opacity: 1;\n}\n"],"mappings":""}
1
+ {"version":3,"file":"style.js","names":[],"sources":["../../../src/components/back-top/style.css?inline"],"sourcesContent":[":host {\n pointer-events: none;\n\n position: fixed;\n z-index: var(--web-ui-back-top-z-index, auto);\n top: var(--web-ui-back-top-top, auto);\n right: var(--web-ui-back-top-right, 20px);\n bottom: var(--web-ui-back-top-bottom, 20px);\n left: var(--web-ui-back-top-left, auto);\n transform: scale(0);\n\n display: inline-block;\n\n visibility: hidden;\n opacity: 0;\n\n transition: all 0.3s ease-out;\n}\n\n:host([visible]) {\n pointer-events: auto;\n transform: scale(1);\n visibility: visible;\n opacity: 1;\n}\n"],"mappings":""}
@@ -1,19 +1,24 @@
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";
1
+ import { unsafeCSS as e } from "../../node_modules/.pnpm/@lit_reactive-element@2.1.2/node_modules/@lit/reactive-element/css-tag.js";
2
+ import { html as t } from "../../node_modules/.pnpm/lit-html@3.3.3/node_modules/lit-html/lit-html.js";
3
+ import { LitElement as n } from "../../node_modules/.pnpm/lit-element@4.2.2/node_modules/lit-element/lit-element.js";
4
+ import "../../node_modules/.pnpm/lit@3.3.3/node_modules/lit/index.js";
5
+ import { customElement as r } from "../../node_modules/.pnpm/@lit_reactive-element@2.1.2/node_modules/@lit/reactive-element/decorators/custom-element.js";
6
+ import { property as i } from "../../node_modules/.pnpm/@lit_reactive-element@2.1.2/node_modules/@lit/reactive-element/decorators/property.js";
7
+ import "../../node_modules/.pnpm/lit@3.3.3/node_modules/lit/decorators.js";
8
+ import a from "./style.js";
9
+ import o from "../../_virtual/_@oxc-project_runtime@0.138.0/helpers/esm/decorate.js";
5
10
  //#region src/components/button/index.ts
6
11
  var s = class extends n {
7
12
  constructor(...e) {
8
13
  super(...e), this.full = !1, this.primary = !1, this.text = !1, this.icon = !1;
9
14
  }
10
15
  static {
11
- this.styles = i(e);
16
+ this.styles = e(a);
12
17
  }
13
18
  render() {
14
- return r`
19
+ return t`
15
20
  <button>
16
- ${this.icon ? r`<slot></slot>` : r`
21
+ ${this.icon ? t`<slot></slot>` : t`
17
22
  <slot name="prefix"></slot>
18
23
  <slot></slot>
19
24
  <slot name="suffix"></slot>
@@ -22,19 +27,19 @@ var s = class extends n {
22
27
  `;
23
28
  }
24
29
  };
25
- t([o({
30
+ o([i({
26
31
  type: Boolean,
27
32
  reflect: !0
28
- })], s.prototype, "full", void 0), t([o({
33
+ })], s.prototype, "full", void 0), o([i({
29
34
  type: Boolean,
30
35
  reflect: !0
31
- })], s.prototype, "primary", void 0), t([o({
36
+ })], s.prototype, "primary", void 0), o([i({
32
37
  type: Boolean,
33
38
  reflect: !0
34
- })], s.prototype, "text", void 0), t([o({
39
+ })], s.prototype, "text", void 0), o([i({
35
40
  type: Boolean,
36
41
  reflect: !0
37
- })], s.prototype, "icon", void 0), s = t([a("web-ui-button")], s);
42
+ })], s.prototype, "icon", void 0), s = o([r("web-ui-button")], s);
38
43
  //#endregion
39
44
  export { s as WebUiButton };
40
45
 
@@ -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 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 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;;;gBALnC,EAAU,CAAK;;CAO/B,SAAS;EACP,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 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 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;;;gBALnC,EAAU,CAAK;;CAO/B,SAAS;EACP,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 +1 @@
1
- {"version":3,"file":"style.js","names":[],"sources":["../../../src/components/button/style.css?inline"],"sourcesContent":[":host {\n button {\n cursor: pointer;\n display: inline-flex;\n gap: var(--web-ui-button-gap, 8px);\n align-items: center;\n justify-content: center;\n width: max-content;\n min-height: var(--web-ui-button-h, 32px);\n padding: var(--web-ui-button-p-y, 4px) var(--web-ui-button-p-x, 16px);\n border: none;\n border-radius: 999vmax;\n font-size: var(--web-ui-button-font-size, 14px);\n font-weight: var(--web-ui-button-bold, 500);\n color: var(--web-ui-button-color, #006cf9);\n background: none;\n background-color: var(--web-ui-button-bg, #f0f0f6);\n }\n}\n\n:host([full]) {\n button {\n display: flex;\n width: 100%;\n }\n}\n\n:host([primary]) {\n button {\n color: var(--web-ui-button-primary-color, #fff);\n background-color: var(--web-ui-button-primary-bg, #006cf9);\n }\n}\n\n:host([text]) {\n button {\n color: var(--web-ui-button-primary-color, #006cf9);\n background-color: transparent;\n }\n}\n\n:host([icon]) {\n button {\n width: var(--web-ui-button-h, 32px);\n height: var(--web-ui-button-h, 32px);\n padding: var(--web-ui-button-p-y, 4px);\n }\n}\n"],"mappings":""}
1
+ {"version":3,"file":"style.js","names":[],"sources":["../../../src/components/button/style.css?inline"],"sourcesContent":[":host {\n button {\n cursor: pointer;\n\n display: inline-flex;\n gap: var(--web-ui-button-gap, 8px);\n align-items: center;\n justify-content: center;\n\n width: max-content;\n min-height: var(--web-ui-button-h, 32px);\n padding: var(--web-ui-button-p-y, 4px) var(--web-ui-button-p-x, 16px);\n border: none;\n border-radius: 999vmax;\n\n font-size: var(--web-ui-button-font-size, 14px);\n font-weight: var(--web-ui-button-bold, 500);\n color: var(--web-ui-button-color, #006cf9);\n\n background: none;\n background-color: var(--web-ui-button-bg, #f0f0f6);\n }\n}\n\n:host([full]) {\n button {\n display: flex;\n width: 100%;\n }\n}\n\n:host([primary]) {\n button {\n color: var(--web-ui-button-primary-color, #fff);\n background-color: var(--web-ui-button-primary-bg, #006cf9);\n }\n}\n\n:host([text]) {\n button {\n color: var(--web-ui-button-primary-color, #006cf9);\n background-color: transparent;\n }\n}\n\n:host([icon]) {\n button {\n width: var(--web-ui-button-h, 32px);\n height: var(--web-ui-button-h, 32px);\n padding: var(--web-ui-button-p-y, 4px);\n }\n}\n"],"mappings":""}
@@ -1,14 +1,18 @@
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";
1
+ import { unsafeCSS as e } from "../../node_modules/.pnpm/@lit_reactive-element@2.1.2/node_modules/@lit/reactive-element/css-tag.js";
2
+ import { html as t } from "../../node_modules/.pnpm/lit-html@3.3.3/node_modules/lit-html/lit-html.js";
3
+ import { LitElement as n } from "../../node_modules/.pnpm/lit-element@4.2.2/node_modules/lit-element/lit-element.js";
4
+ import "../../node_modules/.pnpm/lit@3.3.3/node_modules/lit/index.js";
5
+ import { customElement as r } from "../../node_modules/.pnpm/@lit_reactive-element@2.1.2/node_modules/@lit/reactive-element/decorators/custom-element.js";
6
+ import "../../node_modules/.pnpm/lit@3.3.3/node_modules/lit/decorators.js";
7
+ import i from "../../_virtual/_@oxc-project_runtime@0.138.0/helpers/esm/decorate.js";
8
+ import a from "./style.js";
5
9
  //#region src/components/layout/index.ts
6
10
  var o = class extends n {
7
11
  static {
8
- this.styles = i(t);
12
+ this.styles = e(a);
9
13
  }
10
14
  render() {
11
- return r`
15
+ return t`
12
16
  <header>
13
17
  <slot name="header"></slot>
14
18
  </header>
@@ -24,7 +28,7 @@ var o = class extends n {
24
28
  `;
25
29
  }
26
30
  };
27
- o = e([a("web-ui-layout")], o);
31
+ o = i([r("web-ui-layout")], o);
28
32
  //#endregion
29
33
  export { o as WebUiLayout };
30
34
 
@@ -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 styles = unsafeCSS(style)\n\n 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;;gBAC1B,EAAU,CAAK;;CAE/B,SAAS;EACP,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 styles = unsafeCSS(style)\n\n 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;;gBAC1B,EAAU,CAAK;;CAE/B,SAAS;EACP,OAAO,CAAI;;;;;;;;;;;;;;CAcb;AACF;OApBC,EAAc,eAAe,CAAA,GAAA,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"style.js","names":[],"sources":["../../../src/components/layout/style.css?inline"],"sourcesContent":[":host {\n display: grid;\n grid-template-areas:\n \"sidebar header\"\n \"sidebar content\";\n grid-template-columns: var(--web-ui-base-layout-sidebar-width, 240px) 1fr;\n grid-template-rows: var(--web-ui-base-layout-header-height, 64px) 1fr;\n box-sizing: border-box;\n min-height: 100dvh;\n min-height: 100vh;\n\n * {\n box-sizing: inherit;\n }\n}\n\nheader {\n position: sticky;\n top: 0;\n right: 0;\n grid-area: header;\n}\n\nmain {\n grid-area: content;\n}\n\naside {\n position: sticky;\n top: 0;\n left: 0;\n grid-area: sidebar;\n height: 100dvh;\n height: 100vh;\n padding: 8px;\n\n .menu {\n height: 100%;\n border-radius: 16px;\n background-color: var(--web-ui-base-layout-bg, #f5f5f5);\n box-shadow: 2px 4px 32px rgb(0 0 0 / 0.2);\n }\n}\n\nfooter {\n grid-area: footer;\n}\n"],"mappings":""}
1
+ {"version":3,"file":"style.js","names":[],"sources":["../../../src/components/layout/style.css?inline"],"sourcesContent":[":host {\n display: grid;\n grid-template-areas:\n 'sidebar header'\n 'sidebar content';\n grid-template-columns: var(--web-ui-base-layout-sidebar-width, 240px) 1fr;\n grid-template-rows: var(--web-ui-base-layout-header-height, 64px) 1fr;\n\n box-sizing: border-box;\n min-height: 100dvh;\n min-height: 100vh;\n\n * {\n box-sizing: inherit;\n }\n}\n\nheader {\n position: sticky;\n top: 0;\n right: 0;\n grid-area: header;\n}\n\nmain {\n grid-area: content;\n}\n\naside {\n position: sticky;\n top: 0;\n left: 0;\n\n grid-area: sidebar;\n\n height: 100dvh;\n height: 100vh;\n padding: 8px;\n\n .menu {\n height: 100%;\n border-radius: 16px;\n background-color: var(--web-ui-base-layout-bg, #f5f5f5);\n box-shadow: 2px 4px 32px rgb(0 0 0 / 0.2);\n }\n}\n\nfooter {\n grid-area: footer;\n}\n"],"mappings":""}
@@ -1,14 +1,21 @@
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";
1
+ import { unsafeCSS as e } from "../../node_modules/.pnpm/@lit_reactive-element@2.1.2/node_modules/@lit/reactive-element/css-tag.js";
2
+ import { html as t } from "../../node_modules/.pnpm/lit-html@3.3.3/node_modules/lit-html/lit-html.js";
3
+ import { LitElement as n } from "../../node_modules/.pnpm/lit-element@4.2.2/node_modules/lit-element/lit-element.js";
4
+ import "../../node_modules/.pnpm/lit@3.3.3/node_modules/lit/index.js";
5
+ import { customElement as r } from "../../node_modules/.pnpm/@lit_reactive-element@2.1.2/node_modules/@lit/reactive-element/decorators/custom-element.js";
6
+ import { property as i } from "../../node_modules/.pnpm/@lit_reactive-element@2.1.2/node_modules/@lit/reactive-element/decorators/property.js";
7
+ import { state as a } from "../../node_modules/.pnpm/@lit_reactive-element@2.1.2/node_modules/@lit/reactive-element/decorators/state.js";
8
+ import { query as o } from "../../node_modules/.pnpm/@lit_reactive-element@2.1.2/node_modules/@lit/reactive-element/decorators/query.js";
9
+ import "../../node_modules/.pnpm/lit@3.3.3/node_modules/lit/decorators.js";
10
+ import s from "../../_virtual/_@oxc-project_runtime@0.138.0/helpers/esm/decorate.js";
11
+ import c from "./style.js";
5
12
  //#region src/components/svg-draw-lines/index.ts
6
13
  var l = class extends n {
7
14
  constructor(...e) {
8
15
  super(...e), this.duration = 1e3, this.easing = "linear", this.isAnimating = !1, this.svgClone = null;
9
16
  }
10
17
  static {
11
- this.styles = i(t);
18
+ this.styles = e(c);
12
19
  }
13
20
  handleSlotChange() {
14
21
  this.isAnimating || (this.cloneOriginalSvg(), this.isAnimating = !0, this.startAnimation());
@@ -67,19 +74,19 @@ var l = class extends n {
67
74
  this.isAnimating = !1, this.svgClone = null;
68
75
  }
69
76
  render() {
70
- return r`
77
+ return t`
71
78
  <slot ?hidden="${this.isAnimating}" @slotchange="${this.handleSlotChange}"></slot>
72
79
  ${this.isAnimating ? this.svgClone : ""}
73
80
  `;
74
81
  }
75
82
  };
76
- e([o({
77
- type: Boolean,
83
+ s([i({
84
+ type: Number,
78
85
  reflect: !0
79
- })], l.prototype, "duration", void 0), e([o({
86
+ })], l.prototype, "duration", void 0), s([i({
80
87
  type: String,
81
88
  reflect: !0
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);
89
+ })], l.prototype, "easing", void 0), s([a()], l.prototype, "isAnimating", void 0), s([a()], l.prototype, "svgClone", void 0), s([o("slot")], l.prototype, "slotEl", void 0), l = s([r("web-ui-svg-draw-lines")], l);
83
90
  //#endregion
84
91
  export { l as WebUiSvgDrawLines };
85
92
 
@@ -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 styles = unsafeCSS(style)\n\n @property({ type: Boolean, 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 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 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 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 +1 @@
1
- {"version":3,"file":"style.js","names":[],"sources":["../../../src/components/svg-draw-lines/style.css?inline"],"sourcesContent":[":host {\n position: relative;\n display: inline-block;\n vertical-align: middle;\n\n .svg-clone {\n pointer-events: none;\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n }\n\n slot[hidden] {\n display: contents;\n visibility: hidden;\n }\n}\n"],"mappings":""}
1
+ {"version":3,"file":"style.js","names":[],"sources":["../../../src/components/svg-draw-lines/style.css?inline"],"sourcesContent":[":host {\n position: relative;\n display: inline-block;\n vertical-align: middle;\n\n .svg-clone {\n pointer-events: none;\n\n position: absolute;\n top: 0;\n left: 0;\n\n width: 100%;\n height: 100%;\n }\n\n slot[hidden] {\n display: contents;\n visibility: hidden;\n }\n}\n"],"mappings":""}
@@ -0,0 +1,32 @@
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
@@ -0,0 +1 @@
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"}
@@ -0,0 +1,6 @@
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
@@ -0,0 +1 @@
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"}
@@ -0,0 +1,10 @@
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
@@ -0,0 +1 @@
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"}
@@ -0,0 +1,41 @@
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