@digigov/ui 1.0.2 → 1.1.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 (135) hide show
  1. package/CHANGELOG.md +25 -1
  2. package/api/APIErrors/index.js +5 -7
  3. package/app/BannerContainer/BannerContainer.stories.d.ts +5 -5
  4. package/app/Footer/Footer.stories/index.js +1 -0
  5. package/app/Footer/Footer.stories.d.ts +7 -6
  6. package/app/Footer/__stories__/FooterAllInclusive/index.js +5 -1
  7. package/app/Footer/__stories__/FooterWithText/index.js +29 -0
  8. package/app/Footer/__stories__/FooterWithText/package.json +6 -0
  9. package/app/Footer/__stories__/FooterWithText.d.ts +3 -0
  10. package/app/Header/Header.stories.d.ts +7 -7
  11. package/app/Loader/Loader.stories.d.ts +3 -3
  12. package/app/Masthead/Masthead.stories.d.ts +6 -6
  13. package/app/Modal/Modal.stories.d.ts +5 -5
  14. package/app/Modal/index.js +3 -3
  15. package/app/NotFound/NotFound.stories.d.ts +3 -3
  16. package/app/OutdatedBrowserBanner/hooks/useOutdatedBrowserCheck/index.js +4 -3
  17. package/app/OutdatedBrowserBanner/hooks/useOutdatedBrowserCheck.d.ts +1 -1
  18. package/app/Panel/Panel.stories.d.ts +5 -5
  19. package/app/PhaseBannerHeader/PhaseBannerHeader.stories.d.ts +3 -3
  20. package/app/QrCodeScanner/QrCodeScanner.stories.d.ts +3 -3
  21. package/app/QrCodeViewer/QRCode.stories.d.ts +2 -2
  22. package/app/QrCodeViewer/qrcodegen/index.js +13 -13
  23. package/cjs/api/APIErrors/index.js +5 -7
  24. package/cjs/app/Footer/Footer.stories/index.js +12 -0
  25. package/cjs/app/Footer/__stories__/FooterAllInclusive/index.js +5 -1
  26. package/cjs/app/Footer/__stories__/FooterWithText/index.js +36 -0
  27. package/cjs/app/Modal/index.js +3 -3
  28. package/cjs/app/OutdatedBrowserBanner/hooks/useOutdatedBrowserCheck/index.js +4 -3
  29. package/cjs/app/QrCodeViewer/qrcodegen/index.js +13 -13
  30. package/cjs/content/Table/TableFloatingScroll/index.js +4 -3
  31. package/cjs/form/AutoComplete/Status/index.js +4 -5
  32. package/cjs/form/AutoComplete/index.js +5 -6
  33. package/cjs/layouts/Screen/Screen.stories/index.js +50 -0
  34. package/cjs/layouts/Screen/__stories__/Default/index.js +25 -0
  35. package/cjs/layouts/Screen/__stories__/ScreenDown/index.js +16 -0
  36. package/cjs/layouts/Screen/__stories__/SpecificScreenSize/index.js +16 -0
  37. package/cjs/layouts/Screen/index.js +34 -0
  38. package/cjs/registry/index.js +10 -0
  39. package/cjs/typography/Code/index.js +23 -0
  40. package/cjs/typography/CodeBlock/index.js +23 -0
  41. package/cjs/utils/hooks/useScreen/index.js +60 -0
  42. package/cjs/utils/withDeprecation/index.js +4 -5
  43. package/content/Accordion/Accordion.stories.d.ts +6 -6
  44. package/content/Blockquote/Blockquote.stories.d.ts +5 -5
  45. package/content/Card/Card.stories.d.ts +6 -6
  46. package/content/Chip/Chip.stories.d.ts +3 -3
  47. package/content/Details/Details.stories.d.ts +5 -5
  48. package/content/List/List.stories.d.ts +5 -5
  49. package/content/StepNav/StepNav.stories.d.ts +4 -4
  50. package/content/SummaryList/SummaryList.stories.d.ts +5 -5
  51. package/content/Table/Table.stories.d.ts +5 -5
  52. package/content/Table/TableFloatingScroll/index.js +4 -3
  53. package/content/TaskList/TaskList.stories.d.ts +4 -4
  54. package/content/Timeline/Timeline.stories.d.ts +4 -4
  55. package/feedback/CopyToClipboard/CopyToClipboard.stories.d.ts +3 -3
  56. package/feedback/ErrorSummary/ErrorSummary.stories.d.ts +5 -5
  57. package/feedback/NotificationBanner/NotificationBanner.stories.d.ts +6 -6
  58. package/feedback/PhaseBanner/PhaseBanner.stories.d.ts +5 -5
  59. package/feedback/WarningText/WarningText.stories.d.ts +5 -5
  60. package/form/AutoComplete/AutoComplete.stories.d.ts +3 -3
  61. package/form/AutoComplete/Status/index.js +4 -5
  62. package/form/AutoComplete/index.js +5 -6
  63. package/form/Button/Button.stories.d.ts +5 -5
  64. package/form/Checkbox/Checkbox.stories.d.ts +5 -5
  65. package/form/DateInputContainer/DateInputContainer.stories.d.ts +5 -5
  66. package/form/ErrorMessage/ErrorMessage.stories.d.ts +5 -5
  67. package/form/FileUpload/FileUpload.stories.d.ts +4 -4
  68. package/form/RadioContainer/RadioContainer.stories.d.ts +5 -5
  69. package/form/SelectContainer/SelectContainer.stories.d.ts +5 -5
  70. package/form/SingleCharacterInputs/SingleCharacterInput.stories.d.ts +5 -5
  71. package/form/TextArea/TextArea.stories.d.ts +5 -5
  72. package/form/TextInput/TextInput.stories.d.ts +5 -5
  73. package/index.js +1 -1
  74. package/layouts/Basic/Basic.stories.d.ts +4 -4
  75. package/layouts/Grid/Grid.stories.d.ts +3 -3
  76. package/layouts/Screen/Screen.stories/index.js +9 -0
  77. package/layouts/Screen/Screen.stories/package.json +6 -0
  78. package/layouts/Screen/Screen.stories.d.ts +10 -0
  79. package/layouts/Screen/__stories__/Default/index.js +18 -0
  80. package/layouts/Screen/__stories__/Default/package.json +6 -0
  81. package/layouts/Screen/__stories__/Default.d.ts +3 -0
  82. package/layouts/Screen/__stories__/ScreenDown/index.js +9 -0
  83. package/layouts/Screen/__stories__/ScreenDown/package.json +6 -0
  84. package/layouts/Screen/__stories__/ScreenDown.d.ts +3 -0
  85. package/layouts/Screen/__stories__/SpecificScreenSize/index.js +9 -0
  86. package/layouts/Screen/__stories__/SpecificScreenSize/package.json +6 -0
  87. package/layouts/Screen/__stories__/SpecificScreenSize.d.ts +3 -0
  88. package/layouts/Screen/index.d.ts +6 -0
  89. package/layouts/Screen/index.js +27 -0
  90. package/layouts/Screen/package.json +6 -0
  91. package/layouts/Stack/Stack.stories.d.ts +3 -3
  92. package/navigation/BackLink/BackLink.stories.d.ts +3 -3
  93. package/navigation/BackToTopLink/BackToTopLink.stories.d.ts +3 -3
  94. package/navigation/Breadcrumbs/Breadcrumbs.stories.d.ts +5 -5
  95. package/navigation/Drawer/Drawer.stories.d.ts +5 -5
  96. package/navigation/Dropdown/Dropdown.stories.d.ts +5 -5
  97. package/navigation/Link/Link.stories.d.ts +4 -4
  98. package/navigation/NavList/NavList.stories.d.ts +5 -5
  99. package/navigation/Pagination/Pagination.stories.d.ts +5 -5
  100. package/navigation/SkipLink/SkipLink.stories.d.ts +4 -4
  101. package/navigation/Tabs/Tabs.stories.d.ts +6 -6
  102. package/package.json +4 -3
  103. package/registry/index.js +10 -0
  104. package/registry.d.ts +63 -57
  105. package/src/app/Footer/Footer.stories.js +1 -0
  106. package/src/app/Footer/__stories__/FooterAllInclusive.tsx +2 -2
  107. package/src/app/Footer/__stories__/FooterWithText.tsx +67 -0
  108. package/src/app/Modal/index.tsx +3 -3
  109. package/src/app/OutdatedBrowserBanner/hooks/useOutdatedBrowserCheck.ts +5 -4
  110. package/src/content/Table/TableFloatingScroll.tsx +4 -3
  111. package/src/layouts/Screen/Screen.stories.js +9 -0
  112. package/src/layouts/Screen/__stories__/Default.tsx +22 -0
  113. package/src/layouts/Screen/__stories__/ScreenDown.tsx +11 -0
  114. package/src/layouts/Screen/__stories__/SpecificScreenSize.tsx +11 -0
  115. package/src/layouts/Screen/index.tsx +29 -0
  116. package/src/registry.js +124 -309
  117. package/src/typography/Code/index.tsx +4 -0
  118. package/src/typography/CodeBlock/index.tsx +4 -0
  119. package/src/utils/hooks/useScreen.ts +46 -0
  120. package/typography/Code/index.d.ts +3 -0
  121. package/typography/Code/index.js +3 -0
  122. package/typography/Code/package.json +6 -0
  123. package/typography/CodeBlock/index.d.ts +3 -0
  124. package/typography/CodeBlock/index.js +3 -0
  125. package/typography/CodeBlock/package.json +6 -0
  126. package/typography/Heading/Heading.stories.d.ts +3 -3
  127. package/typography/HeadingCaption/HeadingCaption.stories.d.ts +3 -3
  128. package/typography/Hint/Hint.stories.d.ts +3 -3
  129. package/typography/NormalText/NormalText.stories.d.ts +3 -3
  130. package/typography/Paragraph/Paragraph.stories.d.ts +3 -3
  131. package/utils/VisuallyHidden/VisuallyHidden.stories.d.ts +3 -3
  132. package/utils/hooks/useScreen/index.js +53 -0
  133. package/utils/hooks/useScreen/package.json +6 -0
  134. package/utils/hooks/useScreen.d.ts +7 -0
  135. package/utils/withDeprecation/index.js +4 -5
