@shibui-ui/ui 1.25.1 → 1.26.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.
Files changed (322) hide show
  1. package/dist/index.js +68 -68
  2. package/dist/index107.js +2 -2
  3. package/dist/index107.js.map +1 -1
  4. package/dist/index108.js +2 -2
  5. package/dist/index108.js.map +1 -1
  6. package/dist/index109.js +2 -2
  7. package/dist/index109.js.map +1 -1
  8. package/dist/index11.js +1 -1
  9. package/dist/index110.js +2 -2
  10. package/dist/index110.js.map +1 -1
  11. package/dist/index115.js +2 -2
  12. package/dist/index115.js.map +1 -1
  13. package/dist/index116.js +2 -2
  14. package/dist/index116.js.map +1 -1
  15. package/dist/index117.js +2 -2
  16. package/dist/index117.js.map +1 -1
  17. package/dist/index118.js +2 -2
  18. package/dist/index118.js.map +1 -1
  19. package/dist/index119.js +2 -2
  20. package/dist/index119.js.map +1 -1
  21. package/dist/index120.js +2 -2
  22. package/dist/index120.js.map +1 -1
  23. package/dist/index121.js +2 -2
  24. package/dist/index121.js.map +1 -1
  25. package/dist/index122.js +2 -2
  26. package/dist/index122.js.map +1 -1
  27. package/dist/index123.js +2 -2
  28. package/dist/index123.js.map +1 -1
  29. package/dist/index124.js +2 -2
  30. package/dist/index124.js.map +1 -1
  31. package/dist/index125.js +2 -2
  32. package/dist/index125.js.map +1 -1
  33. package/dist/index126.js +2 -2
  34. package/dist/index126.js.map +1 -1
  35. package/dist/index127.js +2 -2
  36. package/dist/index127.js.map +1 -1
  37. package/dist/index128.js +2 -2
  38. package/dist/index128.js.map +1 -1
  39. package/dist/index129.js +2 -2
  40. package/dist/index129.js.map +1 -1
  41. package/dist/index130.js +2 -2
  42. package/dist/index130.js.map +1 -1
  43. package/dist/index131.js +2 -2
  44. package/dist/index131.js.map +1 -1
  45. package/dist/index132.js +2 -2
  46. package/dist/index132.js.map +1 -1
  47. package/dist/index133.js +2 -2
  48. package/dist/index133.js.map +1 -1
  49. package/dist/index134.js +2 -2
  50. package/dist/index134.js.map +1 -1
  51. package/dist/index135.js +2 -2
  52. package/dist/index135.js.map +1 -1
  53. package/dist/index136.js +2 -2
  54. package/dist/index136.js.map +1 -1
  55. package/dist/index137.js +2 -2
  56. package/dist/index137.js.map +1 -1
  57. package/dist/index138.js +2 -2
  58. package/dist/index138.js.map +1 -1
  59. package/dist/index139.js +2 -2
  60. package/dist/index139.js.map +1 -1
  61. package/dist/index140.js +2 -2
  62. package/dist/index140.js.map +1 -1
  63. package/dist/index141.js +2 -2
  64. package/dist/index141.js.map +1 -1
  65. package/dist/index142.js +2 -2
  66. package/dist/index142.js.map +1 -1
  67. package/dist/index143.js +2 -2
  68. package/dist/index143.js.map +1 -1
  69. package/dist/index144.js +2 -2
  70. package/dist/index144.js.map +1 -1
  71. package/dist/index145.js +2 -2
  72. package/dist/index145.js.map +1 -1
  73. package/dist/index146.js +2 -2
  74. package/dist/index146.js.map +1 -1
  75. package/dist/index147.js +2 -2
  76. package/dist/index147.js.map +1 -1
  77. package/dist/index148.js +2 -2
  78. package/dist/index148.js.map +1 -1
  79. package/dist/index149.js +2 -2
  80. package/dist/index149.js.map +1 -1
  81. package/dist/index150.js +2 -2
  82. package/dist/index150.js.map +1 -1
  83. package/dist/index151.js +2 -2
  84. package/dist/index151.js.map +1 -1
  85. package/dist/index152.js +2 -2
  86. package/dist/index152.js.map +1 -1
  87. package/dist/index153.js +2 -2
  88. package/dist/index153.js.map +1 -1
  89. package/dist/index154.js +2 -2
  90. package/dist/index154.js.map +1 -1
  91. package/dist/index155.js +2 -2
  92. package/dist/index155.js.map +1 -1
  93. package/dist/index156.js +2 -2
  94. package/dist/index156.js.map +1 -1
  95. package/dist/index157.js +2 -2
  96. package/dist/index157.js.map +1 -1
  97. package/dist/index158.js +2 -2
  98. package/dist/index158.js.map +1 -1
  99. package/dist/index159.js +2 -2
  100. package/dist/index159.js.map +1 -1
  101. package/dist/index160.js +2 -2
  102. package/dist/index160.js.map +1 -1
  103. package/dist/index161.js +2 -2
  104. package/dist/index161.js.map +1 -1
  105. package/dist/index162.js +2 -2
  106. package/dist/index162.js.map +1 -1
  107. package/dist/index163.js +2 -2
  108. package/dist/index163.js.map +1 -1
  109. package/dist/index164.js +2 -2
  110. package/dist/index164.js.map +1 -1
  111. package/dist/index165.js +2 -2
  112. package/dist/index165.js.map +1 -1
  113. package/dist/index166.js +2 -2
  114. package/dist/index166.js.map +1 -1
  115. package/dist/index167.js +2 -2
  116. package/dist/index167.js.map +1 -1
  117. package/dist/index168.js +2 -2
  118. package/dist/index168.js.map +1 -1
  119. package/dist/index169.js +2 -2
  120. package/dist/index169.js.map +1 -1
  121. package/dist/index170.js +2 -2
  122. package/dist/index170.js.map +1 -1
  123. package/dist/index171.js +2 -2
  124. package/dist/index171.js.map +1 -1
  125. package/dist/index172.js +2 -2
  126. package/dist/index172.js.map +1 -1
  127. package/dist/index173.js +2 -2
  128. package/dist/index173.js.map +1 -1
  129. package/dist/index174.js +2 -2
  130. package/dist/index174.js.map +1 -1
  131. package/dist/index175.js +2 -2
  132. package/dist/index175.js.map +1 -1
  133. package/dist/index176.js +2 -2
  134. package/dist/index176.js.map +1 -1
  135. package/dist/index177.js +2 -2
  136. package/dist/index177.js.map +1 -1
  137. package/dist/index178.js +2 -2
  138. package/dist/index178.js.map +1 -1
  139. package/dist/index194.js +6 -97
  140. package/dist/index194.js.map +1 -1
  141. package/dist/index195.js +2 -2
  142. package/dist/index197.js +18 -2
  143. package/dist/index197.js.map +1 -1
  144. package/dist/index198.js +2 -74
  145. package/dist/index198.js.map +1 -1
  146. package/dist/index199.js +74 -64
  147. package/dist/index199.js.map +1 -1
  148. package/dist/index200.js +2 -2
  149. package/dist/index201.js +2 -57
  150. package/dist/index201.js.map +1 -1
  151. package/dist/index202.js +39 -2
  152. package/dist/index202.js.map +1 -1
  153. package/dist/index203.js +2 -2
  154. package/dist/index204.js +219 -144
  155. package/dist/index204.js.map +1 -1
  156. package/dist/index205.js +82 -43
  157. package/dist/index205.js.map +1 -1
  158. package/dist/index206.js +2 -51
  159. package/dist/index206.js.map +1 -1
  160. package/dist/index207.js +94 -2
  161. package/dist/index207.js.map +1 -1
  162. package/dist/index208.js +2 -33
  163. package/dist/index208.js.map +1 -1
  164. package/dist/index209.js +268 -2
  165. package/dist/index209.js.map +1 -1
  166. package/dist/index210.js +2 -6
  167. package/dist/index210.js.map +1 -1
  168. package/dist/index211.js +21 -2
  169. package/dist/index211.js.map +1 -1
  170. package/dist/index212.js +2 -260
  171. package/dist/index212.js.map +1 -1
  172. package/dist/index213.js +8 -16
  173. package/dist/index213.js.map +1 -1
  174. package/dist/index214.js +2 -2
  175. package/dist/index215.js +15 -2
  176. package/dist/index215.js.map +1 -1
  177. package/dist/index216.js +2 -66
  178. package/dist/index216.js.map +1 -1
  179. package/dist/index217.js +146 -24
  180. package/dist/index217.js.map +1 -1
  181. package/dist/index218.js +2 -2
  182. package/dist/index219.js +5 -2
  183. package/dist/index219.js.map +1 -1
  184. package/dist/index220.js +2 -81
  185. package/dist/index220.js.map +1 -1
  186. package/dist/index221.js +6 -78
  187. package/dist/index221.js.map +1 -1
  188. package/dist/index222.js +2 -2
  189. package/dist/index223.js +2 -133
  190. package/dist/index223.js.map +1 -1
  191. package/dist/index224.js +92 -2
  192. package/dist/index224.js.map +1 -1
  193. package/dist/index225.js +59 -2
  194. package/dist/index225.js.map +1 -1
  195. package/dist/index226.js +2 -72
  196. package/dist/index226.js.map +1 -1
  197. package/dist/index227.js +97 -94
  198. package/dist/index227.js.map +1 -1
  199. package/dist/index228.js +2 -2
  200. package/dist/index229.js +2 -71
  201. package/dist/index229.js.map +1 -1
  202. package/dist/index230.js +74 -2
  203. package/dist/index230.js.map +1 -1
  204. package/dist/index231.js +74 -2
  205. package/dist/index231.js.map +1 -1
  206. package/dist/index232.js +2 -12
  207. package/dist/index232.js.map +1 -1
  208. package/dist/index233.js +53 -5
  209. package/dist/index233.js.map +1 -1
  210. package/dist/index234.js +2 -2
  211. package/dist/index235.js +2 -18
  212. package/dist/index235.js.map +1 -1
  213. package/dist/index236.js +162 -2
  214. package/dist/index236.js.map +1 -1
  215. package/dist/index237.js +43 -84
  216. package/dist/index237.js.map +1 -1
  217. package/dist/index238.js +51 -2
  218. package/dist/index238.js.map +1 -1
  219. package/dist/index239.js +2 -2
  220. package/dist/index240.js +33 -39
  221. package/dist/index240.js.map +1 -1
  222. package/dist/index241.js +2 -2
  223. package/dist/index242.js +5 -236
  224. package/dist/index242.js.map +1 -1
  225. package/dist/index243.js +2 -82
  226. package/dist/index243.js.map +1 -1
  227. package/dist/index244.js +260 -2
  228. package/dist/index244.js.map +1 -1
  229. package/dist/index245.js +16 -93
  230. package/dist/index245.js.map +1 -1
  231. package/dist/index246.js +2 -2
  232. package/dist/index247.js +2 -268
  233. package/dist/index247.js.map +1 -1
  234. package/dist/index248.js +66 -2
  235. package/dist/index248.js.map +1 -1
  236. package/dist/index249.js +24 -13
  237. package/dist/index249.js.map +1 -1
  238. package/dist/index250.js +2 -2
  239. package/dist/index251.js +2 -9
  240. package/dist/index251.js.map +1 -1
  241. package/dist/index252.js +81 -2
  242. package/dist/index252.js.map +1 -1
  243. package/dist/index253.js +78 -12
  244. package/dist/index253.js.map +1 -1
  245. package/dist/index254.js +2 -2
  246. package/dist/index255.js +111 -132
  247. package/dist/index255.js.map +1 -1
  248. package/dist/index256.js +2 -2
  249. package/dist/index257.js +2 -5
  250. package/dist/index257.js.map +1 -1
  251. package/dist/index258.js +72 -2
  252. package/dist/index258.js.map +1 -1
  253. package/dist/index259.js +93 -5
  254. package/dist/index259.js.map +1 -1
  255. package/dist/index260.js +2 -2
  256. package/dist/index261.js +71 -2
  257. package/dist/index261.js.map +1 -1
  258. package/dist/index262.js +2 -92
  259. package/dist/index262.js.map +1 -1
  260. package/dist/index263.js +2 -59
  261. package/dist/index263.js.map +1 -1
  262. package/dist/index264.js +12 -2
  263. package/dist/index264.js.map +1 -1
  264. package/dist/index3.js +73 -73
  265. package/dist/index3.js.map +1 -1
  266. package/dist/index34.js +1 -1
  267. package/dist/index347.js +1 -1
  268. package/dist/index352.js +26 -19
  269. package/dist/index352.js.map +1 -1
  270. package/dist/index353.js +24 -13
  271. package/dist/index353.js.map +1 -1
  272. package/dist/index354.js +6 -20
  273. package/dist/index354.js.map +1 -1
  274. package/dist/index355.js +18 -56
  275. package/dist/index355.js.map +1 -1
  276. package/dist/index356.js +57 -55
  277. package/dist/index356.js.map +1 -1
  278. package/dist/index357.js +64 -32
  279. package/dist/index357.js.map +1 -1
  280. package/dist/index44.js +1 -1
  281. package/dist/index47.js +1 -1
  282. package/dist/index49.js +2 -2
  283. package/dist/index50.js +2 -2
  284. package/dist/index51.js +2 -2
  285. package/dist/index52.js +2 -2
  286. package/dist/index53.js +3 -3
  287. package/dist/index54.js +2 -2
  288. package/dist/index55.js +2 -2
  289. package/dist/index56.js +3 -3
  290. package/dist/index57.js +2 -2
  291. package/dist/index58.js +2 -2
  292. package/dist/index59.js +2 -2
  293. package/dist/index60.js +2 -2
  294. package/dist/index61.js +2 -2
  295. package/dist/index62.js +2 -2
  296. package/dist/index63.js +2 -2
  297. package/dist/index64.js +2 -2
  298. package/dist/index65.js +2 -2
  299. package/dist/index66.js +1 -1
  300. package/dist/index67.js +1 -1
  301. package/dist/index68.js +2 -2
  302. package/dist/index69.js +2 -2
  303. package/dist/index70.js +2 -2
  304. package/dist/index71.js +2 -2
  305. package/dist/index72.js +2 -2
  306. package/dist/index73.js +2 -2
  307. package/dist/index74.js +2 -2
  308. package/dist/index75.js +2 -2
  309. package/dist/index76.js +2 -2
  310. package/dist/index77.js +2 -2
  311. package/dist/index78.js +2 -2
  312. package/dist/index79.js +2 -2
  313. package/dist/index80.js +2 -2
  314. package/dist/index81.js +2 -2
  315. package/dist/index82.js +1 -1
  316. package/dist/index83.js +2 -2
  317. package/dist/index84.js +2 -2
  318. package/dist/shared/icons/icon-registry.d.ts +2 -2
  319. package/dist/shared/icons/icon-registry.d.ts.map +1 -1
  320. package/dist/src/shared/icons/icon-registry.d.ts +2 -2
  321. package/dist/src/shared/icons/icon-registry.d.ts.map +1 -1
  322. package/package.json +1 -1
