@axos-web-dev/shared-components 0.0.163 → 0.0.164

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 (188) hide show
  1. package/dist/ATMLocator/ATMLocator.js +35 -35
  2. package/dist/Accordion/Accordion.css.js +4 -4
  3. package/dist/Accordion/Accordion.js +3 -3
  4. package/dist/AlertBanner/AlertBanner.css.js +1 -1
  5. package/dist/AlertBanner/index.js +3 -3
  6. package/dist/Article/Article.css.js +4 -4
  7. package/dist/ArticlesSet/ArticlesSet.css.js +4 -4
  8. package/dist/AwardsBanner/AwardsBanner.css.js +1 -1
  9. package/dist/AwardsItem/AwardsItem.css.js +2 -2
  10. package/dist/BulletItem/BulletItem.css.js +2 -2
  11. package/dist/BulletItem/BulletItem.js +3 -3
  12. package/dist/Button/Button.css.js +4 -4
  13. package/dist/Button/Button.js +35 -35
  14. package/dist/Calculators/AnnualFeeCalculator/AnnualFeeCalculator.css.js +3 -3
  15. package/dist/Calculators/ApyCalculator/ApyCalculator.css.js +3 -3
  16. package/dist/Calculators/AxosOneCalculator/BalanceAPYCalculator.css.js +4 -4
  17. package/dist/Calculators/AxosOneCalculator/index.js +3 -3
  18. package/dist/Calculators/BalanceAPYCalculator/BalanceAPYCalculator.css.js +4 -4
  19. package/dist/Calculators/BalanceAPYCalculator/index.js +3 -3
  20. package/dist/Calculators/Calculator.js +35 -35
  21. package/dist/Calculators/MarginTradingCalculator/MarginTradingCalculator.css.js +1 -1
  22. package/dist/Calculators/MonthlyPaymentCalculator/MonthlyPaymentCalculator.css.js +3 -3
  23. package/dist/Calculators/calculator.css.js +4 -4
  24. package/dist/CallToActionBar/CallToActionBar.css.js +3 -3
  25. package/dist/Carousel/Carousel.css.js +3 -3
  26. package/dist/Carousel/index.js +35 -35
  27. package/dist/Chevron/Chevron.css.js +4 -4
  28. package/dist/Chevron/index.js +35 -35
  29. package/dist/CollectInformationAlert/CollectInformationAlert.css.js +4 -4
  30. package/dist/CollectInformationAlert/index.js +3 -3
  31. package/dist/Comparison/Comparison.css.js +7 -7
  32. package/dist/Comparison/Comparison.js +34 -34
  33. package/dist/ContentBanner/ContentBanner.css.js +4 -4
  34. package/dist/DownloadTile/DownloadTile.css.js +3 -3
  35. package/dist/ExecutiveBio/ExecutiveBio.css.js +4 -4
  36. package/dist/FaqAccordion/FaqAccordion.css.js +4 -4
  37. package/dist/FaqAccordion/index.d.ts +2 -1
  38. package/dist/FaqAccordion/index.js +40 -39
  39. package/dist/FooterDisclosure/FooterDisclosure.css.js +1 -1
  40. package/dist/FooterSiteMap/AxosBank/FooterSiteMap.css.js +2 -2
  41. package/dist/FooterSiteMap/AxosBank/FooterSiteMap.js +34 -34
  42. package/dist/Forms/ApplicationStart.js +4 -4
  43. package/dist/Forms/ClearingForm.js +4 -4
  44. package/dist/Forms/CommercialDeposits.js +4 -4
  45. package/dist/Forms/CommercialLending.js +4 -4
  46. package/dist/Forms/ContactCompany.js +4 -4
  47. package/dist/Forms/ContactUs.js +4 -4
  48. package/dist/Forms/ContactUsAAS.js +4 -4
  49. package/dist/Forms/ContactUsBusiness.js +35 -35
  50. package/dist/Forms/ContactUsNMLSId.js +35 -35
  51. package/dist/Forms/CpraRequest.js +4 -4
  52. package/dist/Forms/DealerServices.js +4 -4
  53. package/dist/Forms/EmailOnly.js +35 -35
  54. package/dist/Forms/EmailUs.js +3 -3
  55. package/dist/Forms/FormEnums.d.ts +8 -1
  56. package/dist/Forms/FormEnums.js +14 -2
  57. package/dist/Forms/Forms.css.js +7 -7
  58. package/dist/Forms/MortgageRate/MortgageRateForm.js +35 -35
  59. package/dist/Forms/MortgageRate/MortgageRateQuoteFilters.js +1 -1
  60. package/dist/Forms/MortgageRate/MortgageRateWatch.js +35 -35
  61. package/dist/Forms/QuickPricer/QuickPricerForm.js +83 -50
  62. package/dist/Forms/QuickPricer/QuickPricerResults.css.js +1 -1
  63. package/dist/Forms/QuickPricer/UserInformation.css.js +3 -3
  64. package/dist/Forms/ScheduleCall.js +4 -4
  65. package/dist/Forms/ScheduleCallPremier.js +4 -4
  66. package/dist/Forms/SuccesForm.js +36 -36
  67. package/dist/Forms/WcplSurvey.js +4 -4
  68. package/dist/HeroBanner/HeroBanner.css.js +5 -5
  69. package/dist/HeroBanner/LargeBanner.css.js +4 -4
  70. package/dist/HeroBanner/SelectionBanner.css.js +4 -4
  71. package/dist/Hyperlink/Hyperlink.css.js +1 -1
  72. package/dist/Hyperlink/index.js +35 -35
  73. package/dist/IconBillboard/IconBillboard.css.js +4 -4
  74. package/dist/ImageBillboard/ImageBillboard.css.js +4 -4
  75. package/dist/ImageBillboard/ImageBillboard.js +3 -3
  76. package/dist/ImageBillboard/ImageBillboardSet.js +3 -3
  77. package/dist/ImageLink/ImageLink.css.js +1 -1
  78. package/dist/ImageLink/ImageLink.js +35 -35
  79. package/dist/ImageLink/ImageLinkSet.js +35 -35
  80. package/dist/ImageLink/index.js +35 -35
  81. package/dist/ImageWrapper/ImageWrapper.d.ts +10 -0
  82. package/dist/ImageWrapper/ImageWrapper.js +7 -0
  83. package/dist/ImageWrapper/index.d.ts +1 -0
  84. package/dist/ImageWrapper/index.js +1 -0
  85. package/dist/Input/Checkbox.css.js +1 -1
  86. package/dist/Input/CurrencyInput.d.ts +2 -2
  87. package/dist/Input/CurrencyInput.js +3 -1
  88. package/dist/Input/DatePicker.css.d.ts +1 -0
  89. package/dist/Input/DatePicker.css.js +6 -0
  90. package/dist/Input/DatePicker2.d.ts +21 -0
  91. package/dist/Input/DatePicker2.js +103 -0
  92. package/dist/Input/DatePickerComponents/DatePicker.d.ts +11 -0
  93. package/dist/Input/DatePickerComponents/DatePicker.js +13 -0
  94. package/dist/Input/DatePickerComponents/InputDate.d.ts +15 -0
  95. package/dist/Input/DatePickerComponents/InputDate.js +66 -0
  96. package/dist/Input/DatePickerComponents/index.d.ts +2 -0
  97. package/dist/Input/DatePickerComponents/index.js +6 -0
  98. package/dist/Input/Datepicker.d.ts +3 -0
  99. package/dist/Input/Datepicker.js +47 -0
  100. package/dist/Input/Dropdown.css.js +2 -2
  101. package/dist/Input/Input.css.js +4 -4
  102. package/dist/Input/InputAmount.js +1 -1
  103. package/dist/Input/InputDate.css.d.ts +6 -0
  104. package/dist/Input/InputDate.css.js +15 -0
  105. package/dist/Input/InputDate.d.ts +3 -0
  106. package/dist/Input/InputDate.js +47 -0
  107. package/dist/Input/InputPhone.js +1 -1
  108. package/dist/Input/InputProps.d.ts +9 -0
  109. package/dist/Input/RadioButton.css.js +1 -1
  110. package/dist/Input/index.d.ts +1 -1
  111. package/dist/Input/index.js +1 -1
  112. package/dist/Inputs/Input.css.js +3 -3
  113. package/dist/Insight/Featured/CategorySelector.css.js +5 -5
  114. package/dist/Insight/Featured/CategorySelector.js +34 -34
  115. package/dist/Insight/Featured/Featured.css.js +2 -2
  116. package/dist/Insight/Featured/Featured.js +36 -36
  117. package/dist/Insight/Featured/Header.css.js +1 -1
  118. package/dist/Insight/Featured/Header.js +34 -34
  119. package/dist/Insight/Insight.css.js +2 -2
  120. package/dist/Interstitial/Interstitial-variants.css.js +4 -4
  121. package/dist/LandingPageHeader/LandingPageHeader.css.js +3 -3
  122. package/dist/LandingPageHeader/LandingPageHeader.js +3 -3
  123. package/dist/LoadingIndicator/LoadingIndicator.css.js +1 -1
  124. package/dist/Modal/Modal.css.js +3 -3
  125. package/dist/Modal/Modal.js +34 -34
  126. package/dist/NavigationMenu/AxosAdvisor/NavBar.css.js +3 -3
  127. package/dist/NavigationMenu/AxosAdvisor/SubNavbar.css.js +3 -3
  128. package/dist/NavigationMenu/AxosAdvisorServices/NavBar.css.js +3 -3
  129. package/dist/NavigationMenu/AxosAdvisorServices/SubNavbar.css.js +3 -3
  130. package/dist/NavigationMenu/AxosBank/NavBar.css.js +3 -3
  131. package/dist/NavigationMenu/AxosBank/NavData.js +35 -35
  132. package/dist/NavigationMenu/AxosBank/SubNavBar.js +34 -34
  133. package/dist/NavigationMenu/AxosBank/SubNavbar.css.js +3 -3
  134. package/dist/NavigationMenu/AxosBank/index.js +33 -33
  135. package/dist/NavigationMenu/AxosClearing/NavBar.css.js +1 -1
  136. package/dist/PageNavItem/PageNavItem.css.js +4 -4
  137. package/dist/PageNavSet/PageNavigationSet.css.js +1 -1
  138. package/dist/Pagination/Pagination.css.js +1 -1
  139. package/dist/Pagination/Pagination.js +3 -3
  140. package/dist/SecondaryFooter/SecondaryFooter.css.js +3 -3
  141. package/dist/SetContainer/SetContainer.css.js +3 -3
  142. package/dist/SetContainer/SetContainer.js +35 -35
  143. package/dist/SocialMediaBar/SocialMediaBar.css.js +1 -1
  144. package/dist/StepItem/StepItem.css.js +3 -3
  145. package/dist/StepItemSet/StepItemSet.css.js +3 -3
  146. package/dist/Tab/Tab.css.js +3 -3
  147. package/dist/Table/Table.css.js +3 -3
  148. package/dist/Table/Table.js +3 -3
  149. package/dist/TextBlock/TextBlock.css.js +3 -3
  150. package/dist/TopicalNavItem/TopicalNavItem.css.js +1 -1
  151. package/dist/TopicalNavSet/TopicalNavSet.css.js +1 -1
  152. package/dist/Typography/Typography.css.js +1 -1
  153. package/dist/VideoTile/VideoTile.css.js +4 -4
  154. package/dist/VideoTile/VideoTile.js +3 -3
  155. package/dist/VideoWrapper/VideoWrapper.css.js +1 -1
  156. package/dist/VideoWrapper/index.d.ts +1 -0
  157. package/dist/VideoWrapper/index.js +116 -6
  158. package/dist/assets/Input/DatePicker.css +95 -0
  159. package/dist/assets/Input/InputDate.css +39 -0
  160. package/dist/assets/SetContainer/SetContainer.css +5 -0
  161. package/dist/assets/node_modules/react-date-range/dist/styles.css.css +194 -0
  162. package/dist/assets/node_modules/react-date-range/dist/theme/default.css.css +385 -0
  163. package/dist/globals.css.js +2 -2
  164. package/dist/icons/ArrowIcon/ArrowIcon.css.js +3 -3
  165. package/dist/icons/CalendarIcon/CalendarIcon.d.ts +3 -0
  166. package/dist/icons/CalendarIcon/CalendarIcon.js +17 -0
  167. package/dist/icons/CalendarIcon/index.d.ts +1 -0
  168. package/dist/icons/CalendarIcon/index.js +4 -0
  169. package/dist/icons/CheckIcon/CheckIcon.css.js +3 -3
  170. package/dist/icons/DownloadIcon/DownloadIcon.css.js +3 -3
  171. package/dist/icons/FollowIcon/FollowIcon.css.js +3 -3
  172. package/dist/icons/Star/Star.css.js +1 -1
  173. package/dist/index.css.js +3 -3
  174. package/dist/main.d.ts +1 -0
  175. package/dist/main.js +1 -1
  176. package/dist/themes/axos.css.js +1 -1
  177. package/dist/themes/premier.css.js +2 -2
  178. package/dist/types/icon.d.ts +3 -0
  179. package/dist/types/icon.js +1 -0
  180. package/dist/types/popover.d.ts +8 -0
  181. package/dist/types/popover.js +1 -0
  182. package/dist/utils/constants/format.d.ts +1 -0
  183. package/dist/utils/constants/format.js +4 -0
  184. package/dist/utils/constants/popper.d.ts +6 -0
  185. package/dist/utils/constants/popper.js +10 -0
  186. package/dist/utils/hooks/usePopover.d.ts +25 -0
  187. package/dist/utils/hooks/usePopover.js +64 -0
  188. package/package.json +1 -1
