@atom-learning/components 6.15.0 → 6.16.0-beta.1

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 (39) hide show
  1. package/dist/components/action-icon/ActionIcon.d.ts +1 -0
  2. package/dist/components/action-icon/ActionIcon.js +4 -2
  3. package/dist/components/action-icon/ActionIcon.js.map +1 -1
  4. package/dist/components/banner/banner-regular/BannerRegular.d.ts +1 -0
  5. package/dist/components/banner/banner-regular/BannerRegularDismiss.d.ts +2 -1
  6. package/dist/components/banner/banner-slim/BannerSlim.d.ts +1 -0
  7. package/dist/components/banner/banner-slim/BannerSlimDismiss.d.ts +2 -1
  8. package/dist/components/button/Button.d.ts +1 -0
  9. package/dist/components/button/Button.js +17 -13
  10. package/dist/components/button/Button.js.map +1 -1
  11. package/dist/components/dropdown-menu/DropdownMenu.d.ts +2 -1
  12. package/dist/components/dropdown-menu/DropdownMenuLinkItem.d.ts +2 -1
  13. package/dist/components/dropdown-menu/DropdownMenuLinkItem.js +13 -8
  14. package/dist/components/dropdown-menu/DropdownMenuLinkItem.js.map +1 -1
  15. package/dist/components/index.d.ts +1 -0
  16. package/dist/components/link/Link.d.ts +1 -0
  17. package/dist/components/link/Link.js +13 -9
  18. package/dist/components/link/Link.js.map +1 -1
  19. package/dist/components/navigation-menu-vertical/NavigationMenuVertical.d.ts +3 -1
  20. package/dist/components/navigation-menu-vertical/NavigationMenuVerticalLink.d.ts +4 -2
  21. package/dist/components/navigation-menu-vertical/NavigationMenuVerticalLink.js +5 -3
  22. package/dist/components/navigation-menu-vertical/NavigationMenuVerticalLink.js.map +1 -1
  23. package/dist/components/number-input/NumberInputStepper.d.ts +2 -1
  24. package/dist/components/pagination/PaginationNextButton.d.ts +2 -1
  25. package/dist/components/pagination/PaginationPreviousButton.d.ts +2 -1
  26. package/dist/components/router-provider/RouterProvider.d.ts +16 -0
  27. package/dist/components/router-provider/RouterProvider.js +15 -0
  28. package/dist/components/router-provider/RouterProvider.js.map +1 -0
  29. package/dist/components/sortable/Handle.d.ts +2 -1
  30. package/dist/components/tile-interactive/TileInteractive.d.ts +3 -1
  31. package/dist/components/tile-interactive/TileInteractive.js +4 -2
  32. package/dist/components/tile-interactive/TileInteractive.js.map +1 -1
  33. package/dist/components/tile-toggle-group/TileToggleGroupItem.d.ts +3 -1
  34. package/dist/components/top-bar/TopBar.d.ts +2 -1
  35. package/dist/docgen.json +1 -1
  36. package/dist/index.cjs.js +62 -37
  37. package/dist/index.cjs.js.map +1 -1
  38. package/dist/index.js +2 -1
  39. package/package.json +1 -1
package/dist/index.cjs.js CHANGED
@@ -486,6 +486,17 @@ var getExternalAnchorProps = (url) => isExternalUrl(url) ? {
486
486
  rel: "noopener noreferrer"
487
487
  } : {};
488
488
  //#endregion
489
+ //#region src/components/router-provider/RouterProvider.tsx
490
+ var RouterContext = react.createContext({});
491
+ var RouterProvider = ({ link, children }) => /* @__PURE__ */ react.createElement(RouterContext.Provider, { value: { link } }, children);
492
+ var isAbsoluteUrl = (url) => /^https?:\/\//.test(url || "");
493
+ var useRouterLinkProps = (href, { reloadDocument } = {}) => {
494
+ const { link } = react.useContext(RouterContext);
495
+ if (!link || !href || isAbsoluteUrl(href) || reloadDocument) return {};
496
+ return { as: link };
497
+ };
498
+ RouterProvider.displayName = "RouterProvider";
499
+ //#endregion
489
500
  //#region src/components/action-icon/ActionIcon.constants.ts
490
501
  var ActionIconSizeMap = {
491
502
  xs: "sm",
@@ -590,11 +601,12 @@ var StyledButton$5 = styled("button", {
590
601
  isRounded: { true: ["rounded-full"] }
591
602
  }
592
603
  }, { enabledResponsiveVariants: true });