package/dist/index216.js CHANGED
@@ -1,69 +1,5 @@
1
- import { nothing, html } from "lit";
2
- function inputTemplate(props) {
3
- const inputType = props.type === "password" && props.showPassword ? "text" : props.type;
4
- return html`
5
- <div class="input-group ${props.error ? "has-error" : ""} ${props.disabled ? "is-disabled" : ""}">
6
-
7
- ${props.label ? html`
8
- <label
9
- class="input-label"
10
- for="${props.uuid}"
11
- >
12
- ${props.label}
13
- ${props.required ? html`<span class="input-required" aria-hidden="true">*</span>` : nothing}
14
- </label>
15
- ` : nothing}
16
-
17
- <div class="input-wrapper">
18
- <slot name="prefix"></slot>
19
-
20
- <input
21
- id="${props.uuid}"
22
- type="${inputType}"
23
- placeholder="${props.placeholder}"
24
- ?required="${props.required}"
25
- ?disabled="${props.disabled}"
26
- aria-invalid="${props.error}"
27
- aria-describedby="${props.error && props.errorMessage ? `${props.uuid}-error` : nothing}"
28
- .value="${props.value}"
29
- @input="${props.handleInput}"
30
- />
31
-
32
- ${props.type === "password" ? html`
33
- <button
34
- class="input-password-toggle"
35
- type="button"
36
- @click="${props.handleTogglePassword}"
37
- aria-label="${props.showPassword ? "Ocultar contraseña" : "Mostrar contraseña"}"
38
- >
39
- ${props.showPassword ? html`
40
- <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5">
41
- <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"/>
42
- <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"/>
43
- <line x1="1" y1="1" x2="23" y2="23"/>
44
- </svg>
45
- ` : html`
46
- <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5">
47
- <path d="M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z"/>
48
- <circle cx="12" cy="12" r="3"/>
49
- </svg>
50
- `}
51
- </button>
52
- ` : nothing}
53
-
54
- <slot name="suffix"></slot>
55
- </div>
56
-
57
- ${props.error && props.errorMessage ? html`
58
- <span class="input-error-message" id="${props.uuid}-error" role="alert">
59
- ${props.errorMessage}
60
- </span>
61
- ` : nothing}
62
-
63
- </div>
64
- `;
65
- }
1
+ const stackCss = '@layer tokens,reset,components;@layer reset{:host{display:block;padding:10vh 0}*,*:before,*:after{box-sizing:border-box}}@layer components{.pts-container{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--lib-space-md)}.pts-layer{display:block;will-change:transform;transition:transform var(--duration-fast) var(--ease-out);white-space:nowrap;line-height:.9;text-transform:uppercase;-webkit-user-select:none;user-select:none}:host([size="sm"]) .pts-layer{font-size:clamp(2rem,6vw,4rem)}:host([size="md"]) .pts-layer{font-size:clamp(3rem,8vw,6rem)}:host([size="lg"]) .pts-layer,:host(:not([size])) .pts-layer{font-size:clamp(4rem,10vw,8rem)}:host([size="xl"]) .pts-layer{font-size:clamp(5rem,13vw,10rem)}:host([size="2xl"]) .pts-layer{font-size:clamp(6rem,16vw,14rem)}.pts-layer--outline{font-family:var(--lib-font-display);font-weight:300;letter-spacing:var(--tracking-tight);-webkit-text-stroke:1px var(--text-primary);color:transparent}.pts-layer--italic{font-family:var(--lib-font-body);font-style:italic;font-weight:400;letter-spacing:var(--tracking-tight);color:var(--text-primary)}:host([color="muted"]) .pts-layer--outline{-webkit-text-stroke-color:var(--text-muted)}:host([color="muted"]) .pts-layer--italic{color:var(--text-muted)}:host([color="kaki"]) .pts-layer--outline{-webkit-text-stroke-color:var(--color-kaki-500)}:host([color="kaki"]) .pts-layer--italic{color:var(--color-kaki-500)}:host([color="celadon"]) .pts-layer--outline{-webkit-text-stroke-color:var(--color-celadon-500)}:host([color="celadon"]) .pts-layer--italic{color:var(--color-celadon-500)}@media(prefers-reduced-motion:reduce){.pts-layer{transition:none;transform:none!important}}}';
66
2
  export {
67
- inputTemplate
3
+ stackCss as default
68
4
  };
