@digigov/ui 2.0.0-76ec20a0 → 2.0.0-7d765d3c

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 (234) hide show
  1. package/app/Footer/__stories__/Default.d.ts +1 -1
  2. package/app/Loader/Loader.stories.d.ts +45 -1
  3. package/app/Loader/__stories__/AccessibilityLoader.d.ts +3 -0
  4. package/app/Loader/__stories__/FullPageLoader.d.ts +1 -0
  5. package/app/Loader/__stories__/Secondary.d.ts +3 -0
  6. package/app/Loader/__stories__/Sizes.d.ts +3 -0
  7. package/app/Loader/index.native.d.ts +2 -2
  8. package/app/Loader/index.native.js.map +2 -2
  9. package/app/Loader/index.web/index.js +17 -1
  10. package/app/Loader/index.web.d.ts +19 -1
  11. package/app/Loader/index.web.js.map +3 -3
  12. package/app/Masthead/Masthead.stories.d.ts +28 -1
  13. package/app/Modal/Modal.stories.d.ts +20 -1
  14. package/app/Modal/hooks/index.js +2 -6
  15. package/app/Modal/hooks.d.ts +2 -2
  16. package/app/Modal/hooks.js.map +2 -2
  17. package/app/Modal/index.web/index.js +5 -5
  18. package/app/Modal/index.web.js.map +2 -2
  19. package/app/NotFound/__stories__/Default.d.ts +1 -1
  20. package/app/OutdatedBrowserBanner/index.d.ts +1 -0
  21. package/app/OutdatedBrowserBanner/index.js.map +2 -2
  22. package/app/PhaseBannerHeader/index.d.ts +1 -1
  23. package/app/PhaseBannerHeader/index.js.map +2 -2
  24. package/app/Skeleton/__stories__/Button.d.ts +1 -1
  25. package/app/Skeleton/__stories__/Default.d.ts +1 -1
  26. package/app/Skeleton/__stories__/NoAnimation.d.ts +1 -1
  27. package/app/hooks/useNotificationArea/index.js +76 -0
  28. package/app/hooks/useNotificationArea/package.json +6 -0
  29. package/app/hooks/useNotificationArea.d.ts +1 -0
  30. package/app/hooks/useNotificationArea.js.map +7 -0
  31. package/cjs/app/Loader/index.native.js.map +2 -2
  32. package/cjs/app/Loader/index.web/index.js +33 -2
  33. package/cjs/app/Loader/index.web.js.map +3 -3
  34. package/cjs/app/Modal/hooks/index.js +2 -6
  35. package/cjs/app/Modal/hooks.js.map +2 -2
  36. package/cjs/app/Modal/index.web/index.js +5 -5
  37. package/cjs/app/Modal/index.web.js.map +2 -2
  38. package/cjs/app/OutdatedBrowserBanner/index.js.map +2 -2
  39. package/cjs/app/PhaseBannerHeader/index.js.map +2 -2
  40. package/cjs/app/hooks/useNotificationArea/index.js +99 -0
  41. package/cjs/app/hooks/useNotificationArea.js.map +7 -0
  42. package/cjs/content/Accordion/hooks.js.map +1 -1
  43. package/cjs/form/AutoComplete/Status/index.js.map +2 -2
  44. package/cjs/form/AutoComplete/index.js +32 -19
  45. package/cjs/form/AutoComplete/index.js.map +2 -2
  46. package/cjs/i18n/locales/el/index.js +51 -23
  47. package/cjs/i18n/locales/el.js.map +2 -2
  48. package/cjs/i18n/locales/en/index.js +36 -8
  49. package/cjs/i18n/locales/en.js.map +2 -2
  50. package/cjs/layouts/Hidden/index.js +19 -0
  51. package/cjs/layouts/Hidden/index.js.map +3 -3
  52. package/cjs/lazy.js +1 -1
  53. package/cjs/lazy.js.map +2 -2
  54. package/cjs/navigation/Drawer/hooks/index.js +2 -6
  55. package/cjs/navigation/Drawer/hooks.js.map +2 -2
  56. package/cjs/navigation/Pagination/hooks/index.js +2 -2
  57. package/cjs/navigation/Pagination/hooks.js.map +2 -2
  58. package/cjs/navigation/Tabs/hooks.js.map +1 -1
  59. package/cjs/registry.js +50 -48
  60. package/cjs/registry.js.map +2 -2
  61. package/cjs/typography/CodeBlock/index.js +1 -2
  62. package/cjs/typography/CodeBlock/index.js.map +2 -2
  63. package/cjs/utils/hooks/useDebounce/index.js +1 -1
  64. package/cjs/utils/hooks/useDebounce.js.map +2 -2
  65. package/content/Accordion/Accordion.stories.d.ts +27 -16
  66. package/content/Accordion/hooks.js.map +1 -1
  67. package/content/Chip/__stories__/Default.d.ts +1 -1
  68. package/content/SummaryList/SummaryList.stories.d.ts +4 -1
  69. package/feedback/NotificationBanner/NotificationBanner.stories.d.ts +14 -13
  70. package/feedback/NotificationBanner/__stories__/Expanded.d.ts +3 -0
  71. package/feedback/PhaseBanner/PhaseBanner.stories.d.ts +1 -1
  72. package/form/AutoComplete/AutoComplete.stories.d.ts +57 -16
  73. package/form/AutoComplete/Status/index.d.ts +1 -1
  74. package/form/AutoComplete/Status/index.js.map +2 -2
  75. package/form/AutoComplete/__stories__/WithCustomValue.d.ts +3 -0
  76. package/form/AutoComplete/__stories__/WithHint.d.ts +3 -0
  77. package/form/AutoComplete/index.d.ts +4 -3
  78. package/form/AutoComplete/index.js +32 -18
  79. package/form/AutoComplete/index.js.map +2 -2
  80. package/form/Button/__stories__/ThemeToggle.d.ts +1 -1
  81. package/form/FileUpload/FileUpload.stories.d.ts +1 -0
  82. package/form/FileUpload/__stories__/WithVariantLink.d.ts +3 -0
  83. package/i18n/locales/el/index.js +51 -23
  84. package/i18n/locales/el.d.ts +33 -5
  85. package/i18n/locales/el.js.map +2 -2
  86. package/i18n/locales/en/index.js +36 -8
  87. package/i18n/locales/en.d.ts +32 -4
  88. package/i18n/locales/en.js.map +2 -2
  89. package/index.js +1 -1
  90. package/layouts/Grid/Grid.stories.d.ts +82 -0
  91. package/layouts/Hidden/Hidden.stories.d.ts +115 -0
  92. package/layouts/Hidden/index.d.ts +2 -0
  93. package/layouts/Hidden/index.js +5 -0
  94. package/layouts/Hidden/index.js.map +2 -2
  95. package/layouts/Stack/Stack.stories.d.ts +76 -0
  96. package/lazy/index.js +1 -1
  97. package/navigation/BackToTopLink/BackToTopLink.stories.d.ts +2 -0
  98. package/navigation/Drawer/hooks/index.js +2 -6
  99. package/navigation/Drawer/hooks.js.map +2 -2
  100. package/navigation/Dropdown/Dropdown.stories.d.ts +75 -1
  101. package/navigation/Pagination/hooks/index.js +2 -2
  102. package/navigation/Pagination/hooks.js.map +2 -2
  103. package/navigation/SkipLink/SkipLink.stories.d.ts +2 -0
  104. package/navigation/Tabs/hooks.d.ts +1 -1
  105. package/navigation/Tabs/hooks.js.map +1 -1
  106. package/package.json +7 -7
  107. package/registry/index.js +50 -48
  108. package/src/app/BannerContainer/__stories__/CookiesBanner.tsx +1 -21
  109. package/src/app/Footer/__stories__/Default.tsx +1 -1
  110. package/src/app/Header/doc.mdx +3 -3
  111. package/src/app/Loader/Loader.stories.jsx +54 -0
  112. package/src/app/Loader/__stories__/AccessibilityLoader.tsx +27 -0
  113. package/src/app/Loader/__stories__/FullPageLoader.tsx +9 -5
  114. package/src/app/Loader/__stories__/Secondary.tsx +11 -0
  115. package/src/app/Loader/__stories__/Sizes.tsx +18 -0
  116. package/src/app/Loader/doc.mdx +39 -0
  117. package/src/app/Loader/index.native.tsx +2 -2
  118. package/src/app/Loader/index.test.tsx +12 -0
  119. package/src/app/Loader/index.web.tsx +39 -1
  120. package/src/app/Masthead/Masthead.stories.jsx +66 -0
  121. package/src/app/Masthead/doc.mdx +3 -3
  122. package/src/app/Modal/Modal.stories.jsx +64 -0
  123. package/src/app/Modal/__stories__/AlertDialog.tsx +1 -1
  124. package/src/app/Modal/__stories__/Auto.tsx +1 -1
  125. package/src/app/Modal/__stories__/Default.tsx +1 -1
  126. package/src/app/Modal/__stories__/Dense.tsx +1 -1
  127. package/src/app/Modal/__stories__/WithHooks.tsx +1 -1
  128. package/src/app/Modal/__stories__/WithoutModalGaps.tsx +1 -1
  129. package/src/app/Modal/hooks.ts +8 -8
  130. package/src/app/Modal/index.web.tsx +5 -7
  131. package/src/app/NotFound/__stories__/Default.tsx +1 -1
  132. package/src/app/OutdatedBrowserBanner/index.tsx +1 -1
  133. package/src/app/PhaseBannerHeader/index.tsx +1 -1
  134. package/src/app/Skeleton/__stories__/Button.tsx +1 -1
  135. package/src/app/Skeleton/__stories__/Default.tsx +1 -1
  136. package/src/app/Skeleton/__stories__/NoAnimation.tsx +1 -1
  137. package/src/app/hooks/useNotificationArea.tsx +105 -0
  138. package/src/content/Accordion/Accordion.stories.jsx +9 -1
  139. package/src/content/Accordion/doc.mdx +1 -2
  140. package/src/content/Accordion/hooks.ts +1 -1
  141. package/src/content/Card/doc.mdx +11 -11
  142. package/src/content/Chip/__stories__/Default.tsx +1 -1
  143. package/src/content/Chip/doc.mdx +4 -4
  144. package/src/content/List/__snapshots__/index.spec.tsx.snap +13 -3
  145. package/src/content/List/doc.mdx +3 -3
  146. package/src/content/SummaryList/SummaryList.stories.js +5 -1
  147. package/src/content/TaskList/doc.mdx +1 -1
  148. package/src/content/Timeline/doc.mdx +1 -1
  149. package/src/feedback/CopyToClipboard/doc.mdx +1 -1
  150. package/src/feedback/ErrorSummary/__snapshots__/index.spec.tsx.snap +13 -3
  151. package/src/feedback/ErrorSummary/doc.mdx +1 -1
  152. package/src/feedback/NotificationBanner/NotificationBanner.stories.js +10 -9
  153. package/src/feedback/NotificationBanner/__snapshots__/index.spec.tsx.snap +24 -14
  154. package/src/feedback/NotificationBanner/__stories__/Expanded.tsx +27 -0
  155. package/src/feedback/NotificationBanner/doc.mdx +15 -6
  156. package/src/feedback/NotificationBanner/index.test.tsx +4 -0
  157. package/src/feedback/PhaseBanner/PhaseBanner.stories.jsx +1 -1
  158. package/src/feedback/WarningText/__snapshots__/index.spec.tsx.snap +13 -3
  159. package/src/form/AutoComplete/AutoComplete.stories.jsx +19 -4
  160. package/src/form/AutoComplete/Status/index.tsx +1 -1
  161. package/src/form/AutoComplete/__stories__/WithAutoSelect.tsx +1 -17
  162. package/src/form/AutoComplete/__stories__/WithCustomValue.tsx +28 -0
  163. package/src/form/AutoComplete/__stories__/WithDefaultValue.tsx +1 -6
  164. package/src/form/AutoComplete/__stories__/WithHint.tsx +16 -0
  165. package/src/form/AutoComplete/doc.mdx +14 -13
  166. package/src/form/AutoComplete/index.test.tsx +8 -0
  167. package/src/form/AutoComplete/index.tsx +38 -25
  168. package/src/form/Button/__stories__/ThemeToggle.tsx +1 -1
  169. package/src/form/Button/doc.mdx +25 -14
  170. package/src/form/Checkbox/doc.mdx +1 -1
  171. package/src/form/FileUpload/FileUpload.stories.js +1 -0
  172. package/src/form/FileUpload/__stories__/WithVariantLink.tsx +24 -0
  173. package/src/form/FileUpload/index.test.tsx +4 -0
  174. package/src/form/RadioContainer/doc.mdx +4 -4
  175. package/src/i18n/locales/el.ts +73 -22
  176. package/src/i18n/locales/en.ts +43 -7
  177. package/src/layouts/Basic/doc.mdx +0 -2
  178. package/src/layouts/Grid/Grid.stories.jsx +143 -0
  179. package/src/layouts/Hidden/Hidden.stories.jsx +62 -0
  180. package/src/layouts/Hidden/index.tsx +3 -0
  181. package/src/layouts/Stack/Stack.stories.jsx +104 -0
  182. package/src/lazy.js +1 -1
  183. package/src/navigation/BackToTopLink/BackToTopLink.stories.js +4 -0
  184. package/src/navigation/BackToTopLink/doc.mdx +22 -0
  185. package/src/navigation/Breadcrumbs/doc.mdx +4 -0
  186. package/src/navigation/Drawer/hooks.ts +6 -6
  187. package/src/navigation/Dropdown/Dropdown.stories.jsx +118 -0
  188. package/src/navigation/Dropdown/doc.mdx +24 -2
  189. package/src/navigation/NavList/__snapshots__/index.spec.tsx.snap +13 -3
  190. package/src/navigation/NavList/doc.mdx +1 -1
  191. package/src/navigation/Pagination/doc.mdx +5 -1
  192. package/src/navigation/Pagination/hooks.ts +2 -2
  193. package/src/navigation/SkipLink/SkipLink.stories.js +4 -0
  194. package/src/navigation/SkipLink/doc.mdx +19 -0
  195. package/src/navigation/Tabs/hooks.ts +2 -2
  196. package/src/registry.js +50 -48
  197. package/src/typography/CodeBlock/CodeBlock.stories.js +24 -0
  198. package/src/typography/CodeBlock/index.tsx +14 -12
  199. package/src/typography/Heading/Heading.stories.js +12 -0
  200. package/src/typography/HeadingCaption/HeadingCaption.stories.js +9 -0
  201. package/src/typography/Hint/Hint.stories.js +11 -0
  202. package/src/typography/Hint/__stories__/Default.tsx +1 -1
  203. package/src/typography/Hint/__stories__/FontSizes.tsx +4 -4
  204. package/src/typography/NormalText/NormalText.stories.js +10 -0
  205. package/src/typography/NormalText/__stories__/Default.tsx +1 -1
  206. package/src/typography/Paragraph/Paragraph.stories.js +23 -0
  207. package/src/typography/Paragraph/__stories__/Default.tsx +1 -1
  208. package/src/typography/Paragraph/__stories__/LeadVariant.tsx +3 -1
  209. package/src/typography/Paragraph/__stories__/SmallVariant.tsx +3 -1
  210. package/src/utils/hooks/useDebounce.ts +1 -1
  211. package/stories-registry/index.js +170 -154
  212. package/typography/CodeBlock/CodeBlock.stories.d.ts +11 -0
  213. package/typography/CodeBlock/index.d.ts +1 -1
  214. package/typography/CodeBlock/index.js +1 -2
  215. package/typography/CodeBlock/index.js.map +2 -2
  216. package/typography/Heading/Heading.stories.d.ts +10 -0
  217. package/typography/HeadingCaption/HeadingCaption.stories.d.ts +8 -0
  218. package/typography/Hint/Hint.stories.d.ts +9 -0
  219. package/typography/Hint/__stories__/Default.d.ts +1 -1
  220. package/typography/NormalText/NormalText.stories.d.ts +8 -0
  221. package/typography/NormalText/__stories__/Default.d.ts +1 -1
  222. package/typography/Paragraph/Paragraph.stories.d.ts +37 -0
  223. package/typography/Paragraph/__stories__/Default.d.ts +1 -1
  224. package/typography/Paragraph/__stories__/LeadVariant.d.ts +1 -1
  225. package/typography/Paragraph/__stories__/SmallVariant.d.ts +1 -1
  226. package/utils/hooks/useDebounce/index.js +1 -1
  227. package/utils/hooks/useDebounce.js.map +2 -2
  228. package/utils/hooks/useLatest.d.ts +1 -1
  229. package/src/app/Loader/Loader.stories.js +0 -8
  230. package/src/app/Masthead/Masthead.stories.js +0 -17
  231. package/src/app/Modal/Modal.stories.js +0 -18
  232. package/src/layouts/Grid/Grid.stories.js +0 -12
  233. package/src/layouts/Stack/Stack.stories.js +0 -15
  234. package/src/navigation/Dropdown/Dropdown.stories.js +0 -23
