@hellobetterdigitalnz/selwynui 0.0.1-58 → 0.0.1-59

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 (96) hide show
  1. package/dist/Components/DataDisplay/BrandBuilderTool/BrandBuilderTool.d.ts +3 -0
  2. package/dist/Components/DataDisplay/BrandBuilderTool/BrandBuilderToolMain/BrandBuilderToolMain.d.ts +3 -0
  3. package/dist/Components/DataDisplay/BrandBuilderTool/BrandBuilderToolMain/BrandBuilderToolMainProps.d.ts +5 -0
  4. package/dist/Components/DataDisplay/BrandBuilderTool/BrandBuilderToolProps.d.ts +7 -0
  5. package/dist/Components/DataDisplay/BrandBuilderTool/BrandBuilderToolTemplate/BrandBuilderToolTemplateItem.d.ts +3 -0
  6. package/dist/Components/DataDisplay/BrandBuilderTool/BrandBuilderToolTemplate/BrandBuilderToolTemplateItemProps.d.ts +8 -0
  7. package/dist/Components/DataDisplay/BrandBuilderTool/BrandBuilderToolTemplate/BrandBuilderToolTemplateSelector.d.ts +3 -0
  8. package/dist/Components/DataDisplay/BrandBuilderTool/BrandBuilderToolTemplate/BrandBuilderToolTemplateSelectorProps.d.ts +6 -0
  9. package/dist/Components/DataDisplay/BrandBuilderTool/BrandBuilderToolUploader/BrandBuilderToolUploader.d.ts +3 -0
  10. package/dist/Components/DataDisplay/BrandBuilderTool/BrandBuilderToolUploader/BrandBuilderToolUploaderProps.d.ts +6 -0
  11. package/dist/Components/DataDisplay/BrandBuilderTool/BrandBuilderToolWrapper/BrandBuilderToolWrapper.d.ts +3 -0
  12. package/dist/Components/DataDisplay/BrandBuilderTool/BrandBuilderToolWrapper/BrandBuilderToolWrapperProps.d.ts +6 -0
  13. package/dist/Components/DataDisplay/BrandBuilderTool/BrandbuilderToolPreview/BrandBuilderToolPreview.d.ts +3 -0
  14. package/dist/Components/DataDisplay/BrandBuilderTool/BrandbuilderToolPreview/BrandBuilderToolPreviewProps.d.ts +6 -0
  15. package/dist/Components/DataDisplay/ContactsBlock/ContactItemProps.d.ts +1 -0
  16. package/dist/Components/DataDisplay/ListingDetailBlock/ListingDetailBlock.d.ts +1 -1
  17. package/dist/Components/DataDisplay/ListingDetailBlock/ListingDetailBlockProps.d.ts +1 -1
  18. package/dist/Components/DataDisplay/Modal/Modal.d.ts +3 -0
  19. package/dist/Components/DataDisplay/Modal/ModalActions.d.ts +3 -0
  20. package/dist/Components/DataDisplay/Modal/ModalActionsLeft.d.ts +3 -0
  21. package/dist/Components/DataDisplay/Modal/ModalActionsLeftProps.d.ts +6 -0
  22. package/dist/Components/DataDisplay/Modal/ModalActionsProps.d.ts +6 -0
  23. package/dist/Components/DataDisplay/Modal/ModalActionsRight.d.ts +3 -0
  24. package/dist/Components/DataDisplay/Modal/ModalActionsRightProps.d.ts +6 -0
  25. package/dist/Components/DataDisplay/Modal/ModalBody.d.ts +3 -0
  26. package/dist/Components/DataDisplay/Modal/ModalBodyProps.d.ts +6 -0
  27. package/dist/Components/DataDisplay/Modal/ModalCurtain.d.ts +2 -0
  28. package/dist/Components/DataDisplay/Modal/ModalHeader.d.ts +3 -0
  29. package/dist/Components/DataDisplay/Modal/ModalHeaderProps.d.ts +9 -0
  30. package/dist/Components/DataDisplay/Modal/ModalProps.d.ts +7 -0
  31. package/dist/Components/DataDisplay/index.d.ts +28 -0
  32. package/dist/Components/SelwynUIProvider/SelwynUIContext.d.ts +9 -0
  33. package/dist/Components/SelwynUIProvider/SelwynUIProvider.d.ts +6 -0
  34. package/dist/Components/SelwynUIProvider/index.d.ts +2 -0
  35. package/dist/Components/index.d.ts +1 -0
  36. package/dist/index.cjs.js +250 -15
  37. package/dist/index.cjs.js.map +1 -1
  38. package/dist/index.es.js +41326 -5453
  39. package/dist/index.es.js.map +1 -1
  40. package/dist/selwynui.css +1 -1
  41. package/package.json +1 -1
  42. package/src/Components/DataDisplay/BrandBuilderTool/BrandBuilderTool.stories.tsx +53 -0
  43. package/src/Components/DataDisplay/BrandBuilderTool/BrandBuilderTool.tsx +23 -0
  44. package/src/Components/DataDisplay/BrandBuilderTool/BrandBuilderToolMain/BrandBuilderToolMain.tsx +13 -0
  45. package/src/Components/DataDisplay/BrandBuilderTool/BrandBuilderToolMain/BrandBuilderToolMainProps.tsx +7 -0
  46. package/src/Components/DataDisplay/BrandBuilderTool/BrandBuilderToolProps.tsx +9 -0
  47. package/src/Components/DataDisplay/BrandBuilderTool/BrandBuilderToolTemplate/BrandBuilderToolTemplateItem.tsx +17 -0
  48. package/src/Components/DataDisplay/BrandBuilderTool/BrandBuilderToolTemplate/BrandBuilderToolTemplateItemProps.tsx +10 -0
  49. package/src/Components/DataDisplay/BrandBuilderTool/BrandBuilderToolTemplate/BrandBuilderToolTemplateSelector.tsx +26 -0
  50. package/src/Components/DataDisplay/BrandBuilderTool/BrandBuilderToolTemplate/BrandBuilderToolTemplateSelectorProps.tsx +8 -0
  51. package/src/Components/DataDisplay/BrandBuilderTool/BrandBuilderToolUploader/BrandBuilderToolUploader.tsx +30 -0
  52. package/src/Components/DataDisplay/BrandBuilderTool/BrandBuilderToolUploader/BrandBuilderToolUploaderProps.tsx +8 -0
  53. package/src/Components/DataDisplay/BrandBuilderTool/BrandBuilderToolWrapper/BrandBuilderToolWrapper.tsx +17 -0
  54. package/src/Components/DataDisplay/BrandBuilderTool/BrandBuilderToolWrapper/BrandBuilderToolWrapperProps.tsx +8 -0
  55. package/src/Components/DataDisplay/BrandBuilderTool/BrandbuilderToolPreview/BrandBuilderToolPreview.tsx +25 -0
  56. package/src/Components/DataDisplay/BrandBuilderTool/BrandbuilderToolPreview/BrandBuilderToolPreviewProps.tsx +8 -0
  57. package/src/Components/DataDisplay/BrandBuilderTool/brandBuilder.module.scss +193 -0
  58. package/src/Components/DataDisplay/ContactsBlock/ContactItem.tsx +36 -27
  59. package/src/Components/DataDisplay/ContactsBlock/ContactItemProps.tsx +6 -5
  60. package/src/Components/DataDisplay/ContactsBlock/ContactsBlock.stories.tsx +13 -1
  61. package/src/Components/DataDisplay/ContactsBlock/contactsBlock.module.scss +151 -127
  62. package/src/Components/DataDisplay/ContentBlock/ContentBlock.stories.tsx +1 -1
  63. package/src/Components/DataDisplay/ImageContent/ImageContent.stories.tsx +1 -1
  64. package/src/Components/DataDisplay/KPIBlock/KPIBlock.stories.tsx +1 -1
  65. package/src/Components/DataDisplay/ListBlock/ListBlock.stories.tsx +1 -1
  66. package/src/Components/DataDisplay/ListingDetailBlock/ListingDetailBlock.stories.tsx +2 -2
  67. package/src/Components/DataDisplay/ListingDetailBlock/ListingDetailBlock.tsx +7 -7
  68. package/src/Components/DataDisplay/ListingDetailBlock/ListingDetailBlockProps.tsx +1 -1
  69. package/src/Components/DataDisplay/Media/Media.stories.tsx +1 -1
  70. package/src/Components/DataDisplay/Media/Media.tsx +0 -2
  71. package/src/Components/DataDisplay/Modal/Modal.stories.tsx +89 -0
  72. package/src/Components/DataDisplay/Modal/Modal.tsx +16 -0
  73. package/src/Components/DataDisplay/Modal/ModalActions.tsx +14 -0
  74. package/src/Components/DataDisplay/Modal/ModalActionsLeft.tsx +13 -0
  75. package/src/Components/DataDisplay/Modal/ModalActionsLeftProps.tsx +8 -0
  76. package/src/Components/DataDisplay/Modal/ModalActionsProps.tsx +8 -0
  77. package/src/Components/DataDisplay/Modal/ModalActionsRight.tsx +14 -0
  78. package/src/Components/DataDisplay/Modal/ModalActionsRightProps.tsx +8 -0
  79. package/src/Components/DataDisplay/Modal/ModalBody.tsx +14 -0
  80. package/src/Components/DataDisplay/Modal/ModalBodyProps.tsx +8 -0
  81. package/src/Components/DataDisplay/Modal/ModalCurtain.tsx +6 -0
  82. package/src/Components/DataDisplay/Modal/ModalHeader.tsx +55 -0
  83. package/src/Components/DataDisplay/Modal/ModalHeaderProps.tsx +10 -0
  84. package/src/Components/DataDisplay/Modal/ModalProps.tsx +9 -0
  85. package/src/Components/DataDisplay/Modal/modal.module.scss +178 -0
  86. package/src/Components/DataDisplay/PathwayBlock/PathwayBlock.stories.tsx +1 -1
  87. package/src/Components/DataDisplay/TestimonyCard/TestimonyCard.stories.tsx +1 -1
  88. package/src/Components/DataDisplay/TestimonyCard/TestimonyCard.tsx +6 -5
  89. package/src/Components/DataDisplay/TestimonyCard/testimonyCard.module.scss +22 -5
  90. package/src/Components/DataDisplay/index.ts +36 -1
  91. package/src/Components/SelwynUIProvider/SelwynUIContext.tsx +16 -0
  92. package/src/Components/SelwynUIProvider/SelwynUIProvider.tsx +46 -0
  93. package/src/Components/SelwynUIProvider/index.ts +2 -0
  94. package/src/Components/index.ts +1 -0
  95. package/src/Components/DataDisplay/ListingDetailBlock/listingDetailBlock.module.scss~ +0 -248
  96. package/src/Components/DataDisplay/PathwayBlock/PathwayBlock.stories.tsx~ +0 -80