@@ -1,6 +1,6 @@
1
- /* empty css */
2
- /* empty css */
3
- /* empty css */
1
+ /* empty css */
2
+ /* empty css */
3
+ /* empty css */
4
4
  import { createRuntimeFn } from "@vanilla-extract/recipes/createRuntimeFn";
5
5
  var Arrow = createRuntimeFn({ defaultClassName: "_1pwixiv0", variantClassNames: { variant: { primary: "_1pwixiv1", secondary: "_1pwixiv2", tertiary: "_1pwixiv3" } }, defaultVariants: {}, compoundVariants: [] });
6
6
  export {
@@ -0,0 +1,3 @@
1
+ import { TIconProps } from '../../types/icon';
2
+
3
+ export declare const CalendarIcon: import('react').NamedExoticComponent<TIconProps>;
@@ -0,0 +1,17 @@
1
+ import { jsx } from "react/jsx-runtime";
2
+ import { memo } from "react";
3
+ const Component = ({ height = 24, width = 24, ...props }) => /* @__PURE__ */ jsx(
4
+ "svg",
5
+ {
6
+ xmlns: "http://www.w3.org/2000/svg",
7
+ height,
8
+ viewBox: "0 -960 960 960",
9
+ width,
10
+ ...props,
11
+ children: /* @__PURE__ */ jsx("path", { d: "M180-80q-24 0-42-18t-18-42v-620q0-24 18-42t42-18h65v-60h65v60h340v-60h65v60h65q24 0 42 18t18 42v620q0 24-18 42t-42 18H180Zm0-60h600v-430H180v430Zm0-490h600v-130H180v130Zm0 0v-130 130Zm300 230q-17 0-28.5-11.5T440-440q0-17 11.5-28.5T480-480q17 0 28.5 11.5T520-440q0 17-11.5 28.5T480-400Zm-160 0q-17 0-28.5-11.5T280-440q0-17 11.5-28.5T320-480q17 0 28.5 11.5T360-440q0 17-11.5 28.5T320-400Zm320 0q-17 0-28.5-11.5T600-440q0-17 11.5-28.5T640-480q17 0 28.5 11.5T680-440q0 17-11.5 28.5T640-400ZM480-240q-17 0-28.5-11.5T440-280q0-17 11.5-28.5T480-320q17 0 28.5 11.5T520-280q0 17-11.5 28.5T480-240Zm-160 0q-17 0-28.5-11.5T280-280q0-17 11.5-28.5T320-320q17 0 28.5 11.5T360-280q0 17-11.5 28.5T320-240Zm320 0q-17 0-28.5-11.5T600-280q0-17 11.5-28.5T640-320q17 0 28.5 11.5T680-280q0 17-11.5 28.5T640-240Z" })
12
+ }
13
+ );
14
+ const CalendarIcon = memo(Component);
15
+ export {
16
+ CalendarIcon
17
+ };
@@ -0,0 +1 @@
1
+ export * from './CalendarIcon';
@@ -0,0 +1,4 @@
1
+ import { CalendarIcon } from "./CalendarIcon.js";
2
+ export {
3
+ CalendarIcon
4
+ };
@@ -1,6 +1,6 @@
1
- /* empty css */
2
- /* empty css */
3
- /* empty css */
1
+ /* empty css */
2
+ /* empty css */
3
+ /* empty css */
4
4
  import { createRuntimeFn } from "@vanilla-extract/recipes/createRuntimeFn";
5
5
  var checkColor = createRuntimeFn({ defaultClassName: "_1xajnqu0", variantClassNames: { variant: { primary: "_1xajnqu1", secondary: "_1xajnqu2" } }, defaultVariants: {}, compoundVariants: [] });
6
6
  export {
@@ -1,6 +1,6 @@
1
- /* empty css */
2
- /* empty css */
3
- /* empty css */
1
+ /* empty css */
2
+ /* empty css */
3
+ /* empty css */
4
4
  var DownloadColor = "_1r03g400";
5
5
  export {
6
6
  DownloadColor
@@ -1,6 +1,6 @@
1
- /* empty css */
2
- /* empty css */
3
- /* empty css */
1
+ /* empty css */
2
+ /* empty css */
3
+ /* empty css */
4
4
  var FollowColor = "_1wjdwci0";
5
5
  export {
6
6
  FollowColor
@@ -1,4 +1,4 @@
1
- /* empty css */
1
+ /* empty css */
2
2
  import { createRuntimeFn } from "@vanilla-extract/recipes/createRuntimeFn";
3
3
  var Star = createRuntimeFn({ defaultClassName: "mi4mae0", variantClassNames: { variant: { gold: "mi4mae1", gray: "mi4mae2" } }, defaultVariants: {}, compoundVariants: [] });
4
4
  export {
package/dist/index.css.js CHANGED
@@ -1,3 +1,3 @@
1
- /* empty css */
2
- /* empty css */
3
- /* empty css */
1
+ /* empty css */
2
+ /* empty css */
3
+ /* empty css */
package/dist/main.d.ts CHANGED
@@ -35,6 +35,7 @@ export * from './IconBillboard';
35
35
  export * from './icons';
36
36
  export * from './ImageBillboard';
37
37
  export * from './ImageLink';
38
+ export * from './ImageWrapper';
38
39
  export * from './Input';
39
40
  export * from './Insight';
40
41
  export * from './Interstitial/Interstitial';
package/dist/main.js CHANGED
@@ -113,6 +113,7 @@ import "react";
113
113
  import { ImageLinkSet } from "./ImageLink/ImageLinkSet.js";
114
114
  import { Checkbox } from "./Input/Checkbox.js";
115
115
  import { CurrencyInput } from "./Input/CurrencyInput.js";
116
+ import { DownPaymentInput } from "./Input/DownPaymentInput.js";
116
117
  import { Dropdown } from "./Input/Dropdown.js";
117
118
  import { dp_input, selectInput } from "./Input/Dropdown.css.js";
118
119
  import { Input } from "./Input/Input.js";
@@ -120,7 +121,6 @@ import { container, helperText, iconContainer, iconContainerBase, iconInput, inp
120
121
  import { InputAmount } from "./Input/InputAmount.js";
121
122
  import { InputPhone } from "./Input/InputPhone.js";
122
123
  import { InputTextArea } from "./Input/InputTextArea.js";
123
- import { DownPaymentInput } from "./Input/DownPaymentInput.js";
124
124
  import { CategorySelector, InsightItem } from "./Insight/Featured/CategorySelector.js";
125
125
  import { Featured, FeaturedItem } from "./Insight/Featured/Featured.js";
126
126
  import { featured_center_vertical, featured_grid, featured_maingrid, featured_maingrid_img, featured_maingrid_item, featured_maingrid_title, featured_section, featured_subgrid, featured_subgrid_divider, featured_subgrid_item, featured_subgrid_title, featured_supertag, featured_title } from "./Insight/Featured/Featured.css.js";
@@ -1,4 +1,4 @@
1
- /* empty css */
1
+ /* empty css */
2
2
  var axosTheme = "_1073cm80";
3
3
  var vars = { colors: { primary: { background: "var(--_1073cm81)", body: "var(--_1073cm82)", headline: "var(--_1073cm83)", textGradient: "var(--_1073cm84)", textButton: "var(--_1073cm85)", backgroundButton: "var(--_1073cm86)", border: "var(--_1073cm87)" }, secondary: { background: "var(--_1073cm88)", body: "var(--_1073cm89)", headline: "var(--_1073cm8a)", textGradient: "var(--_1073cm8b)", textButton: "var(--_1073cm8c)", backgroundButton: "var(--_1073cm8d)", border: "var(--_1073cm8e)" }, tertiary: { background: "var(--_1073cm8f)", body: "var(--_1073cm8g)", headline: "var(--_1073cm8h)", textGradient: "var(--_1073cm8i)", textButton: "var(--_1073cm8j)", backgroundButton: "var(--_1073cm8k)", border: "var(--_1073cm8l)" }, quaternary: { background: "var(--_1073cm8m)", body: "var(--_1073cm8n)", headline: "var(--_1073cm8o)", textGradient: "var(--_1073cm8p)", textButton: "var(--_1073cm8q)", backgroundButton: "var(--_1073cm8r)", border: "var(--_1073cm8s)" } }, error: "var(--_1073cm8t)", disabled: { border: "var(--_1073cm8u)", color: "var(--_1073cm8v)", background: "var(--_1073cm8w)" }, icons: { check: { primary: "var(--_1073cm8x)", secondary: "var(--_1073cm8y)" } }, table: { highlight: "var(--_1073cm8z)", color: "var(--_1073cm810)" }, footer: { link: { color: "var(--_1073cm811)" } } };
4
4
  export {
@@ -1,5 +1,5 @@
1
- /* empty css */
2
- /* empty css */
1
+ /* empty css */
2
+ /* empty css */
3
3
  var premierTheme = "_1es6o1h0";
4
4
  export {
5
5
  premierTheme
@@ -0,0 +1,3 @@
1
+ import { SVGProps } from 'react';
2
+
3
+ export type TIconProps = SVGProps<SVGSVGElement>;
@@ -0,0 +1 @@
1
+
@@ -0,0 +1,8 @@
1
+ import { ReactNode } from 'react';
2
+
3
+ export type TPopoverPosition = "left" | "center" | "right";
4
+ export type TPopoverProps = {
5
+ children?: ReactNode;
6
+ trigger: ReactNode | ReactNode[];
7
+ position?: TPopoverPosition;
8
+ };
@@ -0,0 +1 @@
1
+
@@ -0,0 +1 @@
1
+ export declare const FORMAT_DATE = "MM.dd.yyyy";
@@ -0,0 +1,4 @@
1
+ const FORMAT_DATE = "MM.dd.yyyy";
2
+ export {
3
+ FORMAT_DATE
4
+ };
@@ -0,0 +1,6 @@
1
+ export declare const POPOVER_WIDTH = 512;
2
+ export declare const POPOVER_POSITION_STYLES: {
3
+ left: string;
4
+ center: string;
5
+ right: string;
6
+ };
@@ -0,0 +1,10 @@
1
+ const POPOVER_WIDTH = 512;
2
+ const POPOVER_POSITION_STYLES = {
3
+ left: "left",
4
+ center: "center",
5
+ right: "right"
6
+ };
7
+ export {
8
+ POPOVER_POSITION_STYLES,
9
+ POPOVER_WIDTH
10
+ };
@@ -0,0 +1,25 @@
1
+ import { TPopoverPosition } from '../../types/popover';
2
+ import { CSSProperties, Dispatch, RefObject, SetStateAction } from 'react';
3
+
4
+ type TUsePopoverResponse = {
5
+ attributes: {
6
+ [p: string]: {
7
+ [p: string]: string;
8
+ } | undefined;
9
+ };
10
+ onPopperElement: Dispatch<SetStateAction<HTMLDivElement | null | undefined>>;
11
+ onPopoverPosition: Dispatch<SetStateAction<TPopoverPosition>>;
12
+ onReferenceElement: Dispatch<SetStateAction<HTMLButtonElement | null | undefined>>;
13
+ popperElement?: HTMLDivElement | null | undefined;
14
+ popoverPosition: TPopoverPosition;
15
+ referenceElement?: HTMLButtonElement | null | undefined;
16
+ styles: {
17
+ [p: string]: CSSProperties;
18
+ };
19
+ };
20
+ type TProps = {
21
+ triggerRef: RefObject<HTMLDivElement>;
22
+ };
23
+ type TUsePopover = (props: TProps) => TUsePopoverResponse;
24
+ export declare const usePopover: TUsePopover;
25
+ export {};
@@ -0,0 +1,64 @@
1
+ "use client";
2
+ import { useState, useEffect } from "react";
3
+ import { usePopper } from "react-popper";
4
+ import { POPOVER_WIDTH } from "../constants/popper.js";
5
+ const usePopover = (props) => {
6
+ const { triggerRef } = props;
7
+ const position = "center";
8
+ const [popperElement, setPopperElement] = useState(null);
9
+ const [popoverPosition, setPopoverPosition] = useState(position);
10
+ const [referenceElement, setReferenceElement] = useState(null);
11
+ const { styles, attributes } = usePopper(referenceElement, popperElement, {
12
+ modifiers: [
13
+ {
14
+ name: "flip",
15
+ options: {
16
+ altBoundary: true
17
+ }
18
+ },
19
+ {
20
+ name: "offset",
21
+ options: {
22
+ offset: [0, 12]
23
+ }
24
+ },
25
+ {
26
+ name: "preventOverflow",
27
+ options: {
28
+ altBoundary: true,
29
+ padding: 12
30
+ }
31
+ }
32
+ ]
33
+ });
34
+ useEffect(() => {
35
+ if (triggerRef.current && !position) {
36
+ const { right, width } = triggerRef.current.getBoundingClientRect();
37
+ const bodyWidth = document.body.clientWidth;
38
+ const centerWidth = POPOVER_WIDTH / 2;
39
+ const triggerCenter = right - width / 2;
40
+ const rightSize = bodyWidth - triggerCenter;
41
+ const isRight = rightSize < centerWidth;
42
+ const isLeft = centerWidth > triggerCenter;
43
+ if (isRight) {
44
+ setPopoverPosition("right");
45
+ }
46
+ if (isLeft) {
47
+ setPopoverPosition("left");
48
+ }
49
+ }
50
+ }, []);
51
+ return {
52
+ attributes,
53
+ onPopperElement: setPopperElement,
54
+ onPopoverPosition: setPopoverPosition,
55
+ onReferenceElement: setReferenceElement,
56
+ popperElement,
57
+ popoverPosition,
58
+ referenceElement,
59
+ styles
60
+ };
61
+ };
62
+ export {
63
+ usePopover
64
+ };
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@axos-web-dev/shared-components",
3
3
  "description": "Axos shared components library for web.",
4
- "version": "0.0.163",
4
+ "version": "0.0.164",
5
5
  "type": "module",
6
6
  "module": "dist/main.js",
7
7
  "types": "dist/main.d.ts",