@atom-learning/components 2.69.0 → 2.70.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.
Files changed (59) hide show
  1. package/CHANGELOG.md +9 -3
  2. package/dist/components/banner/Banner.d.ts +2 -10
  3. package/dist/components/banner/Banner.js +1 -1
  4. package/dist/components/banner/Banner.js.map +1 -1
  5. package/dist/components/banner/BannerContainer.d.ts +9 -3
  6. package/dist/components/banner/BannerContainer.js +1 -1
  7. package/dist/components/banner/BannerContainer.js.map +1 -1
  8. package/dist/components/banner/BannerContext.js +1 -1
  9. package/dist/components/banner/BannerContext.js.map +1 -1
  10. package/dist/components/banner/banner-regular/BannerRegular.d.ts +2 -2
  11. package/dist/components/banner/banner-regular/BannerRegular.js +1 -1
  12. package/dist/components/banner/banner-regular/BannerRegular.js.map +1 -1
  13. package/dist/components/banner/banner-regular/BannerRegularContainer.d.ts +2 -0
  14. package/dist/components/banner/banner-regular/BannerRegularContainer.js +2 -0
  15. package/dist/components/banner/banner-regular/BannerRegularContainer.js.map +1 -0
  16. package/dist/components/banner/banner-regular/BannerRegularDismiss.js +1 -1
  17. package/dist/components/banner/banner-regular/BannerRegularDismiss.js.map +1 -1
  18. package/dist/components/banner/banner-regular/BannerRegularHeading.js +1 -1
  19. package/dist/components/banner/banner-regular/BannerRegularHeading.js.map +1 -1
  20. package/dist/components/banner/banner-regular/BannerRegularText.js +1 -1
  21. package/dist/components/banner/banner-regular/BannerRegularText.js.map +1 -1
  22. package/dist/components/banner/banner-slim/BannerSlim.d.ts +17 -0
  23. package/dist/components/banner/banner-slim/BannerSlim.js +2 -0
  24. package/dist/components/banner/banner-slim/BannerSlim.js.map +1 -0
  25. package/dist/components/banner/banner-slim/BannerSlimActions.d.ts +3 -0
  26. package/dist/components/banner/banner-slim/BannerSlimActions.js +2 -0
  27. package/dist/components/banner/banner-slim/BannerSlimActions.js.map +1 -0
  28. package/dist/components/banner/banner-slim/BannerSlimButton.d.ts +3 -0
  29. package/dist/components/banner/banner-slim/BannerSlimButton.js +2 -0
  30. package/dist/components/banner/banner-slim/BannerSlimButton.js.map +1 -0
  31. package/dist/components/banner/banner-slim/BannerSlimContainer.d.ts +327 -0
  32. package/dist/components/banner/banner-slim/BannerSlimContainer.js +2 -0
  33. package/dist/components/banner/banner-slim/BannerSlimContainer.js.map +1 -0
  34. package/dist/components/banner/banner-slim/BannerSlimContent.d.ts +646 -0
  35. package/dist/components/banner/banner-slim/BannerSlimContent.js +2 -0
  36. package/dist/components/banner/banner-slim/BannerSlimContent.js.map +1 -0
  37. package/dist/components/banner/banner-slim/BannerSlimDismiss.d.ts +673 -0
  38. package/dist/components/banner/banner-slim/BannerSlimDismiss.js +2 -0
  39. package/dist/components/banner/banner-slim/BannerSlimDismiss.js.map +1 -0
  40. package/dist/components/banner/banner-slim/BannerSlimImage.d.ts +3 -0
  41. package/dist/components/banner/banner-slim/BannerSlimImage.js +2 -0
  42. package/dist/components/banner/banner-slim/BannerSlimImage.js.map +1 -0
  43. package/dist/components/banner/banner-slim/BannerSlimText.d.ts +3 -0
  44. package/dist/components/banner/banner-slim/BannerSlimText.js +2 -0
  45. package/dist/components/banner/banner-slim/BannerSlimText.js.map +1 -0
  46. package/dist/components/banner/banner-slim/index.d.ts +1 -0
  47. package/dist/components/banner/index.d.ts +1 -0
  48. package/dist/components/index.d.ts +1 -1
  49. package/dist/components/pagination/PaginationPopover.js +1 -1
  50. package/dist/components/pagination/PaginationPopover.js.map +1 -1
  51. package/dist/components/toast/Toast.js +1 -1
  52. package/dist/components/toast/Toast.js.map +1 -1
  53. package/dist/components/toast/ToastProvider.js +1 -1
  54. package/dist/components/toast/ToastProvider.js.map +1 -1
  55. package/dist/docgen.json +1 -1
  56. package/dist/index.cjs.js +1 -1
  57. package/dist/index.cjs.js.map +1 -1
  58. package/dist/index.js +1 -1
  59. package/package.json +1 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BannerSlimDismiss.js","sources":["../../../../src/components/banner/banner-slim/BannerSlimDismiss.tsx"],"sourcesContent":["import { Close } from '@atom-learning/icons'\nimport * as React from 'react'\n\nimport { styled } from '~/stitches'\n\nimport { ActionIcon } from '../../action-icon'\nimport { Icon } from '../../icon'\nimport { Banner } from '../Banner'\nimport { useBannerContext } from '../BannerContext'\n\nconst StyledDismiss = styled(ActionIcon, {\n flexShrink: 0,\n variants: {\n emphasis: {\n highContrast: {\n color: 'white !important'\n }\n },\n containerSize: {\n sm: { position: 'absolute', top: '$4', right: '$4' },\n md: { position: 'static' }\n }\n }\n})\n\ntype TBannerSlimDismissProps = React.ComponentProps<typeof StyledDismiss>\n\nexport const BannerSlimDismiss = ({\n label = 'dismiss',\n ...rest\n}: TBannerSlimDismissProps): JSX.Element => {\n const { size, setHasDismiss, emphasis } = useBannerContext()\n\n React.useEffect(() => {\n setHasDismiss(true)\n return () => {\n setHasDismiss(false)\n }\n }, [setHasDismiss])\n\n return (\n <Banner.Dismiss asChild>\n <StyledDismiss\n label={label}\n size=\"md\"\n hasTooltip={false}\n isRounded\n theme=\"neutral\"\n containerSize={size}\n emphasis={emphasis as TBannerSlimDismissProps['emphasis']}\n {...rest}\n >\n <Icon is={Close} />\n </StyledDismiss>\n </Banner.Dismiss>\n )\n}\n\nBannerSlimDismiss.displayName = 'BannerSlimDismiss'\n"],"names":["StyledDismiss","styled","ActionIcon","BannerSlimDismiss","label","rest","size","setHasDismiss","emphasis","useBannerContext","React","Banner","Icon","Close"],"mappings":"uTAUA,MAAMA,EAAgBC,EAAOC,EAAY,CACvC,WAAY,EACZ,SAAU,CACR,SAAU,CACR,aAAc,CACZ,MAAO,kBACT,CACF,EACA,cAAe,CACb,GAAI,CAAE,SAAU,WAAY,IAAK,KAAM,MAAO,IAAK,EACnD,GAAI,CAAE,SAAU,QAAS,CAC3B,CACF,CACF,CAAC,EAIYC,EAAoB,CAAC,CAChC,MAAAC,EAAQ,aACLC,CACL,IAA4C,CAC1C,KAAM,CAAE,KAAAC,EAAM,cAAAC,EAAe,SAAAC,CAAS,EAAIC,IAE1C,OAAAC,EAAM,UAAU,KACdH,EAAc,EAAI,EACX,IAAM,CACXA,EAAc,EAAK,CACrB,GACC,CAACA,CAAa,CAAC,EAGhBG,EAAA,cAACC,EAAO,QAAP,CAAe,QAAO,EACrBD,EAAAA,EAAA,cAACV,EAAA,CACC,MAAOI,EACP,KAAK,KACL,WAAY,GACZ,UAAS,GACT,MAAM,UACN,cAAeE,EACf,SAAUE,EACT,GAAGH,CAEJK,EAAAA,EAAA,cAACE,EAAA,CAAK,GAAIC,CAAAA,CAAO,CACnB,CACF,CAEJ,EAEAV,EAAkB,YAAc"}
