phx-react 1.3.1837 → 1.3.1839

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 (73) hide show
  1. package/dist/cjs/components/Modal/Modal.d.ts +1 -1
  2. package/dist/cjs/components/Modal/Modal.js +53 -19
  3. package/dist/cjs/components/Modal/Modal.js.map +1 -1
  4. package/dist/cjs/components/Onboarding/contexts/onboarding-context.d.ts +63 -0
  5. package/dist/cjs/components/Onboarding/contexts/onboarding-context.js +282 -0
  6. package/dist/cjs/components/Onboarding/contexts/onboarding-context.js.map +1 -0
  7. package/dist/cjs/components/Onboarding/contexts/style.d.ts +1 -0
  8. package/dist/cjs/components/Onboarding/contexts/style.js +77 -0
  9. package/dist/cjs/components/Onboarding/contexts/style.js.map +1 -0
  10. package/dist/cjs/components/Onboarding/hooks/use-onboarding-init.d.ts +7 -0
  11. package/dist/cjs/components/Onboarding/hooks/use-onboarding-init.js +19 -0
  12. package/dist/cjs/components/Onboarding/hooks/use-onboarding-init.js.map +1 -0
  13. package/dist/cjs/components/Onboarding/index.d.ts +3 -0
  14. package/dist/cjs/components/Onboarding/index.js +7 -0
  15. package/dist/cjs/components/Onboarding/index.js.map +1 -0
  16. package/dist/cjs/components/Onboarding/modal-slides/modal-slides.d.ts +10 -0
  17. package/dist/cjs/components/Onboarding/modal-slides/modal-slides.js +59 -0
  18. package/dist/cjs/components/Onboarding/modal-slides/modal-slides.js.map +1 -0
  19. package/dist/cjs/components/Onboarding/onbroading-demo.d.ts +9 -0
  20. package/dist/cjs/components/Onboarding/onbroading-demo.js +208 -0
  21. package/dist/cjs/components/Onboarding/onbroading-demo.js.map +1 -0
  22. package/dist/cjs/components/Slider/index.d.ts +2 -0
  23. package/dist/cjs/components/Slider/index.js +6 -0
  24. package/dist/cjs/components/Slider/index.js.map +1 -0
  25. package/dist/cjs/components/Slider/phx-slider-item.d.ts +6 -0
  26. package/dist/cjs/components/Slider/phx-slider-item.js +38 -0
  27. package/dist/cjs/components/Slider/phx-slider-item.js.map +1 -0
  28. package/dist/cjs/components/Slider/phx-slider.d.ts +18 -0
  29. package/dist/cjs/components/Slider/phx-slider.js +168 -0
  30. package/dist/cjs/components/Slider/phx-slider.js.map +1 -0
  31. package/dist/cjs/components/Slider/ultis/create-animate.d.ts +17 -0
  32. package/dist/cjs/components/Slider/ultis/create-animate.js +38 -0
  33. package/dist/cjs/components/Slider/ultis/create-animate.js.map +1 -0
  34. package/dist/cjs/index.d.ts +2 -0
  35. package/dist/cjs/index.js +2 -0
  36. package/dist/cjs/index.js.map +1 -1
  37. package/dist/esm/components/Modal/Modal.d.ts +1 -1
  38. package/dist/esm/components/Modal/Modal.js +54 -20
  39. package/dist/esm/components/Modal/Modal.js.map +1 -1
  40. package/dist/esm/components/Onboarding/contexts/onboarding-context.d.ts +63 -0
  41. package/dist/esm/components/Onboarding/contexts/onboarding-context.js +276 -0
  42. package/dist/esm/components/Onboarding/contexts/onboarding-context.js.map +1 -0
  43. package/dist/esm/components/Onboarding/contexts/style.d.ts +1 -0
  44. package/dist/esm/components/Onboarding/contexts/style.js +74 -0
  45. package/dist/esm/components/Onboarding/contexts/style.js.map +1 -0
  46. package/dist/esm/components/Onboarding/hooks/use-onboarding-init.d.ts +7 -0
  47. package/dist/esm/components/Onboarding/hooks/use-onboarding-init.js +15 -0
  48. package/dist/esm/components/Onboarding/hooks/use-onboarding-init.js.map +1 -0
  49. package/dist/esm/components/Onboarding/index.d.ts +3 -0
  50. package/dist/esm/components/Onboarding/index.js +4 -0
  51. package/dist/esm/components/Onboarding/index.js.map +1 -0
  52. package/dist/esm/components/Onboarding/modal-slides/modal-slides.d.ts +10 -0
  53. package/dist/esm/components/Onboarding/modal-slides/modal-slides.js +54 -0
  54. package/dist/esm/components/Onboarding/modal-slides/modal-slides.js.map +1 -0
  55. package/dist/esm/components/Onboarding/onbroading-demo.d.ts +9 -0
  56. package/dist/esm/components/Onboarding/onbroading-demo.js +203 -0
  57. package/dist/esm/components/Onboarding/onbroading-demo.js.map +1 -0
  58. package/dist/esm/components/Slider/index.d.ts +2 -0
  59. package/dist/esm/components/Slider/index.js +2 -0
  60. package/dist/esm/components/Slider/index.js.map +1 -0
  61. package/dist/esm/components/Slider/phx-slider-item.d.ts +6 -0
  62. package/dist/esm/components/Slider/phx-slider-item.js +33 -0
  63. package/dist/esm/components/Slider/phx-slider-item.js.map +1 -0
  64. package/dist/esm/components/Slider/phx-slider.d.ts +18 -0
  65. package/dist/esm/components/Slider/phx-slider.js +164 -0
  66. package/dist/esm/components/Slider/phx-slider.js.map +1 -0
  67. package/dist/esm/components/Slider/ultis/create-animate.d.ts +17 -0
  68. package/dist/esm/components/Slider/ultis/create-animate.js +34 -0
  69. package/dist/esm/components/Slider/ultis/create-animate.js.map +1 -0
  70. package/dist/esm/index.d.ts +2 -0
  71. package/dist/esm/index.js +2 -0
  72. package/dist/esm/index.js.map +1 -1
  73. package/package.json +2 -1
@@ -45,4 +45,4 @@ export interface ModalProps {
45
45
  headerClassName?: string;
46
46
  theme?: 'WHITE' | 'GRAY';
47
47
  }
48
- export declare const PHXModal: ({ show, title, className, primaryActionText, secondaryActionText, dangerActionText, children, primaryLoading, size, dangerLoading, footerBulkAction, downloadLinkRef, downloadText, primarySubmit, dangerSubmit, hiddenSubmit, hrefLink, isCancel, closeButton, isHeaderDownload, noOverlay, headerContent, onHide, onSubmit, onPrimaryClick, onDangerClick, onCancel, onHeaderAction, type, customWidth, inCard, disableCloseButton, leftActionText, disableLeftAction, loadingLeftAction, onLeftActionText, disableSubmit, dowloadIcon, hiddenCloseButton, disableOutsideClick, customFooter, customHeight, headerClassName, theme, }: ModalProps) => React.JSX.Element;
48
+ export declare const PHXModal: ({ children, className, closeButton, customFooter, customHeight, customWidth, dangerActionText, dangerLoading, dangerSubmit, disableCloseButton, disableLeftAction, disableOutsideClick, disableSubmit, dowloadIcon, downloadLinkRef, downloadText, footerBulkAction, headerClassName, headerContent, hiddenCloseButton, hiddenSubmit, hrefLink, inCard, isCancel, isHeaderDownload, leftActionText, loadingLeftAction, noOverlay, onCancel, onDangerClick, onHeaderAction, onHide, onLeftActionText, onPrimaryClick, onSubmit, primaryActionText, primaryLoading, primarySubmit, secondaryActionText, show, size, theme, title, type, }: ModalProps) => React.JSX.Element;
@@ -15,7 +15,10 @@ var MODAL_THEME;
15
15
  MODAL_THEME["WHITE"] = "WHITE";
