@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/index216.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index216.js","sources":["../src/components/
|
|
1
|
+
{"version":3,"file":"index216.js","sources":["../src/components/molecules/input/lib-input.html.ts"],"sourcesContent":["import { html, nothing, TemplateResult } from 'lit';\n\nexport interface InputTemplateProps {\n uuid: string;\n type: 'text' | 'email' | 'password';\n label: string;\n placeholder: string;\n required: boolean;\n disabled: boolean;\n error: boolean;\n errorMessage: string;\n value: string;\n showPassword: boolean;\n handleInput: (e: InputEvent) => void;\n handleTogglePassword: () => void;\n}\n\n/**\n * Plantilla base para el componente lib-input.\n * Renderiza un campo de texto con label, slots prefix/suffix y estado de error.\n */\nexport function inputTemplate(props: InputTemplateProps): TemplateResult {\n const inputType = props.type === 'password' && props.showPassword ? 'text' : props.type;\n\n return html`\n <div class=\"input-group ${props.error ? 'has-error' : ''} ${props.disabled ? 'is-disabled' : ''}\">\n\n ${props.label ? html`\n <label\n class=\"input-label\"\n for=\"${props.uuid}\"\n >\n ${props.label}\n ${props.required ? html`<span class=\"input-required\" aria-hidden=\"true\">*</span>` : nothing}\n </label>\n ` : nothing}\n\n <div class=\"input-wrapper\">\n <slot name=\"prefix\"></slot>\n\n <input\n id=\"${props.uuid}\"\n type=\"${inputType}\"\n placeholder=\"${props.placeholder}\"\n ?required=\"${props.required}\"\n ?disabled=\"${props.disabled}\"\n aria-invalid=\"${props.error}\"\n aria-describedby=\"${props.error && props.errorMessage ? `${props.uuid}-error` : nothing}\"\n .value=\"${props.value}\"\n @input=\"${props.handleInput}\"\n />\n\n ${props.type === 'password' ? html`\n <button\n class=\"input-password-toggle\"\n type=\"button\"\n @click=\"${props.handleTogglePassword}\"\n aria-label=\"${props.showPassword ? 'Ocultar contraseña' : 'Mostrar contraseña'}\"\n >\n ${props.showPassword ? html`\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.5\">\n <path d=\"M17.94 17.94A10.07 10.07 0 0 1 12 20c-7 0-11-8-11-8a18.45 18.45 0 0 1 5.06-5.94\"/>\n <path d=\"M9.9 4.24A9.12 9.12 0 0 1 12 4c7 0 11 8 11 8a18.5 18.5 0 0 1-2.16 3.19\"/>\n <line x1=\"1\" y1=\"1\" x2=\"23\" y2=\"23\"/>\n </svg>\n ` : html`\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.5\">\n <path d=\"M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z\"/>\n <circle cx=\"12\" cy=\"12\" r=\"3\"/>\n </svg>\n `}\n </button>\n ` : nothing}\n\n <slot name=\"suffix\"></slot>\n </div>\n\n ${props.error && props.errorMessage ? html`\n <span class=\"input-error-message\" id=\"${props.uuid}-error\" role=\"alert\">\n ${props.errorMessage}\n </span>\n ` : nothing}\n\n </div>\n `;\n}"],"names":[],"mappings":";AAqBO,SAAS,cAAc,OAA2C;AACvE,QAAM,YAAY,MAAM,SAAS,cAAc,MAAM,eAAe,SAAS,MAAM;AAEnF,SAAO;AAAA,8BACqB,MAAM,QAAQ,cAAc,EAAE,IAAI,MAAM,WAAW,gBAAgB,EAAE;AAAA;AAAA,QAE3F,MAAM,QAAQ;AAAA;AAAA;AAAA,iBAGL,MAAM,IAAI;AAAA;AAAA,YAEf,MAAM,KAAK;AAAA,YACX,MAAM,WAAW,iEAAiE,OAAO;AAAA;AAAA,UAE3F,OAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,gBAMD,MAAM,IAAI;AAAA,kBACR,SAAS;AAAA,yBACF,MAAM,WAAW;AAAA,uBACnB,MAAM,QAAQ;AAAA,uBACd,MAAM,QAAQ;AAAA,0BACX,MAAM,KAAK;AAAA,8BACP,MAAM,SAAS,MAAM,eAAe,GAAG,MAAM,IAAI,WAAW,OAAO;AAAA,oBAC7E,MAAM,KAAK;AAAA,oBACX,MAAM,WAAW;AAAA;AAAA;AAAA,UAG3B,MAAM,SAAS,aAAa;AAAA;AAAA;AAAA;AAAA,sBAIhB,MAAM,oBAAoB;AAAA,0BACtB,MAAM,eAAe,uBAAuB,oBAAoB;AAAA;AAAA,cAE5E,MAAM,eAAe;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,gBAMnB;AAAA;AAAA;AAAA;AAAA;AAAA,aAKH;AAAA;AAAA,YAED,OAAO;AAAA;AAAA;AAAA;AAAA;AAAA,QAKX,MAAM,SAAS,MAAM,eAAe;AAAA,gDACI,MAAM,IAAI;AAAA,YAC9C,MAAM,YAAY;AAAA;AAAA,UAEpB,OAAO;AAAA;AAAA;AAAA;AAIjB;"}
|
package/dist/index217.js
CHANGED
|
@@ -1,5 +1,35 @@
|
|
|
1
|
-
|
|
1
|
+
import { nothing, html } from "lit";
|
|
2
|
+
const DEFAULT_HEADING = {
|
|
3
|
+
default: "Default",
|
|
4
|
+
info: "Info",
|
|
5
|
+
warning: "Warning",
|
|
6
|
+
error: "Error",
|
|
7
|
+
success: "Success"
|
|
8
|
+
};
|
|
9
|
+
function alertTemplate(props) {
|
|
10
|
+
const displayHeading = props.heading || DEFAULT_HEADING[props.type];
|
|
11
|
+
return html`
|
|
12
|
+
<div class="alert" role="alert" aria-live="polite">
|
|
13
|
+
|
|
14
|
+
<div class="alert-content">
|
|
15
|
+
<p class="alert-title">${displayHeading}</p>
|
|
16
|
+
<div class="alert-body">
|
|
17
|
+
<slot></slot>
|
|
18
|
+
</div>
|
|
19
|
+
</div>
|
|
20
|
+
|
|
21
|
+
${props.closable ? html`
|
|
22
|
+
<button
|
|
23
|
+
class="alert-close"
|
|
24
|
+
type="button"
|
|
25
|
+
aria-label="Cerrar alerta"
|
|
26
|
+
@click="${props.handleClose}"
|
|
27
|
+
>×</button>` : nothing}
|
|
28
|
+
|
|
29
|
+
</div>
|
|
30
|
+
`;
|
|
31
|
+
}
|
|
2
32
|
export {
|
|
3
|
-
|
|
33
|
+
alertTemplate
|
|
4
34
|
};
|
|
5
35
|
//# sourceMappingURL=index217.js.map
|
package/dist/index217.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index217.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
|
|
1
|
+
{"version":3,"file":"index217.js","sources":["../src/components/molecules/lib-alert/lib-alert.html.ts"],"sourcesContent":["import { html, nothing, TemplateResult } from 'lit';\nimport type { AlertTemplateProps, AlertType } from './lib-alert.types';\n\n/** Auto-generated heading per type if none is provided. */\nconst DEFAULT_HEADING: Record<AlertType, string> = {\n default: 'Default',\n info: 'Info',\n warning: 'Warning',\n error: 'Error',\n success: 'Success',\n};\n\n/**\n * Template para lib-alert.\n * Estructura: borde izquierdo · [heading DM Mono] · slot (cuerpo) · [botón cerrar]\n */\nexport function alertTemplate(props: AlertTemplateProps): TemplateResult {\n const displayHeading = props.heading || DEFAULT_HEADING[props.type];\n\n return html`\n <div class=\"alert\" role=\"alert\" aria-live=\"polite\">\n\n <div class=\"alert-content\">\n <p class=\"alert-title\">${displayHeading}</p>\n <div class=\"alert-body\">\n <slot></slot>\n </div>\n </div>\n\n ${props.closable\n ? html`\n <button\n class=\"alert-close\"\n type=\"button\"\n aria-label=\"Cerrar alerta\"\n @click=\"${props.handleClose}\"\n >×</button>`\n : nothing}\n\n </div>\n `;\n}"],"names":[],"mappings":";AAIA,MAAM,kBAA6C;AAAA,EACjD,SAAS;AAAA,EACT,MAAS;AAAA,EACT,SAAS;AAAA,EACT,OAAS;AAAA,EACT,SAAS;AACX;AAMO,SAAS,cAAc,OAA2C;AACvE,QAAM,iBAAiB,MAAM,WAAW,gBAAgB,MAAM,IAAI;AAElE,SAAO;AAAA;AAAA;AAAA;AAAA,iCAIwB,cAAc;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,QAMvC,MAAM,WACJ;AAAA;AAAA;AAAA;AAAA;AAAA,wBAKc,MAAM,WAAW;AAAA,2BAE/B,OAAO;AAAA;AAAA;AAAA;AAIjB;"}
|
package/dist/index218.js
CHANGED
|
@@ -1,88 +1,5 @@
|
|
|
1
|
-
|
|
2
|
-
const ICONS = {
|
|
3
|
-
star: {
|
|
4
|
-
regular: html`<svg viewBox="0 0 256 256" fill="currentColor" aria-hidden="true">
|
|
5
|
-
<path d="M239.2,97.4A16.4,16.4,0,0,0,224.6,86l-59.4-4.1-22-55.5A16.4,16.4,0,0,0,128,16h0a16.4,16.4,0,0,0-15.2,10.4L90.8,82,31.4,86A16.5,16.5,0,0,0,16.8,97.4,16.8,16.8,0,0,0,22,115.5l45.4,38.4L52.5,212a16.4,16.4,0,0,0,6.4,17.3,16.7,16.7,0,0,0,18.2.5L128,198.8l51,31.1a16.1,16.1,0,0,0,8.5,2.4,16.5,16.5,0,0,0,9.7-3.1A16.4,16.4,0,0,0,203.5,212l-14.9-58.1L234,115.5A16.8,16.8,0,0,0,239.2,97.4Zm-15.4,5.9-45.4,38.4a8,8,0,0,0-2.6,8.2l14.9,58.1a.6.6,0,0,1-.3.7c-.1.1-.3.2-.5.1l-51-31.2a8,8,0,0,0-8.4,0l-51,31.1-.4-.1a.6.6,0,0,1-.3-.7l14.9-58.1a8,8,0,0,0-2.6-8.2L31.2,103.3l-.1-.4c.1-.3.2-.5.5-.6l59.3-4.1a8,8,0,0,0,6.8-5.1L119.7,38a.8.8,0,0,1,.6-.5h.2a.8.8,0,0,1,.6.5l21.9,55.2a8,8,0,0,0,6.8,5.1l59.3,4.1c.3.1.4.3.5.6A.7.7,0,0,1,223.8,103.3Z"/>
|
|
6
|
-
</svg>`,
|
|
7
|
-
fill: html`<svg viewBox="0 0 256 256" fill="currentColor" aria-hidden="true">
|
|
8
|
-
<path d="M234.5,114.38l-45.1,39.36,13.51,58.6a16,16,0,0,1-23.84,17.34l-51.11-31-51,31a16,16,0,0,1-23.84-17.34l13.49-58.54L21.5,114.38a16,16,0,0,1,9.11-28.06l59.46-5.15,23.21-55.36a15.95,15.95,0,0,1,29.44,0h0L166,81.17l59.44,5.15a16,16,0,0,1,9.11,28.06Z"/>
|
|
9
|
-
</svg>`
|
|
10
|
-
},
|
|
11
|
-
heart: {
|
|
12
|
-
regular: html`<svg viewBox="0 0 256 256" fill="currentColor" aria-hidden="true">
|
|
13
|
-
<path d="M178,32c-20.65,0-38.73,8.88-50,23.89C116.73,40.88,98.65,32,78,32A62.07,62.07,0,0,0,16,94c0,70,103.79,126.66,108.21,129a8,8,0,0,0,7.58,0C136.21,220.66,240,164,240,94A62.07,62.07,0,0,0,178,32ZM128,206.8C109.74,196.16,32,147.69,32,94A46.06,46.06,0,0,1,78,48c19.45,0,35.78,10.36,42.6,27a8,8,0,0,0,14.8,0c6.82-16.67,23.15-27,42.6-27a46.06,46.06,0,0,1,46,46C224,147.61,146.24,196.15,128,206.8Z"/>
|
|
14
|
-
</svg>`,
|
|
15
|
-
fill: html`<svg viewBox="0 0 256 256" fill="currentColor" aria-hidden="true">
|
|
16
|
-
<path d="M240,94c0,70-103.79,126.66-108.21,129a8,8,0,0,1-7.58,0C119.79,220.66,16,164,16,94A62.07,62.07,0,0,1,78,32c20.65,0,38.73,8.88,50,23.89C139.27,40.88,157.35,32,178,32A62.07,62.07,0,0,1,240,94Z"/>
|
|
17
|
-
</svg>`
|
|
18
|
-
},
|
|
19
|
-
diamond: {
|
|
20
|
-
regular: html`<svg viewBox="0 0 256 256" fill="currentColor" aria-hidden="true">
|
|
21
|
-
<path d="M235.32,104,211.31,56a16,16,0,0,0-14.31-8.05H59A16,16,0,0,0,44.69,56L20.68,104a16,16,0,0,0,2.62,18.51l96,96a16,16,0,0,0,17.4,3.37,15.93,15.93,0,0,0,5.26-3.38l96-96A16,16,0,0,0,235.32,104ZM59,64H197l21.33,42.67L128,213.32,37.67,106.67Z"/>
|
|
22
|
-
</svg>`,
|
|
23
|
-
fill: html`<svg viewBox="0 0 256 256" fill="currentColor" aria-hidden="true">
|
|
24
|
-
<path d="M238,106.38,214,58.34A16.09,16.09,0,0,0,199.69,50H56.31A16.09,16.09,0,0,0,42,58.34L18,106.38a16,16,0,0,0,2.69,18.76l96,96a16,16,0,0,0,22.62,0l96-96A16,16,0,0,0,238,106.38Z"/>
|
|
25
|
-
</svg>`
|
|
26
|
-
}
|
|
27
|
-
};
|
|
28
|
-
function getIcon(name) {
|
|
29
|
-
return ICONS[name] ?? ICONS["star"];
|
|
30
|
-
}
|
|
31
|
-
function ratingTemplate(ctx) {
|
|
32
|
-
const { value, max, icon, readonly, showCount, count } = ctx;
|
|
33
|
-
const icons = getIcon(icon);
|
|
34
|
-
const display = ctx._hoverValue || value;
|
|
35
|
-
const items = Array.from({ length: max }, (_, i) => {
|
|
36
|
-
const pos = i + 1;
|
|
37
|
-
const isHalf = readonly && !Number.isInteger(value) && pos === Math.ceil(value);
|
|
38
|
-
const isFilled = pos <= Math.floor(display);
|
|
39
|
-
const isPreview = !readonly && pos > Math.floor(display) && pos <= ctx._hoverValue;
|
|
40
|
-
if (isHalf) {
|
|
41
|
-
return html`
|
|
42
|
-
<span
|
|
43
|
-
class="rt-item rt-item-half"
|
|
44
|
-
part="item item-half"
|
|
45
|
-
aria-hidden="true"
|
|
46
|
-
>
|
|
47
|
-
${icons == null ? void 0 : icons.regular}
|
|
48
|
-
<span class="rt-half-fill">${icons == null ? void 0 : icons.fill}</span>
|
|
49
|
-
</span>
|
|
50
|
-
`;
|
|
51
|
-
}
|
|
52
|
-
return html`
|
|
53
|
-
<span
|
|
54
|
-
class="rt-item ${isFilled ? "is-filled" : ""} ${isPreview ? "is-preview" : ""}"
|
|
55
|
-
part="item${isFilled ? " item-filled" : ""}"
|
|
56
|
-
role="${readonly ? nothing : "button"}"
|
|
57
|
-
aria-label="${readonly ? nothing : `Valorar ${pos} de ${max}`}"
|
|
58
|
-
tabindex="${readonly ? nothing : "0"}"
|
|
59
|
-
@mouseenter="${() => ctx._onEnter(pos)}"
|
|
60
|
-
@click="${() => ctx._onClick(pos)}"
|
|
61
|
-
@keydown="${(e) => ctx._onKeyItem(e, pos)}"
|
|
62
|
-
>
|
|
63
|
-
${isFilled || isPreview ? icons == null ? void 0 : icons.fill : icons == null ? void 0 : icons.regular}
|
|
64
|
-
</span>
|
|
65
|
-
`;
|
|
66
|
-
});
|
|
67
|
-
const numDisplay = showCount ? html`
|
|
68
|
-
<span class="rt-num" part="num">
|
|
69
|
-
<strong>${value > 0 ? value.toFixed(1) : "—"}</strong>
|
|
70
|
-
${count != null ? html`<span style="margin-left:2px;">(${count})</span>` : nothing}
|
|
71
|
-
</span>` : nothing;
|
|
72
|
-
return html`
|
|
73
|
-
<div
|
|
74
|
-
class="rt"
|
|
75
|
-
part="root"
|
|
76
|
-
role="${readonly ? "img" : "group"}"
|
|
77
|
-
aria-label="${readonly ? `Valoración: ${value} de ${max}` : `Valorar de 1 a ${max}`}"
|
|
78
|
-
@mouseleave="${() => ctx._onLeave()}"
|
|
79
|
-
>
|
|
80
|
-
${items}
|
|
81
|
-
</div>
|
|
82
|
-
${numDisplay}
|
|
83
|
-
`;
|
|
84
|
-
}
|
|
1
|
+
const alertCss = '@layer tokens,reset,components;@layer reset{:host{display:block;width:100%}*,*:before,*:after{box-sizing:border-box}}@layer components{.alert{padding:var(--lib-space-md) var(--lib-space-lg);border-left:2px solid;display:flex;gap:var(--lib-space-md);align-items:flex-start;width:100%;transition:opacity var(--duration-base) var(--ease-default),transform var(--duration-base) var(--ease-default)}.alert-content{flex:1;min-width:0}.alert-title{font-family:var(--lib-font-mono);font-size:var(--text-xs);letter-spacing:var(--tracking-wider);text-transform:uppercase;margin-bottom:var(--lib-space-xs);line-height:var(--leading-snug)}.alert-body{font-family:var(--lib-font-body);font-size:var(--text-sm);line-height:var(--leading-relaxed)}.alert-close{flex-shrink:0;display:flex;align-items:center;justify-content:center;width:20px;height:20px;background:transparent;border:none;cursor:pointer;padding:0;opacity:.5;color:inherit;transition:opacity var(--duration-fast) var(--ease-default);font-size:16px;line-height:1;font-family:var(--lib-font-mono)}.alert-close:hover{opacity:1}:host([type="default"]) .alert,.alert{background:var(--bg-surface);border-color:var(--border-strong)}:host([type="default"]) .alert-title{color:var(--text-secondary)}:host([type="default"]) .alert-body{color:var(--text-secondary)}:host([type="info"]) .alert{background:var(--color-celadon-50);border-color:var(--color-celadon-400)}:host([type="info"]) .alert-title{color:var(--color-celadon-600)}:host([type="info"]) .alert-body{color:var(--color-celadon-500)}:host([type="warning"]) .alert{background:#fffbf0;border-color:var(--color-warning)}:host([type="warning"]) .alert-title{color:var(--color-warning)}:host([type="warning"]) .alert-body{color:#6b5010}:host([type="error"]) .alert{background:#fff8f7;border-color:var(--color-error)}:host([type="error"]) .alert-title{color:var(--color-error)}:host([type="error"]) .alert-body{color:#6b2015}:host([type="success"]) .alert{background:#f5faf6;border-color:var(--color-success)}:host([type="success"]) .alert-title{color:var(--color-success)}:host([type="success"]) .alert-body{color:#1e4a2a}:host([glass]) .alert{background:var(--lib-glass-bg);-webkit-backdrop-filter:var(--lib-glass-filter);backdrop-filter:var(--lib-glass-filter);border:var(--lib-glass-border);border-left-width:2px;box-shadow:var(--lib-glass-shadow);position:relative;overflow:hidden}:host([glass]) .alert:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:var(--lib-glass-shine);pointer-events:none}:host([glass]) .alert-title,:host([glass]) .alert-body{color:var(--lib-glass-text);text-shadow:var(--lib-glass-text-shadow);position:relative;z-index:1}:host([glass]) .alert-close{color:var(--lib-glass-text);position:relative;z-index:1}}';
|
|
85
2
|
export {
|
|
86
|
-
|
|
3
|
+
alertCss as default
|
|
87
4
|
};
|
|
88
5
|
//# sourceMappingURL=index218.js.map
|
package/dist/index218.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index218.js","sources":[
|
|
1
|
+
{"version":3,"file":"index218.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
|
package/dist/index219.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
const
|
|
1
|
+
const modalCss = "@layer tokens,reset,components;@layer reset{*,*:before,*:after{box-sizing:border-box}}@layer components{:host{display:contents}.mo-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:var(--z-modal, 500);background:#120e0aa6;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);display:flex;align-items:center;justify-content:center;padding:var(--lib-space-lg);overflow-y:auto;opacity:0;pointer-events:none;transition:opacity var(--duration-slow) var(--ease-out)}:host([open]) .mo-backdrop{opacity:1;pointer-events:auto}.mo-panel-wrap{position:relative;width:100%;max-width:560px;max-height:calc(100vh - var(--lib-space-lg) * 2);display:flex;flex-direction:column;transform:scale(.95) translateY(8px);transition:transform var(--duration-slow) var(--ease-out)}:host([open]) .mo-panel-wrap{transform:scale(1) translateY(0)}.mo-panel-wrap.mo-slide-up{transform:translateY(40px)}:host([open]) .mo-panel-wrap.mo-slide-up{transform:translateY(0)}.mo-panel-wrap.mo-slide-down{transform:translateY(-40px)}:host([open]) .mo-panel-wrap.mo-slide-down{transform:translateY(0)}.mo-panel-wrap.mo-xs{max-width:280px}.mo-panel-wrap.mo-sm{max-width:420px}.mo-panel-wrap.mo-lg{max-width:720px}.mo-panel-wrap.mo-xl{max-width:920px}.mo-panel-wrap.mo-full{max-width:100vw;max-height:100vh;height:100vh;margin:0}.mo-panel-wrap.mo-full .mo-panel{max-height:100vh;height:100vh;border:none}.mo-panel{background:var(--bg-elevated);border:1px solid var(--border-default);box-shadow:0 20px 60px #1a140e2e,0 4px 16px #1a140e1a;display:flex;flex-direction:column;max-height:calc(100vh - var(--lib-space-lg) * 2);overflow:hidden}.mo-panel.is-editorial .mo-header{border-bottom:none;padding-bottom:0}.mo-panel.is-editorial .mo-title{font-size:2.5rem;letter-spacing:var(--tracking-tight)}.mo-panel.is-editorial .mo-body{padding-top:var(--lib-space-sm)}.mo-panel.is-danger .mo-header{border-bottom-color:#f5ddd9;background:#f5ddd9}.mo-panel.is-danger .mo-title{color:var(--color-error)}.mo-panel.is-danger .mo-footer{border-top-color:#f5ddd9;background:#fef5f3}.mo-header{display:flex;align-items:flex-start;gap:var(--lib-space-md);padding:var(--lib-space-lg) var(--lib-space-lg) var(--lib-space-md);border-bottom:1px solid var(--border-subtle);flex-shrink:0;background:var(--bg-elevated)}.mo-header-icon{width:40px;height:40px;flex-shrink:0;display:flex;align-items:center;justify-content:center;font-size:20px;background:var(--bg-surface);border:1px solid var(--border-subtle);color:var(--text-muted)}.mo-header-icon.is-kaki{background:var(--color-kaki-50);border-color:var(--color-kaki-100);color:var(--color-kaki-500)}.mo-header-icon.is-celadon{background:var(--color-celadon-50);border-color:var(--color-celadon-100);color:var(--color-celadon-500)}.mo-header-icon.is-error{background:#f5ddd9;border-color:#f5ddd9;color:var(--color-error)}.mo-header-icon.is-info{background:#d6e8f5;border-color:#d6e8f5;color:#1a4a6e}.mo-header-text{flex:1;min-width:0}.mo-title{font-family:var(--lib-font-display);font-size:var(--text-2xl);font-weight:var(--weight-light);letter-spacing:var(--tracking-tight);line-height:var(--leading-tight);color:var(--text-primary)}.mo-subtitle{font-family:var(--lib-font-mono);font-size:var(--text-xs);letter-spacing:var(--tracking-wider);text-transform:uppercase;color:var(--text-muted);margin-top:var(--lib-space-xs)}.mo-close{width:32px;height:32px;flex-shrink:0;display:flex;align-items:center;justify-content:center;font-size:18px;color:var(--text-muted);background:transparent;border:none;cursor:pointer;line-height:1;transition:background var(--duration-fast) var(--ease-default),color var(--duration-fast) var(--ease-default);margin-top:-2px;margin-right:-4px}.mo-close:hover{background:var(--bg-surface);color:var(--text-primary)}.mo-body{flex:1;overflow-y:auto;padding:var(--lib-space-lg);scrollbar-width:thin;scrollbar-color:var(--color-washi-300) transparent}.mo-body::-webkit-scrollbar{width:4px}.mo-body::-webkit-scrollbar-track{background:transparent}.mo-body::-webkit-scrollbar-thumb{background:var(--color-washi-300)}.mo-footer{display:flex;align-items:center;gap:var(--lib-space-md);padding:var(--lib-space-md) var(--lib-space-lg);border-top:1px solid var(--border-subtle);flex-shrink:0;background:var(--bg-surface)}.mo-footer-info{font-family:var(--lib-font-mono);font-size:10px;letter-spacing:var(--tracking-wide);color:var(--text-muted);margin-right:auto}.mo-panel-wrap.mo-dark .mo-panel{background:#0c0604;border-color:#1e130e;box-shadow:0 20px 60px #0000008c,0 4px 16px #0000004d}.mo-panel-wrap.mo-dark .mo-header{background:#0c0604;border-color:#190f0a}.mo-panel-wrap.mo-dark .mo-title{color:#c8bbb2}.mo-panel-wrap.mo-dark .mo-subtitle{color:#312620}.mo-panel-wrap.mo-dark .mo-close{color:#362b25}.mo-panel-wrap.mo-dark .mo-close:hover{background:#190f0a;color:#998c84}.mo-panel-wrap.mo-dark .mo-footer{background:#060201;border-color:#190f0a}.mo-panel-wrap.mo-dark .mo-footer-info{color:#312620}.mo-panel-wrap.mo-dark .mo-header-icon{background:#190f0a;border-color:#231813;color:#433831}@media(max-width:768px){.mo-backdrop{padding:var(--lib-space-md)}.mo-panel-wrap{max-height:calc(100vh - var(--lib-space-md) * 2)}}}";
|
|
2
2
|
export {
|
|
3
|
-
|
|
3
|
+
modalCss as default
|
|
4
4
|
};
|
|
5
5
|
//# sourceMappingURL=index219.js.map
|
package/dist/index22.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { unsafeCSS, css, LitElement
|
|
2
|
-
import { property,
|
|
3
|
-
import {
|
|
1
|
+
import { unsafeCSS, css, LitElement } from "lit";
|
|
2
|
+
import { property, customElement } from "lit/decorators.js";
|
|
3
|
+
import { renderDisplayHeading } from "./index302.js";
|
|
4
|
+
import componentCss from "./index303.js";
|
|
4
5
|
import sharedTokens from "./index196.js";
|
|
5
|
-
import iconStyles from "./index231.js";
|
|
6
6
|
var __defProp = Object.defineProperty;
|
|
7
7
|
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
8
8
|
var __decorateClass = (decorators, target, key, kind) => {
|
|
@@ -13,65 +13,58 @@ 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 LibDisplayHeading = class extends LitElement {
|
|
17
17
|
constructor() {
|
|
18
18
|
super(...arguments);
|
|
19
|
-
this.
|
|
19
|
+
this.line1 = "";
|
|
20
|
+
this.line2Prefix = "";
|
|
21
|
+
this.accent = "";
|
|
22
|
+
this.description = "";
|
|
23
|
+
this.surface = "light";
|
|
20
24
|
this.size = "md";
|
|
21
|
-
this.
|
|
22
|
-
this.
|
|
23
|
-
|
|
24
|
-
willUpdate(changedProperties) {
|
|
25
|
-
if (changedProperties.has("name")) {
|
|
26
|
-
this._loadIcon();
|
|
27
|
-
}
|
|
28
|
-
}
|
|
29
|
-
// 4. Buscamos el SVG en tu registro y lo guardamos en el estado
|
|
30
|
-
//TODO: Implementar nominale vs. generico
|
|
31
|
-
_loadIcon() {
|
|
32
|
-
const iconNominale = getIcon(this.name);
|
|
33
|
-
console.log(iconNominale);
|
|
34
|
-
if (iconNominale) {
|
|
35
|
-
this._svgContent = iconNominale ?? "";
|
|
36
|
-
this.requestUpdate();
|
|
37
|
-
} else {
|
|
38
|
-
this._svgContent = "";
|
|
39
|
-
}
|
|
25
|
+
this.tag = "h2";
|
|
26
|
+
this.centered = false;
|
|
27
|
+
this._animate = false;
|
|
40
28
|
}
|
|
41
29
|
render() {
|
|
42
|
-
|
|
43
|
-
const variantClass = this.variant !== "default" ? `variant-${this.variant}` : "";
|
|
44
|
-
return html`
|
|
45
|
-
<div
|
|
46
|
-
class="icon-wrapper ${variantClass}"
|
|
47
|
-
style="--lib-icon-size: ${sizeVar}"
|
|
48
|
-
aria-hidden="true"
|
|
49
|
-
.innerHTML="${this._svgContent}"
|
|
50
|
-
>
|
|
51
|
-
</div>
|
|
52
|
-
`;
|
|
30
|
+
return renderDisplayHeading(this);
|
|
53
31
|
}
|
|
54
32
|
};
|
|
55
|
-
|
|
33
|
+
LibDisplayHeading.styles = [
|
|
56
34
|
css`${unsafeCSS(sharedTokens)}`,
|
|
57
|
-
css`${unsafeCSS(
|
|
35
|
+
css`${unsafeCSS(componentCss)}`
|
|
58
36
|
];
|
|
59
37
|
__decorateClass([
|
|
60
|
-
property({ type: String
|
|
61
|
-
],
|
|
38
|
+
property({ type: String })
|
|
39
|
+
], LibDisplayHeading.prototype, "line1", 2);
|
|
40
|
+
__decorateClass([
|
|
41
|
+
property({ type: String, attribute: "line2-prefix" })
|
|
42
|
+
], LibDisplayHeading.prototype, "line2Prefix", 2);
|
|
62
43
|
__decorateClass([
|
|
63
44
|
property({ type: String })
|
|
64
|
-
],
|
|
45
|
+
], LibDisplayHeading.prototype, "accent", 2);
|
|
65
46
|
__decorateClass([
|
|
66
47
|
property({ type: String })
|
|
67
|
-
],
|
|
48
|
+
], LibDisplayHeading.prototype, "description", 2);
|
|
49
|
+
__decorateClass([
|
|
50
|
+
property({ type: String, reflect: true })
|
|
51
|
+
], LibDisplayHeading.prototype, "surface", 2);
|
|
52
|
+
__decorateClass([
|
|
53
|
+
property({ type: String, reflect: true })
|
|
54
|
+
], LibDisplayHeading.prototype, "size", 2);
|
|
55
|
+
__decorateClass([
|
|
56
|
+
property({ type: String, reflect: true })
|
|
57
|
+
], LibDisplayHeading.prototype, "tag", 2);
|
|
58
|
+
__decorateClass([
|
|
59
|
+
property({ type: Boolean, reflect: true })
|
|
60
|
+
], LibDisplayHeading.prototype, "centered", 2);
|
|
68
61
|
__decorateClass([
|
|
69
|
-
|
|
70
|
-
],
|
|
71
|
-
|
|
72
|
-
customElement("lib-
|
|
73
|
-
],
|
|
62
|
+
property({ type: Boolean, reflect: true })
|
|
63
|
+
], LibDisplayHeading.prototype, "_animate", 2);
|
|
64
|
+
LibDisplayHeading = __decorateClass([
|
|
65
|
+
customElement("lib-display-heading")
|
|
66
|
+
], LibDisplayHeading);
|
|
74
67
|
export {
|
|
75
|
-
|
|
68
|
+
LibDisplayHeading
|
|
76
69
|
};
|
|
77
70
|
//# sourceMappingURL=index22.js.map
|
package/dist/index22.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index22.js","sources":["../src/components/atoms/
|
|
1
|
+
{"version":3,"file":"index22.js","sources":["../src/components/atoms/display-heading/lib-display-heading.component.ts"],"sourcesContent":["import { LitElement, css, unsafeCSS, type TemplateResult } from 'lit';\nimport { customElement, property } from 'lit/decorators.js';\nimport { renderDisplayHeading } from './lib-display-heading.html';\nimport type {\n DisplayHeadingSurface,\n DisplayHeadingSize,\n DisplayHeadingTag,\n} from './lib-display-heading.types';\nimport componentCss from './lib-display-heading.css?inline';\nimport sharedTokens from '../../../styles/shared/tokens.css?inline';\n\n/**\n * `<lib-display-heading>` — Titular de display editorial.\n *\n * Heading en Cormorant Garamond con peso 300 y acento itálico en kaki.\n * Patrón recurrente del sistema: primera línea normal + segunda línea con\n * texto itálico en `--color-kaki-400`. Acepta un `<lib-eyebrow>` por slot.\n *\n * @tag lib-display-heading\n *\n * @attr {string} line1 - Primera línea del titular.\n * @attr {string} line2-prefix - Texto antes del acento en la segunda línea.\n * @attr {string} accent - Texto en itálica kaki (acento).\n * @attr {string} description - Párrafo de descripción (alternativa al slot).\n * @attr {'dark'|'light'|'washi'} surface - Superficie sobre la que se muestra.\n * @attr {'sm'|'md'|'lg'} size - Tamaño tipográfico fluido.\n * @attr {'h1'|'h2'|'h3'|'h4'} tag - Tag semántico del heading.\n * @attr {boolean} centered - Centra el bloque.\n * @attr {boolean} animate - Activa la animación de entrada fade-up.\n *\n * @slot eyebrow - Acepta un `<lib-eyebrow>` como prefijo.\n * @slot description - Descripción como rich content (alternativa a `description`).\n *\n * @csspart wrapper - Div contenedor externo.\n * @csspart heading - El elemento h1–h4.\n * @csspart description - El párrafo de descripción.\n *\n * @example\n * <!-- Básico -->\n * <lib-display-heading\n * line1=\"Todo lo que\"\n * line2-prefix=\"necesitas,\"\n * accent=\"nada más\"\n * surface=\"dark\"\n * ></lib-display-heading>\n *\n * <!-- Con eyebrow y descripción -->\n * <lib-display-heading\n * line1=\"La belleza\"\n * line2-prefix=\"de lo\"\n * accent=\"austero\"\n * surface=\"dark\"\n * size=\"lg\"\n * description=\"66 componentes sin dependencias.\"\n * >\n * <lib-eyebrow slot=\"eyebrow\" effect=\"kintsugi\" size=\"lg\">\n * Design System · v0.1.0\n * </lib-eyebrow>\n * </lib-display-heading>\n */\n@customElement('lib-display-heading')\nexport class LibDisplayHeading extends LitElement {\n\n static override styles = [\n css`${unsafeCSS(sharedTokens)}`,\n css`${unsafeCSS(componentCss)}`,\n ];\n\n /** Primera línea del titular */\n @property({ type: String })\n line1 = '';\n\n /** Texto antes del acento en la segunda línea */\n @property({ type: String, attribute: 'line2-prefix' })\n line2Prefix = '';\n\n /** Texto en itálica kaki */\n @property({ type: String })\n accent = '';\n\n /** Párrafo de descripción inline */\n @property({ type: String })\n description = '';\n\n /** Superficie sobre la que aparece */\n @property({ type: String, reflect: true })\n surface: DisplayHeadingSurface = 'light';\n\n /** Tamaño tipográfico fluido */\n @property({ type: String, reflect: true })\n size: DisplayHeadingSize = 'md';\n\n /** Tag semántico del heading */\n @property({ type: String, reflect: true })\n tag: DisplayHeadingTag = 'h2';\n\n /** Centra el bloque */\n @property({ type: Boolean, reflect: true })\n centered = false;\n\n /** Activa animación de entrada */\n @property({ type: Boolean, reflect: true })\n _animate = false;\n\n protected override render(): TemplateResult {\n return renderDisplayHeading(this);\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'lib-display-heading': LibDisplayHeading;\n }\n}"],"names":[],"mappings":";;;;;;;;;;;;;;;AA6DO,IAAM,oBAAN,cAAgC,WAAW;AAAA,EAA3C,cAAA;AAAA,UAAA,GAAA,SAAA;AASL,SAAA,QAAQ;AAIR,SAAA,cAAc;AAId,SAAA,SAAS;AAIT,SAAA,cAAc;AAId,SAAA,UAAiC;AAIjC,SAAA,OAA2B;AAI3B,SAAA,MAAyB;AAIzB,SAAA,WAAW;AAIX,SAAA,WAAW;AAAA,EAAA;AAAA,EAEQ,SAAyB;AAC1C,WAAO,qBAAqB,IAAI;AAAA,EAClC;AACF;AA9Ca,kBAEK,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,kBASX,WAAA,SAAA,CAAA;AAIA,gBAAA;AAAA,EADC,SAAS,EAAE,MAAM,QAAQ,WAAW,gBAAgB;AAAA,GAZ1C,kBAaX,WAAA,eAAA,CAAA;AAIA,gBAAA;AAAA,EADC,SAAS,EAAE,MAAM,OAAA,CAAQ;AAAA,GAhBf,kBAiBX,WAAA,UAAA,CAAA;AAIA,gBAAA;AAAA,EADC,SAAS,EAAE,MAAM,OAAA,CAAQ;AAAA,GApBf,kBAqBX,WAAA,eAAA,CAAA;AAIA,gBAAA;AAAA,EADC,SAAS,EAAE,MAAM,QAAQ,SAAS,MAAM;AAAA,GAxB9B,kBAyBX,WAAA,WAAA,CAAA;AAIA,gBAAA;AAAA,EADC,SAAS,EAAE,MAAM,QAAQ,SAAS,MAAM;AAAA,GA5B9B,kBA6BX,WAAA,QAAA,CAAA;AAIA,gBAAA;AAAA,EADC,SAAS,EAAE,MAAM,QAAQ,SAAS,MAAM;AAAA,GAhC9B,kBAiCX,WAAA,OAAA,CAAA;AAIA,gBAAA;AAAA,EADC,SAAS,EAAE,MAAM,SAAS,SAAS,MAAM;AAAA,GApC/B,kBAqCX,WAAA,YAAA,CAAA;AAIA,gBAAA;AAAA,EADC,SAAS,EAAE,MAAM,SAAS,SAAS,MAAM;AAAA,GAxC/B,kBAyCX,WAAA,YAAA,CAAA;AAzCW,oBAAN,gBAAA;AAAA,EADN,cAAc,qBAAqB;AAAA,GACvB,iBAAA;"}
|
package/dist/index220.js
CHANGED
|
@@ -1,76 +1,84 @@
|
|
|
1
|
-
import { nothing,
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
const
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
1
|
+
import { nothing, html } from "lit";
|
|
2
|
+
function panelWrapClass(p) {
|
|
3
|
+
const classes = ["mo-panel-wrap"];
|
|
4
|
+
if (p.size !== "md") classes.push(`mo-${p.size}`);
|
|
5
|
+
if (p._animate === "slide-up") classes.push("mo-slide-up");
|
|
6
|
+
if (p._animate === "slide-down") classes.push("mo-slide-down");
|
|
7
|
+
if (p.dark) classes.push("mo-dark");
|
|
8
|
+
return classes.join(" ");
|
|
9
|
+
}
|
|
10
|
+
function panelClass(variant) {
|
|
11
|
+
const classes = ["mo-panel"];
|
|
12
|
+
if (variant === "editorial") classes.push("is-editorial");
|
|
13
|
+
if (variant === "danger") classes.push("is-danger");
|
|
14
|
+
return classes.join(" ");
|
|
15
|
+
}
|
|
16
|
+
function iconClass(tone) {
|
|
17
|
+
const classes = ["mo-header-icon"];
|
|
18
|
+
if (tone !== "default") classes.push(`is-${tone}`);
|
|
19
|
+
return classes.join(" ");
|
|
20
|
+
}
|
|
21
|
+
function modalTemplate(p) {
|
|
16
22
|
return html`
|
|
17
23
|
<div
|
|
18
|
-
class="
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
aria-valuenow=${props.indeterminate ? nothing : props.value}
|
|
22
|
-
aria-valuemin="0"
|
|
23
|
-
aria-valuemax=${props.max}
|
|
24
|
-
aria-label=${props.indeterminate ? "Cargando…" : `${pct}%`}
|
|
24
|
+
class="mo-backdrop"
|
|
25
|
+
part="backdrop"
|
|
26
|
+
@click="${p.onBackdropClick}"
|
|
25
27
|
>
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
28
|
+
<div
|
|
29
|
+
class="${panelWrapClass(p)}"
|
|
30
|
+
part="panel-wrap"
|
|
31
|
+
role="dialog"
|
|
32
|
+
aria-modal="true"
|
|
33
|
+
aria-labelledby="mo-title"
|
|
34
|
+
@click="${(e) => e.stopPropagation()}"
|
|
35
|
+
>
|
|
36
|
+
<div class="${panelClass(p.variant)}" part="panel">
|
|
37
|
+
|
|
38
|
+
<!-- ── HEADER ── -->
|
|
39
|
+
<div class="mo-header" part="header">
|
|
40
|
+
|
|
41
|
+
<!-- Ícono opcional — tone prop activa el wrapper -->
|
|
42
|
+
${p.iconTone !== null ? html`
|
|
43
|
+
<div class="${iconClass(p.iconTone)}" part="icon">
|
|
44
|
+
<slot name="icon"></slot>
|
|
45
|
+
</div>
|
|
46
|
+
` : nothing}
|
|
47
|
+
|
|
48
|
+
<!-- Título y subtítulo -->
|
|
49
|
+
<div class="mo-header-text">
|
|
50
|
+
<h2 id="mo-title" class="mo-title">${p.heading}</h2>
|
|
51
|
+
${p.subtitle ? html`<p class="mo-subtitle">${p.subtitle}</p>` : nothing}
|
|
52
|
+
</div>
|
|
53
|
+
|
|
54
|
+
<!-- Botón de cierre -->
|
|
55
|
+
<button
|
|
56
|
+
class="mo-close"
|
|
57
|
+
part="close-btn"
|
|
58
|
+
aria-label="Cerrar"
|
|
59
|
+
@click="${p.onClose}"
|
|
60
|
+
>×</button>
|
|
61
|
+
</div>
|
|
62
|
+
|
|
63
|
+
<!-- ── BODY — slot default ── -->
|
|
64
|
+
<div class="mo-body" part="body">
|
|
65
|
+
<slot></slot>
|
|
66
|
+
</div>
|
|
67
|
+
|
|
68
|
+
<!-- ── FOOTER ── -->
|
|
69
|
+
<div class="mo-footer" part="footer">
|
|
70
|
+
${p.footerInfo ? html`
|
|
71
|
+
<span class="mo-footer-info">${p.footerInfo}</span>
|
|
72
|
+
` : nothing}
|
|
73
|
+
<slot name="footer"></slot>
|
|
74
|
+
</div>
|
|
52
75
|
|
|
53
|
-
${!props.bare && !props.indeterminate ? html`
|
|
54
|
-
<div class="pc__label">
|
|
55
|
-
${props.icon === "check" ? html`
|
|
56
|
-
<svg class="pc__check" width="28" height="28" viewBox="0 0 28 28" fill="none" aria-hidden="true">
|
|
57
|
-
<polyline
|
|
58
|
-
points="6,14 11,20 22,9"
|
|
59
|
-
stroke-width="2"
|
|
60
|
-
stroke-linecap="round"
|
|
61
|
-
stroke-linejoin="round"
|
|
62
|
-
/>
|
|
63
|
-
</svg>
|
|
64
|
-
` : html`
|
|
65
|
-
<span class="pc__value">${pct}%</span>
|
|
66
|
-
${props.sub ? html`<span class="pc__sub">${props.sub}</span>` : nothing}
|
|
67
|
-
`}
|
|
68
76
|
</div>
|
|
69
|
-
|
|
77
|
+
</div>
|
|
70
78
|
</div>
|
|
71
79
|
`;
|
|
72
80
|
}
|
|
73
81
|
export {
|
|
74
|
-
|
|
82
|
+
modalTemplate
|
|
75
83
|
};
|
|
76
84
|
//# sourceMappingURL=index220.js.map
|
package/dist/index220.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index220.js","sources":["../src/components/
|
|
1
|
+
{"version":3,"file":"index220.js","sources":["../src/components/molecules/modal/lib-modal.html.ts"],"sourcesContent":["import { html, nothing, TemplateResult } from 'lit';\nimport { ModalAnimate, ModalIconTone, ModalSize, ModalVariant } from './lib-modal.types';\n\nexport interface ModalTemplateProps {\n /* Estado */\n open: boolean;\n /* Panel */\n size: ModalSize;\n variant: ModalVariant;\n _animate: ModalAnimate;\n dark: boolean;\n /* Header */\n heading: string;\n subtitle: string;\n iconTone: ModalIconTone | null;\n /* Footer */\n footerInfo: string;\n /* Handlers */\n onClose: () => void;\n onBackdropClick: (e: MouseEvent) => void;\n}\n\n/** Clases del contenedor del panel (.mo-panel-wrap). */\nfunction panelWrapClass(p: ModalTemplateProps): string {\n const classes = ['mo-panel-wrap'];\n if (p.size !== 'md') classes.push(`mo-${p.size}`);\n if (p._animate === 'slide-up') classes.push('mo-slide-up');\n if (p._animate === 'slide-down') classes.push('mo-slide-down');\n if (p.dark) classes.push('mo-dark');\n return classes.join(' ');\n}\n\n/** Clases del panel (.mo-panel). */\nfunction panelClass(variant: ModalVariant): string {\n const classes = ['mo-panel'];\n if (variant === 'editorial') classes.push('is-editorial');\n if (variant === 'danger') classes.push('is-danger');\n return classes.join(' ');\n}\n\n/** Clases del ícono de header. */\nfunction iconClass(tone: ModalIconTone): string {\n const classes = ['mo-header-icon'];\n if (tone !== 'default') classes.push(`is-${tone}`);\n return classes.join(' ');\n}\n\nexport function modalTemplate(p: ModalTemplateProps): TemplateResult {\n return html`\n <div\n class=\"mo-backdrop\"\n part=\"backdrop\"\n @click=\"${p.onBackdropClick}\"\n >\n <div\n class=\"${panelWrapClass(p)}\"\n part=\"panel-wrap\"\n role=\"dialog\"\n aria-modal=\"true\"\n aria-labelledby=\"mo-title\"\n @click=\"${(e: MouseEvent):void => e.stopPropagation()}\"\n >\n <div class=\"${panelClass(p.variant)}\" part=\"panel\">\n\n <!-- ── HEADER ── -->\n <div class=\"mo-header\" part=\"header\">\n\n <!-- Ícono opcional — tone prop activa el wrapper -->\n ${p.iconTone !== null ? html`\n <div class=\"${iconClass(p.iconTone)}\" part=\"icon\">\n <slot name=\"icon\"></slot>\n </div>\n ` : nothing}\n\n <!-- Título y subtítulo -->\n <div class=\"mo-header-text\">\n <h2 id=\"mo-title\" class=\"mo-title\">${p.heading}</h2>\n ${p.subtitle ? html`<p class=\"mo-subtitle\">${p.subtitle}</p>` : nothing}\n </div>\n\n <!-- Botón de cierre -->\n <button\n class=\"mo-close\"\n part=\"close-btn\"\n aria-label=\"Cerrar\"\n @click=\"${p.onClose}\"\n >×</button>\n </div>\n\n <!-- ── BODY — slot default ── -->\n <div class=\"mo-body\" part=\"body\">\n <slot></slot>\n </div>\n\n <!-- ── FOOTER ── -->\n <div class=\"mo-footer\" part=\"footer\">\n ${p.footerInfo ? html`\n <span class=\"mo-footer-info\">${p.footerInfo}</span>\n ` : nothing}\n <slot name=\"footer\"></slot>\n </div>\n\n </div>\n </div>\n </div>\n `;\n}"],"names":[],"mappings":";AAuBA,SAAS,eAAe,GAA+B;AACrD,QAAM,UAAU,CAAC,eAAe;AAChC,MAAI,EAAE,SAAS,KAAc,SAAQ,KAAK,MAAM,EAAE,IAAI,EAAE;AACxD,MAAI,EAAE,aAAa,WAAc,SAAQ,KAAK,aAAa;AAC3D,MAAI,EAAE,aAAa,aAAc,SAAQ,KAAK,eAAe;AAC7D,MAAI,EAAE,KAAuB,SAAQ,KAAK,SAAS;AACnD,SAAO,QAAQ,KAAK,GAAG;AACzB;AAGA,SAAS,WAAW,SAA+B;AACjD,QAAM,UAAU,CAAC,UAAU;AAC3B,MAAI,YAAY,YAAa,SAAQ,KAAK,cAAc;AACxD,MAAI,YAAY,SAAa,SAAQ,KAAK,WAAW;AACrD,SAAO,QAAQ,KAAK,GAAG;AACzB;AAGA,SAAS,UAAU,MAA6B;AAC9C,QAAM,UAAU,CAAC,gBAAgB;AACjC,MAAI,SAAS,UAAW,SAAQ,KAAK,MAAM,IAAI,EAAE;AACjD,SAAO,QAAQ,KAAK,GAAG;AACzB;AAEO,SAAS,cAAc,GAAuC;AACnE,SAAO;AAAA;AAAA;AAAA;AAAA,gBAIO,EAAE,eAAe;AAAA;AAAA;AAAA,iBAGhB,eAAe,CAAC,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA,kBAKhB,CAAC,MAAuB,EAAE,iBAAiB;AAAA;AAAA,sBAEvC,WAAW,EAAE,OAAO,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,cAM7B,EAAE,aAAa,OAAO;AAAA,4BACR,UAAU,EAAE,QAAQ,CAAC;AAAA;AAAA;AAAA,gBAGjC,OAAO;AAAA;AAAA;AAAA;AAAA,mDAI4B,EAAE,OAAO;AAAA,gBAC5C,EAAE,WAAW,8BAA8B,EAAE,QAAQ,SAAS,OAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,wBAQ7D,EAAE,OAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,cAWnB,EAAE,aAAa;AAAA,6CACgB,EAAE,UAAU;AAAA,gBACzC,OAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAQvB;"}
|