@@ -0,0 +1,3 @@
1
+ import * as React from 'react';
2
+ import { Image } from '../../image';
3
+ export declare const BannerSlimImage: React.FC<React.ComponentProps<typeof Image>>;
@@ -0,0 +1,2 @@
1
+ import*as e from"react";import{styled as r}from"../../../stitches.js";import{Box as m}from"../../box/Box.js";import{Image as a}from"../../image/Image.js";import{useBannerContext as n}from"../BannerContext.js";const s=r(m,{overflow:"hidden",borderRadius:"$round",alignSelf:"flex-start",flexShrink:0,variants:{size:{sm:{size:"$4"},md:{size:"$5"}}}}),l=r(a,{maxWidth:"auto",size:"100%",objectFit:"cover"}),t=o=>{const{size:i}=n();return e.createElement(s,{size:i},e.createElement(l,{...o}))};t.displayName="BannerSlimImage";export{t as BannerSlimImage};
2
+ //# sourceMappingURL=BannerSlimImage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BannerSlimImage.js","sources":["../../../../src/components/banner/banner-slim/BannerSlimImage.tsx"],"sourcesContent":["import * as React from 'react'\n\nimport { styled } from '~/stitches'\n\nimport { Box } from '../../box'\nimport { Image } from '../../image'\nimport { useBannerContext } from '../BannerContext'\n\nconst Container = styled(Box, {\n overflow: 'hidden',\n borderRadius: '$round',\n alignSelf: 'flex-start',\n flexShrink: 0,\n variants: {\n size: {\n sm: {\n size: '$4'\n },\n md: {\n size: '$5'\n }\n }\n }\n})\n\nconst StyledImage = styled(Image, {\n maxWidth: 'auto',\n size: '100%',\n objectFit: 'cover'\n})\n\nexport const BannerSlimImage: React.FC<React.ComponentProps<typeof Image>> = (\n props\n) => {\n const { size } = useBannerContext()\n\n return (\n <Container size={size}>\n <StyledImage {...props} />\n </Container>\n )\n}\n\nBannerSlimImage.displayName = 'BannerSlimImage'\n"],"names":["Container","styled","Box","StyledImage","Image","BannerSlimImage","props","size","useBannerContext","React"],"mappings":"iNAQA,MAAMA,EAAYC,EAAOC,EAAK,CAC5B,SAAU,SACV,aAAc,SACd,UAAW,aACX,WAAY,EACZ,SAAU,CACR,KAAM,CACJ,GAAI,CACF,KAAM,IACR,EACA,GAAI,CACF,KAAM,IACR,CACF,CACF,CACF,CAAC,EAEKC,EAAcF,EAAOG,EAAO,CAChC,SAAU,OACV,KAAM,OACN,UAAW,OACb,CAAC,EAEYC,EACXC,GACG,CACH,KAAM,CAAE,KAAAC,CAAK,EAAIC,EAEjB,EAAA,OACEC,EAAA,cAACT,EAAA,CAAU,KAAMO,CAAAA,EACfE,EAAA,cAACN,EAAA,CAAa,GAAGG,CAAAA,CAAO,CAC1B,CAEJ,EAEAD,EAAgB,YAAc"}
@@ -0,0 +1,3 @@
1
+ import * as React from 'react';
2
+ import { Text } from '../../text';
3
+ export declare const BannerSlimText: React.FC<React.ComponentProps<typeof Text>>;
@@ -0,0 +1,2 @@
1
+ import*as r from"react";import{styled as t}from"../../../stitches.js";import{Text as o}from"../../text/Text.js";import{useBannerContext as a}from"../BannerContext.js";const m=t(o,{color:"var(--banner-heading-color)",fontWeight:"600",variants:{containerSize:{sm:{},md:{}},hasDismiss:{true:{}}},compoundVariants:[{containerSize:"sm",hasDismiss:!0,css:{mr:"$6"}}]}),s=e=>{const{size:i,hasDismiss:n}=a();return r.createElement(m,{size:"md",containerSize:i,hasDismiss:n,noCapsize:!0,...e})};s.displayName="BannerSlimText";export{s as BannerSlimText};
2
+ //# sourceMappingURL=BannerSlimText.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BannerSlimText.js","sources":["../../../../src/components/banner/banner-slim/BannerSlimText.tsx"],"sourcesContent":["import * as React from 'react'\n\nimport { styled } from '~/stitches'\n\nimport { Text } from '../../text'\nimport { useBannerContext } from '../BannerContext'\n\nconst StyledText = styled(Text, {\n color: 'var(--banner-heading-color)',\n fontWeight: '600',\n variants: {\n containerSize: {\n sm: {},\n md: {}\n },\n hasDismiss: {\n true: {}\n }\n },\n compoundVariants: [\n {\n containerSize: 'sm',\n hasDismiss: true,\n css: {\n mr: '$6'\n }\n }\n ]\n})\n\nexport const BannerSlimText: React.FC<React.ComponentProps<typeof Text>> = (\n props\n) => {\n const { size, hasDismiss } = useBannerContext()\n\n return (\n <StyledText\n size=\"md\"\n containerSize={size}\n hasDismiss={hasDismiss}\n noCapsize\n {...props}\n />\n )\n}\n\nBannerSlimText.displayName = 'BannerSlimText'\n"],"names":["StyledText","styled","Text","BannerSlimText","props","size","hasDismiss","useBannerContext","React"],"mappings":"uKAOA,MAAMA,EAAaC,EAAOC,EAAM,CAC9B,MAAO,8BACP,WAAY,MACZ,SAAU,CACR,cAAe,CACb,GAAI,CAAA,EACJ,GAAI,CAAA,CACN,EACA,WAAY,CACV,KAAM,CACR,CAAA,CACF,EACA,iBAAkB,CAChB,CACE,cAAe,KACf,WAAY,GACZ,IAAK,CACH,GAAI,IACN,CACF,CACF,CACF,CAAC,EAEYC,EACXC,GACG,CACH,KAAM,CAAE,KAAAC,EAAM,WAAAC,CAAW,EAAIC,EAAAA,EAE7B,OACEC,EAAA,cAACR,EAAA,CACC,KAAK,KACL,cAAeK,EACf,WAAYC,EACZ,UAAS,GACR,GAAGF,EACN,CAEJ,EAEAD,EAAe,YAAc"}
@@ -0,0 +1 @@
1
+ export * from './BannerSlim';
@@ -1 +1,2 @@
1
1
  export * from './banner-regular';
2
+ export * from './banner-slim';
@@ -75,7 +75,7 @@ export { ToggleGroup } from './toggle-group';
75
75
  export { Tooltip } from './tooltip';
76
76
  export { TopBar } from './top-bar';
77
77
  export { Video } from './video';
78
- export { BannerRegular } from './banner';
78
+ export { BannerRegular, BannerSlim } from './banner';
79
79
  export { Tile, TileGroup } from './tile';
80
80
  export { TileInteractive } from './tile-interactive';
81
81
  export { TileToggleGroup } from './tile-toggle-group';
