@shibui-ui/ui 1.24.1 → 1.25.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.
- package/dist/components/atoms/index.d.ts +45 -16
- package/dist/components/atoms/index.d.ts.map +1 -1
- package/dist/components/molecules/index.d.ts +20 -1
- package/dist/components/molecules/index.d.ts.map +1 -1
- package/dist/components/organisms/index.d.ts +17 -1
- package/dist/components/organisms/index.d.ts.map +1 -1
- package/dist/index.d.ts +3 -82
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +79 -80
- package/dist/index.js.map +1 -1
- package/dist/index10.js +82 -18
- package/dist/index10.js.map +1 -1
- package/dist/index11.js +84 -69
- package/dist/index11.js.map +1 -1
- package/dist/index12.js +40 -26
- package/dist/index12.js.map +1 -1
- package/dist/index13.js +16 -39
- package/dist/index13.js.map +1 -1
- package/dist/index14.js +29 -44
- package/dist/index14.js.map +1 -1
- package/dist/index15.js +16 -117
- package/dist/index15.js.map +1 -1
- package/dist/index16.js +48 -40
- package/dist/index16.js.map +1 -1
- package/dist/index17.js +41 -25
- package/dist/index17.js.map +1 -1
- package/dist/index18.js +76 -49
- package/dist/index18.js.map +1 -1
- package/dist/index19.js +19 -39
- package/dist/index19.js.map +1 -1
- package/dist/index194.js +94 -24
- package/dist/index194.js.map +1 -1
- package/dist/index195.js +2 -2
- package/dist/index197.js +2 -24
- package/dist/index197.js.map +1 -1
- package/dist/index198.js +74 -2
- package/dist/index198.js.map +1 -1
- package/dist/index199.js +64 -35
- package/dist/index199.js.map +1 -1
- package/dist/index20.js +21 -41
- package/dist/index20.js.map +1 -1
- package/dist/index200.js +2 -2
- package/dist/index201.js +54 -13
- package/dist/index201.js.map +1 -1
- package/dist/index202.js +2 -2
- package/dist/index203.js +2 -2
- package/dist/index204.js +143 -157
- package/dist/index204.js.map +1 -1
- package/dist/index205.js +43 -24
- package/dist/index205.js.map +1 -1
- package/dist/index206.js +51 -2
- package/dist/index206.js.map +1 -1
- package/dist/index207.js +2 -11
- package/dist/index207.js.map +1 -1
- package/dist/index208.js +33 -2
- package/dist/index208.js.map +1 -1
- package/dist/index209.js +2 -91
- package/dist/index209.js.map +1 -1
- package/dist/index21.js +90 -26
- package/dist/index21.js.map +1 -1
- package/dist/index210.js +6 -2
- package/dist/index210.js.map +1 -1
- package/dist/index211.js +2 -41
- package/dist/index211.js.map +1 -1
- package/dist/index212.js +260 -2
- package/dist/index212.js.map +1 -1
- package/dist/index213.js +16 -5
- package/dist/index213.js.map +1 -1
- package/dist/index214.js +2 -2
- package/dist/index215.js +2 -35
- package/dist/index215.js.map +1 -1
- package/dist/index216.js +59 -42
- package/dist/index216.js.map +1 -1
- package/dist/index217.js +32 -2
- package/dist/index217.js.map +1 -1
- package/dist/index218.js +2 -85
- package/dist/index218.js.map +1 -1
- package/dist/index219.js +2 -2
- package/dist/index22.js +41 -48
- package/dist/index22.js.map +1 -1
- package/dist/index220.js +73 -65
- package/dist/index220.js.map +1 -1
- package/dist/index221.js +81 -2
- package/dist/index221.js.map +1 -1
- package/dist/index222.js +2 -10
- package/dist/index222.js.map +1 -1
- package/dist/index223.js +133 -2
- package/dist/index223.js.map +1 -1
- package/dist/index224.js +2 -26
- package/dist/index224.js.map +1 -1
- package/dist/index225.js +2 -2
- package/dist/index226.js +66 -12
- package/dist/index226.js.map +1 -1
- package/dist/index227.js +97 -2
- package/dist/index227.js.map +1 -1
- package/dist/index228.js +2 -2
- package/dist/index229.js +62 -24
- package/dist/index229.js.map +1 -1
- package/dist/index23.js +50 -94
- package/dist/index23.js.map +1 -1
- package/dist/index230.js +2 -2
- package/dist/index231.js +2 -2
- package/dist/index232.js +12 -2
- package/dist/index232.js.map +1 -1
- package/dist/index233.js +5 -16
- package/dist/index233.js.map +1 -1
- package/dist/index234.js +2 -2
- package/dist/index235.js +11 -9
- package/dist/index235.js.map +1 -1
- package/dist/index236.js +2 -2
- package/dist/index237.js +76 -34
- package/dist/index237.js.map +1 -1
- package/dist/index238.js +2 -2
- package/dist/index239.js +2 -27
- package/dist/index239.js.map +1 -1
- package/dist/index24.js +37 -34
- package/dist/index24.js.map +1 -1
- package/dist/index240.js +39 -2
- package/dist/index240.js.map +1 -1
- package/dist/index241.js +2 -34
- package/dist/index241.js.map +1 -1
- package/dist/index242.js +235 -12
- package/dist/index242.js.map +1 -1
- package/dist/index243.js +82 -2
- package/dist/index243.js.map +1 -1
- package/dist/index244.js +2 -9
- package/dist/index244.js.map +1 -1
- package/dist/index245.js +94 -2
- package/dist/index245.js.map +1 -1
- package/dist/index246.js +2 -5
- package/dist/index246.js.map +1 -1
- package/dist/index247.js +268 -2
- package/dist/index247.js.map +1 -1
- package/dist/index248.js +2 -36
- package/dist/index248.js.map +1 -1
- package/dist/index249.js +21 -2
- package/dist/index249.js.map +1 -1
- package/dist/index25.js +51 -32
- package/dist/index25.js.map +1 -1
- package/dist/index250.js +2 -31
- package/dist/index250.js.map +1 -1
- package/dist/index251.js +9 -2
- package/dist/index251.js.map +1 -1
- package/dist/index252.js +2 -19
- package/dist/index252.js.map +1 -1
- package/dist/index253.js +15 -2
- package/dist/index253.js.map +1 -1
- package/dist/index254.js +2 -2
- package/dist/index255.js +135 -69
- package/dist/index255.js.map +1 -1
- package/dist/index256.js +2 -11
- package/dist/index256.js.map +1 -1
- package/dist/index257.js +5 -2
- package/dist/index257.js.map +1 -1
- package/dist/index258.js +2 -78
- package/dist/index258.js.map +1 -1
- package/dist/index259.js +9 -2
- package/dist/index259.js.map +1 -1
- package/dist/index26.js +31 -236
- package/dist/index26.js.map +1 -1
- package/dist/index260.js +2 -32
- package/dist/index260.js.map +1 -1
- package/dist/index261.js +2 -2
- package/dist/index262.js +92 -9
- package/dist/index262.js.map +1 -1
- package/dist/index263.js +59 -2
- package/dist/index263.js.map +1 -1
- package/dist/index264.js +2 -16
- package/dist/index264.js.map +1 -1
- package/dist/index265.js +41 -2
- package/dist/index265.js.map +1 -1
- package/dist/index266.js +2 -16
- package/dist/index266.js.map +1 -1
- package/dist/index267.js +34 -9
- package/dist/index267.js.map +1 -1
- package/dist/index268.js +8 -54
- package/dist/index268.js.map +1 -1
- package/dist/index269.js +2 -2
- package/dist/index27.js +27 -58
- package/dist/index27.js.map +1 -1
- package/dist/index270.js +42 -7
- package/dist/index270.js.map +1 -1
- package/dist/index271.js +2 -2
- package/dist/index272.js +2 -34
- package/dist/index272.js.map +1 -1
- package/dist/index273.js +16 -2
- package/dist/index273.js.map +1 -1
- package/dist/index274.js +9 -2
- package/dist/index274.js.map +1 -1
- package/dist/index275.js +6 -13
- package/dist/index275.js.map +1 -1
- package/dist/index276.js +2 -2
- package/dist/index277.js +8 -15
- package/dist/index277.js.map +1 -1
- package/dist/index278.js +2 -2
- package/dist/index279.js +55 -2
- package/dist/index279.js.map +1 -1
- package/dist/index28.js +247 -24
- package/dist/index28.js.map +1 -1
- package/dist/index280.js +2 -42
- package/dist/index280.js.map +1 -1
- package/dist/index281.js +2 -100
- package/dist/index281.js.map +1 -1
- package/dist/index282.js +20 -2
- package/dist/index282.js.map +1 -1
- package/dist/index283.js +2 -97
- package/dist/index283.js.map +1 -1
- package/dist/index284.js +33 -2
- package/dist/index284.js.map +1 -1
- package/dist/index285.js +6 -27
- package/dist/index285.js.map +1 -1
- package/dist/index286.js +2 -2
- package/dist/index287.js +9 -44
- package/dist/index287.js.map +1 -1
- package/dist/index288.js +2 -2
- package/dist/index289.js +2 -33
- package/dist/index289.js.map +1 -1
- package/dist/index29.js +249 -39
- package/dist/index29.js.map +1 -1
- package/dist/index290.js +36 -2
- package/dist/index290.js.map +1 -1
- package/dist/index291.js +2 -57
- package/dist/index291.js.map +1 -1
- package/dist/index292.js +24 -2
- package/dist/index292.js.map +1 -1
- package/dist/index293.js +2 -2
- package/dist/index294.js +26 -247
- package/dist/index294.js.map +1 -1
- package/dist/index295.js +2 -2
- package/dist/index296.js +2 -72
- package/dist/index296.js.map +1 -1
- package/dist/index297.js +42 -2
- package/dist/index297.js.map +1 -1
- package/dist/index298.js +7 -56
- package/dist/index298.js.map +1 -1
- package/dist/index299.js +2 -133
- package/dist/index299.js.map +1 -1
- package/dist/index30.js +32 -19
- package/dist/index30.js.map +1 -1
- package/dist/index300.js +30 -2
- package/dist/index300.js.map +1 -1
- package/dist/index301.js +2 -12
- package/dist/index301.js.map +1 -1
- package/dist/index302.js +34 -2
- package/dist/index302.js.map +1 -1
- package/dist/index303.js +2 -162
- package/dist/index303.js.map +1 -1
- package/dist/index304.js +26 -42
- package/dist/index304.js.map +1 -1
- package/dist/index305.js +2 -81
- package/dist/index305.js.map +1 -1
- package/dist/index306.js +10 -2
- package/dist/index306.js.map +1 -1
- package/dist/index307.js +2 -71
- package/dist/index307.js.map +1 -1
- package/dist/index308.js +2 -2
- package/dist/index309.js +19 -2
- package/dist/index309.js.map +1 -1
- package/dist/index31.js +96 -11
- package/dist/index31.js.map +1 -1
- package/dist/index310.js +2 -81
- package/dist/index310.js.map +1 -1
- package/dist/index311.js +2 -2
- package/dist/index312.js +42 -2
- package/dist/index312.js.map +1 -1
- package/dist/index313.js +2 -74
- package/dist/index313.js.map +1 -1
- package/dist/index314.js +25 -67
- package/dist/index314.js.map +1 -1
- package/dist/index315.js +2 -2
- package/dist/index316.js +9 -17
- package/dist/index316.js.map +1 -1
- package/dist/index317.js +2 -2
- package/dist/index318.js +84 -32
- package/dist/index318.js.map +1 -1
- package/dist/index319.js +2 -2
- package/dist/index32.js +40 -48
- package/dist/index32.js.map +1 -1
- package/dist/index320.js +68 -77
- package/dist/index320.js.map +1 -1
- package/dist/index321.js +2 -2
- package/dist/index322.js +12 -148
- package/dist/index322.js.map +1 -1
- package/dist/index323.js +1 -1
- package/dist/index324.js +28 -6
- package/dist/index324.js.map +1 -1
- package/dist/index325.js +2 -2
- package/dist/index326.js +78 -87
- package/dist/index326.js.map +1 -1
- package/dist/index327.js +2 -2
- package/dist/index328.js +78 -2
- package/dist/index328.js.map +1 -1
- package/dist/index329.js +2 -237
- package/dist/index329.js.map +1 -1
- package/dist/index33.js +20 -56
- package/dist/index33.js.map +1 -1
- package/dist/index330.js +11 -6
- package/dist/index330.js.map +1 -1
- package/dist/index331.js +2 -2
- package/dist/index332.js +18 -59
- package/dist/index332.js.map +1 -1
- package/dist/index333.js +2 -2
- package/dist/index334.js +12 -5
- package/dist/index334.js.map +1 -1
- package/dist/index335.js +2 -2
- package/dist/index336.js +2 -15
- package/dist/index336.js.map +1 -1
- package/dist/index337.js +88 -2
- package/dist/index337.js.map +1 -1
- package/dist/index338.js +24 -2
- package/dist/index338.js.map +1 -1
- package/dist/index339.js +2 -92
- package/dist/index339.js.map +1 -1
- package/dist/index34.js +59 -35
- package/dist/index34.js.map +1 -1
- package/dist/index340.js +42 -14
- package/dist/index340.js.map +1 -1
- package/dist/index341.js +2 -2
- package/dist/index342.js +22 -80
- package/dist/index342.js.map +1 -1
- package/dist/index343.js +2 -2
- package/dist/index344.js +2 -18
- package/dist/index344.js.map +1 -1
- package/dist/index345.js +16 -2
- package/dist/index345.js.map +1 -1
- package/dist/index346.js +2 -268
- package/dist/index346.js.map +1 -1
- package/dist/index347.js +176 -2
- package/dist/index347.js.map +1 -1
- package/dist/index348.js +2 -2
- package/dist/index349.js +35 -39
- package/dist/index349.js.map +1 -1
- package/dist/index35.js +101 -28
- package/dist/index35.js.map +1 -1
- package/dist/index350.js +3 -3
- package/dist/index350.js.map +1 -1
- package/dist/index351.js +2 -2
- package/dist/index352.js +19 -26
- package/dist/index352.js.map +1 -1
- package/dist/index357.js +26 -19
- package/dist/index357.js.map +1 -1
- package/dist/index36.js +115 -33
- package/dist/index36.js.map +1 -1
- package/dist/index37.js +41 -115
- package/dist/index37.js.map +1 -1
- package/dist/index38.js +34 -246
- package/dist/index38.js.map +1 -1
- package/dist/index39.js +30 -137
- package/dist/index39.js.map +1 -1
- package/dist/index4.js +26 -84
- package/dist/index4.js.map +1 -1
- package/dist/index40.js +26 -400
- package/dist/index40.js.map +1 -1
- package/dist/index41.js +28 -77
- package/dist/index41.js.map +1 -1
- package/dist/index42.js +23 -26
- package/dist/index42.js.map +1 -1
- package/dist/index43.js +36 -33
- package/dist/index43.js.map +1 -1
- package/dist/index44.js +62 -16
- package/dist/index44.js.map +1 -1
- package/dist/index45.js +138 -21
- package/dist/index45.js.map +1 -1
- package/dist/index46.js +129 -22
- package/dist/index46.js.map +1 -1
- package/dist/index47.js +41 -19
- package/dist/index47.js.map +1 -1
- package/dist/index48.js +11 -82
- package/dist/index48.js.map +1 -1
- package/dist/index49.js +56 -279
- package/dist/index49.js.map +1 -1
- package/dist/index5.js +21 -34
- package/dist/index5.js.map +1 -1
- package/dist/index50.js +280 -33
- package/dist/index50.js.map +1 -1
- package/dist/index51.js +74 -94
- package/dist/index51.js.map +1 -1
- package/dist/index52.js +66 -41
- package/dist/index52.js.map +1 -1
- package/dist/index53.js +333 -62
- package/dist/index53.js.map +1 -1
- package/dist/index54.js +96 -256
- package/dist/index54.js.map +1 -1
- package/dist/index55.js +38 -130
- package/dist/index55.js.map +1 -1
- package/dist/index56.js +251 -50
- package/dist/index56.js.map +1 -1
- package/dist/index57.js +144 -115
- package/dist/index57.js.map +1 -1
- package/dist/index58.js +93 -183
- package/dist/index58.js.map +1 -1
- package/dist/index59.js +33 -339
- package/dist/index59.js.map +1 -1
- package/dist/index6.js +2 -2
- package/dist/index60.js +102 -66
- package/dist/index60.js.map +1 -1
- package/dist/index61.js +73 -179
- package/dist/index61.js.map +1 -1
- package/dist/index62.js +117 -97
- package/dist/index62.js.map +1 -1
- package/dist/index63.js +113 -263
- package/dist/index63.js.map +1 -1
- package/dist/index64.js +258 -251
- package/dist/index64.js.map +1 -1
- package/dist/index65.js +177 -79
- package/dist/index65.js.map +1 -1
- package/dist/index66.js +261 -140
- package/dist/index66.js.map +1 -1
- package/dist/index67.js +183 -100
- package/dist/index67.js.map +1 -1
- package/dist/index68.js +28 -89
- package/dist/index68.js.map +1 -1
- package/dist/index69.js +20 -161
- package/dist/index69.js.map +1 -1
- package/dist/index7.js +394 -32
- package/dist/index7.js.map +1 -1
- package/dist/index70.js +190 -53
- package/dist/index70.js.map +1 -1
- package/dist/index71.js +204 -112
- package/dist/index71.js.map +1 -1
- package/dist/index72.js +2 -2
- package/dist/index73.js +89 -28
- package/dist/index73.js.map +1 -1
- package/dist/index74.js +126 -63
- package/dist/index74.js.map +1 -1
- package/dist/index75.js +122 -111
- package/dist/index75.js.map +1 -1
- package/dist/index76.js +67 -64
- package/dist/index76.js.map +1 -1
- package/dist/index77.js +112 -88
- package/dist/index77.js.map +1 -1
- package/dist/index78.js +87 -16
- package/dist/index78.js.map +1 -1
- package/dist/index79.js +151 -79
- package/dist/index79.js.map +1 -1
- package/dist/index8.js +25 -127
- package/dist/index8.js.map +1 -1
- package/dist/index80.js +104 -186
- package/dist/index80.js.map +1 -1
- package/dist/index81.js +59 -20
- package/dist/index81.js.map +1 -1
- package/dist/index82.js +17 -129
- package/dist/index82.js.map +1 -1
- package/dist/index83.js +88 -217
- package/dist/index83.js.map +1 -1
- package/dist/index84.js +64 -112
- package/dist/index84.js.map +1 -1
- package/dist/index9.js +30 -45
- package/dist/index9.js.map +1 -1
- package/dist/src/components/atoms/index.d.ts +45 -16
- package/dist/src/components/atoms/index.d.ts.map +1 -1
- package/dist/src/components/molecules/index.d.ts +20 -1
- package/dist/src/components/molecules/index.d.ts.map +1 -1
- package/dist/src/components/organisms/index.d.ts +17 -1
- package/dist/src/components/organisms/index.d.ts.map +1 -1
- package/dist/src/index.d.ts +3 -82
- package/dist/src/index.d.ts.map +1 -1
- package/dist/tokens.css +353 -7
- package/dist/vite.config.d.ts.map +1 -1
- package/package.json +4 -4
package/dist/index82.js
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
|
-
import { unsafeCSS, css, LitElement } from "lit";
|
|
1
|
+
import { unsafeCSS, css, LitElement, html } from "lit";
|
|
2
2
|
import { property, customElement } from "lit/decorators.js";
|
|
3
|
-
import
|
|
4
|
-
import componentCss from "./index347.js";
|
|
3
|
+
import timelineCss from "./index261.js";
|
|
5
4
|
import sharedTokens from "./index196.js";
|
|
6
5
|
var __defProp = Object.defineProperty;
|
|
7
6
|
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
@@ -13,141 +12,30 @@ var __decorateClass = (decorators, target, key, kind) => {
|
|
|
13
12
|
if (kind && result) __defProp(target, key, result);
|
|
14
13
|
return result;
|
|
15
14
|
};
|
|
16
|
-
let
|
|
15
|
+
let LibTimeline = class extends LitElement {
|
|
17
16
|
constructor() {
|
|
18
17
|
super(...arguments);
|
|
19
|
-
this.
|
|
20
|
-
this.brandName = "shibui";
|
|
21
|
-
this.brandKanji = "渋";
|
|
22
|
-
this.brandSub = "Design System · Zaragoza";
|
|
23
|
-
this.location = "Zaragoza";
|
|
24
|
-
this.version = "1.0.0";
|
|
25
|
-
this.nodeVersion = "v22.0.0";
|
|
26
|
-
this.githubHref = "#";
|
|
27
|
-
this.linkedinHref = "#";
|
|
28
|
-
this.rssHref = "#";
|
|
29
|
-
this.email = "";
|
|
30
|
-
this.columns = [
|
|
31
|
-
{
|
|
32
|
-
heading: "Librería",
|
|
33
|
-
links: [
|
|
34
|
-
{ label: "Componentes", href: "#" },
|
|
35
|
-
{ label: "Tokens", href: "#" },
|
|
36
|
-
{ label: "Estilos", href: "#" }
|
|
37
|
-
]
|
|
38
|
-
},
|
|
39
|
-
{
|
|
40
|
-
heading: "Ecosistema",
|
|
41
|
-
links: [
|
|
42
|
-
{ label: "GitHub", href: "#" },
|
|
43
|
-
{ label: "NPM", href: "#" },
|
|
44
|
-
{ label: "Storybook", href: "#" }
|
|
45
|
-
]
|
|
46
|
-
},
|
|
47
|
-
{
|
|
48
|
-
heading: "Recursos",
|
|
49
|
-
links: [
|
|
50
|
-
{ label: "Docs", href: "#" },
|
|
51
|
-
{ label: "Changelog", href: "#" },
|
|
52
|
-
{ label: "Roadmap", href: "#" }
|
|
53
|
-
]
|
|
54
|
-
}
|
|
55
|
-
];
|
|
56
|
-
this.navLinks = [
|
|
57
|
-
{ label: "Componentes", href: "#" },
|
|
58
|
-
{ label: "Tokens", href: "#" },
|
|
59
|
-
{ label: "MIT License", href: "#" }
|
|
60
|
-
];
|
|
61
|
-
this.legalLinks = [
|
|
62
|
-
{ label: "privacy.md", href: "#" },
|
|
63
|
-
{ label: "terms.md", href: "#" }
|
|
64
|
-
];
|
|
65
|
-
this.runtimeLines = [
|
|
66
|
-
{ key: "node", value: "v22.0.0" },
|
|
67
|
-
{ key: "css", value: "pure · no-build" },
|
|
68
|
-
{ key: "fonts", value: "google CDN" },
|
|
69
|
-
{ key: "deps", value: "0" },
|
|
70
|
-
{ key: "size", value: "~180kb total" }
|
|
71
|
-
];
|
|
18
|
+
this.size = "md";
|
|
72
19
|
}
|
|
73
|
-
/* ── Computed ── */
|
|
74
|
-
get year() {
|
|
75
|
-
return (/* @__PURE__ */ new Date()).getFullYear();
|
|
76
|
-
}
|
|
77
|
-
/* ── Behaviour ── */
|
|
78
|
-
/**
|
|
79
|
-
* Abre / cierra un ítem de acordeón.
|
|
80
|
-
* @internal
|
|
81
|
-
*/
|
|
82
|
-
_toggleAccordion(trigger) {
|
|
83
|
-
const body = trigger.nextElementSibling;
|
|
84
|
-
const arrow = trigger.querySelector(".ft-acc-arrow");
|
|
85
|
-
if (!body) return;
|
|
86
|
-
const isOpen = body.style.maxHeight !== "" && body.style.maxHeight !== "0px";
|
|
87
|
-
body.style.maxHeight = isOpen ? "0" : "300px";
|
|
88
|
-
trigger.setAttribute("aria-expanded", String(!isOpen));
|
|
89
|
-
if (arrow) {
|
|
90
|
-
arrow.style.transform = isOpen ? "rotate(0deg)" : "rotate(180deg)";
|
|
91
|
-
}
|
|
92
|
-
}
|
|
93
|
-
/* ── Render ── */
|
|
94
20
|
render() {
|
|
95
|
-
return
|
|
21
|
+
return html`
|
|
22
|
+
<div class="tl" role="list">
|
|
23
|
+
<slot></slot>
|
|
24
|
+
</div>
|
|
25
|
+
`;
|
|
96
26
|
}
|
|
97
27
|
};
|
|
98
|
-
|
|
28
|
+
LibTimeline.styles = [
|
|
99
29
|
css`${unsafeCSS(sharedTokens)}`,
|
|
100
|
-
css`${unsafeCSS(
|
|
30
|
+
css`${unsafeCSS(timelineCss)}`
|
|
101
31
|
];
|
|
102
32
|
__decorateClass([
|
|
103
|
-
property({ type: String })
|
|
104
|
-
],
|
|
105
|
-
__decorateClass([
|
|
106
|
-
|
|
107
|
-
],
|
|
108
|
-
__decorateClass([
|
|
109
|
-
property({ type: String, attribute: "brand-kanji" })
|
|
110
|
-
], LibFooter.prototype, "brandKanji", 2);
|
|
111
|
-
__decorateClass([
|
|
112
|
-
property({ type: String, attribute: "brand-sub" })
|
|
113
|
-
], LibFooter.prototype, "brandSub", 2);
|
|
114
|
-
__decorateClass([
|
|
115
|
-
property({ type: String })
|
|
116
|
-
], LibFooter.prototype, "location", 2);
|
|
117
|
-
__decorateClass([
|
|
118
|
-
property({ type: String })
|
|
119
|
-
], LibFooter.prototype, "version", 2);
|
|
120
|
-
__decorateClass([
|
|
121
|
-
property({ type: String, attribute: "node-version" })
|
|
122
|
-
], LibFooter.prototype, "nodeVersion", 2);
|
|
123
|
-
__decorateClass([
|
|
124
|
-
property({ type: String, attribute: "github-href" })
|
|
125
|
-
], LibFooter.prototype, "githubHref", 2);
|
|
126
|
-
__decorateClass([
|
|
127
|
-
property({ type: String, attribute: "linkedin-href" })
|
|
128
|
-
], LibFooter.prototype, "linkedinHref", 2);
|
|
129
|
-
__decorateClass([
|
|
130
|
-
property({ type: String, attribute: "rss-href" })
|
|
131
|
-
], LibFooter.prototype, "rssHref", 2);
|
|
132
|
-
__decorateClass([
|
|
133
|
-
property({ type: String })
|
|
134
|
-
], LibFooter.prototype, "email", 2);
|
|
135
|
-
__decorateClass([
|
|
136
|
-
property({ type: Array })
|
|
137
|
-
], LibFooter.prototype, "columns", 2);
|
|
138
|
-
__decorateClass([
|
|
139
|
-
property({ type: Array, attribute: "nav-links" })
|
|
140
|
-
], LibFooter.prototype, "navLinks", 2);
|
|
141
|
-
__decorateClass([
|
|
142
|
-
property({ type: Array, attribute: "legal-links" })
|
|
143
|
-
], LibFooter.prototype, "legalLinks", 2);
|
|
144
|
-
__decorateClass([
|
|
145
|
-
property({ type: Array, attribute: "runtime-lines" })
|
|
146
|
-
], LibFooter.prototype, "runtimeLines", 2);
|
|
147
|
-
LibFooter = __decorateClass([
|
|
148
|
-
customElement("lib-footer")
|
|
149
|
-
], LibFooter);
|
|
33
|
+
property({ type: String, reflect: true })
|
|
34
|
+
], LibTimeline.prototype, "size", 2);
|
|
35
|
+
LibTimeline = __decorateClass([
|
|
36
|
+
customElement("lib-timeline")
|
|
37
|
+
], LibTimeline);
|
|
150
38
|
export {
|
|
151
|
-
|
|
39
|
+
LibTimeline
|
|
152
40
|
};
|
|
153
41
|
//# sourceMappingURL=index82.js.map
|
package/dist/index82.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index82.js","sources":["../src/components/organisms/
|
|
1
|
+
{"version":3,"file":"index82.js","sources":["../src/components/organisms/timeline/lib-timeline.component.ts"],"sourcesContent":["import { LitElement, css, unsafeCSS, TemplateResult, html } from 'lit';\nimport { customElement, property } from 'lit/decorators.js';\nimport timelineCss from './lib-timeline.css?inline';\nimport sharedTokens from '../../../styles/shared/tokens.css?inline';\nimport type { TimelineSize } from './lib-timeline-item.types';\n\n/**\n * @element lib-timeline\n *\n * Contenedor de timeline. Acepta `<lib-timeline-item>` en su slot.\n *\n * @prop {TimelineSize} size — Tamaño global: sm · md · lg (default: 'md')\n *\n * @slot — Ítems del timeline (lib-timeline-item)\n */\n@customElement('lib-timeline')\nexport class LibTimeline extends LitElement {\n static override styles = [\n css`${unsafeCSS(sharedTokens)}`,\n css`${unsafeCSS(timelineCss)}`,\n ];\n\n @property({ type: String, reflect: true })\n size: TimelineSize = 'md';\n\n protected override render(): TemplateResult {\n return html`\n <div class=\"tl\" role=\"list\">\n <slot></slot>\n </div>\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'lib-timeline': LibTimeline;\n }\n}"],"names":[],"mappings":";;;;;;;;;;;;;;AAgBO,IAAM,cAAN,cAA0B,WAAW;AAAA,EAArC,cAAA;AAAA,UAAA,GAAA,SAAA;AAOL,SAAA,OAAqB;AAAA,EAAA;AAAA,EAEF,SAAyB;AAC1C,WAAO;AAAA;AAAA;AAAA;AAAA;AAAA,EAKT;AACF;AAhBa,YACK,SAAS;AAAA,EACvB,MAAM,UAAU,YAAY,CAAC;AAAA,EAC7B,MAAM,UAAU,WAAW,CAAC;AAC9B;AAGA,gBAAA;AAAA,EADC,SAAS,EAAE,MAAM,QAAQ,SAAS,MAAM;AAAA,GAN9B,YAOX,WAAA,QAAA,CAAA;AAPW,cAAN,gBAAA;AAAA,EADN,cAAc,cAAc;AAAA,GAChB,WAAA;"}
|
package/dist/index83.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { unsafeCSS, css, LitElement
|
|
2
|
-
import { property, customElement } from "lit/decorators.js";
|
|
3
|
-
import
|
|
1
|
+
import { unsafeCSS, css, LitElement } from "lit";
|
|
2
|
+
import { property, state, customElement } from "lit/decorators.js";
|
|
3
|
+
import timelineCss from "./index261.js";
|
|
4
4
|
import sharedTokens from "./index196.js";
|
|
5
|
-
import {
|
|
5
|
+
import { timelineItemTemplate } from "./index262.js";
|
|
6
6
|
var __defProp = Object.defineProperty;
|
|
7
7
|
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
8
8
|
var __decorateClass = (decorators, target, key, kind) => {
|
|
@@ -13,235 +13,106 @@ var __decorateClass = (decorators, target, key, kind) => {
|
|
|
13
13
|
if (kind && result) __defProp(target, key, result);
|
|
14
14
|
return result;
|
|
15
15
|
};
|
|
16
|
-
let
|
|
16
|
+
let LibTimelineItem = class extends LitElement {
|
|
17
17
|
constructor() {
|
|
18
18
|
super(...arguments);
|
|
19
|
-
this.
|
|
20
|
-
this.
|
|
21
|
-
this.
|
|
22
|
-
this.
|
|
23
|
-
this.
|
|
24
|
-
this.
|
|
25
|
-
this.
|
|
26
|
-
this.
|
|
27
|
-
this.
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
dot.style.top = `${e.clientY}px`;
|
|
34
|
-
}
|
|
35
|
-
const label = this._label;
|
|
36
|
-
if (label == null ? void 0 : label.classList.contains("is-visible")) {
|
|
37
|
-
label.style.left = `${e.clientX}px`;
|
|
38
|
-
label.style.top = `${e.clientY}px`;
|
|
39
|
-
}
|
|
40
|
-
if (this.trail) this._maybeSpawnTrail(e.clientX, e.clientY);
|
|
41
|
-
if (this._curstate === "hidden") this._setState("default");
|
|
42
|
-
};
|
|
43
|
-
this._onLeave = () => {
|
|
44
|
-
this._setState("hidden");
|
|
45
|
-
};
|
|
46
|
-
this._onEnter = () => {
|
|
47
|
-
this._setState("default");
|
|
48
|
-
};
|
|
49
|
-
this._onDown = () => {
|
|
50
|
-
this._setState("press");
|
|
51
|
-
};
|
|
52
|
-
this._onUp = () => {
|
|
53
|
-
const el = document.elementFromPoint(this._mouse.x, this._mouse.y);
|
|
54
|
-
this._setState(this._detectState(el));
|
|
55
|
-
};
|
|
56
|
-
this._onOver = (e) => {
|
|
57
|
-
if (this._curstate === "press") return;
|
|
58
|
-
const el = e.target;
|
|
59
|
-
const state = this._detectState(el);
|
|
60
|
-
this._setState(state);
|
|
61
|
-
const isDark = !!(el == null ? void 0 : el.closest('[data-cursor-zone="dark"]'));
|
|
62
|
-
this.toggleAttribute("dark-zone", isDark);
|
|
63
|
-
const labelAnchor = el == null ? void 0 : el.closest("[data-cursor-label]");
|
|
64
|
-
const label = this._label;
|
|
65
|
-
if (label) {
|
|
66
|
-
if (labelAnchor == null ? void 0 : labelAnchor.dataset["cursorLabel"]) {
|
|
67
|
-
label.textContent = labelAnchor.dataset["cursorLabel"];
|
|
68
|
-
label.classList.add("is-visible");
|
|
69
|
-
label.style.left = `${this._mouse.x}px`;
|
|
70
|
-
label.style.top = `${this._mouse.y}px`;
|
|
71
|
-
} else {
|
|
72
|
-
label.classList.remove("is-visible");
|
|
73
|
-
}
|
|
74
|
-
}
|
|
75
|
-
};
|
|
76
|
-
this._loop = () => {
|
|
77
|
-
const factor = this.lerp > 0 ? this.lerp : CURSOR_MODES[this.mode].lerpFactor;
|
|
78
|
-
this._lerped.x += (this._mouse.x - this._lerped.x) * factor;
|
|
79
|
-
this._lerped.y += (this._mouse.y - this._lerped.y) * factor;
|
|
80
|
-
const ring = this._ring;
|
|
81
|
-
if (ring) {
|
|
82
|
-
ring.style.left = `${this._lerped.x}px`;
|
|
83
|
-
ring.style.top = `${this._lerped.y}px`;
|
|
84
|
-
}
|
|
85
|
-
this._rafId = requestAnimationFrame(this._loop);
|
|
86
|
-
};
|
|
87
|
-
}
|
|
88
|
-
/* ── Refs a los elementos del shadow ── */
|
|
89
|
-
get _dot() {
|
|
90
|
-
return this.shadowRoot.querySelector(".cur-dot");
|
|
91
|
-
}
|
|
92
|
-
get _ring() {
|
|
93
|
-
return this.shadowRoot.querySelector(".cur-ring");
|
|
94
|
-
}
|
|
95
|
-
get _label() {
|
|
96
|
-
return this.shadowRoot.querySelector(".cur-label");
|
|
97
|
-
}
|
|
98
|
-
/* ── Lifecycle ── */
|
|
99
|
-
connectedCallback() {
|
|
100
|
-
super.connectedCallback();
|
|
101
|
-
document.documentElement.style.cursor = "none";
|
|
102
|
-
window.addEventListener("mousemove", this._onMove, { passive: true });
|
|
103
|
-
window.addEventListener("mouseleave", this._onLeave, { passive: true });
|
|
104
|
-
window.addEventListener("mouseenter", this._onEnter, { passive: true });
|
|
105
|
-
window.addEventListener("mousedown", this._onDown, { passive: true });
|
|
106
|
-
window.addEventListener("mouseup", this._onUp, { passive: true });
|
|
107
|
-
window.addEventListener("mouseover", this._onOver, { passive: true });
|
|
108
|
-
this._rafId = requestAnimationFrame(this._loop);
|
|
109
|
-
}
|
|
110
|
-
disconnectedCallback() {
|
|
111
|
-
super.disconnectedCallback();
|
|
112
|
-
document.documentElement.style.cursor = "";
|
|
113
|
-
window.removeEventListener("mousemove", this._onMove);
|
|
114
|
-
window.removeEventListener("mouseleave", this._onLeave);
|
|
115
|
-
window.removeEventListener("mouseenter", this._onEnter);
|
|
116
|
-
window.removeEventListener("mousedown", this._onDown);
|
|
117
|
-
window.removeEventListener("mouseup", this._onUp);
|
|
118
|
-
window.removeEventListener("mouseover", this._onOver);
|
|
119
|
-
cancelAnimationFrame(this._rafId);
|
|
120
|
-
}
|
|
121
|
-
/** Aplica el modo visual al dot y ring */
|
|
122
|
-
updated(changed) {
|
|
123
|
-
if (changed.has("mode")) {
|
|
124
|
-
this._applyMode();
|
|
125
|
-
}
|
|
19
|
+
this.nKind = "dot";
|
|
20
|
+
this.nodeColor = "default";
|
|
21
|
+
this.icon = "circle";
|
|
22
|
+
this.avatar = "";
|
|
23
|
+
this.status = "default";
|
|
24
|
+
this.lineVariant = "solid";
|
|
25
|
+
this.lineProgress = 0;
|
|
26
|
+
this.hideLine = false;
|
|
27
|
+
this.timestamp = "";
|
|
28
|
+
this.title = "";
|
|
29
|
+
this.body = "";
|
|
30
|
+
this.card = false;
|
|
31
|
+
this.collapsible = false;
|
|
32
|
+
this._collapsed = false;
|
|
126
33
|
}
|
|
127
34
|
/* ── API pública ── */
|
|
128
|
-
/**
|
|
129
|
-
|
|
130
|
-
this.
|
|
35
|
+
/** Expande el ítem si es collapsible */
|
|
36
|
+
expand() {
|
|
37
|
+
this._collapsed = false;
|
|
131
38
|
}
|
|
132
|
-
/**
|
|
133
|
-
|
|
134
|
-
this.
|
|
135
|
-
this._lastTrail = { x: this._mouse.x, y: this._mouse.y, t: performance.now() };
|
|
39
|
+
/** Contrae el ítem si es collapsible */
|
|
40
|
+
collapse() {
|
|
41
|
+
this._collapsed = true;
|
|
136
42
|
}
|
|
137
43
|
/* ── Render ── */
|
|
138
44
|
render() {
|
|
139
|
-
return
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
}
|
|
158
|
-
return "default";
|
|
159
|
-
}
|
|
160
|
-
_setState(state) {
|
|
161
|
-
if (this._curstate === state) return;
|
|
162
|
-
this._curstate = state;
|
|
163
|
-
this.setAttribute("curstate", state);
|
|
164
|
-
}
|
|
165
|
-
/** Aplica los estilos base del modo al dot y ring */
|
|
166
|
-
_applyMode() {
|
|
167
|
-
const m = CURSOR_MODES[this.mode];
|
|
168
|
-
if (!m) return;
|
|
169
|
-
const dot = this._dot;
|
|
170
|
-
const ring = this._ring;
|
|
171
|
-
if (!dot || !ring) return;
|
|
172
|
-
dot.style.background = m.dotBg;
|
|
173
|
-
dot.style.width = m.dotSize;
|
|
174
|
-
dot.style.height = m.dotSize;
|
|
175
|
-
ring.style.border = m.ringBorder;
|
|
176
|
-
ring.style.background = m.ringBg;
|
|
177
|
-
ring.style.width = m.ringSize;
|
|
178
|
-
ring.style.height = m.ringSize;
|
|
179
|
-
ring.style.mixBlendMode = m.ringMix;
|
|
180
|
-
}
|
|
181
|
-
/** Genera partículas de tinta proporcionales a la velocidad */
|
|
182
|
-
_maybeSpawnTrail(x, y) {
|
|
183
|
-
const now = performance.now();
|
|
184
|
-
const dx = x - this._lastTrail.x;
|
|
185
|
-
const dy = y - this._lastTrail.y;
|
|
186
|
-
const dist = Math.sqrt(dx * dx + dy * dy);
|
|
187
|
-
const dt = Math.max(1, now - this._lastTrail.t);
|
|
188
|
-
const speed = dist / dt;
|
|
189
|
-
if (dist > 4) {
|
|
190
|
-
this._spawnTrailParticle(x, y, speed);
|
|
191
|
-
this._lastTrail = { x, y, t: now };
|
|
192
|
-
}
|
|
193
|
-
}
|
|
194
|
-
_spawnTrailParticle(x, y, speed) {
|
|
195
|
-
const size = Math.max(2, Math.min(8, speed * 1.5));
|
|
196
|
-
const isLight = this.mode === "ghost";
|
|
197
|
-
const color = isLight ? "rgba(250,247,244,0.4)" : "var(--color-kaki-500)";
|
|
198
|
-
const el = document.createElement("div");
|
|
199
|
-
el.style.cssText = `
|
|
200
|
-
position: fixed;
|
|
201
|
-
border-radius: 50%;
|
|
202
|
-
pointer-events: none;
|
|
203
|
-
z-index: 9997;
|
|
204
|
-
left: ${x}px;
|
|
205
|
-
top: ${y}px;
|
|
206
|
-
width: ${size}px;
|
|
207
|
-
height: ${size}px;
|
|
208
|
-
background: ${color};
|
|
209
|
-
transform: translate(-50%, -50%) scale(1);
|
|
210
|
-
opacity: 0.4;
|
|
211
|
-
animation: lib-ink-fade ${600 + speed * 50}ms cubic-bezier(0.2, 0, 0.8, 1) forwards;
|
|
212
|
-
`;
|
|
213
|
-
document.body.appendChild(el);
|
|
214
|
-
setTimeout(() => el.remove(), 900);
|
|
45
|
+
return timelineItemTemplate({
|
|
46
|
+
nodeType: this.nKind,
|
|
47
|
+
nodeColor: this.nodeColor,
|
|
48
|
+
icon: this.icon,
|
|
49
|
+
avatar: this.avatar,
|
|
50
|
+
status: this.status,
|
|
51
|
+
lineVariant: this.lineVariant,
|
|
52
|
+
lineProgress: this.lineProgress,
|
|
53
|
+
hideLine: this.hideLine,
|
|
54
|
+
timestamp: this.timestamp,
|
|
55
|
+
title: this.title,
|
|
56
|
+
body: this.body,
|
|
57
|
+
card: this.card,
|
|
58
|
+
collapsed: this._collapsed,
|
|
59
|
+
collapsible: this.collapsible,
|
|
60
|
+
onToggleCollapse: () => {
|
|
61
|
+
this._collapsed = !this._collapsed;
|
|
62
|
+
}
|
|
63
|
+
});
|
|
215
64
|
}
|
|
216
65
|
};
|
|
217
|
-
|
|
66
|
+
LibTimelineItem.styles = [
|
|
218
67
|
css`${unsafeCSS(sharedTokens)}`,
|
|
219
|
-
css`${unsafeCSS(
|
|
68
|
+
css`${unsafeCSS(timelineCss)}`
|
|
220
69
|
];
|
|
70
|
+
__decorateClass([
|
|
71
|
+
property({ type: String, reflect: true, attribute: "node-type" })
|
|
72
|
+
], LibTimelineItem.prototype, "nKind", 2);
|
|
73
|
+
__decorateClass([
|
|
74
|
+
property({ type: String, reflect: true, attribute: "node-color" })
|
|
75
|
+
], LibTimelineItem.prototype, "nodeColor", 2);
|
|
76
|
+
__decorateClass([
|
|
77
|
+
property({ type: String })
|
|
78
|
+
], LibTimelineItem.prototype, "icon", 2);
|
|
79
|
+
__decorateClass([
|
|
80
|
+
property({ type: String })
|
|
81
|
+
], LibTimelineItem.prototype, "avatar", 2);
|
|
221
82
|
__decorateClass([
|
|
222
83
|
property({ type: String, reflect: true })
|
|
223
|
-
],
|
|
84
|
+
], LibTimelineItem.prototype, "status", 2);
|
|
85
|
+
__decorateClass([
|
|
86
|
+
property({ type: String, reflect: true, attribute: "line-variant" })
|
|
87
|
+
], LibTimelineItem.prototype, "lineVariant", 2);
|
|
88
|
+
__decorateClass([
|
|
89
|
+
property({ type: Number, attribute: "line-progress" })
|
|
90
|
+
], LibTimelineItem.prototype, "lineProgress", 2);
|
|
91
|
+
__decorateClass([
|
|
92
|
+
property({ type: Boolean, reflect: true, attribute: "hide-line" })
|
|
93
|
+
], LibTimelineItem.prototype, "hideLine", 2);
|
|
94
|
+
__decorateClass([
|
|
95
|
+
property({ type: String })
|
|
96
|
+
], LibTimelineItem.prototype, "timestamp", 2);
|
|
97
|
+
__decorateClass([
|
|
98
|
+
property({ type: String })
|
|
99
|
+
], LibTimelineItem.prototype, "title", 2);
|
|
100
|
+
__decorateClass([
|
|
101
|
+
property({ type: String })
|
|
102
|
+
], LibTimelineItem.prototype, "body", 2);
|
|
103
|
+
__decorateClass([
|
|
104
|
+
property({ type: Boolean, reflect: true })
|
|
105
|
+
], LibTimelineItem.prototype, "card", 2);
|
|
224
106
|
__decorateClass([
|
|
225
|
-
property({ type:
|
|
226
|
-
],
|
|
107
|
+
property({ type: Boolean, reflect: true })
|
|
108
|
+
], LibTimelineItem.prototype, "collapsible", 2);
|
|
227
109
|
__decorateClass([
|
|
228
|
-
|
|
229
|
-
],
|
|
230
|
-
|
|
231
|
-
customElement("lib-
|
|
232
|
-
],
|
|
233
|
-
if (!document.head.querySelector("#lib-cursor-keyframes")) {
|
|
234
|
-
const s = document.createElement("style");
|
|
235
|
-
s.id = "lib-cursor-keyframes";
|
|
236
|
-
s.textContent = `
|
|
237
|
-
@keyframes lib-ink-fade {
|
|
238
|
-
0% { opacity: 0.4; transform: translate(-50%,-50%) scale(1); }
|
|
239
|
-
100% { opacity: 0; transform: translate(-50%,-50%) scale(0.2); }
|
|
240
|
-
}
|
|
241
|
-
`;
|
|
242
|
-
document.head.appendChild(s);
|
|
243
|
-
}
|
|
110
|
+
state()
|
|
111
|
+
], LibTimelineItem.prototype, "_collapsed", 2);
|
|
112
|
+
LibTimelineItem = __decorateClass([
|
|
113
|
+
customElement("lib-timeline-item")
|
|
114
|
+
], LibTimelineItem);
|
|
244
115
|
export {
|
|
245
|
-
|
|
116
|
+
LibTimelineItem
|
|
246
117
|
};
|
|
247
118
|
//# sourceMappingURL=index83.js.map
|
package/dist/index83.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index83.js","sources":["../src/components/organisms/cursor-follower/lib-cursor-follower.component.ts"],"sourcesContent":["import { LitElement, html, css, unsafeCSS, TemplateResult } from 'lit';\nimport { customElement, property } from 'lit/decorators.js';\nimport cursorCss from './lib-cursor-follower.css?inline';\nimport sharedTokens from '../../../styles/shared/tokens.css?inline';\nimport { CURSOR_MODES } from './lib-cursor-follower.types';\nimport type { CursorMode, CursorState } from './lib-cursor-follower.types';\n\n/**\n * @element lib-cursor-follower\n *\n * Cursor personalizado con tres capas: dot exacto, ring con lerp e inercia,\n * y label contextual. Detecta automáticamente el tipo de elemento bajo el cursor.\n *\n * Coloca el componente una sola vez al inicio del <body>. Se encarga de ocultar\n * el cursor nativo del documento.\n *\n * @prop {CursorMode} mode — ink · minimal · kaki · ghost (default: 'ink')\n * @prop {number} lerp — Factor de interpolación del ring 0–1 (override del modo)\n * @prop {boolean} trail — Activa la cola de tinta al mover rápido\n *\n * @method setMode(mode) — Cambia el modo en tiempo de ejecución\n * @method toggleTrail() — Activa/desactiva el trail\n *\n * @csspart dot — El punto exacto\n * @csspart ring — El anillo con lag\n * @csspart label — La etiqueta contextual\n */\n@customElement('lib-cursor-follower')\nexport class LibCursorFollower extends LitElement {\n static override styles = [\n css`${unsafeCSS(sharedTokens)}`,\n css`${unsafeCSS(cursorCss)}`,\n ];\n\n /* ── Props ── */\n\n @property({ type: String, reflect: true })\n mode: CursorMode = 'ink';\n\n @property({ type: Number })\n lerp = 0; // 0 = usar el del modo\n\n @property({ type: Boolean })\n trail = false;\n\n /* ── Estado interno del cursor (no reactivo — actualizado en rAF) ── */\n\n /** Posición exacta del ratón */\n private _mouse = { x: -200, y: -200 };\n /** Posición interpolada del ring */\n private _lerped = { x: -200, y: -200 };\n\n /** Estado contextual actual */\n private _curstate: CursorState = 'hidden';\n\n /** Anclajes para el trail */\n private _lastTrail = { x: 0, y: 0, t: 0 };\n private _rafId = 0;\n\n /* ── Refs a los elementos del shadow ── */\n\n private get _dot(): HTMLElement { return this.shadowRoot!.querySelector('.cur-dot') as HTMLElement; }\n private get _ring(): HTMLElement { return this.shadowRoot!.querySelector('.cur-ring') as HTMLElement; }\n private get _label(): HTMLElement { return this.shadowRoot!.querySelector('.cur-label') as HTMLElement; }\n\n /* ── Lifecycle ── */\n\n override connectedCallback(): void {\n super.connectedCallback();\n // Ocultar cursor nativo\n document.documentElement.style.cursor = 'none';\n\n window.addEventListener('mousemove', this._onMove, { passive: true });\n window.addEventListener('mouseleave', this._onLeave, { passive: true });\n window.addEventListener('mouseenter', this._onEnter, { passive: true });\n window.addEventListener('mousedown', this._onDown, { passive: true });\n window.addEventListener('mouseup', this._onUp, { passive: true });\n window.addEventListener('mouseover', this._onOver, { passive: true });\n\n this._rafId = requestAnimationFrame(this._loop);\n }\n\n override disconnectedCallback(): void {\n super.disconnectedCallback();\n document.documentElement.style.cursor = '';\n\n window.removeEventListener('mousemove', this._onMove);\n window.removeEventListener('mouseleave', this._onLeave);\n window.removeEventListener('mouseenter', this._onEnter);\n window.removeEventListener('mousedown', this._onDown);\n window.removeEventListener('mouseup', this._onUp);\n window.removeEventListener('mouseover', this._onOver);\n\n cancelAnimationFrame(this._rafId);\n }\n\n /** Aplica el modo visual al dot y ring */\n override updated(changed: Map<string, unknown>): void {\n if (changed.has('mode')) {\n this._applyMode();\n }\n }\n\n /* ── API pública ── */\n\n /** Cambia el modo en tiempo de ejecución */\n public setMode(mode: CursorMode): void {\n this.mode = mode;\n }\n\n /** Activa o desactiva el trail de tinta */\n public toggleTrail(): void {\n this.trail = !this.trail;\n this._lastTrail = { x: this._mouse.x, y: this._mouse.y, t: performance.now() };\n }\n\n /* ── Render ── */\n\n protected override render(): TemplateResult {\n return html`\n <div class=\"cur-dot\" part=\"dot\"></div>\n <div class=\"cur-ring\" part=\"ring\"></div>\n <div class=\"cur-label\" part=\"label\"></div>\n `;\n }\n\n /* ── Event handlers ── */\n\n private _onMove = (e: MouseEvent): void => {\n this._mouse.x = e.clientX;\n this._mouse.y = e.clientY;\n\n // Dot sigue instantáneamente\n const dot = this._dot;\n if (dot) {\n dot.style.left = `${e.clientX}px`;\n dot.style.top = `${e.clientY}px`;\n }\n\n // Label sigue al dot\n const label = this._label;\n if (label?.classList.contains('is-visible')) {\n label.style.left = `${e.clientX}px`;\n label.style.top = `${e.clientY}px`;\n }\n\n // Trail\n if (this.trail) this._maybeSpawnTrail(e.clientX, e.clientY);\n\n // Si estaba oculto, restaurar\n if (this._curstate === 'hidden') this._setState('default');\n };\n\n private _onLeave = (): void => { this._setState('hidden'); };\n private _onEnter = (): void => { this._setState('default'); };\n private _onDown = (): void => { this._setState('press'); };\n private _onUp = (): void => {\n // Volver al estado previo al press\n const el = document.elementFromPoint(this._mouse.x, this._mouse.y);\n this._setState(this._detectState(el));\n };\n\n private _onOver = (e: MouseEvent): void => {\n if (this._curstate === 'press') return; // no interrumpir press\n\n const el = e.target as Element | null;\n const state = this._detectState(el);\n this._setState(state);\n\n // Zona oscura — el ring adapta el color\n const isDark = !!el?.closest('[data-cursor-zone=\"dark\"]');\n this.toggleAttribute('dark-zone', isDark);\n\n // Label contextual\n const labelAnchor = el?.closest('[data-cursor-label]') as HTMLElement | null;\n const label = this._label;\n if (label) {\n if (labelAnchor?.dataset['cursorLabel']) {\n label.textContent = labelAnchor.dataset['cursorLabel'];\n label.classList.add('is-visible');\n label.style.left = `${this._mouse.x}px`;\n label.style.top = `${this._mouse.y}px`;\n } else {\n label.classList.remove('is-visible');\n }\n }\n };\n\n /* ── Loop de animación del ring ── */\n\n private _loop = (): void => {\n const factor = this.lerp > 0\n ? this.lerp\n : CURSOR_MODES[this.mode].lerpFactor;\n\n this._lerped.x += (this._mouse.x - this._lerped.x) * factor;\n this._lerped.y += (this._mouse.y - this._lerped.y) * factor;\n\n const ring = this._ring;\n if (ring) {\n ring.style.left = `${this._lerped.x}px`;\n ring.style.top = `${this._lerped.y}px`;\n }\n\n this._rafId = requestAnimationFrame(this._loop);\n };\n\n /* ── Helpers ── */\n\n private _detectState(el: Element | null): CursorState {\n if (!el) return 'default';\n\n // Texto editable / seleccionable\n const textZone = el.closest('[data-cursor-zone=\"text\"]');\n if (textZone && el.matches('p, h1, h2, h3, h4, h5, h6, em, strong, span:not(.cursor-zone-label)')) {\n return 'text';\n }\n\n // Elemento interactivo\n if (el.matches('a, button, input, select, textarea, [role=\"button\"], [data-interactive], .interactive')) {\n return 'hover';\n }\n if (el.closest('a, button, [role=\"button\"]')) {\n return 'hover';\n }\n\n return 'default';\n }\n\n private _setState(state: CursorState): void {\n if (this._curstate === state) return;\n this._curstate = state;\n this.setAttribute('curstate', state);\n }\n\n /** Aplica los estilos base del modo al dot y ring */\n private _applyMode(): void {\n const m = CURSOR_MODES[this.mode];\n if (!m) return;\n\n const dot = this._dot;\n const ring = this._ring;\n if (!dot || !ring) return;\n\n dot.style.background = m.dotBg;\n dot.style.width = m.dotSize;\n dot.style.height = m.dotSize;\n\n ring.style.border = m.ringBorder;\n ring.style.background = m.ringBg;\n ring.style.width = m.ringSize;\n ring.style.height = m.ringSize;\n ring.style.mixBlendMode = m.ringMix;\n }\n\n /** Genera partículas de tinta proporcionales a la velocidad */\n private _maybeSpawnTrail(x: number, y: number): void {\n const now = performance.now();\n const dx = x - this._lastTrail.x;\n const dy = y - this._lastTrail.y;\n const dist = Math.sqrt(dx * dx + dy * dy);\n const dt = Math.max(1, now - this._lastTrail.t);\n const speed = dist / dt;\n\n if (dist > 4) {\n this._spawnTrailParticle(x, y, speed);\n this._lastTrail = { x, y, t: now };\n }\n }\n\n private _spawnTrailParticle(x: number, y: number, speed: number): void {\n const size = Math.max(2, Math.min(8, speed * 1.5));\n const isLight = this.mode === 'ghost';\n const color = isLight\n ? 'rgba(250,247,244,0.4)'\n : 'var(--color-kaki-500)';\n\n const el = document.createElement('div');\n el.style.cssText = `\n position: fixed;\n border-radius: 50%;\n pointer-events: none;\n z-index: 9997;\n left: ${x}px;\n top: ${y}px;\n width: ${size}px;\n height: ${size}px;\n background: ${color};\n transform: translate(-50%, -50%) scale(1);\n opacity: 0.4;\n animation: lib-ink-fade ${600 + speed * 50}ms cubic-bezier(0.2, 0, 0.8, 1) forwards;\n `;\n document.body.appendChild(el);\n setTimeout(() => el.remove(), 900);\n }\n}\n\n/* Keyframe global para las partículas de trail */\nif (!document.head.querySelector('#lib-cursor-keyframes')) {\n const s = document.createElement('style');\n s.id = 'lib-cursor-keyframes';\n s.textContent = `\n @keyframes lib-ink-fade {\n 0% { opacity: 0.4; transform: translate(-50%,-50%) scale(1); }\n 100% { opacity: 0; transform: translate(-50%,-50%) scale(0.2); }\n }\n `;\n document.head.appendChild(s);\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'lib-cursor-follower': LibCursorFollower;\n }\n}"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index83.js","sources":["../src/components/organisms/timeline/lib-timeline-item.component.ts"],"sourcesContent":["import { LitElement, css, unsafeCSS, TemplateResult } from 'lit';\nimport { customElement, property, state } from 'lit/decorators.js';\nimport timelineCss from './lib-timeline.css?inline';\nimport sharedTokens from '../../../styles/shared/tokens.css?inline';\nimport { timelineItemTemplate } from './lib-timeline-item.html';\nimport type {\n TimelineNodeType,\n TimelineNodeColor,\n TimelineItemStatus,\n TimelineLineVariant,\n} from './lib-timeline-item.types';\n\n/**\n * @element lib-timeline-item\n *\n * Ítem de timeline. Debe usarse dentro de `<lib-timeline>`.\n *\n * @prop {TimelineNodeType} node-type — Tipo de nodo: dot · icon · avatar (default: 'dot')\n * @prop {TimelineNodeColor} node-color — Color del nodo: default · kaki · celadon · error · muted\n * @prop {string} icon — Nombre de icono Phosphor (node-type='icon')\n * @prop {string} avatar — Iniciales (node-type='avatar')\n * @prop {TimelineItemStatus} status — Estado: default · active · done · error · pending\n * @prop {TimelineLineVariant} line-variant — Estilo de línea: solid · dashed · progress\n * @prop {number} line-progress — Progreso de la línea 0–100 (line-variant='progress')\n * @prop {boolean} hide-line — Oculta la línea (útil en el último ítem)\n * @prop {string} timestamp — Texto de fecha/hora\n * @prop {string} title — Título del evento\n * @prop {string} body — Texto descriptivo (alternativa al slot)\n * @prop {boolean} card — Envuelve el contenido en una tarjeta con borde\n * @prop {boolean} collapsible — Muestra botón de expandir/contraer\n *\n * @slot — Contenido libre (body del evento)\n * @slot meta — Badges, avatares y metadatos en fila\n * @slot media — Imágenes o bloques adjuntos (solo dentro de card)\n */\n@customElement('lib-timeline-item')\nexport class LibTimelineItem extends LitElement {\n static override styles = [\n css`${unsafeCSS(sharedTokens)}`,\n css`${unsafeCSS(timelineCss)}`,\n ];\n\n /* ── Nodo ── */\n\n @property({ type: String, reflect: true, attribute: 'node-type' })\n nKind: TimelineNodeType = 'dot';\n\n @property({ type: String, reflect: true, attribute: 'node-color' })\n nodeColor: TimelineNodeColor = 'default';\n\n @property({ type: String })\n icon = 'circle';\n\n @property({ type: String })\n avatar = '';\n\n /* ── Estado ── */\n\n @property({ type: String, reflect: true })\n status: TimelineItemStatus = 'default';\n\n /* ── Línea ── */\n\n @property({ type: String, reflect: true, attribute: 'line-variant' })\n lineVariant: TimelineLineVariant = 'solid';\n\n @property({ type: Number, attribute: 'line-progress' })\n lineProgress = 0;\n\n @property({ type: Boolean, reflect: true, attribute: 'hide-line' })\n hideLine = false;\n\n /* ── Contenido ── */\n\n @property({ type: String })\n timestamp = '';\n\n @property({ type: String })\n override title = '';\n\n @property({ type: String })\n body = '';\n\n @property({ type: Boolean, reflect: true })\n card = false;\n\n /* ── Collapsible ── */\n\n @property({ type: Boolean, reflect: true })\n collapsible = false;\n\n @state() private _collapsed = false;\n\n /* ── API pública ── */\n\n /** Expande el ítem si es collapsible */\n public expand(): void {\n this._collapsed = false;\n }\n\n /** Contrae el ítem si es collapsible */\n public collapse(): void {\n this._collapsed = true;\n }\n\n /* ── Render ── */\n\n protected override render(): TemplateResult {\n return timelineItemTemplate({\n nodeType: this.nKind,\n nodeColor: this.nodeColor,\n icon: this.icon,\n avatar: this.avatar,\n status: this.status,\n lineVariant: this.lineVariant,\n lineProgress: this.lineProgress,\n hideLine: this.hideLine,\n timestamp: this.timestamp,\n title: this.title,\n body: this.body,\n card: this.card,\n collapsed: this._collapsed,\n collapsible: this.collapsible,\n onToggleCollapse: (): void => { this._collapsed = !this._collapsed; },\n });\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'lib-timeline-item': LibTimelineItem;\n }\n}"],"names":[],"mappings":"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"}
|