@@ -0,0 +1,10 @@
1
+ interface ModalHeaderProps {
2
+ title?: string;
3
+ extraClass?: string;
4
+ canClose?: boolean;
5
+ canGoBack?: boolean;
6
+ closeOnclick?: (e:any) => void;
7
+ canGoBackOnclick?: (e:any) => void;
8
+ }
9
+
10
+ export default ModalHeaderProps;
@@ -0,0 +1,9 @@
1
+ import { ReactNode } from "react";
2
+
3
+ interface ModalProps {
4
+ children?: ReactNode;
5
+ extraClass?: string;
6
+ pillar?: 'main' | 'live' | 'visit' | 'taste' | 'business' | 'participate'
7
+ }
8
+
9
+ export default ModalProps;
@@ -0,0 +1,178 @@
1
+ .holder {
2
+ position: fixed;
3
+ z-index: 999999;
4
+ top: 0;
5
+ left: 0;
6
+ padding: calc(var(--space-unit) * 10) calc(var(--space-unit) * 5);
7
+ display: flex;
8
+ justify-content: center;
9
+ align-items: center;
10
+ width: 100vw;
11
+ height: 100vh;
12
+ backdrop-filter: blur(4px);
13
+
14
+ &:before {
15
+ content: ' ';
16
+ display: block;
17
+ background: var(--popup-holder-bg);
18
+ position: absolute;
19
+ top: 0;
20
+ left: 0;
21
+ width: 100%;
22
+ height: 100%;
23
+ opacity: 0.6;
24
+ }
25
+ }
26
+
27
+ .modal {
28
+ position: relative;
29
+ width: 90%;
30
+ max-width: 800px;
31
+ max-height: 70vh;
32
+ box-shadow: var(--drop-shadow-default);
33
+ background: #EFEAE7;
34
+ border-radius: 8px;
35
+ display: flex;
36
+ color: var(--color-block-text);
37
+ overflow: clip;
38
+ }
39
+
40
+ .wrapper {
41
+ display: flex;
42
+ flex-direction: column;
43
+ width: 100%;
44
+ }
45
+
46
+ .modalHeader {
47
+ border-bottom: 1px solid #eee;
48
+ }
49
+
50
+ .modalHeaderWrapper {
51
+ display: flex;
52
+ align-items: center;
53
+ justify-content: space-between;
54
+ padding: calc(var(--space-unit) * 4) calc(var(--space-unit) * 6);
55
+
56
+ .heading {
57
+ h4 {
58
+ font-size: var(--font-size-h6);
59
+ font-weight: 700;
60
+ line-height: 1.3;
61
+ font-family: var(--font);
62
+ }
63
+
64
+ }
65
+
66
+ .icon {
67
+ display: flex;
68
+ align-items: center;
69
+ justify-content: center;
70
+ cursor: pointer;
71
+ transition: 0.3s ease-in;
72
+
73
+ &:hover {
74
+ transform: scale(1.05);
75
+ -webkit-transform: scale(1.2);
76
+ }
77
+
78
+ svg {
79
+ width: 20px;
80
+ height: 20px;
81
+ }
82
+ }
83
+ }
84
+
85
+ .modalBody {
86
+ padding: calc(var(--space-unit) * 6);
87
+ overflow: auto;
88
+
89
+ &::-webkit-scrollbar {
90
+ width: 4px;
91
+ z-index: 1000;
92
+ }
93
+
94
+ &::-webkit-scrollbar-track {
95
+ overflow: hidden;
96
+ }
97
+
98
+ &::-webkit-scrollbar-thumb {
99
+ border-radius: 2px;
100
+ background: rgba(0, 0, 0, 0.10);
101
+ overflow: hidden;
102
+ background-clip: padding-box;
103
+ }
104
+
105
+ }
106
+
107
+ .modalBodyWrapper {
108
+ min-height: 50px;
109
+ }
110
+
111
+ .modalAction {
112
+ display: flex;
113
+ align-items: center;
114
+ flex-wrap: wrap;
115
+ justify-content: space-between;
116
+ padding: calc(var(--space-unit) * 4) calc(var(--space-unit) * 6);
117
+ border-top: 1px solid #eee;
118
+ background: #FFFFFF;
119
+ }
120
+
121
+ .modalActionRight, .modalActionLeft {
122
+ display: flex;
123
+ align-items: center;
124
+ //flex-wrap: wrap;
125
+ margin: calc(var(--space-unit) * -1);
126
+
127
+ & > div {
128
+ padding: var(--space-unit);
129
+ }
130
+
131
+ @media (max-width: 992px) {
132
+ flex-direction: column;
133
+
134
+ & > div {
135
+ width: 100%;
136
+ }
137
+
138
+ button {
139
+ width: 100%;
140
+ height: 32px !important;
141
+ padding: calc(var(--space-unit) * 2) calc(var(--space-unit) * 4);
142
+ }
143
+
144
+ button span {
145
+ font-size: 14px;
146
+ }
147
+ }
148
+
149
+ }
150
+
151
+ .modalActionRight {
152
+
153
+ > div {
154
+ padding: 0 -4px;
155
+ }
156
+ }
157
+
158
+ .curtain {
159
+ position: fixed;
160
+ top: 0;
161
+ left: 0;
162
+ width: 100vw;
163
+ height: 100vh;
164
+ backdrop-filter: blur(4px);
165
+ z-index: 9999;
166
+
167
+ &:before {
168
+ content: ' ';
169
+ display: block;
170
+ background: var(--color-gray-200);
171
+ position: absolute;
172
+ top: 0;
173
+ left: 0;
174
+ width: 100%;
175
+ height: 100%;
176
+ opacity: 0.6;
177
+ }
178
+ }
@@ -5,7 +5,7 @@ import PathwayBlock from "./PathwayBlock";
5
5
  import ElementHolder from "../../Shared/ElementHolder/ElementHolder";