@@ -1,3 +1,3 @@
1
1
  import React from 'react';
2
- export declare const Default: () => React.JSX.Element;
2
+ export declare const Default: (_: any) => React.JSX.Element;
3
3
  export default Default;
@@ -2,8 +2,52 @@ declare namespace _default {
2
2
  export let title: string;
3
3
  export { CircularProgress as component };
4
4
  export let displayName: string;
5
+ export let tags: string[];
6
+ export { doc as markdown };
5
7
  }
6
8
  export default _default;
9
+ export namespace WithControls {
10
+ function render(args: any): React.JSX.Element;
11
+ namespace args {
12
+ let loadingText: string;
13
+ let loadingFinishedText: string;
14
+ let color: string;
15
+ let size: string;
16
+ }
17
+ namespace argsTypes {
18
+ export namespace loadingText_1 {
19
+ let control: string;
20
+ }
21
+ export { loadingText_1 as loadingText };
22
+ export namespace loadingFinishedText_1 {
23
+ let control_1: string;
24
+ export { control_1 as control };
25
+ }
26
+ export { loadingFinishedText_1 as loadingFinishedText };
27
+ export namespace color_1 {
28
+ export namespace control_2 {
29
+ let type: string;
30
+ }
31
+ export { control_2 as control };
32
+ export let options: string[];
33
+ }
34
+ export { color_1 as color };
35
+ export namespace size_1 {
36
+ export namespace control_3 {
37
+ let type_1: string;
38
+ export { type_1 as type };
39
+ }
40
+ export { control_3 as control };
41
+ let options_1: string[];
42
+ export { options_1 as options };
43
+ }
44
+ export { size_1 as size };
45
+ }
46
+ }
7
47
  export { Default } from "@digigov/ui/app/Loader/__stories__/Default";
48
+ export { Secondary } from "@digigov/ui/app/Loader/__stories__/Secondary";
49
+ export { Sizes } from "@digigov/ui/app/Loader/__stories__/Sizes";
8
50
  export { FullPageLoader } from "@digigov/ui/app/Loader/__stories__/FullPageLoader";
9
- import CircularProgress from '@digigov/ui/app/Loader';
51
+ export { AccessibilityLoader } from "@digigov/ui/app/Loader/__stories__/AccessibilityLoader";
52
+ import { CircularProgress } from '@digigov/ui/app/Loader';
53
+ import React from 'react';
@@ -0,0 +1,3 @@
1
+ import React from 'react';
2
+ export declare const AccessibilityLoader: (_: any) => React.JSX.Element;
3
+ export default AccessibilityLoader;
@@ -1,2 +1,3 @@
1
1
  import React from 'react';
2
2
  export declare const FullPageLoader: (_: any) => React.JSX.Element;
3
+ export default FullPageLoader;
@@ -0,0 +1,3 @@
1
+ import React from 'react';
2
+ export declare const Secondary: (_: any) => React.JSX.Element;
3
+ export default Secondary;
@@ -0,0 +1,3 @@
1
+ import React from 'react';
2
+ export declare const Sizes: (_: any) => React.JSX.Element;
3
+ export default Sizes;
@@ -1,3 +1,3 @@
1
1
  import React from 'react';
