@shibui-ui/ui 1.20.0 → 1.22.0

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 (94) hide show
  1. package/dist/angular/directives.ts +14 -14
  2. package/dist/components/atoms/{glass-card → card/glass-card}/lib-glass-card.component.d.ts +1 -1
  3. package/dist/components/atoms/card/glass-card/lib-glass-card.component.d.ts.map +1 -0
  4. package/dist/components/atoms/{glass-card → card/glass-card}/lib-glass-card.html.d.ts +1 -6
  5. package/dist/components/atoms/card/glass-card/lib-glass-card.html.d.ts.map +1 -0
  6. package/dist/components/atoms/card/glass-card/lib-glass-card.stories.d.ts.map +1 -0
  7. package/dist/components/atoms/card/glass-card/lib-glass-card.types.d.ts +7 -0
  8. package/dist/components/atoms/card/glass-card/lib-glass-card.types.d.ts.map +1 -0
  9. package/dist/components/atoms/card/lib-card.component.d.ts +5 -3
  10. package/dist/components/atoms/card/lib-card.component.d.ts.map +1 -1
  11. package/dist/components/atoms/card/lib-card.stories.d.ts +2 -1
  12. package/dist/components/atoms/card/lib-card.stories.d.ts.map +1 -1
  13. package/dist/components/atoms/card/lib-card.types.d.ts +1 -1
  14. package/dist/components/atoms/card/lib-card.types.d.ts.map +1 -1
  15. package/dist/components/atoms/{spotlight-card → card/spotlight-card}/lib-spotlight-card.component.d.ts +1 -1
  16. package/dist/components/atoms/card/spotlight-card/lib-spotlight-card.component.d.ts.map +1 -0
  17. package/dist/components/atoms/{spotlight-card/lib-spotlight-card.component.html.d.ts → card/spotlight-card/lib-spotlight-card.html.d.ts} +2 -8
  18. package/dist/components/atoms/card/spotlight-card/lib-spotlight-card.html.d.ts.map +1 -0
  19. package/dist/components/atoms/card/spotlight-card/lib-spotlight-card.stories.d.ts.map +1 -0
  20. package/dist/components/atoms/card/spotlight-card/lib-spotlight-card.types.d.ts +8 -0
  21. package/dist/components/atoms/card/spotlight-card/lib-spotlight-card.types.d.ts.map +1 -0
  22. package/dist/custom-elements.json +207 -199
  23. package/dist/index.d.ts +2 -2
  24. package/dist/index.d.ts.map +1 -1
  25. package/dist/index.js.map +1 -1
  26. package/dist/index10.js.map +1 -1
  27. package/dist/index20.js.map +1 -1
  28. package/dist/index207.js.map +1 -1
  29. package/dist/index228.js +1 -1
  30. package/dist/index235.js.map +1 -1
  31. package/dist/index25.js.map +1 -1
  32. package/dist/index281.js +1 -1
  33. package/dist/index307.js +1 -1
  34. package/dist/index316.js +4 -4
  35. package/dist/index332.js +1 -1
  36. package/dist/index352.js +32 -14
  37. package/dist/index352.js.map +1 -1
  38. package/dist/index353.js +7 -21
  39. package/dist/index353.js.map +1 -1
  40. package/dist/index354.js +19 -57
  41. package/dist/index354.js.map +1 -1
  42. package/dist/index355.js +57 -55
  43. package/dist/index355.js.map +1 -1
  44. package/dist/index356.js +63 -24
  45. package/dist/index356.js.map +1 -1
  46. package/dist/index357.js +19 -26
  47. package/dist/index357.js.map +1 -1
  48. package/dist/index360.js +32 -143
  49. package/dist/index360.js.map +1 -1
  50. package/dist/index361.js +131 -115
  51. package/dist/index361.js.map +1 -1
  52. package/dist/index362.js +129 -34
  53. package/dist/index362.js.map +1 -1
  54. package/dist/react/index.ts +3 -3
  55. package/dist/src/components/atoms/{glass-card → card/glass-card}/lib-glass-card.component.d.ts +1 -1
  56. package/dist/src/components/atoms/card/glass-card/lib-glass-card.component.d.ts.map +1 -0
  57. package/dist/src/components/atoms/{glass-card → card/glass-card}/lib-glass-card.html.d.ts +1 -6
  58. package/dist/src/components/atoms/card/glass-card/lib-glass-card.html.d.ts.map +1 -0
  59. package/dist/src/components/atoms/card/glass-card/lib-glass-card.stories.d.ts.map +1 -0
  60. package/dist/src/components/atoms/card/glass-card/lib-glass-card.types.d.ts +7 -0
  61. package/dist/src/components/atoms/card/glass-card/lib-glass-card.types.d.ts.map +1 -0
  62. package/dist/src/components/atoms/card/lib-card.component.d.ts +5 -3
  63. package/dist/src/components/atoms/card/lib-card.component.d.ts.map +1 -1
  64. package/dist/src/components/atoms/card/lib-card.stories.d.ts +2 -1
  65. package/dist/src/components/atoms/card/lib-card.stories.d.ts.map +1 -1
  66. package/dist/src/components/atoms/card/lib-card.types.d.ts +1 -1
  67. package/dist/src/components/atoms/card/lib-card.types.d.ts.map +1 -1
  68. package/dist/src/components/atoms/{spotlight-card → card/spotlight-card}/lib-spotlight-card.component.d.ts +1 -1
  69. package/dist/src/components/atoms/card/spotlight-card/lib-spotlight-card.component.d.ts.map +1 -0
  70. package/dist/src/components/atoms/{spotlight-card/lib-spotlight-card.component.html.d.ts → card/spotlight-card/lib-spotlight-card.html.d.ts} +2 -8
  71. package/dist/src/components/atoms/card/spotlight-card/lib-spotlight-card.html.d.ts.map +1 -0
  72. package/dist/src/components/atoms/card/spotlight-card/lib-spotlight-card.stories.d.ts.map +1 -0
  73. package/dist/src/components/atoms/card/spotlight-card/lib-spotlight-card.types.d.ts +8 -0
  74. package/dist/src/components/atoms/card/spotlight-card/lib-spotlight-card.types.d.ts.map +1 -0
  75. package/dist/src/index.d.ts +2 -2
  76. package/dist/src/index.d.ts.map +1 -1
  77. package/dist/svelte/shibui-elements.d.ts +8 -8
  78. package/package.json +1 -1
  79. package/dist/components/atoms/glass-card/lib-glass-card.component.d.ts.map +0 -1
  80. package/dist/components/atoms/glass-card/lib-glass-card.html.d.ts.map +0 -1
  81. package/dist/components/atoms/glass-card/lib-glass-card.stories.d.ts.map +0 -1
  82. package/dist/components/atoms/spotlight-card/lib-spotlight-card.component.d.ts.map +0 -1
  83. package/dist/components/atoms/spotlight-card/lib-spotlight-card.component.html.d.ts.map +0 -1
  84. package/dist/components/atoms/spotlight-card/lib-spotlight-card.stories.d.ts.map +0 -1
  85. package/dist/src/components/atoms/glass-card/lib-glass-card.component.d.ts.map +0 -1
  86. package/dist/src/components/atoms/glass-card/lib-glass-card.html.d.ts.map +0 -1
  87. package/dist/src/components/atoms/glass-card/lib-glass-card.stories.d.ts.map +0 -1
  88. package/dist/src/components/atoms/spotlight-card/lib-spotlight-card.component.d.ts.map +0 -1
  89. package/dist/src/components/atoms/spotlight-card/lib-spotlight-card.component.html.d.ts.map +0 -1
  90. package/dist/src/components/atoms/spotlight-card/lib-spotlight-card.stories.d.ts.map +0 -1
  91. /package/dist/components/atoms/{glass-card → card/glass-card}/lib-glass-card.stories.d.ts +0 -0
  92. /package/dist/components/atoms/{spotlight-card → card/spotlight-card}/lib-spotlight-card.stories.d.ts +0 -0
  93. /package/dist/src/components/atoms/{glass-card → card/glass-card}/lib-glass-card.stories.d.ts +0 -0
  94. /package/dist/src/components/atoms/{spotlight-card → card/spotlight-card}/lib-spotlight-card.stories.d.ts +0 -0