@@ -0,0 +1,67 @@
1
+ import React from 'react';
2
+ import {
3
+ Footer,
4
+ FooterContainer,
5
+ FooterInfo,
6
+ FooterInfoSection,
7
+ FooterContent,
8
+ FooterList,
9
+ FooterListItem,
10
+ } from '@digigov/ui/app/Footer';
11
+ import Copyright from '@digigov/ui/govgr/Footer/Copyright';
12
+ import HellenicRepublicLogo from '@digigov/ui/govgr/Footer/HellenicRepublicLogo';
13
+ import Link from '@digigov/ui/navigation/Link';
14
+ import VisuallyHidden from '@digigov/ui/utils/VisuallyHidden';
15
+
16
+ export const FooterWithText = () => {
17
+ return (
18
+ <Footer>
19
+ <FooterContainer>
20
+ <FooterInfo>
21
+ <FooterInfoSection grow aria-label="footer info section">
22
+ <FooterContent>
23
+ <VisuallyHidden>Περισσότερες επιλογές</VisuallyHidden>
24
+ <FooterList>
25
+ <FooterListItem>
26
+ <Link href="#">Ενημέρωση σχετικά με την επεξεργασία προσωπικών δεδομένων</Link>
27
+ </FooterListItem>
28
+ </FooterList>
29
+ <Copyright>
30
+ Η άντληση των απαραίτητων στοιχείων πραγματοποιείται μέσω του {' '}
31
+ <Link href="https://gsis.gr/dimosia-dioikisi/ked">
32
+ Κέντρου Διαλειτουργικότητας
33
+ </Link>
34
+ {' '}της {' '}
35
+ <Link href="https://www.gsis.gr/">
36
+ Γενικής Γραμματείας Πληροφοριακών Συστημάτων Δημόσιας Διοίκησης
37
+ </Link>
38
+ .
39
+ </Copyright>
40
+ <Copyright>
41
+ {`Υλοποίηση από το `}
42
+ <Link href="https://grnet.gr/" target="_blank">
43
+ ΕΔΥΤΕ
44
+ <VisuallyHidden>
45
+ {` (ανοίγει σε καινούρια καρτέλα)`}
46
+ </VisuallyHidden>
47
+ </Link>
48
+ {` για το `}
49
+ <Link href="https://mindigital.gr/" target="_blank">
50
+ Υπουργείο Ψηφιακής Διακυβέρνησης
51
+ <VisuallyHidden>
52
+ {` (ανοίγει σε καινούρια καρτέλα)`}
53
+ </VisuallyHidden>
54
+ </Link>
55
+ </Copyright>
56
+ </FooterContent>
57
+ </FooterInfoSection>
58
+ <FooterInfoSection>
59
+ <HellenicRepublicLogo></HellenicRepublicLogo>
60
+ </FooterInfoSection>
61
+ </FooterInfo>
62
+ </FooterContainer>
63
+ </Footer>
64
+ );
65
+ };
66
+
67
+ export default FooterWithText;
@@ -39,13 +39,13 @@ export const ModalBase = React.forwardRef<HTMLDivElement, ModalProps>(
39
39
  }, []);
