Files
headroom/frontend/node_modules/daisyui/components/hovergallery.css
Santhosh Janardhanan de2d83092e feat: Reinitialize frontend with SvelteKit and TypeScript
- Delete old Vite+Svelte frontend
- Initialize new SvelteKit project with TypeScript
- Configure Tailwind CSS v4 + DaisyUI
- Implement JWT authentication with auto-refresh
- Create login page with form validation (Zod)
- Add protected route guards
- Update Docker configuration for single-stage build
- Add E2E tests with Playwright (6/11 passing)
- Fix Svelte 5 reactivity with $state() runes

Known issues:
- 5 E2E tests failing (timing/async issues)
- Token refresh implementation needs debugging
- Validation error display timing
2026-02-17 16:19:59 -05:00

1 line
5.5 KiB
CSS

/*! 🌼 daisyUI 5.5.17 - MIT License */ @layer utilities{.hover-gallery{@layer daisyui.l1.l2.l3{&{--items:1;grid-template-columns:repeat(var(--items),1fr);gap:1px;width:100%;overflow:hidden}&,&:is(figure){display:inline-grid}&:has(>:nth-child(3)){--items:2}&:has(>:nth-child(4)){--items:3}&:has(>:nth-child(5)){--items:4}&:has(>:nth-child(6)){--items:5}&:has(>:nth-child(7)){--items:6}&:has(>:nth-child(8)){--items:7}&:has(>:nth-child(9)){--items:8}&:has(>:nth-child(10)){--items:9}&>*{opacity:0;object-fit:cover;grid-row:1;width:100%;height:100%;&:first-child{opacity:1;grid-column:1/-1}&:nth-child(2){grid-column:1}&:nth-child(3){grid-column:2}&:nth-child(4){grid-column:3}&:nth-child(5){grid-column:4}&:nth-child(6){grid-column:5}&:nth-child(7){grid-column:6}&:nth-child(8){grid-column:7}&:nth-child(9){grid-column:8}&:nth-child(10){grid-column:9}&:nth-child(n+11){display:none}}&>:hover{opacity:1;grid-column:1/-1}&:has(:hover){&>:first-child{display:none}}}}@media (width>=640px){.sm\:hover-gallery{@layer daisyui.l1.l2.l3{&{--items:1;grid-template-columns:repeat(var(--items),1fr);gap:1px;width:100%;overflow:hidden}&,&:is(figure){display:inline-grid}&:has(>:nth-child(3)){--items:2}&:has(>:nth-child(4)){--items:3}&:has(>:nth-child(5)){--items:4}&:has(>:nth-child(6)){--items:5}&:has(>:nth-child(7)){--items:6}&:has(>:nth-child(8)){--items:7}&:has(>:nth-child(9)){--items:8}&:has(>:nth-child(10)){--items:9}&>*{opacity:0;object-fit:cover;grid-row:1;width:100%;height:100%;&:first-child{opacity:1;grid-column:1/-1}&:nth-child(2){grid-column:1}&:nth-child(3){grid-column:2}&:nth-child(4){grid-column:3}&:nth-child(5){grid-column:4}&:nth-child(6){grid-column:5}&:nth-child(7){grid-column:6}&:nth-child(8){grid-column:7}&:nth-child(9){grid-column:8}&:nth-child(10){grid-column:9}&:nth-child(n+11){display:none}}&>:hover{opacity:1;grid-column:1/-1}&:has(:hover){&>:first-child{display:none}}}}}@media (width>=768px){.md\:hover-gallery{@layer daisyui.l1.l2.l3{&{--items:1;grid-template-columns:repeat(var(--items),1fr);gap:1px;width:100%;overflow:hidden}&,&:is(figure){display:inline-grid}&:has(>:nth-child(3)){--items:2}&:has(>:nth-child(4)){--items:3}&:has(>:nth-child(5)){--items:4}&:has(>:nth-child(6)){--items:5}&:has(>:nth-child(7)){--items:6}&:has(>:nth-child(8)){--items:7}&:has(>:nth-child(9)){--items:8}&:has(>:nth-child(10)){--items:9}&>*{opacity:0;object-fit:cover;grid-row:1;width:100%;height:100%;&:first-child{opacity:1;grid-column:1/-1}&:nth-child(2){grid-column:1}&:nth-child(3){grid-column:2}&:nth-child(4){grid-column:3}&:nth-child(5){grid-column:4}&:nth-child(6){grid-column:5}&:nth-child(7){grid-column:6}&:nth-child(8){grid-column:7}&:nth-child(9){grid-column:8}&:nth-child(10){grid-column:9}&:nth-child(n+11){display:none}}&>:hover{opacity:1;grid-column:1/-1}&:has(:hover){&>:first-child{display:none}}}}}@media (width>=1024px){.lg\:hover-gallery{@layer daisyui.l1.l2.l3{&{--items:1;grid-template-columns:repeat(var(--items),1fr);gap:1px;width:100%;overflow:hidden}&,&:is(figure){display:inline-grid}&:has(>:nth-child(3)){--items:2}&:has(>:nth-child(4)){--items:3}&:has(>:nth-child(5)){--items:4}&:has(>:nth-child(6)){--items:5}&:has(>:nth-child(7)){--items:6}&:has(>:nth-child(8)){--items:7}&:has(>:nth-child(9)){--items:8}&:has(>:nth-child(10)){--items:9}&>*{opacity:0;object-fit:cover;grid-row:1;width:100%;height:100%;&:first-child{opacity:1;grid-column:1/-1}&:nth-child(2){grid-column:1}&:nth-child(3){grid-column:2}&:nth-child(4){grid-column:3}&:nth-child(5){grid-column:4}&:nth-child(6){grid-column:5}&:nth-child(7){grid-column:6}&:nth-child(8){grid-column:7}&:nth-child(9){grid-column:8}&:nth-child(10){grid-column:9}&:nth-child(n+11){display:none}}&>:hover{opacity:1;grid-column:1/-1}&:has(:hover){&>:first-child{display:none}}}}}@media (width>=1280px){.xl\:hover-gallery{@layer daisyui.l1.l2.l3{&{--items:1;grid-template-columns:repeat(var(--items),1fr);gap:1px;width:100%;overflow:hidden}&,&:is(figure){display:inline-grid}&:has(>:nth-child(3)){--items:2}&:has(>:nth-child(4)){--items:3}&:has(>:nth-child(5)){--items:4}&:has(>:nth-child(6)){--items:5}&:has(>:nth-child(7)){--items:6}&:has(>:nth-child(8)){--items:7}&:has(>:nth-child(9)){--items:8}&:has(>:nth-child(10)){--items:9}&>*{opacity:0;object-fit:cover;grid-row:1;width:100%;height:100%;&:first-child{opacity:1;grid-column:1/-1}&:nth-child(2){grid-column:1}&:nth-child(3){grid-column:2}&:nth-child(4){grid-column:3}&:nth-child(5){grid-column:4}&:nth-child(6){grid-column:5}&:nth-child(7){grid-column:6}&:nth-child(8){grid-column:7}&:nth-child(9){grid-column:8}&:nth-child(10){grid-column:9}&:nth-child(n+11){display:none}}&>:hover{opacity:1;grid-column:1/-1}&:has(:hover){&>:first-child{display:none}}}}}@media (width>=1536px){.\32 xl\:hover-gallery{@layer daisyui.l1.l2.l3{&{--items:1;grid-template-columns:repeat(var(--items),1fr);gap:1px;width:100%;overflow:hidden}&,&:is(figure){display:inline-grid}&:has(>:nth-child(3)){--items:2}&:has(>:nth-child(4)){--items:3}&:has(>:nth-child(5)){--items:4}&:has(>:nth-child(6)){--items:5}&:has(>:nth-child(7)){--items:6}&:has(>:nth-child(8)){--items:7}&:has(>:nth-child(9)){--items:8}&:has(>:nth-child(10)){--items:9}&>*{opacity:0;object-fit:cover;grid-row:1;width:100%;height:100%;&:first-child{opacity:1;grid-column:1/-1}&:nth-child(2){grid-column:1}&:nth-child(3){grid-column:2}&:nth-child(4){grid-column:3}&:nth-child(5){grid-column:4}&:nth-child(6){grid-column:5}&:nth-child(7){grid-column:6}&:nth-child(8){grid-column:7}&:nth-child(9){grid-column:8}&:nth-child(10){grid-column:9}&:nth-child(n+11){display:none}}&>:hover{opacity:1;grid-column:1/-1}&:has(:hover){&>:first-child{display:none}}}}}}