utopia-ui 1.0.7 → 1.0.8

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 (39) hide show
  1. package/LICENSE.md +5 -0
  2. package/README.md +28 -24
  3. package/dist/Components/Map/AddButton.d.ts +4 -0
  4. package/dist/Components/Map/Layer.d.ts +3 -0
  5. package/dist/Components/Map/NewItemPopup.d.ts +9 -0
  6. package/dist/Components/Map/Popup.d.ts +8 -0
  7. package/dist/Components/Map/Subcomponents/AddButton.d.ts +4 -0
  8. package/dist/Components/Map/Subcomponents/EditItemPopup.d.ts +10 -0
  9. package/dist/Components/Map/Subcomponents/NewItemPopup.d.ts +10 -0
  10. package/dist/Components/Map/Subcomponents/Popup.d.ts +10 -0
  11. package/dist/Components/Map/Tags.d.ts +5 -0
  12. package/dist/Components/Map/UtopiaMap.d.ts +11 -0
  13. package/dist/Components/Map/UtopiaMap.stories.d.ts +6 -0
  14. package/dist/Components/Map/data.d.ts +4 -0
  15. package/dist/Components/Map/data.new.d.ts +4 -0
  16. package/dist/Components/Map/hooks/useContext.d.ts +7 -0
  17. package/dist/Components/Map/hooks/useForceUpdate.d.ts +1 -0
  18. package/dist/Components/Map/hooks/useItems.d.ts +18 -0
  19. package/dist/Components/Map/hooks/useLayers.d.ts +14 -0
  20. package/dist/Components/Map/hooks/useMapContext.d.ts +11 -0
  21. package/dist/Components/Map/hooks/useNewItemPopup.d.ts +12 -0
  22. package/dist/Components/Map/hooks/useTags.d.ts +16 -0
  23. package/dist/Components/Map/index.d.ts +3 -0
  24. package/dist/Components/Map/useItems.d.ts +16 -0
  25. package/dist/Components/Map/useLayers.d.ts +18 -0
  26. package/dist/Components/Map/useTags.d.ts +16 -0
  27. package/dist/Utils/DynamicHeroIcon.d.ts +5 -0
  28. package/dist/Utils/ReplaceURLs.d.ts +1 -0
  29. package/dist/index.d.ts +1 -16
  30. package/dist/index.js +463 -91
  31. package/dist/index.js.map +1 -1
  32. package/dist/stories/Button.d.ts +29 -0
  33. package/dist/stories/Header.d.ts +13 -0
  34. package/dist/stories/Page.d.ts +3 -0
  35. package/dist/stories/Page.stories.d.ts +5 -0
  36. package/dist/types.d.ts +38 -5
  37. package/package.json +21 -4
  38. package/dist/Components/Map/MarkerPopup.d.ts +0 -8
  39. package/dist/Utils/StringFormater.d.ts +0 -1
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../src/Utils/MarkerIconFactory.ts","../src/Components/Map/MarkerPopup.tsx","../src/index.tsx"],"sourcesContent":["import * as L from 'leaflet';\n\nconst createSvg = (shape:string, markerColor:string, borderColor:string) => {\n var svgMap = {\n circle: '<svg width=\"32\" height=\"44\" viewBox=\"0 0 35 45\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M17.5 2.746c-8.284 0-15 6.853-15 15.307 0 .963.098 1.902.265 2.816a15.413 15.413 0 002.262 5.684l.134.193 12.295 17.785 12.439-17.863.056-.08a15.422 15.422 0 002.343-6.112c.123-.791.206-1.597.206-2.423 0-8.454-6.716-15.307-15-15.307\" fill=\"' + markerColor + '\" /><path d=\"M17.488 2.748c-8.284 0-15 6.853-15 15.307 0 .963.098 1.902.265 2.816a15.413 15.413 0 002.262 5.684l.134.193 12.295 17.785 12.44-17.863.055-.08a15.422 15.422 0 002.343-6.112c.124-.791.206-1.597.206-2.423 0-8.454-6.716-15.307-15-15.307m0 1.071c7.68 0 13.929 6.386 13.929 14.236 0 .685-.064 1.423-.193 2.258-.325 2.075-1.059 3.99-2.164 5.667l-.055.078-11.557 16.595L6.032 26.14l-.12-.174a14.256 14.256 0 01-2.105-5.29 14.698 14.698 0 01-.247-2.62c0-7.851 6.249-14.237 13.928-14.237\" fill=\"' + borderColor + '\" opacity=\"1\" /></svg>',\n square: '<svg width=\"33\" height=\"44\" viewBox=\"0 0 35 45\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M28.205 3.217H6.777c-2.367 0-4.286 1.87-4.286 4.179v19.847c0 2.308 1.919 4.179 4.286 4.179h5.357l5.337 13.58 5.377-13.58h5.357c2.366 0 4.285-1.87 4.285-4.179V7.396c0-2.308-1.919-4.179-4.285-4.179\" fill=\"' + markerColor + '\" /><g opacity=\"1\" transform=\"matrix(1.0714 0 0 -1.0714 -233.22 146.783)\"><path d=\"M244 134h-20c-2.209 0-4-1.746-4-3.9v-18.525c0-2.154 1.791-3.9 4-3.9h5L233.982 95 239 107.675h5c2.209 0 4 1.746 4 3.9V130.1c0 2.154-1.791 3.9-4 3.9m0-1c1.654 0 3-1.301 3-2.9v-18.525c0-1.599-1.346-2.9-3-2.9h-5.68l-.25-.632-4.084-10.318-4.055 10.316-.249.634H224c-1.654 0-3 1.301-3 2.9V130.1c0 1.599 1.346 2.9 3 2.9h20\" fill=\"'+ borderColor +'\" /></g></svg>',\n star: '<svg width=\"34\" height=\"44\" viewBox=\"0 0 35 45\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M32.92 16.93l-3.525-3.525V8.419a1.983 1.983 0 00-1.983-1.982h-4.985L18.9 2.91a1.984 1.984 0 00-2.803 0l-3.524 3.526H7.588a1.983 1.983 0 00-1.982 1.982v4.986L2.081 16.93a1.982 1.982 0 000 2.803l3.525 3.526v4.984c0 1.096.888 1.983 1.982 1.983h4.986L17.457 45l4.97-14.773h4.985a1.983 1.983 0 001.983-1.983V23.26l3.525-3.526a1.982 1.982 0 000-2.803\" fill=\"' + markerColor + '\" /><g opacity=\".15\" transform=\"matrix(1.0667 0 0 -1.0667 -347.3 97.26)\"><path d=\"M342 89c-.476 0-.951-.181-1.314-.544l-3.305-3.305h-4.673a1.858 1.858 0 01-1.859-1.858v-4.674l-3.305-3.305a1.857 1.857 0 010-2.627l3.305-3.305v-4.674a1.86 1.86 0 011.859-1.859h4.673L341.959 49l4.659 13.849h4.674a1.86 1.86 0 011.859 1.859v4.674l3.305 3.305a1.858 1.858 0 010 2.627l-3.305 3.305v4.674a1.859 1.859 0 01-1.859 1.858h-4.674l-3.304 3.305A1.851 1.851 0 01342 89m0-1a.853.853 0 00.607-.251l3.304-3.305.293-.293h5.088a.86.86 0 00.859-.858v-5.088l3.598-3.598A.852.852 0 00356 74a.85.85 0 00-.251-.606l-3.598-3.598v-5.088a.86.86 0 00-.859-.859h-5.393l-.229-.681-3.702-11.006-3.637 11.001-.227.686h-5.396a.86.86 0 00-.859.859v5.088l-3.598 3.598c-.162.162-.251.377-.251.606s.089.445.251.607l3.598 3.598v5.088a.86.86 0 00.859.858h5.087l3.598 3.598A.853.853 0 00342 88\" fill=\"#231f20\" /></g></svg>',\n penta: '<svg width=\"33\" height=\"44\" viewBox=\"0 0 35 45\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M1.872 17.35L9.679 2.993h15.615L33.1 17.35 17.486 44.992z\" fill=\"' + markerColor + '\" /><g opacity=\".15\" transform=\"matrix(1.0769 0 0 -1.0769 -272.731 48.23)\"><path d=\"M276.75 42h-14.5L255 28.668 269.5 3 284 28.668zm-.595-1l6.701-12.323L269.5 5.033l-13.356 23.644L262.845 41z\" fill=\"#231f20\" /></g></svg>'\n };\n return svgMap[shape];\n}\n\nconst addIcon = (icon:string) => {\n switch(icon) {\n case \"circle-solid\":\n return '<svg fill=\"#fff\" style=\"position: relative; top: -38px;left: -1px;\" width=\"13\"xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><!--! Font Awesome Pro 6.1.1 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2022 Fonticons, Inc. --><path d=\"M512 256C512 397.4 397.4 512 256 512C114.6 512 0 397.4 0 256C0 114.6 114.6 0 256 0C397.4 0 512 114.6 512 256z\"/></svg>';\n break;\n case \"calendar-days-solid\":\n return '<svg fill=\"#fff\" style=\"position: relative; top: -40px;left: 0px;\" width=\"13\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"><!--! Font Awesome Free 6.1.1 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2022 Fonticons, Inc. --><path d=\"M160 32V64H288V32C288 14.33 302.3 0 320 0C337.7 0 352 14.33 352 32V64H400C426.5 64 448 85.49 448 112V160H0V112C0 85.49 21.49 64 48 64H96V32C96 14.33 110.3 0 128 0C145.7 0 160 14.33 160 32zM0 192H448V464C448 490.5 426.5 512 400 512H48C21.49 512 0 490.5 0 464V192zM64 304C64 312.8 71.16 320 80 320H112C120.8 320 128 312.8 128 304V272C128 263.2 120.8 256 112 256H80C71.16 256 64 263.2 64 272V304zM192 304C192 312.8 199.2 320 208 320H240C248.8 320 256 312.8 256 304V272C256 263.2 248.8 256 240 256H208C199.2 256 192 263.2 192 272V304zM336 256C327.2 256 320 263.2 320 272V304C320 312.8 327.2 320 336 320H368C376.8 320 384 312.8 384 304V272C384 263.2 376.8 256 368 256H336zM64 432C64 440.8 71.16 448 80 448H112C120.8 448 128 440.8 128 432V400C128 391.2 120.8 384 112 384H80C71.16 384 64 391.2 64 400V432zM208 384C199.2 384 192 391.2 192 400V432C192 440.8 199.2 448 208 448H240C248.8 448 256 440.8 256 432V400C256 391.2 248.8 384 240 384H208zM320 432C320 440.8 327.2 448 336 448H368C376.8 448 384 440.8 384 432V400C384 391.2 376.8 384 368 384H336C327.2 384 320 391.2 320 400V432z\"/></svg>';\n break;\n default:\n return \"\";\n } \n}\n\nconst MarkerIconFactory = (shape:string, color1:string, color2:string, icon:string) =>\n{\n return L.divIcon({\n html: `${createSvg(shape, color1, color2)}${addIcon(icon)}`,\n iconAnchor: [17,40],\n popupAnchor: [0,-40],\n iconSize: new L.Point(40, 46),\n className: \"leaflet-data-marker\",\n shadowAnchor: [0, 0]\n });\n}\n\nexport default MarkerIconFactory ;\n","import * as React from 'react'\nimport { Popup } from 'react-leaflet'\nimport { Item, Tag } from '../../types'\n\nexport interface MarkerPopupProps {\n item: Item,\n tags: Tag[]\n}\n\nconst MarkerPopup = (props: MarkerPopupProps) => {\n const item: Item = props.item;\n const tags: Tag[] = props.tags;\n\n return (\n <Popup maxHeight={377} minWidth={275} maxWidth={275} autoPanPadding={[30,30]}>\n <b style={{ fontSize: '1.0rem' }}>{item.name}</b>\n\n {item.start && item.end &&\n <p>{new Date(item.start).toISOString().substring(0, 10) || \"\"} - {new Date(item.end).toISOString().substring(0, 10) || \"\"}</p>\n }\n\n <p style={{ whiteSpace: \"pre-wrap\" }} dangerouslySetInnerHTML={{ __html: replaceURLs(item.text) }} />\n <p>\n\n {item.tags &&\n tags.map((tag: Tag) => (\n <span className=\"\" style={{ fontWeight: \"bold\", display: \"inline-block\", color: \"#fff\", padding: \".2rem\", borderRadius: \".2rem\", backgroundColor: tag.color, margin: '.2rem', fontSize: \"100%\" }} key={tag.id}>#{tag.name}</span>\n ))\n }\n </p>\n </Popup>\n )\n}\n\nexport default MarkerPopup;\n\n\nfunction replaceURLs(message: string): string {\n if (!message) return \"\";\n\n var urlRegex = /(^| )(http:\\/\\/www\\.|https:\\/\\/www\\.|http:\\/\\/|https:\\/\\/)?[a-z0-9]+([\\-\\.]{1}[a-z0-9]+)*\\.[a-z]{2,10}(:[0-9]{1,10})?(\\/.*)?$/gm;\n message = message.replace(urlRegex, function (url) {\n var hyperlink = url.replace(' ', '');\n if (!hyperlink.match('^https?:\\/\\/')) {\n hyperlink = 'http://' + hyperlink;\n }\n return '<a href=\"' + hyperlink + '\" target=\"_blank\" rel=\"noopener noreferrer\">' + url + '</a>'\n });\n\n var mailRegex = /([a-zA-Z0-9._-]+@[a-zA-Z0-9._-]+\\.[a-zA-Z0-9_-]+)/gi;\n message = message.replace(mailRegex, function (mail) {\n return '<a href=\"mailto:' + mail + '\">' + mail + '</a>'\n });\n\n return message;\n}","import { TileLayer, MapContainer, Marker } from \"react-leaflet\";\nimport \"leaflet/dist/leaflet.css\";\nimport * as React from \"react\";\nimport MarkerIconFactory from './Utils/MarkerIconFactory';\nimport MarkerPopup from \"./Components/Map/MarkerPopup\";\nimport { Item, Tag } from \"./types\"\nimport \"./styles.scss\"\nimport { LatLng } from \"leaflet\";\nimport MarkerClusterGroup from 'react-leaflet-cluster'\n\nexport interface MapProps {\n height: string,\n width: string,\n center: LatLng,\n zoom: number,\n places?: Item[],\n events?: Item[],\n tags?: Tag[],\n}\n\n\nconst UtopiaMap = (props: MapProps) => {\n let center: LatLng = new LatLng(50.6, 9.5);\n if (props.center) center = props.center;\n let zoom: number = 10;\n if (props.zoom) zoom = props.zoom;\n let height: string = \"400px\";\n if (props.height) height = props.height;\n let width: string = \"100vw\";\n if (props.width) width = props.width;\n\n let tagMap = new Map(props.tags?.map(key => [key.id, key]));\n\n const getTags = (item: Item) => {\n let tags: Tag[] = [];\n item.tags && item.tags.forEach(element => {\n if (tagMap.has(element)) { tags.push(tagMap.get(element)!) };\n });\n return tags;\n }\n\n\n return (\n <MapContainer style={{ height: height, width: width }} center={center} zoom={zoom} >\n <TileLayer\n attribution='&copy; <a href=\"https://www.openstreetmap.org/copyright\">OpenStreetMap</a> contributors'\n url=\"https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png\" />\n <MarkerClusterGroup showCoverageOnHover chunkedLoading maxClusterRadius={50}>\n {props.places &&\n props.places.map((place: Item) => {\n let tags = getTags(place);\n let color1 = \"#666\";\n let color2 = \"RGBA(35, 31, 32, 0.2)\";\n if (tags[0]) {\n color1 = tags[0].color;\n }\n if (tags[1]) {\n color2 = tags[1].color;\n }\n return (\n <Marker icon={MarkerIconFactory('circle', color1, color2, 'circle-solid')} key={place.id} position={[place.position.coordinates[1], place.position.coordinates[0]]}>\n <MarkerPopup item={place} tags={tags} />\n </Marker>\n )\n })\n }\n\n {props.events &&\n props.events.map((event: Item) => {\n let tags = getTags(event);\n let color1 = \"#666\";\n let color2 = \"RGBA(35, 31, 32, 0.2)\";\n if (tags[0]) {\n color1 = tags[0].color;\n }\n if (tags[1]) {\n color2 = tags[1].color;\n }\n return (\n <Marker icon={MarkerIconFactory('square', color1, color2, 'calendar-days-solid')} key={event.id} position={[event.position.coordinates[1], event.position.coordinates[0]]}>\n <MarkerPopup item={event} tags={tags} />\n </Marker>\n )\n })\n }\n </MarkerClusterGroup>\n </MapContainer>\n\n );\n}\n\nexport { UtopiaMap, Item, Tag };\n\n"],"names":["L","React","Popup","LatLng","MapContainer","TileLayer","MarkerClusterGroup","Marker"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../src/types.ts","../node_modules/style-inject/dist/style-inject.es.js","../src/Utils/DynamicHeroIcon.tsx","../src/Components/Map/hooks/useLayers.tsx","../src/Components/Map/Subcomponents/AddButton.tsx","../src/Components/Map/hooks/useItems.tsx","../src/Components/Map/Subcomponents/NewItemPopup.tsx","../src/Components/Map/hooks/useTags.tsx","../src/Components/Map/UtopiaMap.tsx","../src/Utils/MarkerIconFactory.ts","../src/Utils/ReplaceURLs.ts","../src/Components/Map/Subcomponents/Popup.tsx","../src/Components/Map/Layer.tsx","../src/Components/Map/Tags.tsx"],"sourcesContent":["import { LatLng } from \"leaflet\";\nimport { NewItemPopupProps } from \"./Components/Map/Subcomponents/NewItemPopup\";\n\nexport interface UtopiaMap {\n height?: string,\n width?: string,\n center?: LatLng,\n zoom?: number,\n tags?: Tag[],\n children?: React.ReactNode,\n api?: API\n}\n\nexport interface Layer {\n data: Item[],\n children?: React.ReactNode\n name: string,\n menuIcon: string,\n menuColor: string,\n menuText: string,\n markerIcon: string,\n markerShape: string,\n markerDefaultColor: string,\n tags?: Tag[],\n setNewItemPopup?: React.Dispatch<React.SetStateAction<NewItemPopupProps | null>>\n}\n\nexport class Item {\n id: string | number;\n date_created?: string;\n date_updated?: string | null;\n name: string;\n text: string;\n position: Geometry;\n layer: Layer;\n start?: string;\n end?: string;\n tags?: number[];\n constructor(id:string|number,name:string,text:string,position:Geometry, layer: Layer){\n this.id = id;\n this.name = name;\n this.text = text;\n this.position = position;\n this.layer = layer;\n }\n}\n\nexport class Geometry {\n type: string;\n coordinates: number[];\n constructor(lng: number, lat: number) {\n this.coordinates = [lng,lat];\n this.type = \"Point\";\n }\n}\n\nexport interface Tag {\n color: string;\n id: string | number;\n name: string;\n}\n\nexport interface API {\n getAll(): Promise<void>,\n add(item : Item): Promise<void>,\n update(item : Item): Promise<void>,\n remove(id : number): Promise<void>,\n}","function styleInject(css, ref) {\n if ( ref === void 0 ) ref = {};\n var insertAt = ref.insertAt;\n\n if (!css || typeof document === 'undefined') { return; }\n\n var head = document.head || document.getElementsByTagName('head')[0];\n var style = document.createElement('style');\n style.type = 'text/css';\n\n if (insertAt === 'top') {\n if (head.firstChild) {\n head.insertBefore(style, head.firstChild);\n } else {\n head.appendChild(style);\n }\n } else {\n head.appendChild(style);\n }\n\n if (style.styleSheet) {\n style.styleSheet.cssText = css;\n } else {\n style.appendChild(document.createTextNode(css));\n }\n}\n\nexport default styleInject;\n","// DynamicHeroIcon.tsx\n// Simple Dynamic HeroIcons Component for React (typescript / tsx)\n// by: Mike Summerfeldt (IT-MikeS - https://github.com/IT-MikeS)\n\nimport { FC } from 'react'\nimport * as HIcons from '@heroicons/react/solid'\nimport * as React from 'react'\n\nconst DynamicHeroIcon: FC<{icon: string}> = (props) => {\n const {...icons} = HIcons\n // @ts-ignore\n const TheIcon: JSX.Element = icons[props.icon]\n\n return (\n <>\n {/* @ts-ignore */}\n <TheIcon className=\"h-6 w-6 text-white\" aria-hidden=\"true\" />\n </>\n )\n}\n\nexport default DynamicHeroIcon","import { useCallback, useReducer, createContext, useContext } from \"react\";\nimport * as React from \"react\";\nimport { Item, Layer } from \"../../../types\";\n\ntype ActionType =\n | { type: \"ADD LAYER\"; layer: Layer }\n | { type: \"ADD ITEM\"; item: Item; layer: Layer };\n\ntype UseItemManagerResult = ReturnType<typeof useLayerManager>;\n\nconst LayerContext = createContext<UseItemManagerResult>({\n layers: [],\n addLayer: () => { },\n});\n\nfunction useLayerManager(initialLayers: Layer[]): {\n layers: Layer[];\n addLayer: (layer: Layer) => void;\n} {\n const [layers, dispatch] = useReducer((state: Layer[], action: ActionType) => {\n switch (action.type) {\n case \"ADD LAYER\":\n return [\n ...state,\n action.layer,\n ];\n default:\n throw new Error();\n }\n }, initialLayers);\n\n const addLayer = useCallback((layer: Layer) => {\n dispatch({\n type: \"ADD LAYER\",\n layer\n });\n }, []);\n\n return { layers, addLayer};\n}\n\nexport const LayersProvider: React.FunctionComponent<{\n initialLayers: Layer[], children?: React.ReactNode\n}> = ({ initialLayers, children }) => (\n <LayerContext.Provider value={useLayerManager(initialLayers)}>\n {children}\n </LayerContext.Provider>\n);\n\nexport const useLayers = (): Layer[] => {\n const { layers } = useContext(LayerContext);\n return layers;\n};\n\nexport const useAddLayer = (): UseItemManagerResult[\"addLayer\"] => {\n const { addLayer } = useContext(LayerContext);\n return addLayer;\n};\n","import * as React from 'react'\nimport DynamicHeroIcon from '../../../Utils/DynamicHeroIcon'\nimport { useLayers } from '../hooks/useLayers'\n\n\nexport default function AddButton({setSelectMode} : {setSelectMode: React.Dispatch<React.SetStateAction<any>>}) {\n\n const layers = useLayers();\n console.log(\"Layers: \" +layers); \n \n return (\n <div className=\"dropdown dropdown-top dropdown-end dropdown-hover z-500 absolute right-5 bottom-5\" >\n <button tabIndex={0} className=\"z-500 border-0 m-0 mt-2 p-0 w-14 h-14 cursor-pointer bg-white rounded-full hover:bg-gray-100 mouse drop-shadow-md transition ease-in duration-200 focus:outline-none\">\n <svg viewBox=\"0 0 20 20\" enableBackground=\"new 0 0 20 20\" className=\"w-6 h-6 inline-block\">\n <path fill=\"#2e8555\" d=\"M16,10c0,0.553-0.048,1-0.601,1H11v4.399C11,15.951,10.553,16,10,16c-0.553,0-1-0.049-1-0.601V11H4.601\n C4.049,11,4,10.553,4,10c0-0.553,0.049-1,0.601-1H9V4.601C9,4.048,9.447,4,10,4c0.553,0,1,0.048,1,0.601V9h4.399\n C15.952,9,16,9.447,16,10z\" />\n </svg>\n </button>\n <ul tabIndex={0} className=\"dropdown-content pr-2 mb-0 list-none\">\n {layers.map((layer) => (\n <li key={layer.name} >\n <a>\n <div className=\"tooltip tooltip-left\" data-tip={layer.menuText}>\n <button tabIndex={0}\n className=\"z-500 border-0 p-0 mb-2 mt-2 w-10 h-10 cursor-pointer rounded-full mouse drop-shadow-md transition ease-in duration-200 focus:outline-none\"\n style={{ backgroundColor: layer.menuColor }}\n onClick={() => { setSelectMode(layer) }}>\n <DynamicHeroIcon icon={layer.menuIcon} />\n </button>\n </div>\n </a>\n </li>\n ))}\n </ul>\n \n </div>\n )\n}\n","import { useCallback, useReducer, createContext, useContext } from \"react\";\nimport * as React from \"react\";\nimport { Item } from \"../../../types\";\n\ntype ActionType =\n| { type: \"ADD\"; item: Item }\n| { type: \"UPDATE\"; item: Item }\n| { type: \"REMOVE\"; item: Item };\n\ntype UseItemManagerResult = ReturnType<typeof useItemsManager>;\n\nconst ItemContext = createContext<UseItemManagerResult>({\n items: [],\n addItem: () => {},\n updateItem: () => {},\n removeItem: () => {}\n});\n\nfunction useItemsManager (initialItems: Item[]): {\n items: Item[];\n addItem: (item: Item) => void;\n updateItem: (item: Item) => void;\n removeItem: (item: Item) => void;\n} {\n const [items, dispatch] = useReducer((state: Item[], action: ActionType) => {\n switch (action.type) {\n case \"ADD\": \n return [\n ...state,\n action.item,\n ];\n case \"UPDATE\": \n return state.map((item) => {\n if (item.id === action.item.id) {\n return action.item\n }\n return item\n }); \n case \"REMOVE\":\n return state.filter(item => item !== action.item);\n default:\n throw new Error();\n }\n }, initialItems);\n\n const addItem = useCallback((item: Item) => {\n dispatch({\n type: \"ADD\",\n item,\n });\n }, []);\n\n const updateItem = useCallback((item: Item) => {\n dispatch({\n type: \"UPDATE\",\n item,\n });\n }, []);\n\n const removeItem = useCallback((item: Item) => {\n dispatch({\n type: \"REMOVE\",\n item,\n });\n }, []);\n return { items, updateItem, addItem, removeItem };\n}\n\nexport const ItemsProvider: React.FunctionComponent<{\n initialItems: Item[], children?: React.ReactNode \n}> = ({ initialItems, children }) => (\n <ItemContext.Provider value={useItemsManager(initialItems)}>\n {children}\n </ItemContext.Provider>\n);\n\nexport const useItems = (): Item[] => {\n const { items } = useContext(ItemContext);\n return items;\n};\n\nexport const useAddItem = (): UseItemManagerResult[\"addItem\"] => {\n const { addItem } = useContext(ItemContext);\n return addItem;\n};\n\nexport const useUpdateItem = (): UseItemManagerResult[\"updateItem\"] => {\n const { updateItem } = useContext(ItemContext);\n return updateItem;\n};\n\nexport const useRemoveItem = (): UseItemManagerResult[\"removeItem\"] => {\n const { removeItem } = useContext(ItemContext);\n return removeItem;\n}; ","import * as React from 'react'\nimport { LatLng } from 'leaflet'\nimport { Popup as LeafletPopup, useMap } from 'react-leaflet'\nimport { useEffect, useState } from 'react'\nimport { useAddItem, useUpdateItem } from '../hooks/useItems'\nimport { Geometry, Layer, Item} from '../../../types'\n\nexport interface NewItemPopupProps {\n position: LatLng,\n layer: Layer,\n item?: Item,\n setNewItemPopup: React.Dispatch<React.SetStateAction<any>>\n}\n\nexport default function NewItemPopup(props: NewItemPopupProps) {\n const [name, setName] = useState('')\n const [text, setText] = useState('')\n\n const map = useMap();\n const addItem = useAddItem();\n const updateItem = useUpdateItem();\n\n const handleSubmit = (evt: any) => {\n evt.preventDefault()\n console.log(\"New Item Popup is adding Item ...\");\n if(props.item) {\n updateItem(new Item(props.item.id, name, text, new Geometry(props.position.lng, props.position.lat), props.layer))\n }\n else {\n addItem(new Item(crypto.randomUUID(), name, text, new Geometry(props.position.lng, props.position.lat), props.layer))}\n map.closePopup();\n props.setNewItemPopup(null);\n } \n\n const resetPopup = () => {\n setName('');\n setText('');\n }\n\n const setItemValues = () => {\n if(props.item) {\n setName(props.item?.name);\n setText(props.item?.text);\n console.log('set name + txt');\n }\n }\n\n useEffect(() => {\n setItemValues();\n },[props.item])\n\n return (\n <LeafletPopup maxHeight={300} minWidth={275} maxWidth={275} autoPanPadding={[20, 5]}\n eventHandlers={{\n remove: resetPopup\n }}\n position={props.position}>\n <form onSubmit={handleSubmit}>\n <div className='flex justify-center'><b className=\"text-xl font-bold\">New {props.layer.name}</b></div>\n <input type=\"text\" placeholder=\"Name\" className=\"input input-bordered w-full max-w-xs mt-5\" value={name} onChange={e => setName(e.target.value)} />\n <textarea className=\"textarea textarea-bordered w-full mt-5\" placeholder=\"Text\" value={text} onChange={e => setText(e.target.value)}></textarea>\n <div className='flex justify-center'><button className=\"btn mt-5 place-self-center\">Save</button></div>\n </form>\n </LeafletPopup>\n )\n}\n\n\n\n","import { useCallback, useReducer, createContext, useContext } from \"react\";\nimport * as React from \"react\";\nimport { Tag } from \"../../../types\";\n\ntype ActionType =\n| { type: \"ADD\"; tag: Tag }\n| { type: \"REMOVE\"; id: number };\n\ntype UseTagManagerResult = ReturnType<typeof useTagsManager>;\n\nconst TagContext = createContext<UseTagManagerResult>({\n tags: [],\n addTag: () => {},\n removeTag: () => {}\n});\n\nfunction useTagsManager (initialTags: Tag[]): {\n tags: Tag[];\n addTag: (tag: Tag) => void;\n removeTag: (id: number) => void;\n} {\n const [tags, dispatch] = useReducer((state: Tag[], action: ActionType) => {\n switch (action.type) {\n case \"ADD\":\n return [\n ...state,\n action.tag,\n ];\n case \"REMOVE\":\n return state.filter(({ id }) => id !== action.id);\n default:\n throw new Error();\n }\n }, initialTags);\n\n const addTag = useCallback((tag: Tag) => {\n dispatch({\n type: \"ADD\",\n tag,\n });\n }, []);\n\n const removeTag = useCallback((id: number) => {\n dispatch({\n type: \"REMOVE\",\n id,\n });\n }, []);\n return { tags, addTag, removeTag };\n}\n\nexport const TagsProvider: React.FunctionComponent<{\n initialTags: Tag[], children?: React.ReactNode \n}> = ({ initialTags, children }) => (\n <TagContext.Provider value={useTagsManager(initialTags)}>\n {children}\n </TagContext.Provider>\n);\n\nexport const useTags = (): Tag[] => {\n const { tags } = useContext(TagContext);\n return tags;\n};\n\nexport const useAddTag = (): UseTagManagerResult[\"addTag\"] => {\n const { addTag } = useContext(TagContext);\n return addTag;\n};\n\nexport const useRemoveTag = (): UseTagManagerResult[\"removeTag\"] => {\n const { removeTag } = useContext(TagContext);\n return removeTag;\n};","import { TileLayer, MapContainer, useMapEvents } from \"react-leaflet\";\nimport \"leaflet/dist/leaflet.css\";\nimport * as React from \"react\";\nimport { Item, Tag, API, Layer, UtopiaMap as UtopiaMapProps } from \"../../types\"\nimport \"../../index.css\"\nimport { LatLng } from \"leaflet\";\nimport MarkerClusterGroup from 'react-leaflet-cluster'\nimport AddButton from \"./Subcomponents/AddButton\";\nimport { useState } from \"react\";\nimport NewItemPopup, { NewItemPopupProps } from \"./Subcomponents/NewItemPopup\";\nimport { ItemsProvider } from \"./hooks/useItems\";\nimport { TagsProvider } from \"./hooks/useTags\";\nimport { LayersProvider } from \"./hooks/useLayers\";\n\n\nexport interface MapEventListenerProps {\n selectMode: Layer | null,\n setSelectMode: React.Dispatch<React.SetStateAction<any>>,\n setNewItemPopup: React.Dispatch<React.SetStateAction<any>>\n}\n\nfunction MapEventListener(props: MapEventListenerProps) {\n useMapEvents({\n click: (e) => {\n console.log(e.latlng.lat + ',' + e.latlng.lng);\n console.log(props.selectMode);\n\n if (props.selectMode != null) {\n props.setNewItemPopup({ layer: props.selectMode, position: e.latlng })\n props.setSelectMode(null)\n }\n }\n })\n return null\n}\n\nfunction UtopiaMap({\n height = \"500px\",\n width = \"100%\",\n center = new LatLng(50.6, 9.5),\n zoom = 10,\n children }\n : UtopiaMapProps) {\n\n const [selectMode, setSelectMode] = useState<Layer | null>(null);\n const [newItemPopup, setNewItemPopup] = useState<NewItemPopupProps | null>(null);\n\n\n\n return (\n <LayersProvider initialLayers={[]}>\n <TagsProvider initialTags={[]}>\n <ItemsProvider initialItems={[]}>\n <div className={(selectMode != null ? \"crosshair-cursor-enabled\" : undefined)}>\n <MapContainer style={{ height: height, width: width }} center={center} zoom={zoom}>\n <TileLayer\n attribution='&copy; <a href=\"https://www.openstreetmap.org/copyright\">OpenStreetMap</a> contributors'\n url=\"https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png\" />\n <MarkerClusterGroup showCoverageOnHover chunkedLoading maxClusterRadius={50}>\n {\n React.Children.toArray(children).map((child) =>\n React.isValidElement<{ setNewItemPopup: React.Dispatch<React.SetStateAction<NewItemPopupProps | null>> }>(child) ? React.cloneElement(child, { setNewItemPopup: setNewItemPopup }) : child\n )\n }\n </MarkerClusterGroup>\n <MapEventListener setSelectMode={setSelectMode} selectMode={selectMode} setNewItemPopup={setNewItemPopup} />\n {newItemPopup &&\n <NewItemPopup position={newItemPopup.position} layer={newItemPopup.layer} setNewItemPopup={setNewItemPopup} item={newItemPopup.item}/>\n }\n <AddButton setSelectMode={setSelectMode}></AddButton>\n </MapContainer>\n {selectMode != null &&\n <div className=\"button z-500 absolute right-5 top-5 drop-shadow-md\">\n <div className=\"alert bg-white text-green-900\">\n <div>\n <span>Select {selectMode.name} position!</span>\n </div>\n </div>\n </div>\n }\n </div>\n </ItemsProvider>\n </TagsProvider>\n </LayersProvider>\n );\n}\n\nexport { UtopiaMap, Item, Tag, API };","import * as L from 'leaflet';\n\nconst createSvg = (shape:string, markerColor:string, borderColor:string) => {\n var svgMap = {\n circle: '<svg width=\"32\" height=\"44\" viewBox=\"0 0 35 45\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M17.5 2.746c-8.284 0-15 6.853-15 15.307 0 .963.098 1.902.265 2.816a15.413 15.413 0 002.262 5.684l.134.193 12.295 17.785 12.439-17.863.056-.08a15.422 15.422 0 002.343-6.112c.123-.791.206-1.597.206-2.423 0-8.454-6.716-15.307-15-15.307\" fill=\"' + markerColor + '\" /><path d=\"M17.488 2.748c-8.284 0-15 6.853-15 15.307 0 .963.098 1.902.265 2.816a15.413 15.413 0 002.262 5.684l.134.193 12.295 17.785 12.44-17.863.055-.08a15.422 15.422 0 002.343-6.112c.124-.791.206-1.597.206-2.423 0-8.454-6.716-15.307-15-15.307m0 1.071c7.68 0 13.929 6.386 13.929 14.236 0 .685-.064 1.423-.193 2.258-.325 2.075-1.059 3.99-2.164 5.667l-.055.078-11.557 16.595L6.032 26.14l-.12-.174a14.256 14.256 0 01-2.105-5.29 14.698 14.698 0 01-.247-2.62c0-7.851 6.249-14.237 13.928-14.237\" fill=\"' + borderColor + '\" opacity=\"1\" /></svg>',\n square: '<svg width=\"33\" height=\"44\" viewBox=\"0 0 35 45\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M28.205 3.217H6.777c-2.367 0-4.286 1.87-4.286 4.179v19.847c0 2.308 1.919 4.179 4.286 4.179h5.357l5.337 13.58 5.377-13.58h5.357c2.366 0 4.285-1.87 4.285-4.179V7.396c0-2.308-1.919-4.179-4.285-4.179\" fill=\"' + markerColor + '\" /><g opacity=\"1\" transform=\"matrix(1.0714 0 0 -1.0714 -233.22 146.783)\"><path d=\"M244 134h-20c-2.209 0-4-1.746-4-3.9v-18.525c0-2.154 1.791-3.9 4-3.9h5L233.982 95 239 107.675h5c2.209 0 4 1.746 4 3.9V130.1c0 2.154-1.791 3.9-4 3.9m0-1c1.654 0 3-1.301 3-2.9v-18.525c0-1.599-1.346-2.9-3-2.9h-5.68l-.25-.632-4.084-10.318-4.055 10.316-.249.634H224c-1.654 0-3 1.301-3 2.9V130.1c0 1.599 1.346 2.9 3 2.9h20\" fill=\"'+ borderColor +'\" /></g></svg>',\n star: '<svg width=\"34\" height=\"44\" viewBox=\"0 0 35 45\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M32.92 16.93l-3.525-3.525V8.419a1.983 1.983 0 00-1.983-1.982h-4.985L18.9 2.91a1.984 1.984 0 00-2.803 0l-3.524 3.526H7.588a1.983 1.983 0 00-1.982 1.982v4.986L2.081 16.93a1.982 1.982 0 000 2.803l3.525 3.526v4.984c0 1.096.888 1.983 1.982 1.983h4.986L17.457 45l4.97-14.773h4.985a1.983 1.983 0 001.983-1.983V23.26l3.525-3.526a1.982 1.982 0 000-2.803\" fill=\"' + markerColor + '\" /><g opacity=\".15\" transform=\"matrix(1.0667 0 0 -1.0667 -347.3 97.26)\"><path d=\"M342 89c-.476 0-.951-.181-1.314-.544l-3.305-3.305h-4.673a1.858 1.858 0 01-1.859-1.858v-4.674l-3.305-3.305a1.857 1.857 0 010-2.627l3.305-3.305v-4.674a1.86 1.86 0 011.859-1.859h4.673L341.959 49l4.659 13.849h4.674a1.86 1.86 0 011.859 1.859v4.674l3.305 3.305a1.858 1.858 0 010 2.627l-3.305 3.305v4.674a1.859 1.859 0 01-1.859 1.858h-4.674l-3.304 3.305A1.851 1.851 0 01342 89m0-1a.853.853 0 00.607-.251l3.304-3.305.293-.293h5.088a.86.86 0 00.859-.858v-5.088l3.598-3.598A.852.852 0 00356 74a.85.85 0 00-.251-.606l-3.598-3.598v-5.088a.86.86 0 00-.859-.859h-5.393l-.229-.681-3.702-11.006-3.637 11.001-.227.686h-5.396a.86.86 0 00-.859.859v5.088l-3.598 3.598c-.162.162-.251.377-.251.606s.089.445.251.607l3.598 3.598v5.088a.86.86 0 00.859.858h5.087l3.598 3.598A.853.853 0 00342 88\" fill=\"#231f20\" /></g></svg>',\n penta: '<svg width=\"33\" height=\"44\" viewBox=\"0 0 35 45\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M1.872 17.35L9.679 2.993h15.615L33.1 17.35 17.486 44.992z\" fill=\"' + markerColor + '\" /><g opacity=\".15\" transform=\"matrix(1.0769 0 0 -1.0769 -272.731 48.23)\"><path d=\"M276.75 42h-14.5L255 28.668 269.5 3 284 28.668zm-.595-1l6.701-12.323L269.5 5.033l-13.356 23.644L262.845 41z\" fill=\"#231f20\" /></g></svg>'\n };\n return svgMap[shape];\n}\n\nconst addIcon = (icon:string) => {\n switch(icon) {\n case \"circle-solid\":\n return '<svg fill=\"#fff\" class=\"circle-icon\" width=\"13\"xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><!--! Font Awesome Pro 6.1.1 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2022 Fonticons, Inc. --><path d=\"M512 256C512 397.4 397.4 512 256 512C114.6 512 0 397.4 0 256C0 114.6 114.6 0 256 0C397.4 0 512 114.6 512 256z\"/></svg>';\n break;\n case \"calendar-days-solid\":\n return '<svg fill=\"#fff\" class=\"calendar-icon\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"><!--! Font Awesome Free 6.1.1 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2022 Fonticons, Inc. --><path d=\"M160 32V64H288V32C288 14.33 302.3 0 320 0C337.7 0 352 14.33 352 32V64H400C426.5 64 448 85.49 448 112V160H0V112C0 85.49 21.49 64 48 64H96V32C96 14.33 110.3 0 128 0C145.7 0 160 14.33 160 32zM0 192H448V464C448 490.5 426.5 512 400 512H48C21.49 512 0 490.5 0 464V192zM64 304C64 312.8 71.16 320 80 320H112C120.8 320 128 312.8 128 304V272C128 263.2 120.8 256 112 256H80C71.16 256 64 263.2 64 272V304zM192 304C192 312.8 199.2 320 208 320H240C248.8 320 256 312.8 256 304V272C256 263.2 248.8 256 240 256H208C199.2 256 192 263.2 192 272V304zM336 256C327.2 256 320 263.2 320 272V304C320 312.8 327.2 320 336 320H368C376.8 320 384 312.8 384 304V272C384 263.2 376.8 256 368 256H336zM64 432C64 440.8 71.16 448 80 448H112C120.8 448 128 440.8 128 432V400C128 391.2 120.8 384 112 384H80C71.16 384 64 391.2 64 400V432zM208 384C199.2 384 192 391.2 192 400V432C192 440.8 199.2 448 208 448H240C248.8 448 256 440.8 256 432V400C256 391.2 248.8 384 240 384H208zM320 432C320 440.8 327.2 448 336 448H368C376.8 448 384 440.8 384 432V400C384 391.2 376.8 384 368 384H336C327.2 384 320 391.2 320 400V432z\"/></svg>';\n break;\n default:\n return \"\";\n } \n}\n\nconst MarkerIconFactory = (shape:string, color1:string, color2:string, icon:string) =>\n{\n return L.divIcon({\n html: `${createSvg(shape, color1, color2)}${addIcon(icon)}`,\n iconAnchor: [17,40],\n popupAnchor: [0,-40],\n iconSize: new L.Point(40, 46),\n className: \"leaflet-data-marker\",\n shadowAnchor: [0, 0]\n });\n}\n\nexport default MarkerIconFactory ;\n","export function replaceURLs(message: string): string {\n if (!message) return \"\";\n \n var urlRegex = /(^| )(http:\\/\\/www\\.|https:\\/\\/www\\.|http:\\/\\/|https:\\/\\/)?[a-z0-9]+([\\-\\.]{1}[a-z0-9]+)*\\.[a-z]{2,10}(:[0-9]{1,10})?(\\/.*)?$/gm;\n message = message.replace(urlRegex, function (url) {\n var hyperlink = url.replace(' ', '');\n if (!hyperlink.match('^https?:\\/\\/')) {\n hyperlink = 'http://' + hyperlink;\n }\n return '<a href=\"' + hyperlink + '\" target=\"_blank\" rel=\"noopener noreferrer\">' + url + '</a>'\n });\n \n var mailRegex = /([a-zA-Z0-9._-]+@[a-zA-Z0-9._-]+\\.[a-zA-Z0-9_-]+)/gi;\n message = message.replace(mailRegex, function (mail) {\n return '<a href=\"mailto:' + mail + '\">' + mail + '</a>'\n });\n \n return message;\n }","import { LatLng } from 'leaflet'\nimport * as React from 'react'\nimport { Popup as LeafletPopup, useMap } from 'react-leaflet'\nimport { Item, Tag } from '../../../types'\nimport { replaceURLs } from '../../../Utils/ReplaceURLs'\nimport { useRemoveItem } from '../hooks/useItems'\nimport { NewItemPopupProps } from './NewItemPopup'\n\nexport interface UtopiaPopupProps {\n item: Item,\n tags: Tag[],\n setNewItemPopup?: React.Dispatch<React.SetStateAction<NewItemPopupProps | null>>\n}\n\n\nconst Popup = (props: UtopiaPopupProps) => {\n const item: Item = props.item;\n const tags: Tag[] = props.tags;\n const removeItem = useRemoveItem();\n const map = useMap();\n\n const removeItemFromMap = (event: React.MouseEvent<HTMLElement>) => {\n removeItem(item);\n event.stopPropagation();\n map.closePopup();\n }\n\n const openEditPopup = (event: React.MouseEvent<HTMLElement>) => {\n event.stopPropagation();\n map.closePopup();\n if(props.setNewItemPopup)\n props.setNewItemPopup({position: new LatLng(item.position.coordinates[1],item.position.coordinates[0]), layer: item.layer, item: item, setNewItemPopup: props.setNewItemPopup})\n }\n\n return (\n <LeafletPopup maxHeight={300} minWidth={275} maxWidth={275} autoPanPadding={[20, 5]}>\n <div className='flex flex-row'>\n <div className='basis-5/6'>\n <b className=\"text-xl font-bold\">{item.name}</b>\n </div>\n <div className='basis-1/6'>\n <div className=\"dropdown dropdown-right\">\n <label tabIndex={0} className=\"btn m-1 bg-white hover:bg-white text-gray-500 hover:text-gray-700 leading-3\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" className=\"h-5 w-5\" viewBox=\"0 0 20 20\" fill=\"currentColor\">\n <path d=\"M10 6a2 2 0 110-4 2 2 0 010 4zM10 12a2 2 0 110-4 2 2 0 010 4zM10 18a2 2 0 110-4 2 2 0 010 4z\" />\n </svg>\n </label>\n <ul tabIndex={0} className=\"dropdown-content menu p-2 shadow bg-base-100 rounded-box\">\n <li>\n <a className='bg-white hover:bg-white text-gray-500 hover:text-gray-700' onClick={openEditPopup}>\n <svg xmlns=\"http://www.w3.org/2000/svg\" className=\"h-5 w-5\" viewBox=\"0 0 20 20\" fill=\"currentColor\">\n <path d=\"M13.586 3.586a2 2 0 112.828 2.828l-.793.793-2.828-2.828.793-.793zM11.379 5.793L3 14.172V17h2.828l8.38-8.379-2.83-2.828z\" />\n </svg>\n </a>\n </li>\n <li>\n <a className='bg-white hover:bg-white text-gray-500 hover:text-gray-700' onClick={removeItemFromMap }>\n <svg xmlns=\"http://www.w3.org/2000/svg\" className=\"h-5 w-5\" viewBox=\"0 0 20 20\" fill=\"currentColor\">\n <path fillRule=\"evenodd\" d=\"M9 2a1 1 0 00-.894.553L7.382 4H4a1 1 0 000 2v10a2 2 0 002 2h8a2 2 0 002-2V6a1 1 0 100-2h-3.382l-.724-1.447A1 1 0 0011 2H9zM7 8a1 1 0 012 0v6a1 1 0 11-2 0V8zm5-1a1 1 0 00-1 1v6a1 1 0 102 0V8a1 1 0 00-1-1z\" clipRule=\"evenodd\" />\n </svg>\n </a>\n </li>\n </ul>\n </div>\n </div>\n </div>\n {item.start && item.end &&\n <div className=\"flex flex-row\">\n <div className=\"basis-2/5\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" className=\"h-6 w-6 mr-2\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" strokeWidth={2}>\n <path strokeLinecap=\"round\" strokeLinejoin=\"round\" d=\"M8 7V3m8 4V3m-9 8h10M5 21h14a2 2 0 002-2V7a2 2 0 00-2-2H5a2 2 0 00-2 2v12a2 2 0 002 2z\" />\n </svg>\n <span className='align-middle'>{new Date(item.start).toISOString().substring(0, 10) || \"\"}</span>\n </div>\n <div className=\"basis-1/5 place-content-center\">\n <span>-</span>\n </div>\n <div className=\"basis-2/5\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" className=\"h-6 w-6 mr-2\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" strokeWidth={2}>\n <path strokeLinecap=\"round\" strokeLinejoin=\"round\" d=\"M8 7V3m8 4V3m-9 8h10M5 21h14a2 2 0 002-2V7a2 2 0 00-2-2H5a2 2 0 00-2 2v12a2 2 0 002 2z\" />\n </svg>\n <span className='align-middle leading-6'>{new Date(item.end).toISOString().substring(0, 10) || \"\"}</span>\n </div>\n </div>\n }\n\n <p style={{ whiteSpace: \"pre-wrap\" }} dangerouslySetInnerHTML={{ __html: replaceURLs(item.text) }} />\n <p>\n\n {item.tags &&\n tags.map((tag: Tag) => (\n <span className=\"\" style={{ fontWeight: \"bold\", display: \"inline-block\", color: \"#fff\", padding: \".3rem\", borderRadius: \".5rem\", backgroundColor: tag.color, margin: '.2rem', fontSize: \"100%\" }} key={tag.id}>#{tag.name}</span>\n ))\n }\n </p>\n </LeafletPopup>\n )\n}\n\nexport { Popup };\n\n\n","import * as React from 'react'\nimport { Marker } from 'react-leaflet'\nimport { Item, Tag, Layer as LayerProps } from '../../types'\nimport MarkerIconFactory from '../../Utils/MarkerIconFactory'\nimport { Popup } from './Subcomponents/Popup'\nimport { useTags } from './hooks/useTags'\nimport { useAddItem, useItems } from './hooks/useItems'\nimport { useEffect } from 'react'\nimport { useAddLayer } from './hooks/useLayers'\n\nexport const Layer = (props: LayerProps) => {\n\n const tags = useTags();\n\n // create a JS-Map with all Tags \n let tagMap = new Map(tags?.map(key => [key.id, key]));\n\n // returns all tags for passed item\n const getTags = (item: Item) => {\n let tags: Tag[] = [];\n item.tags && item.tags.forEach(element => {\n if (tagMap.has(element)) { tags.push(tagMap.get(element)!); };\n });\n return tags;\n };\n\n const items = useItems();\n const addItem = useAddItem()\n const addLayer = useAddLayer();\n\n useEffect(() => {\n props.data.map(item => {\n item.layer = props;\n addItem(item);\n })\n addLayer(props);\n\n }, [])\n\n\n return (\n <>\n {items.filter(item => item.layer?.name === props.name)?.map((place: Item) => {\n let tags = getTags(place);\n let color1 = \"#666\";\n let color2 = \"RGBA(35, 31, 32, 0.2)\";\n if (tags[0]) {\n color1 = tags[0].color;\n }\n if (tags[1]) {\n color2 = tags[1].color;\n }\n return (\n <Marker icon={MarkerIconFactory(props.markerShape, color1, color2, props.markerIcon)} key={place.id} position={[place.position.coordinates[1], place.position.coordinates[0]]}>\n <Popup item={place} tags={tags} setNewItemPopup={props.setNewItemPopup}/>\n </Marker>\n );\n })\n }\n {props.children}\n </>\n )\n}\n","import * as React from 'react'\nimport { useEffect } from 'react';\nimport { Tag } from '../../types';\nimport { useAddTag } from './hooks/useTags'\n\nexport function Tags({data} : {data: Tag[]}) {\nconst addTag = useAddTag();\nuseEffect(() => {\n data.map(tag => {\n addTag(tag)\n })\n}, [])\n\n return (\n <></>\n )\n}\n"],"names":["HIcons","React","createContext","useReducer","useCallback","useContext","useState","useMap","useEffect","LeafletPopup","useMapEvents","LatLng","MapContainer","TileLayer","MarkerClusterGroup","L","Marker"],"mappings":"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"}
@@ -0,0 +1,29 @@
1
+ /// <reference types="react" />
2
+ import './button.css';
3
+ interface ButtonProps {
4
+ /**
5
+ * Is this the principal call to action on the page?
6
+ */
7
+ primary?: boolean;
8
+ /**
9
+ * What background color to use
10
+ */
11
+ backgroundColor?: string;
12
+ /**
13
+ * How large should the button be?
14
+ */
15
+ size?: 'small' | 'medium' | 'large';
16
+ /**
17
+ * Button contents
18
+ */
19
+ label: string;
20
+ /**
21
+ * Optional click handler
22
+ */
23
+ onClick?: () => void;
24
+ }
25
+ /**
26
+ * Primary UI component for user interaction
27
+ */
28
+ export declare const Button: ({ primary, size, backgroundColor, label, ...props }: ButtonProps) => JSX.Element;
29
+ export {};
@@ -0,0 +1,13 @@
1
+ /// <reference types="react" />
2
+ import './header.css';
3
+ declare type User = {
4
+ name: string;
5
+ };
6
+ interface HeaderProps {
7
+ user?: User;
8
+ onLogin: () => void;
9
+ onLogout: () => void;
10
+ onCreateAccount: () => void;
11
+ }
12
+ export declare const Header: ({ user, onLogin, onLogout, onCreateAccount }: HeaderProps) => JSX.Element;
13
+ export {};
@@ -0,0 +1,3 @@
1
+ import React from 'react';
2
+ import './page.css';
3
+ export declare const Page: React.VFC;
@@ -0,0 +1,5 @@
1
+ import { ComponentMeta } from '@storybook/react';
2
+ declare const _default: ComponentMeta<React.VFC>;
3
+ export default _default;
4
+ export declare const LoggedOut: any;
5
+ export declare const LoggedIn: any;
package/dist/types.d.ts CHANGED
@@ -1,21 +1,54 @@
1
- export interface Item {
2
- id: number;
1
+ /// <reference types="react" />
2
+ import { LatLng } from "leaflet";
3
+ import { NewItemPopupProps } from "./Components/Map/Subcomponents/NewItemPopup";
4
+ export interface UtopiaMap {
5
+ height?: string;
6
+ width?: string;
7
+ center?: LatLng;
8
+ zoom?: number;
9
+ tags?: Tag[];
10
+ children?: React.ReactNode;
11
+ api?: API;
12
+ }
13
+ export interface Layer {
14
+ data: Item[];
15
+ children?: React.ReactNode;
16
+ name: string;
17
+ menuIcon: string;
18
+ menuColor: string;
19
+ menuText: string;
20
+ markerIcon: string;
21
+ markerShape: string;
22
+ markerDefaultColor: string;
23
+ tags?: Tag[];
24
+ setNewItemPopup?: React.Dispatch<React.SetStateAction<NewItemPopupProps | null>>;
25
+ }
26
+ export declare class Item {
27
+ id: string | number;
3
28
  date_created?: string;
4
29
  date_updated?: string | null;
5
30
  name: string;
6
31
  text: string;
7
32
  position: Geometry;
33
+ layer: Layer;
8
34
  start?: string;
9
35
  end?: string;
10
36
  tags?: number[];
11
- [key: string]: any;
37
+ constructor(id: string | number, name: string, text: string, position: Geometry, layer: Layer);
12
38
  }
13
- export interface Geometry {
39
+ export declare class Geometry {
14
40
  type: string;
15
41
  coordinates: number[];
42
+ constructor(lng: number, lat: number);
16
43
  }
17
44
  export interface Tag {
18
45
  color: string;
19
- id: number;
46
+ id: string | number;
20
47
  name: string;
21
48
  }
49
+ export interface API {
50
+ getAll(): Promise<void>;
51
+ add(item: Item): Promise<void>;
52
+ update(item: Item): Promise<void>;
53
+ remove(id: number): Promise<void>;
54
+ }
package/package.json CHANGED
@@ -1,32 +1,48 @@
1
1
  {
2
2
  "name": "utopia-ui",
3
- "version": "1.0.7",
3
+ "version": "1.0.8",
4
4
  "description": "Reuseable React Components to build mapping apps for all kinds of communities ",
5
5
  "repository": "https://github.com/utopia-os/utopia-ui",
6
6
  "homepage:": "https://utopia.os/",
7
7
  "main": "dist/index.js",
8
8
  "scripts": {
9
9
  "build": "rollup -c",
10
- "start": "rollup -c -w"
10
+ "start": "rollup -c -w",
11
+ "storybook": "start-storybook -p 6006",
12
+ "build-storybook": "build-storybook"
11
13
  },
12
14
  "files": [
13
15
  "dist"
14
16
  ],
15
17
  "keywords": [],
16
18
  "author": "Anton Tranelis",
17
- "license": "ISC",
19
+ "license": "MIT",
18
20
  "devDependencies": {
21
+ "@storybook/addon-actions": "^6.5.10",
22
+ "@storybook/addon-essentials": "^6.5.10",
23
+ "@storybook/addon-interactions": "^6.5.10",
24
+ "@storybook/addon-links": "^6.5.10",
25
+ "@storybook/addon-postcss": "^2.0.0",
26
+ "@storybook/builder-webpack5": "^6.5.10",
27
+ "@storybook/manager-webpack5": "^6.5.10",
28
+ "@storybook/react": "^6.5.10",
29
+ "@storybook/testing-library": "^0.0.13",
19
30
  "@types/leaflet": "^1.7.11",
20
31
  "@types/react": "^18.0.14",
21
32
  "@types/react-dom": "^18.0.5",
22
33
  "@types/react-leaflet": "^2.8.2",
34
+ "autoprefixer": "^10.4.7",
23
35
  "babel-core": "^6.26.3",
36
+ "babel-loader": "^7.1.5",
24
37
  "babel-runtime": "^6.26.0",
38
+ "daisyui": "^2.19.0",
39
+ "postcss": "^8.4.14",
25
40
  "react": "^17.0.2",
26
41
  "react-dom": "^17.0.2",
27
42
  "rollup": "^2.75.7",
28
- "rollup-plugin-sass": "^1.2.12",
43
+ "rollup-plugin-postcss": "^4.0.2",
29
44
  "rollup-plugin-typescript2": "^0.32.1",
45
+ "tailwindcss": "^3.1.5",
30
46
  "typescript": "^4.7.4"
31
47
  },
32
48
  "peerDependencies": {
@@ -34,6 +50,7 @@
34
50
  "react-dom": "^17.0.2"
35
51
  },
36
52
  "dependencies": {
53
+ "@heroicons/react": "^1.0.6",
37
54
  "leaflet": "^1.8.0",
38
55
  "react-leaflet": "^3.2.5",
39
56
  "react-leaflet-cluster": "^1.0.4"
@@ -1,8 +0,0 @@
1
- /// <reference types="react" />
2
- import { Item, Tag } from '../../types';
3
- export interface MarkerPopupProps {
4
- item: Item;
5
- tags: Tag[];
6
- }
7
- declare const MarkerPopup: (props: MarkerPopupProps) => JSX.Element;
8
- export default MarkerPopup;
@@ -1 +0,0 @@
1
- export declare const StringFormater: (message: string) => string;