@@ -1,2 +1,2 @@
1
- import{Ellypsis as n}from"@atom-learning/icons";import t from"react";import"../accordion/Accordion.js";import{ActionIcon as a}from"../action-icon/ActionIcon.js";import"../alert-dialog/AlertDialog.js";import"../alert-dialog/alert-context/AlertContext.js";import"../avatar/Avatar.js";import"../badge/Badge.js";import"../box/Box.js";import"../button/Button.js";import"../carousel/Carousel.js";import"../checkbox/Checkbox.js";import"../checkbox-field/CheckboxField.js";import"../chip/Chip.js";import"../chip/ChipGroup.js";import"../chip-dismissible-group/index.js";import"../chip-toggle-group/index.js";import"../combobox/Combobox.js";import"../create-password-field/CreatePasswordField.js";import"../data-table/DataTableContext.js";import"../data-table/DataTable.js";import"../date-field/DateField.js";import"../date-input/DateInput.js";import"../dialog/Dialog.js";import"../dismissible/index.js";import"../dismissible-group/index.js";import"../divider/Divider.js";import"../dropdown-menu/DropdownMenu.js";import"../empty-state/EmptyState.js";import"../field-wrapper/FieldWrapper.js";import"../field-wrapper/InlineFieldWrapper.js";import"../file-input/FileInput.js";import{Flex as l}from"../flex/Flex.js";import"../form/Form.js";import"dlv";import"react-hook-form";import"../grid/Grid.js";import"../heading/Heading.js";import{Icon as s}from"../icon/Icon.js";import"../image/Image.js";import"../inline-message/InlineMessage.js";import"../input/Input.js";import"../input-field/InputField.js";import"../label/Label.js";import"../link/Link.js";import"../list/List.js";import"../loader/Loader.js";import"../markdown-content/MarkdownContent.js";import"../navigation/NavigationMenu.js";import"../notification-badge/NotificationBadge.js";import"../number-input/NumberInput.js";import"../number-input-field/NumberInputField.js";import"./Pagination.js";import"../password-field/PasswordField.js";import"../password-input/PasswordInput.js";import{Popover as r}from"../popover/Popover.js";import"../progress-bar/ProgressBar.js";import"../radio-button/RadioButton.js";import"../radio-button/RadioButtonGroup.js";import"../radio-button-field/RadioButtonField.js";import"../radio-card/RadioCard.js";import"@radix-ui/react-radio-group";import"../stack/Stack.js";import"../search-field/SearchField.js";import"../search-input/SearchInput.js";import"../section-message/SectionMessage.js";import"../select/Select.js";import"../select-field/SelectField.js";import"../sidedrawer/Sidedrawer.js";import"../slider/Slider.js";import"../slider-field/SliderField.js";import"../sortable/SortableHandle.js";import"../sortable/SortableItem.js";import"../sortable/SortableRoot.js";import"../spacer/Spacer.js";import"../stack-content/StackContent.js";import"../stepper/Stepper.js";import"../switch/Switch.js";import"../table/Table.js";import"../tabs/Tabs.js";import"../text/Text.js";import"../textarea/Textarea.js";import"../textarea-field/TextareaField.js";import"../toast/Toast.js";import"../toast/ToastProvider.js";import"../toggle-group/ToggleGroupButton.js";import"../toggle-group/ToggleGroupItem.js";import"../toggle-group/ToggleGroupRoot.js";import"../tooltip/Tooltip.js";import"../top-bar/TopBar.js";import"../video/Video.js";import"../banner/banner-regular/BannerRegular.js";import"../tile/Tile.js";import"../tile-interactive/TileInteractive.js";import"../tile-toggle-group/index.js";import{PaginationItem as c}from"./PaginationItem.js";import{usePagination as g}from"./usePagination.js";const f=()=>{const{pagesCount:m,labels:i}=g(),p=Array.from({length:m},(o,e)=>e+1);return t.createElement(r,null,t.createElement(r.Trigger,{asChild:!0},t.createElement(a,{hasTooltip:!1,size:"md",theme:"neutral",label:(i==null?void 0:i.popoverTriggerLabel)||"Open pagination popover","data-testid":"pagination_popover_trigger"},t.createElement(s,{is:n}))),t.createElement(r.Content,{size:"md",showCloseButton:!1,css:{p:0}},t.createElement(l,{css:{p:"$4",display:"flex",flexWrap:"wrap",gap:1,justifyContent:"center"}},p==null?void 0:p.map(o=>t.createElement(c,{key:o,pageNumber:o,css:{bg:"$white"}})))))};export{f as PaginationPopover};
1
+ import{Ellypsis as n}from"@atom-learning/icons";import t from"react";import"../accordion/Accordion.js";import{ActionIcon as a}from"../action-icon/ActionIcon.js";import"../alert-dialog/AlertDialog.js";import"../alert-dialog/alert-context/AlertContext.js";import"../avatar/Avatar.js";import"../badge/Badge.js";import"../box/Box.js";import"../button/Button.js";import"../carousel/Carousel.js";import"../checkbox/Checkbox.js";import"../checkbox-field/CheckboxField.js";import"../chip/Chip.js";import"../chip/ChipGroup.js";import"../chip-dismissible-group/index.js";import"../chip-toggle-group/index.js";import"../combobox/Combobox.js";import"../create-password-field/CreatePasswordField.js";import"../data-table/DataTableContext.js";import"../data-table/DataTable.js";import"../date-field/DateField.js";import"../date-input/DateInput.js";import"../dialog/Dialog.js";import"../dismissible/index.js";import"../dismissible-group/index.js";import"../divider/Divider.js";import"../dropdown-menu/DropdownMenu.js";import"../empty-state/EmptyState.js";import"../field-wrapper/FieldWrapper.js";import"../field-wrapper/InlineFieldWrapper.js";import"../file-input/FileInput.js";import{Flex as l}from"../flex/Flex.js";import"../form/Form.js";import"dlv";import"react-hook-form";import"../grid/Grid.js";import"../heading/Heading.js";import{Icon as s}from"../icon/Icon.js";import"../image/Image.js";import"../inline-message/InlineMessage.js";import"../input/Input.js";import"../input-field/InputField.js";import"../label/Label.js";import"../link/Link.js";import"../list/List.js";import"../loader/Loader.js";import"../markdown-content/MarkdownContent.js";import"../navigation/NavigationMenu.js";import"../notification-badge/NotificationBadge.js";import"../number-input/NumberInput.js";import"../number-input-field/NumberInputField.js";import"./Pagination.js";import"../password-field/PasswordField.js";import"../password-input/PasswordInput.js";import{Popover as r}from"../popover/Popover.js";import"../progress-bar/ProgressBar.js";import"../radio-button/RadioButton.js";import"../radio-button/RadioButtonGroup.js";import"../radio-button-field/RadioButtonField.js";import"../radio-card/RadioCard.js";import"@radix-ui/react-radio-group";import"../stack/Stack.js";import"../search-field/SearchField.js";import"../search-input/SearchInput.js";import"../section-message/SectionMessage.js";import"../select/Select.js";import"../select-field/SelectField.js";import"../sidedrawer/Sidedrawer.js";import"../slider/Slider.js";import"../slider-field/SliderField.js";import"../sortable/SortableHandle.js";import"../sortable/SortableItem.js";import"../sortable/SortableRoot.js";import"../spacer/Spacer.js";import"../stack-content/StackContent.js";import"../stepper/Stepper.js";import"../switch/Switch.js";import"../table/Table.js";import"../tabs/Tabs.js";import"../text/Text.js";import"../textarea/Textarea.js";import"../textarea-field/TextareaField.js";import"../toast/Toast.js";import"../toast/ToastProvider.js";import"../toggle-group/ToggleGroupButton.js";import"../toggle-group/ToggleGroupItem.js";import"../toggle-group/ToggleGroupRoot.js";import"../tooltip/Tooltip.js";import"../top-bar/TopBar.js";import"../video/Video.js";import"../banner/banner-regular/BannerRegular.js";import"../banner/banner-slim/BannerSlim.js";import"../tile/Tile.js";import"../tile-interactive/TileInteractive.js";import"../tile-toggle-group/index.js";import{PaginationItem as c}from"./PaginationItem.js";import{usePagination as g}from"./usePagination.js";const f=()=>{const{pagesCount:m,labels:i}=g(),p=Array.from({length:m},(o,e)=>e+1);return t.createElement(r,null,t.createElement(r.Trigger,{asChild:!0},t.createElement(a,{hasTooltip:!1,size:"md",theme:"neutral",label:(i==null?void 0:i.popoverTriggerLabel)||"Open pagination popover","data-testid":"pagination_popover_trigger"},t.createElement(s,{is:n}))),t.createElement(r.Content,{size:"md",showCloseButton:!1,css:{p:0}},t.createElement(l,{css:{p:"$4",display:"flex",flexWrap:"wrap",gap:1,justifyContent:"center"}},p==null?void 0:p.map(o=>t.createElement(c,{key:o,pageNumber:o,css:{bg:"$white"}})))))};export{f as PaginationPopover};
2
2
  //# sourceMappingURL=PaginationPopover.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"PaginationPopover.js","sources":["../../../src/components/pagination/PaginationPopover.tsx"],"sourcesContent":["import { Ellypsis } from '@atom-learning/icons'\nimport React from 'react'\n\nimport { ActionIcon, Flex, Icon, Popover } from '..'\nimport { PaginationItem } from './PaginationItem'\nimport { usePagination } from './usePagination'\n\nexport const PaginationPopover = () => {\n const { pagesCount, labels } = usePagination()\n const paginationItems = Array.from(\n { length: pagesCount },\n (_, index) => index + 1\n )\n\n return (\n <Popover>\n <Popover.Trigger asChild>\n <ActionIcon\n hasTooltip={false}\n size=\"md\"\n theme=\"neutral\"\n label={labels?.popoverTriggerLabel || 'Open pagination popover'}\n data-testid=\"pagination_popover_trigger\"\n >\n <Icon is={Ellypsis} />\n </ActionIcon>\n </Popover.Trigger>\n <Popover.Content size=\"md\" showCloseButton={false} css={{ p: 0 }}>\n <Flex\n css={{\n p: '$4',\n display: 'flex',\n flexWrap: 'wrap',\n gap: 1,\n justifyContent: 'center'\n }}\n >\n {paginationItems?.map((pageNumber) => {\n return (\n <PaginationItem\n key={pageNumber}\n pageNumber={pageNumber}\n css={{ bg: '$white' }}\n />\n )\n })}\n </Flex>\n </Popover.Content>\n </Popover>\n )\n}\n"],"names":["PaginationPopover","pagesCount","labels","usePagination","paginationItems","_","index","React","Popover","ActionIcon","Icon","Ellypsis","Flex","pageNumber","PaginationItem"],"mappings":"q4GAOO,MAAMA,EAAoB,IAAM,CACrC,KAAM,CAAE,WAAAC,EAAY,OAAAC,CAAO,EAAIC,EACzBC,EAAAA,EAAkB,MAAM,KAC5B,CAAE,OAAQH,CAAW,EACrB,CAACI,EAAGC,IAAUA,EAAQ,CACxB,EAEA,OACEC,EAAA,cAACC,EAAA,KACCD,EAAA,cAACC,EAAQ,QAAR,CAAgB,QAAO,EACtBD,EAAAA,EAAA,cAACE,EAAA,CACC,WAAY,GACZ,KAAK,KACL,MAAM,UACN,OAAOP,GAAA,KAAAA,OAAAA,EAAQ,sBAAuB,0BACtC,cAAY,4BAEZK,EAAAA,EAAA,cAACG,EAAA,CAAK,GAAIC,EAAU,CACtB,CACF,EACAJ,EAAA,cAACC,EAAQ,QAAR,CAAgB,KAAK,KAAK,gBAAiB,GAAO,IAAK,CAAE,EAAG,CAAE,CAAA,EAC7DD,EAAA,cAACK,EAAA,CACC,IAAK,CACH,EAAG,KACH,QAAS,OACT,SAAU,OACV,IAAK,EACL,eAAgB,QAClB,CAECR,EAAAA,GAAA,YAAAA,EAAiB,IAAKS,GAEnBN,EAAA,cAACO,EAAA,CACC,IAAKD,EACL,WAAYA,EACZ,IAAK,CAAE,GAAI,QAAS,CAAA,CACtB,CAGN,CAAA,CACF,CACF,CAEJ"}