40
40
  useKeypress('Escape', onEscape);
41
41
  useEffect(() => {
42
+ const lastModalElementInstance = lastModalElement.current;
42
43
  handleFocus();
43
- lastModalElement.current.addEventListener('focus', handleFocus);
44
+ lastModalElementInstance.addEventListener('focus', handleFocus);
44
45
  return () => {
45
- lastModalElement.current.removeEventListener('focus', handleFocus);
46
+ lastModalElementInstance.removeEventListener('focus', handleFocus);
46
47
  };
47
48
  }, [open]);
48
- console.log(ref);
49
49
  return (
50
50
  <ModalContainer
51
51
  open={open}
@@ -7,7 +7,7 @@ const DEFAULT_BROWSER_SUPPORT = {
7
7
  'Mobile Safari': 10,
8
8
  Firefox: 50,
9
9
  Opera: 50,
10
- IE: false,
10
+ IE: 0,
11
11
  };
12
12
 
13
13
  const browserUpdateLinks = {
@@ -22,7 +22,7 @@ const browserUpdateLinks = {
22
22
  const browserNames = Object.keys(DEFAULT_BROWSER_SUPPORT);
23
23
 
24
24
  export function useOutdatedBrowserCheck(
25
- browserSupport: Record<string, number | boolean> = DEFAULT_BROWSER_SUPPORT
25
+ browserSupport: Record<string, number> = DEFAULT_BROWSER_SUPPORT
26
26
  ): [boolean, string] {
27
27
  const currentBrowser = evaluateBrowserVersion();
28
28
  if (!currentBrowser.version || !currentBrowser.name) {
@@ -31,11 +31,12 @@ export function useOutdatedBrowserCheck(
31
31
  const currentBrowserVersion = parseInt(currentBrowser.version);
32
32
  const currentBrowserName = currentBrowser.name;
33
33
  if (browserNames.indexOf(currentBrowser.name) > -1) {
34
- if (browserSupport[currentBrowserName] === false) {
34
+ // this checks if browser is IE
35
+ if (browserSupport[currentBrowserName] === 0) {
35
36
  return [true, browserUpdateLinks.Chrome];
36
37
  } else {
37
38
  if (currentBrowserVersion >= browserSupport[currentBrowserName]) {
38
- //TODO: check if number
39
+ // TODO: check if number
39
40
  return [false, ''];
40
41
  } else {
41
42
  return [true, browserUpdateLinks[currentBrowserName]];
@@ -8,6 +8,7 @@ export function TableFloatingScroll(props) {
8
8
  const [containerWidth, setContainerWidth] = useState(0);
9
9
  const [position, setPosition] = useState<'relative' | 'fixed'>('relative');
10
10
  useEffect(() => {
11
+ const scrollBlockRefInstance = scrollBlockRef.current;
11
12
  contentRef.current = ref.current?.firstChild as HTMLElement;
12
13
  // @ts-ignore
13
14
  setContainerWidth(ref.current.offsetWidth);
@@ -32,10 +33,10 @@ export function TableFloatingScroll(props) {
32
33
  }
33
34
  function onBlockScroll() {
34
35
  // @ts-ignore
35
- ref.current.scrollLeft = scrollBlockRef.current.scrollLeft;
36
+ ref.current.scrollLeft = scrollBlockRefInstance.scrollLeft;
36
37
  }
37
38
  // @ts-ignore
38
- scrollBlockRef.current.addEventListener('scroll', onBlockScroll);
39
+ scrollBlockRefInstance.addEventListener('scroll', onBlockScroll);
39
40
  document.addEventListener('scroll', onBodyScroll);
40
41
  window.addEventListener('resize', () => {
41
42
  // @ts-ignore
@@ -45,7 +46,7 @@ export function TableFloatingScroll(props) {
45
46
  });
46
47
  return () => {
47
48
  // @ts-ignore
48
- scrollBlockRef.current.removeEventListener('scroll', onBlockScroll);
49
+ scrollBlockRefInstance.removeEventListener('scroll', onBlockScroll);
49
50
  document.removeEventListener('scroll', onBodyScroll);
50
51
  };
51
52
  }, []);
@@ -0,0 +1,9 @@
1
+ import Screen from '@digigov/ui/layouts/Screen';
2
+ export default {
3
+ title: 'Digigov UI/layouts/Screen',
4
+ component: Screen,
5
+ displayName: 'Screen',
6
+ };
7
+ export * from '@digigov/ui/layouts/Screen/__stories__/Default';
8
+ export * from '@digigov/ui/layouts/Screen/__stories__/SpecificScreenSize';
9
+ export * from '@digigov/ui/layouts/Screen/__stories__/ScreenDown';
@@ -0,0 +1,22 @@
1
+ import React from 'react';
2
+ import { Screen } from '@digigov/ui/layouts/Screen';
3
+
4
+ export const Default = () => {
5
+ return (
6
+ <>
7
+ <Screen size='mdUp'>
8
+ <div>This is a mdUp screen</div>
9
+ </Screen>
10
+ <Screen size='mdDown'>
11
+ <div>This is a mdDown screen</div>
12
+ </Screen>
13
+ <Screen size='xs'>
14
+ <div>This is a xs screen</div>
15
+ </Screen>
16
+ <Screen size='sm'>
17
+ <div>This is a sm screen</div>
18
+ </Screen>
19
+ </>
20
+ );
21
+ };
22
+ export default Default;
@@ -0,0 +1,11 @@
1
+ import React from 'react';
2
+ import { Screen } from '@digigov/ui/layouts/Screen';
3
+
4
+ export const ScreenDown = () => {
5
+ return (
6
+ <Screen size='mdDown'>
7
+ <div>This is a mdDown screen</div>
8
+ </Screen>
9
+ );
10
+ };
11
+ export default ScreenDown;
@@ -0,0 +1,11 @@
1
+ import React from 'react';
2
+ import { Screen } from '@digigov/ui/layouts/Screen';
3
+
4
+ export const SpecificScreenSize = () => {
5
+ return (
6
+ <Screen size='md'>
7
+ <div>This is a md screen</div>
8
+ </Screen>
9
+ );
10
+ };
11
+ export default SpecificScreenSize;
@@ -0,0 +1,29 @@
1
+ import { useScreenSize, breakpointKeys, Breakpoints } from "@digigov/ui/utils/hooks/useScreen"
2
+ import React from "react";
3
+ export interface ScreenProps {
4
+ size: "xs" | "sm" | "md" | "lg" | "xl" | 'xsUp' | 'smUp' | 'mdUp' | 'lgUp' | 'xlUp' | 'xsDown' | 'smDown' | 'mdDown' | 'lgDown' | 'xlDown';
5
+ }
6
+ export const Screen: React.FC<ScreenProps> = ({ size, children }) => {
7
+ const { screenSize } = useScreenSize();
8
+ if (size?.endsWith('Up')) {
9
+ const breakpoint = size.replace('Up', '') as Breakpoints;
10
+ if (breakpointKeys.indexOf(breakpoint) <= breakpointKeys.indexOf(screenSize)) {
11
+ return <>{children}</>
12
+ } else {
13
+ return null
14
+ }
15
+ } else if (size.endsWith('Down')) {
16
+ const breakpoint = size.replace('Down', '') as Breakpoints;
17
+ if (breakpointKeys.indexOf(breakpoint) > breakpointKeys.indexOf(screenSize)) {
18
+ return <>{children}</>
19
+ }else{
20
+ return null
21
+ }
22
+ }else if (size && size !== screenSize) {
23
+ return null
24
+ }
25
+ return <>{children}</>
26
+
27
+ }
28
+
29
+ export default Screen;