6
6
 
7
7
  const meta: Meta = {
8
- title: "Layout / PathwayBlock",
8
+ title: "DataDisplay / PathwayBlock",
9
9
  component: PathwayBlock,
10
10
  parameters: {
11
11
  layout: 'fullscreen',
@@ -5,7 +5,7 @@ import TestimonyCard from "./TestimonyCard";
5
5
  import ElementHolder from "../../Shared/ElementHolder/ElementHolder";
6
6
 
7
7
  const meta: Meta = {
8
- title: "Layout / TestimonyCard",
8
+ title: "DataDisplay / TestimonyCard",
9
9
  component: TestimonyCard,
10
10
  parameters: {
11
11
  layout: 'fullscreen',
@@ -17,7 +17,7 @@ const TestimonyCard = (props: TestimonyCardProps) => {
17
17
  speed: 900,
18
18
  slidesToShow: 1,
19
19
  slidesToScroll: 1,
20
- autoplay: true,
20
+ autoplay: false,
21
21
  autoplaySpeed: 5000,
22
22
  arrows: false,
23
23
  fade: true,
@@ -43,6 +43,7 @@ const TestimonyCard = (props: TestimonyCardProps) => {
43
43
  alt={`${testimony.author} testimonial`}
44
44
  />
45
45
  </div>
46
+
46
47
  <div className={styles.testimonyCardRight}>
47
48
  <div className={styles.testimonyContent}>
48
49
  <div className={styles.quoteIcon}>
@@ -52,7 +53,7 @@ const TestimonyCard = (props: TestimonyCardProps) => {
52
53
  <path d="M3.3652 27.0562C4.75277 33.6194 8.02648 36 13.4798 36C18.9331 36 23.1134 32.4847 23.1134 27.0562C23.1134 21.6276 18.6926 17.227 13.2393 17.227C7.78599 17.227 1.97764 20.493 3.3652 27.0562ZM3.3652 27.0562C1.97764 20.493 4.78431 13.7613 7.99019 9.54638C11.1961 5.33146 17.2399 2.24873 21.5318 3.16115M33.2533 27.0558C34.6408 33.619 37.9145 35.9997 43.3679 35.9997C48.8212 35.9997 53.0015 32.4844 53.0015 27.0558C53.0015 21.6273 48.5807 17.2267 43.1274 17.2267C37.674 17.2267 31.8657 20.4926 33.2533 27.0558ZM33.2533 27.0558C31.8657 20.4926 34.6724 13.761 37.8782 9.54606C41.0841 5.33115 47.1279 2.24841 51.4199 3.16083" stroke="currentColor" strokeWidth="6" strokeLinecap="round" strokeLinejoin="round"/>
53
54
  </svg>
54
55
  </div>
55
- <div>
56
+ <div className={styles.innerContents}>
56
57
  <h6>{testimony.testimony}</h6>
57
58
  <p className={styles.author}>— {testimony.author}</p>
58
59
  <ul className={styles.slickDots}>
@@ -60,9 +61,9 @@ const TestimonyCard = (props: TestimonyCardProps) => {
60
61
  <li key={index} className={currentSlide === index ? styles.active : ""}>
61
62
  <button onClick={() => sliderRef.current?.slickGoTo(index)}></button>
62
63
  {currentSlide === index && <div className={styles.svg}>
63
- <svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="0 0 20 20" fill="none">
64
- <circle cx="10" cy="10" r="8" fill="currentColor"/>
65
- </svg>
64
+ <svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="0 0 20 20" fill="none">
65
+ <circle cx="10" cy="10" r="8" fill="currentColor"/>
66
+ </svg>
66
67
  </div>}
67
68
  </li>
68
69
  ))}
@@ -6,28 +6,30 @@
6
6
 
7
7
  .testimonySlide {
8
8
  display: flex;
9
- align-items: center;
9
+ //align-items: center;
10
10
  outline: none;
11
11
  flex-direction: column;
12
12
  }
13
13
 
14
14
  .testimonyCardLeft {
15
+ display: flex;
15
16
  flex-shrink: 0;
16
17
  padding-right: 0;
17
- border-radius: 2px 2px 96px 2px;
18
18
  overflow: clip;
19
19
  width: 100%;
20
- margin: 0 -16px 36px -16px;
20
+ margin: 0 -16px 0 -16px;
21
21
 
22
22
  img {
23
23
  flex-shrink: 0;
24
24
  width: 100%;
25
25
  height: 333px;
26
26
  object-fit: cover;
27
+ border-radius: 2px 2px 96px 2px;
27
28
  }
28
29
  }
29
30
 
30
31
  .testimonyCardRight {
32
+
31
33
  p {
32
34
  font-size: 14px;
33
35
  font-weight: var(--font-weight-h5);
@@ -38,8 +40,10 @@
38
40
 
39
41
  .testimonyContent {
40
42
  display: flex;
41
- gap: 25px;
43
+ gap: 24px;
42
44
  align-items: flex-start;
45
+ height: 100%;
46
+ padding-top: 32px;
43
47
 
44
48
  @media (max-width: 834px) {
45
49
  flex-direction: column;
@@ -59,6 +63,16 @@
59
63
  }
60
64
  }
61
65
 
66
+ .innerContents{
67
+ display: flex;
68
+ flex-direction: column;
69
+ height: 100%;
70
+
71
+ p{
72
+ flex-grow: 1;
73
+ }
74
+ }
75
+
62
76
  h6 {
63
77
 
64
78
  font-size: var(--font-size-h6);
@@ -87,6 +101,9 @@
87
101
  display: flex;
88
102
  padding-top: 40px;
89
103
  margin: -8px;
104
+ //position: absolute;
105
+ //bottom: 24px;
106
+ //left: 458px;
90
107
 
91
108
  li{
92
109
  display: flex;
@@ -136,7 +153,7 @@
136
153
  .testimonyCardLeft {
137
154
  flex-shrink: 0;
138
155
  width: 333px;
139
- margin-right: 68px;
156
+ margin: 0 68px 0px 0px;
140
157
  }
141
158
  }
142
159
 
@@ -64,4 +64,39 @@ export type { default as ListBlockProps } from './ListBlock/ListBlockProps'
64
64
  // Carousel Block
65
65
 
66
66
  export { default as CarouselBlock } from './CarouselBlock/CarouselBlock.tsx'
67
- export type { default as CarouselBlockProps } from './CarouselBlock/CarouselBlockProps.tsx'
67
+ export type { default as CarouselBlockProps } from './CarouselBlock/CarouselBlockProps.tsx'
68
+
69
+ // Media Block
70
+ export { default as Media } from './Media/Media.tsx'
71
+ export type { default as MediaProps } from './Media/MediaProps.tsx'
72
+
73
+ // Modal
74
+ export {default as Modal} from './Modal/Modal';
75
+ export type { default as ModalProps } from './Modal/ModalProps';
76
+ export {default as ModalHeader} from './Modal/ModalHeader';
77
+ export type { default as ModalHeaderProps } from './Modal/ModalHeaderProps';
78
+ export {default as ModalBody} from './Modal/ModalBody';
79
+ export type { default as ModalBodyProps } from './Modal/ModalBodyProps';
80
+ export {default as ModalActions} from './Modal/ModalActions';
81
+ export type { default as ModalActionsProps } from './Modal/ModalActionsProps';
82
+ export {default as ModalActionsLeft} from './Modal/ModalActionsLeft';
83
+ export type { default as ModalActionsLeftProps } from './Modal/ModalActionsLeftProps';
84
+ export {default as ModalActionsRight} from './Modal/ModalActionsRight';
85
+ export type { default as ModalActionsRightProps } from './Modal/ModalActionsRightProps';
86
+
87
+
88
+ //BrandBuilder
89
+ export { default as BrandBuilderToolMain } from './BrandBuilderTool/BrandBuilderToolMain/BrandBuilderToolMain.tsx';
90
+ export type { default as BrandBuilderToolMainProps } from './BrandBuilderTool/BrandBuilderToolMain/BrandBuilderToolMainProps.tsx';
91
+ export { default as BrandBuilderToolPreview } from './BrandBuilderTool/BrandbuilderToolPreview/BrandBuilderToolPreview.tsx';
92
+ export type { default as BrandBuilderToolPreviewProps } from './BrandBuilderTool/BrandbuilderToolPreview/BrandBuilderToolPreviewProps.tsx';
93
+ export { default as BrandBuilderToolTemplateItem } from './BrandBuilderTool/BrandBuilderToolTemplate/BrandBuilderToolTemplateItem.tsx';
94
+ export type { default as BrandBuilderToolTemplateItemProps } from './BrandBuilderTool/BrandBuilderToolTemplate/BrandBuilderToolTemplateItemProps.tsx';
95
+ export { default as BrandBuilderToolTemplateSelector } from './BrandBuilderTool/BrandBuilderToolTemplate/BrandBuilderToolTemplateSelector.tsx';
96
+ export type { default as BrandBuilderToolTemplateSelectorProps } from './BrandBuilderTool/BrandBuilderToolTemplate/BrandBuilderToolTemplateSelectorProps.tsx';
97
+ export { default as BrandBuilderToolUploader } from './BrandBuilderTool/BrandBuilderToolUploader/BrandBuilderToolUploader.tsx';
98
+ export type { default as BrandBuilderToolUploaderProps } from './BrandBuilderTool/BrandBuilderToolUploader/BrandBuilderToolUploaderProps.tsx';
99
+ export { default as BrandBuilderToolWrapper } from './BrandBuilderTool/BrandBuilderToolWrapper/BrandBuilderToolWrapper.tsx';
100
+ export type { default as BrandBuilderToolWrapperProps } from './BrandBuilderTool/BrandBuilderToolWrapper/BrandBuilderToolWrapperProps.tsx';
101
+ export { default as BrandBuilderTool } from './BrandBuilderTool/BrandBuilderTool.tsx';
102
+ export type { default as BrandBuilderToolProps } from './BrandBuilderTool/BrandBuilderToolProps.tsx';
@@ -0,0 +1,16 @@
1
+ import { createContext, ReactNode } from "react";
2
+ interface SkopeUIContextType {
3
+ modalStack: ReactNode[];
4
+ openModal: (modal: React.ReactNode) => void;
5
+ closeModal: () => void;
6
+ closeAllModals: () => void;
7
+ }
8
+
9
+ const SelwynUIContext = createContext<SkopeUIContextType>({
10
+ modalStack: [],
11
+ openModal: () => {},
12
+ closeModal: () => {},
13
+ closeAllModals: () => {},
14
+ });
15
+
16
+ export default SelwynUIContext;
@@ -0,0 +1,46 @@
1
+ import React, { FC, ReactNode, useState } from "react";
2
+ import SelwynUIContext from "./SelwynUIContext.tsx";
3
+
4
+ interface SelwynUIProviderProps {
5
+ children: ReactNode;
6
+ }
7
+
8
+ const SelwynUIProvider: FC<SelwynUIProviderProps> = (props : SelwynUIProviderProps) => {
9
+ const { children } = props;
10
+
11
+ const [modalStack, setModalStack] = useState<React.ReactNode[]>([]);
12
+ const openModal = (modal: React.ReactNode) => {
13
+ setModalStack((prevStack) => [...prevStack, modal]);
14
+ console.log('hello')
15
+ };
16
+
17
+ const closeModal = () => {
18
+ setModalStack((prevStack) => prevStack.slice(0, -1));
19
+
20
+ };
21
+
22
+ const closeAllModals = () => {
23
+ setModalStack([]);
24
+ };
25
+
26
+
27
+ return (
28
+ <SelwynUIContext.Provider
29
+ value={{
30
+ modalStack,
31
+ openModal,
32
+ closeModal,
33
+ closeAllModals,
34
+ }}
35
+ >
36
+ <>
37
+ {children}
38
+ {modalStack.map((modal, index) => (
39
+ <React.Fragment key={index}>{modal}</React.Fragment>
40
+ ))}
41
+ </>
42
+ </SelwynUIContext.Provider>
43
+ );
44
+ };
45
+
46
+ export default SelwynUIProvider;
@@ -0,0 +1,2 @@
1
+ export { default as SelwynUIProvider } from './SelwynUIProvider.tsx';
2
+ export { default as SelwynUIContext } from './SelwynUIContext.tsx';
@@ -3,3 +3,4 @@ export * from './Form'
3
3
  export * from './Icons'
4
4
  export * from './Layout'
5
5
  export * from './Shared'
6
+ export * from './SelwynUIProvider'
@@ -1,248 +0,0 @@
1
- .listingDetail {
2
- display: flex;
3
- gap: 48px;
4
- padding: 32px;
5
- border-radius: 8px;
6
- position: relative;
7
-
8
- &::before {
9
- content: '';
10
- position: absolute;
11
- left: 51%;
12
- top: 32px;
13
- bottom: 32px;
14
- width: 1px;
15
- background: var(--color-bg);
16
- transform: translateX(-50%);
17
- z-index: 1;
18
- pointer-events: none;
19
-
20
- @media (max-width: 900px) {
21
- display: none;
22
- }
23
- }
24
-
25
- @media (max-width: 900px) {
26
- flex-direction: column-reverse;
27
- padding: 24px 16px;
28
- gap: 48px;
29
- }
30
- }
31
-
32
- .mainContent {
33
- width: 50%;
34
- padding-right: 20px;
35
-
36
- @media (max-width: 1200px) {
37
- padding-left: 80px;
38
- padding-right: 40px;
39
- }
40
-
41
- @media (max-width: 900px) {
42
- width: 100%;
43
- padding-left: 0;
44
- padding-right: 0;
45
- order: 2;
46
- }
47
-
48
- .title {
49
- font-size: 48px;
50
- font-weight: 400;
51
- line-height: 1;
52
- letter-spacing: -1.92px;
53
- margin: 0 0 50px 0;
54
-
55
- @media (max-width: 900px) {
56
- font-size: 36px;
57
- margin: 0 0 40px 0;
58
- }
59
-
60
- @media (max-width: 480px) {
61
- font-size: 28px;
62
- margin: 0 0 32px 0;
63
- }
64
- }
65
-
66
- .description {
67
- font-size: 24px;
68
- line-height: 1.3;
69
- font-weight: 400;
70
- letter-spacing: -0.48px;
71
-
72
- @media (max-width: 900px) {
73
- font-size: 18px;
74
- margin-bottom: 48px;
75
- }
76
-
77
- @media (max-width: 480px) {
78
- font-size: 16px;
79
- margin-bottom: 32px;
80
- }
81
- }
82
-
83
- .sectionTitle {
84
- font-size: 24px;
85
- font-weight: 600;
86
- margin: 60px 0 22px 0;
87
- letter-spacing: -0.48px;
88
- line-height: 1.3;
89
-
90
- @media (max-width: 900px) {
91
- font-size: 20px;
92
- margin: 48px 0 24px 0;
93
- }
94
-
95
- @media (max-width: 480px) {
96
- font-size: 18px;
97
- margin: 32px 0 20px 0;
98
- }
99
- }
100
- }
101
-
102
- .facilitiesList {
103
- list-style: none;
104
- padding: 0;
105
- margin: 0;
106
- display: grid;
107
- grid-template-columns: repeat(2, 2fr);
108
- gap: 9px;
109
-
110
- @media (max-width: 600px) {
111
- grid-template-columns: 1fr;
112
- gap: 2px;
113
- }
114
- }
115
-
116
- .facilityItem {
117
- display: flex;
118
- align-items: center;
119
- font-size: 18px;
120
- font-weight: 400;
121
- line-height: 1.4;
122
- gap: 12px;
123
-
124
- @media (max-width: 900px) {
125
- font-size: 16px;
126
- }
127
-
128
- svg {
129
- height: 32px;
130
- width: 32px;
131
- color: var(--color-bg);
132
- flex-shrink: 0;
133
-
134
- @media (max-width: 900px) {
135
- height: 24px;
136
- width: 24px;
137
- }
138
- }
139
- }
140
-
141
- .sidebar {
142
- width: 50%;
143
- display: flex;
144
- flex-direction: column;
145
- gap: 60px;
146
- padding-left: 64px;
147
-
148
- @media (max-width: 1200px) {
149
- padding-left: 40px;
150
- gap: 48px;
151
- }
152
-
153
- @media (max-width: 900px) {
154
- width: 100%;
155
- padding-left: 0;
156
- gap: 40px;
157
- order: 1;
158
- }
159
-
160
- @media (max-width: 480px) {
161
- gap: 32px;
162
- }
163
- }
164
-
165
- .infoItem {
166
- display: flex;
167
- gap: 16px;
168
- align-items: center;
169
-
170
- @media (max-width: 900px) {
171
- gap: 12px;
172
- }
173
-
174
- svg {
175
- color: var(--color-text);
176
- width: 48px;
177
- height: 48px;
178
- flex-shrink: 0;
179
-
180
- @media (max-width: 900px) {
181
- width: 40px;
182
- height: 40px;
183
- }
184
-
185
- @media (max-width: 480px) {
186
- width: 32px;
187
- height: 32px;
188
- }
189
- }
190
- }
191
-
192
- .sidebarItems {
193
- flex: 1;
194
- }
195
-
196
- .infoLabel {
197
- font-size: 24px;
198
- letter-spacing: -0.48px;
199
- line-height: 1.3;
200
- font-weight: 700;
201
-
202
- @media (max-width: 900px) {
203
- font-size: 18px;
204
- }
205
-
206
- @media (max-width: 480px) {
207
- font-size: 16px;
208
- }
209
- }
210
-
211
- .infoValue {
212
- font-size: 24px;
213
- line-height: 1.3;
214
- font-weight: 400;
215
- margin-top: 0;
216
- letter-spacing: -0.48px;
217
-
218
- @media (max-width: 900px) {
219
- font-size: 18px;
220
- }
221
-
222
- @media (max-width: 480px) {
223
- font-size: 16px;
224
- }
225
- }
226
-
227
- .infoValueLink {
228
- color: var(--color-bg);
229
- font-size: 24px;
230
- text-decoration: underline;
231
- line-height: 1.3;
232
- letter-spacing: -0.48px;
233
- font-weight: 400;
234
- margin-top: 0;
235
-
236
- @media (max-width: 900px) {
237
- font-size: 18px;
238
- }
239
-
240
- @media (max-width: 480px) {
241
- font-size: 16px;
242
- }
243
- }
244
-
245
- .button {
246
- margin-top: 5px;
247
- max-width: 177px !important;
248
- }