69
5
  //# sourceMappingURL=index216.js.map
@@ -1 +1 @@
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;"}
1
+ {"version":3,"file":"index216.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
package/dist/index217.js CHANGED
@@ -1,35 +1,157 @@
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];
1
+ import { html, nothing } from "lit";
2
+ const svgSearch = html`
3
+ <svg width="11" height="11" viewBox="0 0 16 16" fill="none"
4
+ stroke="currentColor" stroke-width="1.6" stroke-linecap="round">
5
+ <circle cx="7" cy="7" r="5"/><line x1="11" y1="11" x2="14" y2="14"/>
6
+ </svg>`;
7
+ const svgLogout = html`
8
+ <svg width="11" height="11" viewBox="0 0 14 14" fill="none"
9
+ stroke="currentColor" stroke-width="1.6" stroke-linecap="round">
10
+ <path d="M6 2H3a1 1 0 00-1 1v8a1 1 0 001 1h3"/>
11
+ <polyline points="10,4 12,7 10,10"/>
12
+ <line x1="4" y1="7" x2="12" y2="7"/>
13
+ </svg>`;
14
+ const svgMenu = html`
15
+ <svg width="18" height="18" viewBox="0 0 16 16" fill="none"
16
+ stroke="currentColor" stroke-width="1.6" stroke-linecap="round">
17
+ <line x1="2" y1="4" x2="14" y2="4"/>
18
+ <line x1="2" y1="8" x2="14" y2="8"/>
19
+ <line x1="2" y1="12" x2="14" y2="12"/>
20
+ </svg>`;
21
+ const svgClose = html`
22
+ <svg width="18" height="18" viewBox="0 0 14 14" fill="none"
23
+ stroke="currentColor" stroke-width="1.6" stroke-linecap="round">
24
+ <line x1="2" y1="2" x2="12" y2="12"/>
25
+ <line x1="12" y1="2" x2="2" y2="12"/>
26
+ </svg>`;
27
+ function renderBadge(badge) {
28
+ if (badge === void 0 || badge === null || badge === "") return nothing;
29
+ if (badge === "dot") {
30
+ return html`<span class="sb-badge sb-badge--dot" aria-hidden="true"></span>`;
31
+ }
32
+ const n = typeof badge === "number" ? badge : parseInt(String(badge), 10);
33
+ const cls = !isNaN(n) && n > 9 || isNaN(n) ? "sb-badge--kaki" : "sb-badge--muted";
34
+ return html`<span class="sb-badge ${cls}">${badge}</span>`;
35
+ }
36
+ function renderHeader(p) {
37
+ const isGlitch = p.variant === "glitch";
38
+ const isKintsugi = p.variant === "kintsugi";
39
+ return html`
40
+ <div class="sb-header" part="header">
41
+ <div class="sb-logo-mark" part="logo-mark">
42
+ ${isKintsugi ? html`<span>${p.logoMark}</span>` : p.logoMark}
43
+ </div>
44
+ ${isGlitch ? html`<span class="sb-brand">⌗ ${p.brandName.toUpperCase()}</span>
45
+ <span class="sb-version">v0.1</span>` : html`<span class="sb-brand">${p.brandName}</span>`}
46
+ </div>
47
+ `;
48
+ }
49
+ function renderSearch(p) {
50
+ if (!p.showSearch) return nothing;
11
51
  return html`
12
- <div class="alert" role="alert" aria-live="polite">
52
+ <div class="sb-search" part="search">
53
+ <div class="sb-search-inner">
54
+ ${svgSearch}
55
+ <input
56
+ class="sb-search-input"
57
+ type="search"
58
+ placeholder="${p.searchPlaceholder}"
59
+ aria-label="Buscar"
60
+ @input="${(e) => p.onSearchInput(e.target.value)}"
61
+ />
62
+ <span class="sb-search-kbd">⌘K</span>
63
+ </div>
64
+ </div>
65
+ `;
66
+ }
67
+ function renderNav(p) {
68
+ const isGlitch = p.variant === "glitch";
69
+ return html`
70
+ <nav class="sb-nav" part="nav" aria-label="Navegación principal">
71
+ <div class="sb-indicator" part="indicator"></div>
72
+
73
+ ${p.links.map((link) => html`
74
+ ${link.group ? html`
75
+ <div class="sb-group" part="group">
76
+ ${isGlitch ? `// ${link.group}` : link.group}
77
+ </div>
78
+ ` : nothing}
13
79
 
14
- <div class="alert-content">
15
- <p class="alert-title">${displayHeading}</p>
16
- <div class="alert-body">
17
- <slot></slot>
18
- </div>
80
+ <button
81
+ class="sb-link ${link.id === p.active ? "is-active" : ""}"
82
+ part="link${link.id === p.active ? " link-active" : ""}"
83
+ data-id="${link.id}"
84
+ ?disabled="${link.disabled}"
85
+ aria-current="${link.id === p.active ? "page" : nothing}"
86
+ @click="${() => {
87
+ if (!link.disabled) p.onLinkClick(link.id);
88
+ }}"
89
+ >
90
+ <span class="sb-link-icon">
91
+ <lib-icon name="${link.icon}" size="sm"></lib-icon>
92
+ </span>
93
+
94
+ ${isGlitch ? html`<span class="sb-link-prefix">›</span>` : nothing}
95
+
96
+ <span class="sb-link-label">${link.label}</span>
97
+
98
+ ${renderBadge(link.badge)}
99
+ </button>
100
+ `)}
101
+ </nav>
102
+ `;
103
+ }
104
+ function renderUser(p) {
105
+ const isDark = p.variant === "dark" || !p.variant;
106
+ return html`
107
+ <div class="sb-user" part="user">
108
+ <div class="sb-user-avatar" part="user-avatar">
109
+ ${p.userAvatar ? html`<img src="${p.userAvatar}" alt="${p.userName}">` : p.userInitials || p.userName.slice(0, 1)}
19
110
  </div>
20
111
 
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}
112
+ <div class="sb-user-info">
113
+ <div class="sb-user-name">${p.userName}</div>
114
+ ${p.userRole ? html`<div class="sb-user-role">${p.userRole}</div>` : nothing}
115
+ </div>
28
116
 
117
+ ${isDark ? html`<span class="sb-user-dot" aria-hidden="true"></span>` : p.showUserAction ? html`
118
+ <button
119
+ class="sb-user-action"
120
+ aria-label="Acción de usuario"
121
+ @click="${p.onUserAction}"
122
+ >${svgLogout}</button>` : nothing}
29
123
  </div>
