@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/index62.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 { rangeSliderTemplate } from "./index223.js";
|
|
4
|
+
import sliderCss from "./index224.js";
|
|
3
5
|
import sharedTokens from "./index196.js";
|
|
4
|
-
import modalCss from "./index309.js";
|
|
5
|
-
import { modalTemplate } from "./index310.js";
|
|
6
6
|
var __defProp = Object.defineProperty;
|
|
7
7
|
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
8
8
|
var __decorateClass = (decorators, target, key, kind) => {
|
|
@@ -13,135 +13,155 @@ 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 LibRangeSlider = class extends LitElement {
|
|
17
17
|
constructor() {
|
|
18
18
|
super(...arguments);
|
|
19
|
-
this.
|
|
19
|
+
this.min = 0;
|
|
20
|
+
this.max = 100;
|
|
21
|
+
this.step = 1;
|
|
22
|
+
this.value = 50;
|
|
23
|
+
this.valueMin = 25;
|
|
24
|
+
this.valueMax = 75;
|
|
25
|
+
this.dual = false;
|
|
26
|
+
this.vertical = false;
|
|
20
27
|
this.size = "md";
|
|
21
|
-
this.
|
|
22
|
-
this.
|
|
23
|
-
this.
|
|
24
|
-
this.
|
|
25
|
-
this.
|
|
26
|
-
this.
|
|
27
|
-
this.
|
|
28
|
-
this.
|
|
29
|
-
this.
|
|
30
|
-
this._onKeydown = (e) => {
|
|
31
|
-
if (e.key === "Escape" && this.open) {
|
|
32
|
-
e.stopPropagation();
|
|
33
|
-
this._close("escape");
|
|
34
|
-
}
|
|
35
|
-
};
|
|
28
|
+
this.tone = "default";
|
|
29
|
+
this.disabled = false;
|
|
30
|
+
this.label = "";
|
|
31
|
+
this.unit = "";
|
|
32
|
+
this.showLimits = false;
|
|
33
|
+
this.limitMin = "";
|
|
34
|
+
this.limitMax = "";
|
|
35
|
+
this.tooltip = false;
|
|
36
|
+
this.marks = "";
|
|
36
37
|
}
|
|
37
|
-
/* ──
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
38
|
+
/* ── Computed ────────────────────────────────────────── */
|
|
39
|
+
_pct(v) {
|
|
40
|
+
const clamped = Math.min(Math.max(v, this.min), this.max);
|
|
41
|
+
return (clamped - this.min) / (this.max - this.min) * 100;
|
|
41
42
|
}
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
if (!changed.has("open")) return;
|
|
49
|
-
if (this.open) {
|
|
50
|
-
this._prevFocus = document.activeElement;
|
|
51
|
-
document.body.style.overflow = "hidden";
|
|
52
|
-
requestAnimationFrame(() => this._focusFirst());
|
|
53
|
-
} else {
|
|
54
|
-
document.body.style.overflow = "";
|
|
55
|
-
if (this._prevFocus instanceof HTMLElement) {
|
|
56
|
-
this._prevFocus.focus();
|
|
57
|
-
}
|
|
58
|
-
this._prevFocus = null;
|
|
43
|
+
get _parsedMarks() {
|
|
44
|
+
if (!this.marks) return [];
|
|
45
|
+
try {
|
|
46
|
+
return JSON.parse(this.marks);
|
|
47
|
+
} catch {
|
|
48
|
+
return [];
|
|
59
49
|
}
|
|
60
50
|
}
|
|
61
|
-
/* ──
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
this.
|
|
51
|
+
/* ── Handlers ────────────────────────────────────────── */
|
|
52
|
+
_onInput(e) {
|
|
53
|
+
this.value = parseFloat(e.target.value);
|
|
54
|
+
this._dispatchChange();
|
|
65
55
|
}
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
this.
|
|
69
|
-
this.
|
|
70
|
-
new CustomEvent("ui-lib-modal-close", {
|
|
71
|
-
detail: { reason },
|
|
72
|
-
bubbles: true,
|
|
73
|
-
composed: true
|
|
74
|
-
})
|
|
75
|
-
);
|
|
56
|
+
_onInputMin(e) {
|
|
57
|
+
const v = parseFloat(e.target.value);
|
|
58
|
+
this.valueMin = Math.min(v, this.valueMax - this.step);
|
|
59
|
+
this._dispatchChange();
|
|
76
60
|
}
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
61
|
+
_onInputMax(e) {
|
|
62
|
+
const v = parseFloat(e.target.value);
|
|
63
|
+
this.valueMax = Math.max(v, this.valueMin + this.step);
|
|
64
|
+
this._dispatchChange();
|
|
81
65
|
}
|
|
82
|
-
|
|
83
|
-
const
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
66
|
+
_dispatchChange() {
|
|
67
|
+
const detail = this.dual ? { valueMin: this.valueMin, valueMax: this.valueMax } : { value: this.value };
|
|
68
|
+
this.dispatchEvent(new CustomEvent("ui-lib-change", {
|
|
69
|
+
detail,
|
|
70
|
+
bubbles: true,
|
|
71
|
+
composed: true
|
|
72
|
+
}));
|
|
89
73
|
}
|
|
90
|
-
/* ── Render ─────────────────────────────────────────────── */
|
|
91
74
|
render() {
|
|
92
|
-
return
|
|
93
|
-
open: this.open,
|
|
75
|
+
return rangeSliderTemplate({
|
|
94
76
|
size: this.size,
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
77
|
+
tone: this.tone,
|
|
78
|
+
dual: this.dual,
|
|
79
|
+
vertical: this.vertical,
|
|
80
|
+
disabled: this.disabled,
|
|
81
|
+
tooltip: this.tooltip,
|
|
82
|
+
min: this.min,
|
|
83
|
+
max: this.max,
|
|
84
|
+
step: this.step,
|
|
85
|
+
value: this.value,
|
|
86
|
+
valueMin: this.valueMin,
|
|
87
|
+
valueMax: this.valueMax,
|
|
88
|
+
pct: this._pct(this.value),
|
|
89
|
+
minPct: this._pct(this.valueMin),
|
|
90
|
+
maxPct: this._pct(this.valueMax),
|
|
91
|
+
label: this.label,
|
|
92
|
+
unit: this.unit,
|
|
93
|
+
showLimits: this.showLimits,
|
|
94
|
+
limitMinText: this.limitMin || String(this.min),
|
|
95
|
+
limitMaxText: this.limitMax || String(this.max),
|
|
96
|
+
marks: this._parsedMarks,
|
|
97
|
+
onInput: this._onInput.bind(this),
|
|
98
|
+
onInputMin: this._onInputMin.bind(this),
|
|
99
|
+
onInputMax: this._onInputMax.bind(this)
|
|
104
100
|
});
|
|
105
101
|
}
|
|
106
102
|
};
|
|
107
|
-
|
|
103
|
+
LibRangeSlider.styles = [
|
|
108
104
|
css`${unsafeCSS(sharedTokens)}`,
|
|
109
|
-
css`${unsafeCSS(
|
|
105
|
+
css`${unsafeCSS(sliderCss)}`
|
|
110
106
|
];
|
|
107
|
+
__decorateClass([
|
|
108
|
+
property({ type: Number })
|
|
109
|
+
], LibRangeSlider.prototype, "min", 2);
|
|
110
|
+
__decorateClass([
|
|
111
|
+
property({ type: Number })
|
|
112
|
+
], LibRangeSlider.prototype, "max", 2);
|
|
113
|
+
__decorateClass([
|
|
114
|
+
property({ type: Number })
|
|
115
|
+
], LibRangeSlider.prototype, "step", 2);
|
|
116
|
+
__decorateClass([
|
|
117
|
+
property({ type: Number })
|
|
118
|
+
], LibRangeSlider.prototype, "value", 2);
|
|
119
|
+
__decorateClass([
|
|
120
|
+
property({ type: Number, attribute: "value-min" })
|
|
121
|
+
], LibRangeSlider.prototype, "valueMin", 2);
|
|
122
|
+
__decorateClass([
|
|
123
|
+
property({ type: Number, attribute: "value-max" })
|
|
124
|
+
], LibRangeSlider.prototype, "valueMax", 2);
|
|
111
125
|
__decorateClass([
|
|
112
126
|
property({ type: Boolean, reflect: true })
|
|
113
|
-
],
|
|
127
|
+
], LibRangeSlider.prototype, "dual", 2);
|
|
114
128
|
__decorateClass([
|
|
115
|
-
property({ type:
|
|
116
|
-
],
|
|
129
|
+
property({ type: Boolean, reflect: true })
|
|
130
|
+
], LibRangeSlider.prototype, "vertical", 2);
|
|
117
131
|
__decorateClass([
|
|
118
132
|
property({ type: String, reflect: true })
|
|
119
|
-
],
|
|
133
|
+
], LibRangeSlider.prototype, "size", 2);
|
|
120
134
|
__decorateClass([
|
|
121
135
|
property({ type: String, reflect: true })
|
|
122
|
-
],
|
|
136
|
+
], LibRangeSlider.prototype, "tone", 2);
|
|
123
137
|
__decorateClass([
|
|
124
138
|
property({ type: Boolean, reflect: true })
|
|
125
|
-
],
|
|
139
|
+
], LibRangeSlider.prototype, "disabled", 2);
|
|
126
140
|
__decorateClass([
|
|
127
141
|
property({ type: String })
|
|
128
|
-
],
|
|
142
|
+
], LibRangeSlider.prototype, "label", 2);
|
|
129
143
|
__decorateClass([
|
|
130
144
|
property({ type: String })
|
|
131
|
-
],
|
|
145
|
+
], LibRangeSlider.prototype, "unit", 2);
|
|
132
146
|
__decorateClass([
|
|
133
|
-
property({ type:
|
|
134
|
-
],
|
|
147
|
+
property({ type: Boolean, attribute: "show-limits" })
|
|
148
|
+
], LibRangeSlider.prototype, "showLimits", 2);
|
|
135
149
|
__decorateClass([
|
|
136
|
-
property({ type: String, attribute: "
|
|
137
|
-
],
|
|
150
|
+
property({ type: String, attribute: "limit-min" })
|
|
151
|
+
], LibRangeSlider.prototype, "limitMin", 2);
|
|
138
152
|
__decorateClass([
|
|
139
|
-
property({ type:
|
|
140
|
-
],
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
],
|
|
153
|
+
property({ type: String, attribute: "limit-max" })
|
|
154
|
+
], LibRangeSlider.prototype, "limitMax", 2);
|
|
155
|
+
__decorateClass([
|
|
156
|
+
property({ type: Boolean })
|
|
157
|
+
], LibRangeSlider.prototype, "tooltip", 2);
|
|
158
|
+
__decorateClass([
|
|
159
|
+
property({ type: String })
|
|
160
|
+
], LibRangeSlider.prototype, "marks", 2);
|
|
161
|
+
LibRangeSlider = __decorateClass([
|
|
162
|
+
customElement("lib-range-slider")
|
|
163
|
+
], LibRangeSlider);
|
|
144
164
|
export {
|
|
145
|
-
|
|
165
|
+
LibRangeSlider
|
|
146
166
|
};
|
|
147
167
|
//# sourceMappingURL=index62.js.map
|
package/dist/index62.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index62.js","sources":["../src/components/molecules/modal/lib-modal.component.ts"],"sourcesContent":["import { LitElement, css, unsafeCSS, TemplateResult } from 'lit';\nimport { customElement, property } from 'lit/decorators.js';\nimport sharedTokens from '../../../styles/shared/tokens.css?inline';\nimport modalCss from './lib-modal.css?inline';\nimport { modalTemplate } from './lib-modal.html';\nimport { ModalAnimate, ModalCloseEventDetail, ModalIconTone, ModalSize, ModalVariant } from './lib-modal.types';\n\n\n/**\n * @element lib-modal\n *\n * Diálogo bloqueante con backdrop difuminado. Seis tamaños, tres variantes\n * de panel, tres animaciones de entrada y soporte de surface oscura.\n *\n * ## Uso básico\n * ```html\n * <lib-modal heading=\"Editar componente\" open>\n * <p>Contenido del cuerpo.</p>\n * <div slot=\"footer\">\n * <button class=\"mo-btn mo-btn-ghost\">Cancelar</button>\n * <button class=\"mo-btn mo-btn-primary\">Guardar</button>\n * </div>\n * </lib-modal>\n * ```\n *\n * ## Con ícono y subtítulo\n * ```html\n * <lib-modal heading=\"Nuevo componente\" subtitle=\"Shibui DS · añadir\" icon-tone=\"kaki\">\n * <ph-plus slot=\"icon\" weight=\"bold\"></ph-plus>\n * ...\n * </lib-modal>\n * ```\n *\n * ## Control de apertura\n * ```ts\n * modal.open = true;\n * modal.addEventListener('ui-lib-modal-close', e => {\n * console.log(e.detail.reason); // 'button' | 'backdrop' | 'escape'\n * modal.open = false;\n * });\n * ```\n *\n * @prop {boolean} open — Abre el modal. Reflected.\n * @prop {ModalSize} size — xs · sm · md · lg · xl · full (default md).\n * @prop {ModalVariant} variant — default · editorial · danger.\n * @prop {ModalAnimate} _animate — scale · slide-up · slide-down.\n * @prop {boolean} dark — Surface oscura.\n * @prop {string} heading — Título del modal (requerido para a11y).\n * @prop {string} subtitle — Subtítulo mono debajo del título.\n * @prop {ModalIconTone|null} icon-tone — Tono del ícono. Si es null no se renderiza el wrapper.\n * @prop {string} footer-info — Texto secundario izquierda en el footer.\n * @prop {boolean} no-backdrop-close — Desactiva el cierre al hacer click en el backdrop.\n *\n * @slot — Cuerpo del modal (secciones, formularios, contenido libre).\n * @slot icon — Contenido del ícono del header (visible solo si icon-tone no es null).\n * @slot footer — Acciones del footer (botones).\n *\n * @csspart backdrop — Capa de fondo difuminada.\n * @csspart panel-wrap — Contenedor animado (tamaño + animación).\n * @csspart panel — El panel blanco real.\n * @csspart header — Zona del header.\n * @csspart icon — Wrapper del ícono.\n * @csspart close-btn — Botón ×.\n * @csspart body — Zona scrollable del cuerpo.\n * @csspart footer — Zona del footer.\n *\n * @fires ui-lib-modal-close — Emitido cuando el modal se cierra. Detail: { reason }.\n */\n@customElement('lib-modal')\nexport class LibModal extends LitElement {\n static override styles = [\n css`${unsafeCSS(sharedTokens)}`,\n css`${unsafeCSS(modalCss)}`,\n ];\n\n /* ── Props ─────────────────────────────────────────────── */\n\n @property({ type: Boolean, reflect: true })\n open: boolean = false;\n\n @property({ type: String, reflect: true })\n size: ModalSize = 'md';\n\n @property({ type: String, reflect: true })\n variant: ModalVariant = 'default';\n\n @property({ type: String, reflect: true })\n _animate: ModalAnimate = 'scale';\n\n @property({ type: Boolean, reflect: true })\n dark: boolean = false;\n\n /** Título del modal — requerido para accesibilidad (aria-labelledby). */\n @property({ type: String })\n heading: string = '';\n\n @property({ type: String })\n subtitle: string = '';\n\n /**\n * Tono del ícono del header.\n * Acepta: 'default' | 'kaki' | 'celadon' | 'error' | 'info' | null.\n * Cuando es null no se renderiza el wrapper del ícono.\n */\n @property({ type: String, attribute: 'icon-tone' })\n iconTone: ModalIconTone | null = null;\n\n @property({ type: String, attribute: 'footer-info' })\n footerInfo: string = '';\n\n /** Desactiva el cierre al hacer click fuera del panel. */\n @property({ type: Boolean, attribute: 'no-backdrop-close' })\n noBackdropClose: boolean = false;\n\n /* ── Estado interno ─────────────────────────────────────── */\n\n /** Elemento con foco antes de abrir — se restaura al cerrar. */\n private _prevFocus: Element | null = null;\n\n /** Handler de Escape vinculado para poder desregistrarlo. */\n private readonly _onKeydown = (e: KeyboardEvent): void => {\n if (e.key === 'Escape' && this.open) {\n e.stopPropagation();\n this._close('escape');\n }\n };\n\n /* ── Lifecycle ──────────────────────────────────────────── */\n\n override connectedCallback(): void {\n super.connectedCallback();\n document.addEventListener('keydown', this._onKeydown, true);\n }\n\n override disconnectedCallback(): void {\n super.disconnectedCallback();\n document.removeEventListener('keydown', this._onKeydown, true);\n // Restaurar scroll si el componente se desmonta mientras está abierto\n if (this.open) document.body.style.overflow = '';\n }\n\n override updated(changed: Map<string, unknown>): void {\n if (!changed.has('open')) return;\n\n if (this.open) {\n this._prevFocus = document.activeElement;\n document.body.style.overflow = 'hidden';\n // Foco al primer elemento interactivo tras el render\n requestAnimationFrame(() => this._focusFirst());\n } else {\n document.body.style.overflow = '';\n // Restaurar foco al trigger original\n if (this._prevFocus instanceof HTMLElement) {\n this._prevFocus.focus();\n }\n this._prevFocus = null;\n }\n }\n\n /* ── API pública ────────────────────────────────────────── */\n\n /** Cierra el modal programáticamente. */\n close(): void {\n this._close('button');\n }\n\n /* ── Helpers privados ───────────────────────────────────── */\n\n private _close(reason: ModalCloseEventDetail['reason']): void {\n this.open = false;\n this.dispatchEvent(\n new CustomEvent<ModalCloseEventDetail>('ui-lib-modal-close', {\n detail: { reason },\n bubbles: true,\n composed: true,\n }),\n );\n }\n\n private _onBackdropClick(e: MouseEvent): void {\n // Solo cierra si el click es directamente sobre el backdrop\n if (!this.noBackdropClose && e.target === e.currentTarget) {\n this._close('backdrop');\n }\n }\n\n private _focusFirst(): void {\n const panel = this.renderRoot.querySelector('.mo-panel');\n if (!panel) return;\n const focusable = panel.querySelector<HTMLElement>(\n 'button:not([disabled]), input:not([disabled]), select:not([disabled]), textarea:not([disabled]), [tabindex]:not([tabindex=\"-1\"])',\n );\n focusable?.focus();\n }\n\n /* ── Render ─────────────────────────────────────────────── */\n\n override render(): TemplateResult {\n return modalTemplate({\n open: this.open,\n size: this.size,\n variant: this.variant,\n _animate: this._animate,\n dark: this.dark,\n heading: this.heading,\n subtitle: this.subtitle,\n iconTone: this.iconTone,\n footerInfo: this.footerInfo,\n onClose: () => this._close('button'),\n onBackdropClick: (e) => this._onBackdropClick(e),\n });\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'lib-modal': LibModal;\n }\n}\n\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index62.js","sources":["../src/components/molecules/range-slider/lib-range-slider.component.ts"],"sourcesContent":["import { LitElement, css, unsafeCSS, TemplateResult } from 'lit';\nimport { customElement, property } from 'lit/decorators.js';\nimport { rangeSliderTemplate } from './lib-range-slider.html';\nimport sliderCss from './lib-range-slider.css?inline';\nimport sharedTokens from '../../../styles/shared/tokens.css?inline';\n\nexport type RsSize = 'sm' | 'md' | 'lg';\nexport type RsTone = 'default' | 'kaki' | 'celadon' | 'error' | 'washi' | 'dark';\n\nexport interface RsMark {\n /** Posición 0–100 sobre el track */\n pct: number;\n /** Etiqueta opcional bajo la marca */\n label?: string;\n}\n\n/**\n * @element lib-range-slider\n *\n * Control de selección de valor numérico — single, dual y vertical.\n *\n * @prop value — valor actual (modo single)\n * @prop value-min — valor inferior (modo dual)\n * @prop value-max — valor superior (modo dual)\n * @prop dual — activa dos thumbs para rango min/max\n * @prop vertical — orientación vertical\n * @prop tooltip — globito flotante sobre el thumb (solo single horizontal)\n * @prop marks — JSON string de marcas: '[{\"pct\":0,\"label\":\"XS\"},...]'\n * @prop show-limits — muestra min/max labels bajo el track\n * @prop limit-min / limit-max — texto personalizado de los extremos\n *\n * @fires ui-lib-change — { value } (single) | { valueMin, valueMax } (dual)\n *\n * @example single\n * <lib-range-slider label=\"Volumen\" value=\"48\" unit=\"%\" show-limits></lib-range-slider>\n *\n * @example dual\n * <lib-range-slider dual label=\"Precio\" value-min=\"120\" value-max=\"480\"\n * unit=\"€\" show-limits limit-min=\"0 €\" limit-max=\"500 €\" tone=\"kaki\">\n * </lib-range-slider>\n *\n * @example vertical\n * <lib-range-slider vertical tone=\"kaki\" value=\"80\" label=\"Bajo\"\n * style=\"height:220px\"></lib-range-slider>\n */\n@customElement('lib-range-slider')\nexport class LibRangeSlider extends LitElement {\n static override styles = [\n css`${unsafeCSS(sharedTokens)}`,\n css`${unsafeCSS(sliderCss)}`,\n ];\n\n /* ── Range attrs ─────────────────────────────────────── */\n @property({ type: Number })\n min = 0;\n\n @property({ type: Number })\n max = 100;\n\n @property({ type: Number })\n step = 1;\n\n /* ── Values ──────────────────────────────────────────── */\n /** Valor actual — modo single. */\n @property({ type: Number })\n value = 50;\n\n /** Límite inferior — modo dual. */\n @property({ type: Number, attribute: 'value-min' })\n valueMin = 25;\n\n /** Límite superior — modo dual. */\n @property({ type: Number, attribute: 'value-max' })\n valueMax = 75;\n\n /* ── Modes ───────────────────────────────────────────── */\n @property({ type: Boolean, reflect: true })\n dual = false;\n\n @property({ type: Boolean, reflect: true })\n vertical = false;\n\n /* ── Appearance ──────────────────────────────────────── */\n @property({ type: String, reflect: true })\n size: RsSize = 'md';\n\n @property({ type: String, reflect: true })\n tone: RsTone = 'default';\n\n @property({ type: Boolean, reflect: true })\n disabled = false;\n\n /* ── Display ─────────────────────────────────────────── */\n @property({ type: String })\n label = '';\n\n @property({ type: String })\n unit = '';\n\n @property({ type: Boolean, attribute: 'show-limits' })\n showLimits = false;\n\n /** Texto personalizado extremo izquierdo/abajo. Por defecto: `min`. */\n @property({ type: String, attribute: 'limit-min' })\n limitMin = '';\n\n /** Texto personalizado extremo derecho/arriba. Por defecto: `max`. */\n @property({ type: String, attribute: 'limit-max' })\n limitMax = '';\n\n /* ── Extras ──────────────────────────────────────────── */\n /** Globito flotante sobre el thumb (solo modo single horizontal). */\n @property({ type: Boolean })\n tooltip = false;\n\n /**\n * Marcas de paso como JSON string.\n * Formato: '[{\"pct\":0,\"label\":\"XS\"},{\"pct\":25,\"label\":\"S\"},...]'\n * `pct` = posición 0–100 sobre el track. `label` es opcional.\n */\n @property({ type: String })\n marks = '';\n\n /* ── Computed ────────────────────────────────────────── */\n private _pct(v: number): number {\n const clamped = Math.min(Math.max(v, this.min), this.max);\n return ((clamped - this.min) / (this.max - this.min)) * 100;\n }\n\n private get _parsedMarks(): RsMark[] {\n if (!this.marks) return [];\n try { return JSON.parse(this.marks) as RsMark[]; }\n catch { return []; }\n }\n\n /* ── Handlers ────────────────────────────────────────── */\n private _onInput(e: Event): void {\n this.value = parseFloat((e.target as HTMLInputElement).value);\n this._dispatchChange();\n }\n\n private _onInputMin(e: Event): void {\n const v = parseFloat((e.target as HTMLInputElement).value);\n this.valueMin = Math.min(v, this.valueMax - this.step);\n this._dispatchChange();\n }\n\n private _onInputMax(e: Event): void {\n const v = parseFloat((e.target as HTMLInputElement).value);\n this.valueMax = Math.max(v, this.valueMin + this.step);\n this._dispatchChange();\n }\n\n private _dispatchChange(): void {\n const detail = this.dual\n ? { valueMin: this.valueMin, valueMax: this.valueMax }\n : { value: this.value };\n\n this.dispatchEvent(new CustomEvent('ui-lib-change', {\n detail,\n bubbles: true,\n composed: true,\n }));\n }\n\n override render(): TemplateResult {\n return rangeSliderTemplate({\n size: this.size,\n tone: this.tone,\n dual: this.dual,\n vertical: this.vertical,\n disabled: this.disabled,\n tooltip: this.tooltip,\n min: this.min,\n max: this.max,\n step: this.step,\n value: this.value,\n valueMin: this.valueMin,\n valueMax: this.valueMax,\n pct: this._pct(this.value),\n minPct: this._pct(this.valueMin),\n maxPct: this._pct(this.valueMax),\n label: this.label,\n unit: this.unit,\n showLimits: this.showLimits,\n limitMinText: this.limitMin || String(this.min),\n limitMaxText: this.limitMax || String(this.max),\n marks: this._parsedMarks,\n onInput: this._onInput.bind(this),\n onInputMin: this._onInputMin.bind(this),\n onInputMax: this._onInputMax.bind(this),\n });\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'lib-range-slider': LibRangeSlider;\n }\n}"],"names":[],"mappings":"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"}
|