@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/index74.js
CHANGED
|
@@ -1,9 +1,8 @@
|
|
|
1
|
-
import { unsafeCSS, css, LitElement
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import
|
|
1
|
+
import { unsafeCSS, css, LitElement } from "lit";
|
|
2
|
+
import { property, customElement } from "lit/decorators.js";
|
|
3
|
+
import { drawerTemplate } from "./index245.js";
|
|
4
|
+
import drawerCss from "./index246.js";
|
|
5
5
|
import sharedTokens from "./index196.js";
|
|
6
|
-
import "./index50.js";
|
|
7
6
|
var __defProp = Object.defineProperty;
|
|
8
7
|
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
9
8
|
var __decorateClass = (decorators, target, key, kind) => {
|
|
@@ -14,79 +13,143 @@ var __decorateClass = (decorators, target, key, kind) => {
|
|
|
14
13
|
if (kind && result) __defProp(target, key, result);
|
|
15
14
|
return result;
|
|
16
15
|
};
|
|
17
|
-
let
|
|
16
|
+
let LibDrawer = class extends LitElement {
|
|
18
17
|
constructor() {
|
|
18
|
+
var _a;
|
|
19
19
|
super(...arguments);
|
|
20
|
-
this.
|
|
20
|
+
this._uid = (((_a = globalThis.crypto) == null ? void 0 : _a.getRandomValues(new Uint32Array(1))[0]) ?? Math.random()).toString(36).slice(0, 5);
|
|
21
|
+
this.open = false;
|
|
22
|
+
this.placement = "right";
|
|
23
|
+
this.size = "md";
|
|
24
|
+
this.variant = "default";
|
|
25
|
+
this.label = "";
|
|
26
|
+
this.eyebrow = "";
|
|
27
|
+
this.subtitle = "";
|
|
28
|
+
this.drawerLabel = "";
|
|
29
|
+
this._onKeyDown = (e) => {
|
|
30
|
+
var _a2;
|
|
31
|
+
if (!this.open) return;
|
|
32
|
+
if (e.key === "Escape") {
|
|
33
|
+
e.preventDefault();
|
|
34
|
+
this._close();
|
|
35
|
+
return;
|
|
36
|
+
}
|
|
37
|
+
if (e.key === "Tab") {
|
|
38
|
+
const focusable = this._getFocusable();
|
|
39
|
+
if (!focusable.length) return;
|
|
40
|
+
const first = focusable[0];
|
|
41
|
+
const last = focusable[focusable.length - 1];
|
|
42
|
+
const active = (_a2 = this.shadowRoot) == null ? void 0 : _a2.activeElement;
|
|
43
|
+
if (e.shiftKey) {
|
|
44
|
+
if (active === first) {
|
|
45
|
+
e.preventDefault();
|
|
46
|
+
last == null ? void 0 : last.focus();
|
|
47
|
+
}
|
|
48
|
+
} else {
|
|
49
|
+
if (active === last) {
|
|
50
|
+
e.preventDefault();
|
|
51
|
+
first == null ? void 0 : first.focus();
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
};
|
|
21
56
|
}
|
|
22
|
-
/*
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
this.
|
|
28
|
-
if (config.duration !== 0) {
|
|
29
|
-
setTimeout(() => this._dismissWithAnimation(id), config.duration ?? 5e3);
|
|
30
|
-
}
|
|
31
|
-
}
|
|
32
|
-
dismiss(id) {
|
|
33
|
-
this._dismissWithAnimation(id);
|
|
57
|
+
/* ════════════════════════════════════════
|
|
58
|
+
Ciclo de vida
|
|
59
|
+
════════════════════════════════════════ */
|
|
60
|
+
connectedCallback() {
|
|
61
|
+
super.connectedCallback();
|
|
62
|
+
this.addEventListener("keydown", this._onKeyDown);
|
|
34
63
|
}
|
|
35
|
-
|
|
36
|
-
|
|
64
|
+
disconnectedCallback() {
|
|
65
|
+
super.disconnectedCallback();
|
|
66
|
+
this.removeEventListener("keydown", this._onKeyDown);
|
|
67
|
+
document.body.style.overflow = "";
|
|
37
68
|
}
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
this._removeToast(id);
|
|
48
|
-
}, { once: true });
|
|
69
|
+
updated(changed) {
|
|
70
|
+
if (!changed.has("open")) return;
|
|
71
|
+
if (this.open) {
|
|
72
|
+
document.body.style.overflow = "hidden";
|
|
73
|
+
requestAnimationFrame(() => {
|
|
74
|
+
var _a;
|
|
75
|
+
const panel = (_a = this.shadowRoot) == null ? void 0 : _a.querySelector(".dr");
|
|
76
|
+
panel == null ? void 0 : panel.focus();
|
|
77
|
+
});
|
|
49
78
|
} else {
|
|
50
|
-
|
|
79
|
+
document.body.style.overflow = "";
|
|
80
|
+
}
|
|
81
|
+
if (!this.drawerLabel) {
|
|
82
|
+
this.drawerLabel = this.label || "Panel";
|
|
51
83
|
}
|
|
52
84
|
}
|
|
53
|
-
|
|
54
|
-
|
|
85
|
+
/* ════════════════════════════════════════
|
|
86
|
+
API pública
|
|
87
|
+
════════════════════════════════════════ */
|
|
88
|
+
/** Cierra el drawer y emite el evento */
|
|
89
|
+
_close() {
|
|
90
|
+
if (!this.open) return;
|
|
91
|
+
this.open = false;
|
|
92
|
+
this.dispatchEvent(new CustomEvent("ui-lib-drawer-close", {
|
|
93
|
+
bubbles: true,
|
|
94
|
+
composed: true
|
|
95
|
+
}));
|
|
55
96
|
}
|
|
56
|
-
/*
|
|
57
|
-
|
|
58
|
-
|
|
97
|
+
/* ════════════════════════════════════════
|
|
98
|
+
Focus trap
|
|
99
|
+
════════════════════════════════════════ */
|
|
100
|
+
_getFocusable() {
|
|
101
|
+
var _a;
|
|
102
|
+
const selector = [
|
|
103
|
+
"a[href]",
|
|
104
|
+
"button:not([disabled])",
|
|
105
|
+
"input:not([disabled])",
|
|
106
|
+
"select:not([disabled])",
|
|
107
|
+
"textarea:not([disabled])",
|
|
108
|
+
'[tabindex]:not([tabindex="-1"])'
|
|
109
|
+
].join(",");
|
|
110
|
+
return Array.from(
|
|
111
|
+
((_a = this.shadowRoot) == null ? void 0 : _a.querySelectorAll(selector)) ?? []
|
|
112
|
+
);
|
|
113
|
+
}
|
|
114
|
+
/* ════════════════════════════════════════
|
|
115
|
+
Render
|
|
116
|
+
════════════════════════════════════════ */
|
|
59
117
|
render() {
|
|
60
|
-
return
|
|
61
|
-
${c(
|
|
62
|
-
this._toasts,
|
|
63
|
-
(toast) => toast.id,
|
|
64
|
-
(toast) => html`
|
|
65
|
-
<lib-alert
|
|
66
|
-
data-toast-id="${toast.id}"
|
|
67
|
-
type="${toast.type}"
|
|
68
|
-
heading="${toast.heading ?? ""}"
|
|
69
|
-
closable
|
|
70
|
-
@ui-lib-alert-close="${(_e) => this.dismiss(toast.id)}"
|
|
71
|
-
>
|
|
72
|
-
${toast.message}
|
|
73
|
-
</lib-alert>
|
|
74
|
-
`
|
|
75
|
-
)}
|
|
76
|
-
`;
|
|
118
|
+
return drawerTemplate(this);
|
|
77
119
|
}
|
|
78
120
|
};
|
|
79
|
-
|
|
121
|
+
LibDrawer.styles = [
|
|
80
122
|
css`${unsafeCSS(sharedTokens)}`,
|
|
81
|
-
css`${unsafeCSS(
|
|
123
|
+
css`${unsafeCSS(drawerCss)}`
|
|
82
124
|
];
|
|
83
125
|
__decorateClass([
|
|
84
|
-
|
|
85
|
-
],
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
],
|
|
126
|
+
property({ type: Boolean, reflect: true })
|
|
127
|
+
], LibDrawer.prototype, "open", 2);
|
|
128
|
+
__decorateClass([
|
|
129
|
+
property({ type: String, reflect: true })
|
|
130
|
+
], LibDrawer.prototype, "placement", 2);
|
|
131
|
+
__decorateClass([
|
|
132
|
+
property({ type: String, reflect: true })
|
|
133
|
+
], LibDrawer.prototype, "size", 2);
|
|
134
|
+
__decorateClass([
|
|
135
|
+
property({ type: String, reflect: true })
|
|
136
|
+
], LibDrawer.prototype, "variant", 2);
|
|
137
|
+
__decorateClass([
|
|
138
|
+
property({ type: String })
|
|
139
|
+
], LibDrawer.prototype, "label", 2);
|
|
140
|
+
__decorateClass([
|
|
141
|
+
property({ type: String })
|
|
142
|
+
], LibDrawer.prototype, "eyebrow", 2);
|
|
143
|
+
__decorateClass([
|
|
144
|
+
property({ type: String })
|
|
145
|
+
], LibDrawer.prototype, "subtitle", 2);
|
|
146
|
+
__decorateClass([
|
|
147
|
+
property({ type: String, attribute: "drawer-label" })
|
|
148
|
+
], LibDrawer.prototype, "drawerLabel", 2);
|
|
149
|
+
LibDrawer = __decorateClass([
|
|
150
|
+
customElement("lib-drawer")
|
|
151
|
+
], LibDrawer);
|
|
89
152
|
export {
|
|
90
|
-
|
|
153
|
+
LibDrawer
|
|
91
154
|
};
|
|
92
155
|
//# sourceMappingURL=index74.js.map
|
package/dist/index74.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index74.js","sources":["../src/components/organisms/
|
|
1
|
+
{"version":3,"file":"index74.js","sources":["../src/components/organisms/drawer/lib-drawer.component.ts"],"sourcesContent":["import { LitElement, css, unsafeCSS, TemplateResult } from 'lit';\nimport { customElement, property } from 'lit/decorators.js';\nimport { drawerTemplate } from './lib-drawer.html';\nimport drawerCss from './lib-drawer.css?inline';\nimport sharedTokens from '../../../styles/shared/tokens.css?inline';\nimport type { DrawerPlacement, DrawerSize, DrawerVariant } from './lib-drawer.types';\n\n/**\n * lib-drawer — Shibui UI · SG-59\n *\n * @prop open — Abre / cierra el drawer\n * @prop placement — 'right'(default) | 'left' | 'top' | 'bottom'\n * @prop size — 'sm' | 'md'(default) | 'lg' | 'xl' | 'full'\n * @prop variant — 'default' | 'dark' | 'kintsugi' | 'kintsugi-dark' | 'glitch' | 'glitch-dark'\n * @prop label — Texto del título (también rellenable via slot[name=\"title\"])\n * @prop eyebrow — Texto del eyebrow (también via slot[name=\"eyebrow\"])\n * @prop subtitle — Texto del subtítulo (también via slot[name=\"subtitle\"])\n * @prop drawer-label — Aria-label del dialog (default = label)\n *\n * @slot — Contenido del body\n * @slot title — Reemplaza el título\n * @slot eyebrow — Reemplaza el eyebrow\n * @slot subtitle — Reemplaza el subtítulo\n * @slot footer — Botones de pie (oculto si vacío)\n *\n * @fires ui-lib-drawer-close — Cuando el drawer se cierra (backdrop, Escape, botón X)\n */\n@customElement('lib-drawer')\nexport class LibDrawer extends LitElement {\n static override styles = [\n css`${unsafeCSS(sharedTokens)}`,\n css`${unsafeCSS(drawerCss)}`,\n ];\n\n /* ── Identificador único para aria ── */\n readonly _uid: string = (globalThis.crypto?.getRandomValues(new Uint32Array(1))[0] ?? Math.random())\n .toString(36)\n .slice(0, 5);\n\n @property({ type: Boolean, reflect: true })\n open = false;\n\n @property({ type: String, reflect: true })\n placement: DrawerPlacement = 'right';\n\n @property({ type: String, reflect: true })\n size: DrawerSize = 'md';\n\n @property({ type: String, reflect: true })\n variant: DrawerVariant = 'default';\n\n @property({ type: String })\n label = '';\n\n @property({ type: String })\n eyebrow = '';\n\n @property({ type: String })\n subtitle = '';\n\n @property({ type: String, attribute: 'drawer-label' })\n drawerLabel = '';\n\n /* ════════════════════════════════════════\n Ciclo de vida\n ════════════════════════════════════════ */\n\n override connectedCallback(): void {\n super.connectedCallback();\n this.addEventListener('keydown', this._onKeyDown);\n }\n\n override disconnectedCallback(): void {\n super.disconnectedCallback();\n this.removeEventListener('keydown', this._onKeyDown);\n // Restaurar scroll por si se destruye mientras está abierto\n document.body.style.overflow = '';\n }\n\n override updated(changed: Map<PropertyKey, unknown>): void {\n if (!changed.has('open')) return;\n\n if (this.open) {\n document.body.style.overflow = 'hidden';\n // Dar foco al panel para que los eventos de teclado funcionen\n requestAnimationFrame(() => {\n const panel = this.shadowRoot?.querySelector<HTMLElement>('.dr');\n panel?.focus();\n });\n } else {\n document.body.style.overflow = '';\n }\n\n // Sync aria-label si no se pasó drawer-label explícito\n if (!this.drawerLabel) {\n this.drawerLabel = this.label || 'Panel';\n }\n }\n\n /* ════════════════════════════════════════\n API pública\n ════════════════════════════════════════ */\n\n /** Cierra el drawer y emite el evento */\n _close(): void {\n if (!this.open) return;\n this.open = false;\n this.dispatchEvent(new CustomEvent('ui-lib-drawer-close', {\n bubbles: true,\n composed: true,\n }));\n }\n\n /* ════════════════════════════════════════\n Focus trap\n ════════════════════════════════════════ */\n\n private _getFocusable(): HTMLElement[] {\n const selector = [\n 'a[href]', 'button:not([disabled])', 'input:not([disabled])',\n 'select:not([disabled])', 'textarea:not([disabled])',\n '[tabindex]:not([tabindex=\"-1\"])',\n ].join(',');\n\n return Array.from(\n this.shadowRoot?.querySelectorAll<HTMLElement>(selector) ?? []\n );\n }\n\n private _onKeyDown = (e: KeyboardEvent): void => {\n if (!this.open) return;\n\n if (e.key === 'Escape') {\n e.preventDefault();\n this._close();\n return;\n }\n\n if (e.key === 'Tab') {\n const focusable = this._getFocusable();\n if (!focusable.length) return;\n\n const first = focusable[0];\n const last = focusable[focusable.length - 1];\n const active = this.shadowRoot?.activeElement as HTMLElement;\n\n if (e.shiftKey) {\n if (active === first) { e.preventDefault(); last?.focus(); }\n } else {\n if (active === last) { e.preventDefault(); first?.focus(); }\n }\n }\n };\n\n /* ════════════════════════════════════════\n Render\n ════════════════════════════════════════ */\n protected override render(): TemplateResult {\n return drawerTemplate(this);\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'lib-drawer': LibDrawer;\n }\n}"],"names":["_a"],"mappings":"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"}
|
package/dist/index75.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { unsafeCSS, css, LitElement } from "lit";
|
|
2
2
|
import { property, customElement } from "lit/decorators.js";
|
|
3
|
-
import {
|
|
4
|
-
import
|
|
3
|
+
import { renderFooter } from "./index247.js";
|
|
4
|
+
import componentCss from "./index248.js";
|
|
5
5
|
import sharedTokens from "./index196.js";
|
|
6
6
|
var __defProp = Object.defineProperty;
|
|
7
7
|
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
@@ -13,130 +13,141 @@ 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 LibFooter = 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
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
super.connectedCallback();
|
|
39
|
-
const mq = window.matchMedia("(prefers-reduced-motion: reduce)");
|
|
40
|
-
this._reducedMotion = mq.matches;
|
|
41
|
-
mq.addEventListener("change", (e) => {
|
|
42
|
-
this._reducedMotion = e.matches;
|
|
43
|
-
if (this._reducedMotion) this._resetTransforms();
|
|
44
|
-
});
|
|
45
|
-
window.addEventListener("scroll", this._onScroll, { passive: true });
|
|
46
|
-
this._setupObserver();
|
|
47
|
-
}
|
|
48
|
-
disconnectedCallback() {
|
|
49
|
-
var _a;
|
|
50
|
-
super.disconnectedCallback();
|
|
51
|
-
window.removeEventListener("scroll", this._onScroll);
|
|
52
|
-
(_a = this._observer) == null ? void 0 : _a.disconnect();
|
|
53
|
-
this._observer = null;
|
|
54
|
-
}
|
|
55
|
-
/* ── IntersectionObserver — activa/desactiva will-change ── */
|
|
56
|
-
_setupObserver() {
|
|
57
|
-
this._observer = new IntersectionObserver(
|
|
58
|
-
(entries) => {
|
|
59
|
-
const entry = entries[0];
|
|
60
|
-
if (!entry) return;
|
|
61
|
-
this._isVisible = entry.isIntersecting;
|
|
62
|
-
if (this._isVisible) {
|
|
63
|
-
this.setAttribute("visible", "");
|
|
64
|
-
requestAnimationFrame(() => this._applyParallax());
|
|
65
|
-
} else {
|
|
66
|
-
this.removeAttribute("visible");
|
|
67
|
-
}
|
|
19
|
+
this.variant = "social";
|
|
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
|
+
]
|
|
68
38
|
},
|
|
69
|
-
{
|
|
70
|
-
|
|
71
|
-
|
|
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
|
+
];
|
|
72
72
|
}
|
|
73
|
+
/* ── Computed ── */
|
|
74
|
+
get year() {
|
|
75
|
+
return (/* @__PURE__ */ new Date()).getFullYear();
|
|
76
|
+
}
|
|
77
|
+
/* ── Behaviour ── */
|
|
73
78
|
/**
|
|
74
|
-
*
|
|
75
|
-
*
|
|
76
|
-
* Fórmula: centerOffset = distancia entre el centro del elemento
|
|
77
|
-
* y el centro del viewport. Cuando el elemento está centrado en
|
|
78
|
-
* pantalla → offset = 0, sin desplazamiento.
|
|
79
|
-
* Cuando el elemento sube por encima → offset negativo → el elemento
|
|
80
|
-
* se desplaza hacia arriba (más rápido o más lento que el scroll).
|
|
81
|
-
*
|
|
82
|
-
* Esto es más correcto que `(scrollY - offsetTop) * speed` porque:
|
|
83
|
-
* 1. No depende del offsetParent (fiable en Shadow DOM)
|
|
84
|
-
* 2. El punto neutro es el centro visual, no el top de la página
|
|
79
|
+
* Abre / cierra un ítem de acordeón.
|
|
80
|
+
* @internal
|
|
85
81
|
*/
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
const
|
|
89
|
-
if (!
|
|
90
|
-
const
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
const clamped = this.clamp > 0 ? Math.min(Math.max(move, -this.clamp), this.clamp) : move;
|
|
97
|
-
switch (this.axis) {
|
|
98
|
-
case "x":
|
|
99
|
-
el.style.transform = `translate3d(${clamped}px, 0, 0)`;
|
|
100
|
-
break;
|
|
101
|
-
case "xy":
|
|
102
|
-
el.style.transform = `translate3d(${clamped}px, ${clamped}px, 0)`;
|
|
103
|
-
break;
|
|
104
|
-
case "y":
|
|
105
|
-
default:
|
|
106
|
-
el.style.transform = `translate3d(0, ${clamped}px, 0)`;
|
|
107
|
-
}
|
|
108
|
-
});
|
|
109
|
-
}
|
|
110
|
-
/** Limpia los transforms (p.ej. al activar prefers-reduced-motion en runtime) */
|
|
111
|
-
_resetTransforms() {
|
|
112
|
-
var _a;
|
|
113
|
-
const slot = (_a = this.shadowRoot) == null ? void 0 : _a.querySelector("slot");
|
|
114
|
-
const elements = slot == null ? void 0 : slot.assignedElements();
|
|
115
|
-
elements == null ? void 0 : elements.forEach((el) => {
|
|
116
|
-
el.style.transform = "";
|
|
117
|
-
});
|
|
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
|
+
}
|
|
118
92
|
}
|
|
93
|
+
/* ── Render ── */
|
|
119
94
|
render() {
|
|
120
|
-
return
|
|
95
|
+
return renderFooter(this);
|
|
121
96
|
}
|
|
122
97
|
};
|
|
123
|
-
|
|
98
|
+
LibFooter.styles = [
|
|
124
99
|
css`${unsafeCSS(sharedTokens)}`,
|
|
125
|
-
css`${unsafeCSS(
|
|
100
|
+
css`${unsafeCSS(componentCss)}`
|
|
126
101
|
];
|
|
127
102
|
__decorateClass([
|
|
128
|
-
property({ type:
|
|
129
|
-
],
|
|
103
|
+
property({ type: String })
|
|
104
|
+
], LibFooter.prototype, "variant", 2);
|
|
105
|
+
__decorateClass([
|
|
106
|
+
property({ type: String, attribute: "brand-name" })
|
|
107
|
+
], LibFooter.prototype, "brandName", 2);
|
|
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);
|
|
130
141
|
__decorateClass([
|
|
131
|
-
property({ type:
|
|
132
|
-
],
|
|
142
|
+
property({ type: Array, attribute: "legal-links" })
|
|
143
|
+
], LibFooter.prototype, "legalLinks", 2);
|
|
133
144
|
__decorateClass([
|
|
134
|
-
property({ type:
|
|
135
|
-
],
|
|
136
|
-
|
|
137
|
-
customElement("lib-
|
|
138
|
-
],
|
|
145
|
+
property({ type: Array, attribute: "runtime-lines" })
|
|
146
|
+
], LibFooter.prototype, "runtimeLines", 2);
|
|
147
|
+
LibFooter = __decorateClass([
|
|
148
|
+
customElement("lib-footer")
|
|
149
|
+
], LibFooter);
|
|
139
150
|
export {
|
|
140
|
-
|
|
151
|
+
LibFooter
|
|
141
152
|
};
|
|
142
153
|
//# sourceMappingURL=index75.js.map
|
package/dist/index75.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index75.js","sources":["../src/components/organisms/
|
|
1
|
+
{"version":3,"file":"index75.js","sources":["../src/components/organisms/footer/lib-footer.component.ts"],"sourcesContent":["import { LitElement, TemplateResult, css, unsafeCSS } from 'lit';\nimport { customElement, property } from 'lit/decorators.js';\nimport { FooterColumn, FooterLink, FooterVariant } from './lib-footer.types';\nimport { renderFooter } from './lib-footer.html';\nimport componentCss from './lib-footer.css?inline';\nimport sharedTokens from '../../../styles/shared/tokens.css?inline';\n\n/**\n * `<lib-footer>` — Footer polimórfico con 4 variantes de diseño.\n *\n * @tag lib-footer\n *\n * @attr {string} variant - Estilo del footer: 'social' | 'accordion' | 'kintsugi' | 'glitch'\n * @attr {string} brand-name - Nombre de marca (ej: \"shibui\")\n * @attr {string} brand-kanji - Caracter kanji decorativo (ej: \"渋\")\n * @attr {string} brand-sub - Subtítulo bajo el logo (ej: \"Design System · Zaragoza\")\n * @attr {string} location - Ciudad / país para el copyright\n * @attr {string} version - Versión del producto (ej: \"1.0.0\")\n * @attr {string} node-version - Versión de Node para la variante glitch (ej: \"v22.0.0\")\n * @attr {string} github-href - URL de GitHub\n * @attr {string} linkedin-href- URL de LinkedIn\n * @attr {string} rss-href - URL del feed RSS\n * @attr {string} email - Dirección de email de contacto\n *\n * @prop {FooterColumn[]} columns - Columnas de navegación (accordion / kintsugi)\n * @prop {FooterLink[]} nav-links - Links de navegación planos (social / glitch)\n * @prop {FooterLink[]} legal-links - Links de pie (privacidad, términos, etc.)\n * @prop {RuntimeLine[]} runtime-lines- Líneas de la tabla runtime (variante glitch)\n *\n * @fires ui-lib-footer-link-click - Cuando se pulsa un enlace del footer\n * @detail { label: string; href: string }\n */\n@customElement('lib-footer')\nexport class LibFooter extends LitElement {\n\n static override styles = [\n css`${unsafeCSS(sharedTokens)}`,\n css`${unsafeCSS(componentCss)}`,\n ];\n\n /* ── Props principales ── */\n\n @property({ type: String })\n variant: FooterVariant = 'social';\n\n @property({ type: String, attribute: 'brand-name' })\n brandName = 'shibui';\n\n @property({ type: String, attribute: 'brand-kanji' })\n brandKanji = '渋';\n\n @property({ type: String, attribute: 'brand-sub' })\n brandSub = 'Design System · Zaragoza';\n\n @property({ type: String })\n location = 'Zaragoza';\n\n @property({ type: String })\n version = '1.0.0';\n\n @property({ type: String, attribute: 'node-version' })\n nodeVersion = 'v22.0.0';\n\n @property({ type: String, attribute: 'github-href' })\n githubHref = '#';\n\n @property({ type: String, attribute: 'linkedin-href' })\n linkedinHref = '#';\n\n @property({ type: String, attribute: 'rss-href' })\n rssHref = '#';\n\n @property({ type: String })\n email = '';\n\n /* ── Props de datos (pasadas como JSON o JS) ── */\n\n @property({ type: Array })\n columns: FooterColumn[] = [\n {\n heading: 'Librería',\n links: [\n { label: 'Componentes', href: '#' },\n { label: 'Tokens', href: '#' },\n { label: 'Estilos', href: '#' },\n ],\n },\n {\n heading: 'Ecosistema',\n links: [\n { label: 'GitHub', href: '#' },\n { label: 'NPM', href: '#' },\n { label: 'Storybook', href: '#' },\n ],\n },\n {\n heading: 'Recursos',\n links: [\n { label: 'Docs', href: '#' },\n { label: 'Changelog', href: '#' },\n { label: 'Roadmap', href: '#' },\n ],\n },\n ];\n\n @property({ type: Array, attribute: 'nav-links' })\n navLinks: FooterLink[] = [\n { label: 'Componentes', href: '#' },\n { label: 'Tokens', href: '#' },\n { label: 'MIT License', href: '#' },\n ];\n\n @property({ type: Array, attribute: 'legal-links' })\n legalLinks: FooterLink[] = [\n { label: 'privacy.md', href: '#' },\n { label: 'terms.md', href: '#' },\n ];\n\n @property({ type: Array, attribute: 'runtime-lines' })\n runtimeLines: { key: string; value: string }[] = [\n { key: 'node', value: 'v22.0.0' },\n { key: 'css', value: 'pure · no-build' },\n { key: 'fonts', value: 'google CDN' },\n { key: 'deps', value: '0' },\n { key: 'size', value: '~180kb total' },\n ];\n\n /* ── Computed ── */\n\n get year(): number {\n return new Date().getFullYear();\n }\n\n /* ── Behaviour ── */\n\n /**\n * Abre / cierra un ítem de acordeón.\n * @internal\n */\n _toggleAccordion(trigger: HTMLElement): void {\n const body = trigger.nextElementSibling as HTMLElement | null;\n const arrow = trigger.querySelector('.ft-acc-arrow') as HTMLElement | null;\n\n if (!body) return;\n\n const isOpen = body.style.maxHeight !== '' && body.style.maxHeight !== '0px';\n\n body.style.maxHeight = isOpen ? '0' : '300px';\n trigger.setAttribute('aria-expanded', String(!isOpen));\n\n if (arrow) {\n arrow.style.transform = isOpen ? 'rotate(0deg)' : 'rotate(180deg)';\n }\n }\n\n /* ── Render ── */\n\n protected override render(): TemplateResult {\n return renderFooter(this);\n }\n}\n"],"names":[],"mappings":"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"}
|