@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,37 @@
1
+ import Container from "../../Shared/Container/Container"
2
+ import IntroBlockProps from "./IntroBlockProps"
3
+ import styles from "./introBlock.module.scss"
4
+
5
+ const IntroBlock = (props: IntroBlockProps) => {
6
+ const {
7
+ introHeading,
8
+ introText,
9
+ extraClass
10
+ } = props
11
+
12
+ return (
13
+ <div className={`${styles.introBlock} ${extraClass}`}>
14
+ <Container>
15
+ <div className={styles.introBlockWrapper}>
16
+ <div className={styles.introBlockLeft}>
17
+ <h1>
18
+ {introHeading}
19
+ </h1>
20
+ </div>
21
+
22
+ <div className={styles.introBlockVerticalLine}></div>
23
+
24
+ <div className={styles.introBlockRight}>
25
+ <h1>
26
+ {introText}
27
+ </h1>
28
+ </div>
29
+
30
+ </div>
31
+ </Container>
32
+ </div>
33
+
34
+ )
35
+ }
36
+
37
+ export default IntroBlock
@@ -0,0 +1,10 @@
1
+ import { ReactNode } from "react"
2
+
3
+ interface IntroBlockProps {
4
+ introHeading?: string
5
+ introText?: string
6
+ children?: ReactNode
7
+ extraClass?: string
8
+ }
9
+
10
+ export default IntroBlockProps
@@ -0,0 +1,33 @@
1
+ .introBlock {
2
+
3
+ .introBlockWrapper {
4
+ display: flex;
5
+ flex-grow: 1;
6
+ margin: 0 -72px;
7
+
8
+ .introBlockLeft {
9
+ width: 50%;
10
+ padding: 0 72px;
11
+ h1 {
12
+ font-size: var(--font-size-h4);
13
+ line-height: var(--line-height-h4);
14
+ font-weight: var(--font-weight-h4);
15
+ }
16
+ }
17
+
18
+ .introBlockRight {
19
+ width: 50%;
20
+ padding: 0 72px;
21
+ h1 {
22
+ font-size: var(--font-size-small);
23
+ line-height: var(--line-height-label);
24
+ font-weight: var(--font-weight-body-regular);
25
+ }
26
+ }
27
+
28
+ .introBlockVerticalLine {
29
+ background: var(--color-text);
30
+ width: 1px;
31
+ }
32
+ }
33
+ }
@@ -0,0 +1,114 @@
1
+ import React from "react"
2
+ import { Meta, StoryObj } from "@storybook/react-vite";
3
+ import KPIBlock from "./KPIBlock";
4
+
5
+ const meta: Meta = {
6
+ title: "Layout / KPIBlock",
7
+ component: KPIBlock,
8
+ parameters: {
9
+ layout: 'fullscreen',
10
+ },
11
+ tags: ["autodocs"]
12
+ }
13
+
14
+ export default meta;
15
+
16
+ type Story = StoryObj<typeof meta>;
17
+
18
+ const KPIBlockTemplate: Story = {
19
+ render: () => {
20
+
21
+ return (
22
+ <>
23
+ <KPIBlock
24
+ title={'Insights lorem ipsum dolor sit amet'}
25
+ description={'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.'}
26
+ stats={[
27
+ {
28
+ value: '500',
29
+ description: 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.',
30
+ },
31
+ {
32
+ value: '+75%',
33
+ description: 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.',
34
+ },
35
+ {
36
+ value: '6,789',
37
+ description: 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.',
38
+ },
39
+ {
40
+ value: '$1M',
41
+ description: 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.',
42
+ },
43
+ ]}
44
+ />
45
+ </>
46
+ )
47
+ }
48
+ }
49
+
50
+ const KPIBlockBusinessTemplate: Story = {
51
+ render: () => {
52
+
53
+ return (
54
+ <>
55
+ <KPIBlock
56
+ title={'Business Growth Statistics'}
57
+ description={'Our comprehensive approach to business development has yielded impressive results across multiple sectors.'}
58
+ stats={[
59
+ {
60
+ value: '1,200',
61
+ description: 'New businesses established in the region this year',
62
+ },
63
+ {
64
+ value: '+45%',
65
+ description: 'Increase in commercial property development',
66
+ },
67
+ {
68
+ value: '15,000',
69
+ description: 'New jobs created across various industries',
70
+ },
71
+ ]}
72
+ pillar={'business'}
73
+ />
74
+ </>
75
+ )
76
+ }
77
+ }
78
+
79
+ const KPIBlockParticipateTemplate: Story = {
80
+ render: () => {
81
+
82
+ return (
83
+ <>
84
+ <KPIBlock
85
+ title={'Community Engagement'}
86
+ description={'Active participation from our community members continues to grow year over year.'}
87
+ stats={[
88
+ {
89
+ value: '3,500',
90
+ description: 'Active volunteers contributing to community projects',
91
+ },
92
+ {
93
+ value: '+92%',
94
+ description: 'Growth in event participation since last year',
95
+ },
96
+ ]}
97
+ pillar={'participate'}
98
+ />
99
+ </>
100
+ )
101
+ }
102
+ }
103
+
104
+ export const KPIBlockComponent = {
105
+ ...KPIBlockTemplate
106
+ };
107
+
108
+ export const KPIBlockBusinessComponent = {
109
+ ...KPIBlockBusinessTemplate
110
+ };
111
+
112
+ export const KPIBlockParticipateComponent = {
113
+ ...KPIBlockParticipateTemplate
114
+ };
@@ -0,0 +1,35 @@
1
+ import KPIBlockProps from "./KPIBlockProps.tsx";
2
+ import styles from './kpiBlock.module.scss';
3
+ import Container from "../../Shared/Container/Container.tsx";
4
+
5
+ const KPIBlock = (props: KPIBlockProps) => {
6
+ const {
7
+ title,
8
+ description,
9
+ stats = [],
10
+ pillar = 'visit'
11
+ } = props;
12
+
13
+ return (
14
+ <div className={`${styles.kpi} ${pillar ? pillar : ""}`}>
15
+ <Container>
16
+ <div className={styles.kpiWrapper}>
17
+ <div className={styles.header}>
18
+ {title && <h2>{title}</h2>}
19
+ {description && <p>{description}</p>}
20
+ </div>
21
+ <div className={styles.stats}>
22
+ {stats.map((stat, index) => (
23
+ <div key={index} className={styles.statItem}>
24
+ <div className={styles.value}>{stat.value}</div>
25
+ <div className={styles.description}>{stat.description}</div>
26
+ </div>
27
+ ))}
28
+ </div>
29
+ </div>
30
+ </Container>
31
+ </div>
32
+ );
33
+ };
34
+
35
+ export default KPIBlock;
@@ -0,0 +1,13 @@
1
+ interface KPIItem {
2
+ value: string;
3
+ description: string;
4
+ }
5
+
6
+ interface KPIBlockProps {
7
+ title?: string;
8
+ description?: string;
9
+ stats?: KPIItem[];
10
+ pillar?: 'visit' | 'live' | 'business' | 'participate' | 'taste' | 'main';
11
+ }
12
+
13
+ export default KPIBlockProps;
@@ -0,0 +1,73 @@
1
+ .kpi {
2
+ //background: var(--color-live);
3
+ //padding: 80px 0;
4
+ color: var(--bg-modal-color);
5
+
6
+ .kpiWrapper {
7
+ display: flex;
8
+ flex-direction: inherit;
9
+ align-items: start;
10
+
11
+
12
+ .header {
13
+ flex: 0 0 40%;
14
+ margin-right: 90px;
15
+
16
+ h2 {
17
+ font-size: var(--font-size-h4);
18
+ font-weight: var(--font-weight-h5);
19
+ letter-spacing: -1.92px;
20
+ margin-bottom: 72px;
21
+ color: var(--color-business);
22
+ }
23
+
24
+ p {
25
+ font-size: var(--font-size-body-regular);
26
+ line-height: var(--line-height-body-regular);
27
+ font-weight: var(--font-weight-body-sm);
28
+ color: var(--color-business);
29
+ }
30
+ }
31
+
32
+ .stats {
33
+ flex: 0 0 60%;
34
+ display: flex;
35
+ flex-direction: column;
36
+ max-width: 884px;
37
+ gap:48px;
38
+
39
+ .statItem {
40
+ display: flex;
41
+ padding-bottom: 48px;
42
+ border-bottom: 1px solid var(--color-business);
43
+
44
+
45
+ &:last-child {
46
+ border-bottom: none;
47
+ padding-bottom: 0;
48
+ }
49
+
50
+ .value {
51
+ flex: 0 0 200px;
52
+ font-size: var(--font-size-h3);
53
+ line-height: var(--line-height-h3);
54
+ font-weight: var(--font-weight-h5);
55
+ color: var(--color-business);
56
+ letter-spacing: -3.6px;
57
+ min-width: 230px;
58
+ }
59
+
60
+ .description {
61
+ flex: 1;
62
+ font-size: var(--font-size-body-regular);
63
+ line-height: var(--line-height-body-regular);
64
+ font-weight: var(--font-weight-body-sm);
65
+ color: var(--color-business);
66
+ display: flex;
67
+ align-items: center;
68
+ padding-left: 24px;
69
+ }
70
+ }
71
+ }
72
+ }
73
+ }
@@ -0,0 +1,27 @@
1
+ import type { Meta, StoryObj } from '@storybook/react-vite';
2
+ import Pathway from './Pathway';
3
+ import { FaArrowRight } from "react-icons/fa";
4
+
5
+ const meta : Meta<typeof Pathway> = {
6
+ title: "Form / Pathway",
7
+ component: Pathway,
8
+
9
+ }
10
+
11
+ export default meta;
12
+ type Story = StoryObj<typeof Pathway>
13
+
14
+ export const grid: Story = {
15
+ args: {
16
+ title: "This is a card title that is quite long and probably wraps over a few lines",
17
+ link: '#',
18
+ filters: ["all", "adventure", "ski", "nature", "city"],
19
+ cards: [
20
+ { title: "Ballooning Canterbury", link: "#", image: "./img/card-one.png", category: "adventure" },
21
+ { title: "Ski Resort", link: "#", image: "./img/card-two.png", category: "ski" },
22
+ { title: "Nature Walk", link: "#", image: "./img/card-three.png", category: "nature" },
23
+ { title: "City Tour", link: "#", image: "./img/card-four.png" }
24
+ ]
25
+
26
+ },
27
+ };
@@ -0,0 +1,83 @@
1
+ import cx from "classnames";
2
+ import PathwayProps from './PathwayProps';
3
+ import styles from "./pathway.module.scss";
4
+ import cslx from "clsx";
5
+ import ElementHolder from "../../Shared/ElementHolder/ElementHolder";
6
+ import Container from "../../Shared/Container/Container";
7
+ import DetailsCard from "../DetailsCard/DetailsCard";
8
+ import { CaretDown } from "../../Icons";
9
+ import { useState } from "react";
10
+
11
+ const Pathway = (props:PathwayProps) => {
12
+ const {
13
+ title = '',
14
+ description = '',
15
+ variation = 'grid',
16
+ cards = [],
17
+ filters = ["all", "adventure", "ski", "nature"],
18
+ } = props
19
+
20
+ const [activeFilter, setActiveFilter] = useState("all");
21
+
22
+ const filterCards = (category: string | undefined) => {
23
+ if (!category) return activeFilter === "all";
24
+ if (activeFilter === "all") return true;
25
+ return category.toLowerCase() === activeFilter;
26
+ };
27
+
28
+
29
+ const classes = [styles.pathway, "pathway", variation === "carousel" && styles.pathwayCarousel];
30
+
31
+ return (
32
+ <ElementHolder paddingTop="none" level="light">
33
+ <Container>
34
+ {variation === "carousel" ? (
35
+ <div className={cx(classes)}>{/* TODO */}</div>
36
+ ) : (
37
+ <div className={cslx(classes)}>
38
+ <div className={styles.pathwayTitle}><h3>{title}</h3></div>
39
+ <div className={styles.pathwayDescription}><p>{description}</p></div>
40
+
41
+ <div className={`${styles.pathwayFilters} ${styles.pathwayFilterDesktop}`}>
42
+ <ul>
43
+ {filters.map((cat) => (
44
+ <li
45
+ key={cat}
46
+ className={activeFilter === cat ? styles.active : ""}
47
+ onClick={() => setActiveFilter(cat)}
48
+ >
49
+ <span>{cat === "all" ? "All Attractions" : cat.charAt(0).toUpperCase() + cat.slice(1)}</span>
50
+ </li>
51
+ ))}
52
+ </ul>
53
+ </div>
54
+
55
+ <div className={`${styles.pathwayFilters} ${styles.pathwayFilterMobile}`}>
56
+ <select onChange={(e) => setActiveFilter(e.target.value.toLowerCase())}>
57
+ {filters.map((cat) => (
58
+ <option key={cat} value={cat}>
59
+ {cat === "all" ? "All Attractions" : cat.charAt(0).toUpperCase() + cat.slice(1)}
60
+ </option>
61
+ ))}
62
+ </select>
63
+ <CaretDown />
64
+ </div>
65
+
66
+ {/* Cards */}
67
+ <div className={styles.pathwayCards}>
68
+ <div className={styles.pathwayCardsWrap}>
69
+ {cards.filter((c) => filterCards(c.category)).map((card, idx) => (
70
+ <div key={idx} className={styles.pathwayCard}>
71
+ <DetailsCard {...card} />
72
+ </div>
73
+ ))}
74
+ </div>
75
+ </div>
76
+ </div>
77
+ )}
78
+ </Container>
79
+ </ElementHolder>
80
+ );
81
+ };
82
+
83
+ export default Pathway;
@@ -0,0 +1,17 @@
1
+ export interface Card {
2
+ title: string;
3
+ link: string;
4
+ image: string;
5
+ category?: 'adventure' | 'ski' | 'nature';
6
+ }
7
+
8
+ interface PathwayProps {
9
+ title?: string;
10
+ description?: string;
11
+ variation?: 'grid' | 'carousel';
12
+ link?: string;
13
+ cards?: Card[];
14
+ filters?: string[];
15
+ }
16
+
17
+ export default PathwayProps;
@@ -0,0 +1,124 @@
1
+ .pathwayTitle {
2
+ margin-bottom: 36px;
3
+ h3 {
4
+ font-size: var(--font-size-h3);
5
+ line-height: var(--line-height-h3);
6
+ font-weight: var(--font-weight-bold);
7
+ }
8
+ }
9
+
10
+ .pathwayDescription {
11
+ margin-bottom: 36px;
12
+ p {
13
+ font-size: var(--font-size-h5);
14
+ line-height: 1.2;
15
+ }
16
+ }
17
+
18
+ .pathwayFilters {
19
+ margin-bottom: 48px;
20
+ ul {
21
+ list-style: none;
22
+ display: flex;
23
+ margin: 0 -8px;
24
+
25
+ li {
26
+ cursor: pointer;
27
+ padding: 0 8px;
28
+
29
+ &.active {
30
+ span {
31
+ color: var(--pathway-card-hover-text);
32
+ background-color: var(--pathway-card-hover-bg);
33
+ }
34
+ }
35
+
36
+ span {
37
+ padding: 20px 32px;
38
+ border: 1px solid var(--pathway-card-border);
39
+ border-radius: 48px;
40
+ max-height: 51px;
41
+ display: inline-flex;
42
+ align-items: center;
43
+ font-weight: var(--font-weight-bold);
44
+ }
45
+ }
46
+
47
+ }
48
+ }
49
+
50
+ .pathwayCard {
51
+ margin-bottom: 32px;
52
+
53
+ &:last-child {
54
+ margin-bottom: 0;
55
+ }
56
+ }
57
+
58
+ .pathwayFilterDesktop {
59
+ display: none;
60
+ }
61
+
62
+ .pathwayFilterMobile {
63
+ position: relative;
64
+ select {
65
+ width: 100%;
66
+ min-height: 51px;
67
+ padding: 16px;
68
+ appearance: none;
69
+ -webkit-appearance: none;
70
+ -moz-appearance: none;
71
+ cursor: pointer;
72
+ border: 1px solid var(--pathway-card-border);
73
+ color: var(--pathway-card-text);
74
+ font-size: var(--font-size-label);
75
+
76
+ &:focus {
77
+ outline: 0;
78
+ }
79
+ }
80
+
81
+ svg {
82
+ position: absolute;
83
+ top: 50%;
84
+ right: 0;
85
+ transform: translate(-50%, -50%);
86
+ width: 24px;
87
+ height: 24px;
88
+ pointer-events: none;
89
+
90
+ }
91
+ }
92
+
93
+ @media (min-width: 760px) {
94
+ .pathwayTitle {
95
+ margin-bottom: 72px;
96
+ }
97
+
98
+ .pathwayDescription {
99
+ margin-bottom: 72px;
100
+ }
101
+
102
+ .pathwayFilters {
103
+ margin-bottom: 96px;
104
+ }
105
+
106
+ .pathwayCardsWrap {
107
+ display: flex;
108
+ flex-wrap: wrap;
109
+ margin: 0 -16px;
110
+ }
111
+
112
+ .pathwayCard {
113
+ width: 33.33%;
114
+ padding: 0 16px;
115
+ }
116
+
117
+ .pathwayFilterDesktop {
118
+ display: block;
119
+ }
120
+
121
+ .pathwayFilterMobile {
122
+ display: none;
123
+ }
124
+ }
@@ -0,0 +1,45 @@
1
+ import React from "react";
2
+ import { Meta, StoryObj } from "@storybook/react";
3
+ import PromoBannerBlock from './PromoBannerBlock';
4
+ import Button from '../../Form/Button/Button';
5
+ import ArrowRight from "../../Icons/Arrows/ArrowRight/ArrowRight";
6
+ import ElementHolder from "../../Shared/ElementHolder/ElementHolder";
7
+
8
+ const meta: Meta = {
9
+ title: "DataDisplay / PromoBannerBlock",
10
+ parameters: {
11
+ layout: 'fullscreen',
12
+ },
13
+ tags: ["autodocs"],
14
+ }
15
+
16
+ export default meta;
17
+
18
+ type Story = StoryObj<typeof meta>;
19
+
20
+ const PromoBannerBlockTemplate: Story = {
21
+ render: () => {
22
+ return (
23
+ <ElementHolder paddingTop="none" paddingBottom="none" piller="visit" level="primary">
24
+ <PromoBannerBlock
25
+ IntroTitle={'A district that’s growing, grounded, and full of opportunity.'}
26
+ 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.'}
27
+ BrandPiller={'visit-brand-piller.svg'}
28
+ PillerTitle={'Visit'}
29
+ Title={'Spring gardens'}
30
+ BoldTitle={'in Selwyn'}
31
+ Content={'Visit Selwyn is for those who like to take the back roads, breathe mountain air, and find their own pace. Stay a little longer, explore deeper, and refuel with great kai and local stories along the way.'}
32
+ Image={'promo-banner-image.svg'}
33
+ Button={
34
+ <Button label={'START EXPLORING'} piller={'visit'} level={'primary'} icon={<ArrowRight />} />
35
+ }
36
+
37
+ />
38
+ </ElementHolder>
39
+ )
40
+ }
41
+ }
42
+
43
+ export const PromoBannerBlockComponent = {
44
+ ...PromoBannerBlockTemplate
45
+ }
@@ -0,0 +1,74 @@
1
+ import Container from "../../Shared/Container/Container"
2
+ import PromoBannerBlockProps from "./PromoBannerBlockProps"
3
+ import PromoBannerBgDesign from "./promo-banner-bg-design"
4
+ import styles from "./promoBanner.module.scss"
5
+
6
+ const PromoBannerBlock = (props: PromoBannerBlockProps) => {
7
+ const {
8
+ IntroTitle,
9
+ IntroText,
10
+ BrandPiller,
11
+ PillerTitle = "visit",
12
+ Title,
13
+ BoldTitle,
14
+ Content,
15
+ Image,
16
+ Button,
17
+ extraClass,
18
+ } = props
19
+
20
+ return (
21
+ <div className={styles.promoBannerBlock}>
22
+ <Container>
23
+ <div className={`${styles.promoBlockWrapper} ${extraClass}`}>
24
+ <div className={styles.promoBannerBlockContainer}>
25
+
26
+ <div className={styles.promoBannerTop}>
27
+ <div className={styles.promoBannerTopLeft}>
28
+ <h1>
29
+ {IntroTitle}
30
+ </h1>
31
+ </div>
32
+
33
+ <div className={styles.promoBannerVerticalLine}></div>
34
+
35
+ <div className={styles.promoBannerTopRight}>
36
+ <h1>
37
+ {IntroText}
38
+ </h1>
39
+ </div>
40
+
41
+ <div className={styles.promoBannerBgDesignContainer}>
42
+ <PromoBannerBgDesign />
43
+ </div>
44
+ </div>
45
+
46
+ <div className={styles.promoBannerBottom}>
47
+ <div className={styles.promoBannerBottomLeft}>
48
+ <div className={styles.promoBannerBrandPiller}>
49
+ <img src={`./img/${BrandPiller}`} alt="" />
50
+ {PillerTitle}
51
+ </div>
52
+
53
+ <div className={styles.promoBannerTitleContainer}>
54
+ <h1>{Title}</h1>
55
+ <h2>{BoldTitle}</h2>
56
+ </div>
57
+
58
+ <p>{Content}</p>
59
+
60
+ {Button}
61
+ </div>
62
+
63
+ <div className={styles.promoBannerBottomRight}>
64
+ <img src={`./img/${Image}`} alt="" />
65
+ </div>
66
+ </div>
67
+ </div>
68
+ </div>
69
+ </Container>
70
+ </div>
71
+ )
72
+ }
73
+
74
+ export default PromoBannerBlock;