1
+ {"version":3,"file":"PaginationPopover.js","sources":["../../../src/components/pagination/PaginationPopover.tsx"],"sourcesContent":["import { Ellypsis } from '@atom-learning/icons'\nimport React from 'react'\n\nimport { ActionIcon, Flex, Icon, Popover } from '..'\nimport { PaginationItem } from './PaginationItem'\nimport { usePagination } from './usePagination'\n\nexport const PaginationPopover = () => {\n const { pagesCount, labels } = usePagination()\n const paginationItems = Array.from(\n { length: pagesCount },\n (_, index) => index + 1\n )\n\n return (\n <Popover>\n <Popover.Trigger asChild>\n <ActionIcon\n hasTooltip={false}\n size=\"md\"\n theme=\"neutral\"\n label={labels?.popoverTriggerLabel || 'Open pagination popover'}\n data-testid=\"pagination_popover_trigger\"\n >\n <Icon is={Ellypsis} />\n </ActionIcon>\n </Popover.Trigger>\n <Popover.Content size=\"md\" showCloseButton={false} css={{ p: 0 }}>\n <Flex\n css={{\n p: '$4',\n display: 'flex',\n flexWrap: 'wrap',\n gap: 1,\n justifyContent: 'center'\n }}\n >\n {paginationItems?.map((pageNumber) => {\n return (\n <PaginationItem\n key={pageNumber}\n pageNumber={pageNumber}\n css={{ bg: '$white' }}\n />\n )\n })}\n </Flex>\n </Popover.Content>\n </Popover>\n )\n}\n"],"names":["PaginationPopover","pagesCount","labels","usePagination","paginationItems","_","index","React","Popover","ActionIcon","Icon","Ellypsis","Flex","pageNumber","PaginationItem"],"mappings":"i7GAOO,MAAMA,EAAoB,IAAM,CACrC,KAAM,CAAE,WAAAC,EAAY,OAAAC,CAAO,EAAIC,EACzBC,EAAAA,EAAkB,MAAM,KAC5B,CAAE,OAAQH,CAAW,EACrB,CAACI,EAAGC,IAAUA,EAAQ,CACxB,EAEA,OACEC,EAAA,cAACC,EAAA,KACCD,EAAA,cAACC,EAAQ,QAAR,CAAgB,QAAO,EACtBD,EAAAA,EAAA,cAACE,EAAA,CACC,WAAY,GACZ,KAAK,KACL,MAAM,UACN,OAAOP,GAAA,KAAAA,OAAAA,EAAQ,sBAAuB,0BACtC,cAAY,4BAEZK,EAAAA,EAAA,cAACG,EAAA,CAAK,GAAIC,EAAU,CACtB,CACF,EACAJ,EAAA,cAACC,EAAQ,QAAR,CAAgB,KAAK,KAAK,gBAAiB,GAAO,IAAK,CAAE,EAAG,CAAE,CAAA,EAC7DD,EAAA,cAACK,EAAA,CACC,IAAK,CACH,EAAG,KACH,QAAS,OACT,SAAU,OACV,IAAK,EACL,eAAgB,QAClB,CAECR,EAAAA,GAAA,YAAAA,EAAiB,IAAKS,GAEnBN,EAAA,cAACO,EAAA,CACC,IAAKD,EACL,WAAYA,EACZ,IAAK,CAAE,GAAI,QAAS,CAAA,CACtB,CAGN,CAAA,CACF,CACF,CAEJ"}
@@ -1,2 +1,2 @@
1
- import*as s from"react";import{styled as a}from"../../stitches.js";import{Flex as n}from"../flex/Flex.js";import{ToastIcon as i}from"./ToastIcon.js";import{ToastCloseButton as m}from"./ToastCloseButton.js";import{useToastContext as p}from"./ToastProvider.js";const c={blank:{bg:"$primary"},error:{bg:"$danger"},loading:{bg:"$primary"},success:{bg:"$success"}},r=a(n,{pointerEvents:"auto",borderRadius:"$0",boxShadow:"$1",boxSizing:"border-box",color:"white",minHeight:"$5",position:"relative",px:"$4",py:"$1",transition:"background-color 50ms ease-out","@allowMotion":{transition:"background-color 50ms ease-out, transform 150ms ease-out"},variants:{type:c}}),o=t=>{const{type:e}=p();return s.createElement(r,{align:"center",type:t.type||e,...t})};o.Icon=i,o.Close=m;export{r as StyledToast,o as Toast};
1
+ import*as s from"react";import{styled as a}from"../../stitches.js";import{Flex as n}from"../flex/Flex.js";import{ToastCloseButton as i}from"./ToastCloseButton.js";import{ToastIcon as m}from"./ToastIcon.js";import{useToastContext as p}from"./ToastProvider.js";const c={blank:{bg:"$primary"},error:{bg:"$danger"},loading:{bg:"$primary"},success:{bg:"$success"}},r=a(n,{pointerEvents:"auto",borderRadius:"$0",boxShadow:"$1",boxSizing:"border-box",color:"white",minHeight:"$5",position:"relative",px:"$4",py:"$1",transition:"background-color 50ms ease-out","@allowMotion":{transition:"background-color 50ms ease-out, transform 150ms ease-out"},variants:{type:c}}),o=t=>{const{type:e}=p();return s.createElement(r,{align:"center",type:t.type||e,...t})};o.Icon=m,o.Close=i;export{r as StyledToast,o as Toast};
2
2
  //# sourceMappingURL=Toast.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Toast.js","sources":["../../../src/components/toast/Toast.tsx"],"sourcesContent":["import * as React from 'react'\n\nimport { styled } from '~/stitches'\n\nimport { Flex } from '../flex'\nimport { ToastIcon } from './ToastIcon'\nimport { ToastCloseButton } from './ToastCloseButton'\nimport { useToastContext } from './ToastProvider'\n\nconst toastVariants = {\n blank: { bg: '$primary' },\n error: { bg: '$danger' },\n loading: { bg: '$primary' },\n success: { bg: '$success' }\n} as const\n\nexport const StyledToast = styled(Flex, {\n pointerEvents: 'auto',\n borderRadius: '$0',\n boxShadow: '$1',\n boxSizing: 'border-box',\n color: 'white',\n minHeight: '$5',\n position: 'relative',\n px: '$4',\n py: '$1',\n transition: 'background-color 50ms ease-out',\n '@allowMotion': {\n transition: 'background-color 50ms ease-out, transform 150ms ease-out'\n },\n variants: {\n type: toastVariants\n }\n})\n\ntype ToastProps = Omit<React.ComponentProps<typeof StyledToast>, 'type'> & {\n type?: keyof typeof toastVariants\n}\n\nexport const Toast = (props: ToastProps): JSX.Element => {\n const { type } = useToastContext()\n return <StyledToast align=\"center\" type={props.type || type} {...props} />\n}\n\nToast.Icon = ToastIcon\nToast.Close = ToastCloseButton\n"],"names":["toastVariants","StyledToast","styled","Flex","Toast","props","type","useToastContext","React","ToastIcon","ToastCloseButton"],"mappings":"mQASA,MAAMA,EAAgB,CACpB,MAAO,CAAE,GAAI,UAAW,EACxB,MAAO,CAAE,GAAI,SAAU,EACvB,QAAS,CAAE,GAAI,UAAW,EAC1B,QAAS,CAAE,GAAI,UAAW,CAC5B,EAEaC,EAAcC,EAAOC,EAAM,CACtC,cAAe,OACf,aAAc,KACd,UAAW,KACX,UAAW,aACX,MAAO,QACP,UAAW,KACX,SAAU,WACV,GAAI,KACJ,GAAI,KACJ,WAAY,iCACZ,eAAgB,CACd,WAAY,0DACd,EACA,SAAU,CACR,KAAMH,CACR,CACF,CAAC,EAMYI,EAASC,GAAmC,CACvD,KAAM,CAAE,KAAAC,CAAK,EAAIC,EACjB,EAAA,OAAOC,EAAA,cAACP,EAAY,CAAA,MAAM,SAAS,KAAMI,EAAM,MAAQC,EAAO,GAAGD,CAAAA,CAAO,CAC1E,EAEAD,EAAM,KAAOK,EACbL,EAAM,MAAQM"}