2
- import { CircularProgressProps } from '@digigov/react-core/CircularProgress';
3
- export declare const CircularProgress: React.FC<CircularProgressProps>;
2
+ import { CircularProgressBaseProps } from '@digigov/react-core/CircularProgressBase';
3
+ export declare const CircularProgress: React.FC<CircularProgressBaseProps>;
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/app/Loader/index.native.tsx"],
4
- "sourcesContent": ["import React, { useRef, useEffect } from 'react';\nimport { Animated, Easing } from 'react-native';\nimport Svg, { Circle } from 'react-native-svg';\nimport { CircularProgressProps } from '@digigov/react-core/CircularProgress';\n\nexport const CircularProgress: React.FC<CircularProgressProps> = ({\n size = 'md',\n color = 'primary',\n}) => {\n const sizes = {\n sm: 20,\n md: 40,\n lg: 50,\n };\n const strokeWidth = sizes[size] / 4;\n const radius = (sizes[size] - strokeWidth) / 2;\n const circumference = 2 * Math.PI * radius;\n const rotateAnim = useRef(new Animated.Value(0)).current;\n const dashAnim = useRef(new Animated.Value(circumference)).current;\n\n const progressColor = color === 'primary' ? '#003375' : '#fff';\n const backgroundColor = '#01b0f0';\n const duration = 4000;\n\n useEffect(() => {\n Animated.loop(\n Animated.timing(rotateAnim, {\n toValue: 1,\n duration: 10000,\n easing: Easing.linear,\n useNativeDriver: true,\n })\n ).start();\n }, [rotateAnim]);\n\n useEffect(() => {\n Animated.loop(\n Animated.sequence([\n Animated.timing(dashAnim, {\n toValue: 0,\n duration: duration * 0.4,\n easing: Easing.inOut(Easing.ease),\n useNativeDriver: true,\n }),\n Animated.timing(dashAnim, {\n toValue: circumference,\n duration: duration * 0.6,\n easing: Easing.inOut(Easing.ease),\n useNativeDriver: true,\n }),\n ])\n ).start();\n }, [dashAnim, duration, circumference]);\n\n const rotateInterpolate = rotateAnim.interpolate({\n inputRange: [0, 1],\n outputRange: ['0deg', '360deg'],\n });\n\n return (\n <Animated.View\n style={[\n {\n width: sizes[size],\n height: sizes[size],\n transform: [{ rotate: rotateInterpolate }],\n },\n ]}\n >\n <Svg\n width={sizes[size]}\n height={sizes[size]}\n viewBox={`0 0 ${sizes[size]} ${sizes[size]}`}\n >\n <Circle\n cx={sizes[size] / 2}\n cy={sizes[size] / 2}\n r={radius}\n stroke={backgroundColor}\n strokeWidth={strokeWidth}\n fill=\"none\"\n />\n <AnimatedCircle\n cx={sizes[size] / 2}\n cy={sizes[size] / 2}\n r={radius}\n stroke={progressColor}\n strokeWidth={strokeWidth}\n strokeDasharray={`${circumference}`}\n strokeDashoffset={dashAnim}\n fill=\"none\"\n />\n </Svg>\n </Animated.View>\n );\n};\n\nconst AnimatedCircle = Animated.createAnimatedComponent(Circle);\n"],
5
- "mappings": "AAAA,OAAO,SAAS,QAAQ,iBAAiB;AACzC,SAAS,UAAU,cAAc;AACjC,OAAO,OAAO,cAAc;AAGrB,MAAM,mBAAoD,CAAC;AAAA,EAChE,OAAO;AAAA,EACP,QAAQ;AACV,MAAM;AACJ,QAAM,QAAQ;AAAA,IACZ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,EACN;AACA,QAAM,cAAc,MAAM,IAAI,IAAI;AAClC,QAAM,UAAU,MAAM,IAAI,IAAI,eAAe;AAC7C,QAAM,gBAAgB,IAAI,KAAK,KAAK;AACpC,QAAM,aAAa,OAAO,IAAI,SAAS,MAAM,CAAC,CAAC,EAAE;AACjD,QAAM,WAAW,OAAO,IAAI,SAAS,MAAM,aAAa,CAAC,EAAE;AAE3D,QAAM,gBAAgB,UAAU,YAAY,YAAY;AACxD,QAAM,kBAAkB;AACxB,QAAM,WAAW;AAEjB,YAAU,MAAM;AACd,aAAS;AAAA,MACP,SAAS,OAAO,YAAY;AAAA,QAC1B,SAAS;AAAA,QACT,UAAU;AAAA,QACV,QAAQ,OAAO;AAAA,QACf,iBAAiB;AAAA,MACnB,CAAC;AAAA,IACH,EAAE,MAAM;AAAA,EACV,GAAG,CAAC,UAAU,CAAC;AAEf,YAAU,MAAM;AACd,aAAS;AAAA,MACP,SAAS,SAAS;AAAA,QAChB,SAAS,OAAO,UAAU;AAAA,UACxB,SAAS;AAAA,UACT,UAAU,WAAW;AAAA,UACrB,QAAQ,OAAO,MAAM,OAAO,IAAI;AAAA,UAChC,iBAAiB;AAAA,QACnB,CAAC;AAAA,QACD,SAAS,OAAO,UAAU;AAAA,UACxB,SAAS;AAAA,UACT,UAAU,WAAW;AAAA,UACrB,QAAQ,OAAO,MAAM,OAAO,IAAI;AAAA,UAChC,iBAAiB;AAAA,QACnB,CAAC;AAAA,MACH,CAAC;AAAA,IACH,EAAE,MAAM;AAAA,EACV,GAAG,CAAC,UAAU,UAAU,aAAa,CAAC;AAEtC,QAAM,oBAAoB,WAAW,YAAY;AAAA,IAC/C,YAAY,CAAC,GAAG,CAAC;AAAA,IACjB,aAAa,CAAC,QAAQ,QAAQ;AAAA,EAChC,CAAC;AAED,SACE;AAAA,IAAC,SAAS;AAAA,IAAT;AAAA,MACC,OAAO;AAAA,QACL;AAAA,UACE,OAAO,MAAM,IAAI;AAAA,UACjB,QAAQ,MAAM,IAAI;AAAA,UAClB,WAAW,CAAC,EAAE,QAAQ,kBAAkB,CAAC;AAAA,QAC3C;AAAA,MACF;AAAA;AAAA,IAEA;AAAA,MAAC;AAAA;AAAA,QACC,OAAO,MAAM,IAAI;AAAA,QACjB,QAAQ,MAAM,IAAI;AAAA,QAClB,SAAS,OAAO,MAAM,IAAI,CAAC,IAAI,MAAM,IAAI,CAAC;AAAA;AAAA,MAE1C;AAAA,QAAC;AAAA;AAAA,UACC,IAAI,MAAM,IAAI,IAAI;AAAA,UAClB,IAAI,MAAM,IAAI,IAAI;AAAA,UAClB,GAAG;AAAA,UACH,QAAQ;AAAA,UACR;AAAA,UACA,MAAK;AAAA;AAAA,MACP;AAAA,MACA;AAAA,QAAC;AAAA;AAAA,UACC,IAAI,MAAM,IAAI,IAAI;AAAA,UAClB,IAAI,MAAM,IAAI,IAAI;AAAA,UAClB,GAAG;AAAA,UACH,QAAQ;AAAA,UACR;AAAA,UACA,iBAAiB,GAAG,aAAa;AAAA,UACjC,kBAAkB;AAAA,UAClB,MAAK;AAAA;AAAA,MACP;AAAA,IACF;AAAA,EACF;AAEJ;AAEA,MAAM,iBAAiB,SAAS,wBAAwB,MAAM;",
4
+ "sourcesContent": ["import React, { useRef, useEffect } from 'react';\nimport { Animated, Easing } from 'react-native';\nimport Svg, { Circle } from 'react-native-svg';\nimport { CircularProgressBaseProps } from '@digigov/react-core/CircularProgressBase';\n\nexport const CircularProgress: React.FC<CircularProgressBaseProps> = ({\n size = 'md',\n color = 'primary',\n}) => {\n const sizes = {\n sm: 20,\n md: 40,\n lg: 50,\n };\n const strokeWidth = sizes[size] / 4;\n const radius = (sizes[size] - strokeWidth) / 2;\n const circumference = 2 * Math.PI * radius;\n const rotateAnim = useRef(new Animated.Value(0)).current;\n const dashAnim = useRef(new Animated.Value(circumference)).current;\n\n const progressColor = color === 'primary' ? '#003375' : '#fff';\n const backgroundColor = '#01b0f0';\n const duration = 4000;\n\n useEffect(() => {\n Animated.loop(\n Animated.timing(rotateAnim, {\n toValue: 1,\n duration: 10000,\n easing: Easing.linear,\n useNativeDriver: true,\n })\n ).start();\n }, [rotateAnim]);\n\n useEffect(() => {\n Animated.loop(\n Animated.sequence([\n Animated.timing(dashAnim, {\n toValue: 0,\n duration: duration * 0.4,\n easing: Easing.inOut(Easing.ease),\n useNativeDriver: true,\n }),\n Animated.timing(dashAnim, {\n toValue: circumference,\n duration: duration * 0.6,\n easing: Easing.inOut(Easing.ease),\n useNativeDriver: true,\n }),\n ])\n ).start();\n }, [dashAnim, duration, circumference]);\n\n const rotateInterpolate = rotateAnim.interpolate({\n inputRange: [0, 1],\n outputRange: ['0deg', '360deg'],\n });\n\n return (\n <Animated.View\n style={[\n {\n width: sizes[size],\n height: sizes[size],\n transform: [{ rotate: rotateInterpolate }],\n },\n ]}\n >\n <Svg\n width={sizes[size]}\n height={sizes[size]}\n viewBox={`0 0 ${sizes[size]} ${sizes[size]}`}\n >\n <Circle\n cx={sizes[size] / 2}\n cy={sizes[size] / 2}\n r={radius}\n stroke={backgroundColor}\n strokeWidth={strokeWidth}\n fill=\"none\"\n />\n <AnimatedCircle\n cx={sizes[size] / 2}\n cy={sizes[size] / 2}\n r={radius}\n stroke={progressColor}\n strokeWidth={strokeWidth}\n strokeDasharray={`${circumference}`}\n strokeDashoffset={dashAnim}\n fill=\"none\"\n />\n </Svg>\n </Animated.View>\n );\n};\n\nconst AnimatedCircle = Animated.createAnimatedComponent(Circle);\n"],
5
+ "mappings": "AAAA,OAAO,SAAS,QAAQ,iBAAiB;AACzC,SAAS,UAAU,cAAc;AACjC,OAAO,OAAO,cAAc;AAGrB,MAAM,mBAAwD,CAAC;AAAA,EACpE,OAAO;AAAA,EACP,QAAQ;AACV,MAAM;AACJ,QAAM,QAAQ;AAAA,IACZ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,EACN;AACA,QAAM,cAAc,MAAM,IAAI,IAAI;AAClC,QAAM,UAAU,MAAM,IAAI,IAAI,eAAe;AAC7C,QAAM,gBAAgB,IAAI,KAAK,KAAK;AACpC,QAAM,aAAa,OAAO,IAAI,SAAS,MAAM,CAAC,CAAC,EAAE;AACjD,QAAM,WAAW,OAAO,IAAI,SAAS,MAAM,aAAa,CAAC,EAAE;AAE3D,QAAM,gBAAgB,UAAU,YAAY,YAAY;AACxD,QAAM,kBAAkB;AACxB,QAAM,WAAW;AAEjB,YAAU,MAAM;AACd,aAAS;AAAA,MACP,SAAS,OAAO,YAAY;AAAA,QAC1B,SAAS;AAAA,QACT,UAAU;AAAA,QACV,QAAQ,OAAO;AAAA,QACf,iBAAiB;AAAA,MACnB,CAAC;AAAA,IACH,EAAE,MAAM;AAAA,EACV,GAAG,CAAC,UAAU,CAAC;AAEf,YAAU,MAAM;AACd,aAAS;AAAA,MACP,SAAS,SAAS;AAAA,QAChB,SAAS,OAAO,UAAU;AAAA,UACxB,SAAS;AAAA,UACT,UAAU,WAAW;AAAA,UACrB,QAAQ,OAAO,MAAM,OAAO,IAAI;AAAA,UAChC,iBAAiB;AAAA,QACnB,CAAC;AAAA,QACD,SAAS,OAAO,UAAU;AAAA,UACxB,SAAS;AAAA,UACT,UAAU,WAAW;AAAA,UACrB,QAAQ,OAAO,MAAM,OAAO,IAAI;AAAA,UAChC,iBAAiB;AAAA,QACnB,CAAC;AAAA,MACH,CAAC;AAAA,IACH,EAAE,MAAM;AAAA,EACV,GAAG,CAAC,UAAU,UAAU,aAAa,CAAC;AAEtC,QAAM,oBAAoB,WAAW,YAAY;AAAA,IAC/C,YAAY,CAAC,GAAG,CAAC;AAAA,IACjB,aAAa,CAAC,QAAQ,QAAQ;AAAA,EAChC,CAAC;AAED,SACE;AAAA,IAAC,SAAS;AAAA,IAAT;AAAA,MACC,OAAO;AAAA,QACL;AAAA,UACE,OAAO,MAAM,IAAI;AAAA,UACjB,QAAQ,MAAM,IAAI;AAAA,UAClB,WAAW,CAAC,EAAE,QAAQ,kBAAkB,CAAC;AAAA,QAC3C;AAAA,MACF;AAAA;AAAA,IAEA;AAAA,MAAC;AAAA;AAAA,QACC,OAAO,MAAM,IAAI;AAAA,QACjB,QAAQ,MAAM,IAAI;AAAA,QAClB,SAAS,OAAO,MAAM,IAAI,CAAC,IAAI,MAAM,IAAI,CAAC;AAAA;AAAA,MAE1C;AAAA,QAAC;AAAA;AAAA,UACC,IAAI,MAAM,IAAI,IAAI;AAAA,UAClB,IAAI,MAAM,IAAI,IAAI;AAAA,UAClB,GAAG;AAAA,UACH,QAAQ;AAAA,UACR;AAAA,UACA,MAAK;AAAA;AAAA,MACP;AAAA,MACA;AAAA,QAAC;AAAA;AAAA,UACC,IAAI,MAAM,IAAI,IAAI;AAAA,UAClB,IAAI,MAAM,IAAI,IAAI;AAAA,UAClB,GAAG;AAAA,UACH,QAAQ;AAAA,UACR;AAAA,UACA,iBAAiB,GAAG,aAAa;AAAA,UACjC,kBAAkB;AAAA,UAClB,MAAK;AAAA;AAAA,MACP;AAAA,IACF;AAAA,EACF;AAEJ;AAEA,MAAM,iBAAiB,SAAS,wBAAwB,MAAM;",
6
6
  "names": []
7
7
  }
@@ -1,2 +1,18 @@
1
- export * from "@digigov/react-core/CircularProgress";
1
+ import React from "react";
2
+ export * from "@digigov/react-core/CircularProgressBase";
3
+ import CircularProgressBase from "@digigov/react-core/CircularProgressBase";
4
+ import { useNotificationArea } from "@digigov/ui/app/hooks/useNotificationArea";
5
+ const CircularProgress = React.forwardRef(function CircularProgress2({
6
+ loadingText = "\u0393\u03AF\u03BD\u03B5\u03C4\u03B1\u03B9 \u03C6\u03CC\u03C1\u03C4\u03C9\u03C3\u03B7...",
7
+ loadingFinishedText = "\u0397 \u03C6\u03CC\u03C1\u03C4\u03C9\u03C3\u03B7 \u03BF\u03BB\u03BF\u03BA\u03BB\u03B7\u03C1\u03CE\u03B8\u03B7\u03BA\u03B5.",
8
+ ...props
9
+ }, ref) {
10
+ useNotificationArea(loadingText, loadingFinishedText);
11
+ return /* @__PURE__ */ React.createElement(CircularProgressBase, { ref, ...props });
12
+ });
13
+ var index_web_default = CircularProgress;
14
+ export {
15
+ CircularProgress,
16
+ index_web_default as default
17
+ };
2
18
  //# sourceMappingURL=index.web.js.map
@@ -1 +1,19 @@
1
- export * from '@digigov/react-core/CircularProgress';
1
+ import React from 'react';
2
+ export * from '@digigov/react-core/CircularProgressBase';
3
+ import { CircularProgressBaseProps } from '@digigov/react-core/CircularProgressBase';
4
+ export interface CircularProgressProps extends CircularProgressBaseProps {
5
+ /**
6
+ * loadingText prop is optional
7
+ * Text for screen readers when loading starts
8
+ * @default "Γίνεται φόρτωση..."
9
+ */
10
+ loadingText?: string;
11
+ /**
12
+ * loadingFinishedText prop is optional
13
+ * Text for screen readers when loading finishes
14
+ * @default "Η φόρτωση ολοκληρώθηκε."
15
+ */
16
+ loadingFinishedText?: string;
17
+ }
18
+ export declare const CircularProgress: React.ForwardRefExoticComponent<Omit<CircularProgressProps, "ref"> & React.RefAttributes<SVGElement>>;
19
+ export default CircularProgress;
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/app/Loader/index.web.tsx"],
4
- "sourcesContent": ["export * from '@digigov/react-core/CircularProgress';\n"],
5
- "mappings": "AAAA,cAAc;",
6
- "names": []
4
+ "sourcesContent": ["import React from 'react';\nexport * from '@digigov/react-core/CircularProgressBase';\nimport CircularProgressBase, {\n CircularProgressBaseProps,\n} from '@digigov/react-core/CircularProgressBase';\nimport { useNotificationArea } from '@digigov/ui/app/hooks/useNotificationArea';\n\nexport interface CircularProgressProps extends CircularProgressBaseProps {\n /**\n * loadingText prop is optional\n * Text for screen readers when loading starts\n * @default \"\u0393\u03AF\u03BD\u03B5\u03C4\u03B1\u03B9 \u03C6\u03CC\u03C1\u03C4\u03C9\u03C3\u03B7...\"\n */\n loadingText?: string;\n /**\n * loadingFinishedText prop is optional\n * Text for screen readers when loading finishes\n * @default \"\u0397 \u03C6\u03CC\u03C1\u03C4\u03C9\u03C3\u03B7 \u03BF\u03BB\u03BF\u03BA\u03BB\u03B7\u03C1\u03CE\u03B8\u03B7\u03BA\u03B5.\"\n */\n loadingFinishedText?: string;\n}\n\nexport const CircularProgress = React.forwardRef<\n SVGElement,\n CircularProgressProps\n>(function CircularProgress(\n {\n loadingText = '\u0393\u03AF\u03BD\u03B5\u03C4\u03B1\u03B9 \u03C6\u03CC\u03C1\u03C4\u03C9\u03C3\u03B7...',\n loadingFinishedText = '\u0397 \u03C6\u03CC\u03C1\u03C4\u03C9\u03C3\u03B7 \u03BF\u03BB\u03BF\u03BA\u03BB\u03B7\u03C1\u03CE\u03B8\u03B7\u03BA\u03B5.',\n ...props\n },\n ref\n) {\n useNotificationArea(loadingText, loadingFinishedText);\n\n return <CircularProgressBase ref={ref} {...props} />;\n});\n\nexport default CircularProgress;\n"],
5
+ "mappings": "AAAA,OAAO,WAAW;AAClB,cAAc;AACd,OAAO,0BAEA;AACP,SAAS,2BAA2B;AAiB7B,MAAM,mBAAmB,MAAM,WAGpC,SAASA,kBACT;AAAA,EACE,cAAc;AAAA,EACd,sBAAsB;AAAA,EACtB,GAAG;AACL,GACA,KACA;AACA,sBAAoB,aAAa,mBAAmB;AAEpD,SAAO,oCAAC,wBAAqB,KAAW,GAAG,OAAO;AACpD,CAAC;AAED,IAAO,oBAAQ;",
6
+ "names": ["CircularProgress"]
7
7
  }
