geoiq-frontend-ui-kit 2.0.2 → 2.0.4

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 (217) hide show
  1. package/dist/components/organisms/image-editor/components/line-session-bar.d.ts +20 -0
  2. package/dist/components/organisms/image-editor/components/line-session-bar.d.ts.map +1 -0
  3. package/dist/components/organisms/image-editor/components/panel-insert.d.ts.map +1 -1
  4. package/dist/components/organisms/image-editor/components/panel-selected.d.ts.map +1 -1
  5. package/dist/components/organisms/image-editor/components/panel.d.ts.map +1 -1
  6. package/dist/components/organisms/image-editor/components/saved-layers-list.d.ts +9 -0
  7. package/dist/components/organisms/image-editor/components/saved-layers-list.d.ts.map +1 -0
  8. package/dist/components/organisms/image-editor/image-editor-modal.d.ts.map +1 -1
  9. package/dist/components/organisms/image-editor/image-editor.types.d.ts +73 -0
  10. package/dist/components/organisms/image-editor/image-editor.types.d.ts.map +1 -1
  11. package/dist/components/organisms/image-editor/use-image-editor.d.ts.map +1 -1
  12. package/dist/components/ui/request-credits-view/component/request-credit-dialog.d.ts.map +1 -1
  13. package/dist/index.es100.js +147 -120
  14. package/dist/index.es100.js.map +1 -1
  15. package/dist/index.es101.js +16 -11
  16. package/dist/index.es101.js.map +1 -1
  17. package/dist/index.es102.js +7 -41
  18. package/dist/index.es102.js.map +1 -1
  19. package/dist/index.es103.js +21 -10
  20. package/dist/index.es103.js.map +1 -1
  21. package/dist/index.es104.js +7 -74
  22. package/dist/index.es104.js.map +1 -1
  23. package/dist/index.es105.js +177 -30
  24. package/dist/index.es105.js.map +1 -1
  25. package/dist/index.es106.js +45 -16
  26. package/dist/index.es106.js.map +1 -1
  27. package/dist/index.es107.js +42 -20
  28. package/dist/index.es107.js.map +1 -1
  29. package/dist/index.es108.js +22 -12
  30. package/dist/index.es108.js.map +1 -1
  31. package/dist/index.es109.js +122 -98
  32. package/dist/index.es109.js.map +1 -1
  33. package/dist/index.es11.js +1 -1
  34. package/dist/index.es110.js +33 -62
  35. package/dist/index.es110.js.map +1 -1
  36. package/dist/index.es111.js +60 -52
  37. package/dist/index.es111.js.map +1 -1
  38. package/dist/index.es112.js +10 -41
  39. package/dist/index.es112.js.map +1 -1
  40. package/dist/index.es113.js +21 -11
  41. package/dist/index.es113.js.map +1 -1
  42. package/dist/index.es114.js +42 -92
  43. package/dist/index.es114.js.map +1 -1
  44. package/dist/index.es115.js +37 -16
  45. package/dist/index.es115.js.map +1 -1
  46. package/dist/index.es116.js +12 -99
  47. package/dist/index.es116.js.map +1 -1
  48. package/dist/index.es117.js +92 -13
  49. package/dist/index.es117.js.map +1 -1
  50. package/dist/index.es118.js +13 -101
  51. package/dist/index.es118.js.map +1 -1
  52. package/dist/index.es119.js +71 -20
  53. package/dist/index.es119.js.map +1 -1
  54. package/dist/index.es12.js +1 -1
  55. package/dist/index.es120.js +34 -25
  56. package/dist/index.es120.js.map +1 -1
  57. package/dist/index.es121.js +20 -22
  58. package/dist/index.es121.js.map +1 -1
  59. package/dist/index.es122.js +16 -45
  60. package/dist/index.es122.js.map +1 -1
  61. package/dist/index.es123.js +11 -34
  62. package/dist/index.es123.js.map +1 -1
  63. package/dist/index.es124.js +96 -61
  64. package/dist/index.es124.js.map +1 -1
  65. package/dist/index.es125.js +57 -174
  66. package/dist/index.es125.js.map +1 -1
  67. package/dist/index.es126.js +50 -17
  68. package/dist/index.es126.js.map +1 -1
  69. package/dist/index.es127.js +2 -2
  70. package/dist/index.es128.js +2 -2
  71. package/dist/index.es129.js +1 -1
  72. package/dist/index.es130.js +1 -1
  73. package/dist/index.es131.js +2 -2
  74. package/dist/index.es132.js +35 -38
  75. package/dist/index.es132.js.map +1 -1
  76. package/dist/index.es133.js +41 -7
  77. package/dist/index.es133.js.map +1 -1
  78. package/dist/index.es134.js +88 -7
  79. package/dist/index.es134.js.map +1 -1
  80. package/dist/index.es135.js +14 -34
  81. package/dist/index.es135.js.map +1 -1
  82. package/dist/index.es136.js +269 -35
  83. package/dist/index.es136.js.map +1 -1
  84. package/dist/index.es137.js +7 -2
  85. package/dist/index.es137.js.map +1 -1
  86. package/dist/index.es138.js +23 -25
  87. package/dist/index.es138.js.map +1 -1
  88. package/dist/index.es139.js +169 -15
  89. package/dist/index.es139.js.map +1 -1
  90. package/dist/index.es140.js +82 -7
  91. package/dist/index.es140.js.map +1 -1
  92. package/dist/index.es141.js +73 -21
  93. package/dist/index.es141.js.map +1 -1
  94. package/dist/index.es142.js +3 -168
  95. package/dist/index.es142.js.map +1 -1
  96. package/dist/index.es143.js +56 -82
  97. package/dist/index.es143.js.map +1 -1
  98. package/dist/index.es144.js +119 -4
  99. package/dist/index.es144.js.map +1 -1
  100. package/dist/index.es145.js +405 -56
  101. package/dist/index.es145.js.map +1 -1
  102. package/dist/index.es146.js +25 -110
  103. package/dist/index.es146.js.map +1 -1
  104. package/dist/index.es147.js +60 -314
  105. package/dist/index.es147.js.map +1 -1
  106. package/dist/index.es148.js +29 -24
  107. package/dist/index.es148.js.map +1 -1
  108. package/dist/index.es149.js +21 -64
  109. package/dist/index.es149.js.map +1 -1
  110. package/dist/index.es150.js +36 -30
  111. package/dist/index.es150.js.map +1 -1
  112. package/dist/index.es151.js +211 -24
  113. package/dist/index.es151.js.map +1 -1
  114. package/dist/index.es152.js +141 -35
  115. package/dist/index.es152.js.map +1 -1
  116. package/dist/index.es153.js +141 -140
  117. package/dist/index.es153.js.map +1 -1
  118. package/dist/index.es154.js +45 -142
  119. package/dist/index.es154.js.map +1 -1
  120. package/dist/index.es155.js +353 -45
  121. package/dist/index.es155.js.map +1 -1
  122. package/dist/index.es156.js +14 -10
  123. package/dist/index.es156.js.map +1 -1
  124. package/dist/index.es157.js +10 -42
  125. package/dist/index.es157.js.map +1 -1
  126. package/dist/index.es158.js +44 -5
  127. package/dist/index.es158.js.map +1 -1
  128. package/dist/index.es159.js +5 -11
  129. package/dist/index.es159.js.map +1 -1
  130. package/dist/index.es16.js +1 -1
  131. package/dist/index.es160.js +10 -10
  132. package/dist/index.es160.js.map +1 -1
  133. package/dist/index.es161.js +11 -2
  134. package/dist/index.es161.js.map +1 -1
  135. package/dist/index.es162.js +2 -91
  136. package/dist/index.es162.js.map +1 -1
  137. package/dist/index.es163.js +2 -213
  138. package/dist/index.es163.js.map +1 -1
  139. package/dist/index.es164.js +23 -52
  140. package/dist/index.es164.js.map +1 -1
  141. package/dist/index.es165.js +88 -33
  142. package/dist/index.es165.js.map +1 -1
  143. package/dist/index.es166.js +52 -31
  144. package/dist/index.es166.js.map +1 -1
  145. package/dist/index.es167.js +32 -29
  146. package/dist/index.es167.js.map +1 -1
  147. package/dist/index.es168.js +26 -84
  148. package/dist/index.es168.js.map +1 -1
  149. package/dist/index.es169.js +27 -111
  150. package/dist/index.es169.js.map +1 -1
  151. package/dist/index.es170.js +97 -285
  152. package/dist/index.es170.js.map +1 -1
  153. package/dist/index.es171.js +251 -30
  154. package/dist/index.es171.js.map +1 -1
  155. package/dist/index.es172.js +63 -11
  156. package/dist/index.es172.js.map +1 -1
  157. package/dist/index.es173.js +284 -82
  158. package/dist/index.es173.js.map +1 -1
  159. package/dist/index.es174.js +29 -70
  160. package/dist/index.es174.js.map +1 -1
  161. package/dist/index.es175.js +10 -114
  162. package/dist/index.es175.js.map +1 -1
  163. package/dist/index.es176.js +23 -106
  164. package/dist/index.es176.js.map +1 -1
  165. package/dist/index.es177.js +19 -82
  166. package/dist/index.es177.js.map +1 -1
  167. package/dist/index.es178.js +63 -109
  168. package/dist/index.es178.js.map +1 -1
  169. package/dist/index.es179.js +63 -117
  170. package/dist/index.es179.js.map +1 -1
  171. package/dist/index.es180.js +112 -23
  172. package/dist/index.es180.js.map +1 -1
  173. package/dist/index.es181.js +103 -18
  174. package/dist/index.es181.js.map +1 -1
  175. package/dist/index.es182.js +86 -5
  176. package/dist/index.es182.js.map +1 -1
  177. package/dist/index.es183.js +133 -0
  178. package/dist/index.es183.js.map +1 -0
  179. package/dist/index.es184.js +133 -0
  180. package/dist/index.es184.js.map +1 -0
  181. package/dist/index.es185.js +9 -0
  182. package/dist/index.es185.js.map +1 -0
  183. package/dist/index.es19.js +1 -1
  184. package/dist/index.es2.js +21 -21
  185. package/dist/index.es2.js.map +1 -1
  186. package/dist/index.es20.js +1 -1
  187. package/dist/index.es21.js +3 -3
  188. package/dist/index.es22.js +1 -1
  189. package/dist/index.es25.js +1 -1
  190. package/dist/index.es27.js +1 -1
  191. package/dist/index.es28.js +2 -2
  192. package/dist/index.es30.js +1 -1
  193. package/dist/index.es32.js +1 -1
  194. package/dist/index.es33.js +1 -1
  195. package/dist/index.es45.js +48 -46
  196. package/dist/index.es45.js.map +1 -1
  197. package/dist/index.es46.js +2 -2
  198. package/dist/index.es47.js +1 -1
  199. package/dist/index.es48.js +1 -1
  200. package/dist/index.es53.js +1 -1
  201. package/dist/index.es54.js +1 -1
  202. package/dist/index.es57.js +1 -1
  203. package/dist/index.es59.js +1 -1
  204. package/dist/index.es67.js +2 -2
  205. package/dist/index.es68.js +1 -1
  206. package/dist/index.es71.js +1 -1
  207. package/dist/index.es72.js +7 -7
  208. package/dist/index.es73.js +2 -2
  209. package/dist/index.es85.js +1 -1
  210. package/dist/index.es97.js +16 -11
  211. package/dist/index.es97.js.map +1 -1
  212. package/dist/index.es98.js +89 -262
  213. package/dist/index.es98.js.map +1 -1
  214. package/dist/index.es99.js +13 -87
  215. package/dist/index.es99.js.map +1 -1
  216. package/dist/styles.css +55 -0
  217. package/package.json +2 -1