593
- var ActionIcon = react.forwardRef(({ children, theme = "primary", appearance = "simple", size = "sm", label, href, disabled, hasTooltip = true, tooltipSide, ...remainingProps }, ref) => {
604
+ var ActionIcon = react.forwardRef(({ children, theme = "primary", appearance = "simple", size = "sm", label, href, disabled, hasTooltip = true, tooltipSide, reloadDocument, ...remainingProps }, ref) => {
594
605
  const INVALID_CHILDREN_MESSAGE = `A single ${Icon.displayName} component is permitted as a child of ${ActionIcon.displayName}`;
595
606
  (0, invariant.default)(react.Children.count(children) === 1, INVALID_CHILDREN_MESSAGE);
607
+ const routerLinkProps = useRouterLinkProps(href, { reloadDocument });
596
608
  const optionalLinkProps = href ? {
597
- as: "a",
609
+ as: routerLinkProps.as || "a",
598
610
  href: disabled ? void 0 : href,
599
611
  onClick: void 0,
600
612
  "aria-disabled": !!disabled
@@ -848,19 +860,22 @@ var LoaderContentsWrapper = styled("span", {
848
860
  defaultVariants: { size: "md" }
849
861
  }, { enabledResponsiveVariants: true });
850
862
  var WithLoader = ({ size, children }) => /* @__PURE__ */ react.createElement(react.Fragment, null, /* @__PURE__ */ react.createElement(Loader, { className: "absolute" }), /* @__PURE__ */ react.createElement(LoaderContentsWrapper, { size }, children));
851
- var Button = react.forwardRef(({ children, as, href, isLoading = false, onClick, disabled, ...rest }, ref) => /* @__PURE__ */ react.createElement(StyledButton, {
852
- as: as || (href ? "a" : void 0),
853
- ...!disabled && !isLoading && {
854
- href,
855
- onClick
856
- },
857
- isLoading,
858
- type: !href ? "button" : void 0,
859
- disabled,
860
- ...rest,
861
- ...getExternalAnchorProps(href),
862
- ref
863
- }, isLoading ? /* @__PURE__ */ react.createElement(WithLoader, { size: rest.size }, children) : children));
863
+ var Button = react.forwardRef(({ children, as, href, isLoading = false, onClick, disabled, reloadDocument, ...rest }, ref) => {
864
+ const routerLinkProps = useRouterLinkProps(href, { reloadDocument });
865
+ return /* @__PURE__ */ react.createElement(StyledButton, {
866
+ as: as || routerLinkProps.as || (href ? "a" : void 0),
867
+ ...!disabled && !isLoading && {
868
+ href,
869
+ onClick
870
+ },
871
+ isLoading,
872
+ type: !href ? "button" : void 0,
873
+ disabled,
874
+ ...rest,
875
+ ...getExternalAnchorProps(href),
876
+ ref
877
+ }, isLoading ? /* @__PURE__ */ react.createElement(WithLoader, { size: rest.size }, children) : children);
878
+ });
864
879
  Button.displayName = "Button";
865
880
  //#endregion
866
881
  //#region src/components/heading/Heading.tsx
@@ -3297,15 +3312,18 @@ var StyledLink = styled("a", {
3297
3312
  },
3298
3313
  defaultVariants: { size: "md" }
3299
3314
  }, { enabledResponsiveVariants: true });
3300
- var Link = react.forwardRef(({ as, disabled, href, ...rest }, ref) => /* @__PURE__ */ react.createElement(StyledLink, {
3301
- as: as || (!href ? "button" : void 0),
3302
- noCapsize: !href ? true : void 0,
3303
- href,
3304
- ...disabled && { disabled: true },
3305
- ...rest,
3306
- ...getExternalAnchorProps(href),
3307
- ref
3308
- }));
3315
+ var Link = react.forwardRef(({ as, disabled, href, reloadDocument, ...rest }, ref) => {
3316
+ const routerLinkProps = useRouterLinkProps(href, { reloadDocument });
3317
+ return /* @__PURE__ */ react.createElement(StyledLink, {
3318
+ as: as || routerLinkProps.as || (!href ? "button" : void 0),
3319
+ noCapsize: !href ? true : void 0,
3320
+ href,
3321
+ ...disabled && { disabled: true },
3322
+ ...rest,
3323
+ ...getExternalAnchorProps(href),
3324
+ ref
3325
+ });
3326
+ });
3309
3327
  Link.displayName = "Link";
3310
3328
  //#endregion
3311
3329
  //#region src/components/field-wrapper/FieldWrapper.tsx
@@ -6090,14 +6108,18 @@ var DropdownMenuItem = styled(_radix_ui_react_dropdown_menu.Item, { base: [
6090
6108
  //#endregion
6091
6109
  //#region src/components/dropdown-menu/DropdownMenuLinkItem.tsx
6092
6110
  var StyledLink$2 = styled("a", { base: ["no-underline"] });
6093
- var DropdownMenuLinkItem = ({ children, href, ...props }) => /* @__PURE__ */ react.default.createElement(DropdownMenuItem, {
6094
- ...props,
6095
- asChild: true
6096
- }, /* @__PURE__ */ react.default.createElement(StyledLink$2, {
6097
- href,
6098
- role: "menuitem",
6099
- ...getExternalAnchorProps(href)
6100
- }, children));
6111
+ var DropdownMenuLinkItem = ({ children, href, reloadDocument, ...props }) => {
6112
+ const routerLinkProps = useRouterLinkProps(href, { reloadDocument });
6113
+ return /* @__PURE__ */ react.default.createElement(DropdownMenuItem, {
6114
+ ...props,
6115
+ asChild: true
6116
+ }, /* @__PURE__ */ react.default.createElement(StyledLink$2, {
6117
+ as: routerLinkProps.as,
6118
+ href,
6119
+ role: "menuitem",
6120
+ ...getExternalAnchorProps(href)
6121
+ }, children));
6122
+ };
6101
6123
  //#endregion
6102
6124
  //#region src/components/dropdown-menu/DropdownMenuSeparator.tsx
6103
6125
  var DropdownMenuSeparator = styled(_radix_ui_react_dropdown_menu.Separator, { base: [
@@ -6947,9 +6969,10 @@ var StyledNavigationMenuVerticalLink = styled(_radix_ui_react_navigation_menu.Li
6947
6969
  lg: ["min-h-12"]
6948
6970
  } }
6949
6971
  });
6950
- var NavigationMenuVerticalLink = ({ as, href, children, ...rest }) => {
6951
- const Component = as || (href ? "a" : "button");
6952
- const componentProps = as ? {} : href ? getExternalAnchorProps(href) : { type: "button" };
6972
+ var NavigationMenuVerticalLink = ({ as, href, children, reloadDocument, ...rest }) => {
6973
+ const routerLinkProps = useRouterLinkProps(href, { reloadDocument });
6974
+ const Component = as || routerLinkProps.as || (href ? "a" : "button");
6975
+ const componentProps = as || routerLinkProps.as ? {} : href ? getExternalAnchorProps(href) : { type: "button" };
6953
6976
  return /* @__PURE__ */ react.default.createElement(NavigationMenuVerticalItem, null, /* @__PURE__ */ react.default.createElement(StyledNavigationMenuVerticalLink, {
6954
6977
  size: "lg",
6955
6978
  href,
@@ -8903,9 +8926,10 @@ var StyledTileInteractive = styled(Tile, { base: [
8903
8926
  "not-disabled:transition-transform",
8904
8927
  "not-disabled:translate-y-0"
8905
8928
  ] });
8906
- var TileInteractive = react.default.forwardRef(({ onClick, href, type = "button", as, ...rest }, ref) => {
8929
+ var TileInteractive = react.default.forwardRef(({ onClick, href, type = "button", as, reloadDocument, ...rest }, ref) => {
8930
+ const routerLinkProps = useRouterLinkProps(href, { reloadDocument });
8907
8931
  const elementSpecificProps = !!href ? {
8908
- as: as || "a",
8932
+ as: as || routerLinkProps.as || "a",
8909
8933
  href,
8910
8934
  onClick: void 0
8911
8935
  } : {
@@ -9963,6 +9987,7 @@ exports.RadioButtonField = RadioButtonField;
9963
9987
  exports.RadioButtonGroup = RadioButtonGroup;
9964
9988
  exports.RadioCard = RadioCard;
9965
9989
  exports.RadioCardGroup = RadioCardGroup;
9990
+ exports.RouterProvider = RouterProvider;
9966
9991
  exports.SearchField = SearchField;
9967
9992
  exports.SearchInput = SearchInput;
9968
9993
  exports.SectionMessage = SectionMessage;