package/dist/index361.js CHANGED
@@ -1,133 +1,149 @@
1
1
  import { html, nothing } from "lit";
2
- function renderHamburger(ctx) {
3
- const isLight = ["classic", "centered", "mega", "minimal", "shrink"].includes(ctx.variant);
4
- const color = isLight ? "var(--color-washi-600, #7A6A5C)" : "rgba(250,247,244,0.5)";
2
+ const svgChevron = html`
3
+ <svg class="hdr-link-chevron" width="9" height="6" viewBox="0 0 10 6"
4
+ fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round">
5
+ <polyline points="1,1 5,5 9,1"/>
6
+ </svg>`;
7
+ const svgSearch = html`
8
+ <svg width="12" height="12" viewBox="0 0 16 16" fill="none"
9
+ stroke="currentColor" stroke-width="1.6" stroke-linecap="round">
10
+ <circle cx="7" cy="7" r="5"/><line x1="11" y1="11" x2="14" y2="14"/>
11
+ </svg>`;
12
+ const svgBell = html`
13
+ <svg width="15" height="15" viewBox="0 0 16 16" fill="none"
14
+ stroke="currentColor" stroke-width="1.5" stroke-linecap="round">
15
+ <path d="M8 1a5 5 0 00-5 5v2l-1 2v1h12v-1l-1-2V6A5 5 0 008 1z"/>
16
+ <path d="M6 13a2 2 0 004 0"/>
17
+ </svg>`;
18
+ function renderLogoMark(ctx) {
19
+ if (ctx.variant === "kintsugi") {
20
+ return html`
21
+ <div class="hdr-logo-mark">
22
+ <span class="hdr-logo-mark-text">${ctx.logoMark}</span>
23
+ </div>`;
24
+ }
25
+ return html`<div class="hdr-logo-mark">${ctx.logoMark}</div>`;
26
+ }
27
+ function renderLogo(ctx) {
28
+ if (ctx.variant === "glitch") {
29
+ return html`
30
+ <a href="${ctx.logoHref}" class="hdr-logo-glitch">
31
+ ⌗ ${ctx.brandName.toUpperCase()}
32
+ <span class="hdr-logo-glitch-badge">SYS</span>
33
+ </a>`;
34
+ }
35
+ if (ctx.variant === "minimal") {
36
+ return html`
37
+ <a href="${ctx.logoHref}" class="hdr-logo">
38
+ <span class="hdr-brand-name">${ctx.logoMark}</span>
39
+ </a>`;
40
+ }
5
41
  return html`
6
- <button
7
- class="hdr-burger"
8
- aria-label="${ctx._mobileOpen ? "Cerrar menú" : "Abrir menú"}"
9
- aria-expanded="${ctx._mobileOpen}"
10
- aria-controls="hdr-mobile-drawer"
11
- @click="${() => ctx._toggleMobile()}"
12
- >
13
- <svg width="20" height="14" viewBox="0 0 20 14" fill="none"
14
- stroke="${color}" stroke-width="1.6" stroke-linecap="round">
15
- <line class="hdr-burger-top" x1="0" y1="1" x2="20" y2="1"/>
16
- <line class="hdr-burger-mid" x1="0" y1="7" x2="20" y2="7"/>
17
- <line class="hdr-burger-bot" x1="0" y1="13" x2="20" y2="13"/>
18
- </svg>
19
- </button>`;
42
+ <a href="${ctx.logoHref}" class="hdr-logo">
43
+ ${renderLogoMark(ctx)}
44
+ <div>
45
+ <div class="hdr-brand-name">${ctx.brandName}
46
+ ${ctx.variant === "kintsugi" ? html` <em style="font-style:italic;color:var(--color-kaki-400);">金</em>` : nothing}
47
+ </div>
48
+ ${ctx.brandTagline && ctx.variant === "shrink" ? html`<div class="hdr-tagline">${ctx.brandTagline}</div>` : nothing}
49
+ </div>
50
+ ${ctx.version && ctx.variant === "dark" ? html`<span class="hdr-version">${ctx.version}</span>` : nothing}
51
+ </a>`;
20
52
  }
21
- function renderMobileDrawer(ctx) {
53
+ function renderDropdown(_ctx, link) {
22
54
  var _a;
23
- if (!ctx._mobileOpen) return html``;
24
55
  return html`
25
- <!-- Backdrop -->
26
- <div
27
- class="hdr-mobile-backdrop"
28
- @click="${() => ctx._closeMobile()}"
29
- aria-hidden="true"
30
- ></div>
56
+ <div class="hdr-dd">
57
+ <span class="hdr-link">
58
+ ${link.label}
59
+ ${svgChevron}
60
+ </span>
61
+ <div class="hdr-dd-menu">
62
+ ${(_a = link.dropdown) == null ? void 0 : _a.map((item) => html`
63
+ <a href="${item.href || "#"}"
64
+ class="hdr-dd-item ${item.divider ? "hdr-dd-item--divider" : ""}">
65
+ ${item.label}
66
+ </a>
67
+ `)}
68
+ </div>
69
+ </div>`;
70
+ }
71
+ function renderLinks(ctx, links) {
72
+ return html`
73
+ ${links.map(
74
+ (link) => {
75
+ var _a;
76
+ return ((_a = link.dropdown) == null ? void 0 : _a.length) ? renderDropdown(ctx, link) : html`
77
+ <a href="${link.href || "#"}"
78
+ class="hdr-link ${link.active ? "is-active" : ""}"
79
+ @click="${(e) => {
80
+ e.preventDefault();
81
+ ctx._onLinkClick(link.id);
82
+ }}"
83
+ >
84
+ ${ctx.variant === "glitch" ? html`<span>&gt;</span>` : nothing}
85
+ ${link.label}
86
+ </a>`;
87
+ }
88
+ )}`;
89
+ }
90
+ const ACTION_VARIANT_MAP = {
91
+ classic: "kaki",
92
+ centered: "outline",
93
+ dark: "kaki",
94
+ transparent: "kaki",
95
+ kintsugi: "kintsugi",
96
+ glitch: "glitch",
97
+ mega: "kaki",
98
+ shrink: "kaki",
99
+ minimal: ""
100
+ };
101
+ function renderActions(ctx) {
102
+ return html`
103
+ <div class="hdr-actions">
104
+ ${ctx.loginLabel ? html`
105
+ <a href="${ctx.loginHref || "#"}" class="hdr-login">${ctx.loginLabel}</a>
106
+ ` : nothing}
31
107
 
32
- <!-- Drawer panel -->
33
- <nav
34
- id="hdr-mobile-drawer"
35
- class="hdr-mobile-drawer ${ctx._mobileOpen ? "is-open" : ""}"
36
- aria-label="Menú principal"
37
- >
38
- <!-- Links principales -->
39
- <div class="hdr-mobile-links">
40
- ${(ctx.links ?? []).map((link) => {
41
- var _a2, _b;
108
+ ${ctx.actions.map((action) => {
109
+ const cls = action.variant ? `hdr-action--${action.variant}` : `hdr-action--${ACTION_VARIANT_MAP[ctx.variant] || "kaki"}`;
42
110
  return html`
43
- <a
44
- href="${link.href ?? "#"}"
45
- class="hdr-mobile-link"
111
+ <a href="${action.href || "#"}"
112
+ class="hdr-action ${cls}"
46
113
  @click="${(e) => {
47
114
  e.preventDefault();
48
- ctx._onLinkClick(link.id);
115
+ ctx._onActionClick(action);
49
116
  }}"
50
- >
51
- ${link.label}
52
- ${((_a2 = link.dropdown) == null ? void 0 : _a2.length) ? html`
53
- <svg width="8" height="5" viewBox="0 0 10 6" fill="none"
54
- stroke="currentColor" stroke-width="1.5" stroke-linecap="round">
55
- <polyline points="1,1 5,5 9,1"/>
56
- </svg>` : nothing}
57
- </a>
58
-
59
- <!-- Sub-items — siempre visibles en móvil -->
60
- ${((_b = link.dropdown) == null ? void 0 : _b.length) ? html`
61
- <div class="hdr-mobile-sub">
62
- ${link.dropdown.map((item) => html`
63
- <a href="${item.href ?? "#"}" class="hdr-mobile-sub-link">
64
- › ${item.label}
65
- </a>
66
- `)}
67
- </div>
68
- ` : nothing}
69
- `;
117
+ >${action.label}</a>`;
70
118
  })}
71
119
 
72
- <!-- Mega columns accordion plano en móvil -->
73
- ${((_a = ctx.megaColumns) == null ? void 0 : _a.length) ? html`
74
- <div class="hdr-mobile-sub" style="margin-top:0;">
75
- ${ctx.megaColumns.map((col) => html`
76
- <p class="hdr-mobile-col-title">${col.title}</p>
77
- ${col.items.map((item) => html`
78
- <a href="${item.href ?? "#"}" class="hdr-mobile-sub-link">
79
- › ${item.label}
80
- </a>
81
- `)}
82
- `)}
83
- </div>
84
- ` : nothing}
85
- </div>
86
-
87
- <!-- Divider -->
88
- <div class="hdr-mobile-divider"></div>
89
-
90
- <!-- Actions / CTAs -->
91
- <div class="hdr-mobile-actions">
92
- ${ctx.loginLabel ? html`
93
- <a href="${ctx.loginHref ?? "#"}" class="hdr-mobile-login">
94
- ${ctx.loginLabel}
95
- </a>
96
- ` : nothing}
97
-
98
- ${(ctx.actions ?? []).map((action) => html`
99
- <a
100
- href="${action.href ?? "#"}"
101
- class="hdr-mobile-cta"
102
- @click="${(e) => {
103
- e.preventDefault();
104
- ctx._onActionClick(action);
105
- }}"
106
- >
107
- ${action.label}
108
- </a>
109
- `)}
110
-
111
- ${ctx.contactLabel ? html`
112
- <a href="${ctx.contactHref ?? "#"}" class="hdr-mobile-login">
113
- ${ctx.contactLabel} →
114
- </a>
115
- ` : nothing}
116
- </div>
120
+ ${ctx.variant === "glitch" ? html`
121
+ <div class="hdr-online">● online</div>
122
+ ` : nothing}
117
123
 
118
- <!-- Footer del drawer -->
119
- <div class="hdr-mobile-footer">
120
- <span>${ctx.brandName}</span>
121
- <button
122
- class="hdr-mobile-close"
123
- aria-label="Cerrar menú"
124
- @click="${() => ctx._closeMobile()}"
125
- >✕</button>
126
- </div>
124
+ ${ctx.variant === "minimal" && ctx.contactLabel ? html`
125
+ <a href="${ctx.contactHref || "#"}" class="hdr-contact">${ctx.contactLabel} →</a>
126
+ ` : nothing}
127
+ </div>`;
128
+ }
129
+ function renderBreadcrumbs(items) {
130
+ return html`
131
+ <nav class="hdr-breadcrumbs" aria-label="breadcrumb">
132
+ ${items.map((item, i) => html`
133
+ ${i > 0 ? html`<span class="hdr-breadcrumb-sep">/</span>` : nothing}
134
+ ${i < items.length - 1 ? html`<a href="${item.href || "#"}" class="hdr-breadcrumb-link">${item.label}</a>` : html`<span class="hdr-breadcrumb-current">${item.label}</span>`}
135
+ `)}
127
136
  </nav>`;
128
137
  }
129
138
  export {
130
- renderHamburger,
131
- renderMobileDrawer
139
+ renderActions,
140
+ renderBreadcrumbs,
141
+ renderDropdown,
142
+ renderLinks,
143
+ renderLogo,
144
+ renderLogoMark,
145
+ svgBell,
146
+ svgChevron,
147
+ svgSearch
132
148
  };
133
149
  //# sourceMappingURL=index361.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index361.js","sources":["../src/components/molecules/header/templates/header-mobile.html.ts"],"sourcesContent":["import { html, nothing, TemplateResult } from 'lit';\nimport type { LibHeader } from '../lib-header.component';\nimport type { NavLink, DropdownItem, HeaderAction } from '../lib-header.types';\n\n/* ══════════════════════════════════════\n HAMBURGER BUTTON\n ══════════════════════════════════════ */\n\nexport function renderHamburger(ctx: LibHeader): TemplateResult {\n const isLight = ['classic', 'centered', 'mega', 'minimal', 'shrink'].includes(ctx.variant);\n const color = isLight\n ? 'var(--color-washi-600, #7A6A5C)'\n : 'rgba(250,247,244,0.5)';\n\n return html`\n <button\n class=\"hdr-burger\"\n aria-label=\"${ctx._mobileOpen ? 'Cerrar menú' : 'Abrir menú'}\"\n aria-expanded=\"${ctx._mobileOpen}\"\n aria-controls=\"hdr-mobile-drawer\"\n @click=\"${(): void => ctx._toggleMobile()}\"\n >\n <svg width=\"20\" height=\"14\" viewBox=\"0 0 20 14\" fill=\"none\"\n stroke=\"${color}\" stroke-width=\"1.6\" stroke-linecap=\"round\">\n <line class=\"hdr-burger-top\" x1=\"0\" y1=\"1\" x2=\"20\" y2=\"1\"/>\n <line class=\"hdr-burger-mid\" x1=\"0\" y1=\"7\" x2=\"20\" y2=\"7\"/>\n <line class=\"hdr-burger-bot\" x1=\"0\" y1=\"13\" x2=\"20\" y2=\"13\"/>\n </svg>\n </button>`;\n}\n\n/* ══════════════════════════════════════\n MOBILE DRAWER\n ══════════════════════════════════════ */\n\nexport function renderMobileDrawer(ctx: LibHeader): TemplateResult {\n if (!ctx._mobileOpen) return html``;\n\n return html`\n <!-- Backdrop -->\n <div\n class=\"hdr-mobile-backdrop\"\n @click=\"${(): void => ctx._closeMobile()}\"\n aria-hidden=\"true\"\n ></div>\n\n <!-- Drawer panel -->\n <nav\n id=\"hdr-mobile-drawer\"\n class=\"hdr-mobile-drawer ${ctx._mobileOpen ? 'is-open' : ''}\"\n aria-label=\"Menú principal\"\n >\n <!-- Links principales -->\n <div class=\"hdr-mobile-links\">\n ${(ctx.links ?? []).map((link: NavLink) => html`\n <a\n href=\"${link.href ?? '#'}\"\n class=\"hdr-mobile-link\"\n @click=\"${(e: Event): void => {\n e.preventDefault();\n ctx._onLinkClick(link.id);\n }}\"\n >\n ${link.label}\n ${link.dropdown?.length ? html`\n <svg width=\"8\" height=\"5\" viewBox=\"0 0 10 6\" fill=\"none\"\n stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\">\n <polyline points=\"1,1 5,5 9,1\"/>\n </svg>` : nothing}\n </a>\n\n <!-- Sub-items siempre visibles en móvil -->\n ${link.dropdown?.length ? html`\n <div class=\"hdr-mobile-sub\">\n ${link.dropdown.map((item: DropdownItem) => html`\n <a href=\"${item.href ?? '#'}\" class=\"hdr-mobile-sub-link\">\n${item.label}\n </a>\n `)}\n </div>\n ` : nothing}\n `)}\n\n <!-- Mega columns accordion plano en móvil -->\n ${ctx.megaColumns?.length ? html`\n <div class=\"hdr-mobile-sub\" style=\"margin-top:0;\">\n ${ctx.megaColumns.map(col => html`\n <p class=\"hdr-mobile-col-title\">${col.title}</p>\n ${col.items.map(item => html`\n <a href=\"${item.href ?? '#'}\" class=\"hdr-mobile-sub-link\">\n${item.label}\n </a>\n `)}\n `)}\n </div>\n ` : nothing}\n </div>\n\n <!-- Divider -->\n <div class=\"hdr-mobile-divider\"></div>\n\n <!-- Actions / CTAs -->\n <div class=\"hdr-mobile-actions\">\n ${ctx.loginLabel ? html`\n <a href=\"${ctx.loginHref ?? '#'}\" class=\"hdr-mobile-login\">\n ${ctx.loginLabel}\n </a>\n ` : nothing}\n\n ${(ctx.actions ?? []).map((action: HeaderAction) => html`\n <a\n href=\"${action.href ?? '#'}\"\n class=\"hdr-mobile-cta\"\n @click=\"${(e: Event): void => {\n e.preventDefault();\n ctx._onActionClick(action);\n }}\"\n >\n ${action.label}\n </a>\n `)}\n\n ${ctx.contactLabel ? html`\n <a href=\"${ctx.contactHref ?? '#'}\" class=\"hdr-mobile-login\">\n ${ctx.contactLabel} →\n </a>\n ` : nothing}\n </div>\n\n <!-- Footer del drawer -->\n <div class=\"hdr-mobile-footer\">\n <span>${ctx.brandName}</span>\n <button\n class=\"hdr-mobile-close\"\n aria-label=\"Cerrar menú\"\n @click=\"${(): void => ctx._closeMobile()}\"\n >✕</button>\n </div>\n </nav>`;\n}"],"names":["_a"],"mappings":";AAQO,SAAS,gBAAgB,KAAgC;AAC9D,QAAM,UAAU,CAAC,WAAW,YAAY,QAAQ,WAAW,QAAQ,EAAE,SAAS,IAAI,OAAO;AACzF,QAAM,QAAU,UACZ,oCACA;AAEJ,SAAO;AAAA;AAAA;AAAA,oBAGW,IAAI,cAAc,gBAAgB,YAAY;AAAA,uBAC3C,IAAI,WAAW;AAAA;AAAA,gBAEtB,MAAY,IAAI,eAAe;AAAA;AAAA;AAAA,kBAG7B,KAAK;AAAA;AAAA;AAAA;AAAA;AAAA;AAMvB;AAMO,SAAS,mBAAmB,KAAgC;;AACjE,MAAI,CAAC,IAAI,YAAa,QAAO;AAE7B,SAAO;AAAA;AAAA;AAAA;AAAA,gBAIO,MAAY,IAAI,cAAc;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,iCAOb,IAAI,cAAc,YAAY,EAAE;AAAA;AAAA;AAAA;AAAA;AAAA,WAKtD,IAAI,SAAS,CAAA,GAAI,IAAI,CAAC;;AAAkB;AAAA;AAAA,oBAE/B,KAAK,QAAQ,GAAG;AAAA;AAAA,sBAEd,CAAC,MAAmB;AAC5B,QAAE,eAAA;AACF,UAAI,aAAa,KAAK,EAAE;AAAA,IAC1B,CAAC;AAAA;AAAA,cAEC,KAAK,KAAK;AAAA,gBACVA,MAAA,KAAK,aAAL,gBAAAA,IAAe,UAAS;AAAA;AAAA;AAAA;AAAA,wBAId,OAAO;AAAA;AAAA;AAAA;AAAA,cAInB,UAAK,aAAL,mBAAe,UAAS;AAAA;AAAA,gBAEpB,KAAK,SAAS,IAAI,CAAC,SAAuB;AAAA,2BAC/B,KAAK,QAAQ,GAAG;AAAA,sBACrB,KAAK,KAAK;AAAA;AAAA,eAEjB,CAAC;AAAA;AAAA,cAEF,OAAO;AAAA;AAAA,GACZ,CAAC;AAAA;AAAA;AAAA,YAGA,SAAI,gBAAJ,mBAAiB,UAAS;AAAA;AAAA,cAEtB,IAAI,YAAY,IAAI,CAAA,QAAO;AAAA,gDACO,IAAI,KAAK;AAAA,gBACzC,IAAI,MAAM,IAAI,CAAA,SAAQ;AAAA,2BACX,KAAK,QAAQ,GAAG;AAAA,sBACrB,KAAK,KAAK;AAAA;AAAA,eAEjB,CAAC;AAAA,aACH,CAAC;AAAA;AAAA,YAEF,OAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,UAQT,IAAI,aAAa;AAAA,qBACN,IAAI,aAAa,GAAG;AAAA,cAC3B,IAAI,UAAU;AAAA;AAAA,YAEhB,OAAO;AAAA;AAAA,WAER,IAAI,WAAW,CAAA,GAAI,IAAI,CAAC,WAAyB;AAAA;AAAA,oBAExC,OAAO,QAAQ,GAAG;AAAA;AAAA,sBAEhB,CAAC,MAAmB;AAC5B,MAAE,eAAA;AACF,QAAI,eAAe,MAAM;AAAA,EAC3B,CAAC;AAAA;AAAA,cAEC,OAAO,KAAK;AAAA;AAAA,SAEjB,CAAC;AAAA;AAAA,UAEA,IAAI,eAAe;AAAA,qBACR,IAAI,eAAe,GAAG;AAAA,cAC7B,IAAI,YAAY;AAAA;AAAA,YAElB,OAAO;AAAA;AAAA;AAAA;AAAA;AAAA,gBAKH,IAAI,SAAS;AAAA;AAAA;AAAA;AAAA,oBAIT,MAAY,IAAI,cAAc;AAAA;AAAA;AAAA;AAIlD;"}
1
+ {"version":3,"file":"index361.js","sources":["../src/components/molecules/header/templates/header-shared.html.ts"],"sourcesContent":["import { html, nothing, TemplateResult } from 'lit';\nimport type { LibHeader } from '../lib-header.component';\nimport type { NavLink, DropdownItem, HeaderAction, BreadcrumbItem } from '../lib-header.types';\n\n/* ══════════════════════════════════════\n SVG HELPERS (cambiar a iconos phosfor)\n ══════════════════════════════════════ */\n\nexport const svgChevron = html`\n <svg class=\"hdr-link-chevron\" width=\"9\" height=\"6\" viewBox=\"0 0 10 6\"\n fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\">\n <polyline points=\"1,1 5,5 9,1\"/>\n </svg>`;\n\nexport const svgSearch = html`\n <svg width=\"12\" height=\"12\" 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\nexport const svgBell = html`\n <svg width=\"15\" height=\"15\" viewBox=\"0 0 16 16\" fill=\"none\"\n stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\">\n <path d=\"M8 1a5 5 0 00-5 5v2l-1 2v1h12v-1l-1-2V6A5 5 0 008 1z\"/>\n <path d=\"M6 13a2 2 0 004 0\"/>\n </svg>`;\n\n/* ══════════════════════════════════════\n LOGO MARK\n ══════════════════════════════════════ */\n\nexport function renderLogoMark(ctx: LibHeader): TemplateResult {\n if (ctx.variant === 'kintsugi') {\n return html`\n <div class=\"hdr-logo-mark\">\n <span class=\"hdr-logo-mark-text\">${ctx.logoMark}</span>\n </div>`;\n }\n return html`<div class=\"hdr-logo-mark\">${ctx.logoMark}</div>`;\n}\n\n/* ══════════════════════════════════════\n LOGO\n ══════════════════════════════════════ */\n\nexport function renderLogo(ctx: LibHeader): TemplateResult {\n if (ctx.variant === 'glitch') {\n return html`\n <a href=\"${ctx.logoHref}\" class=\"hdr-logo-glitch\">\n ${ctx.brandName.toUpperCase()}\n <span class=\"hdr-logo-glitch-badge\">SYS</span>\n </a>`;\n }\n\n if (ctx.variant === 'minimal') {\n return html`\n <a href=\"${ctx.logoHref}\" class=\"hdr-logo\">\n <span class=\"hdr-brand-name\">${ctx.logoMark}</span>\n </a>`;\n }\n\n return html`\n <a href=\"${ctx.logoHref}\" class=\"hdr-logo\">\n ${renderLogoMark(ctx)}\n <div>\n <div class=\"hdr-brand-name\">${ctx.brandName}\n ${ctx.variant === 'kintsugi'\n ? html` <em style=\"font-style:italic;color:var(--color-kaki-400);\">金</em>`\n : nothing}\n </div>\n ${ctx.brandTagline && ctx.variant === 'shrink'\n ? html`<div class=\"hdr-tagline\">${ctx.brandTagline}</div>`\n : nothing}\n </div>\n ${ctx.version && ctx.variant === 'dark'\n ? html`<span class=\"hdr-version\">${ctx.version}</span>`\n : nothing}\n </a>`;\n}\n\n/* ══════════════════════════════════════\n DROPDOWN (desktop)\n ══════════════════════════════════════ */\n\nexport function renderDropdown(_ctx: LibHeader, link: NavLink): TemplateResult {\n return html`\n <div class=\"hdr-dd\">\n <span class=\"hdr-link\">\n ${link.label}\n ${svgChevron}\n </span>\n <div class=\"hdr-dd-menu\">\n ${link.dropdown?.map((item: DropdownItem) => html`\n <a href=\"${item.href || '#'}\"\n class=\"hdr-dd-item ${item.divider ? 'hdr-dd-item--divider' : ''}\">\n ${item.label}\n </a>\n `)}\n </div>\n </div>`;\n}\n\n/* ══════════════════════════════════════\n NAV LINKS (desktop)\n ══════════════════════════════════════ */\n\nexport function renderLinks(ctx: LibHeader, links: NavLink[]): TemplateResult {\n return html`\n ${links.map(link =>\n link.dropdown?.length\n ? renderDropdown(ctx, link)\n : html`\n <a href=\"${link.href || '#'}\"\n class=\"hdr-link ${link.active ? 'is-active' : ''}\"\n @click=\"${(e: Event): void => {\n e.preventDefault();\n ctx._onLinkClick(link.id);\n }}\"\n >\n ${ctx.variant === 'glitch' ? html`<span>&gt;</span>` : nothing}\n ${link.label}\n </a>`\n )}`;\n}\n\n/* ══════════════════════════════════════\n ACTIONS (desktop)\n ══════════════════════════════════════ */\n\nconst ACTION_VARIANT_MAP: Record<string, string> = {\n classic: 'kaki',\n centered: 'outline',\n dark: 'kaki',\n transparent: 'kaki',\n kintsugi: 'kintsugi',\n glitch: 'glitch',\n mega: 'kaki',\n shrink: 'kaki',\n minimal: '',\n};\n\nexport function renderActions(ctx: LibHeader): TemplateResult {\n return html`\n <div class=\"hdr-actions\">\n ${ctx.loginLabel ? html`\n <a href=\"${ctx.loginHref || '#'}\" class=\"hdr-login\">${ctx.loginLabel}</a>\n ` : nothing}\n\n ${ctx.actions.map((action: HeaderAction) => {\n const cls = action.variant\n ? `hdr-action--${action.variant}`\n : `hdr-action--${ACTION_VARIANT_MAP[ctx.variant] || 'kaki'}`;\n return html`\n <a href=\"${action.href || '#'}\"\n class=\"hdr-action ${cls}\"\n @click=\"${(e: Event): void => {\n e.preventDefault();\n ctx._onActionClick(action);\n }}\"\n >${action.label}</a>`;\n })}\n\n ${ctx.variant === 'glitch' ? html`\n <div class=\"hdr-online\">● online</div>\n ` : nothing}\n\n ${ctx.variant === 'minimal' && ctx.contactLabel ? html`\n <a href=\"${ctx.contactHref || '#'}\" class=\"hdr-contact\">${ctx.contactLabel} →</a>\n ` : nothing}\n </div>`;\n}\n\n/* ══════════════════════════════════════\n BREADCRUMBS (app-bar)\n ══════════════════════════════════════ */\n\nexport function renderBreadcrumbs(items: BreadcrumbItem[]): TemplateResult {\n return html`\n <nav class=\"hdr-breadcrumbs\" aria-label=\"breadcrumb\">\n ${items.map((item, i) => html`\n ${i > 0 ? html`<span class=\"hdr-breadcrumb-sep\">/</span>` : nothing}\n ${i < items.length - 1\n ? html`<a href=\"${item.href || '#'}\" class=\"hdr-breadcrumb-link\">${item.label}</a>`\n : html`<span class=\"hdr-breadcrumb-current\">${item.label}</span>`}\n `)}\n </nav>`;\n}"],"names":[],"mappings":"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"}
package/dist/index362.js CHANGED
@@ -1,38 +1,133 @@
1
- import { _$LH as j } from "./index358.js";
2
- /**
3
- * @license
4
- * Copyright 2020 Google LLC
5
- * SPDX-License-Identifier: BSD-3-Clause
6
- */
7
- const { I: t } = j, i = (o) => o, s = () => document.createComment(""), v = (o, n, e) => {
1
+ import { html, nothing } from "lit";
2
+ function renderHamburger(ctx) {
3
+ const isLight = ["classic", "centered", "mega", "minimal", "shrink"].includes(ctx.variant);
4
+ const color = isLight ? "var(--color-washi-600, #7A6A5C)" : "rgba(250,247,244,0.5)";
5
+ return html`
6
+ <button
7
+ class="hdr-burger"
8
+ aria-label="${ctx._mobileOpen ? "Cerrar menú" : "Abrir menú"}"
9
+ aria-expanded="${ctx._mobileOpen}"
10
+ aria-controls="hdr-mobile-drawer"
11
+ @click="${() => ctx._toggleMobile()}"
12
+ >
13
+ <svg width="20" height="14" viewBox="0 0 20 14" fill="none"
14
+ stroke="${color}" stroke-width="1.6" stroke-linecap="round">
15
+ <line class="hdr-burger-top" x1="0" y1="1" x2="20" y2="1"/>
16
+ <line class="hdr-burger-mid" x1="0" y1="7" x2="20" y2="7"/>
17
+ <line class="hdr-burger-bot" x1="0" y1="13" x2="20" y2="13"/>
18
+ </svg>
19
+ </button>`;
20
+ }
21
+ function renderMobileDrawer(ctx) {
8
22
  var _a;
9
- const l = o._$AA.parentNode, d = void 0 === n ? o._$AB : n._$AA;
10
- if (void 0 === e) {
11
- const i2 = l.insertBefore(s(), d), n2 = l.insertBefore(s(), d);
12
- e = new t(i2, n2, o, o.options);
13
- } else {
14
- const t2 = e._$AB.nextSibling, n2 = e._$AM, c = n2 !== o;
15
- if (c) {
16
- let t3;
17
- (_a = e._$AQ) == null ? void 0 : _a.call(e, o), e._$AM = o, void 0 !== e._$AP && (t3 = o._$AU) !== n2._$AU && e._$AP(t3);
18
- }
19
- if (t2 !== d || c) {
20
- let o2 = e._$AA;
21
- for (; o2 !== t2; ) {
22
- const t3 = i(o2).nextSibling;
23
- i(l).insertBefore(o2, d), o2 = t3;
24
- }
25
- }
26
- }
27
- return e;
28
- }, u = (o, t2, i2 = o) => (o._$AI(t2, i2), o), m = {}, p = (o, t2 = m) => o._$AH = t2, M = (o) => o._$AH, h = (o) => {
29
- o._$AR(), o._$AA.remove();
30
- };
23
+ if (!ctx._mobileOpen) return html``;
24
+ return html`
25
+ <!-- Backdrop -->
26
+ <div
27
+ class="hdr-mobile-backdrop"
28
+ @click="${() => ctx._closeMobile()}"
29
+ aria-hidden="true"
30
+ ></div>
31
+
32
+ <!-- Drawer panel -->
33
+ <nav
34
+ id="hdr-mobile-drawer"
35
+ class="hdr-mobile-drawer ${ctx._mobileOpen ? "is-open" : ""}"
36
+ aria-label="Menú principal"
37
+ >
38
+ <!-- Links principales -->
39
+ <div class="hdr-mobile-links">
40
+ ${(ctx.links ?? []).map((link) => {
41
+ var _a2, _b;
42
+ return html`
43
+ <a
44
+ href="${link.href ?? "#"}"
45
+ class="hdr-mobile-link"
46
+ @click="${(e) => {
47
+ e.preventDefault();
48
+ ctx._onLinkClick(link.id);
49
+ }}"
50
+ >
51
+ ${link.label}
52
+ ${((_a2 = link.dropdown) == null ? void 0 : _a2.length) ? html`
53
+ <svg width="8" height="5" viewBox="0 0 10 6" fill="none"
54
+ stroke="currentColor" stroke-width="1.5" stroke-linecap="round">
55
+ <polyline points="1,1 5,5 9,1"/>
56
+ </svg>` : nothing}
57
+ </a>
58
+
59
+ <!-- Sub-items — siempre visibles en móvil -->
60
+ ${((_b = link.dropdown) == null ? void 0 : _b.length) ? html`
61
+ <div class="hdr-mobile-sub">
62
+ ${link.dropdown.map((item) => html`
63
+ <a href="${item.href ?? "#"}" class="hdr-mobile-sub-link">
64
+ › ${item.label}
65
+ </a>
66
+ `)}
67
+ </div>
68
+ ` : nothing}
69
+ `;
70
+ })}
71
+
72
+ <!-- Mega columns — accordion plano en móvil -->
73
+ ${((_a = ctx.megaColumns) == null ? void 0 : _a.length) ? html`
74
+ <div class="hdr-mobile-sub" style="margin-top:0;">
75
+ ${ctx.megaColumns.map((col) => html`
76
+ <p class="hdr-mobile-col-title">${col.title}</p>
77
+ ${col.items.map((item) => html`
78
+ <a href="${item.href ?? "#"}" class="hdr-mobile-sub-link">
79
+ › ${item.label}
80
+ </a>
81
+ `)}
82
+ `)}
83
+ </div>
84
+ ` : nothing}
85
+ </div>
86
+
87
+ <!-- Divider -->
88
+ <div class="hdr-mobile-divider"></div>
89
+
90
+ <!-- Actions / CTAs -->
91
+ <div class="hdr-mobile-actions">
92
+ ${ctx.loginLabel ? html`
93
+ <a href="${ctx.loginHref ?? "#"}" class="hdr-mobile-login">
94
+ ${ctx.loginLabel}
95
+ </a>
96
+ ` : nothing}
97
+
98
+ ${(ctx.actions ?? []).map((action) => html`
99
+ <a
100
+ href="${action.href ?? "#"}"
101
+ class="hdr-mobile-cta"
102
+ @click="${(e) => {
103
+ e.preventDefault();
104
+ ctx._onActionClick(action);
105
+ }}"
106
+ >
107
+ ${action.label}
108
+ </a>
109
+ `)}
110
+
111
+ ${ctx.contactLabel ? html`
112
+ <a href="${ctx.contactHref ?? "#"}" class="hdr-mobile-login">
113
+ ${ctx.contactLabel} →
114
+ </a>
115
+ ` : nothing}
116
+ </div>
117
+
118
+ <!-- Footer del drawer -->
119
+ <div class="hdr-mobile-footer">
120
+ <span>${ctx.brandName}</span>
121
+ <button
122
+ class="hdr-mobile-close"
123
+ aria-label="Cerrar menú"
124
+ @click="${() => ctx._closeMobile()}"
125
+ >✕</button>
126
+ </div>
127
+ </nav>`;
128
+ }
31
129
  export {
32
- M as getCommittedValue,
33
- v as insertPart,
34
- h as removePart,
35
- u as setChildPartValue,
36
- p as setCommittedValue
130
+ renderHamburger,
131
+ renderMobileDrawer
37
132
  };
38
133
  //# sourceMappingURL=index362.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index362.js","sources":["../../../node_modules/.pnpm/lit-html@3.3.2/node_modules/lit-html/directive-helpers.js"],"sourcesContent":["import{_$LH as o}from\"./lit-html.js\";\n/**\n * @license\n * Copyright 2020 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */const{I:t}=o,i=o=>o,n=o=>null===o||\"object\"!=typeof o&&\"function\"!=typeof o,e={HTML:1,SVG:2,MATHML:3},l=(o,t)=>void 0===t?void 0!==o?._$litType$:o?._$litType$===t,d=o=>null!=o?._$litType$?.h,c=o=>void 0!==o?._$litDirective$,f=o=>o?._$litDirective$,r=o=>void 0===o.strings,s=()=>document.createComment(\"\"),v=(o,n,e)=>{const l=o._$AA.parentNode,d=void 0===n?o._$AB:n._$AA;if(void 0===e){const i=l.insertBefore(s(),d),n=l.insertBefore(s(),d);e=new t(i,n,o,o.options)}else{const t=e._$AB.nextSibling,n=e._$AM,c=n!==o;if(c){let t;e._$AQ?.(o),e._$AM=o,void 0!==e._$AP&&(t=o._$AU)!==n._$AU&&e._$AP(t)}if(t!==d||c){let o=e._$AA;for(;o!==t;){const t=i(o).nextSibling;i(l).insertBefore(o,d),o=t}}}return e},u=(o,t,i=o)=>(o._$AI(t,i),o),m={},p=(o,t=m)=>o._$AH=t,M=o=>o._$AH,h=o=>{o._$AR(),o._$AA.remove()},j=o=>{o._$AR()};export{e as TemplateResultType,j as clearPart,M as getCommittedValue,f as getDirectiveClass,v as insertPart,d as isCompiledTemplateResult,c as isDirectiveResult,n as isPrimitive,r as isSingleExpression,l as isTemplateResult,h as removePart,u as setChildPartValue,p as setCommittedValue};\n//# sourceMappingURL=directive-helpers.js.map\n"],"names":["o","i","n","t"],"mappings":";AACA;AAAA;AAAA;AAAA;AAAA;AAIO,MAAC,EAAC,GAAE,EAAC,IAAEA,GAAE,IAAE,OAAG,GAA8P,IAAE,MAAI,SAAS,cAAc,EAAE,GAAE,IAAE,CAAC,GAAE,GAAE,MAAI;;AAAC,QAAM,IAAE,EAAE,KAAK,YAAW,IAAE,WAAS,IAAE,EAAE,OAAK,EAAE;AAAK,MAAG,WAAS,GAAE;AAAC,UAAMC,KAAE,EAAE,aAAa,EAAC,GAAG,CAAC,GAAEC,KAAE,EAAE,aAAa,EAAC,GAAG,CAAC;AAAE,QAAE,IAAI,EAAED,IAAEC,IAAE,GAAE,EAAE,OAAO;AAAA,EAAC,OAAK;AAAC,UAAMC,KAAE,EAAE,KAAK,aAAYD,KAAE,EAAE,MAAK,IAAEA,OAAI;AAAE,QAAG,GAAE;AAAC,UAAIC;AAAE,cAAE,SAAF,2BAAS,IAAG,EAAE,OAAK,GAAE,WAAS,EAAE,SAAOA,KAAE,EAAE,UAAQD,GAAE,QAAM,EAAE,KAAKC,EAAC;AAAA,IAAC;AAAC,QAAGA,OAAI,KAAG,GAAE;AAAC,UAAIH,KAAE,EAAE;AAAK,aAAKA,OAAIG,MAAG;AAAC,cAAMA,KAAE,EAAEH,EAAC,EAAE;AAAY,UAAE,CAAC,EAAE,aAAaA,IAAE,CAAC,GAAEA,KAAEG;AAAA,MAAC;AAAA,IAAC;AAAA,EAAC;AAAC,SAAO;AAAC,GAAE,IAAE,CAAC,GAAEA,IAAEF,KAAE,OAAK,EAAE,KAAKE,IAAEF,EAAC,GAAE,IAAG,IAAE,CAAA,GAAG,IAAE,CAAC,GAAEE,KAAE,MAAI,EAAE,OAAKA,IAAE,IAAE,OAAG,EAAE,MAAK,IAAE,OAAG;AAAC,IAAE,KAAI,GAAG,EAAE,KAAK;AAAQ;","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"index362.js","sources":["../src/components/molecules/header/templates/header-mobile.html.ts"],"sourcesContent":["import { html, nothing, TemplateResult } from 'lit';\nimport type { LibHeader } from '../lib-header.component';\nimport type { NavLink, DropdownItem, HeaderAction } from '../lib-header.types';\n\n/* ══════════════════════════════════════\n HAMBURGER BUTTON\n ══════════════════════════════════════ */\n\nexport function renderHamburger(ctx: LibHeader): TemplateResult {\n const isLight = ['classic', 'centered', 'mega', 'minimal', 'shrink'].includes(ctx.variant);\n const color = isLight\n ? 'var(--color-washi-600, #7A6A5C)'\n : 'rgba(250,247,244,0.5)';\n\n return html`\n <button\n class=\"hdr-burger\"\n aria-label=\"${ctx._mobileOpen ? 'Cerrar menú' : 'Abrir menú'}\"\n aria-expanded=\"${ctx._mobileOpen}\"\n aria-controls=\"hdr-mobile-drawer\"\n @click=\"${(): void => ctx._toggleMobile()}\"\n >\n <svg width=\"20\" height=\"14\" viewBox=\"0 0 20 14\" fill=\"none\"\n stroke=\"${color}\" stroke-width=\"1.6\" stroke-linecap=\"round\">\n <line class=\"hdr-burger-top\" x1=\"0\" y1=\"1\" x2=\"20\" y2=\"1\"/>\n <line class=\"hdr-burger-mid\" x1=\"0\" y1=\"7\" x2=\"20\" y2=\"7\"/>\n <line class=\"hdr-burger-bot\" x1=\"0\" y1=\"13\" x2=\"20\" y2=\"13\"/>\n </svg>\n </button>`;\n}\n\n/* ══════════════════════════════════════\n MOBILE DRAWER\n ══════════════════════════════════════ */\n\nexport function renderMobileDrawer(ctx: LibHeader): TemplateResult {\n if (!ctx._mobileOpen) return html``;\n\n return html`\n <!-- Backdrop -->\n <div\n class=\"hdr-mobile-backdrop\"\n @click=\"${(): void => ctx._closeMobile()}\"\n aria-hidden=\"true\"\n ></div>\n\n <!-- Drawer panel -->\n <nav\n id=\"hdr-mobile-drawer\"\n class=\"hdr-mobile-drawer ${ctx._mobileOpen ? 'is-open' : ''}\"\n aria-label=\"Menú principal\"\n >\n <!-- Links principales -->\n <div class=\"hdr-mobile-links\">\n ${(ctx.links ?? []).map((link: NavLink) => html`\n <a\n href=\"${link.href ?? '#'}\"\n class=\"hdr-mobile-link\"\n @click=\"${(e: Event): void => {\n e.preventDefault();\n ctx._onLinkClick(link.id);\n }}\"\n >\n ${link.label}\n ${link.dropdown?.length ? html`\n <svg width=\"8\" height=\"5\" viewBox=\"0 0 10 6\" fill=\"none\"\n stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\">\n <polyline points=\"1,1 5,5 9,1\"/>\n </svg>` : nothing}\n </a>\n\n <!-- Sub-items — siempre visibles en móvil -->\n ${link.dropdown?.length ? html`\n <div class=\"hdr-mobile-sub\">\n ${link.dropdown.map((item: DropdownItem) => html`\n <a href=\"${item.href ?? '#'}\" class=\"hdr-mobile-sub-link\">\n › ${item.label}\n </a>\n `)}\n </div>\n ` : nothing}\n `)}\n\n <!-- Mega columns — accordion plano en móvil -->\n ${ctx.megaColumns?.length ? html`\n <div class=\"hdr-mobile-sub\" style=\"margin-top:0;\">\n ${ctx.megaColumns.map(col => html`\n <p class=\"hdr-mobile-col-title\">${col.title}</p>\n ${col.items.map(item => html`\n <a href=\"${item.href ?? '#'}\" class=\"hdr-mobile-sub-link\">\n › ${item.label}\n </a>\n `)}\n `)}\n </div>\n ` : nothing}\n </div>\n\n <!-- Divider -->\n <div class=\"hdr-mobile-divider\"></div>\n\n <!-- Actions / CTAs -->\n <div class=\"hdr-mobile-actions\">\n ${ctx.loginLabel ? html`\n <a href=\"${ctx.loginHref ?? '#'}\" class=\"hdr-mobile-login\">\n ${ctx.loginLabel}\n </a>\n ` : nothing}\n\n ${(ctx.actions ?? []).map((action: HeaderAction) => html`\n <a\n href=\"${action.href ?? '#'}\"\n class=\"hdr-mobile-cta\"\n @click=\"${(e: Event): void => {\n e.preventDefault();\n ctx._onActionClick(action);\n }}\"\n >\n ${action.label}\n </a>\n `)}\n\n ${ctx.contactLabel ? html`\n <a href=\"${ctx.contactHref ?? '#'}\" class=\"hdr-mobile-login\">\n ${ctx.contactLabel} →\n </a>\n ` : nothing}\n </div>\n\n <!-- Footer del drawer -->\n <div class=\"hdr-mobile-footer\">\n <span>${ctx.brandName}</span>\n <button\n class=\"hdr-mobile-close\"\n aria-label=\"Cerrar menú\"\n @click=\"${(): void => ctx._closeMobile()}\"\n >✕</button>\n </div>\n </nav>`;\n}"],"names":["_a"],"mappings":";AAQO,SAAS,gBAAgB,KAAgC;AAC9D,QAAM,UAAU,CAAC,WAAW,YAAY,QAAQ,WAAW,QAAQ,EAAE,SAAS,IAAI,OAAO;AACzF,QAAM,QAAU,UACZ,oCACA;AAEJ,SAAO;AAAA;AAAA;AAAA,oBAGW,IAAI,cAAc,gBAAgB,YAAY;AAAA,uBAC3C,IAAI,WAAW;AAAA;AAAA,gBAEtB,MAAY,IAAI,eAAe;AAAA;AAAA;AAAA,kBAG7B,KAAK;AAAA;AAAA;AAAA;AAAA;AAAA;AAMvB;AAMO,SAAS,mBAAmB,KAAgC;;AACjE,MAAI,CAAC,IAAI,YAAa,QAAO;AAE7B,SAAO;AAAA;AAAA;AAAA;AAAA,gBAIO,MAAY,IAAI,cAAc;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,iCAOb,IAAI,cAAc,YAAY,EAAE;AAAA;AAAA;AAAA;AAAA;AAAA,WAKtD,IAAI,SAAS,CAAA,GAAI,IAAI,CAAC;;AAAkB;AAAA;AAAA,oBAE/B,KAAK,QAAQ,GAAG;AAAA;AAAA,sBAEd,CAAC,MAAmB;AAC5B,QAAE,eAAA;AACF,UAAI,aAAa,KAAK,EAAE;AAAA,IAC1B,CAAC;AAAA;AAAA,cAEC,KAAK,KAAK;AAAA,gBACVA,MAAA,KAAK,aAAL,gBAAAA,IAAe,UAAS;AAAA;AAAA;AAAA;AAAA,wBAId,OAAO;AAAA;AAAA;AAAA;AAAA,cAInB,UAAK,aAAL,mBAAe,UAAS;AAAA;AAAA,gBAEpB,KAAK,SAAS,IAAI,CAAC,SAAuB;AAAA,2BAC/B,KAAK,QAAQ,GAAG;AAAA,sBACrB,KAAK,KAAK;AAAA;AAAA,eAEjB,CAAC;AAAA;AAAA,cAEF,OAAO;AAAA;AAAA,GACZ,CAAC;AAAA;AAAA;AAAA,YAGA,SAAI,gBAAJ,mBAAiB,UAAS;AAAA;AAAA,cAEtB,IAAI,YAAY,IAAI,CAAA,QAAO;AAAA,gDACO,IAAI,KAAK;AAAA,gBACzC,IAAI,MAAM,IAAI,CAAA,SAAQ;AAAA,2BACX,KAAK,QAAQ,GAAG;AAAA,sBACrB,KAAK,KAAK;AAAA;AAAA,eAEjB,CAAC;AAAA,aACH,CAAC;AAAA;AAAA,YAEF,OAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,UAQT,IAAI,aAAa;AAAA,qBACN,IAAI,aAAa,GAAG;AAAA,cAC3B,IAAI,UAAU;AAAA;AAAA,YAEhB,OAAO;AAAA;AAAA,WAER,IAAI,WAAW,CAAA,GAAI,IAAI,CAAC,WAAyB;AAAA;AAAA,oBAExC,OAAO,QAAQ,GAAG;AAAA;AAAA,sBAEhB,CAAC,MAAmB;AAC5B,MAAE,eAAA;AACF,QAAI,eAAe,MAAM;AAAA,EAC3B,CAAC;AAAA;AAAA,cAEC,OAAO,KAAK;AAAA;AAAA,SAEjB,CAAC;AAAA;AAAA,UAEA,IAAI,eAAe;AAAA,qBACR,IAAI,eAAe,GAAG;AAAA,cAC7B,IAAI,YAAY;AAAA;AAAA,YAElB,OAAO;AAAA;AAAA;AAAA;AAAA;AAAA,gBAKH,IAAI,SAAS;AAAA;AAAA;AAAA;AAAA,oBAIT,MAAY,IAAI,cAAc;AAAA;AAAA;AAAA;AAIlD;"}
@@ -17,7 +17,6 @@ export * from './lib-copy-button';
17
17
  export * from './lib-display-heading';
18
18
  export * from './lib-divider';
19
19
  export * from './lib-eyebrow';
20
- export * from './lib-glass-card';
21
20
  export * from './lib-icon';
22
21
  export * from './lib-kbd';
23
22
  export * from './lib-label';
@@ -35,7 +34,6 @@ export * from './lib-select-option';
35
34
  export * from './lib-skeleton';
36
35
  export * from './lib-spacer';
37
36
  export * from './lib-spinner';
38
- export * from './lib-spotlight-card';
39
37
  export * from './lib-status-dot';
40
38
  export * from './lib-step';
41
39
  export * from './lib-switch';
@@ -81,4 +79,6 @@ export * from './lib-stepper';
81
79
  export * from './lib-timeline-item';
82
80
  export * from './lib-timeline';
83
81
  export * from './lib-toast-manager';
84
- export * from './lib-component-grid';
82
+ export * from './lib-component-grid';
83
+ export * from './lib-glass-card';
84
+ export * from './lib-spotlight-card';
@@ -1,5 +1,5 @@
1
1
  import { LitElement, TemplateResult } from 'lit';
2
- import type { LibGlassVariant, LibGlassIntensity } from './lib-glass-card.html';
2
+ import type { LibGlassVariant, LibGlassIntensity } from './lib-glass-card.types';
3
3
  /**
4
4
  * @element lib-glass-card
5
5
  *
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lib-glass-card.component.d.ts","sourceRoot":"","sources":["../../../../../../src/components/atoms/card/glass-card/lib-glass-card.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAkB,cAAc,EAAE,MAAM,KAAK,CAAC;AAEjE,OAAO,KAAK,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAKjF;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,qBACa,YAAa,SAAQ,UAAU;IAC1C,OAAgB,MAAM,4BAGpB;IAEF;;;;;OAKG;IAEH,OAAO,EAAE,eAAe,CAAW;IAEnC;;;;;OAKG;IAEH,SAAS,EAAE,iBAAiB,CAAQ;IAE3B,MAAM,IAAI,cAAc;CAMlC;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,gBAAgB,EAAE,YAAY,CAAC;KAChC;CACF"}
@@ -1,10 +1,5 @@
1
1
  import { TemplateResult } from 'lit';
2
- export type LibGlassVariant = 'paper' | 'water' | 'kaki';
3
- export type LibGlassIntensity = 'low' | 'md' | 'high';
4
- export interface GlassCardTemplateProps {
5
- variant: LibGlassVariant;
6
- intensity: LibGlassIntensity;
7
- }
2
+ import type { GlassCardTemplateProps } from './lib-glass-card.types';
8
3
  /**
9
4
  * Template del glass card.
10
5
  *
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lib-glass-card.html.d.ts","sourceRoot":"","sources":["../../../../../../src/components/atoms/card/glass-card/lib-glass-card.html.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,cAAc,EAAE,MAAM,KAAK,CAAC;AAC3C,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAErE;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,sBAAsB,GAAG,cAAc,CAQhF"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lib-glass-card.stories.d.ts","sourceRoot":"","sources":["../../../../../../src/components/atoms/card/glass-card/lib-glass-card.stories.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,gCAAgC,CAAC;AAEhE,OAAO,4BAA4B,CAAC;AACpC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAE/D,KAAK,qBAAqB,GAAG,IAAI,CAAC,YAAY,EAAE,SAAS,GAAG,WAAW,CAAC,CAAC;AAoCzE,QAAA,MAAM,IAAI,EAAE,IAAI,CAAC,qBAAqB,CA0BrC,CAAC;AAEF,eAAe,IAAI,CAAC;AACpB,KAAK,KAAK,GAAG,QAAQ,CAAC,qBAAqB,CAAC,CAAC;AAG7C,eAAO,MAAM,UAAU,EAAE,KAKxB,CAAC;AAGF,eAAO,MAAM,QAAQ,EAAE,KAetB,CAAC;AAGF,eAAO,MAAM,WAAW,EAAE,KAczB,CAAC;AAGF,eAAO,MAAM,MAAM,EAAE,KAapB,CAAC;AAGF,eAAO,MAAM,YAAY,EAAE,KA6B1B,CAAC;AAGF,eAAO,MAAM,gBAAgB,EAAE,KAqC9B,CAAC"}
@@ -0,0 +1,7 @@
1
+ export type LibGlassVariant = 'paper' | 'water' | 'kaki';
2
+ export type LibGlassIntensity = 'low' | 'md' | 'high';
3
+ export interface GlassCardTemplateProps {
4
+ variant: LibGlassVariant;
5
+ intensity: LibGlassIntensity;
6
+ }
7
+ //# sourceMappingURL=lib-glass-card.types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lib-glass-card.types.d.ts","sourceRoot":"","sources":["../../../../../../src/components/atoms/card/glass-card/lib-glass-card.types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,eAAe,GAAK,OAAO,GAAG,OAAO,GAAG,MAAM,CAAC;AAC3D,MAAM,MAAM,iBAAiB,GAAG,KAAK,GAAG,IAAI,GAAG,MAAM,CAAC;AAEtD,MAAM,WAAW,sBAAsB;IACrC,OAAO,EAAI,eAAe,CAAC;IAC3B,SAAS,EAAE,iBAAiB,CAAC;CAC9B"}