@@ -1,10 +1,91 @@
1
- function o(n, t) {
2
- return n.replace(/\{\{(\w+)\}\}/g, (l, e) => {
3
- const r = t[e];
4
- return r != null ? String(r) : "";
5
- });
6
- }
1
+ import * as e from "react";
2
+ import { Slot as o } from "@radix-ui/react-slot";
3
+ import { ChevronRight as l, MoreHorizontal as c } from "lucide-react";
4
+ import { cn as m } from "./index.es89.js";
5
+ const i = e.forwardRef(({ ...r }, a) => /* @__PURE__ */ e.createElement("nav", { ref: a, "aria-label": "breadcrumb", ...r }));
6
+ i.displayName = "Breadcrumb";
7
+ const d = e.forwardRef(({ className: r, ...a }, t) => /* @__PURE__ */ e.createElement(
8
+ "ol",
9
+ {
10
+ ref: t,
11
+ className: m(
12
+ "flex flex-wrap items-center gap-1.5 break-words text-sm text-muted-foreground sm:gap-2.5",
13
+ r
14
+ ),
15
+ ...a
16
+ }
17
+ ));
18
+ d.displayName = "BreadcrumbList";
19
+ const p = e.forwardRef(({ className: r, ...a }, t) => /* @__PURE__ */ e.createElement(
20
+ "li",
21
+ {
22
+ ref: t,
23
+ className: m("inline-flex items-center gap-1.5", r),
24
+ ...a
25
+ }
26
+ ));
27
+ p.displayName = "BreadcrumbItem";
28
+ const u = e.forwardRef(({ asChild: r, className: a, ...t }, s) => {
29
+ const n = r ? o : "a";
30
+ return /* @__PURE__ */ e.createElement(
31
+ n,
32
+ {
33
+ ref: s,
34
+ className: m("transition-colors hover:text-foreground", a),
35
+ ...t
36
+ }
37
+ );
38
+ });
39
+ u.displayName = "BreadcrumbLink";
40
+ const f = e.forwardRef(({ className: r, ...a }, t) => /* @__PURE__ */ e.createElement(
41
+ "span",
42
+ {
43
+ ref: t,
44
+ role: "link",
45
+ "aria-disabled": "true",
46
+ "aria-current": "page",
47
+ className: m("font-normal text-foreground", r),
48
+ ...a
49
+ }
50
+ ));
51
+ f.displayName = "BreadcrumbPage";
52
+ const b = ({
53
+ children: r,
54
+ className: a,
55
+ ...t
56
+ }) => /* @__PURE__ */ e.createElement(
57
+ "li",
58
+ {
59
+ role: "presentation",
60
+ "aria-hidden": "true",
61
+ className: m("[&>svg]:size-3.5", a),
62
+ ...t
63
+ },
64
+ r ?? /* @__PURE__ */ e.createElement(l, null)
65
+ );
66
+ b.displayName = "BreadcrumbSeparator";
67
+ const N = ({
68
+ className: r,
69
+ ...a
70
+ }) => /* @__PURE__ */ e.createElement(
71
+ "span",
72
+ {
73
+ role: "presentation",
74
+ "aria-hidden": "true",
75
+ className: m("flex h-9 w-9 items-center justify-center", r),
76
+ ...a
77
+ },
78
+ /* @__PURE__ */ e.createElement(c, { className: "h-4 w-4" }),
79
+ /* @__PURE__ */ e.createElement("span", { className: "sr-only" }, "More")
80
+ );
81
+ N.displayName = "BreadcrumbElipssis";
7
82
  export {
8
- o as interpolateUrl
83
+ i as Breadcrumb,
84
+ N as BreadcrumbEllipsis,
85
+ p as BreadcrumbItem,
86
+ u as BreadcrumbLink,
87
+ d as BreadcrumbList,
88
+ f as BreadcrumbPage,
89
+ b as BreadcrumbSeparator
9
90
  };
10
91
  //# sourceMappingURL=index.es134.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.es134.js","sources":["../src/components/molecules/creatable-multi-combobox/creatable-multi-combobox.types.ts"],"sourcesContent":["import { PopoverContent } from '@/components/unstyled/popover/popover-components'\nimport React from 'react'\n\nexport type CreatableOption = {\n id: string\n name: string\n disabled?: boolean\n icon?: React.ReactElement\n}\n\nexport type PopoverContentProps = React.ComponentPropsWithoutRef<\n typeof PopoverContent\n>\n\n/** Replaces {{fieldId}} in URL with urlTemplateData[fieldId] */\nexport function interpolateUrl(\n url: string,\n data: Record<string, unknown>\n): string {\n return url.replace(/\\{\\{(\\w+)\\}\\}/g, (_, key) => {\n const val = data[key]\n return val != null ? String(val) : ''\n })\n}\n\nexport type CreatableMultiComboboxPropsType = {\n /** API URL to fetch options (POST). Supports {{fieldId}} for form value interpolation. Ignored if fetchOptions provided */\n optionsUrl?: string\n /** API URL to create new option (POST). Supports {{fieldId}} for form value interpolation. Ignored if createOption provided */\n createOptionUrl?: string\n /** Override: custom fetch for options. When provided, optionsUrl is ignored */\n fetchOptions?: () => Promise<CreatableOption[]>\n /** Override: custom create handler. When provided, createOptionUrl is ignored */\n createOption?: (value: string) => Promise<CreatableOption>\n /** Headers to include in API requests (e.g. Authorization from cookie). Can be sync or async */\n requestHeaders?:\n | Record<string, string>\n | (() => Record<string, string> | Promise<Record<string, string>>)\n /** Request body for fetch options API. When provided, overrides default { ...urlTemplateData, fieldId } */\n optionsRequestBody?: Record<string, unknown>\n /** Request body for create/upsert option API. Merged with { [createOptionValueKey]: value }. E.g. { type: \"zone\" } */\n createOptionRequestBody?: Record<string, unknown>\n /** Key for the typed value in create body. Default \"value\". Use \"email\" if API expects that key */\n createOptionValueKey?: string\n /** Extra body fields for create (e.g. { email: userEmail } from cookie). Merged last */\n createOptionExtraBody?:\n | Record<string, unknown>\n | (() => Record<string, unknown> | Promise<Record<string, unknown>>)\n /** When true, createOptionExtraBody is not merged (use when value key is \"email\" and extra would conflict) */\n skipCreateOptionExtraBody?: boolean\n /** Form values for URL interpolation (e.g. {{country}} -> values.country) */\n urlTemplateData?: Record<string, unknown>\n value: string[]\n fieldId: string\n placeholder?: string\n searchPlaceholder?: string\n emptyMessage?: string\n addCustomMessage?: (typedValue: string) => string\n /** Minimum number of values that must be selected */\n minSelected?: number\n /** Maximum number of values that can be selected */\n maxSelected?: number\n onChange: (value: string[]) => void\n container?: Element | null | undefined\n}\n"],"names":["interpolateUrl","url","data","_","key","val"],"mappings":"AAeO,SAASA,EACdC,GACAC,GACQ;AACR,SAAOD,EAAI,QAAQ,kBAAkB,CAACE,GAAGC,MAAQ;AAC/C,UAAMC,IAAMH,EAAKE,CAAG;AACpB,WAAOC,KAAO,OAAO,OAAOA,CAAG,IAAI;AAAA,EACrC,CAAC;AACH;"}