30
124
  `;
31
125
  }
126
+ function sidebarTemplate(p) {
127
+ return html`
128
+ <div
129
+ class="sb-overlay ${p.mobileOpen ? "is-open" : ""}"
130
+ @click="${p.onOverlayClick}"
131
+ aria-hidden="true"
132
+ ></div>
133
+
134
+ <aside
135
+ class="sidebar
136
+ ${p.mobileOpen ? "is-open" : ""}
137
+ ${p.collapsed ? "is-collapsed" : ""}"
138
+ part="sidebar"
139
+ >
140
+ ${renderHeader(p)}
141
+ ${renderSearch(p)}
142
+ ${renderNav(p)}
143
+ ${renderUser(p)}
144
+ </aside>
145
+
146
+ <button
147
+ class="sb-toggle"
148
+ aria-label="${p.mobileOpen ? "Cerrar menú" : "Abrir menú"}"
149
+ aria-expanded="${p.mobileOpen}"
150
+ @click="${p.onToggleClick}"
151
+ >${p.mobileOpen ? svgClose : svgMenu}</button>
152
+ `;
153
+ }
32
154
  export {
33
- alertTemplate
155
+ sidebarTemplate
34
156
  };
35
157
  //# sourceMappingURL=index217.js.map
@@ -1 +1 @@
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;"}
1
+ {"version":3,"file":"index217.js","sources":["../src/components/organisms/sidebar/lib-sidebar.html.ts"],"sourcesContent":["import { html, nothing, TemplateResult } from 'lit';\nimport type { SidebarLink } from '../../../types';\n\nexport interface SidebarTemplateProps {\n /* Header */\n logoMark: string;\n brandName: string;\n /* Search */\n showSearch: boolean;\n searchPlaceholder: string;\n /* Nav */\n links: SidebarLink[];\n active: string;\n /* User footer */\n userName: string;\n userRole: string;\n userAvatar: string;\n userInitials:string;\n showUserAction: boolean;\n /* State */\n variant: string;\n collapsed: boolean;\n mobileOpen: boolean;\n /* Handlers */\n onLinkClick: (id: string) => void;\n onUserAction: () => void;\n onSearchInput: (q: string) => void;\n onOverlayClick: () => void;\n onToggleClick: () => void;\n}\n\n/* ── SVG icons inline — no lib-icon dependency for shell elements ── */\nconst svgSearch = html`\n <svg width=\"11\" height=\"11\" viewBox=\"0 0 16 16\" fill=\"none\"\n stroke=\"currentColor\" stroke-width=\"1.6\" stroke-linecap=\"round\">\n <circle cx=\"7\" cy=\"7\" r=\"5\"/><line x1=\"11\" y1=\"11\" x2=\"14\" y2=\"14\"/>\n </svg>`;\n\nconst svgLogout = html`\n <svg width=\"11\" height=\"11\" viewBox=\"0 0 14 14\" fill=\"none\"\n stroke=\"currentColor\" stroke-width=\"1.6\" stroke-linecap=\"round\">\n <path d=\"M6 2H3a1 1 0 00-1 1v8a1 1 0 001 1h3\"/>\n <polyline points=\"10,4 12,7 10,10\"/>\n <line x1=\"4\" y1=\"7\" x2=\"12\" y2=\"7\"/>\n </svg>`;\n\nconst svgMenu = html`\n <svg width=\"18\" height=\"18\" viewBox=\"0 0 16 16\" fill=\"none\"\n stroke=\"currentColor\" stroke-width=\"1.6\" stroke-linecap=\"round\">\n <line x1=\"2\" y1=\"4\" x2=\"14\" y2=\"4\"/>\n <line x1=\"2\" y1=\"8\" x2=\"14\" y2=\"8\"/>\n <line x1=\"2\" y1=\"12\" x2=\"14\" y2=\"12\"/>\n </svg>`;\n\nconst svgClose = html`\n <svg width=\"18\" height=\"18\" viewBox=\"0 0 14 14\" fill=\"none\"\n stroke=\"currentColor\" stroke-width=\"1.6\" stroke-linecap=\"round\">\n <line x1=\"2\" y1=\"2\" x2=\"12\" y2=\"12\"/>\n <line x1=\"12\" y1=\"2\" x2=\"2\" y2=\"12\"/>\n </svg>`;\n\n/* ── Badge ── */\nfunction renderBadge(badge: string | number | undefined): TemplateResult | typeof nothing {\n if (badge === undefined || badge === null || badge === '') return nothing;\n if (badge === 'dot') {\n return html`<span class=\"sb-badge sb-badge--dot\" aria-hidden=\"true\"></span>`;\n }\n const n = typeof badge === 'number' ? badge : parseInt(String(badge), 10);\n const cls = (!isNaN(n) && n > 9) || isNaN(n) ? 'sb-badge--kaki' : 'sb-badge--muted';\n return html`<span class=\"sb-badge ${cls}\">${badge}</span>`;\n}\n\n/* ── Header ── */\nfunction renderHeader(p: SidebarTemplateProps): TemplateResult {\n const isGlitch = p.variant === 'glitch';\n const isKintsugi = p.variant === 'kintsugi';\n\n return html`\n <div class=\"sb-header\" part=\"header\">\n <div class=\"sb-logo-mark\" part=\"logo-mark\">\n ${isKintsugi\n ? html`<span>${p.logoMark}</span>`\n : p.logoMark}\n </div>\n ${isGlitch\n ? html`<span class=\"sb-brand\">⌗ ${p.brandName.toUpperCase()}</span>\n <span class=\"sb-version\">v0.1</span>`\n : html`<span class=\"sb-brand\">${p.brandName}</span>`}\n </div>\n `;\n}\n\n/* ── Search ── */\nfunction renderSearch(p: SidebarTemplateProps): TemplateResult | typeof nothing {\n if (!p.showSearch) return nothing;\n return html`\n <div class=\"sb-search\" part=\"search\">\n <div class=\"sb-search-inner\">\n ${svgSearch}\n <input\n class=\"sb-search-input\"\n type=\"search\"\n placeholder=\"${p.searchPlaceholder}\"\n aria-label=\"Buscar\"\n @input=\"${(e: Event): void =>\n p.onSearchInput((e.target as HTMLInputElement).value)}\"\n />\n <span class=\"sb-search-kbd\">⌘K</span>\n </div>\n </div>\n `;\n}\n\n/* ── Nav ── */\nfunction renderNav(p: SidebarTemplateProps): TemplateResult {\n const isGlitch = p.variant === 'glitch';\n\n return html`\n <nav class=\"sb-nav\" part=\"nav\" aria-label=\"Navegación principal\">\n <div class=\"sb-indicator\" part=\"indicator\"></div>\n\n ${p.links.map(link => html`\n ${link.group ? html`\n <div class=\"sb-group\" part=\"group\">\n ${isGlitch ? `// ${link.group}` : link.group}\n </div>\n ` : nothing}\n\n <button\n class=\"sb-link ${link.id === p.active ? 'is-active' : ''}\"\n part=\"link${link.id === p.active ? ' link-active' : ''}\"\n data-id=\"${link.id}\"\n ?disabled=\"${link.disabled}\"\n aria-current=\"${link.id === p.active ? 'page' : nothing}\"\n @click=\"${(): void => { if (!link.disabled) p.onLinkClick(link.id); }}\"\n >\n <span class=\"sb-link-icon\">\n <lib-icon name=\"${link.icon}\" size=\"sm\"></lib-icon>\n </span>\n\n ${isGlitch\n ? html`<span class=\"sb-link-prefix\">›</span>`\n : nothing}\n\n <span class=\"sb-link-label\">${link.label}</span>\n\n ${renderBadge(link.badge)}\n </button>\n `)}\n </nav>\n `;\n}\n\n/* ── User footer ── */\nfunction renderUser(p: SidebarTemplateProps): TemplateResult {\n const isDark = p.variant === 'dark' || !p.variant;\n\n return html`\n <div class=\"sb-user\" part=\"user\">\n <div class=\"sb-user-avatar\" part=\"user-avatar\">\n ${p.userAvatar\n ? html`<img src=\"${p.userAvatar}\" alt=\"${p.userName}\">`\n : p.userInitials || p.userName.slice(0, 1)}\n </div>\n\n <div class=\"sb-user-info\">\n <div class=\"sb-user-name\">${p.userName}</div>\n ${p.userRole ? html`<div class=\"sb-user-role\">${p.userRole}</div>` : nothing}\n </div>\n\n ${isDark\n ? html`<span class=\"sb-user-dot\" aria-hidden=\"true\"></span>`\n : p.showUserAction\n ? html`\n <button\n class=\"sb-user-action\"\n aria-label=\"Acción de usuario\"\n @click=\"${p.onUserAction}\"\n >${svgLogout}</button>`\n : nothing}\n </div>\n `;\n}\n\n/* ── Template principal ── */\nexport function sidebarTemplate(p: SidebarTemplateProps): TemplateResult {\n return html`\n <div\n class=\"sb-overlay ${p.mobileOpen ? 'is-open' : ''}\"\n @click=\"${p.onOverlayClick}\"\n aria-hidden=\"true\"\n ></div>\n\n <aside\n class=\"sidebar\n ${p.mobileOpen ? 'is-open' : ''}\n ${p.collapsed ? 'is-collapsed' : ''}\"\n part=\"sidebar\"\n >\n ${renderHeader(p)}\n ${renderSearch(p)}\n ${renderNav(p)}\n ${renderUser(p)}\n </aside>\n\n <button\n class=\"sb-toggle\"\n aria-label=\"${p.mobileOpen ? 'Cerrar menú' : 'Abrir menú'}\"\n aria-expanded=\"${p.mobileOpen}\"\n @click=\"${p.onToggleClick}\"\n >${p.mobileOpen ? svgClose : svgMenu}</button>\n `;\n}"],"names":[],"mappings":";AAgCA,MAAM,YAAY;AAAA;AAAA;AAAA;AAAA;AAMlB,MAAM,YAAY;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAQlB,MAAM,UAAU;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAQhB,MAAM,WAAW;AAAA;AAAA;AAAA;AAAA;AAAA;AAQjB,SAAS,YAAY,OAAqE;AACxF,MAAI,UAAU,UAAa,UAAU,QAAQ,UAAU,GAAI,QAAO;AAClE,MAAI,UAAU,OAAO;AACnB,WAAO;AAAA,EACT;AACA,QAAM,IAAI,OAAO,UAAU,WAAW,QAAQ,SAAS,OAAO,KAAK,GAAG,EAAE;AACxE,QAAM,MAAO,CAAC,MAAM,CAAC,KAAK,IAAI,KAAM,MAAM,CAAC,IAAI,mBAAmB;AAClE,SAAO,6BAA6B,GAAG,KAAK,KAAK;AACnD;AAGA,SAAS,aAAa,GAAyC;AAC7D,QAAM,WAAW,EAAE,YAAY;AAC/B,QAAM,aAAa,EAAE,YAAY;AAEjC,SAAO;AAAA;AAAA;AAAA,UAGC,aACE,aAAa,EAAE,QAAQ,YACvB,EAAE,QAAQ;AAAA;AAAA,QAEd,WACE,gCAAgC,EAAE,UAAU,aAAa;AAAA,wDAEzD,8BAA8B,EAAE,SAAS,SAAS;AAAA;AAAA;AAG5D;AAGA,SAAS,aAAa,GAA0D;AAC9E,MAAI,CAAC,EAAE,WAAY,QAAO;AAC1B,SAAO;AAAA;AAAA;AAAA,UAGC,SAAS;AAAA;AAAA;AAAA;AAAA,yBAIM,EAAE,iBAAiB;AAAA;AAAA,oBAExB,CAAC,MACT,EAAE,cAAe,EAAE,OAA4B,KAAK,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAMjE;AAGA,SAAS,UAAU,GAAyC;AAC1D,QAAM,WAAW,EAAE,YAAY;AAE/B,SAAO;AAAA;AAAA;AAAA;AAAA,QAID,EAAE,MAAM,IAAI,CAAA,SAAQ;AAAA,UAClB,KAAK,QAAQ;AAAA;AAAA,cAET,WAAW,MAAM,KAAK,KAAK,KAAK,KAAK,KAAK;AAAA;AAAA,YAE5C,OAAO;AAAA;AAAA;AAAA,2BAGQ,KAAK,OAAO,EAAE,SAAS,cAAc,EAAE;AAAA,sBAC5C,KAAK,OAAO,EAAE,SAAS,iBAAiB,EAAE;AAAA,qBAC3C,KAAK,EAAE;AAAA,uBACL,KAAK,QAAQ;AAAA,0BACV,KAAK,OAAO,EAAE,SAAS,SAAS,OAAO;AAAA,oBAC7C,MAAY;AAAE,QAAI,CAAC,KAAK,SAAU,GAAE,YAAY,KAAK,EAAE;AAAA,EAAG,CAAC;AAAA;AAAA;AAAA,8BAGjD,KAAK,IAAI;AAAA;AAAA;AAAA,YAG3B,WACE,8CACA,OAAO;AAAA;AAAA,wCAEmB,KAAK,KAAK;AAAA;AAAA,YAEtC,YAAY,KAAK,KAAK,CAAC;AAAA;AAAA,OAE5B,CAAC;AAAA;AAAA;AAGR;AAGA,SAAS,WAAW,GAAyC;AAC3D,QAAM,SAAS,EAAE,YAAY,UAAU,CAAC,EAAE;AAE1C,SAAO;AAAA;AAAA;AAAA,UAGC,EAAE,aACA,iBAAiB,EAAE,UAAU,UAAU,EAAE,QAAQ,OACjD,EAAE,gBAAgB,EAAE,SAAS,MAAM,GAAG,CAAC,CAAC;AAAA;AAAA;AAAA;AAAA,oCAIhB,EAAE,QAAQ;AAAA,UACpC,EAAE,WAAW,iCAAiC,EAAE,QAAQ,WAAW,OAAO;AAAA;AAAA;AAAA,QAG5E,SACE,6DACA,EAAE,iBACA;AAAA;AAAA;AAAA;AAAA,0BAIc,EAAE,YAAY;AAAA,iBACvB,SAAS,cACd,OAAO;AAAA;AAAA;AAGnB;AAGO,SAAS,gBAAgB,GAAyC;AACvE,SAAO;AAAA;AAAA,0BAEiB,EAAE,aAAa,YAAY,EAAE;AAAA,gBACvC,EAAE,cAAc;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,UAMtB,EAAE,aAAa,YAAY,EAAE;AAAA,UAC7B,EAAE,YAAa,iBAAiB,EAAE;AAAA;AAAA;AAAA,QAGpC,aAAa,CAAC,CAAC;AAAA,QACf,aAAa,CAAC,CAAC;AAAA,QACf,UAAU,CAAC,CAAC;AAAA,QACZ,WAAW,CAAC,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA,oBAKD,EAAE,aAAa,gBAAgB,YAAY;AAAA,uBACxC,EAAE,UAAU;AAAA,gBACnB,EAAE,aAAa;AAAA,OACxB,EAAE,aAAa,WAAW,OAAO;AAAA;AAExC;"}
package/dist/index218.js CHANGED
@@ -1,5 +1,5 @@
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}}';
1
+ const componentCss = '@layer tokens,reset,components;@layer reset{:host{display:block;height:100%}*,*:before,*:after{box-sizing:border-box}a{text-decoration:none}button{font:inherit;cursor:pointer;border:none;background:none}}@layer components{.sidebar{width:var(--lib-sidebar-width, 240px);height:100vh;display:flex;flex-direction:column;flex-shrink:0;position:relative;z-index:var(--z-raised);overflow:hidden;transition:width var(--duration-slow) var(--ease-out),transform var(--duration-slow) var(--ease-out);background:var(--color-washi-950);border-right:1px solid rgb(255,255,255,.07)}.sidebar.is-collapsed{width:64px}:host([variant="light"]) .sidebar{background:var(--bg-elevated);border-right:1px solid var(--border-subtle)}:host([variant="kintsugi"]) .sidebar{background:var(--color-washi-950);border-right:none}:host([variant="kintsugi"]) .sidebar:after{content:"";position:absolute;top:0;right:0;bottom:0;width:2px;background:linear-gradient(180deg,transparent 0%,rgb(184,90,30,.3) 10%,var(--color-kaki-400) 30%,#F5D08A 50%,var(--color-kaki-400) 70%,rgb(184,90,30,.3) 90%,transparent 100%);background-size:100% 200%;animation:sb-kintsugi-seam 5s linear infinite;pointer-events:none;z-index:2}@keyframes sb-kintsugi-seam{0%{background-position:0 -100%}to{background-position:0 100%}}:host([variant="glitch"]) .sidebar{background:var(--color-washi-950);border-right:1px solid rgb(255,255,255,.06);animation:sb-glitch-border 7s steps(1) infinite}:host([variant="glitch"]) .sidebar:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:repeating-linear-gradient(0deg,transparent,transparent 3px,rgb(255,255,255,.015) 3px,rgb(255,255,255,.015) 4px);pointer-events:none;z-index:5;animation:sb-scanline-shift 7s steps(1) infinite}@keyframes sb-glitch-border{0%,88%,to{border-color:#ffffff0f;box-shadow:none}89%{border-color:#d9723466;box-shadow:-2px 0 #d9723433}90%{border-color:#4e94824d;box-shadow:2px 0 #4e948226}91%{border-color:#ffffff0f;box-shadow:none}}@keyframes sb-scanline-shift{0%,87%,to{opacity:1;transform:none}88%{transform:translateY(-3px);opacity:.7}89%{transform:translateY(2px);opacity:.9}90%{transform:none;opacity:1}}.sb-header{height:56px;padding:0 var(--lib-space-md);display:flex;align-items:center;gap:var(--lib-space-sm);flex-shrink:0;border-bottom:1px solid rgb(255,255,255,.06);position:relative;z-index:1;overflow:hidden}:host([variant="light"]) .sb-header{border-bottom-color:var(--color-washi-100)}:host([variant="kintsugi"]) .sb-header{border-bottom-color:#b85a1e1f}.sb-logo-mark{width:28px;height:28px;background:var(--color-kaki-500);display:flex;align-items:center;justify-content:center;font-family:var(--lib-font-display);color:#fff;font-size:1rem;font-weight:300;flex-shrink:0}:host([variant="dark"]) .sb-logo-mark,.sb-logo-mark{background:var(--color-kaki-500);color:#fff}:host([variant="kintsugi"]) .sb-logo-mark{position:relative;background:transparent;border:none;overflow:visible;border-radius:50%}:host([variant="kintsugi"]) .sb-logo-mark:before{content:"";position:absolute;top:-2px;right:-2px;bottom:-2px;left:-2px;border-radius:50%;background:conic-gradient(var(--color-kaki-600),#F5D08A,var(--color-kaki-400),#F5D08A,var(--color-kaki-600));animation:sb-logo-ring 4s linear infinite}:host([variant="kintsugi"]) .sb-logo-mark:after{content:"";position:absolute;top:1px;right:1px;bottom:1px;left:1px;border-radius:50%;background:var(--color-washi-950)}:host([variant="kintsugi"]) .sb-logo-mark span{position:relative;z-index:2;color:var(--color-kaki-400)}@keyframes sb-logo-ring{to{transform:rotate(360deg)}}.sb-brand{font-family:var(--lib-font-display);font-size:1.1rem;font-weight:300;letter-spacing:.08em;white-space:nowrap;overflow:hidden;transition:opacity var(--duration-base) var(--ease-out),width var(--duration-slow) var(--ease-out);color:#faf7f4a6}:host([variant="light"]) .sb-brand{color:var(--text-primary)}:host([variant="kintsugi"]) .sb-brand{color:#faf7f480}:host([variant="glitch"]) .sb-brand{font-family:var(--lib-font-mono);font-size:.75rem;letter-spacing:.2em;color:var(--color-kaki-400)}.sidebar.is-collapsed .sb-brand{opacity:0;width:0;pointer-events:none}.sb-version{margin-left:auto;font-family:var(--lib-font-mono);font-size:8px;letter-spacing:.12em;color:#faf7f426;white-space:nowrap;transition:opacity var(--duration-base)}.sidebar.is-collapsed .sb-version{opacity:0;pointer-events:none}.sb-search{padding:var(--lib-space-sm) var(--lib-space-md);flex-shrink:0;overflow:hidden;transition:max-height var(--duration-slow) var(--ease-out),opacity var(--duration-base);max-height:52px}.sidebar.is-collapsed .sb-search{opacity:0;max-height:0;padding:0;pointer-events:none}.sb-search-inner{display:flex;align-items:center;gap:var(--lib-space-xs);border:1px solid rgb(255,255,255,.08);background:#ffffff0a;padding:0 var(--lib-space-sm);height:30px;transition:border-color var(--duration-base)}.sb-search-inner:focus-within{border-color:#ffffff2e}.sb-search-inner svg{flex-shrink:0;color:#faf7f440}.sb-search-input{flex:1;background:none;border:none;outline:none;font-family:var(--lib-font-mono);font-size:9px;letter-spacing:.1em;color:#faf7f499;width:100%}.sb-search-input::placeholder{color:#faf7f433}.sb-search-kbd{margin-left:auto;font-family:var(--lib-font-mono);font-size:8px;color:#faf7f426;border:1px solid rgb(255,255,255,.1);padding:0 4px;white-space:nowrap;flex-shrink:0}.sb-nav{flex:1;padding:var(--lib-space-md) 0;display:flex;flex-direction:column;position:relative;z-index:1;overflow-y:auto;scrollbar-width:none}.sb-nav::-webkit-scrollbar{display:none}.sb-indicator{position:absolute;left:0;width:2px;background:var(--color-kaki-500);border-radius:0 2px 2px 0;pointer-events:none;opacity:0;transition:top .4s cubic-bezier(.16,1,.3,1),height .4s cubic-bezier(.16,1,.3,1),opacity var(--duration-base)}.sb-indicator.visible{opacity:1}:host([variant="kintsugi"]) .sb-indicator{background:var(--color-kaki-400)}.sidebar.is-collapsed .sb-indicator{display:none}.sb-group{padding:var(--lib-space-sm) var(--lib-space-md) var(--lib-space-xs);font-family:var(--lib-font-mono);font-size:8px;letter-spacing:.22em;text-transform:uppercase;color:#faf7f42e;white-space:nowrap;overflow:hidden;transition:opacity var(--duration-base),max-height var(--duration-slow),padding var(--duration-slow);max-height:32px}:host([variant="light"]) .sb-group{color:var(--color-washi-400)}:host([variant="kintsugi"]) .sb-group{color:#b85a1e59}:host([variant="glitch"]) .sb-group{color:#faf7f426;letter-spacing:.16em}.sidebar.is-collapsed .sb-group{opacity:0;max-height:0;padding-top:0;padding-bottom:0;pointer-events:none}.sb-link{display:flex;align-items:center;gap:var(--lib-space-sm);padding:var(--lib-space-sm) var(--lib-space-md);width:100%;text-align:left;border-left:2px solid transparent;background:transparent;cursor:pointer;position:relative;transition:color var(--duration-fast),background var(--duration-fast),border-color var(--duration-fast);font-family:var(--lib-font-body);font-size:var(--text-sm);color:#faf7f459}:host([variant="light"]) .sb-link{color:var(--color-washi-600)}:host([variant="kintsugi"]) .sb-link{color:#faf7f44d}:host([variant="glitch"]) .sb-link{font-family:var(--lib-font-mono);font-size:9px;letter-spacing:.1em;color:#faf7f440;padding:.45rem var(--lib-space-md)}.sb-link:hover:not(.is-active,[disabled]){color:#faf7f4b3;background:#ffffff0a;border-left-color:#ffffff26}:host([variant="light"]) .sb-link:hover:not(.is-active,[disabled]){color:var(--color-washi-900);background:var(--color-washi-50);border-left-color:var(--color-washi-300)}:host([variant="kintsugi"]) .sb-link:hover:not(.is-active,[disabled]){color:#faf7f499;background:#b85a1e0d}:host([variant="glitch"]) .sb-link:hover:not(.is-active,[disabled]){color:#faf7f499;background:#ffffff08}.sb-link.is-active{color:var(--color-kaki-400);background:#b85a1e1a;border-left-color:var(--color-kaki-500)}:host([variant="light"]) .sb-link.is-active{color:var(--color-kaki-600);background:var(--color-kaki-50);border-left-color:var(--color-kaki-500)}:host([variant="kintsugi"]) .sb-link.is-active{color:var(--color-kaki-400);background:linear-gradient(90deg,rgb(184,90,30,.15),transparent);border-left-color:var(--color-kaki-400)}:host([variant="glitch"]) .sb-link.is-active{color:var(--color-kaki-400);background:#b85a1e14;border-left-color:var(--color-kaki-500)}.sb-link[disabled]{opacity:.4;cursor:not-allowed;pointer-events:none}.sb-link-icon{display:flex;align-items:center;flex-shrink:0;font-size:15px;opacity:.7;transition:opacity var(--duration-base)}.sb-link.is-active .sb-link-icon{opacity:1}.sb-link-prefix{font-size:9px;flex-shrink:0;color:var(--color-kaki-400)}.sb-link:not(.is-active) .sb-link-prefix{opacity:.4;color:inherit}.sb-link-label{white-space:nowrap;overflow:hidden;transition:opacity var(--duration-base),width var(--duration-slow) var(--ease-out)}.sb-badge{margin-left:auto;font-family:var(--lib-font-mono);font-size:8px;padding:1px 6px;letter-spacing:.1em;flex-shrink:0;transition:opacity var(--duration-base)}.sb-badge--kaki{background:var(--color-kaki-500);color:#fff}.sb-badge--muted{background:var(--color-washi-200);color:var(--color-washi-600)}:host([variant="kintsugi"]) .sb-badge--kaki{background:transparent;border:1px solid rgb(184,90,30,.3);color:var(--color-kaki-400)}.sb-badge--dot{width:6px;height:6px;border-radius:50%;background:var(--color-kaki-400);padding:0}:host([variant="glitch"]) .sb-badge--dot{animation:sb-glitch-pulse 2s ease-in-out infinite}@keyframes sb-glitch-pulse{0%,to{opacity:1}50%{opacity:.2}}.sidebar.is-collapsed .sb-link{position:relative;padding:0;height:44px;border-left-color:transparent}.sidebar.is-collapsed .sb-link.is-active{background:#b85a1e26;border-left-color:transparent}:host([variant="light"]) .sidebar.is-collapsed .sb-link.is-active{background:var(--color-kaki-50)}.sidebar.is-collapsed .sb-link-label,.sidebar.is-collapsed .sb-badge,.sidebar.is-collapsed .sb-link-prefix{display:none}.sidebar.is-collapsed .sb-link-icon{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-size:17px;opacity:1}.sb-user{padding:var(--lib-space-md);border-top:1px solid rgb(255,255,255,.06);display:flex;align-items:center;gap:var(--lib-space-sm);flex-shrink:0;overflow:hidden;position:relative;z-index:1;transition:padding var(--duration-slow)}:host([variant="light"]) .sb-user{border-top-color:var(--color-washi-100)}:host([variant="kintsugi"]) .sb-user{border-top-color:#b85a1e1f}:host([variant="glitch"]) .sb-user{border-top-color:#ffffff0d}.sidebar.is-collapsed .sb-user{justify-content:center;padding:var(--lib-space-sm)}.sb-user-avatar{width:30px;height:30px;border-radius:50%;background:var(--color-kaki-500);display:flex;align-items:center;justify-content:center;font-family:var(--lib-font-display);color:#fff;font-size:.95rem;flex-shrink:0;overflow:hidden;cursor:pointer}.sb-user-avatar img{width:100%;height:100%;object-fit:cover;border-radius:50%}:host([variant="dark"]) .sb-user-avatar,.sb-user-avatar{background:var(--color-kaki-500);color:#fff}:host([variant="kintsugi"]) .sb-user-avatar{background:#b85a1e40;border:1px solid rgb(184,90,30,.4);color:var(--color-kaki-400)}:host([variant="glitch"]) .sb-user-avatar{background:#b85a1e40;border:1px solid rgb(184,90,30,.35);color:var(--color-kaki-400);font-family:var(--lib-font-mono);font-size:.75rem}.sb-user-info{min-width:0;flex:1;overflow:hidden;transition:opacity var(--duration-base),width var(--duration-slow)}.sidebar.is-collapsed .sb-user-info{opacity:0;width:0;pointer-events:none}.sb-user-name{font-family:var(--lib-font-body);font-size:var(--text-sm);line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#faf7f48c}:host([variant="light"]) .sb-user-name{color:var(--color-washi-800)}:host([variant="kintsugi"]) .sb-user-name{color:#faf7f473}.sb-user-role{font-family:var(--lib-font-mono);font-size:8px;letter-spacing:.1em;text-transform:uppercase;margin-top:1px;color:#faf7f433}:host([variant="light"]) .sb-user-role{color:var(--color-washi-400)}:host([variant="kintsugi"]) .sb-user-role{color:#b85a1e80}.sb-user-action{margin-left:auto;width:26px;height:26px;display:flex;align-items:center;justify-content:center;border:1px solid rgb(255,255,255,.1);color:#faf7f44d;flex-shrink:0;transition:border-color var(--duration-base),color var(--duration-base),background var(--duration-base);cursor:pointer}.sb-user-action:hover{border-color:#fff3;background:#ffffff0d;color:#faf7f4b3}:host([variant="light"]) .sb-user-action{border-color:var(--color-washi-200);color:var(--color-washi-400)}:host([variant="light"]) .sb-user-action:hover{border-color:var(--color-washi-400);background:var(--color-washi-50);color:var(--color-washi-700)}.sb-user-dot{width:6px;height:6px;border-radius:50%;background:var(--color-celadon-400);flex-shrink:0;margin-left:auto}.sidebar.is-collapsed .sb-user-action,.sidebar.is-collapsed .sb-user-dot{display:none}.sb-overlay{display:none;position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;z-index:calc(var(--z-raised) - 1);opacity:0;transition:opacity var(--duration-base)}.sb-toggle{display:none;position:fixed;bottom:var(--lib-space-lg);right:var(--lib-space-lg);z-index:var(--z-modal);width:44px;height:44px;background:var(--color-washi-900);color:var(--color-washi-50);align-items:center;justify-content:center;box-shadow:var(--shadow-lg)}@media(max-width:768px){:host{height:auto}.sidebar{position:fixed;left:0;top:0;bottom:0;height:100dvh;transform:translate(-100%);z-index:var(--z-modal);box-shadow:var(--shadow-xl)}.sidebar.is-open{transform:translate(0)}.sb-toggle{display:flex}.sb-overlay{display:block}.sb-overlay.is-open{opacity:1;pointer-events:auto}}@media(prefers-reduced-motion:reduce){.sidebar,.sb-indicator,:host([variant="kintsugi"]) .sidebar:after,:host([variant="kintsugi"]) .sb-logo-mark:before,:host([variant="glitch"]) .sidebar,:host([variant="glitch"]) .sidebar:before{animation:none!important;transition:none!important}}}';
2
2
  export {
3
- alertCss as default
3
+ componentCss as default
4
4
  };