16
16
  MODAL_THEME["GRAY"] = "GRAY";
17
17
  })(MODAL_THEME || (MODAL_THEME = {}));
18
- const PHXModal = ({ show, title, className, primaryActionText = 'Xác nhận', secondaryActionText = 'Đóng', dangerActionText, children, primaryLoading, size = 'small', dangerLoading, footerBulkAction, downloadLinkRef, downloadText, primarySubmit, dangerSubmit, hiddenSubmit, hrefLink, isCancel = false, closeButton, isHeaderDownload, noOverlay = false, headerContent, onHide, onSubmit, onPrimaryClick, onDangerClick, onCancel, onHeaderAction, type = 'default', customWidth, inCard = true, disableCloseButton = false, leftActionText, disableLeftAction = false, loadingLeftAction = false, onLeftActionText, disableSubmit = false, dowloadIcon = false, hiddenCloseButton = false, disableOutsideClick, customFooter, customHeight, headerClassName = '', theme = MODAL_THEME.WHITE, }) => {
18
+ const PHXModal = ({ children, className,
19
+ // @ts-ignore
20
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
21
+ closeButton, customFooter, customHeight, customWidth, dangerActionText, dangerLoading, dangerSubmit, disableCloseButton = false, disableLeftAction = false, disableOutsideClick, disableSubmit = false, dowloadIcon = false, downloadLinkRef, downloadText, footerBulkAction, headerClassName = '', headerContent, hiddenCloseButton = false, hiddenSubmit, hrefLink, inCard = true, isCancel = false, isHeaderDownload, leftActionText, loadingLeftAction = false, noOverlay = false, onCancel, onDangerClick, onHeaderAction, onHide, onLeftActionText, onPrimaryClick, onSubmit, primaryActionText = 'Xác nhận', primaryLoading, primarySubmit, secondaryActionText = 'Đóng', show, size = 'small', theme = MODAL_THEME.WHITE, title, type = 'default', }) => {
19
22
  const [open, setOpen] = (0, react_1.useState)(false);
20
23
  const headerText = headerContent ? headerContent : '';
21
24
  const sizeModal = (0, types_1.classNames)(size === 'small' && 'sm:max-w-lg', size === 'medium' && 'sm:max-w-xl', size === 'large' && 'sm:max-w-2xl', size === 'large-plus' && 'sm:max-w-2xl lg:max-w-4xl', size === 'extra-large' && 'w-[90vw] max-w-[95vw] sm:max-w-3xl md:max-w-4xl lg:max-w-5xl xl:max-w-7xl');
@@ -44,7 +47,16 @@ const PHXModal = ({ show, title, className, primaryActionText = 'Xác nhận', s
44
47
  onHide();
45
48
  }
46
49
  };
47
- const Card = () => (react_1.default.createElement(Card_1.PHXCard, { footerBulkAction: footerBulkAction, dowloadIcon: dowloadIcon, primaryHeader: true, title: title, headerAction: { content: closeButton ? 'close' : headerText, onClick: handleClickCloseAction }, secondaryFooterActions: !hiddenCloseButton ? [{ content: secondaryActionText, onClick: onClose }] : undefined, type: 'modal', downloadLinkRef: downloadLinkRef, downloadText: downloadText, fullSize: type === 'no-padding', hrefLink: hrefLink, primaryFooterAction: !hiddenSubmit
50
+ const Card = () => (react_1.default.createElement(Card_1.PHXCard, { dangerFooterAction: {
51
+ content: dangerActionText,
52
+ loading: dangerLoading,
53
+ onClick: onDangerClick,
54
+ submit: dangerSubmit,
55
+ disabled: disableSubmit,
56
+ }, dowloadIcon: dowloadIcon, downloadLinkRef: downloadLinkRef, downloadText: downloadText, footerBulkAction: footerBulkAction, fullSize: type === 'no-padding', headerAction: {
57
+ content: headerText || 'close',
58
+ onClick: handleClickCloseAction,
59
+ }, hrefLink: hrefLink, isHeaderDownload: isHeaderDownload, primaryFooterAction: !hiddenSubmit
48
60
  ? {
49
61
  content: primaryActionText,
50
62
  loading: primaryLoading,
@@ -52,14 +64,26 @@ const PHXModal = ({ show, title, className, primaryActionText = 'Xác nhận', s
52
64
  submit: primarySubmit,
53
65
  disabled: disableSubmit,
54
66
  }
55
- : {}, dangerFooterAction: {
56
- content: dangerActionText,
57
- loading: dangerLoading,
58
- onClick: onDangerClick,
59
- submit: dangerSubmit,
60
- disabled: disableSubmit,
61
- }, isHeaderDownload: isHeaderDownload },
67
+ : {}, primaryHeader: true, secondaryFooterActions: !hiddenCloseButton ? [{ content: secondaryActionText, onClick: onClose }] : undefined, title: title, type: 'modal' },
62
68
  react_1.default.createElement("div", { className: type !== 'no-padding' ? '-mt-1' : '' }, children)));
69
+ (0, react_1.useEffect)(() => {
70
+ /**
71
+ * Handles the Escape key press to close the modal.
72
+ * Prevents closing when the close button is disabled.
73
+ *
74
+ * @param event - The keyboard event triggered by the user.
75
+ */
76
+ const handleKeyDown = (event) => {
77
+ if (event.key === 'Escape' && !disableCloseButton) {
78
+ setOpen(false);
79
+ onHide === null || onHide === void 0 ? void 0 : onHide();
80
+ }
81
+ };
82
+ window.addEventListener('keydown', handleKeyDown);
83
+ return () => {
84
+ window.removeEventListener('keydown', handleKeyDown);
85
+ };
86
+ }, [disableCloseButton, show]);
63
87
  return (react_1.default.createElement(react_2.Transition.Root, { as: react_1.Fragment, show: open },
64
88
  react_1.default.createElement(react_2.Dialog, { as: 'div', className: 'relative z-50', onClose: () => {
65
89
  // Chỉ tắt modal này
@@ -70,29 +94,39 @@ const PHXModal = ({ show, title, className, primaryActionText = 'Xác nhận', s
70
94
  onHide === null || onHide === void 0 ? void 0 : onHide();
71
95
  }, static: true },
72
96
  !noOverlay && (react_1.default.createElement(react_2.Transition.Child, { as: react_1.Fragment, enter: 'transform ease-out duration-300 transition', enterFrom: 'translate-y-2 opacity-0 sm:translate-y-0 sm:translate-y-10', enterTo: 'translate-y-0 opacity-100 sm:translate-y-0', leave: 'transition ease-in duration-100', leaveFrom: 'translate-y-0 opacity-100 sm:translate-y-0', leaveTo: 'translate-y-2 opacity-0 sm:translate-y-0 sm:translate-y-10' },
73
- react_1.default.createElement("div", { className: 'fixed inset-0 z-40 transition-opacity bg-gray-500 bg-opacity-75' }))),
97
+ react_1.default.createElement("div", { className: 'fixed inset-0 z-40 bg-gray-500 bg-opacity-75 transition-opacity' }))),
74
98
  react_1.default.createElement("div", { className: `fixed inset-0 z-50 overflow-y-auto ${className || ''}` },
75
- react_1.default.createElement("div", { className: 'flex items-center justify-center min-h-full p-4 text-center sm:items-center sm:p-0' },
99
+ react_1.default.createElement("div", { className: 'flex min-h-full items-center justify-center p-4 text-center sm:items-center sm:p-0' },
76
100
  react_1.default.createElement(react_2.Transition.Child, { as: react_1.Fragment, enter: 'transform ease-out duration-300 transition', enterFrom: 'translate-y-2 opacity-0 sm:translate-y-0 sm:translate-y-10', enterTo: 'translate-y-0 opacity-100 sm:translate-y-0', leave: 'transition ease-in duration-100', leaveFrom: 'translate-y-0 opacity-100 sm:translate-y-0', leaveTo: 'translate-y-2 opacity-0 sm:translate-y-0 sm:translate-y-10' },
77
101
  react_1.default.createElement("div", { className: (0, types_1.classNames)('min-w-0 flex-1', customWidth ? customWidth : sizeModal) },
78
102
  react_1.default.createElement(react_2.Dialog.Panel, { className: (0, types_1.classNames)('shadow-xl relative transform rounded-lg text-left transition-all sm:my-24 sm:w-full', theme === MODAL_THEME.GRAY ? 'bg-[#F1F1F1]' : 'bg-white') }, inCard ? (primarySubmit || dangerSubmit ? (react_1.default.createElement("form", { onSubmit: onSubmit },
79
103
  react_1.default.createElement(Card, null))) : (react_1.default.createElement(Card, null))) : (react_1.default.createElement("div", null,
80
104
  react_1.default.createElement("div", { className: (0, types_1.classNames)('flex items-center justify-between rounded-t-lg border-b border-gray-200 p-4 text-sm font-semibold text-gray-900', headerClassName, theme === MODAL_THEME.GRAY ? 'bg-[#F1F1F1]' : 'bg-[#F3F3F3]') },
81
105
  react_1.default.createElement("div", { className: 'flex items-center gap-1' },
82
- isCancel && (react_1.default.createElement("button", { className: 'inline-flex items-center px-2 py-1 text-xs font-bold text-gray-700 bg-transparent rounded-lg hover:bg-gray-200', onClick: onCancel, type: 'button' },
83
- react_1.default.createElement(solid_1.ArrowLeftIcon, { className: 'w-4 h-4' }))),
84
- title)),
85
- react_1.default.createElement("div", { style: { maxHeight: customHeight || '100%' }, className: type === 'default' ? 'p-3 text-xs text-gray-500' : '' }, children),
106
+ isCancel && (react_1.default.createElement("button", { className: 'inline-flex items-center rounded-lg bg-transparent px-2 py-1 text-xs font-bold text-gray-700 hover:bg-gray-200', onClick: onCancel, type: 'button' },
107
+ react_1.default.createElement(solid_1.ArrowLeftIcon, { className: 'h-4 w-4' }))),
108
+ title),
109
+ react_1.default.createElement("button", { className: 'grid grid-cols-1 rounded-md p-0.5 text-gray-400 hover:bg-gray-200 hover:text-gray-500', onClick: () => {
110
+ if (disableCloseButton) {
111
+ return;
112
+ }
113
+ setOpen(false);
114
+ onHide === null || onHide === void 0 ? void 0 : onHide();
115
+ }, type: 'button' },
116
+ react_1.default.createElement(react_1.default.Fragment, null,
117
+ react_1.default.createElement("span", { className: 'sr-only' }, "Close"),
118
+ react_1.default.createElement(solid_1.XMarkIcon, { "aria-hidden": 'true', className: 'h-5 w-5' })))),
119
+ react_1.default.createElement("div", { className: type === 'default' ? 'p-3 text-xs text-gray-500' : '', style: { maxHeight: customHeight || '100%' } }, children),
86
120
  react_1.default.createElement("div", { className: (0, types_1.classNames)('flex items-center justify-between gap-x-3 rounded-b-lg border-t border-gray-200 ', theme === MODAL_THEME.GRAY ? 'bg-[#F1F1F1]' : 'bg-white') }, customFooter ? (customFooter) : (react_1.default.createElement(react_1.default.Fragment, null,
87
- react_1.default.createElement("div", { className: 'flex items-center p-4 pl-5 rounded-t-lg gap-x-3' },
121
+ react_1.default.createElement("div", { className: 'flex items-center gap-x-3 rounded-t-lg p-4 pl-5' },
88
122
  downloadLinkRef && hrefLink && downloadText && (react_1.default.createElement("div", { className: 'group flex items-center gap-x-1' },
89
123
  dowloadIcon && (react_1.default.createElement(outline_1.ArrowDownTrayIcon, { className: 'h-4 w-4 text-link-500 group-hover:text-link-600 group-active:text-link-600', strokeWidth: 2 })),
90
- react_1.default.createElement(link_1.default, { as: 'a', ref: downloadLinkRef, href: hrefLink }, downloadText))),
124
+ react_1.default.createElement(link_1.default, { ref: downloadLinkRef, as: 'a', href: hrefLink }, downloadText))),
91
125
  leftActionText && (react_1.default.createElement("div", { className: 'flex gap-2' },
92
- react_1.default.createElement(Button_1.PHXButton, { className: 'text-sm !text-link-500 !px-0', disabled: disableLeftAction, onClick: onLeftActionText, plain: true }, leftActionText),
126
+ react_1.default.createElement(Button_1.PHXButton, { className: '!px-0 text-sm !text-link-500', disabled: disableLeftAction, onClick: onLeftActionText, plain: true }, leftActionText),
93
127
  loadingLeftAction && react_1.default.createElement(Button_1.PHXButton, { disabled: true, loading: true, plain: true, size: 'micro' }))),
94
128
  footerBulkAction && footerBulkAction.content && (react_1.default.createElement(Button_1.PHXButton, { danger: true, disabled: footerBulkAction.disabled, loading: footerBulkAction.loading, onClick: footerBulkAction.onClick, size: 'micro', submit: !!footerBulkAction.submit }, footerBulkAction.content))),
95
- react_1.default.createElement("div", { className: 'flex justify-end p-4 rounded-t-lg gap-x-3' },
129
+ react_1.default.createElement("div", { className: 'flex justify-end gap-x-3 rounded-t-lg p-4' },
96
130
  react_1.default.createElement(Button_1.PHXButton, { disabled: disableCloseButton, onClick: onHide, secondary: true, size: 'micro' }, secondaryActionText),
97
131
  dangerSubmit && (react_1.default.createElement(Button_1.PHXButton, { danger: true, disabled: disableSubmit, loading: dangerLoading, onClick: onDangerClick, size: 'micro' }, dangerActionText)),
98
132
  !hiddenSubmit && (react_1.default.createElement(Button_1.PHXButton, { disabled: disableSubmit, loading: primaryLoading, onClick: () => onSubmit === null || onSubmit === void 0 ? void 0 : onSubmit(), primary: true, size: 'micro' }, primaryActionText))))))))))))))));
@@ -1 +1 @@
1
- {"version":3,"file":"Modal.js","sourceRoot":"","sources":["../../../../src/components/Modal/Modal.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Modal.js","sourceRoot":"","sources":["../../../../src/components/Modal/Modal.tsx"],"names":[],"mappings":";;;;AAAA,uDAA4D;AAC5D,6CAAsD;AACtD,kCAAiC;AACjC,oCAAqC;AACrC,sCAAqC;AACrC,qDAAoE;AACpE,yDAA+D;AAC/D,gEAAkC;AAiDlC,IAAK,WAGJ;AAHD,WAAK,WAAW;IACd,8BAAe,CAAA;IACf,4BAAa,CAAA;AACf,CAAC,EAHI,WAAW,KAAX,WAAW,QAGf;AACM,MAAM,QAAQ,GAAG,CAAC,EACvB,QAAQ,EACR,SAAS;AACT,aAAa;AACb,6DAA6D;AAC7D,WAAW,EACX,YAAY,EACZ,YAAY,EACZ,WAAW,EACX,gBAAgB,EAChB,aAAa,EACb,YAAY,EACZ,kBAAkB,GAAG,KAAK,EAC1B,iBAAiB,GAAG,KAAK,EACzB,mBAAmB,EACnB,aAAa,GAAG,KAAK,EACrB,WAAW,GAAG,KAAK,EACnB,eAAe,EACf,YAAY,EACZ,gBAAgB,EAChB,eAAe,GAAG,EAAE,EACpB,aAAa,EACb,iBAAiB,GAAG,KAAK,EACzB,YAAY,EACZ,QAAQ,EACR,MAAM,GAAG,IAAI,EACb,QAAQ,GAAG,KAAK,EAChB,gBAAgB,EAChB,cAAc,EACd,iBAAiB,GAAG,KAAK,EACzB,SAAS,GAAG,KAAK,EACjB,QAAQ,EACR,aAAa,EACb,cAAc,EACd,MAAM,EACN,gBAAgB,EAChB,cAAc,EACd,QAAQ,EACR,iBAAiB,GAAG,UAAU,EAC9B,cAAc,EACd,aAAa,EACb,mBAAmB,GAAG,MAAM,EAC5B,IAAI,EACJ,IAAI,GAAG,OAAO,EACd,KAAK,GAAG,WAAW,CAAC,KAAK,EACzB,KAAK,EACL,IAAI,GAAG,SAAS,GACL,EAAE,EAAE;IACf,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,IAAA,gBAAQ,EAAC,KAAK,CAAC,CAAA;IACvC,MAAM,UAAU,GAAG,aAAa,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,CAAA;IAErD,MAAM,SAAS,GAAG,IAAA,kBAAU,EAC1B,IAAI,KAAK,OAAO,IAAI,aAAa,EACjC,IAAI,KAAK,QAAQ,IAAI,aAAa,EAClC,IAAI,KAAK,OAAO,IAAI,cAAc,EAClC,IAAI,KAAK,YAAY,IAAI,2BAA2B,EACpD,IAAI,KAAK,aAAa,IAAI,2EAA2E,CACtG,CAAA;IAED,IAAA,iBAAS,EAAC,GAAG,EAAE;QACb,aAAa;QACb,OAAO,CAAC,IAAI,CAAC,CAAA;IACf,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAA;IAEV,MAAM,sBAAsB,GAAG,GAAG,EAAE;QAClC,IAAI,kBAAkB;YAAE,OAAM,CAAC,+CAA+C;QAC9E,IAAI,cAAc,EAAE,CAAC;YACnB,cAAc,EAAE,CAAA;QAClB,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,KAAK,CAAC,CAAA;YACd,IAAI,MAAM,EAAE,CAAC;gBACX,MAAM,EAAE,CAAA;YACV,CAAC;QACH,CAAC;IACH,CAAC,CAAA;IAED,MAAM,OAAO,GAAG,GAAG,EAAE;QACnB,IAAI,kBAAkB;YAAE,OAAM,CAAC,+CAA+C;QAC9E,OAAO,CAAC,KAAK,CAAC,CAAA;QACd,IAAI,MAAM,EAAE,CAAC;YACX,MAAM,EAAE,CAAA;QACV,CAAC;IACH,CAAC,CAAA;IAED,MAAM,IAAI,GAAG,GAAG,EAAE,CAAC,CACjB,8BAAC,cAAO,IACN,kBAAkB,EAAE;YAClB,OAAO,EAAE,gBAAgB;YACzB,OAAO,EAAE,aAAa;YACtB,OAAO,EAAE,aAAa;YACtB,MAAM,EAAE,YAAY;YACpB,QAAQ,EAAE,aAAa;SACxB,EACD,WAAW,EAAE,WAAW,EACxB,eAAe,EAAE,eAAe,EAChC,YAAY,EAAE,YAAY,EAC1B,gBAAgB,EAAE,gBAAgB,EAClC,QAAQ,EAAE,IAAI,KAAK,YAAY,EAC/B,YAAY,EAAE;YACZ,OAAO,EAAE,UAAU,IAAI,OAAO;YAC9B,OAAO,EAAE,sBAAsB;SAChC,EACD,QAAQ,EAAE,QAAQ,EAClB,gBAAgB,EAAE,gBAAgB,EAClC,mBAAmB,EACjB,CAAC,YAAY;YACX,CAAC,CAAC;gBACE,OAAO,EAAE,iBAAiB;gBAC1B,OAAO,EAAE,cAAc;gBACvB,OAAO,EAAE,cAAc;gBACvB,MAAM,EAAE,aAAa;gBACrB,QAAQ,EAAE,aAAa;aACxB;YACH,CAAC,CAAC,EAAE,EAER,aAAa,QACb,sBAAsB,EAAE,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,mBAAmB,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,EAC7G,KAAK,EAAE,KAAK,EACZ,IAAI,EAAC,OAAO;QAEZ,uCAAK,SAAS,EAAE,IAAI,KAAK,YAAY,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,IAAG,QAAQ,CAAO,CAC9D,CACX,CAAA;IAED,IAAA,iBAAS,EAAC,GAAG,EAAE;QACb;;;;;WAKG;QACH,MAAM,aAAa,GAAG,CAAC,KAAoB,EAAE,EAAE;YAC7C,IAAI,KAAK,CAAC,GAAG,KAAK,QAAQ,IAAI,CAAC,kBAAkB,EAAE,CAAC;gBAClD,OAAO,CAAC,KAAK,CAAC,CAAA;gBACd,MAAM,aAAN,MAAM,uBAAN,MAAM,EAAI,CAAA;YACZ,CAAC;QACH,CAAC,CAAA;QAED,MAAM,CAAC,gBAAgB,CAAC,SAAS,EAAE,aAAa,CAAC,CAAA;QAEjD,OAAO,GAAG,EAAE;YACV,MAAM,CAAC,mBAAmB,CAAC,SAAS,EAAE,aAAa,CAAC,CAAA;QACtD,CAAC,CAAA;IACH,CAAC,EAAE,CAAC,kBAAkB,EAAE,IAAI,CAAC,CAAC,CAAA;IAE9B,OAAO,CACL,8BAAC,kBAAU,CAAC,IAAI,IAAC,EAAE,EAAE,gBAAQ,EAAE,IAAI,EAAE,IAAI;QACvC,8BAAC,cAAM,IACL,EAAE,EAAC,KAAK,EACR,SAAS,EAAC,eAAe,EACzB,OAAO,EAAE,GAAG,EAAE;gBACZ,oBAAoB;gBACpB,IAAI,mBAAmB;oBAAE,OAAM;gBAC/B,IAAI,CAAC,kBAAkB;oBAAE,OAAO,CAAC,KAAK,CAAC,CAAA;gBACvC,MAAM,aAAN,MAAM,uBAAN,MAAM,EAAI,CAAA;YACZ,CAAC,EACD,MAAM;YAGL,CAAC,SAAS,IAAI,CACb,8BAAC,kBAAU,CAAC,KAAK,IACf,EAAE,EAAE,gBAAQ,EACZ,KAAK,EAAC,4CAA4C,EAClD,SAAS,EAAC,4DAA4D,EACtE,OAAO,EAAC,4CAA4C,EACpD,KAAK,EAAC,iCAAiC,EACvC,SAAS,EAAC,4CAA4C,EACtD,OAAO,EAAC,4DAA4D;gBAEpE,uCAAK,SAAS,EAAC,iEAAiE,GAAG,CAClE,CACpB;YACD,uCAAK,SAAS,EAAE,sCAAsC,SAAS,IAAI,EAAE,EAAE;gBACrE,uCAAK,SAAS,EAAC,oFAAoF;oBACjG,8BAAC,kBAAU,CAAC,KAAK,IACf,EAAE,EAAE,gBAAQ,EACZ,KAAK,EAAC,4CAA4C,EAClD,SAAS,EAAC,4DAA4D,EACtE,OAAO,EAAC,4CAA4C,EACpD,KAAK,EAAC,iCAAiC,EACvC,SAAS,EAAC,4CAA4C,EACtD,OAAO,EAAC,4DAA4D;wBAEpE,uCAAK,SAAS,EAAE,IAAA,kBAAU,EAAC,gBAAgB,EAAE,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC;4BACjF,8BAAC,cAAM,CAAC,KAAK,IACX,SAAS,EAAE,IAAA,kBAAU,EACnB,qFAAqF,EACrF,KAAK,KAAK,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,UAAU,CACzD,IAEA,MAAM,CAAC,CAAC,CAAC,CACR,aAAa,IAAI,YAAY,CAAC,CAAC,CAAC,CAC9B,wCAAM,QAAQ,EAAE,QAAQ;gCACtB,8BAAC,IAAI,OAAG,CACH,CACR,CAAC,CAAC,CAAC,CACF,8BAAC,IAAI,OAAG,CACT,CACF,CAAC,CAAC,CAAC,CACF;gCAEE,uCACE,SAAS,EAAE,IAAA,kBAAU,EACnB,kHAAkH,EAClH,eAAe,EACf,KAAK,KAAK,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,cAAc,CAC7D;oCAED,uCAAK,SAAS,EAAC,yBAAyB;wCACrC,QAAQ,IAAI,CACX,0CACE,SAAS,EAAC,gHAAgH,EAC1H,OAAO,EAAE,QAAQ,EACjB,IAAI,EAAC,QAAQ;4CAEb,8BAAC,qBAAa,IAAC,SAAS,EAAC,SAAS,GAAG,CAC9B,CACV;wCACA,KAAK,CACF;oCAEN,0CACE,SAAS,EAAC,uFAAuF,EACjG,OAAO,EAAE,GAAG,EAAE;4CACZ,IAAI,kBAAkB,EAAE,CAAC;gDACvB,OAAM;4CACR,CAAC;4CACD,OAAO,CAAC,KAAK,CAAC,CAAA;4CACd,MAAM,aAAN,MAAM,uBAAN,MAAM,EAAI,CAAA;wCACZ,CAAC,EACD,IAAI,EAAC,QAAQ;wCAEb;4CACE,wCAAM,SAAS,EAAC,SAAS,YAAa;4CACtC,8BAAC,iBAAS,mBAAa,MAAM,EAAC,SAAS,EAAC,SAAS,GAAG,CACnD,CACI,CACL;gCAEN,uCACE,SAAS,EAAE,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,2BAA2B,CAAC,CAAC,CAAC,EAAE,EAChE,KAAK,EAAE,EAAE,SAAS,EAAE,YAAY,IAAI,MAAM,EAAE,IAE3C,QAAQ,CACL;gCAEN,uCACE,SAAS,EAAE,IAAA,kBAAU,EACnB,kFAAkF,EAClF,KAAK,KAAK,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,UAAU,CACzD,IAEA,YAAY,CAAC,CAAC,CAAC,CACd,YAAY,CACb,CAAC,CAAC,CAAC,CACF;oCACE,uCAAK,SAAS,EAAC,iDAAiD;wCAC7D,eAAe,IAAI,QAAQ,IAAI,YAAY,IAAI,CAC9C,uCAAK,SAAS,EAAC,iCAAiC;4CAC7C,WAAW,IAAI,CACd,8BAAC,2BAAiB,IAChB,SAAS,EAAC,4EAA4E,EACtF,WAAW,EAAE,CAAC,GACd,CACH;4CACD,8BAAC,cAAO,IAAC,GAAG,EAAE,eAAe,EAAE,EAAE,EAAC,GAAG,EAAC,IAAI,EAAE,QAAQ,IACjD,YAAY,CACL,CACN,CACP;wCACA,cAAc,IAAI,CACjB,uCAAK,SAAS,EAAC,YAAY;4CACzB,8BAAC,kBAAS,IACR,SAAS,EAAC,8BAA8B,EACxC,QAAQ,EAAE,iBAAiB,EAC3B,OAAO,EAAE,gBAAgB,EACzB,KAAK,UAEJ,cAAc,CACL;4CACX,iBAAiB,IAAI,8BAAC,kBAAS,IAAC,QAAQ,QAAC,OAAO,QAAC,KAAK,QAAC,IAAI,EAAC,OAAO,GAAG,CACnE,CACP;wCACA,gBAAgB,IAAI,gBAAgB,CAAC,OAAO,IAAI,CAC/C,8BAAC,kBAAS,IACR,MAAM,QACN,QAAQ,EAAE,gBAAgB,CAAC,QAAQ,EACnC,OAAO,EAAE,gBAAgB,CAAC,OAAO,EACjC,OAAO,EAAE,gBAAgB,CAAC,OAAO,EACjC,IAAI,EAAC,OAAO,EACZ,MAAM,EAAE,CAAC,CAAC,gBAAgB,CAAC,MAAM,IAEhC,gBAAgB,CAAC,OAAO,CACf,CACb,CACG;oCACN,uCAAK,SAAS,EAAC,2CAA2C;wCACxD,8BAAC,kBAAS,IAAC,QAAQ,EAAE,kBAAkB,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,QAAC,IAAI,EAAC,OAAO,IAC7E,mBAAmB,CACV;wCACX,YAAY,IAAI,CACf,8BAAC,kBAAS,IACR,MAAM,QACN,QAAQ,EAAE,aAAa,EACvB,OAAO,EAAE,aAAa,EACtB,OAAO,EAAE,aAAa,EACtB,IAAI,EAAC,OAAO,IAEX,gBAAgB,CACP,CACb;wCACA,CAAC,YAAY,IAAI,CAChB,8BAAC,kBAAS,IACR,QAAQ,EAAE,aAAa,EACvB,OAAO,EAAE,cAAc,EACvB,OAAO,EAAE,GAAG,EAAE,CAAC,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,EAAI,EAC3B,OAAO,QACP,IAAI,EAAC,OAAO,IAEX,iBAAiB,CACR,CACb,CACG,CACL,CACJ,CACG,CACF,CACP,CACY,CACX,CACW,CACf,CACF,CACC,CACO,CACnB,CAAA;AACH,CAAC,CAAA;AAhVY,QAAA,QAAQ,YAgVpB"}
@@ -0,0 +1,63 @@
1
+ import 'driver.js/dist/driver.css';
2
+ import React from 'react';
3
+ export interface IPHXOnboardingStep {
4
+ element: string;
5
+ popover: {
6
+ title: string;
7
+ description: string;
8
+ side?: 'left' | 'right' | 'top' | 'bottom';
9
+ align?: 'start' | 'center' | 'end';
10
+ };
11
+ }
12
+ export interface IPHXOnboardingSlideStep {
13
+ id: number;
14
+ title?: string;
15
+ description?: string;
16
+ content?: string;
17
+ image: string;
18
+ }
19
+ /**
20
+ * Một flow onboarding có thể có slides, tour steps, hoặc cả hai.
21
+ * - Chỉ slides: hiện modal slides, không có tour
22
+ * - Chỉ tour: chạy driver.js tour trực tiếp
23
+ * - Cả hai: hiện modal slides → nút "Bắt đầu Tour" → chạy tour
24
+ */
25
+ export interface IPHXOnboardingFlow {
26
+ name: string;
27
+ slides?: Array<IPHXOnboardingSlideStep>;
28
+ steps?: Array<IPHXOnboardingStep>;
29
+ }
30
+ export interface IPHXOnboardingStatus {
31
+ slidesCompleted: boolean;
32
+ toursCompleted: boolean;
33
+ }
34
+ export interface IPHXOnboardingContextType {
35
+ currentFlow: string | null;
36
+ isRunning: boolean;
37
+ registerFlow(flow: IPHXOnboardingFlow): void;
38
+ startFlow(flowName: string): void;
39
+ endFlow(): void;
40
+ nextStep(): void;
41
+ previousStep(): void;
42
+ skipFlow(): void;
43
+ resetStatusOnboarding(flowName: string): void;
44
+ isSlidesOpen: boolean;
45
+ closeSlides(): void;
46
+ /**
47
+ * Lưu trạng thái hoàn thành của flow vào localStorage.
48
+ * Mặc định trạng thái chỉ được giữ trong bộ nhớ (in-memory).
49
+ * Gọi hàm này khi muốn persist để không hiện lại lần sau.
50
+ */
51
+ persistFlowStatus(flowName: string): void;
52
+ /**
53
+ * Đọc trạng thái hiện tại của flow từ bộ nhớ.
54
+ */
55
+ getFlowStatus(flowName: string): IPHXOnboardingStatus;
56
+ }
57
+ export declare const PHXOnboardingProvider: React.FC<{
58
+ children: React.ReactNode;
59
+ }>;
60
+ /**
61
+ * Hook để sử dụng context
62
+ */
63
+ export declare const usePHXOnboarding: () => IPHXOnboardingContextType;
@@ -0,0 +1,282 @@
1
+ "use strict";
2
+ 'use client';
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.usePHXOnboarding = exports.PHXOnboardingProvider = void 0;
5
+ const tslib_1 = require("tslib");
6
+ const driver_js_1 = require("driver.js");
7
+ require("driver.js/dist/driver.css");
8
+ const react_1 = tslib_1.__importStar(require("react"));
9
+ const modal_slides_1 = require("../modal-slides/modal-slides");
10
+ const style_1 = require("./style");
11
+ const ONBOARDING_STATUS_KEY = 'phx-onboarding-status';
12
+ const PHXOnboardingContext = (0, react_1.createContext)(undefined);
13
+ const PHXOnboardingProvider = ({ children }) => {
14
+ const [currentFlow, setCurrentFlow] = (0, react_1.useState)(null);
15
+ const [isRunning, setIsRunning] = (0, react_1.useState)(false);
16
+ const [flows, setFlows] = (0, react_1.useState)(new Map());
17
+ const [driverInstance, setDriverInstance] = (0, react_1.useState)(null);
18
+ // Modal slides state
19
+ const [isSlidesOpen, setIsSlidesOpen] = (0, react_1.useState)(false);
20
+ const [activeSlides, setActiveSlides] = (0, react_1.useState)([]);
21
+ const [hasTours, setHasTours] = (0, react_1.useState)(false);
22
+ const [pendingTourFlowName, setPendingTourFlowName] = (0, react_1.useState)(null);
23
+ // In-memory status only — không tự động ghi localStorage
24
+ const [onboardingStatus, setOnboardingStatus] = (0, react_1.useState)({});
25
+ // Đọc trạng thái đã persist từ localStorage khi khởi động
26
+ (0, react_1.useEffect)(() => {
27
+ const saved = localStorage.getItem(ONBOARDING_STATUS_KEY);
28
+ if (saved) {
29
+ try {
30
+ setOnboardingStatus(JSON.parse(saved));
31
+ }
32
+ catch (_a) {
33
+ // ignore parse error
34
+ }
35
+ }
36
+ }, []);
37
+ /**
38
+ * Cập nhật trạng thái trong bộ nhớ (KHÔNG ghi localStorage)
39
+ * @param flowName Tên flow
40
+ * @param patch Trạng thái muốn cập nhật
41
+ */
42
+ const updateStatus = (flowName, patch) => {
43
+ setOnboardingStatus((prev) => {
44
+ var _a;
45
+ const current = (_a = prev[flowName]) !== null && _a !== void 0 ? _a : {
46
+ slidesCompleted: false,
47
+ toursCompleted: false,
48
+ };
49
+ return {
50
+ ...prev,
51
+ [flowName]: { ...current, ...patch },
52
+ };
53
+ });
54
+ };
55
+ /** Lưu trạng thái của flow vào localStorage
56
+ * @param flowName Tên flow
57
+ */
58
+ const persistFlowStatus = (flowName) => {
59
+ setOnboardingStatus((prev) => {
60
+ var _a;
61
+ const status = (_a = prev[flowName]) !== null && _a !== void 0 ? _a : {
62
+ slidesCompleted: false,
63
+ toursCompleted: false,
64
+ };
65
+ const updated = { ...prev, [flowName]: status };
66
+ localStorage.setItem(ONBOARDING_STATUS_KEY, JSON.stringify(updated));
67
+ return updated;
68
+ });
69
+ };
70
+ /**
71
+ * Lấy trạng thái của flow
72
+ * @param flowName Tên flow
73
+ */
74
+ const getFlowStatus = (flowName) => {
75
+ var _a;
76
+ return (_a = onboardingStatus[flowName]) !== null && _a !== void 0 ? _a : {
77
+ slidesCompleted: false,
78
+ toursCompleted: false,
79
+ };
80
+ };
81
+ /**
82
+ * Đăng ký flow
83
+ * @param flow Flow cần đăng ký
84
+ */
85
+ const registerFlow = (flow) => {
86
+ setFlows((prev) => new Map(prev).set(flow.name, flow));
87
+ };
88
+ /**
89
+ * Chạy tour
90
+ * @param flowName Tên flow
91
+ * @param flow Flow cần chạy tour
92
+ */
93
+ const runTour = (flowName, flow) => {
94
+ var _a;
95
+ if (!((_a = flow.steps) === null || _a === void 0 ? void 0 : _a.length))
96
+ return;
97
+ if (driverInstance) {
98
+ driverInstance.destroy();
99
+ }
100
+ /**
101
+ * Tạo driver instance
102
+ */
103
+ const newDriver = (0, driver_js_1.driver)({
104
+ showProgress: true,
105
+ showButtons: ['next', 'previous', 'close'],
106
+ nextBtnText: 'Tiếp theo',
107
+ prevBtnText: 'Quay lại',
108
+ doneBtnText: 'Hoàn tất',
109
+ stageRadius: 12,
110
+ allowClose: true,
111
+ onDestroyed: () => {
112
+ setDriverInstance(null);
113
+ setCurrentFlow(null);
114
+ setIsRunning(false);
115
+ // Chỉ cập nhật in-memory, không tự động persist
116
+ updateStatus(flowName, { toursCompleted: true });
117
+ },
118
+ });
119
+ newDriver.setSteps(flow.steps.map((step) => {
120
+ var _a, _b;
121
+ return ({
122
+ element: step.element,
123
+ popover: {
124
+ title: step.popover.title,
125
+ description: step.popover.description,
126
+ side: (_a = step.popover.side) !== null && _a !== void 0 ? _a : 'bottom',
127
+ align: (_b = step.popover.align) !== null && _b !== void 0 ? _b : 'center',
128
+ },
129
+ });
130
+ }));
131
+ setDriverInstance(newDriver);
132
+ setCurrentFlow(flowName);
133
+ setIsRunning(true);
134
+ newDriver.drive();
135
+ };
136
+ /**
137
+ * Bắt đầu flow
138
+ * @param flowName Tên flow
139
+ */
140
+ const startFlow = (flowName) => {
141
+ var _a, _b;
142
+ const flow = flows.get(flowName);
143
+ if (!flow) {
144
+ console.warn(`[Onboarding] Flow "${flowName}" not registered`);
145
+ return;
146
+ }
147
+ const hasSlides = Boolean((_a = flow.slides) === null || _a === void 0 ? void 0 : _a.length);
148
+ const hasTourSteps = Boolean((_b = flow.steps) === null || _b === void 0 ? void 0 : _b.length);
149
+ const status = getFlowStatus(flowName);
150
+ // Case 1: chỉ có tour (không có slides)
151
+ if (!hasSlides && hasTourSteps) {
152
+ runTour(flowName, flow);
153
+ return;
154
+ }
155
+ // Case 2: chỉ có slides (không có tour)
156
+ if (hasSlides && !hasTourSteps) {
157
+ if (!status.slidesCompleted) {
158
+ setActiveSlides(flow.slides);
159
+ setHasTours(false);
160
+ setPendingTourFlowName(null);
161
+ setCurrentFlow(flowName);
162
+ setIsSlidesOpen(true);
163
+ }
164
+ return;
165
+ }
166
+ // Case 3: cả slides lẫn tour
167
+ if (hasSlides && hasTourSteps) {
168
+ if (!status.slidesCompleted) {
169
+ setActiveSlides(flow.slides);
170
+ setHasTours(true);
171
+ setPendingTourFlowName(flowName);
172
+ setCurrentFlow(flowName);
173
+ setIsSlidesOpen(true);
174
+ }
175
+ else if (!status.toursCompleted) {
176
+ runTour(flowName, flow);
177
+ }
178
+ return;
179
+ }
180
+ console.warn(`[Onboarding] Flow "${flowName}" has no slides or steps`);
181
+ };
182
+ /**
183
+ * Cập nhật trạng thái của flow
184
+ */
185
+ const updateStatusFlow = () => {
186
+ if (currentFlow) {
187
+ // Chỉ cập nhật in-memory, không tự động persist
188
+ updateStatus(currentFlow, { slidesCompleted: true });
189
+ }
190
+ };
191
+ /**
192
+ * Đóng slides
193
+ */
194
+ const closeSlides = () => {
195
+ setIsSlidesOpen(false);
196
+ updateStatusFlow();
197
+ };
198
+ /**
199
+ * Bắt đầu tour từ slides
200
+ */
201
+ const startTourFromSlides = () => {
202
+ setIsSlidesOpen(false);
203
+ updateStatusFlow();
204
+ if (pendingTourFlowName) {
205
+ const flow = flows.get(pendingTourFlowName);
206
+ if (flow) {
207
+ runTour(pendingTourFlowName, flow);
208
+ }
209
+ }
210
+ };
211
+ /**
212
+ * Kết thúc flow
213
+ */
214
+ const endFlow = () => {
215
+ if (driverInstance) {
216
+ driverInstance.destroy();
217
+ setDriverInstance(null);
218
+ }
219
+ setIsRunning(false);
220
+ setCurrentFlow(null);
221
+ };
222
+ /**
223
+ * Chuyển đến bước tiếp theo
224
+ */
225
+ const nextStep = () => {
226
+ driverInstance === null || driverInstance === void 0 ? void 0 : driverInstance.moveNext();
227
+ };
228
+ /**
229
+ * Chuyển đến bước trước đó
230
+ */
231
+ const previousStep = () => {
232
+ driverInstance === null || driverInstance === void 0 ? void 0 : driverInstance.movePrevious();
233
+ };
234
+ /**
235
+ * Bỏ qua flow
236
+ */
237
+ const skipFlow = () => {
238
+ endFlow();
239
+ };
240
+ /**
241
+ * Reset trạng thái của flow
242
+ * @param flowName Tên flow
243
+ */
244
+ const resetStatusOnboarding = (flowName) => {
245
+ updateStatus(flowName, {
246
+ slidesCompleted: false,
247
+ toursCompleted: false,
248
+ });
249
+ };
250
+ const value = {
251
+ currentFlow,
252
+ isRunning,
253
+ registerFlow,
254
+ startFlow,
255
+ endFlow,
256
+ nextStep,
257
+ previousStep,
258
+ skipFlow,
259
+ isSlidesOpen,
260
+ closeSlides,
261
+ persistFlowStatus,
262
+ getFlowStatus,
263
+ resetStatusOnboarding,
264
+ };
265
+ return (react_1.default.createElement(PHXOnboardingContext.Provider, { value: value },
266
+ react_1.default.createElement("style", { dangerouslySetInnerHTML: { __html: style_1.styleOnboarding } }),
267
+ children,
268
+ react_1.default.createElement(modal_slides_1.PHXOnboardingModal, { hasTours: hasTours, onHide: closeSlides, onStartTour: startTourFromSlides, show: isSlidesOpen, slides: activeSlides })));
269
+ };
270
+ exports.PHXOnboardingProvider = PHXOnboardingProvider;
271
+ /**
272
+ * Hook để sử dụng context
273
+ */
274
+ const usePHXOnboarding = () => {
275
+ const context = (0, react_1.useContext)(PHXOnboardingContext);
276
+ if (!context) {
277
+ throw new Error('useOnboarding must be used within OnboardingProvider');
278
+ }
279
+ return context;
280
+ };
281
+ exports.usePHXOnboarding = usePHXOnboarding;
282
+ //# sourceMappingURL=onboarding-context.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"onboarding-context.js","sourceRoot":"","sources":["../../../../../src/components/Onboarding/contexts/onboarding-context.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export declare const styleOnboarding = "\n.driver-popover-footer button {\n all: unset;\n display: flex;\n justify-content: center;\n align-items: center;\n box-sizing: border-box;\n padding: 6px 12px;\n font-weight: 400 !important;\n text-decoration: none;\n text-shadow: 1px 1px 0 #fff;\n background-color: #fff;\n color: rgb(3 7 18 / 1);\n font-size: 14px;\n line-height: normal;\n font-family: Inter, -apple-system, BlinkMacSystemFont, San Francisco, Segoe UI,\n Roboto, Helvetica Neue, sans-serif;\n cursor: pointer;\n outline: 0;\n border: 1px solid rgb(209 213 219 / 1);\n border-radius: 8px;\n transition-duration: 0.3s;\n transition-property: color, background-color, border-color,\n text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter,\n backdrop-filter;\n --tw-shadow: 0 1px 2px 0 rgb(0 0 0 / 0.05);\n --tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);\n box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000),\n var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);\n}\n\n.driver-popover-footer button:active {\n --tw-shadow: 0rem 0.125rem 0.1rem 0rem #0004 inset;\n --tw-shadow-colored: inset 0rem 0.125rem 0.1rem 0rem var(--tw-shadow-color);\n box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000),\n var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);\n padding-top: 0.3rem;\n padding-bottom: 0.2rem;\n background-color: rgb(229 231 235 / 1);\n border-bottom-color: rgb(209 213 219 / 1);\n transition-timing-function: cubic-bezier(0.4, 0.36, 0, 1);\n}\n.driver-popover {\n font-weight: 400 !important;\n font-size: 14px;\n line-height: normal;\n font-family: Inter, -apple-system, BlinkMacSystemFont, San Francisco, Segoe UI,\n Roboto, Helvetica Neue, sans-serif;\n border-radius: 12px;\n color: #fff;\n background-color: rgb(0 0 0 / 1);\n}\n\n.driver-popover-title {\n font-family: Inter, -apple-system, BlinkMacSystemFont, San Francisco, Segoe UI,\n Roboto, Helvetica Neue, sans-serif;\n}\n.driver-popover .driver-popover-arrow-side-left.driver-popover-arrow {\n border-left-color: rgb(0 0 0 / 1);\n}\n\n.driver-popover .driver-popover-arrow-side-right.driver-popover-arrow {\n border-right-color: rgb(0 0 0 / 1);\n}\n\n.driver-popover .driver-popover-arrow-side-top.driver-popover-arrow {\n border-top-color: rgb(0 0 0 / 1);\n}\n\n.driver-popover .driver-popover-arrow-side-bottom.driver-popover-arrow {\n border-bottom-color: rgb(0 0 0 / 1);\n}\n";
@@ -0,0 +1,77 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.styleOnboarding = void 0;
4
+ exports.styleOnboarding = `
5
+ .driver-popover-footer button {
6
+ all: unset;
7
+ display: flex;
8
+ justify-content: center;
9
+ align-items: center;
10
+ box-sizing: border-box;
11
+ padding: 6px 12px;
12
+ font-weight: 400 !important;
13
+ text-decoration: none;
14
+ text-shadow: 1px 1px 0 #fff;
15
+ background-color: #fff;
16
+ color: rgb(3 7 18 / 1);
17
+ font-size: 14px;
18
+ line-height: normal;
19
+ font-family: Inter, -apple-system, BlinkMacSystemFont, San Francisco, Segoe UI,
20
+ Roboto, Helvetica Neue, sans-serif;
21
+ cursor: pointer;
22
+ outline: 0;
23
+ border: 1px solid rgb(209 213 219 / 1);
24
+ border-radius: 8px;
25
+ transition-duration: 0.3s;
26
+ transition-property: color, background-color, border-color,
27
+ text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter,
28
+ backdrop-filter;
29
+ --tw-shadow: 0 1px 2px 0 rgb(0 0 0 / 0.05);
30
+ --tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);
31
+ box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000),
32
+ var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
33
+ }
34
+
35
+ .driver-popover-footer button:active {
36
+ --tw-shadow: 0rem 0.125rem 0.1rem 0rem #0004 inset;
37
+ --tw-shadow-colored: inset 0rem 0.125rem 0.1rem 0rem var(--tw-shadow-color);
38
+ box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000),
39
+ var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
40
+ padding-top: 0.3rem;
41
+ padding-bottom: 0.2rem;
42
+ background-color: rgb(229 231 235 / 1);
43
+ border-bottom-color: rgb(209 213 219 / 1);
44
+ transition-timing-function: cubic-bezier(0.4, 0.36, 0, 1);
45
+ }
46
+ .driver-popover {
47
+ font-weight: 400 !important;
48
+ font-size: 14px;
49
+ line-height: normal;
50
+ font-family: Inter, -apple-system, BlinkMacSystemFont, San Francisco, Segoe UI,
51
+ Roboto, Helvetica Neue, sans-serif;
52
+ border-radius: 12px;
53
+ color: #fff;
54
+ background-color: rgb(0 0 0 / 1);
55
+ }
56
+
57
+ .driver-popover-title {
58
+ font-family: Inter, -apple-system, BlinkMacSystemFont, San Francisco, Segoe UI,
59
+ Roboto, Helvetica Neue, sans-serif;
60
+ }
61
+ .driver-popover .driver-popover-arrow-side-left.driver-popover-arrow {
62
+ border-left-color: rgb(0 0 0 / 1);
63
+ }
64
+
65
+ .driver-popover .driver-popover-arrow-side-right.driver-popover-arrow {
66
+ border-right-color: rgb(0 0 0 / 1);
67
+ }
68
+
69
+ .driver-popover .driver-popover-arrow-side-top.driver-popover-arrow {
70
+ border-top-color: rgb(0 0 0 / 1);
71
+ }
72
+
73
+ .driver-popover .driver-popover-arrow-side-bottom.driver-popover-arrow {
74
+ border-bottom-color: rgb(0 0 0 / 1);
75
+ }
76
+ `;
77
+ //# sourceMappingURL=style.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"style.js","sourceRoot":"","sources":["../../../../../src/components/Onboarding/contexts/style.tsx"],"names":[],"mappings":";;;AAAa,QAAA,eAAe,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAwE9B,CAAA"}
@@ -0,0 +1,7 @@
1
+ import { IPHXOnboardingFlow } from '../contexts/onboarding-context';
2
+ /**
3
+ * Đăng ký danh sách flows vào OnboardingProvider.
4
+ * Gọi hook này một lần trong component gốc của mỗi module.
5
+ * @param flows Danh sách flows cần đăng ký
6
+ */
7
+ export declare const usePHXOnboardingInit: (flows: Array<IPHXOnboardingFlow>) => void;
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ 'use client';
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.usePHXOnboardingInit = void 0;
5
+ const react_1 = require("react");
6
+ const onboarding_context_1 = require("../contexts/onboarding-context");
7
+ /**
8
+ * Đăng ký danh sách flows vào OnboardingProvider.
9
+ * Gọi hook này một lần trong component gốc của mỗi module.
10
+ * @param flows Danh sách flows cần đăng ký
11
+ */
12
+ const usePHXOnboardingInit = (flows) => {
13
+ const { registerFlow } = (0, onboarding_context_1.usePHXOnboarding)();
14
+ (0, react_1.useEffect)(() => {
15
+ flows.map((flow) => registerFlow(flow));
16
+ }, [registerFlow]);
17
+ };
18
+ exports.usePHXOnboardingInit = usePHXOnboardingInit;
19
+ //# sourceMappingURL=use-onboarding-init.js.map