@@ -9,8 +9,35 @@ declare namespace _default {
9
9
  export let displayName: string;
10
10
  }
11
11
  export default _default;
12
+ export namespace WithControls {
13
+ function render(args: any): React.JSX.Element;
14
+ namespace args {
15
+ let color: string;
16
+ let showHint: boolean;
17
+ }
18
+ namespace argTypes {
19
+ export namespace color_1 {
20
+ namespace control {
21
+ let type: string;
22
+ }
23
+ let options: string[];
24
+ }
25
+ export { color_1 as color };
26
+ export namespace showHint_1 {
27
+ let control_1: string;
28
+ export { control_1 as control };
29
+ }
30
+ export { showHint_1 as showHint };
31
+ }
32
+ namespace parameters {
33
+ namespace controls {
34
+ let exclude: string[];
35
+ }
36
+ }
37
+ }
12
38
  export { Default } from "@digigov/ui/app/Masthead/__stories__/Default";
13
39
  export { Secondary } from "@digigov/ui/app/Masthead/__stories__/Secondary";
14
40
  export { WithLogo } from "@digigov/ui/app/Masthead/__stories__/WithLogo";
15
41
  export { WithElements } from "@digigov/ui/app/Masthead/__stories__/WithElements";
16
- import Masthead from '@digigov/ui/app/Masthead';
42
+ import { Masthead } from '@digigov/ui/app/Masthead';
43
+ import React from 'react';
@@ -8,10 +8,29 @@ declare namespace _default {
8
8
  export let displayName: string;
9
9
  }
10
10
  export default _default;
11
+ export namespace WithControls {
12
+ function render(args: any): React.JSX.Element;
13
+ namespace args {
14
+ let dense: boolean;
15
+ let gaps: boolean;
16
+ }
17
+ namespace argsTypes {
18
+ export namespace dense_1 {
19
+ let control: string;
20
+ }
21
+ export { dense_1 as dense };
22
+ export namespace gaps_1 {
23
+ let control_1: string;
24
+ export { control_1 as control };
25
+ }
26
+ export { gaps_1 as gaps };
27
+ }
28
+ }
11
29
  export { Default } from "@digigov/ui/app/Modal/__stories__/Default";
12
30
  export { AlertDialog } from "@digigov/ui/app/Modal/__stories__/AlertDialog";
13
31
  export { Dense } from "@digigov/ui/app/Modal/__stories__/Dense";
14
32
  export { WithHooks } from "@digigov/ui/app/Modal/__stories__/WithHooks";
15
33
  export { Auto } from "@digigov/ui/app/Modal/__stories__/Auto";
16
34
  export { WithoutModalGaps } from "@digigov/ui/app/Modal/__stories__/WithoutModalGaps";
17
- import Modal from '@digigov/ui/app/Modal';
35
+ import { Modal } from '@digigov/ui/app/Modal';
36
+ import React from 'react';
@@ -1,12 +1,8 @@
1
1
  import React, { useState, useRef, useCallback } from "react";
2
2
  const useModal = () => {
3
3
  const [currentOpen, setCurrentOpen] = useState(null);
4
- const modalsRef = useRef(
5
- /* @__PURE__ */ new Map()
6
- );
7
- const buttonsRef = useRef(
8
- /* @__PURE__ */ new Map()
9
- );
4
+ const modalsRef = useRef(/* @__PURE__ */ new Map());
5
+ const buttonsRef = useRef(/* @__PURE__ */ new Map());
10
6
  const open = useCallback((id) => {
11
7
  setCurrentOpen(id);
12
8
  }, []);
@@ -13,14 +13,14 @@ export interface UseModalReturn {
13
13
  id: string;
14
14
  'aria-modal': boolean;
15
15
  'aria-labelledby': string;
16
- ref?: React.RefObject<HTMLDivElement>;
16
+ ref?: React.RefObject<HTMLDivElement | null>;
17
17
  };
18
18
  registerAction: (id: ModalId, type: 'open' | 'close', options?: {
19
19
  variant?: string;
20
20
  color?: string;
21
21
  }) => {
22
22
  onClick: () => void;
23
- ref?: React.RefObject<HTMLButtonElement>;
23
+ ref?: React.RefObject<HTMLButtonElement | null>;
24
24
  };
25
25
  }
26
26
  export declare const useModal: () => UseModalReturn;
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/app/Modal/hooks.ts"],
4
- "sourcesContent": ["import React, { useState, useRef, useCallback } from 'react';\n\nexport type ModalId = string | number;\n\nexport interface UseModalReturn {\n open: (id: ModalId) => void;\n close: () => void;\n currentOpen: ModalId | null;\n registerModal: (\n id: ModalId,\n options?: {\n clickOutside?: boolean;\n closeOnEscape?: boolean;\n }\n ) => {\n open: boolean;\n role: string;\n id: string;\n 'aria-modal': boolean;\n 'aria-labelledby': string;\n ref?: React.RefObject<HTMLDivElement>;\n };\n registerAction: (\n id: ModalId,\n type: 'open' | 'close',\n options?: {\n variant?: string;\n color?: string;\n }\n ) => {\n onClick: () => void;\n ref?: React.RefObject<HTMLButtonElement>;\n };\n}\n\nexport const useModal = (): UseModalReturn => {\n const [currentOpen, setCurrentOpen] = useState<ModalId | null>(null);\n const modalsRef = useRef<Map<ModalId, React.RefObject<HTMLDivElement>>>(\n new Map()\n );\n const buttonsRef = useRef<Map<ModalId, React.RefObject<HTMLButtonElement>>>(\n new Map()\n );\n const open = useCallback((id: ModalId) => {\n setCurrentOpen(id);\n }, []);\n\n const close = useCallback(() => {\n setCurrentOpen(null);\n }, []);\n\n const registerModal = useCallback(\n (id, options) => {\n const modalId = `modal-${id}`;\n if (!modalsRef.current.get(id)?.current) {\n modalsRef.current.set(id, React.createRef());\n if (options?.clickOutside && currentOpen === id) {\n const handleOutsideClick = (event: MouseEvent) => {\n const modalContainer = document.getElementById(modalId);\n if (modalContainer === event.target) {\n close();\n }\n };\n window.addEventListener('mousedown', handleOutsideClick);\n }\n }\n return {\n open: currentOpen === id,\n role: 'dialog',\n id: modalId,\n onEscape: options?.closeOnEscape ? close : null,\n 'aria-modal': true,\n 'aria-labelledby': `modal-heading-${id}`,\n ref: modalsRef.current.get(id as string),\n };\n },\n [currentOpen]\n );\n\n const registerAction = useCallback(\n (id: ModalId, type: 'open' | 'close', options) => {\n if (!buttonsRef.current.has(id)) {\n buttonsRef.current.set(id, React.createRef());\n }\n return {\n onClick: () => (type === 'open' ? open(id) : close()),\n ref: buttonsRef.current.get(id),\n ...options,\n };\n },\n [currentOpen]\n );\n\n return {\n open,\n close,\n currentOpen,\n registerAction,\n registerModal,\n };\n};\n"],
5
- "mappings": "AAAA,OAAO,SAAS,UAAU,QAAQ,mBAAmB;AAmC9C,MAAM,WAAW,MAAsB;AAC5C,QAAM,CAAC,aAAa,cAAc,IAAI,SAAyB,IAAI;AACnE,QAAM,YAAY;AAAA,IAChB,oBAAI,IAAI;AAAA,EACV;AACA,QAAM,aAAa;AAAA,IACjB,oBAAI,IAAI;AAAA,EACV;AACA,QAAM,OAAO,YAAY,CAAC,OAAgB;AACxC,mBAAe,EAAE;AAAA,EACnB,GAAG,CAAC,CAAC;AAEL,QAAM,QAAQ,YAAY,MAAM;AAC9B,mBAAe,IAAI;AAAA,EACrB,GAAG,CAAC,CAAC;AAEL,QAAM,gBAAgB;AAAA,IACpB,CAAC,IAAI,YAAY;AACf,YAAM,UAAU,SAAS,EAAE;AAC3B,UAAI,CAAC,UAAU,QAAQ,IAAI,EAAE,GAAG,SAAS;AACvC,kBAAU,QAAQ,IAAI,IAAI,MAAM,UAAU,CAAC;AAC3C,YAAI,SAAS,gBAAgB,gBAAgB,IAAI;AAC/C,gBAAM,qBAAqB,CAAC,UAAsB;AAChD,kBAAM,iBAAiB,SAAS,eAAe,OAAO;AACtD,gBAAI,mBAAmB,MAAM,QAAQ;AACnC,oBAAM;AAAA,YACR;AAAA,UACF;AACA,iBAAO,iBAAiB,aAAa,kBAAkB;AAAA,QACzD;AAAA,MACF;AACA,aAAO;AAAA,QACL,MAAM,gBAAgB;AAAA,QACtB,MAAM;AAAA,QACN,IAAI;AAAA,QACJ,UAAU,SAAS,gBAAgB,QAAQ;AAAA,QAC3C,cAAc;AAAA,QACd,mBAAmB,iBAAiB,EAAE;AAAA,QACtC,KAAK,UAAU,QAAQ,IAAI,EAAY;AAAA,MACzC;AAAA,IACF;AAAA,IACA,CAAC,WAAW;AAAA,EACd;AAEA,QAAM,iBAAiB;AAAA,IACrB,CAAC,IAAa,MAAwB,YAAY;AAChD,UAAI,CAAC,WAAW,QAAQ,IAAI,EAAE,GAAG;AAC/B,mBAAW,QAAQ,IAAI,IAAI,MAAM,UAAU,CAAC;AAAA,MAC9C;AACA,aAAO;AAAA,QACL,SAAS,MAAO,SAAS,SAAS,KAAK,EAAE,IAAI,MAAM;AAAA,QACnD,KAAK,WAAW,QAAQ,IAAI,EAAE;AAAA,QAC9B,GAAG;AAAA,MACL;AAAA,IACF;AAAA,IACA,CAAC,WAAW;AAAA,EACd;AAEA,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF;AACF;",
4
+ "sourcesContent": ["import React, { useState, useRef, useCallback } from 'react';\n\nexport type ModalId = string | number;\n\nexport interface UseModalReturn {\n open: (id: ModalId) => void;\n close: () => void;\n currentOpen: ModalId | null;\n registerModal: (\n id: ModalId,\n options?: {\n clickOutside?: boolean;\n closeOnEscape?: boolean;\n }\n ) => {\n open: boolean;\n role: string;\n id: string;\n 'aria-modal': boolean;\n 'aria-labelledby': string;\n ref?: React.RefObject<HTMLDivElement | null>;\n };\n registerAction: (\n id: ModalId,\n type: 'open' | 'close',\n options?: {\n variant?: string;\n color?: string;\n }\n ) => {\n onClick: () => void;\n ref?: React.RefObject<HTMLButtonElement | null>;\n };\n}\n\nexport const useModal = (): UseModalReturn => {\n const [currentOpen, setCurrentOpen] = useState<ModalId | null>(null);\n const modalsRef = useRef<\n Map<ModalId, React.RefObject<HTMLDivElement | null>>\n >(new Map());\n const buttonsRef = useRef<\n Map<ModalId, React.RefObject<HTMLButtonElement | null>>\n >(new Map());\n const open = useCallback((id: ModalId) => {\n setCurrentOpen(id);\n }, []);\n\n const close = useCallback(() => {\n setCurrentOpen(null);\n }, []);\n\n const registerModal = useCallback(\n (id, options) => {\n const modalId = `modal-${id}`;\n if (!modalsRef.current.get(id)?.current) {\n modalsRef.current.set(id, React.createRef());\n if (options?.clickOutside && currentOpen === id) {\n const handleOutsideClick = (event: MouseEvent) => {\n const modalContainer = document.getElementById(modalId);\n if (modalContainer === event.target) {\n close();\n }\n };\n window.addEventListener('mousedown', handleOutsideClick);\n }\n }\n return {\n open: currentOpen === id,\n role: 'dialog',\n id: modalId,\n onEscape: options?.closeOnEscape ? close : null,\n 'aria-modal': true,\n 'aria-labelledby': `modal-heading-${id}`,\n ref: modalsRef.current.get(id as string),\n };\n },\n [currentOpen]\n );\n\n const registerAction = useCallback(\n (id: ModalId, type: 'open' | 'close', options) => {\n if (!buttonsRef.current.has(id)) {\n buttonsRef.current.set(id, React.createRef());\n }\n return {\n onClick: () => (type === 'open' ? open(id) : close()),\n ref: buttonsRef.current.get(id),\n ...options,\n };\n },\n [currentOpen]\n );\n\n return {\n open,\n close,\n currentOpen,\n registerAction,\n registerModal,\n };\n};\n"],
5
+ "mappings": "AAAA,OAAO,SAAS,UAAU,QAAQ,mBAAmB;AAmC9C,MAAM,WAAW,MAAsB;AAC5C,QAAM,CAAC,aAAa,cAAc,IAAI,SAAyB,IAAI;AACnE,QAAM,YAAY,OAEhB,oBAAI,IAAI,CAAC;AACX,QAAM,aAAa,OAEjB,oBAAI,IAAI,CAAC;AACX,QAAM,OAAO,YAAY,CAAC,OAAgB;AACxC,mBAAe,EAAE;AAAA,EACnB,GAAG,CAAC,CAAC;AAEL,QAAM,QAAQ,YAAY,MAAM;AAC9B,mBAAe,IAAI;AAAA,EACrB,GAAG,CAAC,CAAC;AAEL,QAAM,gBAAgB;AAAA,IACpB,CAAC,IAAI,YAAY;AACf,YAAM,UAAU,SAAS,EAAE;AAC3B,UAAI,CAAC,UAAU,QAAQ,IAAI,EAAE,GAAG,SAAS;AACvC,kBAAU,QAAQ,IAAI,IAAI,MAAM,UAAU,CAAC;AAC3C,YAAI,SAAS,gBAAgB,gBAAgB,IAAI;AAC/C,gBAAM,qBAAqB,CAAC,UAAsB;AAChD,kBAAM,iBAAiB,SAAS,eAAe,OAAO;AACtD,gBAAI,mBAAmB,MAAM,QAAQ;AACnC,oBAAM;AAAA,YACR;AAAA,UACF;AACA,iBAAO,iBAAiB,aAAa,kBAAkB;AAAA,QACzD;AAAA,MACF;AACA,aAAO;AAAA,QACL,MAAM,gBAAgB;AAAA,QACtB,MAAM;AAAA,QACN,IAAI;AAAA,QACJ,UAAU,SAAS,gBAAgB,QAAQ;AAAA,QAC3C,cAAc;AAAA,QACd,mBAAmB,iBAAiB,EAAE;AAAA,QACtC,KAAK,UAAU,QAAQ,IAAI,EAAY;AAAA,MACzC;AAAA,IACF;AAAA,IACA,CAAC,WAAW;AAAA,EACd;AAEA,QAAM,iBAAiB;AAAA,IACrB,CAAC,IAAa,MAAwB,YAAY;AAChD,UAAI,CAAC,WAAW,QAAQ,IAAI,EAAE,GAAG;AAC/B,mBAAW,QAAQ,IAAI,IAAI,MAAM,UAAU,CAAC;AAAA,MAC9C;AACA,aAAO;AAAA,QACL,SAAS,MAAO,SAAS,SAAS,KAAK,EAAE,IAAI,MAAM;AAAA,QACnD,KAAK,WAAW,QAAQ,IAAI,EAAE;AAAA,QAC9B,GAAG;AAAA,MACL;AAAA,IACF;AAAA,IACA,CAAC,WAAW;AAAA,EACd;AAEA,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF;AACF;",
6
6
  "names": []