5
5
  //# sourceMappingURL=index218.js.map
package/dist/index219.js CHANGED
@@ -1,5 +1,8 @@
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)}}}";
1
+ import { html } from "lit";
2
+ function staggerTemplate() {
3
+ return html`<slot></slot>`;
4
+ }
2
5
  export {
3
- modalCss as default
6
+ staggerTemplate
4
7
  };
5
8
  //# sourceMappingURL=index219.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index219.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
1
+ {"version":3,"file":"index219.js","sources":["../src/components/organisms/stagger/lib-stagger-container.html.ts"],"sourcesContent":["import { html, TemplateResult } from 'lit';\n\nexport function staggerTemplate(): TemplateResult {\n return html`<slot></slot>`;\n}"],"names":[],"mappings":";AAEO,SAAS,kBAAkC;AAChD,SAAO;AACT;"}
package/dist/index220.js CHANGED
@@ -1,84 +1,5 @@
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) {
22
- return html`
23
- <div
24
- class="mo-backdrop"
25
- part="backdrop"
26
- @click="${p.onBackdropClick}"
27
- >
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>
75
-
76
- </div>
77
- </div>
78
- </div>
79
- `;
80
- }
1
+ const staggerCss = "@layer tokens,reset,components;@layer reset{:host{display:block;width:100%}*,*:before,*:after{box-sizing:border-box}}@layer components{::slotted(*){opacity:0;transform:var(--_stagger-from, translateY(var(--lib-space-lg)));transition:opacity var(--_stagger-duration, var(--duration-slow)) var(--_stagger-ease, var(--ease-out)),transform var(--_stagger-duration, var(--duration-slow)) var(--_stagger-ease, var(--ease-out));transition-delay:var(--_stagger-delay, 0ms);will-change:opacity,transform}:host([visible]) ::slotted(*){opacity:1;transform:none}@media(prefers-reduced-motion:reduce){::slotted(*){transition:none;opacity:1;transform:none}}}";
81
2
  export {
82
- modalTemplate
3
+ staggerCss as default
83
4
  };
