@misael703/ui 1.28.0 → 1.30.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.
- package/dist/{chunk-YLISYQNI.js → chunk-42EYBIRW.js} +4 -4
- package/dist/{chunk-YLISYQNI.js.map → chunk-42EYBIRW.js.map} +1 -1
- package/dist/{chunk-EB4TS7VJ.mjs → chunk-4JE4OFGS.mjs} +4 -4
- package/dist/{chunk-EB4TS7VJ.mjs.map → chunk-4JE4OFGS.mjs.map} +1 -1
- package/dist/{chunk-6HNR25ID.js → chunk-4WGXCRNN.js} +3 -3
- package/dist/{chunk-6HNR25ID.js.map → chunk-4WGXCRNN.js.map} +1 -1
- package/dist/{chunk-AZTZAY2S.mjs → chunk-574VINGB.mjs} +4 -4
- package/dist/{chunk-AZTZAY2S.mjs.map → chunk-574VINGB.mjs.map} +1 -1
- package/dist/{chunk-H7HFKEUI.js → chunk-5TS3DUQD.js} +4 -4
- package/dist/{chunk-H7HFKEUI.js.map → chunk-5TS3DUQD.js.map} +1 -1
- package/dist/{chunk-WGEEYXVZ.js → chunk-6UZSY6QG.js} +3 -3
- package/dist/{chunk-WGEEYXVZ.js.map → chunk-6UZSY6QG.js.map} +1 -1
- package/dist/{chunk-A6DHNAM7.js → chunk-732BPQGZ.js} +4 -4
- package/dist/{chunk-A6DHNAM7.js.map → chunk-732BPQGZ.js.map} +1 -1
- package/dist/{chunk-KS7CSKO6.js → chunk-APW6SHMN.js} +5 -5
- package/dist/{chunk-KS7CSKO6.js.map → chunk-APW6SHMN.js.map} +1 -1
- package/dist/{chunk-MSP4BOPZ.js → chunk-AUPTAKA6.js} +3 -3
- package/dist/{chunk-MSP4BOPZ.js.map → chunk-AUPTAKA6.js.map} +1 -1
- package/dist/{chunk-2T5KZJGY.js → chunk-DU4L5ROW.js} +3 -3
- package/dist/{chunk-2T5KZJGY.js.map → chunk-DU4L5ROW.js.map} +1 -1
- package/dist/{chunk-PVSP7Y2F.mjs → chunk-E5KXQ2JE.mjs} +5 -5
- package/dist/{chunk-PVSP7Y2F.mjs.map → chunk-E5KXQ2JE.mjs.map} +1 -1
- package/dist/{chunk-LJG3AH7G.mjs → chunk-ETQHY4GG.mjs} +4 -4
- package/dist/{chunk-LJG3AH7G.mjs.map → chunk-ETQHY4GG.mjs.map} +1 -1
- package/dist/{chunk-3OT3FROI.js → chunk-FVNW5TYQ.js} +4 -4
- package/dist/{chunk-3OT3FROI.js.map → chunk-FVNW5TYQ.js.map} +1 -1
- package/dist/{chunk-ADF5YEMJ.mjs → chunk-GG3EABAY.mjs} +4 -4
- package/dist/{chunk-ADF5YEMJ.mjs.map → chunk-GG3EABAY.mjs.map} +1 -1
- package/dist/{chunk-TD732KXM.js → chunk-GKCSOMKP.js} +4 -4
- package/dist/{chunk-TD732KXM.js.map → chunk-GKCSOMKP.js.map} +1 -1
- package/dist/{chunk-STZ7YDMR.mjs → chunk-HFRMDYNW.mjs} +3 -3
- package/dist/{chunk-STZ7YDMR.mjs.map → chunk-HFRMDYNW.mjs.map} +1 -1
- package/dist/{chunk-CDX256RG.mjs → chunk-I7URH4F2.mjs} +4 -4
- package/dist/{chunk-CDX256RG.mjs.map → chunk-I7URH4F2.mjs.map} +1 -1
- package/dist/{chunk-Y6EGYS4L.mjs → chunk-IZRJEK7O.mjs} +4 -4
- package/dist/{chunk-Y6EGYS4L.mjs.map → chunk-IZRJEK7O.mjs.map} +1 -1
- package/dist/{chunk-NU4GAGUV.js → chunk-JZNUYA42.js} +3 -3
- package/dist/{chunk-NU4GAGUV.js.map → chunk-JZNUYA42.js.map} +1 -1
- package/dist/{chunk-DMMZWL7W.js → chunk-KJ6YAYWS.js} +4 -4
- package/dist/{chunk-DMMZWL7W.js.map → chunk-KJ6YAYWS.js.map} +1 -1
- package/dist/{chunk-OEFOGREP.js → chunk-L7TRPSDL.js} +5 -5
- package/dist/{chunk-OEFOGREP.js.map → chunk-L7TRPSDL.js.map} +1 -1
- package/dist/{chunk-M3RO3GSC.js → chunk-LRVHEV44.js} +6 -6
- package/dist/{chunk-M3RO3GSC.js.map → chunk-LRVHEV44.js.map} +1 -1
- package/dist/{chunk-JO5WBKF2.mjs → chunk-NJM46SBV.mjs} +4 -4
- package/dist/{chunk-JO5WBKF2.mjs.map → chunk-NJM46SBV.mjs.map} +1 -1
- package/dist/{chunk-HXCAPPXO.mjs → chunk-NQ5JTKOL.mjs} +18 -6
- package/dist/chunk-NQ5JTKOL.mjs.map +1 -0
- package/dist/{chunk-NCXODB4O.mjs → chunk-NQF2BHHT.mjs} +6 -6
- package/dist/{chunk-NCXODB4O.mjs.map → chunk-NQF2BHHT.mjs.map} +1 -1
- package/dist/{chunk-4RHJW6JI.js → chunk-O6RMNJNM.js} +5 -5
- package/dist/{chunk-4RHJW6JI.js.map → chunk-O6RMNJNM.js.map} +1 -1
- package/dist/{chunk-ARGGKLQD.mjs → chunk-PUEGDRTJ.mjs} +4 -4
- package/dist/{chunk-ARGGKLQD.mjs.map → chunk-PUEGDRTJ.mjs.map} +1 -1
- package/dist/{chunk-MVY4UEFB.mjs → chunk-QLK3NWKB.mjs} +5 -5
- package/dist/{chunk-MVY4UEFB.mjs.map → chunk-QLK3NWKB.mjs.map} +1 -1
- package/dist/{chunk-B4BPE3LC.mjs → chunk-QP5HKKTM.mjs} +4 -4
- package/dist/{chunk-B4BPE3LC.mjs.map → chunk-QP5HKKTM.mjs.map} +1 -1
- package/dist/{chunk-6DMU73SO.js → chunk-QQJI2PKP.js} +6 -6
- package/dist/{chunk-6DMU73SO.js.map → chunk-QQJI2PKP.js.map} +1 -1
- package/dist/{chunk-JMFDIN5R.mjs → chunk-QR6X2UOT.mjs} +3 -3
- package/dist/{chunk-JMFDIN5R.mjs.map → chunk-QR6X2UOT.mjs.map} +1 -1
- package/dist/{chunk-LJSNE6YQ.js → chunk-RHT75EOF.js} +3 -3
- package/dist/{chunk-LJSNE6YQ.js.map → chunk-RHT75EOF.js.map} +1 -1
- package/dist/{chunk-3U6C2BFM.mjs → chunk-RSRCU4Y3.mjs} +3 -3
- package/dist/{chunk-3U6C2BFM.mjs.map → chunk-RSRCU4Y3.mjs.map} +1 -1
- package/dist/{chunk-24TLFBBQ.mjs → chunk-RZMSZOTR.mjs} +3 -3
- package/dist/{chunk-24TLFBBQ.mjs.map → chunk-RZMSZOTR.mjs.map} +1 -1
- package/dist/{chunk-QAOFEIG4.mjs → chunk-SGXHCB5L.mjs} +4 -4
- package/dist/{chunk-QAOFEIG4.mjs.map → chunk-SGXHCB5L.mjs.map} +1 -1
- package/dist/{chunk-F3O6JAL3.js → chunk-T2FR7FW7.js} +4 -4
- package/dist/{chunk-F3O6JAL3.js.map → chunk-T2FR7FW7.js.map} +1 -1
- package/dist/{chunk-TCFO7YBF.js → chunk-T2OCX4CY.js} +4 -4
- package/dist/{chunk-TCFO7YBF.js.map → chunk-T2OCX4CY.js.map} +1 -1
- package/dist/{chunk-PPU5WKZS.js → chunk-T6B3TXWE.js} +4 -4
- package/dist/{chunk-PPU5WKZS.js.map → chunk-T6B3TXWE.js.map} +1 -1
- package/dist/{chunk-NDMMQZZZ.js → chunk-TBU3ZGHK.js} +7 -7
- package/dist/{chunk-NDMMQZZZ.js.map → chunk-TBU3ZGHK.js.map} +1 -1
- package/dist/{chunk-MSEDQM7C.mjs → chunk-UA7TWDUL.mjs} +3 -3
- package/dist/{chunk-MSEDQM7C.mjs.map → chunk-UA7TWDUL.mjs.map} +1 -1
- package/dist/{chunk-CXYZK3TK.js → chunk-UYANLSRC.js} +4 -4
- package/dist/{chunk-CXYZK3TK.js.map → chunk-UYANLSRC.js.map} +1 -1
- package/dist/{chunk-Q3DKZR44.js → chunk-VN3EH6YV.js} +3 -3
- package/dist/{chunk-Q3DKZR44.js.map → chunk-VN3EH6YV.js.map} +1 -1
- package/dist/{chunk-H4KDBDXC.js → chunk-VUL2YJB4.js} +19 -7
- package/dist/chunk-VUL2YJB4.js.map +1 -0
- package/dist/{chunk-CUWWADL2.mjs → chunk-VW3BG5LZ.mjs} +6 -6
- package/dist/{chunk-CUWWADL2.mjs.map → chunk-VW3BG5LZ.mjs.map} +1 -1
- package/dist/{chunk-I3ADS32J.mjs → chunk-W6TVHKDE.mjs} +5 -5
- package/dist/{chunk-I3ADS32J.mjs.map → chunk-W6TVHKDE.mjs.map} +1 -1
- package/dist/{chunk-ER2Z5JEO.mjs → chunk-WKHQNBZT.mjs} +3 -3
- package/dist/{chunk-ER2Z5JEO.mjs.map → chunk-WKHQNBZT.mjs.map} +1 -1
- package/dist/{chunk-5OMB6FC5.mjs → chunk-WRMVEORW.mjs} +3 -3
- package/dist/{chunk-5OMB6FC5.mjs.map → chunk-WRMVEORW.mjs.map} +1 -1
- package/dist/{chunk-VAAB5DXM.js → chunk-Z2ITJOAG.js} +6 -6
- package/dist/{chunk-VAAB5DXM.js.map → chunk-Z2ITJOAG.js.map} +1 -1
- package/dist/{chunk-RDX3D3P5.mjs → chunk-ZTAAFZNC.mjs} +4 -4
- package/dist/{chunk-RDX3D3P5.mjs.map → chunk-ZTAAFZNC.mjs.map} +1 -1
- package/dist/{chunk-D4K255ZA.mjs → chunk-ZY6TCU7I.mjs} +5 -5
- package/dist/{chunk-D4K255ZA.mjs.map → chunk-ZY6TCU7I.mjs.map} +1 -1
- package/dist/components/AdvancedPickers.js +10 -10
- package/dist/components/AdvancedPickers.mjs +6 -6
- package/dist/components/AppShell.js +4 -4
- package/dist/components/AppShell.mjs +2 -2
- package/dist/components/Comments.js +9 -9
- package/dist/components/Comments.mjs +6 -6
- package/dist/components/Commerce.js +16 -16
- package/dist/components/Commerce.mjs +5 -5
- package/dist/components/ContextMenu.js +4 -4
- package/dist/components/ContextMenu.mjs +3 -3
- package/dist/components/DataTable.js +10 -10
- package/dist/components/DataTable.mjs +4 -4
- package/dist/components/Display.js +13 -13
- package/dist/components/Display.mjs +2 -2
- package/dist/components/Display2.js +7 -7
- package/dist/components/Display2.mjs +3 -3
- package/dist/components/Display3.d.mts +19 -2
- package/dist/components/Display3.d.ts +19 -2
- package/dist/components/Display3.js +12 -12
- package/dist/components/Display3.mjs +6 -6
- package/dist/components/Editing.js +9 -9
- package/dist/components/Editing.mjs +4 -4
- package/dist/components/Filters.js +9 -9
- package/dist/components/Filters.mjs +3 -3
- package/dist/components/Gallery.js +5 -5
- package/dist/components/Gallery.mjs +3 -3
- package/dist/components/HoverCard.js +3 -3
- package/dist/components/HoverCard.mjs +2 -2
- package/dist/components/Inputs.js +7 -7
- package/dist/components/Inputs.mjs +3 -3
- package/dist/components/InputsExtra.js +13 -13
- package/dist/components/InputsExtra.mjs +4 -4
- package/dist/components/Layout.js +22 -22
- package/dist/components/Layout.mjs +3 -3
- package/dist/components/Logo.js +3 -3
- package/dist/components/Logo.mjs +2 -2
- package/dist/components/Menubar.js +4 -4
- package/dist/components/Menubar.mjs +3 -3
- package/dist/components/NavigationMenu.js +4 -4
- package/dist/components/NavigationMenu.mjs +3 -3
- package/dist/components/Notifications.js +4 -4
- package/dist/components/Notifications.mjs +3 -3
- package/dist/components/Overlay.js +4 -4
- package/dist/components/Overlay.mjs +2 -2
- package/dist/components/Permissions.js +4 -4
- package/dist/components/Permissions.mjs +3 -3
- package/dist/components/Pickers.js +10 -10
- package/dist/components/Pickers.mjs +5 -5
- package/dist/components/Popover.js +4 -4
- package/dist/components/Popover.mjs +3 -3
- package/dist/components/Toast.js +4 -4
- package/dist/components/Toast.mjs +2 -2
- package/dist/index.d.mts +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +364 -364
- package/dist/index.mjs +37 -37
- package/dist/presets/elalba/styles.css +1 -1
- package/dist/styles.css +1 -1
- package/dist/tokens.css +1 -1
- package/package.json +1 -1
- package/dist/chunk-H4KDBDXC.js.map +0 -1
- package/dist/chunk-HXCAPPXO.mjs.map +0 -1
package/dist/tokens.css
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
:root{--color-primary:var(--color-primary-800);--color-secondary:var(--color-secondary-400);--color-primary-900:#2e2b26;--color-primary-800:#423e37;--color-primary-700:#554839;--color-primary-600:#6b5a47;--color-primary-500:#87735e;--color-primary-400:#a8957f;--color-primary-300:#c8b8a6;--color-primary-200:#dfd3c6;--color-primary-100:#f0e9e1;--color-primary-50:#faf6f2;--color-secondary-900:#573820;--color-secondary-800:#7a4f30;--color-secondary-700:#9c6840;--color-secondary-600:#be8456;--color-secondary-500:#d4a074;--color-secondary-400:#e4bb97;--color-secondary-300:#ebcbab;--color-secondary-200:#f1dbc2;--color-secondary-100:#f8eddf;--color-secondary-50:#fcf7f1;--color-ink:#1c1917;--color-gray-900:#292524;--color-gray-800:#44403c;--color-gray-700:#57534e;--color-gray-600:#78716c;--color-gray-500:#a8a29e;--color-gray-400:#c4bcb4;--color-gray-300:#d6d3d1;--color-gray-200:#e7e5e4;--color-gray-150:#efedeb;--color-gray-100:#f5f5f4;--color-gray-50:#fafaf9;--color-white:#fff;--color-green-900:#0f4d22;--color-green-800:#166130;--color-green-700:#1f7a3d;--color-green-600:#2f9e44;--color-green-500:#4ab35a;--color-green-400:#6ec47e;--color-green-300:#95d5a1;--color-green-200:#c1e6c8;--color-green-100:#e0f1e3;--color-green-50:#f0f8f2;--color-yellow-900:#
|
|
1
|
+
:root{--color-primary:var(--color-primary-800);--color-secondary:var(--color-secondary-400);--color-primary-900:#2e2b26;--color-primary-800:#423e37;--color-primary-700:#554839;--color-primary-600:#6b5a47;--color-primary-500:#87735e;--color-primary-400:#a8957f;--color-primary-300:#c8b8a6;--color-primary-200:#dfd3c6;--color-primary-100:#f0e9e1;--color-primary-50:#faf6f2;--color-secondary-900:#573820;--color-secondary-800:#7a4f30;--color-secondary-700:#9c6840;--color-secondary-600:#be8456;--color-secondary-500:#d4a074;--color-secondary-400:#e4bb97;--color-secondary-300:#ebcbab;--color-secondary-200:#f1dbc2;--color-secondary-100:#f8eddf;--color-secondary-50:#fcf7f1;--color-ink:#1c1917;--color-gray-900:#292524;--color-gray-800:#44403c;--color-gray-700:#57534e;--color-gray-600:#78716c;--color-gray-500:#a8a29e;--color-gray-400:#c4bcb4;--color-gray-300:#d6d3d1;--color-gray-200:#e7e5e4;--color-gray-150:#efedeb;--color-gray-100:#f5f5f4;--color-gray-50:#fafaf9;--color-white:#fff;--color-green-900:#0f4d22;--color-green-800:#166130;--color-green-700:#1f7a3d;--color-green-600:#2f9e44;--color-green-500:#4ab35a;--color-green-400:#6ec47e;--color-green-300:#95d5a1;--color-green-200:#c1e6c8;--color-green-100:#e0f1e3;--color-green-50:#f0f8f2;--color-yellow-900:#713f12;--color-yellow-800:#854d0e;--color-yellow-700:#a16207;--color-yellow-600:#ca8a04;--color-yellow-500:#eab308;--color-yellow-400:#facc15;--color-yellow-300:#fde047;--color-yellow-200:#fef08a;--color-yellow-100:#fef9c3;--color-yellow-50:#fefce8;--color-red-900:#5b0e0e;--color-red-800:#7e1818;--color-red-700:#b91c1c;--color-red-600:#dc2626;--color-red-500:#ef4444;--color-red-400:#f87171;--color-red-300:#fca5a5;--color-red-200:#fecaca;--color-red-100:#fee2e2;--color-red-50:#fef2f2;--color-info-900:#0c4a6e;--color-info-800:#075985;--color-info-700:#0369a1;--color-info-600:#0284c7;--color-info-500:#0ea5e9;--color-info-400:#38bdf8;--color-info-300:#7dd3fc;--color-info-200:#bae6fd;--color-info-100:#e0f2fe;--color-info-50:#f0f9ff;--color-success:var(--color-green-600);--color-warning:var(--color-yellow-600);--color-danger:var(--color-red-600);--color-info:var(--color-info-600);--bg-canvas:#ede1cc;--bg-surface:var(--color-white);--bg-subtle:var(--color-gray-100);--bg-muted:var(--color-gray-150);--bg-inverse:var(--color-primary);--bg-inverse-strong:var(--color-primary-900);--fg-default:var(--color-ink);--fg-muted:#605a54;--fg-subtle:#655e57;--fg-meta:var(--fg-subtle);--fg-on-brand:var(--color-white);--fg-on-secondary:var(--color-primary);--fg-link:var(--color-primary);--fg-link-hover:var(--color-primary-900);--accent-primary:var(--color-primary);--accent-secondary:var(--color-secondary);--border-default:var(--color-gray-200);--border-strong:var(--color-gray-300);--border-brand:var(--color-primary);--border-focus:var(--color-primary);--cat-1:#2f6fed;--cat-1-bg:#e8f0fe;--cat-1-fg:#1c4fa3;--cat-2:#14a08c;--cat-2-bg:#d9f2ee;--cat-2-fg:#0f6b5f;--cat-3:#7c4ddb;--cat-3-bg:#efe7fb;--cat-3-fg:#5b3aa8;--cat-4:#c98a00;--cat-4-bg:#fcf0d8;--cat-4-fg:#8a5a00;--cat-5:#e0457e;--cat-5-bg:#fde4ec;--cat-5-fg:#a52a5a;--cat-6:#64748b;--cat-6-bg:#e6e9ef;--cat-6-fg:#3f4756;--bp-sm:480px;--bp-md:768px;--bp-lg:1024px;--bp-xl:1280px;--font-display:"Outfit","Helvetica Neue",Arial,sans-serif;--font-body:"DM Sans","Helvetica Neue",Arial,sans-serif;--font-mono:"JetBrains Mono",ui-monospace,"SF Mono",Menlo,Consolas,monospace;--weight-thin:100;--weight-extralight:200;--weight-light:300;--weight-regular:400;--weight-medium:500;--weight-semibold:600;--weight-bold:700;--weight-extrabold:800;--weight-black:900;--text-2xs:0.6875rem;--text-xs:0.75rem;--text-sm:0.875rem;--text-md:1rem;--text-lg:1.125rem;--text-xl:1.25rem;--text-2xl:1.5rem;--text-3xl:1.875rem;--text-4xl:2.5rem;--text-5xl:3.25rem;--text-6xl:4.25rem;--text-7xl:5.5rem;--leading-tight:1.05;--leading-snug:1.2;--leading-normal:1.45;--leading-relaxed:1.6;--tracking-tight:-0.01em;--tracking-normal:0;--tracking-snug:0.02em;--tracking-wide:0.04em;--tracking-wider:0.08em;--tt-label:uppercase;--tt-data:none;--tt-title:none;--space-0:0;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-8:32px;--space-10:40px;--space-12:48px;--space-16:64px;--space-20:80px;--space-24:96px;--radius-none:0;--radius-xs:2px;--radius-sm:4px;--radius-md:8px;--radius-lg:12px;--radius-xl:18px;--radius-pill:999px;--shadow-xs:0 1px 2px rgba(12,18,32,.06);--shadow-sm:0 2px 6px rgba(12,18,32,.08);--shadow-md:0 8px 20px rgba(12,18,32,.1);--shadow-lg:0 18px 40px rgba(12,18,32,.14);--shadow-brand:0 10px 30px rgba(0,47,135,.25);--shadow-card:0 1px 2px rgba(12,18,32,.05),0 8px 24px -16px rgba(12,18,32,.2);--shadow-card-hover:0 2px 4px rgba(12,18,32,.06),0 16px 32px -14px rgba(12,18,32,.26);--ease-out-quart:cubic-bezier(0.25,1,0.5,1);--ease-out-quint:cubic-bezier(0.22,1,0.36,1);--ease-out-expo:cubic-bezier(0.16,1,0.3,1);--ease-standard:var(--ease-out-quint);--ease-out:var(--ease-out-quint);--ease-in:cubic-bezier(0.4,0,1,1);--duration-fast:120ms;--duration-base:200ms;--duration-slow:320ms;--duration-exit:150ms;--z-base:1;--z-dropdown:50;--z-sticky:60;--z-overlay:100;--z-toast:200;--z-tooltip:1000;--z-popover:1300;--z-floating:1300;--focus-ring-brand:0 0 0 3px color-mix(in srgb,var(--color-primary) 16%,transparent);--focus-ring-accent:0 0 0 3px color-mix(in srgb,var(--color-secondary) 16%,transparent);--focus-ring-danger:0 0 0 3px color-mix(in srgb,var(--color-red-600) 16%,transparent);--backdrop:color-mix(in srgb,var(--color-ink) 55%,transparent)}.h-display,.h1{font-size:var(--text-6xl);line-height:var(--leading-tight)}.h-display,.h1,.h2{color:var(--fg-default);font-family:var(--font-display);font-weight:700;letter-spacing:var(--tracking-tight);text-transform:var(--tt-title)}.h2{font-size:var(--text-4xl);line-height:var(--leading-snug)}.h3{font-family:var(--font-display);font-size:var(--text-2xl);text-transform:var(--tt-title)}.h3,.h4{color:var(--fg-default);font-weight:700;line-height:var(--leading-snug)}.h4{font-size:var(--text-xl)}.eyebrow,.h4{font-family:var(--font-body)}.eyebrow{color:var(--accent-secondary);font-size:var(--text-sm);font-weight:700;letter-spacing:var(--tracking-wider);text-transform:var(--tt-label)}.body-lg{font-size:var(--text-lg)}.body,.body-lg,p{color:var(--fg-default);font-family:var(--font-body);font-weight:400;line-height:var(--leading-relaxed)}.body,p{font-size:var(--text-md)}.body-sm{font-weight:400;line-height:var(--leading-normal)}.body-sm,.label{color:var(--fg-muted);font-family:var(--font-body);font-size:var(--text-sm)}.label{font-weight:500;letter-spacing:var(--tracking-wide);text-transform:var(--tt-data)}.caption{color:var(--fg-subtle);font-size:var(--text-xs);letter-spacing:var(--tracking-wide)}.caption,.cell-meta{font-family:var(--font-body);font-weight:400}.cell-meta{color:var(--fg-meta);display:block;font-size:var(--text-2xs);line-height:var(--leading-normal)}.cell-mono{font-family:var(--font-mono);font-variant-numeric:tabular-nums}.cell-wrap{overflow-wrap:anywhere;white-space:normal}.mono,code{font-family:var(--font-mono);font-size:.95em}.mono,:not(pre)>code{background:var(--bg-subtle);border-radius:var(--radius-sm);padding:2px 6px}a{border-bottom:1px solid transparent;color:var(--fg-link);text-decoration:none;transition:color var(--duration-fast) var(--ease-standard),border-color var(--duration-fast) var(--ease-standard)}a:hover{border-bottom-color:currentColor;color:var(--fg-link-hover)}.surface-inverse,[data-tone=inverse]{--fg-default:var(--fg-on-brand);--fg-muted:color-mix(in srgb,var(--fg-on-brand) 70%,transparent);--fg-subtle:color-mix(in srgb,var(--fg-on-brand) 50%,transparent);--fg-link:var(--fg-on-brand);--fg-link-hover:var(--color-secondary);--border-default:color-mix(in srgb,var(--fg-on-brand) 20%,transparent);--border-strong:color-mix(in srgb,var(--fg-on-brand) 35%,transparent);--bg-subtle:color-mix(in srgb,var(--fg-on-brand) 12%,transparent);--bg-muted:color-mix(in srgb,var(--fg-on-brand) 18%,transparent);color:var(--fg-default)}.surface-inverse--brand{background:var(--color-primary)}.surface-inverse--dark{background:var(--color-primary-900)}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@misael703/ui",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.30.0",
|
|
4
4
|
"description": "Generic React + TypeScript UI kit, optimized for Next.js. Tokens, accessible components, runtime-configurable theming via presets.",
|
|
5
5
|
"author": "Misael Ocas <misael.ocas@gmail.com>",
|
|
6
6
|
"license": "MIT",
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/components/Display3.tsx"],"names":["jsxs","cx","jsx","Avatar","React","Timeline","ChevronDown","ChevronRight","startOfMonth","useLocale","addMonths","isSameDay"],"mappings":"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","file":"chunk-H4KDBDXC.js","sourcesContent":["'use client';\nimport * as React from 'react';\nimport { cx } from '../utils/cx';\nimport { Avatar } from './Display2';\nimport { ChevronRight, ChevronDown } from './Icons';\nimport { useLocale } from '../locale/LocaleProvider';\nimport { startOfMonth, addMonths, isSameDay } from '../utils/dateFormat';\n\n// ---------- UserCell ----------------------------------------------------\nexport interface UserCellProps extends React.HTMLAttributes<HTMLDivElement> {\n name: React.ReactNode;\n meta?: React.ReactNode; // role / email / etc.\n avatarSrc?: string;\n avatarAlt?: string;\n size?: 24 | 32 | 40 | 48;\n}\n\nexport function UserCell({ name, meta, avatarSrc, avatarAlt, size = 32, className, ...rest }: UserCellProps) {\n const initialsName = typeof name === 'string' ? name : undefined;\n return (\n <div className={cx('user-cell', className)} {...rest}>\n <Avatar src={avatarSrc} alt={avatarAlt} name={initialsName} size={size} />\n <div className=\"user-cell__body\">\n <div className=\"user-cell__name\">{name}</div>\n {meta && <div className=\"user-cell__meta\">{meta}</div>}\n </div>\n </div>\n );\n}\n\n// ---------- StatusIndicator (pulsing dot) ------------------------------\nexport type StatusTone = 'success' | 'warning' | 'danger' | 'info' | 'neutral';\n\nexport interface StatusIndicatorProps extends React.HTMLAttributes<HTMLSpanElement> {\n tone?: StatusTone;\n pulse?: boolean;\n label?: React.ReactNode;\n}\n\nexport function StatusIndicator({ tone = 'success', pulse, label, className, ...rest }: StatusIndicatorProps) {\n return (\n <span className={cx('status-indicator', className)} role=\"status\" {...rest}>\n <span className={cx('status-indicator__dot', `status-indicator__dot--${tone}`, pulse && 'is-pulsing')} aria-hidden=\"true\" />\n {label && <span className=\"status-indicator__label\">{label}</span>}\n </span>\n );\n}\n\n// ---------- Timeline ----------------------------------------------------\nexport type TimelineDensity = 'default' | 'compact';\n\nexport interface TimelineProps extends React.HTMLAttributes<HTMLOListElement> {\n /**\n * Visual density (v1.28.0). `compact` shrinks the marker, gap and font\n * sizes for use in cards / list summaries; semantically identical.\n */\n density?: TimelineDensity;\n}\n\nexport const Timeline = React.forwardRef<HTMLOListElement, TimelineProps>(\n function Timeline({ className, density = 'default', ...rest }, ref) {\n return <ol ref={ref} className={cx('timeline', density === 'compact' && 'timeline--compact', className)} {...rest} />;\n }\n);\n\n/**\n * Progress state of a Timeline entry (v1.28.0), orthogonal to `tone`.\n * - `done` — completed: filled marker (in `tone` color), solid connector above.\n * - `current` — happening now: ringed/pulsing marker, solid connector above.\n * - `pending` — not started: hollow muted marker, **dashed** connector above.\n *\n * Use it to scan progress on a list of events that grow over time (a despachos\n * order accumulating envíos/retiros until the last marks it complete). Default\n * (state omitted) keeps the 1.x look exactly.\n */\nexport type TimelineState = 'done' | 'current' | 'pending';\n\nexport interface TimelineItemProps extends Omit<React.LiHTMLAttributes<HTMLLIElement>, 'title'> {\n icon?: React.ReactNode;\n tone?: StatusTone;\n title: React.ReactNode;\n meta?: React.ReactNode;\n /** Progress state (see {@link TimelineState}). Optional. */\n state?: TimelineState;\n /**\n * Trailing slot on the title row, aligned to the right (v1.28.0). Useful for\n * a Badge marking event type (envío / retiro / nota), a timestamp on the\n * right edge, or a small action chip.\n */\n right?: React.ReactNode;\n}\n\nexport function TimelineItem({ icon, tone = 'neutral', title, meta, children, state, right, className, ...rest }: TimelineItemProps) {\n return (\n <li\n className={cx(\n 'timeline__item',\n state && `timeline__item--${state}`,\n className,\n )}\n data-state={state}\n {...rest}\n >\n <span className={cx('timeline__marker', `timeline__marker--${tone}`)} aria-hidden=\"true\">\n {icon}\n </span>\n <div className=\"timeline__body\">\n {right != null ? (\n // Title row wrapper only renders when there's a trailing slot, so\n // the DOM stays byte-identical for existing consumers (back-compat).\n <div className=\"timeline__title-row\">\n <div className=\"timeline__title\">{title}</div>\n <div className=\"timeline__right\">{right}</div>\n </div>\n ) : (\n <div className=\"timeline__title\">{title}</div>\n )}\n {meta && <div className=\"timeline__meta\">{meta}</div>}\n {children && <div className=\"timeline__content\">{children}</div>}\n </div>\n </li>\n );\n}\n\n// ---------- Tree --------------------------------------------------------\nexport interface TreeNodeData {\n id: string;\n label: React.ReactNode;\n icon?: React.ReactNode;\n children?: TreeNodeData[];\n meta?: React.ReactNode;\n}\n\nexport interface TreeProps extends Omit<React.HTMLAttributes<HTMLUListElement>, 'onSelect'> {\n nodes: TreeNodeData[];\n defaultExpanded?: string[];\n selectedId?: string;\n onSelect?: (id: string) => void;\n}\n\nfunction firstNodeId(nodes: TreeNodeData[]): string | undefined {\n return nodes[0]?.id;\n}\n\nexport function Tree({\n nodes,\n defaultExpanded = [],\n selectedId,\n onSelect,\n className,\n onKeyDown,\n ...rest\n}: TreeProps) {\n const [expanded, setExpanded] = React.useState<Set<string>>(new Set(defaultExpanded));\n const [activeId, setActiveId] = React.useState<string | undefined>(undefined);\n const rootRef = React.useRef<HTMLUListElement>(null);\n\n // Roving tabindex: one treeitem is tabbable at a time. Falls back to the\n // selected node, then the first node, so the tree is reachable on first Tab.\n const effectiveActive = activeId ?? selectedId ?? firstNodeId(nodes);\n\n const toggle = React.useCallback((id: string) => {\n setExpanded((curr) => {\n const next = new Set(curr);\n if (next.has(id)) next.delete(id);\n else next.add(id);\n return next;\n });\n }, []);\n\n const visibleItems = (): HTMLElement[] =>\n Array.from(rootRef.current?.querySelectorAll<HTMLElement>('[role=\"treeitem\"]') ?? []);\n\n const focusItem = (el: HTMLElement | undefined): void => {\n if (!el) return;\n setActiveId(el.dataset.treeId);\n el.focus();\n };\n\n // WAI-ARIA TreeView keyboard model. Focus lives on the treeitem element;\n // querySelectorAll returns items in DOM order, which equals visual order\n // (collapsed branches are not rendered, so they are not navigable).\n const handleKeyDown = (e: React.KeyboardEvent<HTMLUListElement>): void => {\n onKeyDown?.(e);\n const targetEl = (e.target as HTMLElement).closest<HTMLElement>('[role=\"treeitem\"]');\n if (!targetEl || !rootRef.current?.contains(targetEl)) return;\n const list = visibleItems();\n const idx = list.indexOf(targetEl);\n if (idx === -1) return;\n const id = targetEl.dataset.treeId;\n if (!id) return;\n const depth = Number(targetEl.dataset.depth ?? 0);\n const expandedAttr = targetEl.getAttribute('aria-expanded');\n const hasChildren = expandedAttr !== null;\n const isOpen = expandedAttr === 'true';\n\n switch (e.key) {\n case 'ArrowDown':\n e.preventDefault();\n focusItem(list[Math.min(idx + 1, list.length - 1)]);\n break;\n case 'ArrowUp':\n e.preventDefault();\n focusItem(list[Math.max(idx - 1, 0)]);\n break;\n case 'Home':\n e.preventDefault();\n focusItem(list[0]);\n break;\n case 'End':\n e.preventDefault();\n focusItem(list[list.length - 1]);\n break;\n case 'ArrowRight':\n e.preventDefault();\n if (hasChildren && !isOpen) toggle(id);\n else if (hasChildren && isOpen) focusItem(list[idx + 1]);\n break;\n case 'ArrowLeft':\n e.preventDefault();\n if (hasChildren && isOpen) {\n toggle(id);\n } else {\n for (let i = idx - 1; i >= 0; i--) {\n const candidate = list[i];\n if (candidate && Number(candidate.dataset.depth ?? 0) < depth) {\n focusItem(candidate);\n break;\n }\n }\n }\n break;\n case 'Enter':\n case ' ':\n e.preventDefault();\n onSelect?.(id);\n break;\n default:\n break;\n }\n };\n\n return (\n <ul\n ref={rootRef}\n role=\"tree\"\n className={cx('tree', className)}\n onKeyDown={handleKeyDown}\n {...rest}\n >\n {nodes.map((n) => (\n <TreeNode\n key={n.id}\n node={n}\n depth={0}\n expanded={expanded}\n toggle={toggle}\n selectedId={selectedId}\n activeId={effectiveActive}\n onSelect={onSelect}\n onFocusItem={setActiveId}\n />\n ))}\n </ul>\n );\n}\n\ninterface TreeNodeProps {\n node: TreeNodeData;\n depth: number;\n expanded: Set<string>;\n toggle: (id: string) => void;\n selectedId?: string;\n activeId?: string;\n onSelect?: (id: string) => void;\n onFocusItem: (id: string) => void;\n}\n\nfunction TreeNode({\n node,\n depth,\n expanded,\n toggle,\n selectedId,\n activeId,\n onSelect,\n onFocusItem,\n}: TreeNodeProps) {\n const hasChildren = !!(node.children && node.children.length);\n const isOpen = expanded.has(node.id);\n const isSelected = selectedId === node.id;\n const isActive = activeId === node.id;\n return (\n <li role=\"none\" className=\"tree__node\">\n <div\n role=\"treeitem\"\n data-tree-id={node.id}\n data-depth={depth}\n aria-expanded={hasChildren ? isOpen : undefined}\n aria-selected={isSelected}\n tabIndex={isActive ? 0 : -1}\n className={cx('tree__row', isSelected && 'is-selected')}\n style={{ paddingLeft: `calc(var(--space-2) + var(--space-4) * ${depth})` }}\n onClick={() => {\n onFocusItem(node.id);\n onSelect?.(node.id);\n }}\n >\n {hasChildren ? (\n <button\n type=\"button\"\n tabIndex={-1}\n aria-hidden=\"true\"\n className=\"tree__chev\"\n onClick={(e) => { e.stopPropagation(); toggle(node.id); }}\n >\n {isOpen ? <ChevronDown size={14} /> : <ChevronRight size={14} />}\n </button>\n ) : (\n <span className=\"tree__chev tree__chev--placeholder\" aria-hidden=\"true\" />\n )}\n {node.icon && <span className=\"tree__icon\" aria-hidden=\"true\">{node.icon}</span>}\n <span className=\"tree__label\">{node.label}</span>\n {node.meta && <span className=\"tree__meta\">{node.meta}</span>}\n </div>\n {hasChildren && isOpen && (\n <ul role=\"group\" className=\"tree__children\">\n {node.children!.map((c) => (\n <TreeNode\n key={c.id}\n node={c}\n depth={depth + 1}\n expanded={expanded}\n toggle={toggle}\n selectedId={selectedId}\n activeId={activeId}\n onSelect={onSelect}\n onFocusItem={onFocusItem}\n />\n ))}\n </ul>\n )}\n </li>\n );\n}\n\n// ---------- Calendar (vista mes completa, no picker) -------------------\nexport interface CalendarEvent {\n date: Date;\n label: React.ReactNode;\n tone?: StatusTone;\n onClick?: () => void;\n}\n\nexport interface CalendarProps extends React.HTMLAttributes<HTMLDivElement> {\n /** Mes a mostrar. Default: mes actual. */\n month?: Date;\n events?: CalendarEvent[];\n onMonthChange?: (m: Date) => void;\n onDayClick?: (d: Date) => void;\n}\n\nexport function Calendar({ month: monthProp, events = [], onMonthChange, onDayClick, className, ...rest }: CalendarProps) {\n const [internalMonth, setInternalMonth] = React.useState(() => startOfMonth(monthProp ?? new Date()));\n const month = monthProp ? startOfMonth(monthProp) : internalMonth;\n const t = useLocale();\n const weekdays = t['calendar.weekdays'];\n const months = t['calendar.months'];\n const setMonth = (m: Date) => {\n if (!monthProp) setInternalMonth(m);\n onMonthChange?.(m);\n };\n\n const today = new Date();\n\n // primer día visible: lunes anterior al primer día del mes\n const firstDay = startOfMonth(month);\n const firstWeekday = (firstDay.getDay() + 6) % 7; // domingo=0 → 6, lunes=1 → 0\n const gridStart = new Date(firstDay);\n gridStart.setDate(firstDay.getDate() - firstWeekday);\n\n const days: Date[] = Array.from({ length: 42 }, (_, i) => {\n const d = new Date(gridStart);\n d.setDate(gridStart.getDate() + i);\n return d;\n });\n\n const eventsByDay = React.useMemo(() => {\n const m = new Map<string, CalendarEvent[]>();\n for (const ev of events) {\n const key = `${ev.date.getFullYear()}-${ev.date.getMonth()}-${ev.date.getDate()}`;\n const list = m.get(key) ?? [];\n list.push(ev);\n m.set(key, list);\n }\n return m;\n }, [events]);\n\n return (\n <div className={cx('calendar', className)} {...rest}>\n <div className=\"calendar__head\">\n <button type=\"button\" className=\"calendar__nav\" aria-label={t['calendar.prevMonth']} onClick={() => setMonth(addMonths(month, -1))}>\n <ChevronRight size={16} style={{ transform: 'rotate(180deg)' }} />\n </button>\n <div className=\"calendar__title\">{months[month.getMonth()]} {month.getFullYear()}</div>\n <button type=\"button\" className=\"calendar__nav\" aria-label={t['calendar.nextMonth']} onClick={() => setMonth(addMonths(month, 1))}>\n <ChevronRight size={16} />\n </button>\n </div>\n <div className=\"calendar__grid calendar__weekdays\">\n {weekdays.map((w) => <div key={w} className=\"calendar__weekday\">{w}</div>)}\n </div>\n <div className=\"calendar__grid\">\n {days.map((d, i) => {\n const inMonth = d.getMonth() === month.getMonth();\n const isToday = isSameDay(d, today);\n const key = `${d.getFullYear()}-${d.getMonth()}-${d.getDate()}`;\n const dayEvents = eventsByDay.get(key) ?? [];\n return (\n <button\n key={i}\n type=\"button\"\n className={cx('calendar__day', !inMonth && 'is-out', isToday && 'is-today')}\n onClick={() => onDayClick?.(d)}\n >\n <span className=\"calendar__daynum\">{d.getDate()}</span>\n {dayEvents.length > 0 && (\n <div className=\"calendar__events\">\n {dayEvents.slice(0, 2).map((ev, idx) => (\n <span\n key={idx}\n className={cx('calendar__event', `calendar__event--${ev.tone ?? 'neutral'}`)}\n onClick={(e) => { e.stopPropagation(); ev.onClick?.(); }}\n >\n {ev.label}\n </span>\n ))}\n {dayEvents.length > 2 && <span className=\"calendar__more\">+{dayEvents.length - 2}</span>}\n </div>\n )}\n </button>\n );\n })}\n </div>\n </div>\n );\n}\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/components/Display3.tsx"],"names":["Timeline"],"mappings":"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","file":"chunk-HXCAPPXO.mjs","sourcesContent":["'use client';\nimport * as React from 'react';\nimport { cx } from '../utils/cx';\nimport { Avatar } from './Display2';\nimport { ChevronRight, ChevronDown } from './Icons';\nimport { useLocale } from '../locale/LocaleProvider';\nimport { startOfMonth, addMonths, isSameDay } from '../utils/dateFormat';\n\n// ---------- UserCell ----------------------------------------------------\nexport interface UserCellProps extends React.HTMLAttributes<HTMLDivElement> {\n name: React.ReactNode;\n meta?: React.ReactNode; // role / email / etc.\n avatarSrc?: string;\n avatarAlt?: string;\n size?: 24 | 32 | 40 | 48;\n}\n\nexport function UserCell({ name, meta, avatarSrc, avatarAlt, size = 32, className, ...rest }: UserCellProps) {\n const initialsName = typeof name === 'string' ? name : undefined;\n return (\n <div className={cx('user-cell', className)} {...rest}>\n <Avatar src={avatarSrc} alt={avatarAlt} name={initialsName} size={size} />\n <div className=\"user-cell__body\">\n <div className=\"user-cell__name\">{name}</div>\n {meta && <div className=\"user-cell__meta\">{meta}</div>}\n </div>\n </div>\n );\n}\n\n// ---------- StatusIndicator (pulsing dot) ------------------------------\nexport type StatusTone = 'success' | 'warning' | 'danger' | 'info' | 'neutral';\n\nexport interface StatusIndicatorProps extends React.HTMLAttributes<HTMLSpanElement> {\n tone?: StatusTone;\n pulse?: boolean;\n label?: React.ReactNode;\n}\n\nexport function StatusIndicator({ tone = 'success', pulse, label, className, ...rest }: StatusIndicatorProps) {\n return (\n <span className={cx('status-indicator', className)} role=\"status\" {...rest}>\n <span className={cx('status-indicator__dot', `status-indicator__dot--${tone}`, pulse && 'is-pulsing')} aria-hidden=\"true\" />\n {label && <span className=\"status-indicator__label\">{label}</span>}\n </span>\n );\n}\n\n// ---------- Timeline ----------------------------------------------------\nexport type TimelineDensity = 'default' | 'compact';\n\nexport interface TimelineProps extends React.HTMLAttributes<HTMLOListElement> {\n /**\n * Visual density (v1.28.0). `compact` shrinks the marker, gap and font\n * sizes for use in cards / list summaries; semantically identical.\n */\n density?: TimelineDensity;\n}\n\nexport const Timeline = React.forwardRef<HTMLOListElement, TimelineProps>(\n function Timeline({ className, density = 'default', ...rest }, ref) {\n return <ol ref={ref} className={cx('timeline', density === 'compact' && 'timeline--compact', className)} {...rest} />;\n }\n);\n\n/**\n * Progress state of a Timeline entry (v1.28.0), orthogonal to `tone`.\n * - `done` — completed: filled marker (in `tone` color), solid connector above.\n * - `current` — happening now: ringed/pulsing marker, solid connector above.\n * - `pending` — not started: hollow muted marker, **dashed** connector above.\n *\n * Use it to scan progress on a list of events that grow over time (a despachos\n * order accumulating envíos/retiros until the last marks it complete). Default\n * (state omitted) keeps the 1.x look exactly.\n */\nexport type TimelineState = 'done' | 'current' | 'pending';\n\nexport interface TimelineItemProps extends Omit<React.LiHTMLAttributes<HTMLLIElement>, 'title'> {\n icon?: React.ReactNode;\n tone?: StatusTone;\n title: React.ReactNode;\n meta?: React.ReactNode;\n /** Progress state (see {@link TimelineState}). Optional. */\n state?: TimelineState;\n /**\n * Trailing slot on the title row, aligned to the right (v1.28.0). Useful for\n * a Badge marking event type (envío / retiro / nota), a timestamp on the\n * right edge, or a small action chip.\n */\n right?: React.ReactNode;\n}\n\nexport function TimelineItem({ icon, tone = 'neutral', title, meta, children, state, right, className, ...rest }: TimelineItemProps) {\n return (\n <li\n className={cx(\n 'timeline__item',\n state && `timeline__item--${state}`,\n className,\n )}\n data-state={state}\n {...rest}\n >\n <span className={cx('timeline__marker', `timeline__marker--${tone}`)} aria-hidden=\"true\">\n {icon}\n </span>\n <div className=\"timeline__body\">\n {right != null ? (\n // Title row wrapper only renders when there's a trailing slot, so\n // the DOM stays byte-identical for existing consumers (back-compat).\n <div className=\"timeline__title-row\">\n <div className=\"timeline__title\">{title}</div>\n <div className=\"timeline__right\">{right}</div>\n </div>\n ) : (\n <div className=\"timeline__title\">{title}</div>\n )}\n {meta && <div className=\"timeline__meta\">{meta}</div>}\n {children && <div className=\"timeline__content\">{children}</div>}\n </div>\n </li>\n );\n}\n\n// ---------- Tree --------------------------------------------------------\nexport interface TreeNodeData {\n id: string;\n label: React.ReactNode;\n icon?: React.ReactNode;\n children?: TreeNodeData[];\n meta?: React.ReactNode;\n}\n\nexport interface TreeProps extends Omit<React.HTMLAttributes<HTMLUListElement>, 'onSelect'> {\n nodes: TreeNodeData[];\n defaultExpanded?: string[];\n selectedId?: string;\n onSelect?: (id: string) => void;\n}\n\nfunction firstNodeId(nodes: TreeNodeData[]): string | undefined {\n return nodes[0]?.id;\n}\n\nexport function Tree({\n nodes,\n defaultExpanded = [],\n selectedId,\n onSelect,\n className,\n onKeyDown,\n ...rest\n}: TreeProps) {\n const [expanded, setExpanded] = React.useState<Set<string>>(new Set(defaultExpanded));\n const [activeId, setActiveId] = React.useState<string | undefined>(undefined);\n const rootRef = React.useRef<HTMLUListElement>(null);\n\n // Roving tabindex: one treeitem is tabbable at a time. Falls back to the\n // selected node, then the first node, so the tree is reachable on first Tab.\n const effectiveActive = activeId ?? selectedId ?? firstNodeId(nodes);\n\n const toggle = React.useCallback((id: string) => {\n setExpanded((curr) => {\n const next = new Set(curr);\n if (next.has(id)) next.delete(id);\n else next.add(id);\n return next;\n });\n }, []);\n\n const visibleItems = (): HTMLElement[] =>\n Array.from(rootRef.current?.querySelectorAll<HTMLElement>('[role=\"treeitem\"]') ?? []);\n\n const focusItem = (el: HTMLElement | undefined): void => {\n if (!el) return;\n setActiveId(el.dataset.treeId);\n el.focus();\n };\n\n // WAI-ARIA TreeView keyboard model. Focus lives on the treeitem element;\n // querySelectorAll returns items in DOM order, which equals visual order\n // (collapsed branches are not rendered, so they are not navigable).\n const handleKeyDown = (e: React.KeyboardEvent<HTMLUListElement>): void => {\n onKeyDown?.(e);\n const targetEl = (e.target as HTMLElement).closest<HTMLElement>('[role=\"treeitem\"]');\n if (!targetEl || !rootRef.current?.contains(targetEl)) return;\n const list = visibleItems();\n const idx = list.indexOf(targetEl);\n if (idx === -1) return;\n const id = targetEl.dataset.treeId;\n if (!id) return;\n const depth = Number(targetEl.dataset.depth ?? 0);\n const expandedAttr = targetEl.getAttribute('aria-expanded');\n const hasChildren = expandedAttr !== null;\n const isOpen = expandedAttr === 'true';\n\n switch (e.key) {\n case 'ArrowDown':\n e.preventDefault();\n focusItem(list[Math.min(idx + 1, list.length - 1)]);\n break;\n case 'ArrowUp':\n e.preventDefault();\n focusItem(list[Math.max(idx - 1, 0)]);\n break;\n case 'Home':\n e.preventDefault();\n focusItem(list[0]);\n break;\n case 'End':\n e.preventDefault();\n focusItem(list[list.length - 1]);\n break;\n case 'ArrowRight':\n e.preventDefault();\n if (hasChildren && !isOpen) toggle(id);\n else if (hasChildren && isOpen) focusItem(list[idx + 1]);\n break;\n case 'ArrowLeft':\n e.preventDefault();\n if (hasChildren && isOpen) {\n toggle(id);\n } else {\n for (let i = idx - 1; i >= 0; i--) {\n const candidate = list[i];\n if (candidate && Number(candidate.dataset.depth ?? 0) < depth) {\n focusItem(candidate);\n break;\n }\n }\n }\n break;\n case 'Enter':\n case ' ':\n e.preventDefault();\n onSelect?.(id);\n break;\n default:\n break;\n }\n };\n\n return (\n <ul\n ref={rootRef}\n role=\"tree\"\n className={cx('tree', className)}\n onKeyDown={handleKeyDown}\n {...rest}\n >\n {nodes.map((n) => (\n <TreeNode\n key={n.id}\n node={n}\n depth={0}\n expanded={expanded}\n toggle={toggle}\n selectedId={selectedId}\n activeId={effectiveActive}\n onSelect={onSelect}\n onFocusItem={setActiveId}\n />\n ))}\n </ul>\n );\n}\n\ninterface TreeNodeProps {\n node: TreeNodeData;\n depth: number;\n expanded: Set<string>;\n toggle: (id: string) => void;\n selectedId?: string;\n activeId?: string;\n onSelect?: (id: string) => void;\n onFocusItem: (id: string) => void;\n}\n\nfunction TreeNode({\n node,\n depth,\n expanded,\n toggle,\n selectedId,\n activeId,\n onSelect,\n onFocusItem,\n}: TreeNodeProps) {\n const hasChildren = !!(node.children && node.children.length);\n const isOpen = expanded.has(node.id);\n const isSelected = selectedId === node.id;\n const isActive = activeId === node.id;\n return (\n <li role=\"none\" className=\"tree__node\">\n <div\n role=\"treeitem\"\n data-tree-id={node.id}\n data-depth={depth}\n aria-expanded={hasChildren ? isOpen : undefined}\n aria-selected={isSelected}\n tabIndex={isActive ? 0 : -1}\n className={cx('tree__row', isSelected && 'is-selected')}\n style={{ paddingLeft: `calc(var(--space-2) + var(--space-4) * ${depth})` }}\n onClick={() => {\n onFocusItem(node.id);\n onSelect?.(node.id);\n }}\n >\n {hasChildren ? (\n <button\n type=\"button\"\n tabIndex={-1}\n aria-hidden=\"true\"\n className=\"tree__chev\"\n onClick={(e) => { e.stopPropagation(); toggle(node.id); }}\n >\n {isOpen ? <ChevronDown size={14} /> : <ChevronRight size={14} />}\n </button>\n ) : (\n <span className=\"tree__chev tree__chev--placeholder\" aria-hidden=\"true\" />\n )}\n {node.icon && <span className=\"tree__icon\" aria-hidden=\"true\">{node.icon}</span>}\n <span className=\"tree__label\">{node.label}</span>\n {node.meta && <span className=\"tree__meta\">{node.meta}</span>}\n </div>\n {hasChildren && isOpen && (\n <ul role=\"group\" className=\"tree__children\">\n {node.children!.map((c) => (\n <TreeNode\n key={c.id}\n node={c}\n depth={depth + 1}\n expanded={expanded}\n toggle={toggle}\n selectedId={selectedId}\n activeId={activeId}\n onSelect={onSelect}\n onFocusItem={onFocusItem}\n />\n ))}\n </ul>\n )}\n </li>\n );\n}\n\n// ---------- Calendar (vista mes completa, no picker) -------------------\nexport interface CalendarEvent {\n date: Date;\n label: React.ReactNode;\n tone?: StatusTone;\n onClick?: () => void;\n}\n\nexport interface CalendarProps extends React.HTMLAttributes<HTMLDivElement> {\n /** Mes a mostrar. Default: mes actual. */\n month?: Date;\n events?: CalendarEvent[];\n onMonthChange?: (m: Date) => void;\n onDayClick?: (d: Date) => void;\n}\n\nexport function Calendar({ month: monthProp, events = [], onMonthChange, onDayClick, className, ...rest }: CalendarProps) {\n const [internalMonth, setInternalMonth] = React.useState(() => startOfMonth(monthProp ?? new Date()));\n const month = monthProp ? startOfMonth(monthProp) : internalMonth;\n const t = useLocale();\n const weekdays = t['calendar.weekdays'];\n const months = t['calendar.months'];\n const setMonth = (m: Date) => {\n if (!monthProp) setInternalMonth(m);\n onMonthChange?.(m);\n };\n\n const today = new Date();\n\n // primer día visible: lunes anterior al primer día del mes\n const firstDay = startOfMonth(month);\n const firstWeekday = (firstDay.getDay() + 6) % 7; // domingo=0 → 6, lunes=1 → 0\n const gridStart = new Date(firstDay);\n gridStart.setDate(firstDay.getDate() - firstWeekday);\n\n const days: Date[] = Array.from({ length: 42 }, (_, i) => {\n const d = new Date(gridStart);\n d.setDate(gridStart.getDate() + i);\n return d;\n });\n\n const eventsByDay = React.useMemo(() => {\n const m = new Map<string, CalendarEvent[]>();\n for (const ev of events) {\n const key = `${ev.date.getFullYear()}-${ev.date.getMonth()}-${ev.date.getDate()}`;\n const list = m.get(key) ?? [];\n list.push(ev);\n m.set(key, list);\n }\n return m;\n }, [events]);\n\n return (\n <div className={cx('calendar', className)} {...rest}>\n <div className=\"calendar__head\">\n <button type=\"button\" className=\"calendar__nav\" aria-label={t['calendar.prevMonth']} onClick={() => setMonth(addMonths(month, -1))}>\n <ChevronRight size={16} style={{ transform: 'rotate(180deg)' }} />\n </button>\n <div className=\"calendar__title\">{months[month.getMonth()]} {month.getFullYear()}</div>\n <button type=\"button\" className=\"calendar__nav\" aria-label={t['calendar.nextMonth']} onClick={() => setMonth(addMonths(month, 1))}>\n <ChevronRight size={16} />\n </button>\n </div>\n <div className=\"calendar__grid calendar__weekdays\">\n {weekdays.map((w) => <div key={w} className=\"calendar__weekday\">{w}</div>)}\n </div>\n <div className=\"calendar__grid\">\n {days.map((d, i) => {\n const inMonth = d.getMonth() === month.getMonth();\n const isToday = isSameDay(d, today);\n const key = `${d.getFullYear()}-${d.getMonth()}-${d.getDate()}`;\n const dayEvents = eventsByDay.get(key) ?? [];\n return (\n <button\n key={i}\n type=\"button\"\n className={cx('calendar__day', !inMonth && 'is-out', isToday && 'is-today')}\n onClick={() => onDayClick?.(d)}\n >\n <span className=\"calendar__daynum\">{d.getDate()}</span>\n {dayEvents.length > 0 && (\n <div className=\"calendar__events\">\n {dayEvents.slice(0, 2).map((ev, idx) => (\n <span\n key={idx}\n className={cx('calendar__event', `calendar__event--${ev.tone ?? 'neutral'}`)}\n onClick={(e) => { e.stopPropagation(); ev.onClick?.(); }}\n >\n {ev.label}\n </span>\n ))}\n {dayEvents.length > 2 && <span className=\"calendar__more\">+{dayEvents.length - 2}</span>}\n </div>\n )}\n </button>\n );\n })}\n </div>\n </div>\n );\n}\n"]}
|