@faststore/components 3.17.0 → 3.20.0
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/cjs/index.d.ts +3 -1
- package/dist/cjs/index.js +6 -3
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/molecules/Modal/ModalFooter.d.ts +17 -0
- package/dist/cjs/molecules/Modal/ModalFooter.js +8 -0
- package/dist/cjs/molecules/Modal/ModalFooter.js.map +1 -0
- package/dist/cjs/molecules/Modal/index.d.ts +2 -0
- package/dist/cjs/molecules/Modal/index.js +3 -1
- package/dist/cjs/molecules/Modal/index.js.map +1 -1
- package/dist/cjs/molecules/Tooltip/Tooltip.d.ts +49 -0
- package/dist/cjs/molecules/Tooltip/Tooltip.js +41 -0
- package/dist/cjs/molecules/Tooltip/Tooltip.js.map +1 -0
- package/dist/cjs/molecules/Tooltip/index.d.ts +2 -0
- package/dist/cjs/molecules/Tooltip/index.js +9 -0
- package/dist/cjs/molecules/Tooltip/index.js.map +1 -0
- package/dist/esm/index.d.ts +3 -1
- package/dist/esm/index.js +2 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/molecules/Modal/ModalFooter.d.ts +17 -0
- package/dist/esm/molecules/Modal/ModalFooter.js +5 -0
- package/dist/esm/molecules/Modal/ModalFooter.js.map +1 -0
- package/dist/esm/molecules/Modal/index.d.ts +2 -0
- package/dist/esm/molecules/Modal/index.js +1 -0
- package/dist/esm/molecules/Modal/index.js.map +1 -1
- package/dist/esm/molecules/Tooltip/Tooltip.d.ts +49 -0
- package/dist/esm/molecules/Tooltip/Tooltip.js +38 -0
- package/dist/esm/molecules/Tooltip/Tooltip.js.map +1 -0
- package/dist/esm/molecules/Tooltip/index.d.ts +2 -0
- package/dist/esm/molecules/Tooltip/index.js +2 -0
- package/dist/esm/molecules/Tooltip/index.js.map +1 -0
- package/package.json +2 -2
- package/src/index.ts +8 -1
- package/src/molecules/Modal/ModalFooter.tsx +35 -0
- package/src/molecules/Modal/index.tsx +2 -0
- package/src/molecules/Tooltip/Tooltip.tsx +163 -0
- package/src/molecules/Tooltip/index.ts +2 -0
package/dist/cjs/index.d.ts
CHANGED
|
@@ -59,7 +59,7 @@ export { default as InputField } from './molecules/InputField';
|
|
|
59
59
|
export type { InputFieldProps } from './molecules/InputField';
|
|
60
60
|
export { default as LinkButton } from './molecules/LinkButton';
|
|
61
61
|
export type { LinkButtonProps } from './molecules/LinkButton';
|
|
62
|
-
export { default as Modal, ModalHeader, ModalBody } from './molecules/Modal';
|
|
62
|
+
export { default as Modal, ModalHeader, ModalBody, ModalFooter, } from './molecules/Modal';
|
|
63
63
|
export type { ModalProps, ModalHeaderProps } from './molecules/Modal';
|
|
64
64
|
export { default as NavbarLinks, NavbarLinksList, NavbarLinksListItem, } from './molecules/NavbarLinks';
|
|
65
65
|
export type { NavbarLinksProps, NavbarLinksListProps, NavbarLinksListItemProps, } from './molecules/NavbarLinks';
|
|
@@ -81,6 +81,8 @@ export { default as RatingField } from './molecules/RatingField';
|
|
|
81
81
|
export type { RatingFieldProps } from './molecules/RatingField';
|
|
82
82
|
export { default as RegionBar } from './molecules/RegionBar';
|
|
83
83
|
export type { RegionBarProps } from './molecules/RegionBar';
|
|
84
|
+
export { default as Tooltip } from './molecules/Tooltip';
|
|
85
|
+
export type { TooltipProps } from './molecules/Tooltip';
|
|
84
86
|
export { default as SearchProvider } from './molecules/SearchProvider';
|
|
85
87
|
export type { SearchProviderContextValue } from './molecules/SearchProvider';
|
|
86
88
|
export { default as SearchInputField } from './molecules/SearchInputField';
|
package/dist/cjs/index.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
4
|
-
exports.
|
|
5
|
-
exports.SKUMatrixSidebar = exports.SKUMatrixTrigger = exports.SKUMatrix = exports.SlideOverHeader = exports.SlideOver = exports.ShippingSimulation = exports.SearchInput = exports.RegionModal = exports.ProductShelfItem = exports.ProductShelfItems = exports.ProductShelf = exports.ProductGridItem = exports.ProductGrid = exports.PriceRange = exports.PaymentMethods = exports.OutOfStock = exports.NewsletterHeader = exports.NewsletterForm = exports.NewsletterContent = exports.NewsletterAddendum = exports.Newsletter = exports.NavbarSliderFooter = exports.NavbarSliderContent = exports.NavbarSliderHeader = exports.NavbarSlider = exports.NavbarButtons = exports.NavbarRow = exports.NavbarHeader = exports.Navbar = exports.ImageGalleryViewer = exports.ImageGallerySelector = exports.ImageGallery = exports.HeroHeader = exports.HeroImage = exports.Hero = void 0;
|
|
3
|
+
exports.NavbarLinksList = exports.NavbarLinks = exports.ModalFooter = exports.ModalBody = exports.ModalHeader = exports.Modal = exports.LinkButton = exports.InputField = exports.GiftImage = exports.GiftContent = exports.Gift = exports.DropdownMenu = exports.DropdownItem = exports.DropdownButton = exports.Dropdown = exports.DiscountBadge = exports.IconButton = exports.CheckboxField = exports.CartItemSummary = exports.CartItemImage = exports.CartItem = exports.Card = exports.CarouselBullets = exports.CarouselItem = exports.Carousel = exports.BuyButton = exports.Breadcrumb = exports.BreadcrumbPure = exports.Alert = exports.AccordionPanel = exports.AccordionButton = exports.AccordionItem = exports.Accordion = exports.SROnly = exports.Slider = exports.Select = exports.Skeleton = exports.Radio = exports.Price = exports.Overlay = exports.List = exports.Loader = exports.Link = exports.Label = exports.Textarea = exports.Input = exports.Icon = exports.Checkbox = exports.Button = exports.Badge = void 0;
|
|
4
|
+
exports.FilterFacetRange = exports.FilterFacetBooleanItem = exports.FilterFacetBoolean = exports.Filter = exports.EmptyState = exports.CartSidebarFooter = exports.CartSidebarList = exports.CartSidebar = exports.BannerTextContent = exports.BannerText = exports.QuantitySelector = exports.ToggleField = exports.Toggle = exports.Toast = exports.Tag = exports.TableRow = exports.TableHead = exports.TableFooter = exports.TableCell = exports.TableBody = exports.Table = exports.SkuSelector = exports.SelectField = exports.SearchTopTerm = exports.SearchTop = exports.SearchProductItemContent = exports.SearchProductItemImage = exports.SearchProductItem = exports.SearchProducts = exports.SearchHistoryTerm = exports.SearchHistory = exports.SearchDropdown = exports.SearchAutoCompleteTerm = exports.SearchAutoComplete = exports.SearchInputField = exports.SearchProvider = exports.Tooltip = exports.RegionBar = exports.RatingField = exports.Rating = exports.RadioOption = exports.RadioGroup = exports.RadioField = exports.ProductTitle = exports.ProductPrice = exports.ProductCardContent = exports.ProductCardImage = exports.ProductCard = exports.OrderSummary = exports.NavbarLinksListItem = void 0;
|
|
5
|
+
exports.SKUMatrixSidebar = exports.SKUMatrixTrigger = exports.SKUMatrix = exports.SlideOverHeader = exports.SlideOver = exports.ShippingSimulation = exports.SearchInput = exports.RegionModal = exports.ProductShelfItem = exports.ProductShelfItems = exports.ProductShelf = exports.ProductGridItem = exports.ProductGrid = exports.PriceRange = exports.PaymentMethods = exports.OutOfStock = exports.NewsletterHeader = exports.NewsletterForm = exports.NewsletterContent = exports.NewsletterAddendum = exports.Newsletter = exports.NavbarSliderFooter = exports.NavbarSliderContent = exports.NavbarSliderHeader = exports.NavbarSlider = exports.NavbarButtons = exports.NavbarRow = exports.NavbarHeader = exports.Navbar = exports.ImageGalleryViewer = exports.ImageGallerySelector = exports.ImageGallery = exports.HeroHeader = exports.HeroImage = exports.Hero = exports.FilterSlider = exports.FilterFacets = void 0;
|
|
6
6
|
const tslib_1 = require("tslib");
|
|
7
7
|
// Hooks
|
|
8
8
|
tslib_1.__exportStar(require("./hooks"), exports);
|
|
@@ -87,6 +87,7 @@ var Modal_1 = require("./molecules/Modal");
|
|
|
87
87
|
Object.defineProperty(exports, "Modal", { enumerable: true, get: function () { return tslib_1.__importDefault(Modal_1).default; } });
|
|
88
88
|
Object.defineProperty(exports, "ModalHeader", { enumerable: true, get: function () { return Modal_1.ModalHeader; } });
|
|
89
89
|
Object.defineProperty(exports, "ModalBody", { enumerable: true, get: function () { return Modal_1.ModalBody; } });
|
|
90
|
+
Object.defineProperty(exports, "ModalFooter", { enumerable: true, get: function () { return Modal_1.ModalFooter; } });
|
|
90
91
|
var NavbarLinks_1 = require("./molecules/NavbarLinks");
|
|
91
92
|
Object.defineProperty(exports, "NavbarLinks", { enumerable: true, get: function () { return tslib_1.__importDefault(NavbarLinks_1).default; } });
|
|
92
93
|
Object.defineProperty(exports, "NavbarLinksList", { enumerable: true, get: function () { return NavbarLinks_1.NavbarLinksList; } });
|
|
@@ -112,6 +113,8 @@ var RatingField_1 = require("./molecules/RatingField");
|
|
|
112
113
|
Object.defineProperty(exports, "RatingField", { enumerable: true, get: function () { return tslib_1.__importDefault(RatingField_1).default; } });
|
|
113
114
|
var RegionBar_1 = require("./molecules/RegionBar");
|
|
114
115
|
Object.defineProperty(exports, "RegionBar", { enumerable: true, get: function () { return tslib_1.__importDefault(RegionBar_1).default; } });
|
|
116
|
+
var Tooltip_1 = require("./molecules/Tooltip");
|
|
117
|
+
Object.defineProperty(exports, "Tooltip", { enumerable: true, get: function () { return tslib_1.__importDefault(Tooltip_1).default; } });
|
|
115
118
|
var SearchProvider_1 = require("./molecules/SearchProvider");
|
|
116
119
|
Object.defineProperty(exports, "SearchProvider", { enumerable: true, get: function () { return tslib_1.__importDefault(SearchProvider_1).default; } });
|
|
117
120
|
var SearchInputField_1 = require("./molecules/SearchInputField");
|
package/dist/cjs/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;AAAA,QAAQ;AACR,kDAAuB;AAEvB,QAAQ;AACR,uCAAgD;AAAvC,uHAAA,OAAO,OAAS;AAEzB,yCAAkD;AAAzC,yHAAA,OAAO,OAAU;AAE1B,6CAAsD;AAA7C,6HAAA,OAAO,OAAY;AAE5B,qCAA8C;AAArC,qHAAA,OAAO,OAAQ;AAExB,uCAAgD;AAAvC,uHAAA,OAAO,OAAS;AAEzB,6CAAsD;AAA7C,6HAAA,OAAO,OAAY;AAE5B,uCAAgD;AAAvC,uHAAA,OAAO,OAAS;AAEzB,qCAA8C;AAArC,qHAAA,OAAO,OAAQ;AAExB,yCAAkD;AAAzC,yHAAA,OAAO,OAAU;AAE1B,qCAA8C;AAArC,qHAAA,OAAO,OAAQ;AAExB,2CAAoD;AAA3C,2HAAA,OAAO,OAAW;AAE3B,uCAAgD;AAAvC,uHAAA,OAAO,OAAS;AAEzB,uCAAgD;AAAvC,uHAAA,OAAO,OAAS;AAEzB,6CAAsD;AAA7C,6HAAA,OAAO,OAAY;AAE5B,yCAAkD;AAAzC,yHAAA,OAAO,OAAU;AAE1B,yCAAkD;AAAzC,yHAAA,OAAO,OAAU;AAE1B,yCAAkD;AAAzC,yHAAA,OAAO,OAAU;AAE1B,YAAY;AACZ,mDAK8B;AAJ5B,+HAAA,OAAO,OAAa;AACpB,0GAAA,aAAa,OAAA;AACb,4GAAA,eAAe,OAAA;AACf,2GAAA,cAAc,OAAA;AAQhB,2CAAoD;AAA3C,uHAAA,OAAO,OAAS;AAEzB,qDAAmE;AAA1D,4GAAA,cAAc,OAAA;AAAE,wGAAA,UAAU,OAAA;AAKnC,mDAA4D;AAAnD,+HAAA,OAAO,OAAa;AAE7B,iDAI6B;AAH3B,6HAAA,OAAO,OAAY;AACnB,wGAAA,YAAY,OAAA;AACZ,2GAAA,eAAe,OAAA;AAQjB,yCAAkD;AAAzC,qHAAA,OAAO,OAAQ;AAGxB,iDAI6B;AAH3B,6HAAA,OAAO,OAAY;AACnB,yGAAA,aAAa,OAAA;AACb,2GAAA,eAAe,OAAA;AAOjB,2DAAoE;AAA3D,uIAAA,OAAO,OAAiB;AAEjC,qDAA8D;AAArD,iIAAA,OAAO,OAAc;AAE9B,2DAAoE;AAA3D,uIAAA,OAAO,OAAiB;AAEjC,iDAK6B;AAJ3B,6HAAA,OAAO,OAAY;AACnB,0GAAA,cAAc,OAAA;AACd,wGAAA,YAAY,OAAA;AACZ,wGAAA,YAAY,OAAA;AAQd,yCAA0E;AAAjE,qHAAA,OAAO,OAAQ;AAAE,mGAAA,WAAW,OAAA;AAAE,iGAAA,SAAS,OAAA;AAMhD,qDAA8D;AAArD,iIAAA,OAAO,OAAc;AAE9B,qDAA8D;AAArD,iIAAA,OAAO,OAAc;AAE9B,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import React, { type ReactNode, type HTMLAttributes } from 'react';
|
|
2
|
+
export interface ModalFooterProps extends HTMLAttributes<HTMLDivElement> {
|
|
3
|
+
/**
|
|
4
|
+
* Children or function as a children
|
|
5
|
+
*/
|
|
6
|
+
children: ReactNode;
|
|
7
|
+
/**
|
|
8
|
+
* Layout direction. Default is `horizontal`.
|
|
9
|
+
*/
|
|
10
|
+
direction?: 'horizontal' | 'vertical';
|
|
11
|
+
/**
|
|
12
|
+
* Allows wrapping. Default is `true`
|
|
13
|
+
*/
|
|
14
|
+
wrap?: boolean;
|
|
15
|
+
}
|
|
16
|
+
declare const ModalFooter: ({ children, direction, wrap, ...otherProps }: ModalFooterProps) => React.JSX.Element;
|
|
17
|
+
export default ModalFooter;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const tslib_1 = require("tslib");
|
|
4
|
+
const react_1 = tslib_1.__importDefault(require("react"));
|
|
5
|
+
const ModalFooter = ({ children, direction = 'horizontal', wrap = true, ...otherProps }) => (react_1.default.createElement("div", { "data-fs-modal-footer": true, ...otherProps },
|
|
6
|
+
react_1.default.createElement("div", { "data-fs-modal-footer-actions": true, "data-fs-modal-footer-actions-direction": direction, "data-fs-modal-footer-actions-wrap": wrap }, children)));
|
|
7
|
+
exports.default = ModalFooter;
|
|
8
|
+
//# sourceMappingURL=ModalFooter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ModalFooter.js","sourceRoot":"","sources":["../../../../src/molecules/Modal/ModalFooter.tsx"],"names":[],"mappings":";;;AAAA,0DAAkE;AAiBlE,MAAM,WAAW,GAAG,CAAC,EACnB,QAAQ,EACR,SAAS,GAAG,YAAY,EACxB,IAAI,GAAG,IAAI,EACX,GAAG,UAAU,EACI,EAAE,EAAE,CAAC,CACtB,wEAA8B,UAAU;IACtC,uHAE0C,SAAS,uCACd,IAAI,IAEtC,QAAQ,CACL,CACF,CACP,CAAA;AAED,kBAAe,WAAW,CAAA"}
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
export { default } from './Modal';
|
|
2
2
|
export { default as ModalHeader } from './ModalHeader';
|
|
3
|
+
export { default as ModalFooter } from './ModalFooter';
|
|
3
4
|
export { default as ModalBody } from './ModalBody';
|
|
4
5
|
export type { ModalProps } from './Modal';
|
|
5
6
|
export type { ModalHeaderProps } from './ModalHeader';
|
|
7
|
+
export type { ModalFooterProps } from './ModalFooter';
|
|
@@ -3,11 +3,13 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.ModalBody = exports.ModalHeader = exports.default = void 0;
|
|
6
|
+
exports.ModalBody = exports.ModalFooter = exports.ModalHeader = exports.default = void 0;
|
|
7
7
|
var Modal_1 = require("./Modal");
|
|
8
8
|
Object.defineProperty(exports, "default", { enumerable: true, get: function () { return __importDefault(Modal_1).default; } });
|
|
9
9
|
var ModalHeader_1 = require("./ModalHeader");
|
|
10
10
|
Object.defineProperty(exports, "ModalHeader", { enumerable: true, get: function () { return __importDefault(ModalHeader_1).default; } });
|
|
11
|
+
var ModalFooter_1 = require("./ModalFooter");
|
|
12
|
+
Object.defineProperty(exports, "ModalFooter", { enumerable: true, get: function () { return __importDefault(ModalFooter_1).default; } });
|
|
11
13
|
var ModalBody_1 = require("./ModalBody");
|
|
12
14
|
Object.defineProperty(exports, "ModalBody", { enumerable: true, get: function () { return __importDefault(ModalBody_1).default; } });
|
|
13
15
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/molecules/Modal/index.tsx"],"names":[],"mappings":";;;;;;AAAA,iCAAiC;AAAxB,iHAAA,OAAO,OAAA;AAChB,6CAAsD;AAA7C,2HAAA,OAAO,OAAe;AAC/B,yCAAkD;AAAzC,uHAAA,OAAO,OAAa"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/molecules/Modal/index.tsx"],"names":[],"mappings":";;;;;;AAAA,iCAAiC;AAAxB,iHAAA,OAAO,OAAA;AAChB,6CAAsD;AAA7C,2HAAA,OAAO,OAAe;AAC/B,6CAAsD;AAA7C,2HAAA,OAAO,OAAe;AAC/B,yCAAkD;AAAzC,uHAAA,OAAO,OAAa"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import React, { type ReactNode, type HTMLAttributes } from 'react';
|
|
2
|
+
/**
|
|
3
|
+
* Specifies tooltip position.
|
|
4
|
+
*/
|
|
5
|
+
export type Side = 'top' | 'right' | 'bottom' | 'left';
|
|
6
|
+
/**
|
|
7
|
+
* Specifies tooltip alignment.
|
|
8
|
+
*/
|
|
9
|
+
export type Alignment = 'start' | 'center' | 'end';
|
|
10
|
+
/**
|
|
11
|
+
* Combines side + alignment (e.g., "top-start").
|
|
12
|
+
*/
|
|
13
|
+
export type Placement = `${Side}-${Alignment}`;
|
|
14
|
+
export interface TooltipProps extends Omit<HTMLAttributes<HTMLDivElement>, 'content'> {
|
|
15
|
+
/**
|
|
16
|
+
* Text/content of the tooltip.
|
|
17
|
+
*/
|
|
18
|
+
content: ReactNode;
|
|
19
|
+
/**
|
|
20
|
+
* Defines the side or side-alignment (e.g., "top-center", "right-end") of the tooltip.
|
|
21
|
+
*/
|
|
22
|
+
placement?: Placement;
|
|
23
|
+
/**
|
|
24
|
+
* If the tooltip can be closed by a button.
|
|
25
|
+
*/
|
|
26
|
+
dismissible?: boolean;
|
|
27
|
+
/**
|
|
28
|
+
* Called when the dismiss button is clicked.
|
|
29
|
+
*/
|
|
30
|
+
onDismiss?: (ev: React.KeyboardEvent<HTMLDivElement> | React.MouseEvent<HTMLButtonElement>) => void;
|
|
31
|
+
/**
|
|
32
|
+
* Element that activates the tooltip on hover/focus.
|
|
33
|
+
*/
|
|
34
|
+
children: ReactNode;
|
|
35
|
+
/**
|
|
36
|
+
* ID to find this component in testing tools (e.g.: cypress, testing library, and jest).
|
|
37
|
+
*/
|
|
38
|
+
testId?: string;
|
|
39
|
+
/**
|
|
40
|
+
* Maximum width of the tooltip.
|
|
41
|
+
*/
|
|
42
|
+
maxWidth?: number;
|
|
43
|
+
/**
|
|
44
|
+
* ID for the tooltip content to be used with aria-describedby.
|
|
45
|
+
*/
|
|
46
|
+
describedById?: string;
|
|
47
|
+
}
|
|
48
|
+
declare const Tooltip: React.ForwardRefExoticComponent<TooltipProps & React.RefAttributes<HTMLDivElement>>;
|
|
49
|
+
export default Tooltip;
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const tslib_1 = require("tslib");
|
|
4
|
+
const react_1 = tslib_1.__importStar(require("react"));
|
|
5
|
+
const Icon_1 = tslib_1.__importDefault(require("../../atoms/Icon"));
|
|
6
|
+
const IconButton_1 = tslib_1.__importDefault(require("../IconButton"));
|
|
7
|
+
const Tooltip = (0, react_1.forwardRef)(function Tooltip({ content, placement = 'top-center', dismissible = false, onDismiss, children, testId = 'fs-tooltip', maxWidth = 300, describedById = 'tooltip-content', ...otherProps }, ref) {
|
|
8
|
+
const [open, setOpen] = (0, react_1.useState)(false);
|
|
9
|
+
const [dismissed, setDismissed] = (0, react_1.useState)(false);
|
|
10
|
+
const dismissButtonRef = (0, react_1.useRef)(null);
|
|
11
|
+
const triggerRef = (0, react_1.useRef)(null);
|
|
12
|
+
const handleDismiss = (ev) => {
|
|
13
|
+
onDismiss?.(ev);
|
|
14
|
+
setOpen(false);
|
|
15
|
+
setDismissed(true);
|
|
16
|
+
};
|
|
17
|
+
const toggleOpen = () => {
|
|
18
|
+
if (dismissed) {
|
|
19
|
+
setDismissed(false);
|
|
20
|
+
}
|
|
21
|
+
setOpen(true);
|
|
22
|
+
};
|
|
23
|
+
const handleKeyDown = (event) => {
|
|
24
|
+
if (event.key === 'Escape') {
|
|
25
|
+
handleDismiss(event);
|
|
26
|
+
}
|
|
27
|
+
};
|
|
28
|
+
(0, react_1.useEffect)(() => {
|
|
29
|
+
if (open && dismissible) {
|
|
30
|
+
dismissButtonRef.current?.focus();
|
|
31
|
+
}
|
|
32
|
+
}, [open, dismissible]);
|
|
33
|
+
return (react_1.default.createElement("div", { "data-fs-tooltip": true, onMouseEnter: toggleOpen, onMouseLeave: () => setOpen(false), onFocus: toggleOpen, onBlur: () => setOpen(false), "data-testid": testId, "aria-describedby": describedById, onKeyDown: handleKeyDown, tabIndex: 0, ref: triggerRef },
|
|
34
|
+
children,
|
|
35
|
+
open && !dismissed && (react_1.default.createElement("div", { ref: ref, "data-fs-tooltip-wrapper": true, "data-fs-tooltip-placement": placement, "data-fs-tooltip-dismissible": dismissible, role: "tooltip", onKeyDown: handleKeyDown, style: { maxWidth }, ...otherProps },
|
|
36
|
+
react_1.default.createElement("div", { "data-fs-tooltip-content": true, id: describedById }, content),
|
|
37
|
+
dismissible && (react_1.default.createElement(IconButton_1.default, { size: "small", variant: "tertiary", inverse: true, icon: react_1.default.createElement(Icon_1.default, { name: "X", width: 20, height: 20 }), "aria-label": "Dismiss tooltip", "data-fs-tooltip-dismiss-button": true, onClick: handleDismiss, ref: dismissButtonRef })),
|
|
38
|
+
react_1.default.createElement("div", { "data-fs-tooltip-indicator": true, "aria-hidden": "true" })))));
|
|
39
|
+
});
|
|
40
|
+
exports.default = Tooltip;
|
|
41
|
+
//# sourceMappingURL=Tooltip.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Tooltip.js","sourceRoot":"","sources":["../../../../src/molecules/Tooltip/Tooltip.tsx"],"names":[],"mappings":";;;AAAA,uDAOc;AACd,oEAAmC;AACnC,uEAAsC;AAyDtC,MAAM,OAAO,GAAG,IAAA,kBAAU,EAA+B,SAAS,OAAO,CACvE,EACE,OAAO,EACP,SAAS,GAAG,YAAY,EACxB,WAAW,GAAG,KAAK,EACnB,SAAS,EACT,QAAQ,EACR,MAAM,GAAG,YAAY,EACrB,QAAQ,GAAG,GAAG,EACd,aAAa,GAAG,iBAAiB,EACjC,GAAG,UAAU,EACd,EACD,GAAG;IAEH,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,IAAA,gBAAQ,EAAC,KAAK,CAAC,CAAA;IACvC,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,IAAA,gBAAQ,EAAC,KAAK,CAAC,CAAA;IACjD,MAAM,gBAAgB,GAAG,IAAA,cAAM,EAAoB,IAAI,CAAC,CAAA;IACxD,MAAM,UAAU,GAAG,IAAA,cAAM,EAAiB,IAAI,CAAC,CAAA;IAE/C,MAAM,aAAa,GAAG,CACpB,EAEuC,EACvC,EAAE;QACF,SAAS,EAAE,CAAC,EAAE,CAAC,CAAA;QACf,OAAO,CAAC,KAAK,CAAC,CAAA;QACd,YAAY,CAAC,IAAI,CAAC,CAAA;IACpB,CAAC,CAAA;IAED,MAAM,UAAU,GAAG,GAAG,EAAE;QACtB,IAAI,SAAS,EAAE,CAAC;YACd,YAAY,CAAC,KAAK,CAAC,CAAA;QACrB,CAAC;QACD,OAAO,CAAC,IAAI,CAAC,CAAA;IACf,CAAC,CAAA;IAED,MAAM,aAAa,GAAG,CAAC,KAA0C,EAAE,EAAE;QACnE,IAAI,KAAK,CAAC,GAAG,KAAK,QAAQ,EAAE,CAAC;YAC3B,aAAa,CAAC,KAAK,CAAC,CAAA;QACtB,CAAC;IACH,CAAC,CAAA;IAED,IAAA,iBAAS,EAAC,GAAG,EAAE;QACb,IAAI,IAAI,IAAI,WAAW,EAAE,CAAC;YACxB,gBAAgB,CAAC,OAAO,EAAE,KAAK,EAAE,CAAA;QACnC,CAAC;IACH,CAAC,EAAE,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC,CAAA;IAEvB,OAAO,CACL,gEAEE,YAAY,EAAE,UAAU,EACxB,YAAY,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,EAClC,OAAO,EAAE,UAAU,EACnB,MAAM,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,iBACf,MAAM,sBACD,aAAa,EAC/B,SAAS,EAAE,aAAa,EACxB,QAAQ,EAAE,CAAC,EACX,GAAG,EAAE,UAAU;QAEd,QAAQ;QAER,IAAI,IAAI,CAAC,SAAS,IAAI,CACrB,uCACE,GAAG,EAAE,GAAG,gEAEmB,SAAS,iCACP,WAAW,EACxC,IAAI,EAAC,SAAS,EACd,SAAS,EAAE,aAAa,EACxB,KAAK,EAAE,EAAE,QAAQ,EAAE,KACf,UAAU;YAEd,wEAA6B,EAAE,EAAE,aAAa,IAC3C,OAAO,CACJ;YACL,WAAW,IAAI,CACd,8BAAC,oBAAU,IACT,IAAI,EAAC,OAAO,EACZ,OAAO,EAAC,UAAU,EAClB,OAAO,QACP,IAAI,EAAE,8BAAC,cAAI,IAAC,IAAI,EAAC,GAAG,EAAC,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,GAAI,gBACnC,iBAAiB,0CAE5B,OAAO,EAAE,aAAa,EACtB,GAAG,EAAE,gBAAgB,GACrB,CACH;YACD,yFAA2C,MAAM,GAAG,CAChD,CACP,CACG,CACP,CAAA;AACH,CAAC,CAAC,CAAA;AAEF,kBAAe,OAAO,CAAA"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
var Tooltip_1 = require("./Tooltip");
|
|
8
|
+
Object.defineProperty(exports, "default", { enumerable: true, get: function () { return __importDefault(Tooltip_1).default; } });
|
|
9
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/molecules/Tooltip/index.ts"],"names":[],"mappings":";;;;;;AAAA,qCAAmC;AAA1B,mHAAA,OAAO,OAAA"}
|
package/dist/esm/index.d.ts
CHANGED
|
@@ -59,7 +59,7 @@ export { default as InputField } from './molecules/InputField';
|
|
|
59
59
|
export type { InputFieldProps } from './molecules/InputField';
|
|
60
60
|
export { default as LinkButton } from './molecules/LinkButton';
|
|
61
61
|
export type { LinkButtonProps } from './molecules/LinkButton';
|
|
62
|
-
export { default as Modal, ModalHeader, ModalBody } from './molecules/Modal';
|
|
62
|
+
export { default as Modal, ModalHeader, ModalBody, ModalFooter, } from './molecules/Modal';
|
|
63
63
|
export type { ModalProps, ModalHeaderProps } from './molecules/Modal';
|
|
64
64
|
export { default as NavbarLinks, NavbarLinksList, NavbarLinksListItem, } from './molecules/NavbarLinks';
|
|
65
65
|
export type { NavbarLinksProps, NavbarLinksListProps, NavbarLinksListItemProps, } from './molecules/NavbarLinks';
|
|
@@ -81,6 +81,8 @@ export { default as RatingField } from './molecules/RatingField';
|
|
|
81
81
|
export type { RatingFieldProps } from './molecules/RatingField';
|
|
82
82
|
export { default as RegionBar } from './molecules/RegionBar';
|
|
83
83
|
export type { RegionBarProps } from './molecules/RegionBar';
|
|
84
|
+
export { default as Tooltip } from './molecules/Tooltip';
|
|
85
|
+
export type { TooltipProps } from './molecules/Tooltip';
|
|
84
86
|
export { default as SearchProvider } from './molecules/SearchProvider';
|
|
85
87
|
export type { SearchProviderContextValue } from './molecules/SearchProvider';
|
|
86
88
|
export { default as SearchInputField } from './molecules/SearchInputField';
|
package/dist/esm/index.js
CHANGED
|
@@ -33,7 +33,7 @@ export { default as Dropdown, DropdownButton, DropdownItem, DropdownMenu, } from
|
|
|
33
33
|
export { default as Gift, GiftContent, GiftImage } from './molecules/Gift';
|
|
34
34
|
export { default as InputField } from './molecules/InputField';
|
|
35
35
|
export { default as LinkButton } from './molecules/LinkButton';
|
|
36
|
-
export { default as Modal, ModalHeader, ModalBody } from './molecules/Modal';
|
|
36
|
+
export { default as Modal, ModalHeader, ModalBody, ModalFooter, } from './molecules/Modal';
|
|
37
37
|
export { default as NavbarLinks, NavbarLinksList, NavbarLinksListItem, } from './molecules/NavbarLinks';
|
|
38
38
|
export { default as OrderSummary } from './molecules/OrderSummary';
|
|
39
39
|
export { default as ProductCard, ProductCardImage, ProductCardContent, } from './molecules/ProductCard';
|
|
@@ -44,6 +44,7 @@ export { default as RadioGroup, RadioOption } from './molecules/RadioGroup';
|
|
|
44
44
|
export { default as Rating } from './molecules/Rating';
|
|
45
45
|
export { default as RatingField } from './molecules/RatingField';
|
|
46
46
|
export { default as RegionBar } from './molecules/RegionBar';
|
|
47
|
+
export { default as Tooltip } from './molecules/Tooltip';
|
|
47
48
|
export { default as SearchProvider } from './molecules/SearchProvider';
|
|
48
49
|
export { default as SearchInputField } from './molecules/SearchInputField';
|
|
49
50
|
export { default as SearchAutoComplete, SearchAutoCompleteTerm, } from './molecules/SearchAutoComplete';
|
package/dist/esm/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,QAAQ;AACR,cAAc,SAAS,CAAA;AAEvB,QAAQ;AACR,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,eAAe,CAAA;AAEhD,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,gBAAgB,CAAA;AAElD,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,kBAAkB,CAAA;AAEtD,OAAO,EAAE,OAAO,IAAI,IAAI,EAAE,MAAM,cAAc,CAAA;AAE9C,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,eAAe,CAAA;AAEhD,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,kBAAkB,CAAA;AAEtD,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,eAAe,CAAA;AAEhD,OAAO,EAAE,OAAO,IAAI,IAAI,EAAE,MAAM,cAAc,CAAA;AAE9C,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,gBAAgB,CAAA;AAElD,OAAO,EAAE,OAAO,IAAI,IAAI,EAAE,MAAM,cAAc,CAAA;AAE9C,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,iBAAiB,CAAA;AAEpD,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,eAAe,CAAA;AAEhD,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,eAAe,CAAA;AAEhD,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,kBAAkB,CAAA;AAEtD,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,gBAAgB,CAAA;AAElD,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,gBAAgB,CAAA;AAElD,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,gBAAgB,CAAA;AAElD,YAAY;AACZ,OAAO,EACL,OAAO,IAAI,SAAS,EACpB,aAAa,EACb,eAAe,EACf,cAAc,GACf,MAAM,uBAAuB,CAAA;AAO9B,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,mBAAmB,CAAA;AAEpD,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAA;AAKnE,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,uBAAuB,CAAA;AAE5D,OAAO,EACL,OAAO,IAAI,QAAQ,EACnB,YAAY,EACZ,eAAe,GAChB,MAAM,sBAAsB,CAAA;AAO7B,OAAO,EAAE,OAAO,IAAI,IAAI,EAAE,MAAM,kBAAkB,CAAA;AAGlD,OAAO,EACL,OAAO,IAAI,QAAQ,EACnB,aAAa,EACb,eAAe,GAChB,MAAM,sBAAsB,CAAA;AAM7B,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,2BAA2B,CAAA;AAEpE,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,wBAAwB,CAAA;AAE9D,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,2BAA2B,CAAA;AAEpE,OAAO,EACL,OAAO,IAAI,QAAQ,EACnB,cAAc,EACd,YAAY,EACZ,YAAY,GACb,MAAM,sBAAsB,CAAA;AAO7B,OAAO,EAAE,OAAO,IAAI,IAAI,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAA;AAM1E,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,wBAAwB,CAAA;AAE9D,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,wBAAwB,CAAA;AAE9D,OAAO,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import React, { type ReactNode, type HTMLAttributes } from 'react';
|
|
2
|
+
export interface ModalFooterProps extends HTMLAttributes<HTMLDivElement> {
|
|
3
|
+
/**
|
|
4
|
+
* Children or function as a children
|
|
5
|
+
*/
|
|
6
|
+
children: ReactNode;
|
|
7
|
+
/**
|
|
8
|
+
* Layout direction. Default is `horizontal`.
|
|
9
|
+
*/
|
|
10
|
+
direction?: 'horizontal' | 'vertical';
|
|
11
|
+
/**
|
|
12
|
+
* Allows wrapping. Default is `true`
|
|
13
|
+
*/
|
|
14
|
+
wrap?: boolean;
|
|
15
|
+
}
|
|
16
|
+
declare const ModalFooter: ({ children, direction, wrap, ...otherProps }: ModalFooterProps) => React.JSX.Element;
|
|
17
|
+
export default ModalFooter;
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
const ModalFooter = ({ children, direction = 'horizontal', wrap = true, ...otherProps }) => (React.createElement("div", { "data-fs-modal-footer": true, ...otherProps },
|
|
3
|
+
React.createElement("div", { "data-fs-modal-footer-actions": true, "data-fs-modal-footer-actions-direction": direction, "data-fs-modal-footer-actions-wrap": wrap }, children)));
|
|
4
|
+
export default ModalFooter;
|
|
5
|
+
//# sourceMappingURL=ModalFooter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ModalFooter.js","sourceRoot":"","sources":["../../../../src/molecules/Modal/ModalFooter.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA8C,MAAM,OAAO,CAAA;AAiBlE,MAAM,WAAW,GAAG,CAAC,EACnB,QAAQ,EACR,SAAS,GAAG,YAAY,EACxB,IAAI,GAAG,IAAI,EACX,GAAG,UAAU,EACI,EAAE,EAAE,CAAC,CACtB,8DAA8B,UAAU;IACtC,6GAE0C,SAAS,uCACd,IAAI,IAEtC,QAAQ,CACL,CACF,CACP,CAAA;AAED,eAAe,WAAW,CAAA"}
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
export { default } from './Modal';
|
|
2
2
|
export { default as ModalHeader } from './ModalHeader';
|
|
3
|
+
export { default as ModalFooter } from './ModalFooter';
|
|
3
4
|
export { default as ModalBody } from './ModalBody';
|
|
4
5
|
export type { ModalProps } from './Modal';
|
|
5
6
|
export type { ModalHeaderProps } from './ModalHeader';
|
|
7
|
+
export type { ModalFooterProps } from './ModalFooter';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/molecules/Modal/index.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAA;AACjC,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,eAAe,CAAA;AACtD,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,aAAa,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/molecules/Modal/index.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAA;AACjC,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,eAAe,CAAA;AACtD,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,eAAe,CAAA;AACtD,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,aAAa,CAAA"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import React, { type ReactNode, type HTMLAttributes } from 'react';
|
|
2
|
+
/**
|
|
3
|
+
* Specifies tooltip position.
|
|
4
|
+
*/
|
|
5
|
+
export type Side = 'top' | 'right' | 'bottom' | 'left';
|
|
6
|
+
/**
|
|
7
|
+
* Specifies tooltip alignment.
|
|
8
|
+
*/
|
|
9
|
+
export type Alignment = 'start' | 'center' | 'end';
|
|
10
|
+
/**
|
|
11
|
+
* Combines side + alignment (e.g., "top-start").
|
|
12
|
+
*/
|
|
13
|
+
export type Placement = `${Side}-${Alignment}`;
|
|
14
|
+
export interface TooltipProps extends Omit<HTMLAttributes<HTMLDivElement>, 'content'> {
|
|
15
|
+
/**
|
|
16
|
+
* Text/content of the tooltip.
|
|
17
|
+
*/
|
|
18
|
+
content: ReactNode;
|
|
19
|
+
/**
|
|
20
|
+
* Defines the side or side-alignment (e.g., "top-center", "right-end") of the tooltip.
|
|
21
|
+
*/
|
|
22
|
+
placement?: Placement;
|
|
23
|
+
/**
|
|
24
|
+
* If the tooltip can be closed by a button.
|
|
25
|
+
*/
|
|
26
|
+
dismissible?: boolean;
|
|
27
|
+
/**
|
|
28
|
+
* Called when the dismiss button is clicked.
|
|
29
|
+
*/
|
|
30
|
+
onDismiss?: (ev: React.KeyboardEvent<HTMLDivElement> | React.MouseEvent<HTMLButtonElement>) => void;
|
|
31
|
+
/**
|
|
32
|
+
* Element that activates the tooltip on hover/focus.
|
|
33
|
+
*/
|
|
34
|
+
children: ReactNode;
|
|
35
|
+
/**
|
|
36
|
+
* ID to find this component in testing tools (e.g.: cypress, testing library, and jest).
|
|
37
|
+
*/
|
|
38
|
+
testId?: string;
|
|
39
|
+
/**
|
|
40
|
+
* Maximum width of the tooltip.
|
|
41
|
+
*/
|
|
42
|
+
maxWidth?: number;
|
|
43
|
+
/**
|
|
44
|
+
* ID for the tooltip content to be used with aria-describedby.
|
|
45
|
+
*/
|
|
46
|
+
describedById?: string;
|
|
47
|
+
}
|
|
48
|
+
declare const Tooltip: React.ForwardRefExoticComponent<TooltipProps & React.RefAttributes<HTMLDivElement>>;
|
|
49
|
+
export default Tooltip;
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import React, { useState, forwardRef, useRef, useEffect, } from 'react';
|
|
2
|
+
import Icon from '../../atoms/Icon';
|
|
3
|
+
import IconButton from '../IconButton';
|
|
4
|
+
const Tooltip = forwardRef(function Tooltip({ content, placement = 'top-center', dismissible = false, onDismiss, children, testId = 'fs-tooltip', maxWidth = 300, describedById = 'tooltip-content', ...otherProps }, ref) {
|
|
5
|
+
const [open, setOpen] = useState(false);
|
|
6
|
+
const [dismissed, setDismissed] = useState(false);
|
|
7
|
+
const dismissButtonRef = useRef(null);
|
|
8
|
+
const triggerRef = useRef(null);
|
|
9
|
+
const handleDismiss = (ev) => {
|
|
10
|
+
onDismiss?.(ev);
|
|
11
|
+
setOpen(false);
|
|
12
|
+
setDismissed(true);
|
|
13
|
+
};
|
|
14
|
+
const toggleOpen = () => {
|
|
15
|
+
if (dismissed) {
|
|
16
|
+
setDismissed(false);
|
|
17
|
+
}
|
|
18
|
+
setOpen(true);
|
|
19
|
+
};
|
|
20
|
+
const handleKeyDown = (event) => {
|
|
21
|
+
if (event.key === 'Escape') {
|
|
22
|
+
handleDismiss(event);
|
|
23
|
+
}
|
|
24
|
+
};
|
|
25
|
+
useEffect(() => {
|
|
26
|
+
if (open && dismissible) {
|
|
27
|
+
dismissButtonRef.current?.focus();
|
|
28
|
+
}
|
|
29
|
+
}, [open, dismissible]);
|
|
30
|
+
return (React.createElement("div", { "data-fs-tooltip": true, onMouseEnter: toggleOpen, onMouseLeave: () => setOpen(false), onFocus: toggleOpen, onBlur: () => setOpen(false), "data-testid": testId, "aria-describedby": describedById, onKeyDown: handleKeyDown, tabIndex: 0, ref: triggerRef },
|
|
31
|
+
children,
|
|
32
|
+
open && !dismissed && (React.createElement("div", { ref: ref, "data-fs-tooltip-wrapper": true, "data-fs-tooltip-placement": placement, "data-fs-tooltip-dismissible": dismissible, role: "tooltip", onKeyDown: handleKeyDown, style: { maxWidth }, ...otherProps },
|
|
33
|
+
React.createElement("div", { "data-fs-tooltip-content": true, id: describedById }, content),
|
|
34
|
+
dismissible && (React.createElement(IconButton, { size: "small", variant: "tertiary", inverse: true, icon: React.createElement(Icon, { name: "X", width: 20, height: 20 }), "aria-label": "Dismiss tooltip", "data-fs-tooltip-dismiss-button": true, onClick: handleDismiss, ref: dismissButtonRef })),
|
|
35
|
+
React.createElement("div", { "data-fs-tooltip-indicator": true, "aria-hidden": "true" })))));
|
|
36
|
+
});
|
|
37
|
+
export default Tooltip;
|
|
38
|
+
//# sourceMappingURL=Tooltip.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Tooltip.js","sourceRoot":"","sources":["../../../../src/molecules/Tooltip/Tooltip.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAEZ,QAAQ,EACR,UAAU,EAEV,MAAM,EACN,SAAS,GACV,MAAM,OAAO,CAAA;AACd,OAAO,IAAI,MAAM,kBAAkB,CAAA;AACnC,OAAO,UAAU,MAAM,eAAe,CAAA;AAyDtC,MAAM,OAAO,GAAG,UAAU,CAA+B,SAAS,OAAO,CACvE,EACE,OAAO,EACP,SAAS,GAAG,YAAY,EACxB,WAAW,GAAG,KAAK,EACnB,SAAS,EACT,QAAQ,EACR,MAAM,GAAG,YAAY,EACrB,QAAQ,GAAG,GAAG,EACd,aAAa,GAAG,iBAAiB,EACjC,GAAG,UAAU,EACd,EACD,GAAG;IAEH,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAA;IACvC,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAA;IACjD,MAAM,gBAAgB,GAAG,MAAM,CAAoB,IAAI,CAAC,CAAA;IACxD,MAAM,UAAU,GAAG,MAAM,CAAiB,IAAI,CAAC,CAAA;IAE/C,MAAM,aAAa,GAAG,CACpB,EAEuC,EACvC,EAAE;QACF,SAAS,EAAE,CAAC,EAAE,CAAC,CAAA;QACf,OAAO,CAAC,KAAK,CAAC,CAAA;QACd,YAAY,CAAC,IAAI,CAAC,CAAA;IACpB,CAAC,CAAA;IAED,MAAM,UAAU,GAAG,GAAG,EAAE;QACtB,IAAI,SAAS,EAAE,CAAC;YACd,YAAY,CAAC,KAAK,CAAC,CAAA;QACrB,CAAC;QACD,OAAO,CAAC,IAAI,CAAC,CAAA;IACf,CAAC,CAAA;IAED,MAAM,aAAa,GAAG,CAAC,KAA0C,EAAE,EAAE;QACnE,IAAI,KAAK,CAAC,GAAG,KAAK,QAAQ,EAAE,CAAC;YAC3B,aAAa,CAAC,KAAK,CAAC,CAAA;QACtB,CAAC;IACH,CAAC,CAAA;IAED,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,IAAI,IAAI,WAAW,EAAE,CAAC;YACxB,gBAAgB,CAAC,OAAO,EAAE,KAAK,EAAE,CAAA;QACnC,CAAC;IACH,CAAC,EAAE,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC,CAAA;IAEvB,OAAO,CACL,sDAEE,YAAY,EAAE,UAAU,EACxB,YAAY,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,EAClC,OAAO,EAAE,UAAU,EACnB,MAAM,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,iBACf,MAAM,sBACD,aAAa,EAC/B,SAAS,EAAE,aAAa,EACxB,QAAQ,EAAE,CAAC,EACX,GAAG,EAAE,UAAU;QAEd,QAAQ;QAER,IAAI,IAAI,CAAC,SAAS,IAAI,CACrB,6BACE,GAAG,EAAE,GAAG,gEAEmB,SAAS,iCACP,WAAW,EACxC,IAAI,EAAC,SAAS,EACd,SAAS,EAAE,aAAa,EACxB,KAAK,EAAE,EAAE,QAAQ,EAAE,KACf,UAAU;YAEd,8DAA6B,EAAE,EAAE,aAAa,IAC3C,OAAO,CACJ;YACL,WAAW,IAAI,CACd,oBAAC,UAAU,IACT,IAAI,EAAC,OAAO,EACZ,OAAO,EAAC,UAAU,EAClB,OAAO,QACP,IAAI,EAAE,oBAAC,IAAI,IAAC,IAAI,EAAC,GAAG,EAAC,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,GAAI,gBACnC,iBAAiB,0CAE5B,OAAO,EAAE,aAAa,EACtB,GAAG,EAAE,gBAAgB,GACrB,CACH;YACD,+EAA2C,MAAM,GAAG,CAChD,CACP,CACG,CACP,CAAA;AACH,CAAC,CAAC,CAAA;AAEF,eAAe,OAAO,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/molecules/Tooltip/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@faststore/components",
|
|
3
|
-
"version": "3.
|
|
3
|
+
"version": "3.20.0",
|
|
4
4
|
"main": "dist/cjs/index.js",
|
|
5
5
|
"module": "dist/esm/index.js",
|
|
6
6
|
"typings": "dist/esm/index.d.ts",
|
|
@@ -56,5 +56,5 @@
|
|
|
56
56
|
"volta": {
|
|
57
57
|
"extends": "../../package.json"
|
|
58
58
|
},
|
|
59
|
-
"gitHead": "
|
|
59
|
+
"gitHead": "f7dd89e672e1ad4bb9a425a5d94463513781741c"
|
|
60
60
|
}
|
package/src/index.ts
CHANGED
|
@@ -110,7 +110,12 @@ export { default as InputField } from './molecules/InputField'
|
|
|
110
110
|
export type { InputFieldProps } from './molecules/InputField'
|
|
111
111
|
export { default as LinkButton } from './molecules/LinkButton'
|
|
112
112
|
export type { LinkButtonProps } from './molecules/LinkButton'
|
|
113
|
-
export {
|
|
113
|
+
export {
|
|
114
|
+
default as Modal,
|
|
115
|
+
ModalHeader,
|
|
116
|
+
ModalBody,
|
|
117
|
+
ModalFooter,
|
|
118
|
+
} from './molecules/Modal'
|
|
114
119
|
export type { ModalProps, ModalHeaderProps } from './molecules/Modal'
|
|
115
120
|
export {
|
|
116
121
|
default as NavbarLinks,
|
|
@@ -148,6 +153,8 @@ export { default as RatingField } from './molecules/RatingField'
|
|
|
148
153
|
export type { RatingFieldProps } from './molecules/RatingField'
|
|
149
154
|
export { default as RegionBar } from './molecules/RegionBar'
|
|
150
155
|
export type { RegionBarProps } from './molecules/RegionBar'
|
|
156
|
+
export { default as Tooltip } from './molecules/Tooltip'
|
|
157
|
+
export type { TooltipProps } from './molecules/Tooltip'
|
|
151
158
|
|
|
152
159
|
export { default as SearchProvider } from './molecules/SearchProvider'
|
|
153
160
|
export type { SearchProviderContextValue } from './molecules/SearchProvider'
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import React, { type ReactNode, type HTMLAttributes } from 'react'
|
|
2
|
+
|
|
3
|
+
export interface ModalFooterProps extends HTMLAttributes<HTMLDivElement> {
|
|
4
|
+
/**
|
|
5
|
+
* Children or function as a children
|
|
6
|
+
*/
|
|
7
|
+
children: ReactNode
|
|
8
|
+
/**
|
|
9
|
+
* Layout direction. Default is `horizontal`.
|
|
10
|
+
*/
|
|
11
|
+
direction?: 'horizontal' | 'vertical'
|
|
12
|
+
/**
|
|
13
|
+
* Allows wrapping. Default is `true`
|
|
14
|
+
*/
|
|
15
|
+
wrap?: boolean
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
const ModalFooter = ({
|
|
19
|
+
children,
|
|
20
|
+
direction = 'horizontal',
|
|
21
|
+
wrap = true,
|
|
22
|
+
...otherProps
|
|
23
|
+
}: ModalFooterProps) => (
|
|
24
|
+
<div data-fs-modal-footer {...otherProps}>
|
|
25
|
+
<div
|
|
26
|
+
data-fs-modal-footer-actions
|
|
27
|
+
data-fs-modal-footer-actions-direction={direction}
|
|
28
|
+
data-fs-modal-footer-actions-wrap={wrap}
|
|
29
|
+
>
|
|
30
|
+
{children}
|
|
31
|
+
</div>
|
|
32
|
+
</div>
|
|
33
|
+
)
|
|
34
|
+
|
|
35
|
+
export default ModalFooter
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
export { default } from './Modal'
|
|
2
2
|
export { default as ModalHeader } from './ModalHeader'
|
|
3
|
+
export { default as ModalFooter } from './ModalFooter'
|
|
3
4
|
export { default as ModalBody } from './ModalBody'
|
|
4
5
|
export type { ModalProps } from './Modal'
|
|
5
6
|
export type { ModalHeaderProps } from './ModalHeader'
|
|
7
|
+
export type { ModalFooterProps } from './ModalFooter'
|
|
@@ -0,0 +1,163 @@
|
|
|
1
|
+
import React, {
|
|
2
|
+
type ReactNode,
|
|
3
|
+
useState,
|
|
4
|
+
forwardRef,
|
|
5
|
+
type HTMLAttributes,
|
|
6
|
+
useRef,
|
|
7
|
+
useEffect,
|
|
8
|
+
} from 'react'
|
|
9
|
+
import Icon from '../../atoms/Icon'
|
|
10
|
+
import IconButton from '../IconButton'
|
|
11
|
+
|
|
12
|
+
/**
|
|
13
|
+
* Specifies tooltip position.
|
|
14
|
+
*/
|
|
15
|
+
export type Side = 'top' | 'right' | 'bottom' | 'left'
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* Specifies tooltip alignment.
|
|
19
|
+
*/
|
|
20
|
+
export type Alignment = 'start' | 'center' | 'end'
|
|
21
|
+
|
|
22
|
+
/**
|
|
23
|
+
* Combines side + alignment (e.g., "top-start").
|
|
24
|
+
*/
|
|
25
|
+
export type Placement = `${Side}-${Alignment}`
|
|
26
|
+
|
|
27
|
+
export interface TooltipProps
|
|
28
|
+
extends Omit<HTMLAttributes<HTMLDivElement>, 'content'> {
|
|
29
|
+
/**
|
|
30
|
+
* Text/content of the tooltip.
|
|
31
|
+
*/
|
|
32
|
+
content: ReactNode
|
|
33
|
+
/**
|
|
34
|
+
* Defines the side or side-alignment (e.g., "top-center", "right-end") of the tooltip.
|
|
35
|
+
*/
|
|
36
|
+
placement?: Placement
|
|
37
|
+
/**
|
|
38
|
+
* If the tooltip can be closed by a button.
|
|
39
|
+
*/
|
|
40
|
+
dismissible?: boolean
|
|
41
|
+
/**
|
|
42
|
+
* Called when the dismiss button is clicked.
|
|
43
|
+
*/
|
|
44
|
+
onDismiss?: (
|
|
45
|
+
ev:
|
|
46
|
+
| React.KeyboardEvent<HTMLDivElement>
|
|
47
|
+
| React.MouseEvent<HTMLButtonElement>
|
|
48
|
+
) => void
|
|
49
|
+
/**
|
|
50
|
+
* Element that activates the tooltip on hover/focus.
|
|
51
|
+
*/
|
|
52
|
+
children: ReactNode
|
|
53
|
+
/**
|
|
54
|
+
* ID to find this component in testing tools (e.g.: cypress, testing library, and jest).
|
|
55
|
+
*/
|
|
56
|
+
testId?: string
|
|
57
|
+
/**
|
|
58
|
+
* Maximum width of the tooltip.
|
|
59
|
+
*/
|
|
60
|
+
maxWidth?: number
|
|
61
|
+
/**
|
|
62
|
+
* ID for the tooltip content to be used with aria-describedby.
|
|
63
|
+
*/
|
|
64
|
+
describedById?: string
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
const Tooltip = forwardRef<HTMLDivElement, TooltipProps>(function Tooltip(
|
|
68
|
+
{
|
|
69
|
+
content,
|
|
70
|
+
placement = 'top-center',
|
|
71
|
+
dismissible = false,
|
|
72
|
+
onDismiss,
|
|
73
|
+
children,
|
|
74
|
+
testId = 'fs-tooltip',
|
|
75
|
+
maxWidth = 300,
|
|
76
|
+
describedById = 'tooltip-content',
|
|
77
|
+
...otherProps
|
|
78
|
+
},
|
|
79
|
+
ref
|
|
80
|
+
) {
|
|
81
|
+
const [open, setOpen] = useState(false)
|
|
82
|
+
const [dismissed, setDismissed] = useState(false)
|
|
83
|
+
const dismissButtonRef = useRef<HTMLButtonElement>(null)
|
|
84
|
+
const triggerRef = useRef<HTMLDivElement>(null)
|
|
85
|
+
|
|
86
|
+
const handleDismiss = (
|
|
87
|
+
ev:
|
|
88
|
+
| React.KeyboardEvent<HTMLDivElement>
|
|
89
|
+
| React.MouseEvent<HTMLButtonElement>
|
|
90
|
+
) => {
|
|
91
|
+
onDismiss?.(ev)
|
|
92
|
+
setOpen(false)
|
|
93
|
+
setDismissed(true)
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
const toggleOpen = () => {
|
|
97
|
+
if (dismissed) {
|
|
98
|
+
setDismissed(false)
|
|
99
|
+
}
|
|
100
|
+
setOpen(true)
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
const handleKeyDown = (event: React.KeyboardEvent<HTMLDivElement>) => {
|
|
104
|
+
if (event.key === 'Escape') {
|
|
105
|
+
handleDismiss(event)
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
useEffect(() => {
|
|
110
|
+
if (open && dismissible) {
|
|
111
|
+
dismissButtonRef.current?.focus()
|
|
112
|
+
}
|
|
113
|
+
}, [open, dismissible])
|
|
114
|
+
|
|
115
|
+
return (
|
|
116
|
+
<div
|
|
117
|
+
data-fs-tooltip
|
|
118
|
+
onMouseEnter={toggleOpen}
|
|
119
|
+
onMouseLeave={() => setOpen(false)}
|
|
120
|
+
onFocus={toggleOpen}
|
|
121
|
+
onBlur={() => setOpen(false)}
|
|
122
|
+
data-testid={testId}
|
|
123
|
+
aria-describedby={describedById}
|
|
124
|
+
onKeyDown={handleKeyDown}
|
|
125
|
+
tabIndex={0}
|
|
126
|
+
ref={triggerRef}
|
|
127
|
+
>
|
|
128
|
+
{children}
|
|
129
|
+
|
|
130
|
+
{open && !dismissed && (
|
|
131
|
+
<div
|
|
132
|
+
ref={ref}
|
|
133
|
+
data-fs-tooltip-wrapper
|
|
134
|
+
data-fs-tooltip-placement={placement}
|
|
135
|
+
data-fs-tooltip-dismissible={dismissible}
|
|
136
|
+
role="tooltip"
|
|
137
|
+
onKeyDown={handleKeyDown}
|
|
138
|
+
style={{ maxWidth }}
|
|
139
|
+
{...otherProps}
|
|
140
|
+
>
|
|
141
|
+
<div data-fs-tooltip-content id={describedById}>
|
|
142
|
+
{content}
|
|
143
|
+
</div>
|
|
144
|
+
{dismissible && (
|
|
145
|
+
<IconButton
|
|
146
|
+
size="small"
|
|
147
|
+
variant="tertiary"
|
|
148
|
+
inverse
|
|
149
|
+
icon={<Icon name="X" width={20} height={20} />}
|
|
150
|
+
aria-label="Dismiss tooltip"
|
|
151
|
+
data-fs-tooltip-dismiss-button
|
|
152
|
+
onClick={handleDismiss}
|
|
153
|
+
ref={dismissButtonRef}
|
|
154
|
+
/>
|
|
155
|
+
)}
|
|
156
|
+
<div data-fs-tooltip-indicator aria-hidden="true" />
|
|
157
|
+
</div>
|
|
158
|
+
)}
|
|
159
|
+
</div>
|
|
160
|
+
)
|
|
161
|
+
})
|
|
162
|
+
|
|
163
|
+
export default Tooltip
|