1
+ {"version":3,"file":"Toast.js","sources":["../../../src/components/toast/Toast.tsx"],"sourcesContent":["import * as React from 'react'\n\nimport { styled } from '~/stitches'\n\nimport { Flex } from '../flex'\nimport { ToastCloseButton } from './ToastCloseButton'\nimport { ToastIcon } from './ToastIcon'\nimport { useToastContext } from './ToastProvider'\n\nconst toastVariants = {\n blank: { bg: '$primary' },\n error: { bg: '$danger' },\n loading: { bg: '$primary' },\n success: { bg: '$success' }\n} as const\n\nexport const StyledToast = styled(Flex, {\n pointerEvents: 'auto',\n borderRadius: '$0',\n boxShadow: '$1',\n boxSizing: 'border-box',\n color: 'white',\n minHeight: '$5',\n position: 'relative',\n px: '$4',\n py: '$1',\n transition: 'background-color 50ms ease-out',\n '@allowMotion': {\n transition: 'background-color 50ms ease-out, transform 150ms ease-out'\n },\n variants: {\n type: toastVariants\n }\n})\n\ntype ToastProps = Omit<React.ComponentProps<typeof StyledToast>, 'type'> & {\n type?: keyof typeof toastVariants\n}\n\nexport const Toast = (props: ToastProps): JSX.Element => {\n const { type } = useToastContext()\n return <StyledToast align=\"center\" type={props.type || type} {...props} />\n}\n\nToast.Icon = ToastIcon\nToast.Close = ToastCloseButton\n"],"names":["toastVariants","StyledToast","styled","Flex","Toast","props","type","useToastContext","React","ToastIcon","ToastCloseButton"],"mappings":"mQASA,MAAMA,EAAgB,CACpB,MAAO,CAAE,GAAI,UAAW,EACxB,MAAO,CAAE,GAAI,SAAU,EACvB,QAAS,CAAE,GAAI,UAAW,EAC1B,QAAS,CAAE,GAAI,UAAW,CAC5B,EAEaC,EAAcC,EAAOC,EAAM,CACtC,cAAe,OACf,aAAc,KACd,UAAW,KACX,UAAW,aACX,MAAO,QACP,UAAW,KACX,SAAU,WACV,GAAI,KACJ,GAAI,KACJ,WAAY,iCACZ,eAAgB,CACd,WAAY,0DACd,EACA,SAAU,CACR,KAAMH,CACR,CACF,CAAC,EAMYI,EAASC,GAAmC,CACvD,KAAM,CAAE,KAAAC,CAAK,EAAIC,EACjB,EAAA,OAAOC,EAAA,cAACP,EAAY,CAAA,MAAM,SAAS,KAAMI,EAAM,MAAQC,EAAO,GAAGD,CAAAA,CAAO,CAC1E,EAEAD,EAAM,KAAOK,EACbL,EAAM,MAAQM"}
@@ -1,2 +1,2 @@
1
- import*as e from"react";import{useToaster as h}from"react-hot-toast";import{default as j}from"react-hot-toast";import{styled as n,keyframes as s}from"../../stitches.js";import{Error as l}from"@atom-learning/icons";import{MAX_Z_INDEX as g}from"../../constants/zIndices.js";import{Text as T}from"../text/Text.js";import{Spacer as w}from"../spacer/Spacer.js";import{Toast as a}from"./Toast.js";const C="$2",P=400,M=n("div",{position:"fixed",zIndex:g,inset:C,pointerEvents:"none","@sm":{top:"$3"}}),$=s({"0%":{transform:"translateY(-100%)",opacity:0},"100%":{transform:"translateY(0)",opacity:1}}),I=s({"0%":{transform:"translateY(0)",opacity:1},"100%":{transform:"translateY(-100%)",opacity:0}}),z=n("div",{position:"absolute",width:"100%",display:"flex",justifyContent:"center",pointerEvents:"auto",alignItems:"center",borderRadius:"$0",boxSizing:"border-box",minHeight:"$5",variants:{visible:{true:{"@allowMotion":{animation:`${$} 250ms cubic-bezier(0.22, 1, 0.36, 1)`}},false:{opacity:0,"@allowMotion":{animation:`${I} 250ms cubic-bezier(0.22, 1, 0.36, 1)`}}}}}),m=e.createContext(null),c=({children:o,css:u})=>{const{toasts:d,handlers:p}=h(),{startPause:f,endPause:v,calculateOffset:E,updateHeight:y}=p;return e.createElement(e.Fragment,null,e.createElement(M,{onMouseEnter:f,onMouseLeave:v,css:u},d.map(t=>{const{message:r}=t,b=E(t.id,{reverseOrder:!0,margin:8}),x=i=>{i&&t.height===void 0&&y(t.id,i.getBoundingClientRect().height)};return e.createElement(z,{key:t.id,ref:x,visible:t.visible,role:t.role,"aria-live":t.ariaLive,css:{top:b}},e.createElement(m.Provider,{value:t},typeof r=="function"?r(t):e.isValidElement(r)?r:e.createElement(a,{css:{width:P}},t.type==="error"&&e.createElement(a.Icon,{is:l}),e.createElement(T,null,r),e.createElement(w,null),e.createElement(a.Close,null))))})),o)},Y=()=>{const o=e.useContext(m);if(!o)throw new l("useToastContext must be used within a ToastProvider");return o};c.displayName="ToastProvider";export{c as ToastProvider,j as toast,Y as useToastContext};
1
+ import{Error as n}from"@atom-learning/icons";import*as e from"react";import{useToaster as h}from"react-hot-toast";import{default as j}from"react-hot-toast";import{styled as s,keyframes as l}from"../../stitches.js";import{MAX_Z_INDEX as g}from"../../constants/zIndices.js";import{Spacer as T}from"../spacer/Spacer.js";import{Text as w}from"../text/Text.js";import{Toast as a}from"./Toast.js";const C="$2",P=400,M=s("div",{position:"fixed",zIndex:g,inset:C,pointerEvents:"none","@sm":{top:"$3"}}),$=l({"0%":{transform:"translateY(-100%)",opacity:0},"100%":{transform:"translateY(0)",opacity:1}}),I=l({"0%":{transform:"translateY(0)",opacity:1},"100%":{transform:"translateY(-100%)",opacity:0}}),z=s("div",{position:"absolute",width:"100%",display:"flex",justifyContent:"center",alignItems:"center",borderRadius:"$0",boxSizing:"border-box",minHeight:"$5",variants:{visible:{true:{"@allowMotion":{animation:`${$} 250ms cubic-bezier(0.22, 1, 0.36, 1)`}},false:{opacity:0,"@allowMotion":{animation:`${I} 250ms cubic-bezier(0.22, 1, 0.36, 1)`}}}}}),m=e.createContext(null),c=({children:o,css:u})=>{const{toasts:d,handlers:p}=h(),{startPause:f,endPause:v,calculateOffset:E,updateHeight:y}=p;return e.createElement(e.Fragment,null,e.createElement(M,{onMouseEnter:f,onMouseLeave:v,css:u},d.map(t=>{const{message:r}=t,b=E(t.id,{reverseOrder:!0,margin:8}),x=i=>{i&&t.height===void 0&&y(t.id,i.getBoundingClientRect().height)};return e.createElement(z,{key:t.id,ref:x,visible:t.visible,role:t.role,"aria-live":t.ariaLive,css:{top:b}},e.createElement(m.Provider,{value:t},typeof r=="function"?r(t):e.isValidElement(r)?r:e.createElement(a,{css:{width:P}},t.type==="error"&&e.createElement(a.Icon,{is:n}),e.createElement(w,null,r),e.createElement(T,null),e.createElement(a.Close,null))))})),o)},Y=()=>{const o=e.useContext(m);if(!o)throw new n("useToastContext must be used within a ToastProvider");return o};c.displayName="ToastProvider";export{c as ToastProvider,j as toast,Y as useToastContext};
2
2
  //# sourceMappingURL=ToastProvider.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ToastProvider.js","sources":["../../../src/components/toast/ToastProvider.tsx"],"sourcesContent":["import * as React from 'react'\nimport { useToaster } from 'react-hot-toast'\n\nimport { keyframes, styled, CSS } from '~/stitches'\nimport { Error } from '@atom-learning/icons'\nexport { default as toast } from 'react-hot-toast'\nimport { MAX_Z_INDEX } from '~/constants/zIndices'\nimport { Flex } from '../flex'\nimport { Text } from '../text'\nimport type { Toast as ToastType } from 'react-hot-toast/dist/core/types'\nimport { Spacer } from '../spacer'\nimport { Toast } from './Toast'\n\nconst DEFAULT_OFFSET = '$2'\nconst TOAST_WIDTH = 400\n\nconst ToastProviderBase = styled('div', {\n position: 'fixed',\n zIndex: MAX_Z_INDEX,\n inset: DEFAULT_OFFSET,\n pointerEvents: 'none',\n '@sm': {\n top: '$3'\n }\n})\n\nconst slideIn = keyframes({\n '0%': { transform: 'translateY(-100%)', opacity: 0 },\n '100%': { transform: `translateY(0)`, opacity: 1 }\n})\n\nconst slideOut = keyframes({\n '0%': { transform: `translateY(0)`, opacity: 1 },\n '100%': { transform: `translateY(-100%)`, opacity: 0 }\n})\n\nconst ToastWrapper = styled('div', {\n position: 'absolute',\n width: '100%',\n display: 'flex',\n justifyContent: 'center',\n pointerEvents: 'auto',\n alignItems: 'center',\n borderRadius: '$0',\n boxSizing: 'border-box',\n minHeight: '$5',\n variants: {\n visible: {\n true: {\n '@allowMotion': {\n animation: `${slideIn} 250ms cubic-bezier(0.22, 1, 0.36, 1)`\n }\n },\n false: {\n opacity: 0,\n '@allowMotion': {\n animation: `${slideOut} 250ms cubic-bezier(0.22, 1, 0.36, 1)`\n }\n }\n }\n }\n})\n\nconst ToastContext = React.createContext<Pick<\n ToastType,\n 'type' | 'id' | 'message'\n> | null>(null)\n\nexport const ToastProvider: React.FC<{ css?: CSS }> = ({ children, css }) => {\n const { toasts, handlers } = useToaster()\n const { startPause, endPause, calculateOffset, updateHeight } = handlers\n\n return (\n <>\n <ToastProviderBase\n onMouseEnter={startPause}\n onMouseLeave={endPause}\n css={css}\n >\n {toasts.map((toast) => {\n const { message: children } = toast\n\n const offset = calculateOffset(toast.id, {\n reverseOrder: true,\n margin: 8\n })\n\n const ref = (el: HTMLDivElement | null) => {\n if (el && toast.height === undefined) {\n updateHeight(toast.id, el.getBoundingClientRect().height)\n }\n }\n\n return (\n <ToastWrapper\n key={toast.id}\n ref={ref}\n visible={toast.visible}\n role={toast.role}\n aria-live={toast.ariaLive}\n css={{ top: offset }}\n >\n <ToastContext.Provider value={toast}>\n {typeof children === 'function' ? (\n children(toast)\n ) : React.isValidElement(children) ? (\n children\n ) : (\n <Toast css={{ width: TOAST_WIDTH }}>\n {toast.type === 'error' && <Toast.Icon is={Error} />}\n <Text>{children}</Text>\n <Spacer />\n <Toast.Close />\n </Toast>\n )}\n </ToastContext.Provider>\n </ToastWrapper>\n )\n })}\n </ToastProviderBase>\n {children}\n </>\n )\n}\n\nexport const useToastContext = () => {\n const context = React.useContext(ToastContext)\n\n if (!context) {\n throw new Error('useToastContext must be used within a ToastProvider')\n }\n\n return context\n}\n\nToastProvider.displayName = 'ToastProvider'\n"],"names":["DEFAULT_OFFSET","TOAST_WIDTH","ToastProviderBase","styled","MAX_Z_INDEX","slideIn","keyframes","slideOut","ToastWrapper","ToastContext","React","ToastProvider","children","css","toasts","handlers","useToaster","startPause","endPause","calculateOffset","updateHeight","toast","offset","ref","el","Toast","Error","Text","Spacer","useToastContext","context"],"mappings":"uYAaA,MAAMA,EAAiB,KACjBC,EAAc,IAEdC,EAAoBC,EAAO,MAAO,CACtC,SAAU,QACV,OAAQC,EACR,MAAOJ,EACP,cAAe,OACf,MAAO,CACL,IAAK,IACP,CACF,CAAC,EAEKK,EAAUC,EAAU,CACxB,KAAM,CAAE,UAAW,oBAAqB,QAAS,CAAE,EACnD,OAAQ,CAAE,UAAW,gBAAiB,QAAS,CAAE,CACnD,CAAC,EAEKC,EAAWD,EAAU,CACzB,KAAM,CAAE,UAAW,gBAAiB,QAAS,CAAE,EAC/C,OAAQ,CAAE,UAAW,oBAAqB,QAAS,CAAE,CACvD,CAAC,EAEKE,EAAeL,EAAO,MAAO,CACjC,SAAU,WACV,MAAO,OACP,QAAS,OACT,eAAgB,SAChB,cAAe,OACf,WAAY,SACZ,aAAc,KACd,UAAW,aACX,UAAW,KACX,SAAU,CACR,QAAS,CACP,KAAM,CACJ,eAAgB,CACd,UAAW,GAAGE,wCAChB,CACF,EACA,MAAO,CACL,QAAS,EACT,eAAgB,CACd,UAAW,GAAGE,wCAChB,CACF,CACF,CACF,CACF,CAAC,EAEKE,EAAeC,EAAM,cAGjB,IAAI,EAEDC,EAAyC,CAAC,CAAE,SAAAC,EAAU,IAAAC,CAAI,IAAM,CAC3E,KAAM,CAAE,OAAAC,EAAQ,SAAAC,CAAS,EAAIC,IACvB,CAAE,WAAAC,EAAY,SAAAC,EAAU,gBAAAC,EAAiB,aAAAC,CAAa,EAAIL,EAEhE,OACEL,EAAA,cAAAA,EAAA,SAAA,KACEA,EAAA,cAACR,EAAA,CACC,aAAce,EACd,aAAcC,EACd,IAAKL,CAEJC,EAAAA,EAAO,IAAKO,GAAU,CACrB,KAAM,CAAE,QAAST,CAAS,EAAIS,EAExBC,EAASH,EAAgBE,EAAM,GAAI,CACvC,aAAc,GACd,OAAQ,CACV,CAAC,EAEKE,EAAOC,GAA8B,CACrCA,GAAMH,EAAM,SAAW,QACzBD,EAAaC,EAAM,GAAIG,EAAG,sBAAA,EAAwB,MAAM,CAE5D,EAEA,OACEd,EAAA,cAACF,EAAA,CACC,IAAKa,EAAM,GACX,IAAKE,EACL,QAASF,EAAM,QACf,KAAMA,EAAM,KACZ,YAAWA,EAAM,SACjB,IAAK,CAAE,IAAKC,CAAO,CAAA,EAEnBZ,EAAA,cAACD,EAAa,SAAb,CAAsB,MAAOY,CAAAA,EAC3B,OAAOT,GAAa,WACnBA,EAASS,CAAK,EACZX,EAAM,eAAeE,CAAQ,EAC/BA,EAEAF,EAAA,cAACe,EAAA,CAAM,IAAK,CAAE,MAAOxB,CAAY,GAC9BoB,EAAM,OAAS,SAAWX,EAAA,cAACe,EAAM,KAAN,CAAW,GAAIC,CAAAA,CAAO,EAClDhB,EAAA,cAACiB,EAAA,KAAMf,CAAS,EAChBF,EAAA,cAACkB,EAAA,IAAO,EACRlB,EAAA,cAACe,EAAM,MAAN,IAAY,CACf,CAEJ,CACF,CAEJ,CAAC,CACH,EACCb,CACH,CAEJ,EAEaiB,EAAkB,IAAM,CACnC,MAAMC,EAAUpB,EAAM,WAAWD,CAAY,EAE7C,GAAI,CAACqB,EACH,MAAM,IAAIJ,EAAM,qDAAqD,EAGvE,OAAOI,CACT,EAEAnB,EAAc,YAAc"}
