@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/index45.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { unsafeCSS, css, LitElement } from "lit";
|
|
2
2
|
import { property, customElement } from "lit/decorators.js";
|
|
3
|
-
import { rendercontentPillar } from "./index275.js";
|
|
4
|
-
import componentCss from "./index276.js";
|
|
5
3
|
import sharedTokens from "./index196.js";
|
|
4
|
+
import glitchCss from "./index344.js";
|
|
5
|
+
import { textGlitchTemplate } from "./index345.js";
|
|
6
6
|
var __defProp = Object.defineProperty;
|
|
7
7
|
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
8
8
|
var __decorateClass = (decorators, target, key, kind) => {
|
|
@@ -13,38 +13,155 @@ var __decorateClass = (decorators, target, key, kind) => {
|
|
|
13
13
|
if (kind && result) __defProp(target, key, result);
|
|
14
14
|
return result;
|
|
15
15
|
};
|
|
16
|
-
|
|
16
|
+
const KANA = "ア イ ウ エ オ カ キ ク ケ コ サ シ ス セ ソ タ チ ツ テ ト ナ ニ ヌ ネ ノ ハ ヒ フ ヘ ホ マ ミ ム メ モ ヤ ユ ヨ ラ リ ル レ ロ ワ ヲ ン ガ ギ グ ゲ ゴ " + "ザ ジ ズ ゼ ゾ ダ ヂ ヅ デ ド バ ビ ブ ベ ボ 渋 液 美 乱 進 間 静 陰 影 黒 白 墨 和 侘".split(" ");
|
|
17
|
+
let LibTextGlitch = class extends LitElement {
|
|
17
18
|
constructor() {
|
|
18
19
|
super(...arguments);
|
|
19
|
-
this.
|
|
20
|
-
this.
|
|
21
|
-
this.
|
|
22
|
-
this.
|
|
20
|
+
this.text = "";
|
|
21
|
+
this.variant = "slice";
|
|
22
|
+
this.trigger = "hover";
|
|
23
|
+
this.active = false;
|
|
24
|
+
this._running = false;
|
|
25
|
+
this._boundMouseEnter = () => {
|
|
26
|
+
this._decodePlay();
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
/* ── Lifecycle ──────────────────────────────────────────── */
|
|
30
|
+
connectedCallback() {
|
|
31
|
+
super.connectedCallback();
|
|
32
|
+
this._setupDecode();
|
|
33
|
+
}
|
|
34
|
+
disconnectedCallback() {
|
|
35
|
+
super.disconnectedCallback();
|
|
36
|
+
this.removeEventListener("mouseenter", this._boundMouseEnter);
|
|
37
|
+
clearTimeout(this._alwaysTimer);
|
|
38
|
+
}
|
|
39
|
+
updated(changed) {
|
|
40
|
+
const reInit = changed.has("variant") || changed.has("trigger") || changed.has("text");
|
|
41
|
+
if (reInit) {
|
|
42
|
+
this.removeEventListener("mouseenter", this._boundMouseEnter);
|
|
43
|
+
clearTimeout(this._alwaysTimer);
|
|
44
|
+
this._running = false;
|
|
45
|
+
this._setupDecode();
|
|
46
|
+
}
|
|
23
47
|
}
|
|
24
48
|
render() {
|
|
25
|
-
return
|
|
49
|
+
return textGlitchTemplate({ text: this.text, variant: this.variant });
|
|
50
|
+
}
|
|
51
|
+
/* ── API pública ────────────────────────────────────────── */
|
|
52
|
+
/**
|
|
53
|
+
* Reproduce el efecto manualmente una vez.
|
|
54
|
+
* - Para `decode`: lanza el scramble de kanji.
|
|
55
|
+
* - Para `scan` / `redact`: activa [active] y lo retira al terminar.
|
|
56
|
+
* - Para `slice` / `shift` / `noise`: activa [active] (CSS bucle).
|
|
57
|
+
*/
|
|
58
|
+
play() {
|
|
59
|
+
if (this.variant === "decode") {
|
|
60
|
+
this._decodePlay();
|
|
61
|
+
return;
|
|
62
|
+
}
|
|
63
|
+
this.active = true;
|
|
64
|
+
if (this.variant === "scan" || this.variant === "redact") {
|
|
65
|
+
const dur = this.variant === "scan" ? 620 : 720;
|
|
66
|
+
setTimeout(() => {
|
|
67
|
+
this.active = false;
|
|
68
|
+
}, dur);
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
/** Detiene el bucle `trigger="always"` y desactiva [active]. */
|
|
72
|
+
stop() {
|
|
73
|
+
clearTimeout(this._alwaysTimer);
|
|
74
|
+
this._running = false;
|
|
75
|
+
this.active = false;
|
|
76
|
+
}
|
|
77
|
+
/* ── Decode engine ──────────────────────────────────────── */
|
|
78
|
+
_setupDecode() {
|
|
79
|
+
if (this.variant !== "decode") return;
|
|
80
|
+
if (this.trigger === "hover") {
|
|
81
|
+
this.addEventListener("mouseenter", this._boundMouseEnter);
|
|
82
|
+
} else {
|
|
83
|
+
this.updateComplete.then(() => {
|
|
84
|
+
this._scheduleAlwaysDecode();
|
|
85
|
+
});
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
_scheduleAlwaysDecode() {
|
|
89
|
+
this._decodePlay();
|
|
90
|
+
const pause = Math.max([...this.text].length * 55 * 1.5, 400) + 2e3;
|
|
91
|
+
this._alwaysTimer = setTimeout(() => {
|
|
92
|
+
this._scheduleAlwaysDecode();
|
|
93
|
+
}, pause);
|
|
94
|
+
}
|
|
95
|
+
/**
|
|
96
|
+
* Motor de decodificación kanji.
|
|
97
|
+
*
|
|
98
|
+
* Cada char span se sustituye por un katakana/kanji aleatorio
|
|
99
|
+
* durante un número variable de frames, y luego se resuelve al
|
|
100
|
+
* carácter original. El orden de resolución es estocástico.
|
|
101
|
+
*/
|
|
102
|
+
_decodePlay() {
|
|
103
|
+
if (this._running) return;
|
|
104
|
+
this._running = true;
|
|
105
|
+
const chars = Array.from(
|
|
106
|
+
this.renderRoot.querySelectorAll(".char")
|
|
107
|
+
);
|
|
108
|
+
if (chars.length === 0) {
|
|
109
|
+
this._running = false;
|
|
110
|
+
return;
|
|
111
|
+
}
|
|
112
|
+
const SCRAMBLE_CYCLES = 6;
|
|
113
|
+
const FRAME_MS = 55;
|
|
114
|
+
const delays = chars.map(
|
|
115
|
+
() => Math.floor(Math.random() * chars.length * SCRAMBLE_CYCLES * 0.6) + SCRAMBLE_CYCLES
|
|
116
|
+
);
|
|
117
|
+
let frame = 0;
|
|
118
|
+
const total = Math.max(...delays) + 2;
|
|
119
|
+
const tick = () => {
|
|
120
|
+
chars.forEach((span, i) => {
|
|
121
|
+
const orig = span.dataset["original"] ?? "";
|
|
122
|
+
if (frame < (delays[i] ?? 0)) {
|
|
123
|
+
if (orig.trim() === "" || orig === "·" || orig === "-") return;
|
|
124
|
+
span.textContent = KANA[Math.floor(Math.random() * KANA.length)] ?? orig;
|
|
125
|
+
span.classList.add("is-scrambling");
|
|
126
|
+
} else {
|
|
127
|
+
span.textContent = orig;
|
|
128
|
+
span.classList.remove("is-scrambling");
|
|
129
|
+
}
|
|
130
|
+
});
|
|
131
|
+
frame++;
|
|
132
|
+
if (frame < total) {
|
|
133
|
+
setTimeout(tick, FRAME_MS);
|
|
134
|
+
} else {
|
|
135
|
+
chars.forEach((span) => {
|
|
136
|
+
span.textContent = span.dataset["original"] ?? "";
|
|
137
|
+
span.classList.remove("is-scrambling");
|
|
138
|
+
});
|
|
139
|
+
this._running = false;
|
|
140
|
+
}
|
|
141
|
+
};
|
|
142
|
+
tick();
|
|
26
143
|
}
|
|
27
144
|
};
|
|
28
|
-
|
|
145
|
+
LibTextGlitch.styles = [
|
|
29
146
|
css`${unsafeCSS(sharedTokens)}`,
|
|
30
|
-
css`${unsafeCSS(
|
|
147
|
+
css`${unsafeCSS(glitchCss)}`
|
|
31
148
|
];
|
|
32
149
|
__decorateClass([
|
|
33
150
|
property({ type: String })
|
|
34
|
-
],
|
|
35
|
-
__decorateClass([
|
|
36
|
-
property({ type: String })
|
|
37
|
-
], LibContentPillar.prototype, "label", 2);
|
|
151
|
+
], LibTextGlitch.prototype, "text", 2);
|
|
38
152
|
__decorateClass([
|
|
39
|
-
property({ type: String })
|
|
40
|
-
],
|
|
153
|
+
property({ type: String, reflect: true })
|
|
154
|
+
], LibTextGlitch.prototype, "variant", 2);
|
|
41
155
|
__decorateClass([
|
|
42
156
|
property({ type: String, reflect: true })
|
|
43
|
-
],
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
],
|
|
157
|
+
], LibTextGlitch.prototype, "trigger", 2);
|
|
158
|
+
__decorateClass([
|
|
159
|
+
property({ type: Boolean, reflect: true })
|
|
160
|
+
], LibTextGlitch.prototype, "active", 2);
|
|
161
|
+
LibTextGlitch = __decorateClass([
|
|
162
|
+
customElement("lib-text-glitch")
|
|
163
|
+
], LibTextGlitch);
|
|
47
164
|
export {
|
|
48
|
-
|
|
165
|
+
LibTextGlitch
|
|
49
166
|
};
|
|
50
167
|
//# sourceMappingURL=index45.js.map
|
package/dist/index45.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index45.js","sources":["../src/components/atoms/content-pillar/content-pillar.component.ts"],"sourcesContent":["import { LitElement, css, unsafeCSS, type TemplateResult } from 'lit';\nimport { customElement, property } from 'lit/decorators.js';\nimport { rendercontentPillar } from './content-pillar.html';\nimport componentCss from './content-pillar.css?inline';\nimport sharedTokens from '../../../styles/shared/tokens.css?inline';\n\n/**\n * `<lib-content-pillar>` — Pilar filosófico con kanji, label y descripción.\n *\n * Patrón recurrente del sistema Shibui: kanji decorativo a la izquierda +\n * etiqueta en DM Mono + cuerpo de texto en Shippori Mincho.\n *\n * @tag lib-content-pillar\n *\n * @attr {string} kanji - Carácter kanji decorativo (ej: \"侘\", \"金\", \"間\").\n * @attr {string} label - Etiqueta en mono uppercase (ej: \"Wabi · Imperfección\").\n * @attr {string} description - Texto de descripción inline.\n * @attr {'dark'|'light'} surface - Superficie sobre la que se muestra. Default: `dark`.\n *\n * @slot - Descripción como rich content (alternativa al atributo `description`).\n *\n * @csspart pillar - Wrapper flex externo.\n * @csspart kanji - El carácter kanji.\n * @csspart body - Columna derecha (label + descripción).\n * @csspart label - La etiqueta mono.\n * @csspart description - El párrafo de descripción.\n *\n * @example\n * <lib-content-pillar\n * kanji=\"金\"\n * label=\"Kintsugi · Cicatrices de oro\"\n * description=\"Reparar con oro en lugar de ocultar.\"\n * ></lib-content-pillar>\n *\n * <!-- Con rich content -->\n * <lib-content-pillar kanji=\"間\" label=\"Ma · El espacio\">\n * El silencio entre notas. El espacio vacío <em>es</em> presencia.\n * </lib-content-pillar>\n */\n@customElement('lib-content-pillar')\nexport class LibContentPillar extends LitElement {\n\n static override styles = [\n css`${unsafeCSS(sharedTokens)}`,\n css`${unsafeCSS(componentCss)}`,\n ];\n\n /** Carácter kanji decorativo */\n @property({ type: String })\n kanji = '';\n\n /** Etiqueta en DM Mono uppercase */\n @property({ type: String })\n label = '';\n\n /** Descripción inline (alternativa al slot) */\n @property({ type: String })\n description = '';\n\n /** Superficie de fondo */\n @property({ type: String, reflect: true })\n surface: 'dark' | 'light' = 'dark';\n\n protected override render(): TemplateResult {\n return rendercontentPillar(this);\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'lib-content-pillar': LibContentPillar;\n }\n}"],"names":[],"mappings":";;;;;;;;;;;;;;;AAwCO,IAAM,mBAAN,cAA+B,WAAW;AAAA,EAA1C,cAAA;AAAA,UAAA,GAAA,SAAA;AASL,SAAA,QAAQ;AAIR,SAAA,QAAQ;AAIR,SAAA,cAAc;AAId,SAAA,UAA4B;AAAA,EAAA;AAAA,EAET,SAAyB;AAC1C,WAAO,oBAAoB,IAAI;AAAA,EACjC;AACF;AA1Ba,iBAEK,SAAS;AAAA,EACvB,MAAM,UAAU,YAAY,CAAC;AAAA,EAC7B,MAAM,UAAU,YAAY,CAAC;AAC/B;AAIA,gBAAA;AAAA,EADC,SAAS,EAAE,MAAM,OAAA,CAAQ;AAAA,GARf,iBASX,WAAA,SAAA,CAAA;AAIA,gBAAA;AAAA,EADC,SAAS,EAAE,MAAM,OAAA,CAAQ;AAAA,GAZf,iBAaX,WAAA,SAAA,CAAA;AAIA,gBAAA;AAAA,EADC,SAAS,EAAE,MAAM,OAAA,CAAQ;AAAA,GAhBf,iBAiBX,WAAA,eAAA,CAAA;AAIA,gBAAA;AAAA,EADC,SAAS,EAAE,MAAM,QAAQ,SAAS,MAAM;AAAA,GApB9B,iBAqBX,WAAA,WAAA,CAAA;AArBW,mBAAN,gBAAA;AAAA,EADN,cAAc,oBAAoB;AAAA,GACtB,gBAAA;"}
|
|
1
|
+
{"version":3,"file":"index45.js","sources":["../src/components/atoms/text-glitch/lib-text-glitch.component.ts"],"sourcesContent":["import { LitElement, css, unsafeCSS, TemplateResult, PropertyValues } from 'lit';\nimport { customElement, property } from 'lit/decorators.js';\nimport sharedTokens from '../../../styles/shared/tokens.css?inline';\nimport glitchCss from './lib-text-glitch.css?inline';\nimport { textGlitchTemplate } from './lib-text-glitch.html';\n\n/* ── Tipos públicos ─────────────────────────────────────────── */\n\n/** Variante visual del efecto de glitch. */\nexport type TextGlitchVariant = 'slice' | 'scan' | 'shift' | 'decode' | 'redact' | 'noise';\n\n/**\n * Modo de activación del efecto.\n * - `hover` → se activa al pasar el cursor (default).\n * - `always` → se activa de forma continua al montar el componente.\n */\nexport type TextGlitchTrigger = 'hover' | 'always';\n\n/* ── Pool de caracteres para el decode ──────────────────────── */\n\nconst KANA =\n 'ア イ ウ エ オ カ キ ク ケ コ サ シ ス セ ソ タ チ ツ テ ト ナ ニ ヌ ネ ノ ' +\n 'ハ ヒ フ ヘ ホ マ ミ ム メ モ ヤ ユ ヨ ラ リ ル レ ロ ワ ヲ ン ガ ギ グ ゲ ゴ ' +\n 'ザ ジ ズ ゼ ゾ ダ ヂ ヅ デ ド バ ビ ブ ベ ボ 渋 液 美 乱 進 間 静 陰 影 黒 白 墨 和 侘'.split(' ');\n\n/**\n * @element lib-text-glitch\n *\n * @prop {string} text - Texto a renderizar y distorsionar.\n * @prop {TextGlitchVariant} variant - Efecto visual: slice | scan | shift | decode | redact | noise.\n * @prop {TextGlitchTrigger} trigger - Modo de activación: hover | always.\n * @prop {boolean} active - Activa el efecto programáticamente (reflectado en atributo).\n *\n * @method play() - Reproduce el efecto una vez (scan / redact / decode).\n * @method stop() - Detiene el bucle `trigger=\"always\"`.\n */\n@customElement('lib-text-glitch')\nexport class LibTextGlitch extends LitElement {\n static override styles = [\n css`${unsafeCSS(sharedTokens)}`,\n css`${unsafeCSS(glitchCss)}`,\n ];\n\n /* ── Props ──────────────────────────────────────────────── */\n\n @property({ type: String })\n text: string = '';\n\n @property({ type: String, reflect: true })\n variant: TextGlitchVariant = 'slice';\n\n @property({ type: String, reflect: true })\n trigger: TextGlitchTrigger = 'hover';\n\n /** Activa el efecto desde el exterior (CSS reacciona a [active]). */\n @property({ type: Boolean, reflect: true })\n active: boolean = false;\n\n /* ── Estado interno ─────────────────────────────────────── */\n\n private _running = false;\n private _alwaysTimer?: ReturnType<typeof setTimeout>;\n\n /* Bound handler reutilizable para poder hacer removeEventListener */\n private readonly _boundMouseEnter = (): void => { this._decodePlay(); };\n\n /* ── Lifecycle ──────────────────────────────────────────── */\n\n override connectedCallback(): void {\n super.connectedCallback();\n this._setupDecode();\n }\n\n override disconnectedCallback(): void {\n super.disconnectedCallback();\n this.removeEventListener('mouseenter', this._boundMouseEnter);\n clearTimeout(this._alwaysTimer);\n }\n\n override updated(changed: PropertyValues): void {\n const reInit =\n changed.has('variant') ||\n changed.has('trigger') ||\n changed.has('text');\n\n if (reInit) {\n /* Limpieza del ciclo anterior */\n this.removeEventListener('mouseenter', this._boundMouseEnter);\n clearTimeout(this._alwaysTimer);\n this._running = false;\n this._setupDecode();\n }\n }\n\n override render(): TemplateResult {\n return textGlitchTemplate({ text: this.text, variant: this.variant });\n }\n\n /* ── API pública ────────────────────────────────────────── */\n\n /**\n * Reproduce el efecto manualmente una vez.\n * - Para `decode`: lanza el scramble de kanji.\n * - Para `scan` / `redact`: activa [active] y lo retira al terminar.\n * - Para `slice` / `shift` / `noise`: activa [active] (CSS bucle).\n */\n play(): void {\n if (this.variant === 'decode') {\n this._decodePlay();\n return;\n }\n this.active = true;\n if (this.variant === 'scan' || this.variant === 'redact') {\n const dur = this.variant === 'scan' ? 620 : 720;\n setTimeout(() => { this.active = false; }, dur);\n }\n }\n\n /** Detiene el bucle `trigger=\"always\"` y desactiva [active]. */\n stop(): void {\n clearTimeout(this._alwaysTimer);\n this._running = false;\n this.active = false;\n }\n\n /* ── Decode engine ──────────────────────────────────────── */\n\n private _setupDecode(): void {\n if (this.variant !== 'decode') return;\n\n if (this.trigger === 'hover') {\n this.addEventListener('mouseenter', this._boundMouseEnter);\n } else {\n /* always: esperamos el primer render completo para tener los .char */\n this.updateComplete.then(() => { this._scheduleAlwaysDecode(); });\n }\n }\n\n private _scheduleAlwaysDecode(): void {\n this._decodePlay();\n /* Pausa entre repeticiones: proporcional a la longitud del texto */\n const pause = Math.max([...this.text].length * 55 * 1.5, 400) + 2000;\n this._alwaysTimer = setTimeout(() => { this._scheduleAlwaysDecode(); }, pause);\n }\n\n /**\n * Motor de decodificación kanji.\n *\n * Cada char span se sustituye por un katakana/kanji aleatorio\n * durante un número variable de frames, y luego se resuelve al\n * carácter original. El orden de resolución es estocástico.\n */\n private _decodePlay(): void {\n if (this._running) return;\n this._running = true;\n\n const chars = Array.from(\n this.renderRoot.querySelectorAll<HTMLElement>('.char')\n );\n\n if (chars.length === 0) {\n this._running = false;\n return;\n }\n\n const SCRAMBLE_CYCLES = 6;\n const FRAME_MS = 55;\n\n /* Delay estocástico por carácter — no resuelven de izquierda a derecha */\n const delays = chars.map(() =>\n Math.floor(Math.random() * chars.length * SCRAMBLE_CYCLES * 0.6) + SCRAMBLE_CYCLES\n );\n\n let frame = 0;\n const total = Math.max(...delays) + 2;\n\n const tick = (): void => {\n chars.forEach((span, i) => {\n const orig = span.dataset['original'] ?? '';\n\n if (frame < (delays[i] ?? 0)) {\n /* Espacios y puntuación — no se scramblea */\n if (orig.trim() === '' || orig === '·' || orig === '-') return;\n span.textContent = KANA[Math.floor(Math.random() * KANA.length)] ?? orig;\n span.classList.add('is-scrambling');\n } else {\n span.textContent = orig;\n span.classList.remove('is-scrambling');\n }\n });\n\n frame++;\n\n if (frame < total) {\n setTimeout(tick, FRAME_MS);\n } else {\n /* Garantía final — todos al original */\n chars.forEach(span => {\n span.textContent = span.dataset['original'] ?? '';\n span.classList.remove('is-scrambling');\n });\n this._running = false;\n }\n };\n\n tick();\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'lib-text-glitch': LibTextGlitch;\n }\n}"],"names":[],"mappings":"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"}
|
package/dist/index46.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { unsafeCSS, css, LitElement } from "lit";
|
|
2
2
|
import { property, customElement } from "lit/decorators.js";
|
|
3
|
-
import
|
|
4
|
-
import componentCss from "./index278.js";
|
|
3
|
+
import textListCss from "./index346.js";
|
|
5
4
|
import sharedTokens from "./index196.js";
|
|
5
|
+
import { textListTemplate } from "./index347.js";
|
|
6
6
|
var __defProp = Object.defineProperty;
|
|
7
7
|
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
8
8
|
var __decorateClass = (decorators, target, key, kind) => {
|
|
@@ -13,42 +13,149 @@ 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 LibTextList = class extends LitElement {
|
|
17
17
|
constructor() {
|
|
18
18
|
super(...arguments);
|
|
19
|
-
this.
|
|
20
|
-
this.
|
|
21
|
-
this.
|
|
22
|
-
this.
|
|
19
|
+
this.family = "ul";
|
|
20
|
+
this.items = [];
|
|
21
|
+
this.marker = "default";
|
|
22
|
+
this.counter = "decimal";
|
|
23
23
|
this.size = "md";
|
|
24
|
+
this.uiItems = [];
|
|
25
|
+
this.divided = false;
|
|
26
|
+
this.bordered = false;
|
|
27
|
+
this.inset = false;
|
|
28
|
+
this.interactive = false;
|
|
29
|
+
this.dlItems = [];
|
|
30
|
+
this.dlLayout = "inline";
|
|
31
|
+
this.dlDivided = false;
|
|
32
|
+
this.dark = false;
|
|
33
|
+
this.loading = false;
|
|
34
|
+
this.skeletonCount = 4;
|
|
24
35
|
}
|
|
36
|
+
/* ── Handlers ── */
|
|
37
|
+
_handleRowClick(item) {
|
|
38
|
+
this.dispatchEvent(
|
|
39
|
+
new CustomEvent("ui-lib-row-click", {
|
|
40
|
+
detail: { key: item.key, item },
|
|
41
|
+
bubbles: true,
|
|
42
|
+
composed: true
|
|
43
|
+
})
|
|
44
|
+
);
|
|
45
|
+
}
|
|
46
|
+
_handleToggle(item, value) {
|
|
47
|
+
this.dispatchEvent(
|
|
48
|
+
new CustomEvent("ui-lib-toggle", {
|
|
49
|
+
detail: { key: item.key, value },
|
|
50
|
+
bubbles: true,
|
|
51
|
+
composed: true
|
|
52
|
+
})
|
|
53
|
+
);
|
|
54
|
+
}
|
|
55
|
+
/* ── Render ── */
|
|
25
56
|
render() {
|
|
26
|
-
|
|
57
|
+
if (this.loading && (this.family === "ul" || this.family === "ol")) {
|
|
58
|
+
const skeletons = Array.from(
|
|
59
|
+
{ length: this.skeletonCount },
|
|
60
|
+
(_, i) => ({ label: `skeleton-${i}` })
|
|
61
|
+
);
|
|
62
|
+
return textListTemplate({
|
|
63
|
+
family: this.family,
|
|
64
|
+
contentItems: skeletons,
|
|
65
|
+
marker: "default",
|
|
66
|
+
counter: this.counter,
|
|
67
|
+
size: this.size,
|
|
68
|
+
uiItems: [],
|
|
69
|
+
divided: this.divided,
|
|
70
|
+
bordered: this.bordered,
|
|
71
|
+
inset: this.inset,
|
|
72
|
+
interactive: this.interactive,
|
|
73
|
+
dark: this.dark,
|
|
74
|
+
dlItems: [],
|
|
75
|
+
dlLayout: this.dlLayout,
|
|
76
|
+
dlDivided: this.dlDivided,
|
|
77
|
+
onRowClick: () => {
|
|
78
|
+
},
|
|
79
|
+
onToggle: () => {
|
|
80
|
+
}
|
|
81
|
+
});
|
|
82
|
+
}
|
|
83
|
+
return textListTemplate({
|
|
84
|
+
family: this.family,
|
|
85
|
+
contentItems: this.items,
|
|
86
|
+
marker: this.marker,
|
|
87
|
+
counter: this.counter,
|
|
88
|
+
size: this.size,
|
|
89
|
+
uiItems: this.uiItems,
|
|
90
|
+
divided: this.divided,
|
|
91
|
+
bordered: this.bordered,
|
|
92
|
+
inset: this.inset,
|
|
93
|
+
interactive: this.interactive,
|
|
94
|
+
dark: this.dark,
|
|
95
|
+
dlItems: this.dlItems,
|
|
96
|
+
dlLayout: this.dlLayout,
|
|
97
|
+
dlDivided: this.dlDivided,
|
|
98
|
+
onRowClick: (item) => this._handleRowClick(item),
|
|
99
|
+
onToggle: (item, v) => this._handleToggle(item, v)
|
|
100
|
+
});
|
|
27
101
|
}
|
|
28
102
|
};
|
|
29
|
-
|
|
103
|
+
LibTextList.styles = [
|
|
30
104
|
css`${unsafeCSS(sharedTokens)}`,
|
|
31
|
-
css`${unsafeCSS(
|
|
105
|
+
css`${unsafeCSS(textListCss)}`
|
|
32
106
|
];
|
|
33
107
|
__decorateClass([
|
|
34
|
-
property({ type: String })
|
|
35
|
-
],
|
|
108
|
+
property({ type: String, reflect: true })
|
|
109
|
+
], LibTextList.prototype, "family", 2);
|
|
36
110
|
__decorateClass([
|
|
37
|
-
property({ type:
|
|
38
|
-
],
|
|
111
|
+
property({ type: Array })
|
|
112
|
+
], LibTextList.prototype, "items", 2);
|
|
39
113
|
__decorateClass([
|
|
40
|
-
property({ type: String })
|
|
41
|
-
],
|
|
114
|
+
property({ type: String, reflect: true })
|
|
115
|
+
], LibTextList.prototype, "marker", 2);
|
|
42
116
|
__decorateClass([
|
|
43
117
|
property({ type: String, reflect: true })
|
|
44
|
-
],
|
|
118
|
+
], LibTextList.prototype, "counter", 2);
|
|
45
119
|
__decorateClass([
|
|
46
120
|
property({ type: String, reflect: true })
|
|
47
|
-
],
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
],
|
|
121
|
+
], LibTextList.prototype, "size", 2);
|
|
122
|
+
__decorateClass([
|
|
123
|
+
property({ type: Array, attribute: "ui-items" })
|
|
124
|
+
], LibTextList.prototype, "uiItems", 2);
|
|
125
|
+
__decorateClass([
|
|
126
|
+
property({ type: Boolean, reflect: true })
|
|
127
|
+
], LibTextList.prototype, "divided", 2);
|
|
128
|
+
__decorateClass([
|
|
129
|
+
property({ type: Boolean, reflect: true })
|
|
130
|
+
], LibTextList.prototype, "bordered", 2);
|
|
131
|
+
__decorateClass([
|
|
132
|
+
property({ type: Boolean, reflect: true })
|
|
133
|
+
], LibTextList.prototype, "inset", 2);
|
|
134
|
+
__decorateClass([
|
|
135
|
+
property({ type: Boolean, reflect: true })
|
|
136
|
+
], LibTextList.prototype, "interactive", 2);
|
|
137
|
+
__decorateClass([
|
|
138
|
+
property({ type: Array, attribute: "dl-items" })
|
|
139
|
+
], LibTextList.prototype, "dlItems", 2);
|
|
140
|
+
__decorateClass([
|
|
141
|
+
property({ type: String, reflect: true, attribute: "dl-layout" })
|
|
142
|
+
], LibTextList.prototype, "dlLayout", 2);
|
|
143
|
+
__decorateClass([
|
|
144
|
+
property({ type: Boolean, reflect: true, attribute: "dl-divided" })
|
|
145
|
+
], LibTextList.prototype, "dlDivided", 2);
|
|
146
|
+
__decorateClass([
|
|
147
|
+
property({ type: Boolean, reflect: true })
|
|
148
|
+
], LibTextList.prototype, "dark", 2);
|
|
149
|
+
__decorateClass([
|
|
150
|
+
property({ type: Boolean, reflect: true })
|
|
151
|
+
], LibTextList.prototype, "loading", 2);
|
|
152
|
+
__decorateClass([
|
|
153
|
+
property({ type: Number, attribute: "skeleton-count" })
|
|
154
|
+
], LibTextList.prototype, "skeletonCount", 2);
|
|
155
|
+
LibTextList = __decorateClass([
|
|
156
|
+
customElement("lib-text-list")
|
|
157
|
+
], LibTextList);
|
|
51
158
|
export {
|
|
52
|
-
|
|
159
|
+
LibTextList
|
|
53
160
|
};
|
|
54
161
|
//# sourceMappingURL=index46.js.map
|
package/dist/index46.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index46.js","sources":["../src/components/atoms/
|
|
1
|
+
{"version":3,"file":"index46.js","sources":["../src/components/atoms/text-list/lib-text-list.component.ts"],"sourcesContent":["import { LitElement, css, unsafeCSS, TemplateResult } from 'lit';\nimport { customElement, property } from 'lit/decorators.js';\nimport textListCss from './lib-text-list.css?inline';\nimport sharedTokens from '../../../styles/shared/tokens.css?inline';\nimport { textListTemplate } from './lib-text-list.html';\nimport type {\n ListFamily,\n ContentItem,\n UiItem,\n UiRow,\n DlItem,\n ContentMarker,\n OrderedCounter,\n ListSize,\n DlLayout,\n ListRowClickDetail,\n ListToggleDetail,\n} from './lib-text-list.types';\n\n/**\n * @element lib-text-list\n *\n * Sistema de listas con tres familias:\n *\n * **Content list** (`family=\"ul\" | \"ol\"`) — listas tipográficas para prosa.\n * Marcadores: default · kaki · dash · check.\n * Contadores (ol): decimal · roman · alpha.\n *\n * **UI list** (`family=\"ui\"`) — filas de interfaz con icono, avatar,\n * meta, badge, toggle, chevron. Soporta separadores y headers de sección.\n *\n * **Description list** (`family=\"dl\"`) — pares clave/valor.\n * Layouts: inline · wide · stack.\n *\n * @prop {ListFamily} family — Familia activa (default: 'ul')\n *\n * — Content list —\n * @prop {ContentItem[]} items — Ítems de contenido\n * @prop {ContentMarker} marker — Tipo de viñeta (default: 'default')\n * @prop {OrderedCounter} counter — Tipo de contador ol (default: 'decimal')\n * @prop {ListSize} size — Tamaño (default: 'md')\n *\n * — UI list —\n * @prop {UiItem[]} uiItems — Filas, separadores y headers\n * @prop {boolean} divided — Separadores entre filas\n * @prop {boolean} bordered — Borde exterior\n * @prop {boolean} inset — Fondo de superficie\n * @prop {boolean} interactive — Hover + cursor pointer\n *\n * — Description list —\n * @prop {DlItem[]} dlItems — Pares clave/valor\n * @prop {DlLayout} dlLayout — Layout (default: 'inline')\n * @prop {boolean} dlDivided — Separadores entre pares\n *\n * — Global —\n * @prop {boolean} dark — Superficie oscura\n * @prop {boolean} loading — Estado de carga (skeleton)\n * @prop {number} skeletonCount — Número de skeletons (default: 4)\n *\n * @fires ui-lib-row-click — Al hacer clic en una fila UI\n * Detail: { key: string, item: UiRow }\n * @fires ui-lib-toggle — Al cambiar un toggle en una fila UI\n * Detail: { key: string, value: boolean }\n */\n@customElement('lib-text-list')\nexport class LibTextList extends LitElement {\n static override styles = [\n css`${unsafeCSS(sharedTokens)}`,\n css`${unsafeCSS(textListCss)}`,\n ];\n\n /* ── Familia ── */\n\n @property({ type: String, reflect: true })\n family: ListFamily = 'ul';\n\n /* ── Content list ── */\n\n @property({ type: Array })\n items: ContentItem[] = [];\n\n @property({ type: String, reflect: true })\n marker: ContentMarker = 'default';\n\n @property({ type: String, reflect: true })\n counter: OrderedCounter = 'decimal';\n\n @property({ type: String, reflect: true })\n size: ListSize = 'md';\n\n /* ── UI list ── */\n\n @property({ type: Array, attribute: 'ui-items' })\n uiItems: UiItem[] = [];\n\n @property({ type: Boolean, reflect: true })\n divided = false;\n\n @property({ type: Boolean, reflect: true })\n bordered = false;\n\n @property({ type: Boolean, reflect: true })\n inset = false;\n\n @property({ type: Boolean, reflect: true })\n interactive = false;\n\n /* ── Description list ── */\n\n @property({ type: Array, attribute: 'dl-items' })\n dlItems: DlItem[] = [];\n\n @property({ type: String, reflect: true, attribute: 'dl-layout' })\n dlLayout: DlLayout = 'inline';\n\n @property({ type: Boolean, reflect: true, attribute: 'dl-divided' })\n dlDivided = false;\n\n /* ── Global ── */\n\n @property({ type: Boolean, reflect: true })\n dark = false;\n\n @property({ type: Boolean, reflect: true })\n loading = false;\n\n @property({ type: Number, attribute: 'skeleton-count' })\n skeletonCount = 4;\n\n /* ── Handlers ── */\n\n private _handleRowClick(item: UiRow): void {\n this.dispatchEvent(\n new CustomEvent<ListRowClickDetail>('ui-lib-row-click', {\n detail: { key: item.key, item },\n bubbles: true,\n composed: true,\n })\n );\n }\n\n private _handleToggle(item: UiRow, value: boolean): void {\n this.dispatchEvent(\n new CustomEvent<ListToggleDetail>('ui-lib-toggle', {\n detail: { key: item.key, value },\n bubbles: true,\n composed: true,\n })\n );\n }\n\n /* ── Render ── */\n\n protected override render(): TemplateResult {\n /* Loading skeleton — solo content list */\n if (this.loading && (this.family === 'ul' || this.family === 'ol')) {\n const skeletons: ContentItem[] = Array.from(\n { length: this.skeletonCount },\n (_, i): ContentItem => ({ label: `skeleton-${i}` })\n );\n\n return textListTemplate({\n family: this.family,\n contentItems: skeletons,\n marker: 'default',\n counter: this.counter,\n size: this.size,\n nested: false,\n uiItems: [],\n divided: this.divided,\n bordered: this.bordered,\n inset: this.inset,\n interactive: this.interactive,\n dark: this.dark,\n dlItems: [],\n dlLayout: this.dlLayout,\n dlDivided: this.dlDivided,\n onRowClick: (): void => {},\n onToggle: (): void => {},\n });\n }\n\n return textListTemplate({\n family: this.family,\n contentItems: this.items,\n marker: this.marker,\n counter: this.counter,\n size: this.size,\n nested: false,\n uiItems: this.uiItems,\n divided: this.divided,\n bordered: this.bordered,\n inset: this.inset,\n interactive: this.interactive,\n dark: this.dark,\n dlItems: this.dlItems,\n dlLayout: this.dlLayout,\n dlDivided: this.dlDivided,\n onRowClick: (item): void => this._handleRowClick(item),\n onToggle: (item, v): void => this._handleToggle(item, v),\n });\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'lib-text-list': LibTextList;\n }\n}"],"names":[],"mappings":";;;;;;;;;;;;;;;AAiEO,IAAM,cAAN,cAA0B,WAAW;AAAA,EAArC,cAAA;AAAA,UAAA,GAAA,SAAA;AASL,SAAA,SAAqB;AAKrB,SAAA,QAAuB,CAAA;AAGvB,SAAA,SAAwB;AAGxB,SAAA,UAA0B;AAG1B,SAAA,OAAiB;AAKjB,SAAA,UAAoB,CAAA;AAGpB,SAAA,UAAU;AAGV,SAAA,WAAW;AAGX,SAAA,QAAQ;AAGR,SAAA,cAAc;AAKd,SAAA,UAAoB,CAAA;AAGpB,SAAA,WAAqB;AAGrB,SAAA,YAAY;AAKZ,SAAA,OAAO;AAGP,SAAA,UAAU;AAGV,SAAA,gBAAgB;AAAA,EAAA;AAAA;AAAA,EAIR,gBAAgB,MAAmB;AACzC,SAAK;AAAA,MACH,IAAI,YAAgC,oBAAoB;AAAA,QACtD,QAAQ,EAAE,KAAK,KAAK,KAAK,KAAA;AAAA,QACzB,SAAS;AAAA,QACT,UAAU;AAAA,MAAA,CACX;AAAA,IAAA;AAAA,EAEL;AAAA,EAEQ,cAAc,MAAa,OAAsB;AACvD,SAAK;AAAA,MACH,IAAI,YAA8B,iBAAiB;AAAA,QACjD,QAAQ,EAAE,KAAK,KAAK,KAAK,MAAA;AAAA,QACzB,SAAS;AAAA,QACT,UAAU;AAAA,MAAA,CACX;AAAA,IAAA;AAAA,EAEL;AAAA;AAAA,EAImB,SAAyB;AAE1C,QAAI,KAAK,YAAY,KAAK,WAAW,QAAQ,KAAK,WAAW,OAAO;AAClE,YAAM,YAA2B,MAAM;AAAA,QACrC,EAAE,QAAQ,KAAK,cAAA;AAAA,QACf,CAAC,GAAG,OAAoB,EAAE,OAAO,YAAY,CAAC,GAAA;AAAA,MAAG;AAGnD,aAAO,iBAAiB;AAAA,QACtB,QAAe,KAAK;AAAA,QACpB,cAAe;AAAA,QACf,QAAe;AAAA,QACf,SAAe,KAAK;AAAA,QACpB,MAAe,KAAK;AAAA,QAEpB,SAAe,CAAA;AAAA,QACf,SAAe,KAAK;AAAA,QACpB,UAAe,KAAK;AAAA,QACpB,OAAe,KAAK;AAAA,QACpB,aAAe,KAAK;AAAA,QACpB,MAAe,KAAK;AAAA,QACpB,SAAe,CAAA;AAAA,QACf,UAAe,KAAK;AAAA,QACpB,WAAe,KAAK;AAAA,QACpB,YAAe,MAAY;AAAA,QAAC;AAAA,QAC5B,UAAe,MAAY;AAAA,QAAC;AAAA,MAAA,CAC7B;AAAA,IACH;AAEA,WAAO,iBAAiB;AAAA,MACtB,QAAe,KAAK;AAAA,MACpB,cAAe,KAAK;AAAA,MACpB,QAAe,KAAK;AAAA,MACpB,SAAe,KAAK;AAAA,MACpB,MAAe,KAAK;AAAA,MAEpB,SAAe,KAAK;AAAA,MACpB,SAAe,KAAK;AAAA,MACpB,UAAe,KAAK;AAAA,MACpB,OAAe,KAAK;AAAA,MACpB,aAAe,KAAK;AAAA,MACpB,MAAe,KAAK;AAAA,MACpB,SAAe,KAAK;AAAA,MACpB,UAAe,KAAK;AAAA,MACpB,WAAe,KAAK;AAAA,MACpB,YAAe,CAAC,SAAe,KAAK,gBAAgB,IAAI;AAAA,MACxD,UAAe,CAAC,MAAM,MAAY,KAAK,cAAc,MAAM,CAAC;AAAA,IAAA,CAC7D;AAAA,EACH;AACF;AAzIa,YACK,SAAS;AAAA,EACvB,MAAM,UAAU,YAAY,CAAC;AAAA,EAC7B,MAAM,UAAU,WAAW,CAAC;AAC9B;AAKA,gBAAA;AAAA,EADC,SAAS,EAAE,MAAM,QAAQ,SAAS,MAAM;AAAA,GAR9B,YASX,WAAA,UAAA,CAAA;AAKA,gBAAA;AAAA,EADC,SAAS,EAAE,MAAM,MAAA,CAAO;AAAA,GAbd,YAcX,WAAA,SAAA,CAAA;AAGA,gBAAA;AAAA,EADC,SAAS,EAAE,MAAM,QAAQ,SAAS,MAAM;AAAA,GAhB9B,YAiBX,WAAA,UAAA,CAAA;AAGA,gBAAA;AAAA,EADC,SAAS,EAAE,MAAM,QAAQ,SAAS,MAAM;AAAA,GAnB9B,YAoBX,WAAA,WAAA,CAAA;AAGA,gBAAA;AAAA,EADC,SAAS,EAAE,MAAM,QAAQ,SAAS,MAAM;AAAA,GAtB9B,YAuBX,WAAA,QAAA,CAAA;AAKA,gBAAA;AAAA,EADC,SAAS,EAAE,MAAM,OAAO,WAAW,YAAY;AAAA,GA3BrC,YA4BX,WAAA,WAAA,CAAA;AAGA,gBAAA;AAAA,EADC,SAAS,EAAE,MAAM,SAAS,SAAS,MAAM;AAAA,GA9B/B,YA+BX,WAAA,WAAA,CAAA;AAGA,gBAAA;AAAA,EADC,SAAS,EAAE,MAAM,SAAS,SAAS,MAAM;AAAA,GAjC/B,YAkCX,WAAA,YAAA,CAAA;AAGA,gBAAA;AAAA,EADC,SAAS,EAAE,MAAM,SAAS,SAAS,MAAM;AAAA,GApC/B,YAqCX,WAAA,SAAA,CAAA;AAGA,gBAAA;AAAA,EADC,SAAS,EAAE,MAAM,SAAS,SAAS,MAAM;AAAA,GAvC/B,YAwCX,WAAA,eAAA,CAAA;AAKA,gBAAA;AAAA,EADC,SAAS,EAAE,MAAM,OAAO,WAAW,YAAY;AAAA,GA5CrC,YA6CX,WAAA,WAAA,CAAA;AAGA,gBAAA;AAAA,EADC,SAAS,EAAE,MAAM,QAAQ,SAAS,MAAM,WAAW,aAAa;AAAA,GA/CtD,YAgDX,WAAA,YAAA,CAAA;AAGA,gBAAA;AAAA,EADC,SAAS,EAAE,MAAM,SAAS,SAAS,MAAM,WAAW,cAAc;AAAA,GAlDxD,YAmDX,WAAA,aAAA,CAAA;AAKA,gBAAA;AAAA,EADC,SAAS,EAAE,MAAM,SAAS,SAAS,MAAM;AAAA,GAvD/B,YAwDX,WAAA,QAAA,CAAA;AAGA,gBAAA;AAAA,EADC,SAAS,EAAE,MAAM,SAAS,SAAS,MAAM;AAAA,GA1D/B,YA2DX,WAAA,WAAA,CAAA;AAGA,gBAAA;AAAA,EADC,SAAS,EAAE,MAAM,QAAQ,WAAW,kBAAkB;AAAA,GA7D5C,YA8DX,WAAA,iBAAA,CAAA;AA9DW,cAAN,gBAAA;AAAA,EADN,cAAc,eAAe;AAAA,GACjB,WAAA;"}
|
package/dist/index47.js
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import { unsafeCSS, css, LitElement } from "lit";
|
|
2
2
|
import { property, customElement } from "lit/decorators.js";
|
|
3
|
+
import { generateUniqueId } from "./index210.js";
|
|
3
4
|
import sharedTokens from "./index196.js";
|
|
4
|
-
import
|
|
5
|
-
import {
|
|
5
|
+
import tooltipCss from "./index348.js";
|
|
6
|
+
import { tooltipTemplate } from "./index349.js";
|
|
6
7
|
var __defProp = Object.defineProperty;
|
|
7
8
|
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
8
9
|
var __decorateClass = (decorators, target, key, kind) => {
|
|
@@ -13,34 +14,55 @@ var __decorateClass = (decorators, target, key, kind) => {
|
|
|
13
14
|
if (kind && result) __defProp(target, key, result);
|
|
14
15
|
return result;
|
|
15
16
|
};
|
|
16
|
-
let
|
|
17
|
+
let LibTooltip = class extends LitElement {
|
|
17
18
|
constructor() {
|
|
18
|
-
super(
|
|
19
|
-
this.
|
|
20
|
-
this.
|
|
21
|
-
this.
|
|
19
|
+
super();
|
|
20
|
+
this.position = "top";
|
|
21
|
+
this.variant = "dark";
|
|
22
|
+
this.size = "md";
|
|
23
|
+
this.content = "";
|
|
24
|
+
this.instant = false;
|
|
25
|
+
this.open = false;
|
|
26
|
+
this._tipId = generateUniqueId("tip-");
|
|
22
27
|
}
|
|
23
28
|
render() {
|
|
24
|
-
return
|
|
29
|
+
return tooltipTemplate({
|
|
30
|
+
position: this.position,
|
|
31
|
+
variant: this.variant,
|
|
32
|
+
size: this.size,
|
|
33
|
+
content: this.content,
|
|
34
|
+
instant: this.instant,
|
|
35
|
+
open: this.open,
|
|
36
|
+
tipId: this._tipId
|
|
37
|
+
});
|
|
25
38
|
}
|
|
26
39
|
};
|
|
27
|
-
|
|
40
|
+
LibTooltip.styles = [
|
|
28
41
|
css`${unsafeCSS(sharedTokens)}`,
|
|
29
|
-
css`${unsafeCSS(
|
|
42
|
+
css`${unsafeCSS(tooltipCss)}`
|
|
30
43
|
];
|
|
44
|
+
__decorateClass([
|
|
45
|
+
property({ type: String, reflect: true })
|
|
46
|
+
], LibTooltip.prototype, "position", 2);
|
|
47
|
+
__decorateClass([
|
|
48
|
+
property({ type: String, reflect: true })
|
|
49
|
+
], LibTooltip.prototype, "variant", 2);
|
|
50
|
+
__decorateClass([
|
|
51
|
+
property({ type: String, reflect: true })
|
|
52
|
+
], LibTooltip.prototype, "size", 2);
|
|
31
53
|
__decorateClass([
|
|
32
54
|
property({ type: String })
|
|
33
|
-
],
|
|
55
|
+
], LibTooltip.prototype, "content", 2);
|
|
34
56
|
__decorateClass([
|
|
35
|
-
property({ type:
|
|
36
|
-
],
|
|
57
|
+
property({ type: Boolean, reflect: true })
|
|
58
|
+
], LibTooltip.prototype, "instant", 2);
|
|
37
59
|
__decorateClass([
|
|
38
|
-
property({ type: Boolean,
|
|
39
|
-
],
|
|
40
|
-
|
|
41
|
-
customElement("lib-
|
|
42
|
-
],
|
|
60
|
+
property({ type: Boolean, reflect: true })
|
|
61
|
+
], LibTooltip.prototype, "open", 2);
|
|
62
|
+
LibTooltip = __decorateClass([
|
|
63
|
+
customElement("lib-tooltip")
|
|
64
|
+
], LibTooltip);
|
|
43
65
|
export {
|
|
44
|
-
|
|
66
|
+
LibTooltip
|
|
45
67
|
};
|
|
46
68
|
//# sourceMappingURL=index47.js.map
|
package/dist/index47.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index47.js","sources":["../src/components/atoms/
|
|
1
|
+
{"version":3,"file":"index47.js","sources":["../src/components/atoms/tooltip/lib-tooltip.component.ts"],"sourcesContent":["import { LitElement, css, unsafeCSS, TemplateResult } from 'lit';\nimport { customElement, property } from 'lit/decorators.js';\nimport { generateUniqueId } from '../../../core/a11y';\nimport sharedTokens from '../../../styles/shared/tokens.css?inline';\nimport tooltipCss from './lib-tooltip.css?inline';\nimport { tooltipTemplate } from './lib-tooltip.html';\n\n/* ── Tipos públicos ─────────────────────────────────────────── */\n\n/**\n * Posición de la burbuja respecto al trigger.\n * Las cuatro cardinales centran la burbuja.\n * Las variantes -start/-end alinean al extremo — útiles\n * cuando el trigger está junto al borde de pantalla.\n */\nexport type TooltipPosition =\n | 'top' | 'bottom' | 'left' | 'right'\n | 'top-start' | 'top-end'\n | 'bottom-start' | 'bottom-end';\n\n/**\n * Variante de color.\n * - `dark` — washi-900, máximo contraste (default).\n * - `light` — fondo blanco con borde, para superficies oscuras\n * o cuando el contenido necesita estructura visible.\n * - `kaki` — acento naranja terracota.\n * - `celadon` — estado positivo / informativo.\n * - `error` — validación fallida o acción destructiva.\n */\nexport type TooltipVariant = 'dark' | 'light' | 'kaki' | 'celadon' | 'error';\n\n/** Tamaño de la burbuja. */\nexport type TooltipSize = 'sm' | 'md' | 'lg';\n\n/**\n * @element lib-tooltip\n *\n * Wrapper que envuelve cualquier trigger y muestra una burbuja\n * flotante en hover / focus. Sin JS para el caso base —\n * todo mediante CSS :hover + :focus-within.\n *\n * ## Uso simple\n * ```html\n * <lib-tooltip content=\"Guardar cambios\">\n * <button>...</button>\n * </lib-tooltip>\n * ```\n *\n * ## Contenido rico (slot=\"content\")\n * ```html\n * <lib-tooltip position=\"top\" variant=\"light\" size=\"lg\">\n * <button>...</button>\n * <span slot=\"content\">\n * <span class=\"tip-title\">Tokens de color</span>\n * <span class=\"tip-body\">Paleta completa en CSS variables.</span>\n * <div class=\"tip-sep\"></div>\n * <div class=\"tip-kbd\"><kbd>⌘</kbd><kbd>K</kbd></div>\n * </span>\n * </lib-tooltip>\n * ```\n *\n * @prop {TooltipPosition} position - Posición de la burbuja (default: top).\n * @prop {TooltipVariant} variant - Variante de color (default: dark).\n * @prop {TooltipSize} size - Tamaño sm | md | lg (default: md).\n * @prop {string} content - Texto simple. Para contenido rico usa slot=\"content\".\n * @prop {boolean} instant - Elimina el delay de entrada de 300ms.\n * @prop {boolean} open - Abre la burbuja programáticamente.\n *\n * @slot - El trigger (cualquier elemento interactivo).\n * @slot content - Contenido rico de la burbuja (tip-title, tip-body, tip-kbd, tip-sep).\n *\n * @csspart wrapper - El div posicionador interno.\n * @csspart bubble - El span de la burbuja flotante.\n */\n@customElement('lib-tooltip')\nexport class LibTooltip extends LitElement {\n static override styles = [\n css`${unsafeCSS(sharedTokens)}`,\n css`${unsafeCSS(tooltipCss)}`,\n ];\n\n private _tipId: string;\n\n constructor() {\n super();\n this._tipId = generateUniqueId('tip-');\n }\n\n @property({ type: String, reflect: true })\n position: TooltipPosition = 'top';\n\n @property({ type: String, reflect: true })\n variant: TooltipVariant = 'dark';\n\n @property({ type: String, reflect: true })\n size: TooltipSize = 'md';\n\n @property({ type: String })\n content: string = '';\n\n @property({ type: Boolean, reflect: true })\n instant: boolean = false;\n\n /** Abre la burbuja programáticamente (equivale a `.is-open`). */\n @property({ type: Boolean, reflect: true })\n open: boolean = false;\n\n override render(): TemplateResult {\n return tooltipTemplate({\n position: this.position,\n variant: this.variant,\n size: this.size,\n content: this.content,\n instant: this.instant,\n open: this.open,\n tipId: this._tipId,\n });\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'lib-tooltip': LibTooltip;\n }\n}"],"names":[],"mappings":";;;;;;;;;;;;;;;;AA2EO,IAAM,aAAN,cAAyB,WAAW;AAAA,EAQzC,cAAc;AACZ,UAAA;AAKF,SAAA,WAA4B;AAG5B,SAAA,UAA0B;AAG1B,SAAA,OAAoB;AAGpB,SAAA,UAAkB;AAGlB,SAAA,UAAmB;AAInB,SAAA,OAAgB;AApBd,SAAK,SAAS,iBAAiB,MAAM;AAAA,EACvC;AAAA,EAqBS,SAAyB;AAChC,WAAO,gBAAgB;AAAA,MACrB,UAAU,KAAK;AAAA,MACf,SAAU,KAAK;AAAA,MACf,MAAU,KAAK;AAAA,MACf,SAAU,KAAK;AAAA,MACf,SAAU,KAAK;AAAA,MACf,MAAU,KAAK;AAAA,MACf,OAAU,KAAK;AAAA,IAAA,CAChB;AAAA,EACH;AACF;AA3Ca,WACK,SAAS;AAAA,EACvB,MAAM,UAAU,YAAY,CAAC;AAAA,EAC7B,MAAM,UAAU,UAAU,CAAC;AAC7B;AAUA,gBAAA;AAAA,EADC,SAAS,EAAE,MAAM,QAAQ,SAAS,MAAM;AAAA,GAb9B,WAcX,WAAA,YAAA,CAAA;AAGA,gBAAA;AAAA,EADC,SAAS,EAAE,MAAM,QAAQ,SAAS,MAAM;AAAA,GAhB9B,WAiBX,WAAA,WAAA,CAAA;AAGA,gBAAA;AAAA,EADC,SAAS,EAAE,MAAM,QAAQ,SAAS,MAAM;AAAA,GAnB9B,WAoBX,WAAA,QAAA,CAAA;AAGA,gBAAA;AAAA,EADC,SAAS,EAAE,MAAM,OAAA,CAAQ;AAAA,GAtBf,WAuBX,WAAA,WAAA,CAAA;AAGA,gBAAA;AAAA,EADC,SAAS,EAAE,MAAM,SAAS,SAAS,MAAM;AAAA,GAzB/B,WA0BX,WAAA,WAAA,CAAA;AAIA,gBAAA;AAAA,EADC,SAAS,EAAE,MAAM,SAAS,SAAS,MAAM;AAAA,GA7B/B,WA8BX,WAAA,QAAA,CAAA;AA9BW,aAAN,gBAAA;AAAA,EADN,cAAc,aAAa;AAAA,GACf,UAAA;"}
|