@hellobetterdigitalnz/selwynui 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (277) hide show
  1. package/.storybook/main.ts +19 -0
  2. package/.storybook/preview.tsx +55 -0
  3. package/.storybook/vitest.setup.ts +7 -0
  4. package/README.md +73 -0
  5. package/eslint.config.js +29 -0
  6. package/index.html +13 -0
  7. package/package.json +63 -0
  8. package/public/img/card-one.png +0 -0
  9. package/public/img/card-three.png +0 -0
  10. package/public/img/card-two.png +0 -0
  11. package/public/img/footer-bg-design.svg +14 -0
  12. package/public/img/footer-logo.svg +9 -0
  13. package/public/img/promo-banner-image.svg +9 -0
  14. package/public/img/visit-brand-piller.svg +6 -0
  15. package/public/img/waikirikiri-full-logo.svg +23 -0
  16. package/public/vite.svg +1 -0
  17. package/src/App.tsx +8 -0
  18. package/src/Components/DataDisplay/DetailsCard/DetailsCard.stories.tsx +39 -0
  19. package/src/Components/DataDisplay/DetailsCard/DetailsCard.tsx +87 -0
  20. package/src/Components/DataDisplay/DetailsCard/DetailsCardProps.tsx +12 -0
  21. package/src/Components/DataDisplay/DetailsCard/detailsCard.module.scss +123 -0
  22. package/src/Components/DataDisplay/ImageContent/ImageContent.stories.tsx +150 -0
  23. package/src/Components/DataDisplay/ImageContent/ImageContent.tsx +118 -0
  24. package/src/Components/DataDisplay/ImageContent/ImageContentMaskingImages.tsx +334 -0
  25. package/src/Components/DataDisplay/ImageContent/ImageContentProps.tsx +42 -0
  26. package/src/Components/DataDisplay/ImageContent/imageContent.module.scss +278 -0
  27. package/src/Components/DataDisplay/IntroBlock/IntroBlock.stories.tsx +37 -0
  28. package/src/Components/DataDisplay/IntroBlock/IntroBlock.tsx +37 -0
  29. package/src/Components/DataDisplay/IntroBlock/IntroBlockProps.tsx +10 -0
  30. package/src/Components/DataDisplay/IntroBlock/introBlock.module.scss +33 -0
  31. package/src/Components/DataDisplay/KPIBlock/KPIBlock.stories.tsx +114 -0
  32. package/src/Components/DataDisplay/KPIBlock/KPIBlock.tsx +35 -0
  33. package/src/Components/DataDisplay/KPIBlock/KPIBlockProps.tsx +13 -0
  34. package/src/Components/DataDisplay/KPIBlock/kpiBlock.module.scss +73 -0
  35. package/src/Components/DataDisplay/Pathway/Pathway.stories.tsx +27 -0
  36. package/src/Components/DataDisplay/Pathway/Pathway.tsx +83 -0
  37. package/src/Components/DataDisplay/Pathway/PathwayProps.tsx +17 -0
  38. package/src/Components/DataDisplay/Pathway/pathway.module.scss +124 -0
  39. package/src/Components/DataDisplay/PromoBannerBlock/PromoBanner.stories.tsx +45 -0
  40. package/src/Components/DataDisplay/PromoBannerBlock/PromoBannerBlock.tsx +74 -0
  41. package/src/Components/DataDisplay/PromoBannerBlock/PromoBannerBlockProps.tsx +16 -0
  42. package/src/Components/DataDisplay/PromoBannerBlock/promo-banner-bg-design.tsx +14 -0
  43. package/src/Components/DataDisplay/PromoBannerBlock/promoBanner.module.scss +172 -0
  44. package/src/Components/DataDisplay/index.ts +19 -0
  45. package/src/Components/Form/Button/Button.stories.tsx +42 -0
  46. package/src/Components/Form/Button/Button.tsx +69 -0
  47. package/src/Components/Form/Button/ButtonProps.tsx +16 -0
  48. package/src/Components/Form/Button/button.module.scss +132 -0
  49. package/src/Components/Form/index.ts +2 -0
  50. package/src/Components/Icons/Arrows/ArrowLeft/ArrowLeft.tsx +49 -0
  51. package/src/Components/Icons/Arrows/ArrowRight/ArrowRight.tsx +47 -0
  52. package/src/Components/Icons/Arrows/ArrowSquareOut/ArrowSquareOut.tsx +48 -0
  53. package/src/Components/Icons/Arrows/ArrowsDownUp/ArrowsDownUp.tsx +49 -0
  54. package/src/Components/Icons/Arrows/ArrowsOutCardinal/ArrowsOutCardinal.tsx +50 -0
  55. package/src/Components/Icons/Arrows/CaretCircleRight/CaretCircleRight.tsx +37 -0
  56. package/src/Components/Icons/Arrows/CaretDown/CaretDown.tsx +49 -0
  57. package/src/Components/Icons/Arrows/CaretLeft/CaretLeft.tsx +102 -0
  58. package/src/Components/Icons/Arrows/CaretRight/CaretRight.tsx +102 -0
  59. package/src/Components/Icons/Arrows/CaretUp/CaretUp.tsx +49 -0
  60. package/src/Components/Icons/Arrows/CaretUpDown/CaretUpDown.tsx +49 -0
  61. package/src/Components/Icons/Brands/FacebookLogo/FacebookLogo.tsx +35 -0
  62. package/src/Components/Icons/Brands/InstagramLogo/InstagramLogo.tsx +35 -0
  63. package/src/Components/Icons/Brands/LinkedinLogo/LinkedinLogo.tsx +35 -0
  64. package/src/Components/Icons/Brands/WindowsLogo/WindowsLogo.tsx +105 -0
  65. package/src/Components/Icons/Commerce/Backpack/Backpack.tsx +54 -0
  66. package/src/Components/Icons/Commerce/BowlSteam/BowlSteam.tsx +34 -0
  67. package/src/Components/Icons/Commerce/Bread/Bread.tsx +34 -0
  68. package/src/Components/Icons/Commerce/Cheers/Cheers.tsx +34 -0
  69. package/src/Components/Icons/Commerce/ChefHat/ChefHat.tsx +34 -0
  70. package/src/Components/Icons/Commerce/Coffee/Coffee.tsx +54 -0
  71. package/src/Components/Icons/Commerce/CreditCard/CreditCard.tsx +54 -0
  72. package/src/Components/Icons/Commerce/CurrencyDollarSimple/CurrencyDollarSimple.tsx +105 -0
  73. package/src/Components/Icons/Commerce/Grains/Grains.tsx +54 -0
  74. package/src/Components/Icons/Commerce/Scale/Scale.tsx +61 -0
  75. package/src/Components/Icons/Commerce/StoreFront/StoreFront.tsx +54 -0
  76. package/src/Components/Icons/Communication/AddressBook/AddressBook.stories.ts +28 -0
  77. package/src/Components/Icons/Communication/AddressBook/AddressBook.tsx +50 -0
  78. package/src/Components/Icons/Communication/AsterickSimple/AsteriskSimple.stories.ts +28 -0
  79. package/src/Components/Icons/Communication/AsterickSimple/AsteriskSimple.tsx +49 -0
  80. package/src/Components/Icons/Communication/Asterisk/Asterisk.stories.ts +28 -0
  81. package/src/Components/Icons/Communication/Asterisk/Asterisk.tsx +50 -0
  82. package/src/Components/Icons/Communication/At/At.stories.ts +28 -0
  83. package/src/Components/Icons/Communication/At/At.tsx +49 -0
  84. package/src/Components/Icons/Communication/Broadcast/Broadcast.stories.ts +27 -0
  85. package/src/Components/Icons/Communication/Broadcast/Broadcast.tsx +49 -0
  86. package/src/Components/Icons/Communication/Chat/Chat.stories.ts +28 -0
  87. package/src/Components/Icons/Communication/Chat/Chat.tsx +49 -0
  88. package/src/Components/Icons/Communication/ChatCircleText/ChatCircleText.tsx +87 -0
  89. package/src/Components/Icons/Communication/EnvelopeSimple/EnvelopeSimple.tsx +52 -0
  90. package/src/Components/Icons/Communication/Export/Export.tsx +52 -0
  91. package/src/Components/Icons/Communication/Phone/Phone.tsx +54 -0
  92. package/src/Components/Icons/Communication/ThumbsUp/ThumbsUp.tsx +47 -0
  93. package/src/Components/Icons/Communication/Translate/Translate.tsx +51 -0
  94. package/src/Components/Icons/Design/DropHalfBottom/DropHalfBottom.tsx +37 -0
  95. package/src/Components/Icons/Design/Eye/Eye.tsx +105 -0
  96. package/src/Components/Icons/Design/EyeSlash/EyeSlash.tsx +105 -0
  97. package/src/Components/Icons/Design/GearFine/GearFine.tsx +105 -0
  98. package/src/Components/Icons/Design/PencilLine/PencilLine.tsx +63 -0
  99. package/src/Components/Icons/Design/PencilSimple/PencilSimple.tsx +63 -0
  100. package/src/Components/Icons/Design/Ruler/Ruler.tsx +63 -0
  101. package/src/Components/Icons/Design/SquaresFour/SquaresFour.tsx +54 -0
  102. package/src/Components/Icons/Education/BookOpenText/BookOpenText.tsx +63 -0
  103. package/src/Components/Icons/Education/BookmarkSimple/BookmarkSimple.tsx +44 -0
  104. package/src/Components/Icons/Education/Certificate/Certificate.tsx +56 -0
  105. package/src/Components/Icons/Education/GraduationCap/GraduationCap.tsx +105 -0
  106. package/src/Components/Icons/Games/Cricket/Cricket.tsx +23 -0
  107. package/src/Components/Icons/Games/Football/Football.tsx +47 -0
  108. package/src/Components/Icons/Games/Golf/Golf.tsx +34 -0
  109. package/src/Components/Icons/HealthAndWellness/Barbell/Barbell.tsx +36 -0
  110. package/src/Components/Icons/IconProps.tsx +5 -0
  111. package/src/Components/Icons/MapAndTravel/Barn/Barn.tsx +34 -0
  112. package/src/Components/Icons/MapAndTravel/Bicycle/Bicycle.tsx +54 -0
  113. package/src/Components/Icons/MapAndTravel/Bus/Bus.tsx +54 -0
  114. package/src/Components/Icons/MapAndTravel/Car/Car.tsx +54 -0
  115. package/src/Components/Icons/MapAndTravel/ChargingStation/ChargingStation.tsx +54 -0
  116. package/src/Components/Icons/MapAndTravel/Farm/Farm.tsx +34 -0
  117. package/src/Components/Icons/MapAndTravel/Globe/Globe.tsx +61 -0
  118. package/src/Components/Icons/MapAndTravel/Goggles/Goggles.tsx +47 -0
  119. package/src/Components/Icons/MapAndTravel/House/House.tsx +61 -0
  120. package/src/Components/Icons/MapAndTravel/HouseSimple/HouseSimple.tsx +61 -0
  121. package/src/Components/Icons/MapAndTravel/MapPin/MapPin.tsx +53 -0
  122. package/src/Components/Icons/MapAndTravel/MapTriFold/MapTriFold.tsx +59 -0
  123. package/src/Components/Icons/MapAndTravel/Path/Path.tsx +35 -0
  124. package/src/Components/Icons/MapAndTravel/RoadHorizon/RoadHorizon.tsx +35 -0
  125. package/src/Components/Icons/MapAndTravel/SteeringWheel/SteeringWheel.tsx +61 -0
  126. package/src/Components/Icons/MapAndTravel/SwimmingPool/SwimmingPool.tsx +36 -0
  127. package/src/Components/Icons/MapAndTravel/Tram/Tram.tsx +35 -0
  128. package/src/Components/Icons/MapAndTravel/Van/Van.tsx +60 -0
  129. package/src/Components/Icons/MathsAndFinance/Calculator/Calculator.tsx +59 -0
  130. package/src/Components/Icons/MathsAndFinance/ChartBar/ChartBar.tsx +59 -0
  131. package/src/Components/Icons/MathsAndFinance/ChartBarHorizontal/ChartBarHorizontal.tsx +52 -0
  132. package/src/Components/Icons/MathsAndFinance/ChartLine/ChartLine.tsx +53 -0
  133. package/src/Components/Icons/MathsAndFinance/ChartLineUp/ChartLineUp.tsx +47 -0
  134. package/src/Components/Icons/MathsAndFinance/ChartPie/ChartPie.tsx +54 -0
  135. package/src/Components/Icons/MathsAndFinance/Minus/Minus.tsx +49 -0
  136. package/src/Components/Icons/MathsAndFinance/MinusCircle/MinusCircle.tsx +44 -0
  137. package/src/Components/Icons/MathsAndFinance/NumberSquareThree/NumberSquareThree.tsx +63 -0
  138. package/src/Components/Icons/MathsAndFinance/Plus/Plus.tsx +63 -0
  139. package/src/Components/Icons/MathsAndFinance/PlusCircle/PlusCircle.tsx +51 -0
  140. package/src/Components/Icons/MathsAndFinance/XIcon/XIcon.tsx +107 -0
  141. package/src/Components/Icons/Media/Camera/Camera.tsx +49 -0
  142. package/src/Components/Icons/Media/DiscoBall/DiscoBall.tsx +22 -0
  143. package/src/Components/Icons/Media/FilmStrip/FilmStrip.tsx +45 -0
  144. package/src/Components/Icons/Media/Microphone/Microphone.tsx +94 -0
  145. package/src/Components/Icons/Media/MusicNotes/MusicNotes.tsx +42 -0
  146. package/src/Components/Icons/Media/PlayCircle/PlayCircle.tsx +49 -0
  147. package/src/Components/Icons/Media/SlidersHorizontal/SlidersHorizontal.tsx +49 -0
  148. package/src/Components/Icons/Media/StopCircle/StopCircle.tsx +50 -0
  149. package/src/Components/Icons/Media/VideoCamera/VideoCamera.tsx +105 -0
  150. package/src/Components/Icons/OfficeAndEditing/BuildinfOffice/BuildingOffice.tsx +22 -0
  151. package/src/Components/Icons/OfficeAndEditing/Copy/Copy.tsx +47 -0
  152. package/src/Components/Icons/OfficeAndEditing/FileText/FileText.tsx +35 -0
  153. package/src/Components/Icons/OfficeAndEditing/Files/Files.tsx +49 -0
  154. package/src/Components/Icons/OfficeAndEditing/FloppyDisk/FloppyDisk.tsx +49 -0
  155. package/src/Components/Icons/OfficeAndEditing/Folder/Folder.tsx +61 -0
  156. package/src/Components/Icons/OfficeAndEditing/FolderSimplePlus/FolderSimplePlus.tsx +35 -0
  157. package/src/Components/Icons/OfficeAndEditing/Folders/Folders.tsx +47 -0
  158. package/src/Components/Icons/OfficeAndEditing/List/List.tsx +46 -0
  159. package/src/Components/Icons/OfficeAndEditing/ListBullets/ListBullets.tsx +59 -0
  160. package/src/Components/Icons/OfficeAndEditing/ListDashes/ListDashes.tsx +59 -0
  161. package/src/Components/Icons/OfficeAndEditing/Printer/Printer.tsx +48 -0
  162. package/src/Components/Icons/OfficeAndEditing/TextAa/TextAa.tsx +63 -0
  163. package/src/Components/Icons/OfficeAndEditing/TextColumns/TextColumns.tsx +61 -0
  164. package/src/Components/Icons/OfficeAndEditing/Trash/Trash.tsx +49 -0
  165. package/src/Components/Icons/OfficeAndEditing/TrashSimple/TrashSimple.tsx +49 -0
  166. package/src/Components/Icons/People/Person/Person.tsx +35 -0
  167. package/src/Components/Icons/People/PersonArmsSpread/PersonArmsSpread.tsx +35 -0
  168. package/src/Components/Icons/People/PersonSimpleBike/PersonSimpleBike.tsx +35 -0
  169. package/src/Components/Icons/People/PersonSimpleSki/PersonSimpleSki.tsx +34 -0
  170. package/src/Components/Icons/People/PersonSimpleWalk/PersonSimpleWalk.tsx +35 -0
  171. package/src/Components/Icons/People/User/User.tsx +61 -0
  172. package/src/Components/Icons/People/UserCircle/UserCircle.tsx +61 -0
  173. package/src/Components/Icons/People/UserSwitch/UserSwitch.tsx +61 -0
  174. package/src/Components/Icons/People/Users/Users.tsx +107 -0
  175. package/src/Components/Icons/SecurityAndWarnings/Info/Info.tsx +54 -0
  176. package/src/Components/Icons/SecurityAndWarnings/Key/Key.tsx +54 -0
  177. package/src/Components/Icons/SecurityAndWarnings/LockKeyOpen/LockKeyOpen.tsx +54 -0
  178. package/src/Components/Icons/SecurityAndWarnings/LockSimple/LockSimple.tsx +61 -0
  179. package/src/Components/Icons/SecurityAndWarnings/Question/Question.tsx +53 -0
  180. package/src/Components/Icons/SecurityAndWarnings/ShieldCheck/ShieldCheck.tsx +89 -0
  181. package/src/Components/Icons/SecurityAndWarnings/WarningCircle/WarningCircle.tsx +105 -0
  182. package/src/Components/Icons/SystemAndDevice/Bell/Bell.tsx +49 -0
  183. package/src/Components/Icons/SystemAndDevice/Check/Check.tsx +49 -0
  184. package/src/Components/Icons/SystemAndDevice/CheckSquare/CheckSquare.tsx +63 -0
  185. package/src/Components/Icons/SystemAndDevice/CloudCheck/CloudCheck.tsx +74 -0
  186. package/src/Components/Icons/SystemAndDevice/Desktop/Desktop.tsx +107 -0
  187. package/src/Components/Icons/SystemAndDevice/DeviceMobile/DeviceMobile.tsx +78 -0
  188. package/src/Components/Icons/SystemAndDevice/DotSixVertical/DotSixVertical.tsx +49 -0
  189. package/src/Components/Icons/SystemAndDevice/DotsSix/DotsSix.tsx +107 -0
  190. package/src/Components/Icons/SystemAndDevice/DotsThree/DotsThree.tsx +63 -0
  191. package/src/Components/Icons/SystemAndDevice/DotsThreeVertical/DotsThreeVertical.tsx +63 -0
  192. package/src/Components/Icons/SystemAndDevice/DownloadSimple/DownloadSimple.tsx +52 -0
  193. package/src/Components/Icons/SystemAndDevice/Gear/Gear.tsx +61 -0
  194. package/src/Components/Icons/SystemAndDevice/Link/Link.tsx +54 -0
  195. package/src/Components/Icons/SystemAndDevice/MagnifyingGlass/MagnifyingGlass.tsx +105 -0
  196. package/src/Components/Icons/SystemAndDevice/RadioButtonIcon/RadioButtonIcon.tsx +63 -0
  197. package/src/Components/Icons/SystemAndDevice/SignIn/SignIn.tsx +51 -0
  198. package/src/Components/Icons/SystemAndDevice/SignOut/SignOut.tsx +49 -0
  199. package/src/Components/Icons/SystemAndDevice/ToggleLeft/ToggleLeft.tsx +51 -0
  200. package/src/Components/Icons/SystemAndDevice/ToggleRight/ToggleRight.tsx +51 -0
  201. package/src/Components/Icons/Time/Calendar/Calendar.tsx +61 -0
  202. package/src/Components/Icons/Time/CalendarBank/CalendarBank.tsx +105 -0
  203. package/src/Components/Icons/Time/CalendarCheck/CalendarCheck.tsx +61 -0
  204. package/src/Components/Icons/Time/CalendarDots/CalendarDots.tsx +28 -0
  205. package/src/Components/Icons/Time/Clock/Clock.tsx +105 -0
  206. package/src/Components/Icons/Time/ClockCounterClockwise/ClockCounterClockwise.tsx +74 -0
  207. package/src/Components/Icons/WeatherAndNature/Bird/Bird.tsx +54 -0
  208. package/src/Components/Icons/WeatherAndNature/Campfire/Campfire.tsx +35 -0
  209. package/src/Components/Icons/WeatherAndNature/CloudSun/CloudSun.tsx +49 -0
  210. package/src/Components/Icons/WeatherAndNature/Cow/Cow.tsx +34 -0
  211. package/src/Components/Icons/WeatherAndNature/Dog/Dog.tsx +54 -0
  212. package/src/Components/Icons/WeatherAndNature/FishSimple/FishSimple.tsx +54 -0
  213. package/src/Components/Icons/WeatherAndNature/Flower/Flower.tsx +47 -0
  214. package/src/Components/Icons/WeatherAndNature/Moon/Moon.tsx +35 -0
  215. package/src/Components/Icons/WeatherAndNature/Mountains/Mountains.tsx +49 -0
  216. package/src/Components/Icons/WeatherAndNature/Plant/Plant.tsx +105 -0
  217. package/src/Components/Icons/WeatherAndNature/Snowflake/Snowflake.tsx +46 -0
  218. package/src/Components/Icons/WeatherAndNature/Sparkle/Sparkle.tsx +35 -0
  219. package/src/Components/Icons/WeatherAndNature/Sun/Sun.tsx +47 -0
  220. package/src/Components/Icons/WeatherAndNature/Tree/Tree.tsx +84 -0
  221. package/src/Components/Icons/index.ts +165 -0
  222. package/src/Components/Layout/Footer/Footer.stories.tsx +178 -0
  223. package/src/Components/Layout/Footer/Footer.tsx +32 -0
  224. package/src/Components/Layout/Footer/FooterBottom.tsx +21 -0
  225. package/src/Components/Layout/Footer/FooterBottomLeft.tsx +31 -0
  226. package/src/Components/Layout/Footer/FooterBottomLeftProps.tsx +13 -0
  227. package/src/Components/Layout/Footer/FooterBottomProps.tsx +7 -0
  228. package/src/Components/Layout/Footer/FooterBottomRight.tsx +47 -0
  229. package/src/Components/Layout/Footer/FooterBottomRightProps.tsx +7 -0
  230. package/src/Components/Layout/Footer/FooterItem.tsx +17 -0
  231. package/src/Components/Layout/Footer/FooterItemProps.tsx +8 -0
  232. package/src/Components/Layout/Footer/FooterMiddle.tsx +14 -0
  233. package/src/Components/Layout/Footer/FooterMiddleProps.tsx +8 -0
  234. package/src/Components/Layout/Footer/FooterProps.tsx +11 -0
  235. package/src/Components/Layout/Footer/FooterTop.tsx +30 -0
  236. package/src/Components/Layout/Footer/FooterTopProps.tsx +9 -0
  237. package/src/Components/Layout/Footer/footer-bg-design.tsx +21 -0
  238. package/src/Components/Layout/Footer/footer.module.scss +295 -0
  239. package/src/Components/Layout/Header/Header.stories.tsx +66 -0
  240. package/src/Components/Layout/Header/Header.tsx +27 -0
  241. package/src/Components/Layout/Header/HeaderProps.tsx +9 -0
  242. package/src/Components/Layout/Header/HeaderRight.tsx +12 -0
  243. package/src/Components/Layout/Header/HeaderRightItem.tsx +21 -0
  244. package/src/Components/Layout/Header/HeaderRightItemProps.tsx +13 -0
  245. package/src/Components/Layout/Header/HeaderRightProps.tsx +7 -0
  246. package/src/Components/Layout/Header/MagnifyingGlass/MagnifyingGlass.tsx +10 -0
  247. package/src/Components/Layout/Header/MegaMenu/MegaMenu.tsx +5 -0
  248. package/src/Components/Layout/Header/MegaMenu/MegaMenuProps.tsx +5 -0
  249. package/src/Components/Layout/Header/header.module.scss +90 -0
  250. package/src/Components/Layout/HeroBanner/HeroBanner.stories.tsx +77 -0
  251. package/src/Components/Layout/HeroBanner/HeroBanner.tsx +77 -0
  252. package/src/Components/Layout/HeroBanner/HeroBannerProps.tsx +10 -0
  253. package/src/Components/Layout/HeroBanner/LargeHeroIcon.tsx +18 -0
  254. package/src/Components/Layout/HeroBanner/heroBanner.module.scss +179 -0
  255. package/src/Components/Layout/index.ts +27 -0
  256. package/src/Components/Shared/Container/Container.tsx +19 -0
  257. package/src/Components/Shared/Container/ContainerProps.tsx +8 -0
  258. package/src/Components/Shared/Container/container.module.scss +13 -0
  259. package/src/Components/Shared/ElementHolder/ElementHolder.tsx +40 -0
  260. package/src/Components/Shared/ElementHolder/ElementHolderProps.tsx +18 -0
  261. package/src/Components/Shared/ElementHolder/elementHolder.module.scss +189 -0
  262. package/src/Components/Shared/index.ts +5 -0
  263. package/src/assets/react.svg +1 -0
  264. package/src/global.scss +337 -0
  265. package/src/globals.d.ts +1 -0
  266. package/src/index.ts +5 -0
  267. package/src/main.tsx +10 -0
  268. package/src/scss.d.ts +1 -0
  269. package/src/variable.scss +3 -0
  270. package/tsconfig.app.json +45 -0
  271. package/tsconfig.json +7 -0
  272. package/tsconfig.node.json +10 -0
  273. package/tsconfig.node.tsbuildinfo +1 -0
  274. package/vite.config.d.ts +2 -0
  275. package/vite.config.js +40 -0
  276. package/vite.config.ts +31 -0
  277. package/vitest.shims.d.ts +1 -0