1
+ {"version":3,"file":"ToastProvider.js","sources":["../../../src/components/toast/ToastProvider.tsx"],"sourcesContent":["import { Error } from '@atom-learning/icons'\nimport * as React from 'react'\nimport { useToaster } from 'react-hot-toast'\n\nimport { CSS, keyframes, styled } from '~/stitches'\nexport { default as toast } from 'react-hot-toast'\nimport type { Toast as ToastType } from 'react-hot-toast/dist/core/types'\n\nimport { MAX_Z_INDEX } from '~/constants/zIndices'\n\nimport { Flex } from '../flex'\nimport { Spacer } from '../spacer'\nimport { Text } from '../text'\nimport { Toast } from './Toast'\n\nconst DEFAULT_OFFSET = '$2'\nconst TOAST_WIDTH = 400\n\nconst ToastProviderBase = styled('div', {\n position: 'fixed',\n zIndex: MAX_Z_INDEX,\n inset: DEFAULT_OFFSET,\n pointerEvents: 'none',\n '@sm': {\n top: '$3'\n }\n})\n\nconst slideIn = keyframes({\n '0%': { transform: 'translateY(-100%)', opacity: 0 },\n '100%': { transform: `translateY(0)`, opacity: 1 }\n})\n\nconst slideOut = keyframes({\n '0%': { transform: `translateY(0)`, opacity: 1 },\n '100%': { transform: `translateY(-100%)`, opacity: 0 }\n})\n\nconst ToastWrapper = styled('div', {\n position: 'absolute',\n width: '100%',\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n borderRadius: '$0',\n boxSizing: 'border-box',\n minHeight: '$5',\n variants: {\n visible: {\n true: {\n '@allowMotion': {\n animation: `${slideIn} 250ms cubic-bezier(0.22, 1, 0.36, 1)`\n }\n },\n false: {\n opacity: 0,\n '@allowMotion': {\n animation: `${slideOut} 250ms cubic-bezier(0.22, 1, 0.36, 1)`\n }\n }\n }\n }\n})\n\nconst ToastContext = React.createContext<Pick<\n ToastType,\n 'type' | 'id' | 'message'\n> | null>(null)\n\nexport const ToastProvider: React.FC<{ css?: CSS }> = ({ children, css }) => {\n const { toasts, handlers } = useToaster()\n const { startPause, endPause, calculateOffset, updateHeight } = handlers\n\n return (\n <>\n <ToastProviderBase\n onMouseEnter={startPause}\n onMouseLeave={endPause}\n css={css}\n >\n {toasts.map((toast) => {\n const { message: children } = toast\n\n const offset = calculateOffset(toast.id, {\n reverseOrder: true,\n margin: 8\n })\n\n const ref = (el: HTMLDivElement | null) => {\n if (el && toast.height === undefined) {\n updateHeight(toast.id, el.getBoundingClientRect().height)\n }\n }\n\n return (\n <ToastWrapper\n key={toast.id}\n ref={ref}\n visible={toast.visible}\n role={toast.role}\n aria-live={toast.ariaLive}\n css={{ top: offset }}\n >\n <ToastContext.Provider value={toast}>\n {typeof children === 'function' ? (\n children(toast)\n ) : React.isValidElement(children) ? (\n children\n ) : (\n <Toast css={{ width: TOAST_WIDTH }}>\n {toast.type === 'error' && <Toast.Icon is={Error} />}\n <Text>{children}</Text>\n <Spacer />\n <Toast.Close />\n </Toast>\n )}\n </ToastContext.Provider>\n </ToastWrapper>\n )\n })}\n </ToastProviderBase>\n {children}\n </>\n )\n}\n\nexport const useToastContext = () => {\n const context = React.useContext(ToastContext)\n\n if (!context) {\n throw new Error('useToastContext must be used within a ToastProvider')\n }\n\n return context\n}\n\nToastProvider.displayName = 'ToastProvider'\n"],"names":["DEFAULT_OFFSET","TOAST_WIDTH","ToastProviderBase","styled","MAX_Z_INDEX","slideIn","keyframes","slideOut","ToastWrapper","ToastContext","React","ToastProvider","children","css","toasts","handlers","useToaster","startPause","endPause","calculateOffset","updateHeight","toast","offset","ref","el","Toast","Error","Text","Spacer","useToastContext","context"],"mappings":"uYAeA,MAAMA,EAAiB,KACjBC,EAAc,IAEdC,EAAoBC,EAAO,MAAO,CACtC,SAAU,QACV,OAAQC,EACR,MAAOJ,EACP,cAAe,OACf,MAAO,CACL,IAAK,IACP,CACF,CAAC,EAEKK,EAAUC,EAAU,CACxB,KAAM,CAAE,UAAW,oBAAqB,QAAS,CAAE,EACnD,OAAQ,CAAE,UAAW,gBAAiB,QAAS,CAAE,CACnD,CAAC,EAEKC,EAAWD,EAAU,CACzB,KAAM,CAAE,UAAW,gBAAiB,QAAS,CAAE,EAC/C,OAAQ,CAAE,UAAW,oBAAqB,QAAS,CAAE,CACvD,CAAC,EAEKE,EAAeL,EAAO,MAAO,CACjC,SAAU,WACV,MAAO,OACP,QAAS,OACT,eAAgB,SAChB,WAAY,SACZ,aAAc,KACd,UAAW,aACX,UAAW,KACX,SAAU,CACR,QAAS,CACP,KAAM,CACJ,eAAgB,CACd,UAAW,GAAGE,wCAChB,CACF,EACA,MAAO,CACL,QAAS,EACT,eAAgB,CACd,UAAW,GAAGE,wCAChB,CACF,CACF,CACF,CACF,CAAC,EAEKE,EAAeC,EAAM,cAGjB,IAAI,EAEDC,EAAyC,CAAC,CAAE,SAAAC,EAAU,IAAAC,CAAI,IAAM,CAC3E,KAAM,CAAE,OAAAC,EAAQ,SAAAC,CAAS,EAAIC,EAAAA,EACvB,CAAE,WAAAC,EAAY,SAAAC,EAAU,gBAAAC,EAAiB,aAAAC,CAAa,EAAIL,EAEhE,OACEL,EAAA,cAAAA,EAAA,SACEA,KAAAA,EAAA,cAACR,EAAA,CACC,aAAce,EACd,aAAcC,EACd,IAAKL,GAEJC,EAAO,IAAKO,GAAU,CACrB,KAAM,CAAE,QAAST,CAAS,EAAIS,EAExBC,EAASH,EAAgBE,EAAM,GAAI,CACvC,aAAc,GACd,OAAQ,CACV,CAAC,EAEKE,EAAOC,GAA8B,CACrCA,GAAMH,EAAM,SAAW,QACzBD,EAAaC,EAAM,GAAIG,EAAG,sBAAsB,EAAE,MAAM,CAE5D,EAEA,OACEd,EAAA,cAACF,EAAA,CACC,IAAKa,EAAM,GACX,IAAKE,EACL,QAASF,EAAM,QACf,KAAMA,EAAM,KACZ,YAAWA,EAAM,SACjB,IAAK,CAAE,IAAKC,CAAO,CAEnBZ,EAAAA,EAAA,cAACD,EAAa,SAAb,CAAsB,MAAOY,CAC3B,EAAA,OAAOT,GAAa,WACnBA,EAASS,CAAK,EACZX,EAAM,eAAeE,CAAQ,EAC/BA,EAEAF,EAAA,cAACe,EAAA,CAAM,IAAK,CAAE,MAAOxB,CAAY,CAAA,EAC9BoB,EAAM,OAAS,SAAWX,EAAA,cAACe,EAAM,KAAN,CAAW,GAAIC,CAAO,CAAA,EAClDhB,EAAA,cAACiB,EAAA,KAAMf,CAAS,EAChBF,EAAA,cAACkB,EAAA,IAAO,EACRlB,EAAA,cAACe,EAAM,MAAN,IAAY,CACf,CAEJ,CACF,CAEJ,CAAC,CACH,EACCb,CACH,CAEJ,EAEaiB,EAAkB,IAAM,CACnC,MAAMC,EAAUpB,EAAM,WAAWD,CAAY,EAE7C,GAAI,CAACqB,EACH,MAAM,IAAIJ,EAAM,qDAAqD,EAGvE,OAAOI,CACT,EAEAnB,EAAc,YAAc"}