@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.
@@ -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.Hero = 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.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 = 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.34",
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.34"
52
+ "@deneb-ui/core": "^2.0.36"
53
53
  },
54
54
  "peerDependencies": {
55
55
  "react": "^18.0.0 || ^19.0.0",