84
5
  //# sourceMappingURL=index220.js.map
@@ -1 +1 @@
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;"}
1
+ {"version":3,"file":"index220.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
package/dist/index221.js CHANGED
@@ -1,84 +1,12 @@
1
- import { html, nothing } from "lit";
2
- const chevronLeft = html`
3
- <svg viewBox="0 0 256 256" fill="currentColor" aria-hidden="true">
4
- <path d="M165.66,202.34a8,8,0,0,1-11.32,11.32l-80-80a8,8,0,0,1,0-11.32l80-80a8,8,0,0,1,11.32,11.32L91.31,128Z"/>
5
- </svg>`;
6
- const chevronRight = html`
7
- <svg viewBox="0 0 256 256" fill="currentColor" aria-hidden="true">
8
- <path d="M181.66,133.66l-80,80a8,8,0,0,1-11.32-11.32L164.69,128,90.34,53.66a8,8,0,0,1,11.32-11.32l80,80A8,8,0,0,1,181.66,133.66Z"/>
9
- </svg>`;
10
- function buildPageSequence(current, total, siblings) {
11
- if (total <= 1) return [1];
12
- const left = Math.max(2, current - siblings);
13
- const right = Math.min(total - 1, current + siblings);
14
- const pages = [1];
15
- if (left > 2) pages.push(null);
16
- for (let i = left; i <= right; i++) pages.push(i);
17
- if (right < total - 1) pages.push(null);
18
- if (total > 1) pages.push(total);
19
- return pages;
20
- }
21
- function paginationTemplate(ctx) {
22
- const total = ctx.totalPages;
23
- const current = ctx.currentPage;
24
- const sequence = buildPageSequence(current, total, ctx.siblings);
25
- const infoText = ctx.showInfo ? (() => {
26
- const from = (current - 1) * ctx.itemsPerPage + 1;
27
- const to = Math.min(current * ctx.itemsPerPage, ctx.totalItems);
28
- return html`
29
- <span class="pg-info" part="info">
30
- ${from}–${to} de ${ctx.totalItems}
31
- </span>`;
32
- })() : nothing;
1
+ import { html } from "lit";
2
+ function stepperTemplate(props) {
33
3
  return html`
34
- <nav class="pg" part="root" aria-label="${ctx.ariaLabel}">
35
-
36
- ${ctx.showInfo ? infoText : nothing}
37
-
38
- <!-- ← Anterior -->
39
- <button
40
- class="pg-btn pg-btn--nav"
41
- part="btn-prev"
42
- ?disabled="${current === 1}"
43
- aria-label="Página anterior"
44
- @click="${() => ctx._changePage(current - 1)}"
45
- >
46
- ${chevronLeft}
47
- ${ctx.size !== "sm" ? html`<span>Ant</span>` : nothing}
48
- </button>
49
-
50
- <!-- Números -->
51
- <div class="pg-numbers" part="numbers" role="list">
52
- ${sequence.map(
53
- (page) => page === null ? html`<span class="pg-ellipsis" role="listitem" aria-hidden="true">…</span>` : html`
54
- <button
55
- class="pg-btn ${page === current ? "pg-btn--active" : ""}"
56
- part="btn-page${page === current ? " btn-page-active" : ""}"
57
- role="listitem"
58
- aria-label="Página ${page}"
59
- aria-current="${page === current ? "page" : nothing}"
60
- ?disabled="${page === current}"
61
- @click="${() => ctx._changePage(page)}"
62
- >${page}</button>`
63
- )}
64
- </div>
65
-
66
- <!-- → Siguiente -->
67
- <button
68
- class="pg-btn pg-btn--nav"
69
- part="btn-next"
70
- ?disabled="${current === total}"
71
- aria-label="Página siguiente"
72
- @click="${() => ctx._changePage(current + 1)}"
73
- >
74
- ${ctx.size !== "sm" ? html`<span>Sig</span>` : nothing}
75
- ${chevronRight}
76
- </button>
77
-
78
- </nav>
4
+ <div class="stepper-track" role="list" aria-label="Pasos del proceso">
5
+ <slot @slotchange=${props.handleSlotChange}></slot>
6
+ </div>
79
7
  `;
80
8
  }
81
9
  export {
82
- paginationTemplate
10
+ stepperTemplate
83
11
  };
84
12
  //# sourceMappingURL=index221.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index221.js","sources":["../src/components/molecules/pagination/lib-pagination.html.ts"],"sourcesContent":["import { html, nothing, TemplateResult } from 'lit';\nimport type { LibPagination } from './lib-pagination.component';\n\n/* ── Chevrons inline sin dependencia de lib-icon ── */\nconst chevronLeft: TemplateResult = html`\n <svg viewBox=\"0 0 256 256\" fill=\"currentColor\" aria-hidden=\"true\">\n <path d=\"M165.66,202.34a8,8,0,0,1-11.32,11.32l-80-80a8,8,0,0,1,0-11.32l80-80a8,8,0,0,1,11.32,11.32L91.31,128Z\"/>\n </svg>`;\n\nconst chevronRight: TemplateResult = html`\n <svg viewBox=\"0 0 256 256\" fill=\"currentColor\" aria-hidden=\"true\">\n <path d=\"M181.66,133.66l-80,80a8,8,0,0,1-11.32-11.32L164.69,128,90.34,53.66a8,8,0,0,1,11.32-11.32l80,80A8,8,0,0,1,181.66,133.66Z\"/>\n </svg>`;\n\n/**\n * Genera la secuencia de páginas con ellipsis.\n *\n * Ejemplo (current=5, total=10, siblings=1):\n * [1] [4][5][6] [10]\n *\n * Retorna un array de números o null (null = ellipsis).\n */\nfunction buildPageSequence(current: number, total: number, siblings: number): (number | null)[] {\n if (total <= 1) return [1];\n\n const left = Math.max(2, current - siblings);\n const right = Math.min(total - 1, current + siblings);\n\n const pages: (number | null)[] = [1];\n\n if (left > 2) pages.push(null); // ellipsis izquierdo\n for (let i = left; i <= right; i++) pages.push(i);\n if (right < total - 1) pages.push(null); // ellipsis derecho\n if (total > 1) pages.push(total);\n\n return pages;\n}\n\nexport function paginationTemplate(ctx: LibPagination): TemplateResult {\n const total = ctx.totalPages;\n const current = ctx.currentPage;\n const sequence = buildPageSequence(current, total, ctx.siblings);\n\n /* Info de resultados */\n const infoText = ctx.showInfo\n ? (():TemplateResult => {\n const from = (current - 1) * ctx.itemsPerPage + 1;\n const to = Math.min(current * ctx.itemsPerPage, ctx.totalItems);\n return html`\n <span class=\"pg-info\" part=\"info\">\n ${from}–${to} de ${ctx.totalItems}\n </span>`;\n })()\n : nothing;\n\n return html`\n <nav class=\"pg\" part=\"root\" aria-label=\"${ctx.ariaLabel}\">\n\n ${ctx.showInfo ? infoText : nothing}\n\n <!-- ← Anterior -->\n <button\n class=\"pg-btn pg-btn--nav\"\n part=\"btn-prev\"\n ?disabled=\"${current === 1}\"\n aria-label=\"Página anterior\"\n @click=\"${(): void => ctx._changePage(current - 1)}\"\n >\n ${chevronLeft}\n ${ctx.size !== 'sm' ? html`<span>Ant</span>` : nothing}\n </button>\n\n <!-- Números -->\n <div class=\"pg-numbers\" part=\"numbers\" role=\"list\">\n ${sequence.map((page, /*idx*/) =>\n page === null\n ? html`<span class=\"pg-ellipsis\" role=\"listitem\" aria-hidden=\"true\">…</span>`\n : html`\n <button\n class=\"pg-btn ${page === current ? 'pg-btn--active' : ''}\"\n part=\"btn-page${page === current ? ' btn-page-active' : ''}\"\n role=\"listitem\"\n aria-label=\"Página ${page}\"\n aria-current=\"${page === current ? 'page' : nothing}\"\n ?disabled=\"${page === current}\"\n @click=\"${(): void => ctx._changePage(page as number)}\"\n >${page}</button>`\n )}\n </div>\n\n <!-- → Siguiente -->\n <button\n class=\"pg-btn pg-btn--nav\"\n part=\"btn-next\"\n ?disabled=\"${current === total}\"\n aria-label=\"Página siguiente\"\n @click=\"${(): void => ctx._changePage(current + 1)}\"\n >\n ${ctx.size !== 'sm' ? html`<span>Sig</span>` : nothing}\n ${chevronRight}\n </button>\n\n </nav>\n `;\n}"],"names":[],"mappings":";AAIA,MAAM,cAA8B;AAAA;AAAA;AAAA;AAKpC,MAAM,eAA+B;AAAA;AAAA;AAAA;AAarC,SAAS,kBAAkB,SAAiB,OAAe,UAAqC;AAC9F,MAAI,SAAS,EAAG,QAAO,CAAC,CAAC;AAEzB,QAAM,OAAQ,KAAK,IAAI,GAAG,UAAU,QAAQ;AAC5C,QAAM,QAAQ,KAAK,IAAI,QAAQ,GAAG,UAAU,QAAQ;AAEpD,QAAM,QAA2B,CAAC,CAAC;AAEnC,MAAI,OAAO,EAAU,OAAM,KAAK,IAAI;AACpC,WAAS,IAAI,MAAM,KAAK,OAAO,IAAK,OAAM,KAAK,CAAC;AAChD,MAAI,QAAQ,QAAQ,EAAG,OAAM,KAAK,IAAI;AACtC,MAAI,QAAQ,EAAG,OAAM,KAAK,KAAK;AAE/B,SAAO;AACT;AAEO,SAAS,mBAAmB,KAAoC;AACrE,QAAM,QAAU,IAAI;AACpB,QAAM,UAAU,IAAI;AACpB,QAAM,WAAW,kBAAkB,SAAS,OAAO,IAAI,QAAQ;AAG/D,QAAM,WAAW,IAAI,YAChB,MAAqB;AACpB,UAAM,QAAQ,UAAU,KAAK,IAAI,eAAe;AAChD,UAAM,KAAO,KAAK,IAAI,UAAU,IAAI,cAAc,IAAI,UAAU;AAChE,WAAO;AAAA;AAAA,cAED,IAAI,IAAI,EAAE,OAAO,IAAI,UAAU;AAAA;AAAA,EAEvC,OACA;AAEJ,SAAO;AAAA,8CACqC,IAAI,SAAS;AAAA;AAAA,QAEnD,IAAI,WAAW,WAAW,OAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,qBAMpB,YAAY,CAAC;AAAA;AAAA,kBAEhB,MAAY,IAAI,YAAY,UAAU,CAAC,CAAC;AAAA;AAAA,UAEhD,WAAW;AAAA,UACX,IAAI,SAAS,OAAO,yBAAyB,OAAO;AAAA;AAAA;AAAA;AAAA;AAAA,UAKpD,SAAS;AAAA,IAAI,CAAC,SACd,SAAS,OACL,8EACA;AAAA;AAAA,gCAEkB,SAAS,UAAU,mBAAmB,EAAE;AAAA,gCACxC,SAAS,UAAU,qBAAqB,EAAE;AAAA;AAAA,qCAErC,IAAI;AAAA,gCACT,SAAS,UAAU,SAAS,OAAO;AAAA,6BACtC,SAAS,OAAO;AAAA,0BACnB,MAAY,IAAI,YAAY,IAAc,CAAC;AAAA,iBACpD,IAAI;AAAA,EAAA,CACZ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,qBAOY,YAAY,KAAK;AAAA;AAAA,kBAEpB,MAAY,IAAI,YAAY,UAAU,CAAC,CAAC;AAAA;AAAA,UAEhD,IAAI,SAAS,OAAO,yBAAyB,OAAO;AAAA,UACpD,YAAY;AAAA;AAAA;AAAA;AAAA;AAKtB;"}
1
+ {"version":3,"file":"index221.js","sources":["../src/components/organisms/stepper/lib-stepper.html.ts"],"sourcesContent":["import { html, TemplateResult } from 'lit';\n\nexport type LibStepperOrientation = 'horizontal' | 'vertical';\nexport type LibStepperVariant = 'default' | 'minimal' | 'kintsugi';\nexport type LibStepperSize = 'sm' | 'md' | 'lg';\n\nexport interface StepperTemplateProps {\n orientation: LibStepperOrientation;\n handleSlotChange: (e: Event) => void;\n}\n\n/**\n * El stepper es únicamente el contenedor flex + slot.\n * Toda la lógica de estados y el dibujado visual vive en lib-step.\n * @layer components gestiona flex-direction vía :host([orientation=\"vertical\"]).\n */\nexport function stepperTemplate(props: StepperTemplateProps): TemplateResult {\n return html`\n <div class=\"stepper-track\" role=\"list\" aria-label=\"Pasos del proceso\">\n <slot @slotchange=${props.handleSlotChange}></slot>\n </div>\n `;\n}"],"names":[],"mappings":";AAgBO,SAAS,gBAAgB,OAA6C;AAC3E,SAAO;AAAA;AAAA,0BAEiB,MAAM,gBAAgB;AAAA;AAAA;AAGhD;"}
package/dist/index222.js CHANGED
@@ -1,5 +1,5 @@
1
- const paginationCss = '@layer tokens,reset,components;@layer reset{:host{display:block}*,*:before,*:after{box-sizing:border-box}button{font:inherit;background:none;border:none;padding:0;margin:0;cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none}}@layer components{.pg{display:flex;align-items:center;justify-content:center;gap:var(--lib-space-sm);flex-wrap:wrap}.pg-numbers{display:flex;align-items:center;gap:var(--lib-space-xs)}.pg-btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--lib-space-xs);font-family:var(--lib-font-mono);font-size:var(--text-xs);letter-spacing:var(--tracking-wide);color:var(--text-secondary);background:var(--bg-elevated);border:1px solid var(--border-default);min-width:var(--_pg-size, 32px);height:var(--_pg-size, 32px);padding:0 var(--lib-space-sm);white-space:nowrap;-webkit-user-select:none;user-select:none;transition:background var(--duration-base) var(--ease-out),border-color var(--duration-base) var(--ease-out),color var(--duration-base) var(--ease-out)}.pg-btn:hover:not(:disabled,.pg-btn--active){background:var(--bg-surface);border-color:var(--border-strong);color:var(--text-primary)}.pg-btn:focus-visible{outline:2px solid var(--color-kaki-400);outline-offset:2px}.pg-btn:active:not(:disabled){transform:scale(.96)}.pg-btn--active{background:var(--color-washi-900);border-color:var(--color-washi-900);color:var(--color-washi-50);cursor:default}.pg-btn:disabled{opacity:.35;cursor:not-allowed}.pg-btn--nav{padding:0 var(--lib-space-md)}.pg-btn--nav svg{width:10px;height:10px;flex-shrink:0}.pg-ellipsis{display:inline-flex;align-items:center;justify-content:center;min-width:var(--_pg-size, 32px);height:var(--_pg-size, 32px);font-family:var(--lib-font-mono);font-size:var(--text-xs);letter-spacing:var(--tracking-wide);color:var(--text-muted);-webkit-user-select:none;user-select:none}:host([size="sm"]){--_pg-size: 26px}:host([size="sm"]) .pg-btn{font-size:10px;padding:0 var(--lib-space-xs)}:host([size="sm"]) .pg-btn--nav{padding:0 var(--lib-space-sm)}:host([size="sm"]) .pg-ellipsis{font-size:10px}:host([size="md"]){--_pg-size: 32px}:host([size="lg"]){--_pg-size: 40px}:host([size="lg"]) .pg-btn{font-size:var(--text-sm);letter-spacing:var(--tracking-wider);padding:0 var(--lib-space-md)}:host([size="lg"]) .pg-btn--nav{padding:0 calc(var(--lib-space-md) + var(--lib-space-xs))}:host([variant="outline"]) .pg-btn{background:transparent}:host([variant="outline"]) .pg-btn:hover:not(:disabled,.pg-btn--active){background:var(--bg-surface)}:host([variant="outline"]) .pg-btn--active{background:transparent;border-color:var(--color-washi-900);color:var(--color-washi-900)}:host([variant="ghost"]) .pg-btn{background:transparent;border-color:transparent}:host([variant="ghost"]) .pg-btn:hover:not(:disabled,.pg-btn--active){background:var(--bg-surface);border-color:transparent}:host([variant="ghost"]) .pg-btn--active{background:var(--bg-surface);border-color:transparent;color:var(--text-primary);font-weight:500}.pg-info{font-family:var(--lib-font-mono);font-size:var(--text-xs);letter-spacing:var(--tracking-wide);color:var(--text-muted);white-space:nowrap}:host([dark]) .pg-btn{background:var(--color-washi-800);border-color:var(--color-washi-700);color:var(--color-washi-400)}:host([dark]) .pg-btn:hover:not(:disabled,.pg-btn--active){background:var(--color-washi-700);border-color:var(--color-washi-600);color:var(--color-washi-100)}:host([dark]) .pg-btn--active{background:var(--color-washi-50);border-color:var(--color-washi-50);color:var(--color-washi-950)}:host([dark]) .pg-ellipsis{color:var(--color-washi-600)}:host([dark]) .pg-info{color:var(--color-washi-600)}}';
1
+ const stepperCss = '@layer tokens,reset,components;@layer reset{:host{display:block;width:100%}*,*:before,*:after{box-sizing:border-box}}@layer components{.stepper-track{display:flex;flex-direction:row;align-items:flex-start;width:100%;position:relative}:host([orientation="vertical"]) .stepper-track{flex-direction:column}}';
2
2
  export {
3
- paginationCss as default
3
+ stepperCss as default
4
4
  };
5
5
  //# sourceMappingURL=index222.js.map