@@ -0,0 +1,334 @@
1
+ import { useId } from "react";
2
+
3
+ const ImageContentClip = ({ pillar = 'visit', single, setOfFour, width = 568, height = 565 }: any) => {
4
+ const id = useId();
5
+ const clipId = `clip-${id}`;
6
+ const clipIds = [`clip-1-${id}`, `clip-2-${id}`, `clip-3-${id}`, `clip-4-${id}`];
7
+
8
+ const positions = [
9
+ { x: 0, y: 0, width: 275.811, height: 274.703 },
10
+ { x: 0, y: 290.208, width: 275.811, height: 274.702 },
11
+ { x: 292.189, y: 0, width: 275.811, height: 274.703 },
12
+ { x: 292.189, y: 290.297, width: 275.811, height: 274.703 }
13
+ ];
14
+
15
+ if(pillar === 'participate'){
16
+ return (
17
+ <svg width={width} height={height} viewBox={`0 0 ${width} ${height}`} xmlns="http://www.w3.org/2000/svg">
18
+ {single && (
19
+ <defs>
20
+ <clipPath id={clipId} clipPathUnits="userSpaceOnUse">
21
+ <path d="M0 274.705C152.008 274.705 275.285 151.688 275.285 0H0V274.705Z" />
22
+ <path d="M0 290C152.008 290 275.285 413.017 275.285 564.705H0V290Z" />
23
+ <path d="M567.285 274.705C415.277 274.705 292.001 151.688 292.001 0H567.285V274.705Z" />
24
+ <path d="M567.285 290C415.277 290 292.001 413.017 292.001 564.705H567.285V290Z" />
25
+ </clipPath>
26
+ </defs>
27
+ )}
28
+
29
+ {setOfFour && (
30
+ <defs>
31
+ <clipPath id={clipIds[0]}>
32
+ <path d="M0 274.705C152.008 274.705 275.285 151.688 275.285 0H0V274.705Z" />
33
+ </clipPath>
34
+ <clipPath id={clipIds[1]}>
35
+ <path d="M0 290C152.008 290 275.285 413.017 275.285 564.705H0V290Z" />
36
+ </clipPath>
37
+ <clipPath id={clipIds[2]}>
38
+ <path d="M567.285 274.705C415.277 274.705 292.001 151.688 292.001 0H567.285V274.705Z" />
39
+ </clipPath>
40
+ <clipPath id={clipIds[3]}>
41
+ <path d="M567.285 290C415.277 290 292.001 413.017 292.001 564.705H567.285V290Z" />
42
+ </clipPath>
43
+ </defs>
44
+ )}
45
+
46
+ {single && (
47
+ <image
48
+ href={single}
49
+ x="0"
50
+ y="0"
51
+ width={width}
52
+ height={height}
53
+ preserveAspectRatio="xMidYMid slice"
54
+ clipPath={`url(#${clipId})`}
55
+ />
56
+ )}
57
+
58
+ {setOfFour &&
59
+ setOfFour.map((s: string, i: number) => {
60
+ const area = positions[i];
61
+ return (
62
+ <image
63
+ key={i}
64
+ href={s}
65
+ x={area.x}
66
+ y={area.y}
67
+ width={area.width}
68
+ height={area.height}
69
+ preserveAspectRatio="xMidYMid slice"
70
+ clipPath={`url(#${clipIds[i]})`}
71
+ />
72
+ );
73
+ })}
74
+ </svg>
75
+ );
76
+
77
+ }
78
+
79
+ if(pillar === 'live'){
80
+ return (
81
+ <svg width={width} height={height} viewBox={`0 0 ${width} ${height}`} xmlns="http://www.w3.org/2000/svg">
82
+ {single && (
83
+ <defs>
84
+ <clipPath id={clipId} clipPathUnits="userSpaceOnUse">
85
+ <path d="M0.0906646 0C151.563 0 274.404 123.017 274.404 274.705H0.0906646V0Z" />
86
+ <path d="M274.314 564.91C122.842 564.91 0 441.893 0 290.205H274.314V564.91Z" />
87
+ <path d="M565 274.795C565 123.107 442.158 0.0895993 290.686 0.0895993V274.795H565Z" />
88
+ <path d="M290.686 290.295C290.686 441.983 413.528 565 565 565V290.295H290.686Z" />
89
+ </clipPath>
90
+ </defs>
91
+ )}
92
+
93
+ {setOfFour && (
94
+ <defs>
95
+ <clipPath id={clipIds[0]}>
96
+ <path d="M0.0906646 0C151.563 0 274.404 123.017 274.404 274.705H0.0906646V0Z" />
97
+ </clipPath>
98
+ <clipPath id={clipIds[1]}>
99
+ <path d="M274.314 564.91C122.842 564.91 0 441.893 0 290.205H274.314V564.91Z" />
100
+ </clipPath>
101
+ <clipPath id={clipIds[2]}>
102
+ <path d="M565 274.795C565 123.107 442.158 0.0895993 290.686 0.0895993V274.795H565Z" />
103
+ </clipPath>
104
+ <clipPath id={clipIds[3]}>
105
+ <path d="M290.686 290.295C290.686 441.983 413.528 565 565 565V290.295H290.686Z" />
106
+ </clipPath>
107
+ </defs>
108
+ )}
109
+
110
+ {single && (
111
+ <image
112
+ href={single}
113
+ x="0"
114
+ y="0"
115
+ width={width}
116
+ height={height}
117
+ preserveAspectRatio="xMidYMid slice"
118
+ clipPath={`url(#${clipId})`}
119
+ />
120
+ )}
121
+
122
+ {setOfFour &&
123
+ setOfFour.map((s: string, i: number) => {
124
+ const area = positions[i];
125
+ return (
126
+ <image
127
+ key={i}
128
+ href={s}
129
+ x={area.x}
130
+ y={area.y}
131
+ width={area.width}
132
+ height={area.height}
133
+ preserveAspectRatio="xMidYMid slice"
134
+ clipPath={`url(#${clipIds[i]})`}
135
+ />
136
+ );
137
+ })}
138
+ </svg>
139
+ );
140
+
141
+ }
142
+
143
+ if(pillar === 'business'){
144
+ return (
145
+ <svg width={width} height={height} viewBox={`0 0 ${width} ${height}`} xmlns="http://www.w3.org/2000/svg">
146
+ {single && (
147
+ <defs>
148
+ <clipPath id={clipId} clipPathUnits="userSpaceOnUse">
149
+ <path d="M0 275.143C0 123.204 123.502 0 275.808 0V275.143H0Z" />
150
+ <path d="M0 565.82C0 413.881 123.502 290.678 275.808 290.678V565.82H0Z" />
151
+ <path d="M568 0.179636C415.693 0.179636 292.192 123.383 292.192 275.322H568V0.179636Z" />
152
+ <path d="M568 290.857C415.693 290.857 292.192 414.061 292.192 566H568V290.857Z" />
153
+ </clipPath>
154
+ </defs>
155
+ )}
156
+
157
+ {setOfFour && (
158
+ <defs>
159
+ <clipPath id={clipIds[0]}>
160
+ <path d="M0 275.143C0 123.204 123.502 0 275.808 0V275.143H0Z" />
161
+ </clipPath>
162
+ <clipPath id={clipIds[1]}>
163
+ <path d="M0 565.82C0 413.881 123.502 290.678 275.808 290.678V565.82H0Z" />
164
+ </clipPath>
165
+ <clipPath id={clipIds[2]}>
166
+ <path d="M568 0.179636C415.693 0.179636 292.192 123.383 292.192 275.322H568V0.179636Z" />
167
+ </clipPath>
168
+ <clipPath id={clipIds[3]}>
169
+ <path d="M568 290.857C415.693 290.857 292.192 414.061 292.192 566H568V290.857Z" />
170
+ </clipPath>
171
+ </defs>
172
+ )}
173
+
174
+ {single && (
175
+ <image
176
+ href={single}
177
+ x="0"
178
+ y="0"
179
+ width={width}
180
+ height={height}
181
+ preserveAspectRatio="xMidYMid slice"
182
+ clipPath={`url(#${clipId})`}
183
+ />
184
+ )}
185
+
186
+ {setOfFour &&
187
+ setOfFour.map((s: string, i: number) => {
188
+ const area = positions[i];
189
+ return (
190
+ <image
191
+ key={i}
192
+ href={s}
193
+ x={area.x}
194
+ y={area.y}
195
+ width={area.width}
196
+ height={area.height}
197
+ preserveAspectRatio="xMidYMid slice"
198
+ clipPath={`url(#${clipIds[i]})`}
199
+ />
200
+ );
201
+ })}
202
+ </svg>
203
+ );
204
+
205
+ }
206
+
207
+ if (pillar === "taste") {
208
+ const tastePositions = [
209
+ { x: 292.189, y: 290.297, width: 275.811, height: 274.703 }, // RB
210
+ { x: 292.189, y: 0, width: 275.811, height: 274.792 }, // RT
211
+ { x: 0, y: 290.208, width: 275.811, height: 274.702 }, // LB
212
+ { x: 0, y: 0, width: 275.811, height: 274.703 }, // LT
213
+ ];
214
+
215
+ return (
216
+ <svg
217
+ width={width}
218
+ height={height}
219
+ viewBox="0 0 568 565"
220
+ xmlns="http://www.w3.org/2000/svg"
221
+ >
222
+ {single && (
223
+ <defs>
224
+ <clipPath id={clipId} clipPathUnits="userSpaceOnUse">
225
+ <path d="M292.189 565C444.537 565 568 442.034 568 290.297L292.189 290.297L292.189 565Z" />
226
+ <path d="M292.189 274.792C444.537 274.792 568 151.826 568 0.0897827L292.189 0.0897825L292.189 274.792Z" />
227
+ <path d="M275.811 564.91C123.463 564.91 0 441.944 0 290.208L275.811 290.208L275.811 564.91Z" />
228
+ <path d="M275.811 274.703C123.463 274.703 0 151.736 0 0L275.811 0L275.811 274.703Z" />
229
+ </clipPath>
230
+ </defs>
231
+ )}
232
+
233
+ {setOfFour && (
234
+ <defs>
235
+ <clipPath id={clipIds[0]}>
236
+ <path d="M292.189 565C444.537 565 568 442.034 568 290.297L292.189 290.297L292.189 565Z" />
237
+ </clipPath>
238
+ <clipPath id={clipIds[1]}>
239
+ <path d="M292.189 274.792C444.537 274.792 568 151.826 568 0.0897827L292.189 0.0897825L292.189 274.792Z" />
240
+ </clipPath>
241
+ <clipPath id={clipIds[2]}>
242
+ <path d="M275.811 564.91C123.463 564.91 0 441.944 0 290.208L275.811 290.208L275.811 564.91Z" />
243
+ </clipPath>
244
+ <clipPath id={clipIds[3]}>
245
+ <path d="M275.811 274.703C123.463 274.703 0 151.736 0 0L275.811 0L275.811 274.703Z" />
246
+ </clipPath>
247
+ </defs>
248
+ )}
249
+
250
+ {single && (
251
+ <image
252
+ href={single}
253
+ x={0}
254
+ y={0}
255
+ width={568}
256
+ height={565}
257
+ preserveAspectRatio="xMidYMid slice"
258
+ clipPath={`url(#${clipId})`}
259
+ />
260
+ )}
261
+
262
+ {setOfFour &&
263
+ setOfFour.map((s: string, i: number) => {
264
+ const area = tastePositions[i];
265
+ return (
266
+ <image
267
+ key={i}
268
+ href={s}
269
+ x={area.x}
270
+ y={area.y}
271
+ width={area.width}
272
+ height={area.height}
273
+ preserveAspectRatio="xMidYMid slice"
274
+ clipPath={`url(#${clipIds[i]})`}
275
+ />
276
+ );
277
+ })}
278
+ </svg>
279
+ );
280
+ }
281
+
282
+
283
+ return (
284
+ <svg width={width} height={height} viewBox={`0 0 ${width} ${height}`} xmlns="http://www.w3.org/2000/svg">
285
+ {single && (
286
+ <defs>
287
+ <clipPath id={clipId} clipPathUnits="userSpaceOnUse">
288
+ <path d="M275.811 0C123.463 0 0 122.966 0 274.703H275.811V0Z" />
289
+ <path d="M275.811 290.208C123.463 290.208 0 413.174 0 564.91H275.811V290.208Z" />
290
+ <path d="M292.189 0.0897284C444.537 0.0897286 568 123.056 568 274.792H292.189V0.0897284Z" />
291
+ <path d="M292.189 290.297C444.537 290.297 568 413.264 568 565H292.189V290.297Z" />
292
+ </clipPath>
293
+ </defs>
294
+ )}
295
+
296
+ {setOfFour && (
297
+ <defs>
298
+ <clipPath id={clipIds[0]} >
299
+ <path d="M275.811 0C123.463 0 0 122.966 0 274.703H275.811V0Z" />
300
+ </clipPath>
301
+ <clipPath id={clipIds[1]} >
302
+ <path d="M275.811 290.208C123.463 290.208 0 413.174 0 564.91H275.811V290.208Z" />
303
+ </clipPath>
304
+ <clipPath id={clipIds[2]} >
305
+ <path d="M292.189 0.0897284C444.537 0.0897286 568 123.056 568 274.792H292.189V0.0897284Z" />
306
+ </clipPath>
307
+ <clipPath id={clipIds[3]}>
308
+ <path d="M292.189 290.297C444.537 290.297 568 413.264 568 565H292.189V290.297Z" />
309
+ </clipPath>
310
+ </defs>
311
+ )}
312
+
313
+ {single && <image href={single} x="0" y="0" width={width} height={height} preserveAspectRatio="xMidYMid slice" clipPath={`url(#${clipId})`} />}
314
+
315
+ {setOfFour && setOfFour.map((s: string, i: number) => {
316
+ const area = positions[i];
317
+ return (
318
+ <image
319
+ key={i}
320
+ href={s}
321
+ x={area.x}
322
+ y={area.y}
323
+ width={area.width}
324
+ height={area.height}
325
+ preserveAspectRatio="xMidYMid slice"
326
+ clipPath={`url(#${clipIds[i]})`}
327
+ />
328
+ );
329
+ })}
330
+ </svg>
331
+ );
332
+ };
333
+
334
+ export default ImageContentClip;
@@ -0,0 +1,42 @@
1
+ import { ReactNode } from "react";
2
+
3
+ export type PillarType =
4
+ | "main"
5
+ | "live"
6
+ | "visit"
7
+ | "taste"
8
+ | "business"
9
+ | "participate";
10
+
11
+ export type RenditionType =
12
+ | "full"
13
+ | "contained"
14
+ | "masked";
15
+
16
+ export interface ImageSet {
17
+ single?: string;
18
+ setOfFour?: [string, string, string, string];
19
+ }
20
+
21
+ export interface Item {
22
+ id?: number;
23
+ label?: string;
24
+ }
25
+
26
+ export interface ImageContentProps {
27
+ level?: "primary" | "secondary" | "light";
28
+ pillar?: PillarType;
29
+ displayFullLogo?: boolean;
30
+ displayIconWithTitle?: boolean;
31
+ pillarTitle?: string;
32
+ title?: string;
33
+ content?: ReactNode;
34
+ action?: ReactNode;
35
+ images?: ImageSet;
36
+ alignment?: 'left' | 'right';
37
+ imageBorder?: 'top' | 'bottom'
38
+ rendition?: RenditionType;
39
+ list?: Item[];
40
+ }
41
+
42
+ export default ImageContentProps;
@@ -0,0 +1,278 @@
1
+ .imageContent{
2
+ color: var(--color-block-text);
3
+
4
+ //alignment
5
+
6
+ &.left{
7
+ .imageContentWrapper {
8
+ flex-direction: column-reverse;
9
+ }
10
+ }
11
+
12
+ &.right{
13
+ .imageContentWrapper {
14
+ flex-direction: column-reverse;
15
+ }
16
+ }
17
+
18
+ &Wrapper{
19
+ display: flex;
20
+ flex-wrap: wrap;
21
+ }
22
+
23
+ .imageWrapper{
24
+ width: 100%;
25
+ margin-top: 32px;
26
+ }
27
+
28
+ .imageHolder {
29
+ position: relative;
30
+ border-radius: 2px 2px 96px 2px;
31
+ background: lightgray 50%;
32
+ overflow: hidden;
33
+ height: 100%;
34
+
35
+ &::before {
36
+ content: "";
37
+ display: block;
38
+ padding-top: 72%;
39
+ }
40
+
41
+ img {
42
+ width: 100%;
43
+ height: 100%;
44
+ position: absolute;
45
+ top: 0;
46
+ left: 0;
47
+ object-fit: cover;
48
+ }
49
+ }
50
+
51
+ .content{
52
+ width: 100%;
53
+ display: flex;
54
+ align-items: center;
55
+
56
+ &Wrappper{
57
+ padding: 32px 0;
58
+ }
59
+
60
+ .title{
61
+ font-size: var(--font-size-h3);
62
+ line-height: var(--line-height-h3);
63
+
64
+ h3{
65
+ font-weight: 400;
66
+ }
67
+
68
+ span{
69
+ font-weight: 700;
70
+ }
71
+
72
+ }
73
+
74
+ .desc{
75
+ margin-top: 72px;
76
+ font-size: var(--font-size-body-regular);
77
+ line-height: var(--line-height-body-regular);
78
+ font-weight: 400;
79
+ }
80
+
81
+ .action{
82
+ padding-top: 48px;
83
+ }
84
+
85
+ }
86
+
87
+ // masked images
88
+ &.maskedImageContent{
89
+
90
+ .content{
91
+ .title h4{
92
+ font-size: var(--font-size-h4);
93
+ line-height: var(--line-height-h4);
94
+ font-weight: var(--font-weight-h4);
95
+ }
96
+ }
97
+
98
+ .imageContentWrapper{
99
+ margin: 0 ;
100
+ }
101
+
102
+ .imageWrapper{
103
+ svg{
104
+ width: 100%;
105
+ min-height: 570px;
106
+ height: 100%;
107
+ }
108
+ }
109
+
110
+ .imageWrapper, .content{
111
+ padding: 0;
112
+ }
113
+
114
+ }
115
+
116
+ // full image
117
+ &.imageContentFull{
118
+
119
+ &.top{
120
+ &.left{
121
+ .imageHolder {
122
+ border-radius: 0px 500px 0px 0px;
123
+ }
124
+ }
125
+
126
+ &.right{
127
+ .imageHolder {
128
+ border-radius: 500px 0px 0px;
129
+ }
130
+ }
131
+ }
132
+
133
+ &.bottom{
134
+ &.left{
135
+ .imageHolder {
136
+ border-radius: 0px 0px 500px 0px;
137
+ }
138
+ }
139
+
140
+ &.right{
141
+ .imageHolder {
142
+ border-radius: 0px 0px 0px 500px;
143
+ }
144
+ }
145
+ }
146
+
147
+ &.left{
148
+ .imageContentWrapper {
149
+ flex-direction: row;
150
+ }
151
+
152
+ .imageHolder {
153
+ height: 100%;
154
+ position: absolute;
155
+ width: calc(50vw + 10px);
156
+ right: 0;
157
+ left: unset;
158
+ }
159
+
160
+ .content{
161
+ padding-left: 198px;
162
+ padding-right: 0;
163
+ }
164
+
165
+ }
166
+
167
+ .imageContentWrapper{
168
+ margin: 0px;
169
+ min-height: 935px;
170
+ }
171
+
172
+ .imageWrapper{
173
+ position: relative;
174
+ padding: 0px;
175
+ }
176
+
177
+ .imageHolder {
178
+ padding: 0;
179
+ height: 100%;
180
+ position: absolute;
181
+ width: calc(50vw - 10px);
182
+ left: 0;
183
+ overflow: hidden;
184
+
185
+
186
+ &::before {
187
+ content: none;
188
+ }
189
+
190
+ img {
191
+ width: 100%;
192
+ height: 100%;
193
+ object-fit: cover;
194
+ object-position: center;
195
+ }
196
+ }
197
+
198
+ .content{
199
+ padding: 0;
200
+ padding-right: 198px;
201
+
202
+ .desc{
203
+ }
204
+
205
+ .list{
206
+ margin-top: 48px;
207
+ list-style: none;
208
+
209
+ li{
210
+ margin-bottom: 12px;
211
+
212
+ .listWrapper{
213
+ display: flex;
214
+ align-items: center;
215
+
216
+ svg{
217
+ flex-shrink: 0;
218
+ margin-right: 8px;
219
+ }
220
+
221
+ }
222
+
223
+ &:last-child{
224
+ margin-bottom: 0px;
225
+ }
226
+
227
+ }
228
+
229
+ }
230
+
231
+ }
232
+
233
+ }
234
+
235
+ @media screen and (min-width: 992px){
236
+
237
+ &Wrapper{
238
+ margin: 0 -52px;
239
+ }
240
+
241
+ .imageWrapper{
242
+ width: 50%;
243
+ padding: 0 52px;
244
+ margin-top: 0px;
245
+ }
246
+
247
+
248
+ .content{
249
+ width: 50%;
250
+ padding: 0 52px;
251
+ }
252
+
253
+ &.left{
254
+ .imageContentWrapper {
255
+ flex-direction: row;
256
+ }
257
+ }
258
+
259
+ &.right{
260
+ .imageContentWrapper {
261
+ flex-direction: row-reverse;
262
+ }
263
+ }
264
+
265
+
266
+ &.maskedImageContent{
267
+ .imageContentWrapper{
268
+ margin: 0 -44px;
269
+ }
270
+
271
+ .imageWrapper, .content{
272
+ padding: 0 44px;
273
+ }
274
+ }
275
+
276
+ }
277
+
278
+ }
@@ -0,0 +1,37 @@
1
+ import React from "react";
2
+ import { Meta, StoryObj } from "@storybook/react-vite";
3
+ import IntroBlock from "./IntroBlock";
4
+ import ElementHolder from "../../Shared/ElementHolder/ElementHolder";
5
+
6
+ const meta: Meta = {
7
+ title: "DataDisplay / IntroBlock",
8
+ component: IntroBlock,
9
+ parameters: {
10
+ layout: 'fullscreen',
11
+ },
12
+ tags: ["autodocs"],
13
+ };
14
+
15
+ export default meta;
16
+
17
+ type Story = StoryObj<typeof meta>;
18
+
19
+ const IntroBlockTemplate: Story = {
20
+ render: () => {
21
+ return (
22
+ <ElementHolder paddingTop="sm" paddingBottom="sm" piller="visit" level="light">
23
+ <IntroBlock
24
+ introHeading={'A district that’s growing, grounded, and full of opportunity.'}
25
+ introText={'From the Southern Alps to the sea, Waikirikiri Selwyn’s diverse towns arespread across the Canterbury Plains between two mighty braided rivers. This is where ideas take root, families and businesses grow, and communities come together. We don’t just dream of a better future, we make it happen.'}
26
+ />
27
+ </ElementHolder>
28
+ )
29
+ }
30
+ }
31
+
32
+ export const IntroBlockComponent = {
33
+ ...IntroBlockTemplate
34
+ };
35
+
36
+
37
+