7
7
  }
@@ -12,18 +12,18 @@ const Modal = React.forwardRef(
12
12
  );
13
13
  const ModalBase = React.forwardRef(
14
14
  function ModalBase2({ open, children, onEscape, ...props }, ref) {
15
- const firstModalElement = useRef();
16
- const lastModalElement = useRef();
15
+ const firstModalElement = useRef(null);
16
+ const lastModalElement = useRef(null);
17
17
  const handleFocus = useCallback(() => {
18
- firstModalElement.current.focus();
18
+ firstModalElement.current?.focus();
19
19
  }, []);
20
20
  useKeypress("Escape", onEscape);
21
21
  useEffect(() => {
22
22
  const lastModalElementInstance = lastModalElement.current;
23
23
  handleFocus();
24
- lastModalElementInstance.addEventListener("focus", handleFocus);
24
+ lastModalElementInstance?.addEventListener("focus", handleFocus);
25
25
  return () => {
26
- lastModalElementInstance.removeEventListener("focus", handleFocus);
26
+ lastModalElementInstance?.removeEventListener("focus", handleFocus);
27
27
  };
28
28
  }, []);
29
29
  return /* @__PURE__ */ React.createElement(
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/app/Modal/index.web.tsx"],
4
- "sourcesContent": ["import React, { useCallback, useEffect, useRef } from 'react';\nimport ModalContainer, {\n ModalContainerProps,\n} from '@digigov/react-core/ModalContainer';\nimport useKeypress from '@digigov/ui/utils/hooks/useKeypress';\n\nexport interface ModalProps extends ModalContainerProps {\n onEscape?: () => void;\n}\n\nexport const Modal = React.forwardRef<HTMLDivElement, ModalProps>(\n function Modal({ ...props }, ref) {\n if (props.open) {\n return <ModalBase {...props} ref={ref} />;\n } else {\n return null;\n }\n }\n);\n\nexport const ModalBase = React.forwardRef<HTMLDivElement, ModalProps>(\n function ModalBase({ open, children, onEscape, ...props }, ref) {\n const firstModalElement =\n useRef() as React.MutableRefObject<HTMLSpanElement>;\n const lastModalElement =\n useRef() as React.MutableRefObject<HTMLSpanElement>;\n const handleFocus = useCallback(() => {\n firstModalElement.current.focus();\n }, []);\n useKeypress('Escape', onEscape);\n useEffect(() => {\n const lastModalElementInstance = lastModalElement.current;\n handleFocus();\n lastModalElementInstance.addEventListener('focus', handleFocus);\n return () => {\n lastModalElementInstance.removeEventListener('focus', handleFocus);\n };\n }, []);\n return (\n <ModalContainer\n open={open}\n role=\"dialog\"\n ref={ref}\n aria-hidden=\"false\"\n aria-modal=\"true\"\n {...props}\n >\n <span tabIndex={-1} ref={firstModalElement} aria-hidden=\"true\" />\n {open && children}\n <span tabIndex={0} ref={lastModalElement} aria-hidden=\"true\" />\n </ModalContainer>\n );\n }\n);\n\nexport default Modal;\n"],
5
- "mappings": "AAAA,OAAO,SAAS,aAAa,WAAW,cAAc;AACtD,OAAO,oBAEA;AACP,OAAO,iBAAiB;AAMjB,MAAM,QAAQ,MAAM;AAAA,EACzB,SAASA,OAAM,EAAE,GAAG,MAAM,GAAG,KAAK;AAChC,QAAI,MAAM,MAAM;AACd,aAAO,oCAAC,aAAW,GAAG,OAAO,KAAU;AAAA,IACzC,OAAO;AACL,aAAO;AAAA,IACT;AAAA,EACF;AACF;AAEO,MAAM,YAAY,MAAM;AAAA,EAC7B,SAASC,WAAU,EAAE,MAAM,UAAU,UAAU,GAAG,MAAM,GAAG,KAAK;AAC9D,UAAM,oBACJ,OAAO;AACT,UAAM,mBACJ,OAAO;AACT,UAAM,cAAc,YAAY,MAAM;AACpC,wBAAkB,QAAQ,MAAM;AAAA,IAClC,GAAG,CAAC,CAAC;AACL,gBAAY,UAAU,QAAQ;AAC9B,cAAU,MAAM;AACd,YAAM,2BAA2B,iBAAiB;AAClD,kBAAY;AACZ,+BAAyB,iBAAiB,SAAS,WAAW;AAC9D,aAAO,MAAM;AACX,iCAAyB,oBAAoB,SAAS,WAAW;AAAA,MACnE;AAAA,IACF,GAAG,CAAC,CAAC;AACL,WACE;AAAA,MAAC;AAAA;AAAA,QACC;AAAA,QACA,MAAK;AAAA,QACL;AAAA,QACA,eAAY;AAAA,QACZ,cAAW;AAAA,QACV,GAAG;AAAA;AAAA,MAEJ,oCAAC,UAAK,UAAU,IAAI,KAAK,mBAAmB,eAAY,QAAO;AAAA,MAC9D,QAAQ;AAAA,MACT,oCAAC,UAAK,UAAU,GAAG,KAAK,kBAAkB,eAAY,QAAO;AAAA,IAC/D;AAAA,EAEJ;AACF;AAEA,IAAO,oBAAQ;",
4
+ "sourcesContent": ["import React, { useCallback, useEffect, useRef } from 'react';\nimport ModalContainer, {\n ModalContainerProps,\n} from '@digigov/react-core/ModalContainer';\nimport useKeypress from '@digigov/ui/utils/hooks/useKeypress';\n\nexport interface ModalProps extends ModalContainerProps {\n onEscape?: () => void;\n}\n\nexport const Modal = React.forwardRef<HTMLDivElement, ModalProps>(\n function Modal({ ...props }, ref) {\n if (props.open) {\n return <ModalBase {...props} ref={ref} />;\n } else {\n return null;\n }\n }\n);\n\nexport const ModalBase = React.forwardRef<HTMLDivElement, ModalProps>(\n function ModalBase({ open, children, onEscape, ...props }, ref) {\n const firstModalElement = useRef<HTMLSpanElement>(null);\n const lastModalElement = useRef<HTMLSpanElement>(null);\n const handleFocus = useCallback(() => {\n firstModalElement.current?.focus();\n }, []);\n useKeypress('Escape', onEscape);\n useEffect(() => {\n const lastModalElementInstance = lastModalElement.current;\n handleFocus();\n lastModalElementInstance?.addEventListener('focus', handleFocus);\n return () => {\n lastModalElementInstance?.removeEventListener('focus', handleFocus);\n };\n }, []);\n return (\n <ModalContainer\n open={open}\n role=\"dialog\"\n ref={ref}\n aria-hidden=\"false\"\n aria-modal=\"true\"\n {...props}\n >\n <span tabIndex={-1} ref={firstModalElement} aria-hidden=\"true\" />\n {open && children}\n <span tabIndex={0} ref={lastModalElement} aria-hidden=\"true\" />\n </ModalContainer>\n );\n }\n);\n\nexport default Modal;\n"],
5
+ "mappings": "AAAA,OAAO,SAAS,aAAa,WAAW,cAAc;AACtD,OAAO,oBAEA;AACP,OAAO,iBAAiB;AAMjB,MAAM,QAAQ,MAAM;AAAA,EACzB,SAASA,OAAM,EAAE,GAAG,MAAM,GAAG,KAAK;AAChC,QAAI,MAAM,MAAM;AACd,aAAO,oCAAC,aAAW,GAAG,OAAO,KAAU;AAAA,IACzC,OAAO;AACL,aAAO;AAAA,IACT;AAAA,EACF;AACF;AAEO,MAAM,YAAY,MAAM;AAAA,EAC7B,SAASC,WAAU,EAAE,MAAM,UAAU,UAAU,GAAG,MAAM,GAAG,KAAK;AAC9D,UAAM,oBAAoB,OAAwB,IAAI;AACtD,UAAM,mBAAmB,OAAwB,IAAI;AACrD,UAAM,cAAc,YAAY,MAAM;AACpC,wBAAkB,SAAS,MAAM;AAAA,IACnC,GAAG,CAAC,CAAC;AACL,gBAAY,UAAU,QAAQ;AAC9B,cAAU,MAAM;AACd,YAAM,2BAA2B,iBAAiB;AAClD,kBAAY;AACZ,gCAA0B,iBAAiB,SAAS,WAAW;AAC/D,aAAO,MAAM;AACX,kCAA0B,oBAAoB,SAAS,WAAW;AAAA,MACpE;AAAA,IACF,GAAG,CAAC,CAAC;AACL,WACE;AAAA,MAAC;AAAA;AAAA,QACC;AAAA,QACA,MAAK;AAAA,QACL;AAAA,QACA,eAAY;AAAA,QACZ,cAAW;AAAA,QACV,GAAG;AAAA;AAAA,MAEJ,oCAAC,UAAK,UAAU,IAAI,KAAK,mBAAmB,eAAY,QAAO;AAAA,MAC9D,QAAQ;AAAA,MACT,oCAAC,UAAK,UAAU,GAAG,KAAK,kBAAkB,eAAY,QAAO;AAAA,IAC/D;AAAA,EAEJ;AACF;AAEA,IAAO,oBAAQ;",
6
6
  "names": ["Modal", "ModalBase"]
7
7
  }
@@ -1,3 +1,3 @@
1
1
  import React from 'react';
2
- export declare const Default: () => React.JSX.Element;
2
+ export declare const Default: (_: any) => React.JSX.Element;
3
3
  export default Default;
@@ -1,2 +1,3 @@
1
+ import { type JSX } from 'react';
1
2
  export default function OutdatedBrowserBanner(): JSX.Element;
2
3
  export * from '@digigov/ui/app/OutdatedBrowserBanner/hooks/useOutdatedBrowserCheck';
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/app/OutdatedBrowserBanner/index.tsx"],
4
- "sourcesContent": ["import React from 'react';\nimport { isMobile } from '@digigov/ui/app/OutdatedBrowserBanner/hooks/evaluateBrowserVersion';\nimport useOutdatedBrowserCheck from '@digigov/ui/app/OutdatedBrowserBanner/hooks/useOutdatedBrowserCheck';\nimport { WarningText } from '@digigov/ui/feedback/WarningText';\nimport { useTranslation } from '@digigov/ui/i18n';\nimport Link from '@digigov/ui/navigation/Link';\nimport Paragraph from '@digigov/ui/typography/Paragraph';\n\nexport default function OutdatedBrowserBanner(): JSX.Element {\n const mob = isMobile;\n const [shouldUpdate, updateLink] = useOutdatedBrowserCheck();\n const { t } = useTranslation();\n return (\n <WarningText>\n {shouldUpdate ? (\n <>\n {mob.any() ? (\n <>\n <Paragraph>{t('outdated.mobile')}</Paragraph>\n </>\n ) : (\n <>\n <Paragraph>\n {t('outdated.web')}\n <Link href={updateLink} target=\"_blank\">\n {updateLink}{' '}\n </Link>\n </Paragraph>\n </>\n )}\n </>\n ) : (\n <></>\n )}\n </WarningText>\n );\n}\n\nexport * from '@digigov/ui/app/OutdatedBrowserBanner/hooks/useOutdatedBrowserCheck';\n"],
5
- "mappings": "AAAA,OAAO,WAAW;AAClB,SAAS,gBAAgB;AACzB,OAAO,6BAA6B;AACpC,SAAS,mBAAmB;AAC5B,SAAS,sBAAsB;AAC/B,OAAO,UAAU;AACjB,OAAO,eAAe;AAEP,SAAR,wBAAsD;AAC3D,QAAM,MAAM;AACZ,QAAM,CAAC,cAAc,UAAU,IAAI,wBAAwB;AAC3D,QAAM,EAAE,EAAE,IAAI,eAAe;AAC7B,SACE,oCAAC,mBACE,eACC,0DACG,IAAI,IAAI,IACP,0DACE,oCAAC,iBAAW,EAAE,iBAAiB,CAAE,CACnC,IAEA,0DACE,oCAAC,iBACE,EAAE,cAAc,GACjB,oCAAC,QAAK,MAAM,YAAY,QAAO,YAC5B,YAAY,GACf,CACF,CACF,CAEJ,IAEA,wDAAE,CAEN;AAEJ;AAEA,cAAc;",
4
+ "sourcesContent": ["import React, { type JSX } from 'react';\nimport { isMobile } from '@digigov/ui/app/OutdatedBrowserBanner/hooks/evaluateBrowserVersion';\nimport useOutdatedBrowserCheck from '@digigov/ui/app/OutdatedBrowserBanner/hooks/useOutdatedBrowserCheck';\nimport { WarningText } from '@digigov/ui/feedback/WarningText';\nimport { useTranslation } from '@digigov/ui/i18n';\nimport Link from '@digigov/ui/navigation/Link';\nimport Paragraph from '@digigov/ui/typography/Paragraph';\n\nexport default function OutdatedBrowserBanner(): JSX.Element {\n const mob = isMobile;\n const [shouldUpdate, updateLink] = useOutdatedBrowserCheck();\n const { t } = useTranslation();\n return (\n <WarningText>\n {shouldUpdate ? (\n <>\n {mob.any() ? (\n <>\n <Paragraph>{t('outdated.mobile')}</Paragraph>\n </>\n ) : (\n <>\n <Paragraph>\n {t('outdated.web')}\n <Link href={updateLink} target=\"_blank\">\n {updateLink}{' '}\n </Link>\n </Paragraph>\n </>\n )}\n </>\n ) : (\n <></>\n )}\n </WarningText>\n );\n}\n\nexport * from '@digigov/ui/app/OutdatedBrowserBanner/hooks/useOutdatedBrowserCheck';\n"],
5
+ "mappings": "AAAA,OAAO,WAAyB;AAChC,SAAS,gBAAgB;AACzB,OAAO,6BAA6B;AACpC,SAAS,mBAAmB;AAC5B,SAAS,sBAAsB;AAC/B,OAAO,UAAU;AACjB,OAAO,eAAe;AAEP,SAAR,wBAAsD;AAC3D,QAAM,MAAM;AACZ,QAAM,CAAC,cAAc,UAAU,IAAI,wBAAwB;AAC3D,QAAM,EAAE,EAAE,IAAI,eAAe;AAC7B,SACE,oCAAC,mBACE,eACC,0DACG,IAAI,IAAI,IACP,0DACE,oCAAC,iBAAW,EAAE,iBAAiB,CAAE,CACnC,IAEA,0DACE,oCAAC,iBACE,EAAE,cAAc,GACjB,oCAAC,QAAK,MAAM,YAAY,QAAO,YAC5B,YAAY,GACf,CACF,CACF,CAEJ,IAEA,wDAAE,CAEN;AAEJ;AAEA,cAAc;",
6
6
  "names": []
7
7
  }
@@ -1,4 +1,4 @@
1
- import React from 'react';
1
+ import React, { type JSX } from 'react';
2
2
  type DivElementAttributes = JSX.IntrinsicElements['div'];
3
3
  export interface PhaseBannerHeaderProps extends DivElementAttributes {
4
4
  tag?: string;
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/app/PhaseBannerHeader/index.tsx"],
4
- "sourcesContent": ["import React from 'react';\nimport HeaderContent from '@digigov/react-core/HeaderContent';\nimport PhaseBanner from '@digigov/react-core/PhaseBanner';\nimport PhaseBannerHeaderContainer from '@digigov/react-core/PhaseBannerHeaderContainer';\nimport PhaseBannerTag from '@digigov/react-core/PhaseBannerTag';\nimport PhaseBannerText from '@digigov/react-core/PhaseBannerText';\n\ntype DivElementAttributes = JSX.IntrinsicElements['div'];\nexport interface PhaseBannerHeaderProps extends DivElementAttributes {\n tag?: string;\n text?: string;\n}\n\nexport const PhaseBannerHeader = React.forwardRef<\n HTMLDivElement,\n PhaseBannerHeaderProps\n>(function PhaseBannerHeader({ text, tag, ...props }, ref) {\n return (\n <PhaseBannerHeaderContainer {...props} ref={ref}>\n <HeaderContent>\n <PhaseBanner>\n <PhaseBannerTag>{tag}</PhaseBannerTag>\n <PhaseBannerText>{text}</PhaseBannerText>\n </PhaseBanner>\n </HeaderContent>\n </PhaseBannerHeaderContainer>\n );\n});\n\nexport default PhaseBannerHeader;\n"],
5
- "mappings": "AAAA,OAAO,WAAW;AAClB,OAAO,mBAAmB;AAC1B,OAAO,iBAAiB;AACxB,OAAO,gCAAgC;AACvC,OAAO,oBAAoB;AAC3B,OAAO,qBAAqB;AAQrB,MAAM,oBAAoB,MAAM,WAGrC,SAASA,mBAAkB,EAAE,MAAM,KAAK,GAAG,MAAM,GAAG,KAAK;AACzD,SACE,oCAAC,8BAA4B,GAAG,OAAO,OACrC,oCAAC,qBACC,oCAAC,mBACC,oCAAC,sBAAgB,GAAI,GACrB,oCAAC,uBAAiB,IAAK,CACzB,CACF,CACF;AAEJ,CAAC;AAED,IAAO,4BAAQ;",
4
+ "sourcesContent": ["import React, { type JSX } from 'react';\nimport HeaderContent from '@digigov/react-core/HeaderContent';\nimport PhaseBanner from '@digigov/react-core/PhaseBanner';\nimport PhaseBannerHeaderContainer from '@digigov/react-core/PhaseBannerHeaderContainer';\nimport PhaseBannerTag from '@digigov/react-core/PhaseBannerTag';\nimport PhaseBannerText from '@digigov/react-core/PhaseBannerText';\n\ntype DivElementAttributes = JSX.IntrinsicElements['div'];\nexport interface PhaseBannerHeaderProps extends DivElementAttributes {\n tag?: string;\n text?: string;\n}\n\nexport const PhaseBannerHeader = React.forwardRef<\n HTMLDivElement,\n PhaseBannerHeaderProps\n>(function PhaseBannerHeader({ text, tag, ...props }, ref) {\n return (\n <PhaseBannerHeaderContainer {...props} ref={ref}>\n <HeaderContent>\n <PhaseBanner>\n <PhaseBannerTag>{tag}</PhaseBannerTag>\n <PhaseBannerText>{text}</PhaseBannerText>\n </PhaseBanner>\n </HeaderContent>\n </PhaseBannerHeaderContainer>\n );\n});\n\nexport default PhaseBannerHeader;\n"],
5
+ "mappings": "AAAA,OAAO,WAAyB;AAChC,OAAO,mBAAmB;AAC1B,OAAO,iBAAiB;AACxB,OAAO,gCAAgC;AACvC,OAAO,oBAAoB;AAC3B,OAAO,qBAAqB;AAQrB,MAAM,oBAAoB,MAAM,WAGrC,SAASA,mBAAkB,EAAE,MAAM,KAAK,GAAG,MAAM,GAAG,KAAK;AACzD,SACE,oCAAC,8BAA4B,GAAG,OAAO,OACrC,oCAAC,qBACC,oCAAC,mBACC,oCAAC,sBAAgB,GAAI,GACrB,oCAAC,uBAAiB,IAAK,CACzB,CACF,CACF;AAEJ,CAAC;AAED,IAAO,4BAAQ;",
6
6
  "names": ["PhaseBannerHeader"]
7
7
  }
@@ -1,3 +1,3 @@
1
1
  import React from 'react';
2
- export declare const Button: () => React.JSX.Element;
2
+ export declare const Button: (_: any) => React.JSX.Element;
3
3
  export default Button;
@@ -1,3 +1,3 @@
1
1
  import React from 'react';
2
- export declare const Default: () => React.JSX.Element;
2
+ export declare const Default: (_: any) => React.JSX.Element;
3
3
  export default Default;
@@ -1,3 +1,3 @@
1
1
  import React from 'react';
2
- export declare const NoAnimation: () => React.JSX.Element;
2
+ export declare const NoAnimation: (_: any) => React.JSX.Element;
3
3
  export default NoAnimation;
@@ -0,0 +1,76 @@
1
+ import { useCallback, useEffect, useRef } from "react";
2
+ const notificationAreaId = "loader-notification-area";
3
+ const activeSpinnersAttr = "data-active-spinners";
4
+ function generateUniqueId() {
5
+ return `spinner-${Math.random().toString(36).substring(2, 9)}`;
6
+ }
7
+ const getOrCreateNotificationArea = () => {
8
+ let element = document.getElementById(notificationAreaId);
9
+ if (!element) {
10
+ element = document.createElement("div");
11
+ element.id = notificationAreaId;
12
+ element.setAttribute("role", "status");
13
+ element.setAttribute("aria-live", "polite");
14
+ element.className = "ds-visually-hidden";
15
+ document.body.appendChild(element);
16
+ }
17
+ return element;
18
+ };
19
+ const useNotificationArea = (loadingText = "\u0393\u03AF\u03BD\u03B5\u03C4\u03B1\u03B9 \u03C6\u03CC\u03C1\u03C4\u03C9\u03C3\u03B7...", finishedText = "\u0397 \u03C6\u03CC\u03C1\u03C4\u03C9\u03C3\u03B7 \u03BF\u03BB\u03BF\u03BA\u03BB\u03B7\u03C1\u03CE\u03B8\u03B7\u03BA\u03B5.") => {
20
+ const spinnerId = useRef(generateUniqueId());
21
+ const notificationRef = useRef(null);
22
+ const getActiveIds = useCallback(() => {
23
+ const current = notificationRef.current;
24
+ const value = current?.getAttribute(activeSpinnersAttr) || "";
25
+ return value.split(",").filter(Boolean);
26
+ }, [notificationRef]);
27
+ const setActiveSpinnerId = useCallback(() => {
28
+ const current = notificationRef.current;
29
+ if (current) {
30
+ const ids = new Set(getActiveIds());
31
+ ids.add(spinnerId.current);
32
+ current.setAttribute(activeSpinnersAttr, Array.from(ids).join(","));
33
+ }
34
+ }, [notificationRef, getActiveIds, spinnerId]);
35
+ const unsetActiveSpinnerId = useCallback(() => {
36
+ const current = notificationRef.current;
37
+ if (current) {
38
+ const ids = getActiveIds().filter((id) => id !== spinnerId.current);
39
+ current.setAttribute(activeSpinnersAttr, ids.join(","));
40
+ }
41
+ }, [notificationRef, getActiveIds, spinnerId]);
42
+ const setTextContent = (text) => {
43
+ if (notificationRef.current) {
44
+ notificationRef.current.textContent = text;
45
+ }
46
+ };
47
+ useEffect(() => {
48
+ if (typeof document === "undefined") return;
49
+ notificationRef.current = getOrCreateNotificationArea();
50
+ setActiveSpinnerId();
51
+ setTextContent(loadingText);
52
+ return () => {
53
+ unsetActiveSpinnerId();
54
+ if (getActiveIds().length === 0) {
55
+ setTextContent(finishedText);
56
+ setTimeout(() => {
57
+ const el = notificationRef.current;
58
+ if (el && getActiveIds().length === 0) {
59
+ el.removeAttribute(activeSpinnersAttr);
60
+ el.textContent = "";
61
+ }
62
+ }, 1e3);
63
+ }
64
+ };
65
+ }, [
66
+ loadingText,
67
+ finishedText,
68
+ setActiveSpinnerId,
69
+ unsetActiveSpinnerId,
70
+ getActiveIds
71
+ ]);
72
+ };
73
+ export {
74
+ useNotificationArea
75
+ };
76
+ //# sourceMappingURL=useNotificationArea.js.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "sideEffects": false,
3
+ "module": "./index.js",
4
+ "types": "./index.d.ts",
5
+ "main": "../../../cjs/app/hooks/useNotificationArea/index.js"
6
+ }
@@ -0,0 +1 @@
1
+ export declare const useNotificationArea: (loadingText?: string, finishedText?: string) => void;
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/app/hooks/useNotificationArea.tsx"],
4
+ "sourcesContent": ["import { useCallback, useEffect, useRef } from 'react';\n\n// Unique ID for the aria-live notification area element.\nconst notificationAreaId = 'loader-notification-area';\n// Custom attribute to track active spinners\nconst activeSpinnersAttr = 'data-active-spinners';\n\n// Generates a random unique ID for each spinner instance.\nfunction generateUniqueId() {\n return `spinner-${Math.random().toString(36).substring(2, 9)}`;\n}\n\n// Finds or creates the notification area element in the DOM.\nconst getOrCreateNotificationArea = (): HTMLElement => {\n let element = document.getElementById(notificationAreaId);\n\n // Create and append it to the DOM.\n if (!element) {\n element = document.createElement('div');\n element.id = notificationAreaId;\n element.setAttribute('role', 'status');\n element.setAttribute('aria-live', 'polite');\n element.className = 'ds-visually-hidden';\n document.body.appendChild(element);\n }\n\n return element;\n};\n\nexport const useNotificationArea = (\n loadingText = '\u0393\u03AF\u03BD\u03B5\u03C4\u03B1\u03B9 \u03C6\u03CC\u03C1\u03C4\u03C9\u03C3\u03B7...',\n finishedText = '\u0397 \u03C6\u03CC\u03C1\u03C4\u03C9\u03C3\u03B7 \u03BF\u03BB\u03BF\u03BA\u03BB\u03B7\u03C1\u03CE\u03B8\u03B7\u03BA\u03B5.'\n) => {\n // Unique ID for this spinner.\n const spinnerId = useRef(generateUniqueId());\n // Reference to the notification area DOM element.\n const notificationRef = useRef<HTMLElement | null>(null);\n\n // Returns an array of active spinner IDs.\n const getActiveIds = useCallback(() => {\n const current = notificationRef.current;\n const value = current?.getAttribute(activeSpinnersAttr) || '';\n return value.split(',').filter(Boolean);\n }, [notificationRef]);\n\n // Adds this spinner's ID to the active list.\n const setActiveSpinnerId = useCallback(() => {\n const current = notificationRef.current;\n if (current) {\n const ids = new Set(getActiveIds());\n ids.add(spinnerId.current);\n current.setAttribute(activeSpinnersAttr, Array.from(ids).join(','));\n }\n }, [notificationRef, getActiveIds, spinnerId]);\n\n // Removes this spinner's ID from the active list.\n const unsetActiveSpinnerId = useCallback(() => {\n const current = notificationRef.current;\n if (current) {\n const ids = getActiveIds().filter((id) => id !== spinnerId.current);\n current.setAttribute(activeSpinnersAttr, ids.join(','));\n }\n }, [notificationRef, getActiveIds, spinnerId]);\n\n // Updates the text content of the aria-live region.\n const setTextContent = (text: string) => {\n if (notificationRef.current) {\n notificationRef.current.textContent = text;\n }\n };\n\n useEffect(() => {\n if (typeof document === 'undefined') return;\n\n // Set up notification area and mark this spinner as active.\n notificationRef.current = getOrCreateNotificationArea();\n setActiveSpinnerId();\n setTextContent(loadingText);\n\n // Cleanup when component unmounts.\n return () => {\n unsetActiveSpinnerId();\n\n // If no active spinners remain, announce \"finished\" and clear the text.\n if (getActiveIds().length === 0) {\n setTextContent(finishedText);\n\n // Give screen readers a chance to announce \"finished\" before clearing.\n setTimeout(() => {\n const el = notificationRef.current;\n if (el && getActiveIds().length === 0) {\n el.removeAttribute(activeSpinnersAttr);\n el.textContent = '';\n }\n }, 1000);\n }\n };\n }, [\n loadingText,\n finishedText,\n setActiveSpinnerId,\n unsetActiveSpinnerId,\n getActiveIds,\n ]);\n};\n"],
5
+ "mappings": "AAAA,SAAS,aAAa,WAAW,cAAc;AAG/C,MAAM,qBAAqB;AAE3B,MAAM,qBAAqB;AAG3B,SAAS,mBAAmB;AAC1B,SAAO,WAAW,KAAK,OAAO,EAAE,SAAS,EAAE,EAAE,UAAU,GAAG,CAAC,CAAC;AAC9D;AAGA,MAAM,8BAA8B,MAAmB;AACrD,MAAI,UAAU,SAAS,eAAe,kBAAkB;AAGxD,MAAI,CAAC,SAAS;AACZ,cAAU,SAAS,cAAc,KAAK;AACtC,YAAQ,KAAK;AACb,YAAQ,aAAa,QAAQ,QAAQ;AACrC,YAAQ,aAAa,aAAa,QAAQ;AAC1C,YAAQ,YAAY;AACpB,aAAS,KAAK,YAAY,OAAO;AAAA,EACnC;AAEA,SAAO;AACT;AAEO,MAAM,sBAAsB,CACjC,cAAc,4FACd,eAAe,kIACZ;AAEH,QAAM,YAAY,OAAO,iBAAiB,CAAC;AAE3C,QAAM,kBAAkB,OAA2B,IAAI;AAGvD,QAAM,eAAe,YAAY,MAAM;AACrC,UAAM,UAAU,gBAAgB;AAChC,UAAM,QAAQ,SAAS,aAAa,kBAAkB,KAAK;AAC3D,WAAO,MAAM,MAAM,GAAG,EAAE,OAAO,OAAO;AAAA,EACxC,GAAG,CAAC,eAAe,CAAC;AAGpB,QAAM,qBAAqB,YAAY,MAAM;AAC3C,UAAM,UAAU,gBAAgB;AAChC,QAAI,SAAS;AACX,YAAM,MAAM,IAAI,IAAI,aAAa,CAAC;AAClC,UAAI,IAAI,UAAU,OAAO;AACzB,cAAQ,aAAa,oBAAoB,MAAM,KAAK,GAAG,EAAE,KAAK,GAAG,CAAC;AAAA,IACpE;AAAA,EACF,GAAG,CAAC,iBAAiB,cAAc,SAAS,CAAC;AAG7C,QAAM,uBAAuB,YAAY,MAAM;AAC7C,UAAM,UAAU,gBAAgB;AAChC,QAAI,SAAS;AACX,YAAM,MAAM,aAAa,EAAE,OAAO,CAAC,OAAO,OAAO,UAAU,OAAO;AAClE,cAAQ,aAAa,oBAAoB,IAAI,KAAK,GAAG,CAAC;AAAA,IACxD;AAAA,EACF,GAAG,CAAC,iBAAiB,cAAc,SAAS,CAAC;AAG7C,QAAM,iBAAiB,CAAC,SAAiB;AACvC,QAAI,gBAAgB,SAAS;AAC3B,sBAAgB,QAAQ,cAAc;AAAA,IACxC;AAAA,EACF;AAEA,YAAU,MAAM;AACd,QAAI,OAAO,aAAa,YAAa;AAGrC,oBAAgB,UAAU,4BAA4B;AACtD,uBAAmB;AACnB,mBAAe,WAAW;AAG1B,WAAO,MAAM;AACX,2BAAqB;AAGrB,UAAI,aAAa,EAAE,WAAW,GAAG;AAC/B,uBAAe,YAAY;AAG3B,mBAAW,MAAM;AACf,gBAAM,KAAK,gBAAgB;AAC3B,cAAI,MAAM,aAAa,EAAE,WAAW,GAAG;AACrC,eAAG,gBAAgB,kBAAkB;AACrC,eAAG,cAAc;AAAA,UACnB;AAAA,QACF,GAAG,GAAI;AAAA,MACT;AAAA,IACF;AAAA,EACF,GAAG;AAAA,IACD;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,CAAC;AACH;",
6
+ "names": []
7
+ }
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/app/Loader/index.native.tsx"],
4
- "sourcesContent": ["import React, { useRef, useEffect } from 'react';\nimport { Animated, Easing } from 'react-native';\nimport Svg, { Circle } from 'react-native-svg';\nimport { CircularProgressProps } from '@digigov/react-core/CircularProgress';\n\nexport const CircularProgress: React.FC<CircularProgressProps> = ({\n size = 'md',\n color = 'primary',\n}) => {\n const sizes = {\n sm: 20,\n md: 40,\n lg: 50,\n };\n const strokeWidth = sizes[size] / 4;\n const radius = (sizes[size] - strokeWidth) / 2;\n const circumference = 2 * Math.PI * radius;\n const rotateAnim = useRef(new Animated.Value(0)).current;\n const dashAnim = useRef(new Animated.Value(circumference)).current;\n\n const progressColor = color === 'primary' ? '#003375' : '#fff';\n const backgroundColor = '#01b0f0';\n const duration = 4000;\n\n useEffect(() => {\n Animated.loop(\n Animated.timing(rotateAnim, {\n toValue: 1,\n duration: 10000,\n easing: Easing.linear,\n useNativeDriver: true,\n })\n ).start();\n }, [rotateAnim]);\n\n useEffect(() => {\n Animated.loop(\n Animated.sequence([\n Animated.timing(dashAnim, {\n toValue: 0,\n duration: duration * 0.4,\n easing: Easing.inOut(Easing.ease),\n useNativeDriver: true,\n }),\n Animated.timing(dashAnim, {\n toValue: circumference,\n duration: duration * 0.6,\n easing: Easing.inOut(Easing.ease),\n useNativeDriver: true,\n }),\n ])\n ).start();\n }, [dashAnim, duration, circumference]);\n\n const rotateInterpolate = rotateAnim.interpolate({\n inputRange: [0, 1],\n outputRange: ['0deg', '360deg'],\n });\n\n return (\n <Animated.View\n style={[\n {\n width: sizes[size],\n height: sizes[size],\n transform: [{ rotate: rotateInterpolate }],\n },\n ]}\n >\n <Svg\n width={sizes[size]}\n height={sizes[size]}\n viewBox={`0 0 ${sizes[size]} ${sizes[size]}`}\n >\n <Circle\n cx={sizes[size] / 2}\n cy={sizes[size] / 2}\n r={radius}\n stroke={backgroundColor}\n strokeWidth={strokeWidth}\n fill=\"none\"\n />\n <AnimatedCircle\n cx={sizes[size] / 2}\n cy={sizes[size] / 2}\n r={radius}\n stroke={progressColor}\n strokeWidth={strokeWidth}\n strokeDasharray={`${circumference}`}\n strokeDashoffset={dashAnim}\n fill=\"none\"\n />\n </Svg>\n </Animated.View>\n );\n};\n\nconst AnimatedCircle = Animated.createAnimatedComponent(Circle);\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,mBAAyC;AACzC,0BAAiC;AACjC,8BAA4B;AAGrB,MAAM,mBAAoD,CAAC;AAAA,EAChE,OAAO;AAAA,EACP,QAAQ;AACV,MAAM;AACJ,QAAM,QAAQ;AAAA,IACZ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,EACN;AACA,QAAM,cAAc,MAAM,IAAI,IAAI;AAClC,QAAM,UAAU,MAAM,IAAI,IAAI,eAAe;AAC7C,QAAM,gBAAgB,IAAI,KAAK,KAAK;AACpC,QAAM,iBAAa,qBAAO,IAAI,6BAAS,MAAM,CAAC,CAAC,EAAE;AACjD,QAAM,eAAW,qBAAO,IAAI,6BAAS,MAAM,aAAa,CAAC,EAAE;AAE3D,QAAM,gBAAgB,UAAU,YAAY,YAAY;AACxD,QAAM,kBAAkB;AACxB,QAAM,WAAW;AAEjB,8BAAU,MAAM;AACd,iCAAS;AAAA,MACP,6BAAS,OAAO,YAAY;AAAA,QAC1B,SAAS;AAAA,QACT,UAAU;AAAA,QACV,QAAQ,2BAAO;AAAA,QACf,iBAAiB;AAAA,MACnB,CAAC;AAAA,IACH,EAAE,MAAM;AAAA,EACV,GAAG,CAAC,UAAU,CAAC;AAEf,8BAAU,MAAM;AACd,iCAAS;AAAA,MACP,6BAAS,SAAS;AAAA,QAChB,6BAAS,OAAO,UAAU;AAAA,UACxB,SAAS;AAAA,UACT,UAAU,WAAW;AAAA,UACrB,QAAQ,2BAAO,MAAM,2BAAO,IAAI;AAAA,UAChC,iBAAiB;AAAA,QACnB,CAAC;AAAA,QACD,6BAAS,OAAO,UAAU;AAAA,UACxB,SAAS;AAAA,UACT,UAAU,WAAW;AAAA,UACrB,QAAQ,2BAAO,MAAM,2BAAO,IAAI;AAAA,UAChC,iBAAiB;AAAA,QACnB,CAAC;AAAA,MACH,CAAC;AAAA,IACH,EAAE,MAAM;AAAA,EACV,GAAG,CAAC,UAAU,UAAU,aAAa,CAAC;AAEtC,QAAM,oBAAoB,WAAW,YAAY;AAAA,IAC/C,YAAY,CAAC,GAAG,CAAC;AAAA,IACjB,aAAa,CAAC,QAAQ,QAAQ;AAAA,EAChC,CAAC;AAED,SACE,6BAAAA,QAAA;AAAA,IAAC,6BAAS;AAAA,IAAT;AAAA,MACC,OAAO;AAAA,QACL;AAAA,UACE,OAAO,MAAM,IAAI;AAAA,UACjB,QAAQ,MAAM,IAAI;AAAA,UAClB,WAAW,CAAC,EAAE,QAAQ,kBAAkB,CAAC;AAAA,QAC3C;AAAA,MACF;AAAA;AAAA,IAEA,6BAAAA,QAAA;AAAA,MAAC,wBAAAC;AAAA,MAAA;AAAA,QACC,OAAO,MAAM,IAAI;AAAA,QACjB,QAAQ,MAAM,IAAI;AAAA,QAClB,SAAS,OAAO,MAAM,IAAI,CAAC,IAAI,MAAM,IAAI,CAAC;AAAA;AAAA,MAE1C,6BAAAD,QAAA;AAAA,QAAC;AAAA;AAAA,UACC,IAAI,MAAM,IAAI,IAAI;AAAA,UAClB,IAAI,MAAM,IAAI,IAAI;AAAA,UAClB,GAAG;AAAA,UACH,QAAQ;AAAA,UACR;AAAA,UACA,MAAK;AAAA;AAAA,MACP;AAAA,MACA,6BAAAA,QAAA;AAAA,QAAC;AAAA;AAAA,UACC,IAAI,MAAM,IAAI,IAAI;AAAA,UAClB,IAAI,MAAM,IAAI,IAAI;AAAA,UAClB,GAAG;AAAA,UACH,QAAQ;AAAA,UACR;AAAA,UACA,iBAAiB,GAAG,aAAa;AAAA,UACjC,kBAAkB;AAAA,UAClB,MAAK;AAAA;AAAA,MACP;AAAA,IACF;AAAA,EACF;AAEJ;AAEA,MAAM,iBAAiB,6BAAS,wBAAwB,8BAAM;",
4
+ "sourcesContent": ["import React, { useRef, useEffect } from 'react';\nimport { Animated, Easing } from 'react-native';\nimport Svg, { Circle } from 'react-native-svg';\nimport { CircularProgressBaseProps } from '@digigov/react-core/CircularProgressBase';\n\nexport const CircularProgress: React.FC<CircularProgressBaseProps> = ({\n size = 'md',\n color = 'primary',\n}) => {\n const sizes = {\n sm: 20,\n md: 40,\n lg: 50,\n };\n const strokeWidth = sizes[size] / 4;\n const radius = (sizes[size] - strokeWidth) / 2;\n const circumference = 2 * Math.PI * radius;\n const rotateAnim = useRef(new Animated.Value(0)).current;\n const dashAnim = useRef(new Animated.Value(circumference)).current;\n\n const progressColor = color === 'primary' ? '#003375' : '#fff';\n const backgroundColor = '#01b0f0';\n const duration = 4000;\n\n useEffect(() => {\n Animated.loop(\n Animated.timing(rotateAnim, {\n toValue: 1,\n duration: 10000,\n easing: Easing.linear,\n useNativeDriver: true,\n })\n ).start();\n }, [rotateAnim]);\n\n useEffect(() => {\n Animated.loop(\n Animated.sequence([\n Animated.timing(dashAnim, {\n toValue: 0,\n duration: duration * 0.4,\n easing: Easing.inOut(Easing.ease),\n useNativeDriver: true,\n }),\n Animated.timing(dashAnim, {\n toValue: circumference,\n duration: duration * 0.6,\n easing: Easing.inOut(Easing.ease),\n useNativeDriver: true,\n }),\n ])\n ).start();\n }, [dashAnim, duration, circumference]);\n\n const rotateInterpolate = rotateAnim.interpolate({\n inputRange: [0, 1],\n outputRange: ['0deg', '360deg'],\n });\n\n return (\n <Animated.View\n style={[\n {\n width: sizes[size],\n height: sizes[size],\n transform: [{ rotate: rotateInterpolate }],\n },\n ]}\n >\n <Svg\n width={sizes[size]}\n height={sizes[size]}\n viewBox={`0 0 ${sizes[size]} ${sizes[size]}`}\n >\n <Circle\n cx={sizes[size] / 2}\n cy={sizes[size] / 2}\n r={radius}\n stroke={backgroundColor}\n strokeWidth={strokeWidth}\n fill=\"none\"\n />\n <AnimatedCircle\n cx={sizes[size] / 2}\n cy={sizes[size] / 2}\n r={radius}\n stroke={progressColor}\n strokeWidth={strokeWidth}\n strokeDasharray={`${circumference}`}\n strokeDashoffset={dashAnim}\n fill=\"none\"\n />\n </Svg>\n </Animated.View>\n );\n};\n\nconst AnimatedCircle = Animated.createAnimatedComponent(Circle);\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,mBAAyC;AACzC,0BAAiC;AACjC,8BAA4B;AAGrB,MAAM,mBAAwD,CAAC;AAAA,EACpE,OAAO;AAAA,EACP,QAAQ;AACV,MAAM;AACJ,QAAM,QAAQ;AAAA,IACZ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,EACN;AACA,QAAM,cAAc,MAAM,IAAI,IAAI;AAClC,QAAM,UAAU,MAAM,IAAI,IAAI,eAAe;AAC7C,QAAM,gBAAgB,IAAI,KAAK,KAAK;AACpC,QAAM,iBAAa,qBAAO,IAAI,6BAAS,MAAM,CAAC,CAAC,EAAE;AACjD,QAAM,eAAW,qBAAO,IAAI,6BAAS,MAAM,aAAa,CAAC,EAAE;AAE3D,QAAM,gBAAgB,UAAU,YAAY,YAAY;AACxD,QAAM,kBAAkB;AACxB,QAAM,WAAW;AAEjB,8BAAU,MAAM;AACd,iCAAS;AAAA,MACP,6BAAS,OAAO,YAAY;AAAA,QAC1B,SAAS;AAAA,QACT,UAAU;AAAA,QACV,QAAQ,2BAAO;AAAA,QACf,iBAAiB;AAAA,MACnB,CAAC;AAAA,IACH,EAAE,MAAM;AAAA,EACV,GAAG,CAAC,UAAU,CAAC;AAEf,8BAAU,MAAM;AACd,iCAAS;AAAA,MACP,6BAAS,SAAS;AAAA,QAChB,6BAAS,OAAO,UAAU;AAAA,UACxB,SAAS;AAAA,UACT,UAAU,WAAW;AAAA,UACrB,QAAQ,2BAAO,MAAM,2BAAO,IAAI;AAAA,UAChC,iBAAiB;AAAA,QACnB,CAAC;AAAA,QACD,6BAAS,OAAO,UAAU;AAAA,UACxB,SAAS;AAAA,UACT,UAAU,WAAW;AAAA,UACrB,QAAQ,2BAAO,MAAM,2BAAO,IAAI;AAAA,UAChC,iBAAiB;AAAA,QACnB,CAAC;AAAA,MACH,CAAC;AAAA,IACH,EAAE,MAAM;AAAA,EACV,GAAG,CAAC,UAAU,UAAU,aAAa,CAAC;AAEtC,QAAM,oBAAoB,WAAW,YAAY;AAAA,IAC/C,YAAY,CAAC,GAAG,CAAC;AAAA,IACjB,aAAa,CAAC,QAAQ,QAAQ;AAAA,EAChC,CAAC;AAED,SACE,6BAAAA,QAAA;AAAA,IAAC,6BAAS;AAAA,IAAT;AAAA,MACC,OAAO;AAAA,QACL;AAAA,UACE,OAAO,MAAM,IAAI;AAAA,UACjB,QAAQ,MAAM,IAAI;AAAA,UAClB,WAAW,CAAC,EAAE,QAAQ,kBAAkB,CAAC;AAAA,QAC3C;AAAA,MACF;AAAA;AAAA,IAEA,6BAAAA,QAAA;AAAA,MAAC,wBAAAC;AAAA,MAAA;AAAA,QACC,OAAO,MAAM,IAAI;AAAA,QACjB,QAAQ,MAAM,IAAI;AAAA,QAClB,SAAS,OAAO,MAAM,IAAI,CAAC,IAAI,MAAM,IAAI,CAAC;AAAA;AAAA,MAE1C,6BAAAD,QAAA;AAAA,QAAC;AAAA;AAAA,UACC,IAAI,MAAM,IAAI,IAAI;AAAA,UAClB,IAAI,MAAM,IAAI,IAAI;AAAA,UAClB,GAAG;AAAA,UACH,QAAQ;AAAA,UACR;AAAA,UACA,MAAK;AAAA;AAAA,MACP;AAAA,MACA,6BAAAA,QAAA;AAAA,QAAC;AAAA;AAAA,UACC,IAAI,MAAM,IAAI,IAAI;AAAA,UAClB,IAAI,MAAM,IAAI,IAAI;AAAA,UAClB,GAAG;AAAA,UACH,QAAQ;AAAA,UACR;AAAA,UACA,iBAAiB,GAAG,aAAa;AAAA,UACjC,kBAAkB;AAAA,UAClB,MAAK;AAAA;AAAA,MACP;AAAA,IACF;AAAA,EACF;AAEJ;AAEA,MAAM,iBAAiB,6BAAS,wBAAwB,8BAAM;",
6
6
  "names": ["React", "Svg"]
7
7
  }