1
+ {"version":3,"file":"index.es134.js","sources":["../src/components/molecules/breadcrumb/breadcrumb-components.tsx"],"sourcesContent":["import * as React from 'react'\nimport { Slot } from '@radix-ui/react-slot'\nimport { ChevronRight, MoreHorizontal } from 'lucide-react'\n\nimport { cn } from '@/lib/utils'\n\nconst Breadcrumb = React.forwardRef<\n HTMLElement,\n React.ComponentPropsWithoutRef<'nav'> & {\n separator?: React.ReactNode\n }\n>(({ ...props }, ref) => <nav ref={ref} aria-label=\"breadcrumb\" {...props} />)\nBreadcrumb.displayName = 'Breadcrumb'\n\nconst BreadcrumbList = React.forwardRef<\n HTMLOListElement,\n React.ComponentPropsWithoutRef<'ol'>\n>(({ className, ...props }, ref) => (\n <ol\n ref={ref}\n className={cn(\n 'flex flex-wrap items-center gap-1.5 break-words text-sm text-muted-foreground sm:gap-2.5',\n className\n )}\n {...props}\n />\n))\nBreadcrumbList.displayName = 'BreadcrumbList'\n\nconst BreadcrumbItem = React.forwardRef<\n HTMLLIElement,\n React.ComponentPropsWithoutRef<'li'>\n>(({ className, ...props }, ref) => (\n <li\n ref={ref}\n className={cn('inline-flex items-center gap-1.5', className)}\n {...props}\n />\n))\nBreadcrumbItem.displayName = 'BreadcrumbItem'\n\nconst BreadcrumbLink = React.forwardRef<\n HTMLAnchorElement,\n React.ComponentPropsWithoutRef<'a'> & {\n asChild?: boolean\n }\n>(({ asChild, className, ...props }, ref) => {\n const Comp = asChild ? Slot : 'a'\n\n return (\n <Comp\n ref={ref}\n className={cn('transition-colors hover:text-foreground', className)}\n {...props}\n />\n )\n})\nBreadcrumbLink.displayName = 'BreadcrumbLink'\n\nconst BreadcrumbPage = React.forwardRef<\n HTMLSpanElement,\n React.ComponentPropsWithoutRef<'span'>\n>(({ className, ...props }, ref) => (\n <span\n ref={ref}\n role=\"link\"\n aria-disabled=\"true\"\n aria-current=\"page\"\n className={cn('font-normal text-foreground', className)}\n {...props}\n />\n))\nBreadcrumbPage.displayName = 'BreadcrumbPage'\n\nconst BreadcrumbSeparator = ({\n children,\n className,\n ...props\n}: React.ComponentProps<'li'>) => (\n <li\n role=\"presentation\"\n aria-hidden=\"true\"\n className={cn('[&>svg]:size-3.5', className)}\n {...props}\n >\n {children ?? <ChevronRight />}\n </li>\n)\nBreadcrumbSeparator.displayName = 'BreadcrumbSeparator'\n\nconst BreadcrumbEllipsis = ({\n className,\n ...props\n}: React.ComponentProps<'span'>) => (\n <span\n role=\"presentation\"\n aria-hidden=\"true\"\n className={cn('flex h-9 w-9 items-center justify-center', className)}\n {...props}\n >\n <MoreHorizontal className=\"h-4 w-4\" />\n <span className=\"sr-only\">More</span>\n </span>\n)\nBreadcrumbEllipsis.displayName = 'BreadcrumbElipssis'\n\nexport {\n Breadcrumb,\n BreadcrumbList,\n BreadcrumbItem,\n BreadcrumbLink,\n BreadcrumbPage,\n BreadcrumbSeparator,\n BreadcrumbEllipsis,\n}\n"],"names":["Breadcrumb","React","props","ref","BreadcrumbList","className","cn","BreadcrumbItem","BreadcrumbLink","asChild","Comp","Slot","BreadcrumbPage","BreadcrumbSeparator","children","ChevronRight","BreadcrumbEllipsis","MoreHorizontal"],"mappings":";;;;AAMA,MAAMA,IAAaC,EAAM,WAKvB,CAAC,EAAE,GAAGC,EAAA,GAASC,MAAQ,gBAAAF,EAAA,cAAC,SAAI,KAAAE,GAAU,cAAW,cAAc,GAAGD,GAAO,CAAE;AAC7EF,EAAW,cAAc;AAEzB,MAAMI,IAAiBH,EAAM,WAG3B,CAAC,EAAE,WAAAI,GAAW,GAAGH,EAAA,GAASC,MAC1B,gBAAAF,EAAA;AAAA,EAAC;AAAA,EAAA;AAAA,IACC,KAAAE;AAAA,IACA,WAAWG;AAAA,MACT;AAAA,MACAD;AAAA,IAAA;AAAA,IAED,GAAGH;AAAA,EAAA;AACN,CACD;AACDE,EAAe,cAAc;AAE7B,MAAMG,IAAiBN,EAAM,WAG3B,CAAC,EAAE,WAAAI,GAAW,GAAGH,EAAA,GAASC,MAC1B,gBAAAF,EAAA;AAAA,EAAC;AAAA,EAAA;AAAA,IACC,KAAAE;AAAA,IACA,WAAWG,EAAG,oCAAoCD,CAAS;AAAA,IAC1D,GAAGH;AAAA,EAAA;AACN,CACD;AACDK,EAAe,cAAc;AAE7B,MAAMC,IAAiBP,EAAM,WAK3B,CAAC,EAAE,SAAAQ,GAAS,WAAAJ,GAAW,GAAGH,EAAA,GAASC,MAAQ;AAC3C,QAAMO,IAAOD,IAAUE,IAAO;AAE9B,SACE,gBAAAV,EAAA;AAAA,IAACS;AAAA,IAAA;AAAA,MACC,KAAAP;AAAA,MACA,WAAWG,EAAG,2CAA2CD,CAAS;AAAA,MACjE,GAAGH;AAAA,IAAA;AAAA,EAAA;AAGV,CAAC;AACDM,EAAe,cAAc;AAE7B,MAAMI,IAAiBX,EAAM,WAG3B,CAAC,EAAE,WAAAI,GAAW,GAAGH,EAAA,GAASC,MAC1B,gBAAAF,EAAA;AAAA,EAAC;AAAA,EAAA;AAAA,IACC,KAAAE;AAAA,IACA,MAAK;AAAA,IACL,iBAAc;AAAA,IACd,gBAAa;AAAA,IACb,WAAWG,EAAG,+BAA+BD,CAAS;AAAA,IACrD,GAAGH;AAAA,EAAA;AACN,CACD;AACDU,EAAe,cAAc;AAE7B,MAAMC,IAAsB,CAAC;AAAA,EAC3B,UAAAC;AAAA,EACA,WAAAT;AAAA,EACA,GAAGH;AACL,MACE,gBAAAD,EAAA;AAAA,EAAC;AAAA,EAAA;AAAA,IACC,MAAK;AAAA,IACL,eAAY;AAAA,IACZ,WAAWK,EAAG,oBAAoBD,CAAS;AAAA,IAC1C,GAAGH;AAAA,EAAA;AAAA,EAEHY,qCAAaC,GAAA,IAAa;AAC7B;AAEFF,EAAoB,cAAc;AAElC,MAAMG,IAAqB,CAAC;AAAA,EAC1B,WAAAX;AAAA,EACA,GAAGH;AACL,MACE,gBAAAD,EAAA;AAAA,EAAC;AAAA,EAAA;AAAA,IACC,MAAK;AAAA,IACL,eAAY;AAAA,IACZ,WAAWK,EAAG,4CAA4CD,CAAS;AAAA,IAClE,GAAGH;AAAA,EAAA;AAAA,EAEJ,gBAAAD,EAAA,cAACgB,GAAA,EAAe,WAAU,UAAA,CAAU;AAAA,EACpC,gBAAAhB,EAAA,cAAC,QAAA,EAAK,WAAU,UAAA,GAAU,MAAI;AAChC;AAEFe,EAAmB,cAAc;"}
@@ -1,40 +1,20 @@
1
- import * as e from "react";
2
- import { ChevronLeft as r, ChevronRight as s, MoreHorizontal as l } from "lucide-react";
3
- import { Button as n } from "./index.es9.js";
4
- import { Typography as o } from "./index.es19.js";
5
- const m = ({ className: a, ...t }) => /* @__PURE__ */ e.createElement(
6
- "nav",
1
+ import { cva as t } from "class-variance-authority";
2
+ const r = t(
3
+ "rounded hover:text-light-2 hover:stroke-light-1 hover:bg-light-3 ",
7
4
  {
8
- role: "navigation",
9
- "aria-label": "pagination",
10
- className: `mx-auto flex w-full justify-center ${a}`,
11
- ...t
5
+ variants: {
6
+ type: {
7
+ icon: "p-1",
8
+ text: "px-2 py-1"
9
+ },
10
+ isSelected: {
11
+ true: "text-light-2 stroke-light-1 bg-light-3",
12
+ false: "text-light-3 stroke-light-2"
13
+ }
14
+ }
12
15
  }
13
16
  );
14
- m.displayName = "Pagination";
15
- const c = e.forwardRef(({ className: a, ...t }, i) => /* @__PURE__ */ e.createElement(
16
- "ul",
17
- {
18
- ref: i,
19
- className: `flex flex-row items-center gap-1 ${a}`,
20
- ...t
21
- }
22
- ));
23
- c.displayName = "PaginationContent";
24
- const g = e.forwardRef(({ className: a, ...t }, i) => /* @__PURE__ */ e.createElement("li", { ref: i, className: a, ...t }));
25
- g.displayName = "PaginationItem";
26
- const p = (a) => /* @__PURE__ */ e.createElement(n, { variant: "teritiary", size: "sm", ...a }, /* @__PURE__ */ e.createElement(r, { className: "w-4 h-4" }), /* @__PURE__ */ e.createElement(o, { variant: "body4" }, "Previous"));
27
- p.displayName = "PaginationPrevious";
28
- const P = (a) => /* @__PURE__ */ e.createElement(n, { variant: "teritiary", size: "sm", ...a }, /* @__PURE__ */ e.createElement(o, { variant: "body4" }, "Next"), /* @__PURE__ */ e.createElement(s, { className: "w-4 h-4" }));
29
- P.displayName = "PaginationNext";
30
- const f = (a) => /* @__PURE__ */ e.createElement(n, { variant: "teritiary", size: "sm", ...a }, /* @__PURE__ */ e.createElement(l, { className: "w-4 h-4 stroke-light-1" }));
31
- f.displayName = "PaginationEllipsis";
32
17
  export {
33
- m as Pagination,
34
- c as PaginationContent,
35
- f as PaginationEllipsis,
36
- g as PaginationItem,
37
- P as PaginationNext,
38
- p as PaginationPrevious
18
+ r as CrumbVariants
39
19
  };
40
20
  //# sourceMappingURL=index.es135.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.es135.js","sources":["../src/components/molecules/pagination/pagination-components.tsx"],"sourcesContent":["import * as React from 'react'\nimport { ChevronLeft, ChevronRight, MoreHorizontal } from 'lucide-react'\nimport { Button } from '@/components/atoms/button'\nimport { Typography } from '@/components/atoms/typography'\n\n// import { ButtonProps } from 'geoiq-frontend-ui-kit'\n\nconst Pagination = ({ className, ...props }: React.ComponentProps<'nav'>) => (\n <nav\n role=\"navigation\"\n aria-label=\"pagination\"\n className={`mx-auto flex w-full justify-center ${className}`}\n {...props}\n />\n)\nPagination.displayName = 'Pagination'\n\nconst PaginationContent = React.forwardRef<\n HTMLUListElement,\n React.ComponentProps<'ul'>\n>(({ className, ...props }, ref) => (\n <ul\n ref={ref}\n className={`flex flex-row items-center gap-1 ${className}`}\n {...props}\n />\n))\nPaginationContent.displayName = 'PaginationContent'\n\nconst PaginationItem = React.forwardRef<\n HTMLLIElement,\n React.ComponentProps<'li'>\n>(({ className, ...props }, ref) => (\n <li ref={ref} className={className} {...props} />\n))\nPaginationItem.displayName = 'PaginationItem'\n\n// type PaginationLinkProps = RemixLinkProps &\n// React.RefAttributes<HTMLAnchorElement>\n// Pick<ButtonProps, 'size'> &\n\n// const PaginationLink = (props: PaginationLinkProps) => <Link {...props} />\n\n// PaginationLink.displayName = 'PaginationLink'\n\nconst PaginationPrevious = (props: React.ComponentProps<typeof Button>) => (\n <Button variant=\"teritiary\" size=\"sm\" {...props}>\n <ChevronLeft className=\"w-4 h-4\" />\n <Typography variant=\"body4\">Previous</Typography>\n </Button>\n)\nPaginationPrevious.displayName = 'PaginationPrevious'\n\nconst PaginationNext = (props: React.ComponentProps<typeof Button>) => (\n <Button variant=\"teritiary\" size=\"sm\" {...props}>\n <Typography variant=\"body4\">Next</Typography>\n <ChevronRight className=\"w-4 h-4\" />\n </Button>\n)\nPaginationNext.displayName = 'PaginationNext'\n\nconst PaginationEllipsis = (props: React.ComponentProps<typeof Button>) => (\n <Button variant=\"teritiary\" size=\"sm\" {...props}>\n <MoreHorizontal className=\"w-4 h-4 stroke-light-1\" />\n </Button>\n)\nPaginationEllipsis.displayName = 'PaginationEllipsis'\n\nexport {\n Pagination,\n PaginationContent,\n PaginationEllipsis,\n PaginationItem,\n // PaginationLink,\n PaginationNext,\n PaginationPrevious,\n}\n"],"names":["Pagination","className","props","React","PaginationContent","ref","PaginationItem","PaginationPrevious","Button","ChevronLeft","Typography","PaginationNext","ChevronRight","PaginationEllipsis","MoreHorizontal"],"mappings":";;;;AAOA,MAAMA,IAAa,CAAC,EAAE,WAAAC,GAAW,GAAGC,QAClC,gBAAAC,EAAA;AAAA,EAAC;AAAA,EAAA;AAAA,IACC,MAAK;AAAA,IACL,cAAW;AAAA,IACX,WAAW,sCAAsCF,CAAS;AAAA,IACzD,GAAGC;AAAA,EAAA;AACN;AAEFF,EAAW,cAAc;AAEzB,MAAMI,IAAoBD,EAAM,WAG9B,CAAC,EAAE,WAAAF,GAAW,GAAGC,EAAA,GAASG,MAC1B,gBAAAF,EAAA;AAAA,EAAC;AAAA,EAAA;AAAA,IACC,KAAAE;AAAA,IACA,WAAW,oCAAoCJ,CAAS;AAAA,IACvD,GAAGC;AAAA,EAAA;AACN,CACD;AACDE,EAAkB,cAAc;AAEhC,MAAME,IAAiBH,EAAM,WAG3B,CAAC,EAAE,WAAAF,GAAW,GAAGC,KAASG,sCACzB,MAAA,EAAG,KAAAA,GAAU,WAAAJ,GAAuB,GAAGC,GAAO,CAChD;AACDI,EAAe,cAAc;AAU7B,MAAMC,IAAqB,CAACL,MAC1B,gBAAAC,EAAA,cAACK,KAAO,SAAQ,aAAY,MAAK,MAAM,GAAGN,KACxC,gBAAAC,EAAA,cAACM,GAAA,EAAY,WAAU,UAAA,CAAU,mCAChCC,GAAA,EAAW,SAAQ,QAAA,GAAQ,UAAQ,CACtC;AAEFH,EAAmB,cAAc;AAEjC,MAAMI,IAAiB,CAACT,MACtB,gBAAAC,EAAA,cAACK,KAAO,SAAQ,aAAY,MAAK,MAAM,GAAGN,KACxC,gBAAAC,EAAA,cAACO,GAAA,EAAW,SAAQ,QAAA,GAAQ,MAAI,GAChC,gBAAAP,EAAA,cAACS,GAAA,EAAa,WAAU,UAAA,CAAU,CACpC;AAEFD,EAAe,cAAc;AAE7B,MAAME,IAAqB,CAACX,MAC1B,gBAAAC,EAAA,cAACK,KAAO,SAAQ,aAAY,MAAK,MAAM,GAAGN,EAAA,GACxC,gBAAAC,EAAA,cAACW,GAAA,EAAe,WAAU,0BAAyB,CACrD;AAEFD,EAAmB,cAAc;"}
1
+ {"version":3,"file":"index.es135.js","sources":["../src/components/molecules/breadcrumb/breadcrumb.styles.ts"],"sourcesContent":["import { cva } from 'class-variance-authority'\n\nexport const CrumbVariants = cva(\n 'rounded hover:text-light-2 hover:stroke-light-1 hover:bg-light-3 ',\n {\n variants: {\n type: {\n icon: 'p-1',\n text: 'px-2 py-1',\n },\n isSelected: {\n true: 'text-light-2 stroke-light-1 bg-light-3',\n false: 'text-light-3 stroke-light-2',\n },\n },\n }\n)\n"],"names":["CrumbVariants","cva"],"mappings":";AAEO,MAAMA,IAAgBC;AAAA,EAC3B;AAAA,EACA;AAAA,IACE,UAAU;AAAA,MACR,MAAM;AAAA,QACJ,MAAM;AAAA,QACN,MAAM;AAAA,MAAA;AAAA,MAER,YAAY;AAAA,QACV,MAAM;AAAA,QACN,OAAO;AAAA,MAAA;AAAA,IACT;AAAA,EACF;AAEJ;"}
@@ -1,43 +1,277 @@
1
- import { cva as t } from "class-variance-authority";
2
- const e = t(
3
- "inline-flex items-center justify-evenly p-1 text-muted-foreground",
4
- {
5
- variants: {
6
- variant: {
7
- primary: "bg-light-3 border rounded-xl border-neutral-1",
8
- secondary: "bg-background "
9
- },
10
- size: {
11
- sm: "h-10 rounded-xl ",
12
- md: "h-12 rounded-xl "
13
- }
14
- },
15
- defaultVariants: {
16
- variant: "primary",
17
- size: "md"
1
+ import e from "react";
2
+ import { FONT_FAMILY as v } from "./index.es163.js";
3
+ import { _Dialog as N } from "./index.es41.js";
4
+ import { X as w, ChevronLeft as S, ChevronRight as C } from "lucide-react";
5
+ import { Typography as i } from "./index.es19.js";
6
+ import { ResponsiveContainer as d, BarChart as u, CartesianGrid as f, XAxis as g, YAxis as h, Tooltip as p, Bar as E } from "recharts";
7
+ import { trendBoxStyles as k, trendValueStyles as F } from "./index.es164.js";
8
+ const I = ({
9
+ data: r,
10
+ onToggle: t,
11
+ isOpen: n,
12
+ galleryActiveIndex: a,
13
+ setgalleryActiveIndex: l
14
+ }) => {
15
+ const o = r && r.length, b = () => {
16
+ r && l((s) => (s + 1) % r?.length);
17
+ }, y = () => {
18
+ r && l(
19
+ (s) => (s - 1 + r.length) % r.length
20
+ );
21
+ }, x = (s) => {
22
+ l(s);
23
+ }, m = () => {
24
+ t();
25
+ };
26
+ return /* @__PURE__ */ e.createElement(
27
+ N,
28
+ {
29
+ open: n,
30
+ trigger: null,
31
+ contentClassName: "bg-transparent w-fit border-0",
32
+ onInteractOutside: m,
33
+ body: /* @__PURE__ */ e.createElement("div", { className: "flex flex-col items-center justify-center w-full h-full max-w-3xl mx-auto" }, /* @__PURE__ */ e.createElement(
34
+ w,
35
+ {
36
+ size: 24,
37
+ color: "white",
38
+ className: "absolute z-50 cursor-pointer -right-10 -top-10",
39
+ onClick: m
40
+ }
41
+ ), /* @__PURE__ */ e.createElement("div", { className: "relative" }, /* @__PURE__ */ e.createElement("div", { className: "relative " }, o && /* @__PURE__ */ e.createElement(
42
+ "img",
43
+ {
44
+ key: r[a].image_url,
45
+ src: r[a].image_url,
46
+ alt: `Street ${a + 1}`,
47
+ className: "w-[500px] max-h-[80vh] object-contain flex-shrink-0"
48
+ }
49
+ )), /* @__PURE__ */ e.createElement("div", { className: "relative top-[-50%] left-[-10%] flex row w-[120%] justify-between" }, /* @__PURE__ */ e.createElement("div", { role: "button", tabIndex: 0, onClick: y }, /* @__PURE__ */ e.createElement(S, { size: 30, color: "white" })), /* @__PURE__ */ e.createElement("div", { role: "button", tabIndex: 0, onClick: b }, /* @__PURE__ */ e.createElement(C, { size: 30, color: "white" })))), /* @__PURE__ */ e.createElement("div", { className: "flex justify-center p-2 mt-4 space-x-2 rounded-lg" }, o && r.map((s, c) => /* @__PURE__ */ e.createElement(
50
+ "img",
51
+ {
52
+ key: c,
53
+ src: s.image_url,
54
+ alt: `Thumbnail ${c + 1}`,
55
+ onClick: () => x(c),
56
+ className: `w-20 h-auto rounded-lg cursor-pointer ${c === a ? "ring-2 ring-primary-1" : "ring-2 ring-transparent"} hover:ring-gray-300`
57
+ }
58
+ ))))
18
59
  }
60
+ );
61
+ }, $ = ({ active: r, payload: t, label: n, year: a }) => {
62
+ if (r && t && t.length) {
63
+ const l = t[0]?.payload?.year, o = t[0]?.value;
64
+ return /* @__PURE__ */ e.createElement("div", { className: "flex flex-col bg-light-1 p-4 rounded-lg shadow-md min-w-[200px] gap-1" }, /* @__PURE__ */ e.createElement(i, { variant: "body6", className: "text-primary" }, `${n}'${l}`), /* @__PURE__ */ e.createElement("div", { className: "my-2 w-full h-px border border-stroke-1" }), /* @__PURE__ */ e.createElement("div", { className: "flex" }, /* @__PURE__ */ e.createElement(
65
+ "div",
66
+ {
67
+ className: "h-4 w-1 rounded-lg",
68
+ style: { backgroundColor: "#6D48EF" }
69
+ }
70
+ ), /* @__PURE__ */ e.createElement(i, { variant: "body6", className: "text-secondary mx-1" }, "Visits"), /* @__PURE__ */ e.createElement(i, { variant: "body4", className: "text-secondary ml-auto" }, ` ${o}`)));
19
71
  }
20
- ), i = t(
21
- "inline-flex w-full items-center justify-center whitespace-nowrap text-sm text-light-2 font-medium disabled:pointer-events-none disabled:opacity-50 ring-offset-background transition-all focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring ",
22
- {
23
- variants: {
24
- size: {
25
- sm: "h-8 text-[14px] p-1.5 ",
26
- md: "h-10 text-[16px] p-2 "
72
+ return null;
73
+ }, z = ({ active: r, payload: t, label: n }) => {
74
+ if (r && t && t.length) {
75
+ const a = t[0]?.payload?.distance, l = t[0]?.value;
76
+ return /* @__PURE__ */ e.createElement("div", { className: "flex bg-light-1 items-center justify-between rounded-lg shadow-md min-w-45 max-w-80 gap-2 p-2" }, /* @__PURE__ */ e.createElement(i, { variant: "body6", className: "text-primary" }, /* @__PURE__ */ e.createElement("div", { className: "flex h-full justify-between items-center p-2 gap-4" }, /* @__PURE__ */ e.createElement("div", null, n), /* @__PURE__ */ e.createElement("div", null, " ", a + "km"))), /* @__PURE__ */ e.createElement(
77
+ i,
78
+ {
79
+ variant: "body4",
80
+ className: "text-normal text-danger-1 ml-auto p-2"
27
81
  },
28
- variant: {
29
- primary: "rounded-lg data-[state=active]:bg-rest-s1 data-[state=active]:text-primary-1 data-[state=active]:border data-[state=active]:border-neutral-1 data-[state=active]:font-semibold data-[state=active]:shadow-sm ",
30
- secondary: "data-[state=active]:bg-background data-[state=active]:text-primary-1 data-[state=active]:font-semibold data-[state=active]:border-b-2 data-[state=active]:border-primary-2 "
31
- }
82
+ `${l}%`
83
+ ));
84
+ }
85
+ return null;
86
+ }, K = ({ insights: r }) => /* @__PURE__ */ e.createElement("div", null, /* @__PURE__ */ e.createElement("div", { className: "flex flex-row mb-4 justify-between" }, /* @__PURE__ */ e.createElement(i, { variant: "body4", className: "text-light-2" }, "Store Insight:")), /* @__PURE__ */ e.createElement("div", { className: "bg-light-2 p-3 border border-neutral-1 rounded-lg" }, /* @__PURE__ */ e.createElement(i, { variant: "body4", className: "text-light-2 mb-2" }, "Presence of other brands in catchment:"), /* @__PURE__ */ e.createElement("div", { className: "flex gap-1 flex-wrap" }, r.map((t) => /* @__PURE__ */ e.createElement(
87
+ "div",
88
+ {
89
+ key: t.type,
90
+ className: "flex items-center gap-1 bg-light-1 px-2 py-1 rounded-full border border-neutral-1"
91
+ },
92
+ /* @__PURE__ */ e.createElement(
93
+ "img",
94
+ {
95
+ src: t.iconUrl,
96
+ alt: `${t.type} Icon`,
97
+ className: "w-4 h-4"
98
+ }
99
+ ),
100
+ /* @__PURE__ */ e.createElement(i, { variant: "body6", className: "text-light-2" }, t.count),
101
+ /* @__PURE__ */ e.createElement("div", { className: "flex items-center gap-1" }, /* @__PURE__ */ e.createElement(i, { variant: "body6", className: "text-light-2" }, t.type === "competitor" ? "Competitors" : "Complementary"))
102
+ ))))), R = ({
103
+ highlights: r
104
+ }) => /* @__PURE__ */ e.createElement("div", null, /* @__PURE__ */ e.createElement(i, { variant: "body4", className: "text-light-2 mb-2" }, "Store Overview:"), /* @__PURE__ */ e.createElement("div", { className: "bg-light-2 p-1 border border-neutral-1 rounded-lg" }, /* @__PURE__ */ e.createElement("div", { className: "flex justify-evenly items-center" }, r.map((t, n) => /* @__PURE__ */ e.createElement(e.Fragment, { key: n }, /* @__PURE__ */ e.createElement("div", { className: "flex flex-col items-center justify-center text-center gap-1 p-" }, /* @__PURE__ */ e.createElement(
105
+ "div",
106
+ {
107
+ className: k({
108
+ trend: t.trend?.toString()
109
+ })
110
+ },
111
+ t.trend === 1 && /* @__PURE__ */ e.createElement(
112
+ "img",
113
+ {
114
+ src: "https://frontend-static-files.geoiq.io/strapi/trending_up_9d73d6fac5.svg",
115
+ alt: "High Trend",
116
+ className: "w-3 h-3"
117
+ }
118
+ ),
119
+ t.trend === -1 && /* @__PURE__ */ e.createElement(
120
+ "img",
121
+ {
122
+ src: "https://frontend-static-files.geoiq.io/strapi/trending_down_87adc7f3a6.svg",
123
+ alt: "Low Trend",
124
+ className: "w-3 h-3"
125
+ }
126
+ ),
127
+ t.value && t.trend ? /* @__PURE__ */ e.createElement(
128
+ i,
129
+ {
130
+ variant: "body5",
131
+ className: F({
132
+ trend: t.trend?.toString()
133
+ })
32
134
  },
33
- defaultVariants: {
34
- variant: "primary",
35
- size: "md"
135
+ `${t.value}%`
136
+ ) : /* @__PURE__ */ e.createElement(i, { variant: "body5", className: "text-sm" }, "-")
137
+ ), t.name && /* @__PURE__ */ e.createElement(i, { variant: "body6", className: "text-light-2" }, t.name)), n < r.length - 1 && /* @__PURE__ */ e.createElement("div", { className: "border-l border-stroke-light-1 h-20 mx-1" })))))), M = ({ data: r }) => !r || r.every((t) => t.footfall === null) ? null : /* @__PURE__ */ e.createElement("div", { className: "w-full h-full bg-light-2 border border-neutral-1 p-3 rounded-lg" }, /* @__PURE__ */ e.createElement(i, { variant: "body4", className: "text-light-2 mb-4" }, "Footfall trends"), /* @__PURE__ */ e.createElement(d, { width: "100%", height: 300 }, /* @__PURE__ */ e.createElement(
138
+ u,
139
+ {
140
+ data: r,
141
+ margin: {
142
+ top: 3,
143
+ right: 3,
144
+ bottom: -10,
145
+ left: 3
146
+ },
147
+ barSize: 24
148
+ },
149
+ /* @__PURE__ */ e.createElement(f, { strokeDasharray: "10 10" }),
150
+ /* @__PURE__ */ e.createElement(
151
+ g,
152
+ {
153
+ dataKey: "month",
154
+ style: {
155
+ font: v,
156
+ fontSize: "12px",
157
+ fontWeight: "500",
158
+ color: "#4A4A4A"
159
+ }
36
160
  }
37
- }
38
- );
161
+ ),
162
+ /* @__PURE__ */ e.createElement(
163
+ h,
164
+ {
165
+ className: "text-4-grey",
166
+ style: { fontSize: "12px", fontWeight: "500" },
167
+ tickFormatter: (t) => t > 1e6 ? `${t / 1e6}M` : t > 1e3 ? `${t / 1e3}K` : t,
168
+ label: {
169
+ value: "AVG FOOTFALL FOR A 3-MONTH PERIOD",
170
+ angle: -90,
171
+ position: "insideLeft",
172
+ dy: -5,
173
+ style: {
174
+ textAnchor: "middle",
175
+ fontSize: "12px",
176
+ fontWeight: "500"
177
+ }
178
+ }
179
+ }
180
+ ),
181
+ /* @__PURE__ */ e.createElement(p, { content: /* @__PURE__ */ e.createElement($, null) }),
182
+ /* @__PURE__ */ e.createElement(
183
+ E,
184
+ {
185
+ dataKey: "footfall",
186
+ fill: "#6D48EF",
187
+ radius: [4, 4, 4, 4],
188
+ style: { cursor: "pointer" }
189
+ }
190
+ )
191
+ ))), W = ({
192
+ data: r
193
+ }) => {
194
+ if (!r || r.every((n) => n.cannibalisation === null))
195
+ return null;
196
+ const t = (n) => {
197
+ const a = r.length;
198
+ let l;
199
+ return a <= 1 ? l = 50 : a <= 6 ? l = 22 - (a - 1) * 4 : l = 6, n.length > l ? `${n.slice(0, l)}...` : n;
200
+ };
201
+ return /* @__PURE__ */ e.createElement("div", { className: "w-full h-full bg-light-2 border border-neutral-1 p-3 rounded-lg" }, /* @__PURE__ */ e.createElement(i, { variant: "body4", className: "text-light-2 mb-4" }, "Cannibalisation effects"), /* @__PURE__ */ e.createElement(d, { width: "100%", height: 300 }, /* @__PURE__ */ e.createElement(
202
+ u,
203
+ {
204
+ data: r,
205
+ margin: {
206
+ top: 3,
207
+ right: 3,
208
+ bottom: 5,
209
+ left: 3
210
+ },
211
+ barSize: 24
212
+ },
213
+ /* @__PURE__ */ e.createElement(f, { strokeDasharray: "10 10" }),
214
+ /* @__PURE__ */ e.createElement(
215
+ g,
216
+ {
217
+ dataKey: "store_name",
218
+ tickFormatter: t,
219
+ tickMargin: 10,
220
+ tick: (n) => {
221
+ const { x: a, y: l, payload: o } = n;
222
+ return /* @__PURE__ */ e.createElement("text", { x: a, y: l, textAnchor: "end", fill: "#666" }, /* @__PURE__ */ e.createElement("tspan", { x: a, style: { fontSize: 12 } }, t(o.value)), /* @__PURE__ */ e.createElement(
223
+ "tspan",
224
+ {
225
+ x: a,
226
+ dy: "1.5em",
227
+ style: {
228
+ fontSize: 10,
229
+ whiteSpace: "nowrap",
230
+ paddingTop: "2px"
231
+ }
232
+ },
233
+ r[o.index].distance + " kms"
234
+ ));
235
+ }
236
+ }
237
+ ),
238
+ /* @__PURE__ */ e.createElement(
239
+ h,
240
+ {
241
+ className: "text-4-grey",
242
+ style: { fontSize: "12px", fontWeight: "500" },
243
+ tickFormatter: (n) => n > 1e6 ? `${n / 1e6}M` : n > 1e3 ? `${n / 1e3}K` : n,
244
+ label: {
245
+ value: "CANNIBALISATION IN %",
246
+ angle: -90,
247
+ position: "insideLeft",
248
+ dy: -5,
249
+ style: {
250
+ textAnchor: "middle",
251
+ fontSize: "12px",
252
+ fontWeight: "500"
253
+ }
254
+ },
255
+ domain: [0, 100]
256
+ }
257
+ ),
258
+ /* @__PURE__ */ e.createElement(p, { content: /* @__PURE__ */ e.createElement(z, null) }),
259
+ /* @__PURE__ */ e.createElement(
260
+ E,
261
+ {
262
+ dataKey: "cannibalisation",
263
+ fill: "#F93232",
264
+ radius: [4, 4, 4, 4],
265
+ style: { cursor: "pointer" }
266
+ }
267
+ )
268
+ )));
269
+ };
39
270
  export {
40
- i as TabTriggerVariants,
41
- e as TabsVariants
271
+ W as CannibalisationChartSection,
272
+ M as FootfallChartSection,
273
+ I as ReportSnippetGalleryView,
274
+ K as StoreInsightsSection,
275
+ R as StoreOverviewSection
42
276
  };
43
277
  //# sourceMappingURL=index.es136.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.es136.js","sources":["../src/components/molecules/tabs/tabs.styles.ts"],"sourcesContent":["import { cva } from 'class-variance-authority'\n\nexport const TabsVariants = cva(\n 'inline-flex items-center justify-evenly p-1 text-muted-foreground',\n {\n variants: {\n variant: {\n primary: 'bg-light-3 border rounded-xl border-neutral-1',\n secondary: 'bg-background ',\n },\n size: {\n sm: 'h-10 rounded-xl ',\n md: 'h-12 rounded-xl ',\n },\n },\n defaultVariants: {\n variant: 'primary',\n size: 'md',\n },\n }\n)\n\nexport const TabTriggerVariants = cva(\n 'inline-flex w-full items-center justify-center whitespace-nowrap text-sm text-light-2 font-medium disabled:pointer-events-none disabled:opacity-50 ring-offset-background transition-all focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring ',\n {\n variants: {\n size: {\n sm: 'h-8 text-[14px] p-1.5 ',\n md: 'h-10 text-[16px] p-2 ',\n },\n variant: {\n primary:\n 'rounded-lg data-[state=active]:bg-rest-s1 data-[state=active]:text-primary-1 data-[state=active]:border data-[state=active]:border-neutral-1 data-[state=active]:font-semibold data-[state=active]:shadow-sm ',\n secondary:\n 'data-[state=active]:bg-background data-[state=active]:text-primary-1 data-[state=active]:font-semibold data-[state=active]:border-b-2 data-[state=active]:border-primary-2 ',\n },\n },\n defaultVariants: {\n variant: 'primary',\n size: 'md',\n },\n }\n)\n"],"names":["TabsVariants","cva","TabTriggerVariants"],"mappings":";AAEO,MAAMA,IAAeC;AAAA,EAC1B;AAAA,EACA;AAAA,IACE,UAAU;AAAA,MACR,SAAS;AAAA,QACP,SAAS;AAAA,QACT,WAAW;AAAA,MAAA;AAAA,MAEb,MAAM;AAAA,QACJ,IAAI;AAAA,QACJ,IAAI;AAAA,MAAA;AAAA,IACN;AAAA,IAEF,iBAAiB;AAAA,MACf,SAAS;AAAA,MACT,MAAM;AAAA,IAAA;AAAA,EACR;AAEJ,GAEaC,IAAqBD;AAAA,EAChC;AAAA,EACA;AAAA,IACE,UAAU;AAAA,MACR,MAAM;AAAA,QACJ,IAAI;AAAA,QACJ,IAAI;AAAA,MAAA;AAAA,MAEN,SAAS;AAAA,QACP,SACE;AAAA,QACF,WACE;AAAA,MAAA;AAAA,IACJ;AAAA,IAEF,iBAAiB;AAAA,MACf,SAAS;AAAA,MACT,MAAM;AAAA,IAAA;AAAA,EACR;AAEJ;"}
1
+ {"version":3,"file":"index.es136.js","sources":["../src/components/ui/report-snippet-view/report-snippet-view-components.tsx"],"sourcesContent":["import React, { FC } from 'react'\nimport { ReportSnippetViewNS } from './report-snippet-view.types'\n\nimport { FONT_FAMILY } from '@/lib/constants'\n\nimport { Dialog } from '@/components/organisms/dialog'\nimport { ChevronLeft, ChevronRight, X } from 'lucide-react'\nimport { Typography } from '@/components/atoms/typography'\nimport {\n BarChart,\n Bar,\n XAxis,\n YAxis,\n CartesianGrid,\n Tooltip,\n ResponsiveContainer,\n} from 'recharts'\nimport { trendBoxStyles, trendValueStyles } from './report-snippet-view-style'\n\nconst ReportSnippetGalleryView: FC<{\n onToggle: () => void\n isOpen: boolean\n data?: ReportSnippetViewNS.StreetViewData\n galleryActiveIndex: number\n setgalleryActiveIndex: React.Dispatch<React.SetStateAction<number>>\n}> = ({\n data,\n onToggle,\n isOpen,\n galleryActiveIndex,\n setgalleryActiveIndex,\n}) => {\n // Current active item\n\n const isDataAvailable = data && data.length\n\n // Handle next click\n const handleNext = () => {\n if (!data) return\n setgalleryActiveIndex((prevIndex) => (prevIndex + 1) % data?.length)\n }\n\n // Handle previous click\n const handlePrev = () => {\n if (!data) return\n setgalleryActiveIndex(\n (prevIndex) => (prevIndex - 1 + data.length) % data.length\n )\n }\n\n const handleThumbnailClick = (index: number) => {\n setgalleryActiveIndex(index)\n }\n\n const toggleGallery = () => {\n onToggle()\n }\n\n return (\n <Dialog\n open={isOpen}\n trigger={null}\n contentClassName=\"bg-transparent w-fit border-0\"\n onInteractOutside={toggleGallery}\n body={\n <div className=\"flex flex-col items-center justify-center w-full h-full max-w-3xl mx-auto\">\n <X\n size={24}\n color=\"white\"\n className=\"absolute z-50 cursor-pointer -right-10 -top-10\"\n onClick={toggleGallery}\n />\n\n {/* Main Carousel */}\n <div className=\"relative\">\n <div className=\"relative \">\n {isDataAvailable && (\n <img\n key={data[galleryActiveIndex].image_url}\n src={data[galleryActiveIndex].image_url}\n alt={`Street ${galleryActiveIndex + 1}`}\n className=\"w-[500px] max-h-[80vh] object-contain flex-shrink-0\"\n />\n )}\n </div>\n\n {/* Navigation Buttons */}\n <div className=\"relative top-[-50%] left-[-10%] flex row w-[120%] justify-between\">\n <div role=\"button\" tabIndex={0} onClick={handlePrev}>\n <ChevronLeft size={30} color=\"white\" />\n </div>\n <div role=\"button\" tabIndex={0} onClick={handleNext}>\n <ChevronRight size={30} color=\"white\" />\n </div>\n </div>\n </div>\n\n {/* Thumbnails */}\n <div className=\"flex justify-center p-2 mt-4 space-x-2 rounded-lg\">\n {isDataAvailable &&\n data.map((item, index) => (\n <img\n key={index}\n src={item.image_url}\n alt={`Thumbnail ${index + 1}`}\n onClick={() => handleThumbnailClick(index)}\n className={`w-20 h-auto rounded-lg cursor-pointer ${\n index === galleryActiveIndex\n ? 'ring-2 ring-primary-1'\n : 'ring-2 ring-transparent'\n } hover:ring-gray-300`}\n />\n ))}\n </div>\n </div>\n }\n />\n )\n}\n// eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/no-unused-vars\nconst CustomTooltipFootfall = ({ active, payload, label, year }: any) => {\n if (active && payload && payload.length) {\n const year = payload[0]?.payload?.year\n const footfall = payload[0]?.value\n return (\n <div className=\"flex flex-col bg-light-1 p-4 rounded-lg shadow-md min-w-[200px] gap-1\">\n {/* Month Information */}\n <Typography variant={'body6'} className=\"text-primary\">\n {`${label}'${year}`}\n </Typography>\n\n {/* Separator */}\n <div className=\"my-2 w-full h-px border border-stroke-1\" />\n\n {/* Footfall/Visits Information */}\n <div className=\"flex\">\n <div\n className=\"h-4 w-1 rounded-lg\"\n style={{ backgroundColor: '#6D48EF' }}\n />\n <Typography variant={'body6'} className=\"text-secondary mx-1\">\n Visits\n </Typography>\n <Typography variant={'body4'} className=\"text-secondary ml-auto\">\n {` ${footfall}`}\n </Typography>\n </div>\n </div>\n )\n }\n return null\n}\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nconst CustomTooltipCannibalisation = ({ active, payload, label }: any) => {\n if (active && payload && payload.length) {\n const distance = payload[0]?.payload?.distance\n const cannibalisation = payload[0]?.value\n return (\n <div className=\"flex bg-light-1 items-center justify-between rounded-lg shadow-md min-w-45 max-w-80 gap-2 p-2\">\n {/* Month Information */}\n <Typography variant={'body6'} className=\"text-primary\">\n {\n <div className=\"flex h-full justify-between items-center p-2 gap-4\">\n <div>{label}</div>\n <div> {distance + 'km'}</div>\n </div>\n }\n </Typography>\n {/* Footfall/Visits Information */}\n <Typography\n variant={'body4'}\n className=\"text-normal text-danger-1 ml-auto p-2\"\n >\n {`${cannibalisation}%`}\n </Typography>\n </div>\n )\n }\n return null\n}\n\n{\n /*--------- Store insights ----------*/\n}\ninterface StoreInsightsSectionProps {\n insights: ReportSnippetViewNS.CatchmentInsights[]\n // customButton?: React.ReactNode\n}\n\nconst StoreInsightsSection: FC<StoreInsightsSectionProps> = ({ insights }) => {\n return (\n <div>\n <div className=\"flex flex-row mb-4 justify-between\">\n <Typography variant=\"body4\" className=\"text-light-2\">\n Store Insight:\n </Typography>\n </div>\n\n <div className=\"bg-light-2 p-3 border border-neutral-1 rounded-lg\">\n <Typography variant=\"body4\" className=\"text-light-2 mb-2\">\n Presence of other brands in catchment:\n </Typography>\n\n {/* Render store insights data */}\n <div className=\"flex gap-1 flex-wrap\">\n {insights.map((item) => (\n <div\n key={item.type}\n className=\"flex items-center gap-1 bg-light-1 px-2 py-1 rounded-full border border-neutral-1\"\n >\n {/* Icon */}\n <img\n src={item.iconUrl}\n alt={`${item.type} Icon`}\n className=\"w-4 h-4\"\n />\n\n {/* Name and Count */}\n <Typography variant=\"body6\" className=\"text-light-2\">\n {item.count}\n </Typography>\n <div className=\"flex items-center gap-1\">\n <Typography variant=\"body6\" className=\"text-light-2\">\n {item.type === 'competitor' ? 'Competitors' : 'Complementary'}\n </Typography>\n </div>\n </div>\n ))}\n </div>\n </div>\n </div>\n )\n}\n\n{\n /*--------- Store Overview ----------*/\n}\ninterface StoreOverviewSectionProps {\n highlights: ReportSnippetViewNS.StoreHighlights[]\n}\n\nconst StoreOverviewSection: FC<StoreOverviewSectionProps> = ({\n highlights,\n}) => {\n return (\n <div>\n <Typography variant={'body4'} className=\"text-light-2 mb-2\">\n Store Overview:\n </Typography>\n <div className=\"bg-light-2 p-1 border border-neutral-1 rounded-lg\">\n <div className=\"flex justify-evenly items-center\">\n {highlights.map((item, index) => (\n <React.Fragment key={index}>\n <div className=\"flex flex-col items-center justify-center text-center gap-1 p-\">\n {/* Trend Box */}\n <div\n className={trendBoxStyles({\n trend: item.trend?.toString() as '1' | '-1' | '0' | null,\n })}\n >\n {item.trend === 1 && (\n <img\n src=\"https://frontend-static-files.geoiq.io/strapi/trending_up_9d73d6fac5.svg\"\n alt=\"High Trend\"\n className={'w-3 h-3'}\n />\n )}\n {item.trend === -1 && (\n <img\n src=\"https://frontend-static-files.geoiq.io/strapi/trending_down_87adc7f3a6.svg\"\n alt=\"Low Trend\"\n className={'w-3 h-3'}\n />\n )}\n {item.value && item.trend ? (\n <Typography\n variant=\"body5\"\n className={trendValueStyles({\n trend: item.trend?.toString() as\n | '1'\n | '-1'\n | '0'\n | null,\n })}\n >\n {`${item.value}%`}\n </Typography>\n ) : (\n <Typography variant=\"body5\" className=\"text-sm\">\n -\n </Typography>\n )}\n </div>\n\n {/* Name */}\n {item.name && (\n <Typography variant={'body6'} className=\"text-light-2\">\n {item.name}\n </Typography>\n )}\n </div>\n\n {/* Separator */}\n {index < highlights.length - 1 && (\n <div className=\"border-l border-stroke-light-1 h-20 mx-1\" />\n )}\n </React.Fragment>\n ))}\n </div>\n </div>\n </div>\n )\n}\n\n{\n /*----------------- Footfall Trends ------------------*/\n}\ninterface FootfallChartSectionProps {\n data: ReportSnippetViewNS.FootfallChartData[]\n}\n\nconst FootfallChartSection: FC<FootfallChartSectionProps> = ({ data }) => {\n if (!data || data.every((item) => item.footfall === null)) {\n return null\n }\n return (\n <div className=\"w-full h-full bg-light-2 border border-neutral-1 p-3 rounded-lg\">\n {/* Section heading */}\n <Typography variant={'body4'} className=\"text-light-2 mb-4\">\n Footfall trends\n </Typography>\n\n {/* Bar Chart */}\n <ResponsiveContainer width=\"100%\" height={300}>\n <BarChart\n data={data}\n margin={{\n top: 3,\n right: 3,\n bottom: -10,\n left: 3,\n }}\n barSize={24}\n >\n <CartesianGrid strokeDasharray=\"10 10\" />\n <XAxis\n dataKey=\"month\"\n style={{\n font: FONT_FAMILY,\n fontSize: '12px',\n fontWeight: '500',\n color: '#4A4A4A',\n }}\n />\n <YAxis\n className=\"text-4-grey\"\n style={{ fontSize: '12px', fontWeight: '500' }}\n tickFormatter={(val) => {\n if (val > 1000000) {\n return `${val / 1000000}M`\n }\n if (val > 1000) {\n return `${val / 1000}K`\n }\n return val\n }}\n label={{\n value: 'AVG FOOTFALL FOR A 3-MONTH PERIOD',\n angle: -90,\n position: 'insideLeft',\n dy: -5,\n style: {\n textAnchor: 'middle',\n fontSize: '12px',\n fontWeight: '500',\n },\n }}\n />\n <Tooltip content={<CustomTooltipFootfall />} />\n <Bar\n dataKey=\"footfall\"\n fill=\"#6D48EF\"\n radius={[4, 4, 4, 4]}\n style={{ cursor: 'pointer' }}\n />\n </BarChart>\n </ResponsiveContainer>\n </div>\n )\n}\n\n{\n /* -----------------Cannibalisation Effect------------------ */\n}\ninterface CannibalisationChartSectionProps {\n data: ReportSnippetViewNS.CannibalisationChartData[]\n}\n\nconst CannibalisationChartSection: FC<CannibalisationChartSectionProps> = ({\n data,\n}) => {\n if (!data || data.every((item) => item.cannibalisation === null)) {\n return null\n }\n const formatXAxisLabel = (label: string) => {\n const barCount = data.length\n let maxLength\n\n if (barCount <= 1) {\n maxLength = 50\n } else if (barCount <= 6) {\n maxLength = 22 - (barCount - 1) * 4\n } else {\n maxLength = 6\n }\n\n return label.length > maxLength ? `${label.slice(0, maxLength)}...` : label\n }\n return (\n <div className=\"w-full h-full bg-light-2 border border-neutral-1 p-3 rounded-lg\">\n {/* Section heading */}\n <Typography variant={'body4'} className=\"text-light-2 mb-4\">\n Cannibalisation effects\n </Typography>\n\n {/* Bar Chart */}\n <ResponsiveContainer width=\"100%\" height={300}>\n <BarChart\n data={data}\n margin={{\n top: 3,\n right: 3,\n bottom: 5,\n left: 3,\n }}\n barSize={24}\n >\n <CartesianGrid strokeDasharray=\"10 10\" />\n <XAxis\n dataKey=\"store_name\"\n tickFormatter={formatXAxisLabel}\n tickMargin={10}\n tick={(props) => {\n const { x, y, payload } = props\n return (\n <text x={x} y={y} textAnchor={'end'} fill=\"#666\">\n <tspan x={x} style={{ fontSize: 12 }}>\n {formatXAxisLabel(payload.value)}\n </tspan>\n <tspan\n x={x}\n dy=\"1.5em\"\n style={{\n fontSize: 10,\n whiteSpace: 'nowrap',\n paddingTop: '2px',\n }}\n >\n {data[payload.index].distance + ' kms'}\n </tspan>\n </text>\n )\n }}\n />\n <YAxis\n className=\"text-4-grey\"\n style={{ fontSize: '12px', fontWeight: '500' }}\n tickFormatter={(val) => {\n if (val > 1000000) {\n return `${val / 1000000}M`\n }\n if (val > 1000) {\n return `${val / 1000}K`\n }\n return val\n }}\n label={{\n value: 'CANNIBALISATION IN %',\n angle: -90,\n position: 'insideLeft',\n dy: -5,\n style: {\n textAnchor: 'middle',\n fontSize: '12px',\n fontWeight: '500',\n },\n }}\n domain={[0, 100]}\n />\n <Tooltip content={<CustomTooltipCannibalisation />} />\n <Bar\n dataKey=\"cannibalisation\"\n fill=\"#F93232\"\n radius={[4, 4, 4, 4]}\n style={{ cursor: 'pointer' }}\n />\n </BarChart>\n </ResponsiveContainer>\n </div>\n )\n}\n\nexport {\n ReportSnippetGalleryView,\n StoreInsightsSection,\n StoreOverviewSection,\n FootfallChartSection,\n CannibalisationChartSection,\n}\n"],"names":["ReportSnippetGalleryView","data","onToggle","isOpen","galleryActiveIndex","setgalleryActiveIndex","isDataAvailable","handleNext","prevIndex","handlePrev","handleThumbnailClick","index","toggleGallery","React","Dialog","X","ChevronLeft","ChevronRight","item","CustomTooltipFootfall","active","payload","label","year","footfall","Typography","CustomTooltipCannibalisation","distance","cannibalisation","StoreInsightsSection","insights","StoreOverviewSection","highlights","trendBoxStyles","trendValueStyles","FootfallChartSection","ResponsiveContainer","BarChart","CartesianGrid","XAxis","FONT_FAMILY","YAxis","val","Tooltip","Bar","CannibalisationChartSection","formatXAxisLabel","barCount","maxLength","props","x","y"],"mappings":"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"}
@@ -1,5 +1,10 @@
1
- const a = "Plus Jakarta Sans";
1
+ import { createContext as t, useContext as o } from "react";
2
+ const e = t(null);
3
+ function n() {
4
+ return o(e);
5
+ }
2
6
  export {
3
- a as FONT_FAMILY
7
+ e as ImageEditorPortalContext,
8
+ n as useImageEditorPortalContainer
4
9
  };
5
10
  //# sourceMappingURL=index.es137.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.es137.js","sources":["../src/lib/constants.ts"],"sourcesContent":["export const FONT_FAMILY = 'Plus Jakarta Sans'\n"],"names":["FONT_FAMILY"],"mappings":"AAAO,MAAMA,IAAc;"}
1
+ {"version":3,"file":"index.es137.js","sources":["../src/components/organisms/image-editor/components/portal-context.tsx"],"sourcesContent":["import { createContext, useContext } from 'react'\n\nexport const ImageEditorPortalContext = createContext<HTMLElement | null>(null)\n\nexport function useImageEditorPortalContainer() {\n return useContext(ImageEditorPortalContext)\n}\n"],"names":["ImageEditorPortalContext","createContext","useImageEditorPortalContainer","useContext"],"mappings":";AAEO,MAAMA,IAA2BC,EAAkC,IAAI;AAEvE,SAASC,IAAgC;AAC9C,SAAOC,EAAWH,CAAwB;AAC5C;"}