forked from MapComplete/MapComplete
		
	Various style tweaks
This commit is contained in:
		
							parent
							
								
									d5430891bf
								
							
						
					
					
						commit
						ed9e59109e
					
				
					 12 changed files with 128 additions and 112 deletions
				
			
		|  | @ -1,8 +1,8 @@ | ||||||
| <script lang="ts"> | <script lang="ts"> | ||||||
|   import { createEventDispatcher } from "svelte" |   import { createEventDispatcher } from "svelte" | ||||||
|   import { XCircleIcon } from "@rgossiaux/svelte-heroicons/solid" |  | ||||||
|   import { ariaLabel } from "../../Utils/ariaLabel" |   import { ariaLabel } from "../../Utils/ariaLabel" | ||||||
|   import Translations from "../i18n/Translations" |   import Translations from "../i18n/Translations" | ||||||
|  |   import { XCircleIcon } from "@babeard/svelte-heroicons/solid" | ||||||
| 
 | 
 | ||||||
|   /** |   /** | ||||||
|    * The slotted element will be shown on top, with a lower-opacity border |    * The slotted element will be shown on top, with a lower-opacity border | ||||||
|  | @ -37,13 +37,14 @@ | ||||||
|     </div> |     </div> | ||||||
|     <slot name="close-button"> |     <slot name="close-button"> | ||||||
|       <!-- The close button is placed _after_ the default slot in order to always paint it on top --> |       <!-- The close button is placed _after_ the default slot in order to always paint it on top --> | ||||||
|       <button |       <div | ||||||
|         class="absolute right-10 top-10 h-8 w-8 cursor-pointer rounded-full border-none bg-white p-0" |         class="absolute right-10 top-10 cursor-pointer border-none p-0 m-0 bg-white rounded-full border-0" | ||||||
|  |         style="margin: -0.25rem" | ||||||
|         on:click={() => dispatch("close")} |         on:click={() => dispatch("close")} | ||||||
|         use:ariaLabel={Translations.t.general.backToMap} |         use:ariaLabel={Translations.t.general.backToMap} | ||||||
|       > |       > | ||||||
|         <XCircleIcon /> |         <XCircleIcon class="w-8 h-8" /> | ||||||
|       </button> |       </div> | ||||||
|     </slot> |     </slot> | ||||||
|   </div> |   </div> | ||||||
| </div> | </div> | ||||||
|  |  | ||||||
							
								
								
									
										14
									
								
								src/UI/Base/TitledPanel.svelte
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										14
									
								
								src/UI/Base/TitledPanel.svelte
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,14 @@ | ||||||
|  | <script lang="ts"> | ||||||
|  | 
 | ||||||
|  |   import Translations from "../i18n/Translations" | ||||||
|  | </script> | ||||||
|  | 
 | ||||||
|  | <div class="flex h-full flex-col"> | ||||||
|  |   <h2 class="low-interaction m-0 flex items-center p-4 drop-shadow-md"> | ||||||
|  |     <slot name="title" /> | ||||||
|  |   </h2> | ||||||
|  | 
 | ||||||
|  |   <div class="flex h-full flex-col overflow-auto border-b-2 p-4"> | ||||||
|  |     <slot /> | ||||||
|  |   </div> | ||||||
|  | </div> | ||||||
|  | @ -9,6 +9,7 @@ | ||||||
|   import Translations from "../i18n/Translations" |   import Translations from "../i18n/Translations" | ||||||
|   import Tr from "../Base/Tr.svelte" |   import Tr from "../Base/Tr.svelte" | ||||||
|   import Filter from "../../assets/svg/Filter.svelte" |   import Filter from "../../assets/svg/Filter.svelte" | ||||||
|  |   import TitledPanel from "../Base/TitledPanel.svelte" | ||||||
| 
 | 
 | ||||||
|   export let state: ThemeViewState |   export let state: ThemeViewState | ||||||
|   let layout = state.layout |   let layout = state.layout | ||||||
|  | @ -46,12 +47,12 @@ | ||||||
|   } |   } | ||||||
| </script> | </script> | ||||||
| 
 | 
 | ||||||
| <div class="flex h-full flex-col"> | <TitledPanel> | ||||||
|   <h2 class="low-interaction m-0 flex items-center p-4 drop-shadow-md"> |   <div class="flex" slot="title"> | ||||||
|     <Filter class="h-6 w-6 pr-2" /> |     <Filter class="h-6 w-6 pr-2" /> | ||||||
|     <Tr t={Translations.t.general.menu.filter} /> |     <Tr t={Translations.t.general.menu.filter} /> | ||||||
|   </h2> |   </div> | ||||||
|   <div class="flex h-full flex-col overflow-auto border-b-2 p-4"> | 
 | ||||||
|     {#each layout.layers as layer} |     {#each layout.layers as layer} | ||||||
|       <Filterview |       <Filterview | ||||||
|         zoomlevel={state.mapProperties.zoom} |         zoomlevel={state.mapProperties.zoom} | ||||||
|  | @ -76,5 +77,7 @@ | ||||||
|         zoomlevel={state.mapProperties.zoom} |         zoomlevel={state.mapProperties.zoom} | ||||||
|       /> |       /> | ||||||
|     {/each} |     {/each} | ||||||
|   </div> | 
 | ||||||
| </div> | </TitledPanel> | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  |  | ||||||
|  | @ -72,14 +72,14 @@ | ||||||
|     {/if} |     {/if} | ||||||
|   </div> |   </div> | ||||||
|   <slot name="close-button"> |   <slot name="close-button"> | ||||||
|     <button |     <div | ||||||
|       class="mt-2 h-fit shrink-0 rounded-full border-none p-0" |       class="mt-2 h-fit shrink-0 rounded-full border-none p-0 cursor-pointer" | ||||||
|       on:click={() => state.selectedElement.setData(undefined)} |       on:click={() => state.selectedElement.setData(undefined)} | ||||||
|       style="border: 0 !important; padding: 0 !important;" |       style="border: 0 !important; padding: 0 !important;" | ||||||
|       use:ariaLabel={Translations.t.general.backToMap} |       use:ariaLabel={Translations.t.general.backToMap} | ||||||
|     > |     > | ||||||
|       <XCircleIcon aria-hidden={true} class="h-8 w-8" /> |       <XCircleIcon aria-hidden={true} class="h-8 w-8" /> | ||||||
|     </button> |     </div> | ||||||
|   </slot> |   </slot> | ||||||
| </div> | </div> | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -22,6 +22,8 @@ | ||||||
|     selectedElement.properties.id |     selectedElement.properties.id | ||||||
|   ) |   ) | ||||||
| 
 | 
 | ||||||
|  |   let isAddNew = tags.mapD(t => t.id.startsWith(LastClickFeatureSource.newPointElementId)) | ||||||
|  | 
 | ||||||
|   function getLayer(properties: Record<string, string>) { |   function getLayer(properties: Record<string, string>) { | ||||||
|     if (properties.id === "settings") { |     if (properties.id === "settings") { | ||||||
|       return UserRelatedState.usersettingsConfig |       return UserRelatedState.usersettingsConfig | ||||||
|  | @ -76,7 +78,10 @@ | ||||||
|   </div> |   </div> | ||||||
| {:else} | {:else} | ||||||
|   <div |   <div | ||||||
|     class="selected-element-view flex h-full w-full flex-col gap-y-1 overflow-y-auto p-1 px-4" |     class="selected-element-view flex h-full w-full flex-col gap-y-1 overflow-y-auto" | ||||||
|  |     class:p1={!$isAddNew} | ||||||
|  |     class:px-4={!$isAddNew} | ||||||
|  | 
 | ||||||
|     tabindex="-1" |     tabindex="-1" | ||||||
|   > |   > | ||||||
|     {#each $knownTagRenderings as config (config.id)} |     {#each $knownTagRenderings as config (config.id)} | ||||||
|  |  | ||||||
|  | @ -11,6 +11,7 @@ | ||||||
|   import UserRelatedState from "../../Logic/State/UserRelatedState" |   import UserRelatedState from "../../Logic/State/UserRelatedState" | ||||||
|   import Translations from "../i18n/Translations" |   import Translations from "../i18n/Translations" | ||||||
|   import Tr from "../Base/Tr.svelte" |   import Tr from "../Base/Tr.svelte" | ||||||
|  |   import TitledPanel from "../Base/TitledPanel.svelte" | ||||||
| 
 | 
 | ||||||
|   export let availableLayers: Store<RasterLayerPolygon[]> |   export let availableLayers: Store<RasterLayerPolygon[]> | ||||||
|   export let mapproperties: MapProperties |   export let mapproperties: MapProperties | ||||||
|  | @ -50,12 +51,8 @@ | ||||||
|   } |   } | ||||||
| </script> | </script> | ||||||
| 
 | 
 | ||||||
| <div class="flex h-full flex-col"> | <TitledPanel> | ||||||
|   <slot name="title"> |       <Tr slot="title" t={Translations.t.general.backgroundMap} /> | ||||||
|     <h2> |  | ||||||
|       <Tr t={Translations.t.general.backgroundMap} /> |  | ||||||
|     </h2> |  | ||||||
|   </slot> |  | ||||||
| 
 | 
 | ||||||
|   <div class="grid h-full w-full grid-cols-1 gap-2 md:grid-cols-2"> |   <div class="grid h-full w-full grid-cols-1 gap-2 md:grid-cols-2"> | ||||||
|     <RasterLayerPicker |     <RasterLayerPicker | ||||||
|  | @ -91,4 +88,4 @@ | ||||||
|       {visible} |       {visible} | ||||||
|     /> |     /> | ||||||
|   </div> |   </div> | ||||||
| </div> | </TitledPanel> | ||||||
|  |  | ||||||
|  | @ -77,7 +77,7 @@ | ||||||
| 
 | 
 | ||||||
| {#if hasLayers} | {#if hasLayers} | ||||||
|   <form class="flex h-full w-full flex-col" on:submit|preventDefault={() => {}}> |   <form class="flex h-full w-full flex-col" on:submit|preventDefault={() => {}}> | ||||||
|     <button tabindex="-1" on:click={() => apply()} class="m-0 h-full w-full cursor-pointer p-1"> |     <button tabindex="-1" on:click={() => apply()} class="m-0 p-0 rounded-none h-full w-full cursor-pointer border-none"> | ||||||
|       <span class="pointer-events-none relative h-full w-full"> |       <span class="pointer-events-none relative h-full w-full"> | ||||||
|         <OverlayMap |         <OverlayMap | ||||||
|           interactive={false} |           interactive={false} | ||||||
|  |  | ||||||
|  | @ -36,6 +36,7 @@ | ||||||
|   import { Translation } from "../../i18n/Translation" |   import { Translation } from "../../i18n/Translation" | ||||||
|   import ToSvelte from "../../Base/ToSvelte.svelte" |   import ToSvelte from "../../Base/ToSvelte.svelte" | ||||||
|   import BaseUIElement from "../../BaseUIElement" |   import BaseUIElement from "../../BaseUIElement" | ||||||
|  |   import TitledPanel from "../../Base/TitledPanel.svelte" | ||||||
| 
 | 
 | ||||||
|   export let coordinate: { lon: number; lat: number } |   export let coordinate: { lon: number; lat: number } | ||||||
|   export let state: SpecialVisualizationState |   export let state: SpecialVisualizationState | ||||||
|  | @ -116,7 +117,7 @@ | ||||||
|       theme: state.layout?.id ?? "unkown", |       theme: state.layout?.id ?? "unkown", | ||||||
|       changeType: "create", |       changeType: "create", | ||||||
|       snapOnto: snapToWay, |       snapOnto: snapToWay, | ||||||
|       reusePointWithinMeters: 1, |       reusePointWithinMeters: 1 | ||||||
|     }) |     }) | ||||||
|     await state.changes.applyAction(newElementAction) |     await state.changes.applyAction(newElementAction) | ||||||
|     state.newFeatures.features.ping() |     state.newFeatures.features.ping() | ||||||
|  | @ -186,6 +187,10 @@ | ||||||
|       /> |       /> | ||||||
|     {:else if !$layerIsDisplayed} |     {:else if !$layerIsDisplayed} | ||||||
|       <!-- Check that the layer is enabled, so that we don't add a duplicate --> |       <!-- Check that the layer is enabled, so that we don't add a duplicate --> | ||||||
|  |       <TitledPanel> | ||||||
|  |         <Tr slot="title" t={Translations.t.general.add.intro} /> | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|         <div class="alert flex items-center justify-center"> |         <div class="alert flex items-center justify-center"> | ||||||
|           <EyeOffIcon class="w-8" /> |           <EyeOffIcon class="w-8" /> | ||||||
|           <Tr |           <Tr | ||||||
|  | @ -218,7 +223,13 @@ | ||||||
|             /> |             /> | ||||||
|           </button> |           </button> | ||||||
|         </div> |         </div> | ||||||
|  |       </TitledPanel> | ||||||
|  | 
 | ||||||
|     {:else if $layerHasFilters} |     {:else if $layerHasFilters} | ||||||
|  |       <TitledPanel> | ||||||
|  |         <Tr slot="title" t={Translations.t.general.add.intro} /> | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|         <!-- Some filters are enabled. The feature to add might already be mapped, but hidden --> |         <!-- Some filters are enabled. The feature to add might already be mapped, but hidden --> | ||||||
|       <div class="alert flex items-center justify-center"> |       <div class="alert flex items-center justify-center"> | ||||||
|         <EyeOffIcon class="w-8" /> |         <EyeOffIcon class="w-8" /> | ||||||
|  | @ -246,13 +257,14 @@ | ||||||
|           <Tr t={Translations.t.general.add.openLayerControl} /> |           <Tr t={Translations.t.general.add.openLayerControl} /> | ||||||
|         </button> |         </button> | ||||||
|       </div> |       </div> | ||||||
|  |       </TitledPanel> | ||||||
|     {:else if !confirmedCategory} |     {:else if !confirmedCategory} | ||||||
|       <!-- Second, confirm the category --> |       <!-- Second, confirm the category --> | ||||||
|       <h2 class="mr-12"> |       <TitledPanel> | ||||||
|         <Tr | 
 | ||||||
|  |         <Tr slot="title" | ||||||
|           t={Translations.t.general.add.confirmTitle.Subs({ title: selectedPreset.preset.title })} |           t={Translations.t.general.add.confirmTitle.Subs({ title: selectedPreset.preset.title })} | ||||||
|         /> |         /> | ||||||
|       </h2> |  | ||||||
| 
 | 
 | ||||||
|       {#if selectedPreset.preset.description} |       {#if selectedPreset.preset.description} | ||||||
|         <Tr t={selectedPreset.preset.description} /> |         <Tr t={selectedPreset.preset.description} /> | ||||||
|  | @ -293,6 +305,8 @@ | ||||||
|           </div> |           </div> | ||||||
|         </NextButton> |         </NextButton> | ||||||
|       </div> |       </div> | ||||||
|  |       </TitledPanel> | ||||||
|  | 
 | ||||||
|     {:else if _globalFilter?.length > 0 && _globalFilter?.length > checkedOfGlobalFilters} |     {:else if _globalFilter?.length > 0 && _globalFilter?.length > checkedOfGlobalFilters} | ||||||
|       <Tr t={_globalFilter[checkedOfGlobalFilters].onNewPoint?.safetyCheck} cls="mx-12" /> |       <Tr t={_globalFilter[checkedOfGlobalFilters].onNewPoint?.safetyCheck} cls="mx-12" /> | ||||||
|       <SubtleButton |       <SubtleButton | ||||||
|  | @ -366,7 +380,9 @@ | ||||||
|         </div> |         </div> | ||||||
|       </div> |       </div> | ||||||
|     {:else} |     {:else} | ||||||
|       <Loading><Tr t={Translations.t.general.add.creating} /></Loading> |       <Loading> | ||||||
|  |         <Tr t={Translations.t.general.add.creating} /> | ||||||
|  |       </Loading> | ||||||
|     {/if} |     {/if} | ||||||
|   </div> |   </div> | ||||||
| </LoginToggle> | </LoginToggle> | ||||||
|  |  | ||||||
|  | @ -13,6 +13,7 @@ | ||||||
|   import ToSvelte from "../../Base/ToSvelte.svelte" |   import ToSvelte from "../../Base/ToSvelte.svelte" | ||||||
|   import BaseUIElement from "../../BaseUIElement" |   import BaseUIElement from "../../BaseUIElement" | ||||||
|   import Combine from "../../Base/Combine" |   import Combine from "../../Base/Combine" | ||||||
|  |   import TitledPanel from "../../Base/TitledPanel.svelte" | ||||||
| 
 | 
 | ||||||
|   /** |   /** | ||||||
|    * This component lists all the presets and allows the user to select one |    * This component lists all the presets and allows the user to select one | ||||||
|  | @ -79,7 +80,7 @@ | ||||||
|         text: Translations.t.general.add.addNew.Subs( |         text: Translations.t.general.add.addNew.Subs( | ||||||
|           { category: preset.title }, |           { category: preset.title }, | ||||||
|           preset.title["context"] |           preset.title["context"] | ||||||
|         ), |         ) | ||||||
|       } |       } | ||||||
|       presets.push(simplified) |       presets.push(simplified) | ||||||
|     } |     } | ||||||
|  | @ -96,11 +97,9 @@ | ||||||
|   }>() |   }>() | ||||||
| </script> | </script> | ||||||
| 
 | 
 | ||||||
| <div class="flex w-full flex-col"> | <TitledPanel> | ||||||
|   <h2 class="mr-12"> |   <Tr slot="title" t={Translations.t.general.add.intro} /> | ||||||
|     <!-- The title gets a big right margin to give place to the 'close'-button, see https://github.com/pietervdvn/MapComplete/issues/1445 --> | 
 | ||||||
|     <Tr t={Translations.t.general.add.intro} /> |  | ||||||
|   </h2> |  | ||||||
| 
 | 
 | ||||||
|   {#each presets as preset} |   {#each presets as preset} | ||||||
|     <NextButton on:click={() => dispatch("select", preset)}> |     <NextButton on:click={() => dispatch("select", preset)}> | ||||||
|  | @ -115,4 +114,4 @@ | ||||||
|       </div> |       </div> | ||||||
|     </NextButton> |     </NextButton> | ||||||
|   {/each} |   {/each} | ||||||
| </div> | </TitledPanel> | ||||||
|  |  | ||||||
|  | @ -472,13 +472,6 @@ | ||||||
| 
 | 
 | ||||||
|   <If condition={state.previewedImage.map((i) => i !== undefined)}> |   <If condition={state.previewedImage.map((i) => i !== undefined)}> | ||||||
|     <FloatOver on:close={() => state.previewedImage.setData(undefined)}> |     <FloatOver on:close={() => state.previewedImage.setData(undefined)}> | ||||||
|       <button |  | ||||||
|         class="absolute right-4 top-4 h-8 w-8 rounded-full p-0" |  | ||||||
|         on:click={() => previewedImage.setData(undefined)} |  | ||||||
|         slot="close-button" |  | ||||||
|       > |  | ||||||
|         <XCircleIcon /> |  | ||||||
|       </button> |  | ||||||
|       <ImageOperations image={$previewedImage} /> |       <ImageOperations image={$previewedImage} /> | ||||||
|     </FloatOver> |     </FloatOver> | ||||||
|   </If> |   </If> | ||||||
|  | @ -550,7 +543,6 @@ | ||||||
|         state.guistate.backgroundLayerSelectionIsOpened.setData(false) |         state.guistate.backgroundLayerSelectionIsOpened.setData(false) | ||||||
|       }} |       }} | ||||||
|     > |     > | ||||||
|       <div class="h-full p-2"> |  | ||||||
|         <RasterLayerOverview |         <RasterLayerOverview | ||||||
|           {availableLayers} |           {availableLayers} | ||||||
|           map={state.map} |           map={state.map} | ||||||
|  | @ -558,7 +550,6 @@ | ||||||
|           userstate={state.userRelatedState} |           userstate={state.userRelatedState} | ||||||
|           visible={state.guistate.backgroundLayerSelectionIsOpened} |           visible={state.guistate.backgroundLayerSelectionIsOpened} | ||||||
|         /> |         /> | ||||||
|       </div> |  | ||||||
|     </FloatOver> |     </FloatOver> | ||||||
|   </IfHidden> |   </IfHidden> | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -15,15 +15,15 @@ | ||||||
| 
 | 
 | ||||||
| </script> | </script> | ||||||
| 
 | 
 | ||||||
| <div class="flex w-full p-2"> | <div class="flex w-full p-2 flex-wrap"> | ||||||
| 
 | 
 | ||||||
|   {#if imageUrl} |   {#if imageUrl} | ||||||
|     <img src={imageUrl} style={imageStyle} class="mr-2" /> |     <img src={imageUrl} style={imageStyle} class="mr-2" /> | ||||||
|   {/if} |   {/if} | ||||||
| 
 | 
 | ||||||
|   <div class="flex flex-col w-full"> |   <div class="flex flex-col flex-grow"> | ||||||
| 
 | 
 | ||||||
|     <div class="flex w-full justify-between"> |     <div class="flex w-full justify-between flex-wrap"> | ||||||
|       <Tr cls="font-bold" t={ Translation.fromMap(wikidata.labels) } /> |       <Tr cls="font-bold" t={ Translation.fromMap(wikidata.labels) } /> | ||||||
|       <a href={Wikidata.IdToArticle(wikidata.id)} target="_blank" class="flex must-link items-center"> |       <a href={Wikidata.IdToArticle(wikidata.id)} target="_blank" class="flex must-link items-center"> | ||||||
|         <Wikidata_icon class="w-10" /> {wikidata.id} |         <Wikidata_icon class="w-10" /> {wikidata.id} | ||||||
|  |  | ||||||
|  | @ -3,14 +3,11 @@ | ||||||
|   import { Store } from "../../Logic/UIEventSource" |   import { Store } from "../../Logic/UIEventSource" | ||||||
|   import FromHtml from "../Base/FromHtml.svelte" |   import FromHtml from "../Base/FromHtml.svelte" | ||||||
|   import Loading from "../Base/Loading.svelte" |   import Loading from "../Base/Loading.svelte" | ||||||
|   import { Disclosure, DisclosureButton, DisclosurePanel } from "@rgossiaux/svelte-headlessui" |  | ||||||
|   import { ChevronRightIcon } from "@rgossiaux/svelte-heroicons/solid" |  | ||||||
|   import ToSvelte from "../Base/ToSvelte.svelte" |  | ||||||
|   import WikidataPreviewBox from "./WikidataPreviewBox" |  | ||||||
|   import Tr from "../Base/Tr.svelte" |   import Tr from "../Base/Tr.svelte" | ||||||
|   import Translations from "../i18n/Translations" |   import Translations from "../i18n/Translations" | ||||||
|   import Wikipedia from "../../assets/svg/Wikipedia.svelte" |   import Wikipedia from "../../assets/svg/Wikipedia.svelte" | ||||||
|   import Wikidatapreview from "./Wikidatapreview.svelte" |   import Wikidatapreview from "./Wikidatapreview.svelte" | ||||||
|  |   import AccordionSingle from "../Flowbite/AccordionSingle.svelte" | ||||||
| 
 | 
 | ||||||
|   /** |   /** | ||||||
|    * Shows a wikipedia-article + wikidata preview for the given item |    * Shows a wikipedia-article + wikidata preview for the given item | ||||||
|  | @ -21,15 +18,11 @@ | ||||||
|   ) |   ) | ||||||
| </script> | </script> | ||||||
| 
 | 
 | ||||||
|  | <div class="low-interaction border-gray-300 border-dashed rounded-xl p-2 flex flex-col"> | ||||||
|   {#if $titleOnly} |   {#if $titleOnly} | ||||||
|     <Loading>{$wikipediaDetails.title}</Loading> |     <Loading>{$wikipediaDetails.title}</Loading> | ||||||
|   {/if} |   {/if} | ||||||
| {#if $wikipediaDetails.articleUrl} | 
 | ||||||
|   <a class="flex" href={$wikipediaDetails.articleUrl} rel="noreferrer" target="_blank"> |  | ||||||
|     <Wikipedia class="h-6 w-6" /> |  | ||||||
|     <Tr t={Translations.t.general.wikipedia.fromWikipedia} /> |  | ||||||
|   </a> |  | ||||||
| {/if} |  | ||||||
| 
 | 
 | ||||||
|   {#if $wikipediaDetails.wikidata} |   {#if $wikipediaDetails.wikidata} | ||||||
|     <Wikidatapreview wikidata={$wikipediaDetails.wikidata} /> |     <Wikidatapreview wikidata={$wikipediaDetails.wikidata} /> | ||||||
|  | @ -42,19 +35,16 @@ | ||||||
|       </Loading> |       </Loading> | ||||||
|     {:else} |     {:else} | ||||||
|       <FromHtml clss="wikipedia-article" src={$wikipediaDetails.firstParagraph} /> |       <FromHtml clss="wikipedia-article" src={$wikipediaDetails.firstParagraph} /> | ||||||
|     <Disclosure let:open> |       {#if $wikipediaDetails.articleUrl} | ||||||
|       <DisclosureButton> |         <a class="flex self-end my-2" href={$wikipediaDetails.articleUrl} rel="noreferrer" target="_blank"> | ||||||
|         <span class="flex"> |           <Wikipedia class="h-6 w-6" /> | ||||||
|           <ChevronRightIcon |           <Tr t={Translations.t.general.wikipedia.fromWikipedia} /> | ||||||
|             style={(open ? "transform: rotate(90deg); " : "") + |         </a> | ||||||
|               "  transition: all .25s linear; width: 1.5rem; height: 1.5rem"} |       {/if} | ||||||
|           /> |       <AccordionSingle> | ||||||
|           <Tr t={Translations.t.general.wikipedia.readMore} /> |         <Tr slot="header" t={Translations.t.general.wikipedia.readMore} /> | ||||||
|         </span> |  | ||||||
|       </DisclosureButton> |  | ||||||
|       <DisclosurePanel> |  | ||||||
|         <FromHtml clss="wikipedia-article" src={$wikipediaDetails.restOfArticle} /> |         <FromHtml clss="wikipedia-article" src={$wikipediaDetails.restOfArticle} /> | ||||||
|       </DisclosurePanel> |       </AccordionSingle> | ||||||
|     </Disclosure> |  | ||||||
|     {/if} |     {/if} | ||||||
|   {/if} |   {/if} | ||||||
|  | </div> | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue