@deneb-ui/ui 2.0.34 → 2.0.36
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/EditableMap.d.ts +8 -0
- package/dist/EditableMap.js +31 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.js +5 -2
- package/package.json +2 -2
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
export interface EditableMapProps extends React.IframeHTMLAttributes<HTMLIFrameElement> {
|
|
3
|
+
id?: string;
|
|
4
|
+
'data-preview-field-path'?: string;
|
|
5
|
+
mapUrl?: string;
|
|
6
|
+
defaultLocation?: string;
|
|
7
|
+
}
|
|
8
|
+
export declare function EditableMap({ id, 'data-preview-field-path': previewFieldPath, mapUrl, defaultLocation, className, style, ...props }: EditableMapProps): React.JSX.Element;
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.EditableMap = EditableMap;
|
|
4
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
5
|
+
const react_1 = require("react");
|
|
6
|
+
function getGoogleMapsEmbedUrl(urlOrLocation) {
|
|
7
|
+
const trimmed = urlOrLocation.trim();
|
|
8
|
+
if (!trimmed) {
|
|
9
|
+
return 'https://maps.google.com/maps?q=Sri+Lanka&output=embed';
|
|
10
|
+
}
|
|
11
|
+
// If it's already an embed URL, return it directly
|
|
12
|
+
if (trimmed.includes('google.com/maps/embed') || trimmed.includes('output=embed')) {
|
|
13
|
+
return trimmed;
|
|
14
|
+
}
|
|
15
|
+
// Try to parse out coordinate lat,lng if available
|
|
16
|
+
const latLngMatch = trimmed.match(/@(-?\d+\.\d+),(-?\d+\.\d+)/);
|
|
17
|
+
if (latLngMatch) {
|
|
18
|
+
const lat = latLngMatch[1];
|
|
19
|
+
const lng = latLngMatch[2];
|
|
20
|
+
return `https://maps.google.com/maps?q=${lat},${lng}&output=embed`;
|
|
21
|
+
}
|
|
22
|
+
// Fallback: Use the entire input as the search query
|
|
23
|
+
return `https://maps.google.com/maps?q=${encodeURIComponent(trimmed)}&output=embed`;
|
|
24
|
+
}
|
|
25
|
+
function EditableMap({ id, 'data-preview-field-path': previewFieldPath, mapUrl, defaultLocation = 'Sri Lanka', className = '', style, ...props }) {
|
|
26
|
+
const path = previewFieldPath || id;
|
|
27
|
+
const embedUrl = (0, react_1.useMemo)(() => {
|
|
28
|
+
return getGoogleMapsEmbedUrl(mapUrl || defaultLocation);
|
|
29
|
+
}, [mapUrl, defaultLocation]);
|
|
30
|
+
return ((0, jsx_runtime_1.jsx)("iframe", { "data-preview-field-path": path, src: embedUrl, className: `editable-map ${className}`.trim(), style: { border: 0, ...style }, allowFullScreen: false, loading: "lazy", referrerPolicy: "no-referrer-when-downgrade", ...props }));
|
|
31
|
+
}
|
package/dist/index.d.ts
CHANGED
|
@@ -5,6 +5,7 @@
|
|
|
5
5
|
export * from './PreviewField';
|
|
6
6
|
export * from './EditableText';
|
|
7
7
|
export * from './EditableImage';
|
|
8
|
+
export * from './EditableMap';
|
|
8
9
|
export * from './EditableList';
|
|
9
10
|
export * from './EditableBox';
|
|
10
11
|
export * from './EditableGrid';
|
|
@@ -56,6 +57,7 @@ export { EditableParagraph as Paragraph } from './EditableText';
|
|
|
56
57
|
export { EditableBadge as Badge } from './EditableText';
|
|
57
58
|
export { EditableQuote as Quote } from './EditableText';
|
|
58
59
|
export { EditableImage as Image } from './EditableImage';
|
|
60
|
+
export { EditableMap as Map } from './EditableMap';
|
|
59
61
|
export { EditableGrid as Grid } from './EditableGrid';
|
|
60
62
|
export { EditableSection as Section } from './EditableSection';
|
|
61
63
|
export { EditableBox as Box } from './EditableBox';
|
package/dist/index.js
CHANGED
|
@@ -18,11 +18,12 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
18
18
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
19
19
|
};
|
|
20
20
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
21
|
-
exports.
|
|
22
|
-
exports.DENEB_AUTHOR = exports.DENEB_FRAMEWORK_VERSION = exports.DENEB_FRAMEWORK_NAME = exports.FilterSidebar = exports.CartDrawer = exports.CategoryPills = exports.AnnouncementBar = exports.HeroSplit = void 0;
|
|
21
|
+
exports.Footer = exports.Header = exports.Navbar = exports.ContactForm = exports.FAQ = exports.Accordion = exports.TestimonialCard = exports.PricingCard = exports.ServiceCard = exports.CustomerReviews = exports.ProductDetail = exports.ProductGrid = exports.ProductCard = exports.List = exports.Box = exports.Section = exports.Grid = exports.Map = exports.Image = exports.Quote = exports.Badge = exports.Paragraph = exports.Heading = exports.Text = exports.Dialog = exports.Card = exports.Button = exports.collectStyleTargetsFromHtml = exports.validateStyleTree = exports.styleToCssVariables = exports.patchStyleByPath = exports.patchElementStyle = exports.STYLE_TYPE_ATTRIBUTE = exports.STYLE_TARGET_ATTRIBUTE = exports.DENEB_STYLE_PATCH_MESSAGE = exports.STYLE_PATCH_MESSAGE = exports.formatResponsiveFontSize = exports.resolveInstallableFont = exports.normalizeFontId = exports.lookupFontDefinition = exports.listFontsByCategory = exports.collectFontIdsFromSiteData = exports.buildGoogleFontsStylesheetUrl = exports.DENEB_GOOGLE_FONT_COUNT = exports.DENEB_FONT_REGISTRY = exports.useDenebFonts = exports.DENEB_FONTS_LINK_ID = exports.FontLoader = exports.DenebComponentStyles = exports.ResponsiveBaseStyles = void 0;
|
|
22
|
+
exports.DENEB_AUTHOR = exports.DENEB_FRAMEWORK_VERSION = exports.DENEB_FRAMEWORK_NAME = exports.FilterSidebar = exports.CartDrawer = exports.CategoryPills = exports.AnnouncementBar = exports.HeroSplit = exports.Hero = void 0;
|
|
23
23
|
__exportStar(require("./PreviewField"), exports);
|
|
24
24
|
__exportStar(require("./EditableText"), exports);
|
|
25
25
|
__exportStar(require("./EditableImage"), exports);
|
|
26
|
+
__exportStar(require("./EditableMap"), exports);
|
|
26
27
|
__exportStar(require("./EditableList"), exports);
|
|
27
28
|
__exportStar(require("./EditableBox"), exports);
|
|
28
29
|
__exportStar(require("./EditableGrid"), exports);
|
|
@@ -108,6 +109,8 @@ var EditableText_6 = require("./EditableText");
|
|
|
108
109
|
Object.defineProperty(exports, "Quote", { enumerable: true, get: function () { return EditableText_6.EditableQuote; } });
|
|
109
110
|
var EditableImage_1 = require("./EditableImage");
|
|
110
111
|
Object.defineProperty(exports, "Image", { enumerable: true, get: function () { return EditableImage_1.EditableImage; } });
|
|
112
|
+
var EditableMap_1 = require("./EditableMap");
|
|
113
|
+
Object.defineProperty(exports, "Map", { enumerable: true, get: function () { return EditableMap_1.EditableMap; } });
|
|
111
114
|
var EditableGrid_1 = require("./EditableGrid");
|
|
112
115
|
Object.defineProperty(exports, "Grid", { enumerable: true, get: function () { return EditableGrid_1.EditableGrid; } });
|
|
113
116
|
var EditableSection_1 = require("./EditableSection");
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@deneb-ui/ui",
|
|
3
|
-
"version": "2.0.
|
|
3
|
+
"version": "2.0.36",
|
|
4
4
|
"description": "Visual-first React component library for editable commerce storefronts. Built for Next.js and Fivora.",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -49,7 +49,7 @@
|
|
|
49
49
|
],
|
|
50
50
|
"license": "MIT",
|
|
51
51
|
"dependencies": {
|
|
52
|
-
"@deneb-ui/core": "^2.0.
|
|
52
|
+
"@deneb-ui/core": "^2.0.36"
|
|
53
53
|
},
|
|
54
54
|
"peerDependencies": {
|
|
55
55
|
"react": "^18.0.0 || ^19.0.0",
|