@finsweet/webflow-apps-utils 1.0.2 → 1.0.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (293) hide show
  1. package/README.md +162 -1
  2. package/dist/index.d.ts +2 -1
  3. package/dist/index.js +2 -1
  4. package/dist/providers/GlobalProvider.mdx +322 -0
  5. package/dist/providers/GlobalProvider.svelte +58 -0
  6. package/dist/providers/GlobalProvider.svelte.d.ts +4 -0
  7. package/dist/providers/configuratorUtils.d.ts +37 -0
  8. package/dist/providers/configuratorUtils.js +219 -0
  9. package/dist/providers/globalContext.svelte.d.ts +18 -0
  10. package/dist/providers/globalContext.svelte.js +439 -0
  11. package/dist/providers/index.d.ts +5 -0
  12. package/dist/providers/index.js +7 -0
  13. package/dist/providers/types.d.ts +103 -0
  14. package/dist/providers/types.js +6 -0
  15. package/dist/router/Router.mdx +958 -0
  16. package/dist/router/Router.stories.d.ts +6 -0
  17. package/dist/router/Router.stories.js +47 -0
  18. package/dist/router/examples/RouterExample.svelte +271 -0
  19. package/dist/{ui/components/NoSettingsNeeded.svelte.d.ts → router/examples/RouterExample.svelte.d.ts} +3 -3
  20. package/dist/router/examples/index.d.ts +4 -0
  21. package/dist/router/examples/index.js +4 -0
  22. package/dist/router/examples/pages/AboutPage.svelte +568 -0
  23. package/dist/router/examples/pages/AboutPage.svelte.d.ts +13 -0
  24. package/dist/router/examples/pages/HomePage.svelte +200 -0
  25. package/dist/router/examples/pages/HomePage.svelte.d.ts +14 -0
  26. package/dist/router/examples/pages/NotFoundPage.svelte +307 -0
  27. package/dist/router/examples/pages/NotFoundPage.svelte.d.ts +17 -0
  28. package/dist/router/hooks.svelte.d.ts +2 -2
  29. package/dist/router/index.d.ts +3 -0
  30. package/dist/router/index.js +3 -0
  31. package/dist/router/{Link.svelte → providers/Link.svelte} +1 -1
  32. package/dist/router/{Route.svelte → providers/Route.svelte} +1 -1
  33. package/dist/router/{Route.svelte.d.ts → providers/Route.svelte.d.ts} +1 -1
  34. package/dist/router/{Router.svelte → providers/RouterProvider.svelte} +22 -5
  35. package/dist/router/{Router.svelte.d.ts → providers/RouterProvider.svelte.d.ts} +8 -4
  36. package/dist/router/providers/index.d.ts +3 -0
  37. package/dist/router/providers/index.js +3 -0
  38. package/dist/router/{index.svelte.d.ts → router.svelte.d.ts} +1 -3
  39. package/dist/router/{index.svelte.js → router.svelte.js} +1 -4
  40. package/dist/stores/docs/Form.mdx +542 -0
  41. package/dist/stores/forms.d.ts +41 -4
  42. package/dist/stores/forms.js +86 -32
  43. package/dist/stores/index.d.ts +0 -1
  44. package/dist/stores/index.js +0 -1
  45. package/dist/types/customCode.d.ts +1 -1
  46. package/dist/types/webflow.d.ts +31 -47
  47. package/dist/types/window.d.ts +1 -0
  48. package/dist/ui/components/LoadingScreen.svelte +2 -1
  49. package/dist/ui/components/button/Button.svelte +1 -1
  50. package/dist/ui/components/button-group/ButtonGroup.stories.js +112 -0
  51. package/dist/ui/components/{ButtonGroup.svelte → button-group/ButtonGroup.svelte} +20 -33
  52. package/dist/ui/components/button-group/ButtonGroup.svelte.d.ts +13 -0
  53. package/dist/ui/components/button-group/index.d.ts +2 -0
  54. package/dist/ui/components/button-group/index.js +1 -0
  55. package/dist/ui/components/button-group/types.d.ts +32 -0
  56. package/dist/ui/components/checkbox/Checkbox.stories.d.ts +55 -0
  57. package/dist/ui/components/checkbox/Checkbox.stories.js +162 -0
  58. package/dist/ui/components/checkbox/Checkbox.svelte +141 -0
  59. package/dist/ui/components/checkbox/Checkbox.svelte.d.ts +4 -0
  60. package/dist/ui/components/checkbox/index.d.ts +2 -0
  61. package/dist/ui/components/checkbox/index.js +1 -0
  62. package/dist/ui/components/checkbox/types.d.ts +32 -0
  63. package/dist/ui/components/controlled-buttons/ControlledButtons.stories.d.ts +32 -0
  64. package/dist/ui/components/controlled-buttons/ControlledButtons.stories.js +152 -0
  65. package/dist/ui/components/{buttons/FooterButton.svelte → controlled-buttons/ControlledButtons.svelte} +18 -67
  66. package/dist/ui/components/controlled-buttons/ControlledButtons.svelte.d.ts +4 -0
  67. package/dist/ui/components/controlled-buttons/index.d.ts +2 -0
  68. package/dist/ui/components/controlled-buttons/index.js +1 -0
  69. package/dist/ui/components/{buttons → controlled-buttons}/types.d.ts +11 -4
  70. package/dist/ui/components/copy-text/CopyText.stories.d.ts +70 -0
  71. package/dist/ui/components/copy-text/CopyText.stories.js +241 -0
  72. package/dist/ui/components/copy-text/CopyText.svelte +249 -0
  73. package/dist/ui/components/copy-text/CopyText.svelte.d.ts +4 -0
  74. package/dist/ui/components/copy-text/index.d.ts +2 -0
  75. package/dist/ui/components/copy-text/index.js +1 -0
  76. package/dist/ui/components/copy-text/types.d.ts +52 -0
  77. package/dist/ui/components/copy-text/types.js +1 -0
  78. package/dist/ui/components/divider/Divider.stories.svelte +134 -0
  79. package/dist/ui/components/{clickable/Clickable.stories.svelte.d.ts → divider/Divider.stories.svelte.d.ts} +4 -4
  80. package/dist/ui/components/divider/Divider.svelte +30 -0
  81. package/dist/ui/components/divider/Divider.svelte.d.ts +4 -0
  82. package/dist/ui/components/divider/index.d.ts +2 -0
  83. package/dist/ui/components/divider/index.js +1 -0
  84. package/dist/ui/components/divider/types.d.ts +23 -0
  85. package/dist/ui/components/divider/types.js +1 -0
  86. package/dist/ui/components/iframe/Iframe.stories.svelte +122 -0
  87. package/dist/ui/components/{ToggleItem.svelte.d.ts → iframe/Iframe.stories.svelte.d.ts} +7 -8
  88. package/dist/ui/components/iframe/Iframe.svelte +75 -0
  89. package/dist/ui/components/iframe/Iframe.svelte.d.ts +4 -0
  90. package/dist/ui/components/iframe/index.d.ts +2 -0
  91. package/dist/ui/components/iframe/index.js +1 -0
  92. package/dist/ui/components/iframe/types.d.ts +38 -0
  93. package/dist/ui/components/iframe/types.js +1 -0
  94. package/dist/ui/components/index.d.ts +13 -39
  95. package/dist/ui/components/index.js +13 -39
  96. package/dist/ui/components/input/Input.stories.d.ts +33 -0
  97. package/dist/ui/components/input/Input.stories.js +176 -0
  98. package/dist/ui/components/input/Input.svelte +358 -81
  99. package/dist/ui/components/input/types.d.ts +33 -1
  100. package/dist/ui/components/layout/Layout.stories.svelte +3 -3
  101. package/dist/ui/components/layout/Layout.svelte +10 -64
  102. package/dist/ui/components/layout/Layout.svelte.d.ts +2 -2
  103. package/dist/ui/components/layout/common/EditModeMessage.svelte +24 -12
  104. package/dist/ui/components/layout/{ExampleLayout.svelte → examples/ExampleLayout.svelte} +56 -39
  105. package/dist/ui/components/layout/examples/Wrapper.svelte +9 -0
  106. package/dist/ui/components/{Header.svelte.d.ts → layout/examples/Wrapper.svelte.d.ts} +4 -6
  107. package/dist/ui/components/layout/examples/index.d.ts +2 -0
  108. package/dist/ui/components/layout/examples/index.js +2 -0
  109. package/dist/ui/components/layout/index.d.ts +3 -2
  110. package/dist/ui/components/layout/index.js +2 -1
  111. package/dist/ui/components/layout/test-helpers/TestLayoutWithFooter.svelte +20 -0
  112. package/dist/ui/components/layout/test-helpers/TestLayoutWithFooter.svelte.d.ts +7 -0
  113. package/dist/ui/components/layout/types.d.ts +1 -10
  114. package/dist/ui/components/modal/Example.svelte +320 -0
  115. package/dist/ui/components/modal/Example.svelte.d.ts +3 -0
  116. package/dist/ui/components/modal/Modal.stories.svelte +18 -0
  117. package/dist/ui/components/modal/Modal.stories.svelte.d.ts +26 -0
  118. package/dist/ui/components/modal/Modal.svelte +490 -0
  119. package/dist/ui/components/modal/Modal.svelte.d.ts +130 -0
  120. package/dist/ui/components/modal/index.d.ts +2 -0
  121. package/dist/ui/components/modal/index.js +1 -0
  122. package/dist/ui/components/modal/types.d.ts +75 -0
  123. package/dist/ui/components/modal/types.js +1 -0
  124. package/dist/ui/components/notification/Notification.stories.svelte +239 -0
  125. package/dist/ui/components/{ToggleList.svelte.d.ts → notification/Notification.stories.svelte.d.ts} +9 -21
  126. package/dist/ui/components/notification/Notification.svelte +294 -0
  127. package/dist/ui/components/notification/Notification.svelte.d.ts +67 -0
  128. package/dist/ui/components/notification/index.d.ts +2 -0
  129. package/dist/ui/components/notification/index.js +1 -0
  130. package/dist/ui/components/notification/types.d.ts +68 -0
  131. package/dist/ui/components/notification/types.js +1 -0
  132. package/dist/ui/components/section/Section.stories.svelte +263 -0
  133. package/dist/ui/components/section/Section.stories.svelte.d.ts +27 -0
  134. package/dist/ui/components/section/Section.svelte +326 -0
  135. package/dist/ui/components/section/Section.svelte.d.ts +5 -0
  136. package/dist/ui/components/section/index.d.ts +2 -0
  137. package/dist/ui/components/section/index.js +1 -0
  138. package/dist/ui/components/section/types.d.ts +114 -0
  139. package/dist/ui/components/section/types.js +1 -0
  140. package/dist/ui/components/{ImageUpload.svelte → shared/ImageUpload.svelte} +3 -3
  141. package/dist/ui/components/{SelectBodyOrDivBlock.svelte → shared/SelectBodyOrDivBlock.svelte} +1 -1
  142. package/dist/ui/components/shared/index.d.ts +2 -0
  143. package/dist/ui/components/shared/index.js +2 -0
  144. package/dist/ui/components/text/Text.stories.svelte +67 -1
  145. package/dist/ui/components/text/Text.svelte +209 -8
  146. package/dist/ui/components/text/types.d.ts +4 -0
  147. package/dist/ui/index.css +33 -5
  148. package/dist/utils/animations/factory.d.ts +7 -0
  149. package/dist/utils/animations/factory.js +101 -0
  150. package/dist/utils/animations/index.d.ts +7 -0
  151. package/dist/utils/animations/index.js +62 -0
  152. package/dist/utils/animations/types.d.ts +39 -0
  153. package/dist/utils/animations/types.js +1 -0
  154. package/dist/utils/api/checkIfAppModeIsDesign.d.ts +1 -2
  155. package/dist/utils/api/checkIfAppModeIsDesign.js +1 -2
  156. package/dist/utils/api/clipboard/handlePaste.d.ts +6 -37
  157. package/dist/utils/api/clipboard/handlePaste.js +2 -6
  158. package/dist/utils/api/getAllAssets.d.ts +1 -2
  159. package/dist/utils/api/getAllAssets.js +1 -2
  160. package/dist/utils/api/getFinsweetComponentsEnvironment.d.ts +1 -2
  161. package/dist/utils/api/getFinsweetComponentsEnvironment.js +3 -6
  162. package/dist/utils/api/index.d.ts +0 -1
  163. package/dist/utils/api/index.js +0 -1
  164. package/dist/utils/api/insertWithXSCP.d.ts +1 -2
  165. package/dist/utils/api/insertWithXSCP.js +1 -2
  166. package/dist/utils/auth/crossWindowLogin.d.ts +3 -0
  167. package/dist/utils/auth/crossWindowLogin.js +3 -0
  168. package/dist/utils/auth/index.d.ts +9 -25
  169. package/dist/utils/auth/index.js +9 -25
  170. package/dist/utils/browser-storage/localStorage.d.ts +4 -12
  171. package/dist/utils/browser-storage/localStorage.js +4 -12
  172. package/dist/utils/browser-storage/sessionStorage.d.ts +4 -12
  173. package/dist/utils/browser-storage/sessionStorage.js +4 -12
  174. package/dist/utils/custom-code/api.d.ts +3 -7
  175. package/dist/utils/custom-code/api.js +3 -7
  176. package/dist/utils/custom-code/configs.d.ts +22 -0
  177. package/dist/utils/custom-code/configs.js +40 -0
  178. package/dist/utils/custom-code/index.d.ts +1 -0
  179. package/dist/utils/custom-code/index.js +1 -0
  180. package/dist/utils/helpers/capitalizeFirstLetter.d.ts +4 -0
  181. package/dist/utils/helpers/capitalizeFirstLetter.js +9 -0
  182. package/dist/utils/helpers/cleanupTooltipMessage.d.ts +1 -2
  183. package/dist/utils/helpers/cleanupTooltipMessage.js +1 -2
  184. package/dist/utils/helpers/getTimeNow.d.ts +4 -0
  185. package/dist/utils/helpers/getTimeNow.js +8 -0
  186. package/dist/utils/helpers/goto.d.ts +1 -4
  187. package/dist/utils/helpers/goto.js +2 -7
  188. package/dist/utils/helpers/index.d.ts +5 -0
  189. package/dist/utils/helpers/index.js +5 -0
  190. package/dist/utils/helpers/minifyCode.d.ts +10 -0
  191. package/dist/utils/helpers/minifyCode.js +73 -0
  192. package/dist/utils/helpers/noop.d.ts +1 -1
  193. package/dist/utils/helpers/noop.js +1 -1
  194. package/dist/utils/helpers/numbers.d.ts +4 -14
  195. package/dist/utils/helpers/numbers.js +4 -14
  196. package/dist/utils/helpers/objectsToModuleExports.d.ts +2 -4
  197. package/dist/utils/helpers/objectsToModuleExports.js +2 -3
  198. package/dist/utils/helpers/toHumanReadableList.d.ts +4 -0
  199. package/dist/utils/helpers/toHumanReadableList.js +11 -0
  200. package/dist/utils/helpers/trimText.d.ts +1 -8
  201. package/dist/utils/helpers/trimText.js +1 -8
  202. package/dist/utils/index.d.ts +5 -0
  203. package/dist/utils/index.js +5 -0
  204. package/dist/utils/logger/index.d.ts +0 -2
  205. package/dist/utils/logger/index.js +0 -2
  206. package/dist/utils/webflow-canvas/attributes/getAllWebflowElementAttributes.d.ts +1 -3
  207. package/dist/utils/webflow-canvas/attributes/getAllWebflowElementAttributes.js +1 -3
  208. package/dist/utils/webflow-canvas/attributes/getInstanceNamesFromObject.d.ts +1 -5
  209. package/dist/utils/webflow-canvas/attributes/getInstanceNamesFromObject.js +1 -5
  210. package/dist/utils/webflow-canvas/attributes/getWebflowElementAttribute.d.ts +1 -4
  211. package/dist/utils/webflow-canvas/attributes/getWebflowElementAttribute.js +1 -4
  212. package/dist/utils/webflow-canvas/attributes/getWebflowElementTextContent.d.ts +1 -3
  213. package/dist/utils/webflow-canvas/attributes/getWebflowElementTextContent.js +1 -3
  214. package/dist/utils/webflow-canvas/attributes/removeWebflowElementAttribute.d.ts +1 -4
  215. package/dist/utils/webflow-canvas/attributes/removeWebflowElementAttribute.js +1 -4
  216. package/dist/utils/webflow-canvas/attributes/setStyles.d.ts +1 -3
  217. package/dist/utils/webflow-canvas/attributes/setStyles.js +1 -3
  218. package/dist/utils/webflow-canvas/attributes/setWebflowElementAttribute.d.ts +1 -8
  219. package/dist/utils/webflow-canvas/attributes/setWebflowElementAttribute.js +1 -13
  220. package/dist/utils/webflow-canvas/findInstanceElement.d.ts +0 -6
  221. package/dist/utils/webflow-canvas/findInstanceElement.js +1 -7
  222. package/dist/utils/webflow-canvas/getAllChildren.d.ts +16 -0
  223. package/dist/utils/webflow-canvas/getAllChildren.js +65 -0
  224. package/dist/utils/webflow-canvas/getAllPages.d.ts +3 -10
  225. package/dist/utils/webflow-canvas/getAllPages.js +3 -10
  226. package/dist/utils/webflow-canvas/getElementClassList.d.ts +9 -0
  227. package/dist/utils/webflow-canvas/getElementClassList.js +19 -0
  228. package/dist/utils/webflow-canvas/getSiteStagingUrl.d.ts +1 -4
  229. package/dist/utils/webflow-canvas/getSiteStagingUrl.js +1 -4
  230. package/dist/utils/webflow-canvas/index.d.ts +3 -0
  231. package/dist/utils/webflow-canvas/index.js +3 -0
  232. package/package.json +14 -2
  233. package/dist/router/README.md +0 -397
  234. package/dist/stores/globalStore.d.ts +0 -10
  235. package/dist/stores/globalStore.js +0 -10
  236. package/dist/ui/components/ButtonGroup.svelte.d.ts +0 -28
  237. package/dist/ui/components/Checkbox.svelte +0 -94
  238. package/dist/ui/components/Checkbox.svelte.d.ts +0 -36
  239. package/dist/ui/components/Copy.svelte +0 -329
  240. package/dist/ui/components/Copy.svelte.d.ts +0 -35
  241. package/dist/ui/components/CustomModal.svelte +0 -192
  242. package/dist/ui/components/CustomModal.svelte.d.ts +0 -45
  243. package/dist/ui/components/DisableInEditMode.svelte +0 -66
  244. package/dist/ui/components/DisableInEditMode.svelte.d.ts +0 -33
  245. package/dist/ui/components/Divider.svelte +0 -31
  246. package/dist/ui/components/Divider.svelte.d.ts +0 -31
  247. package/dist/ui/components/Header.svelte +0 -30
  248. package/dist/ui/components/Iframe.svelte +0 -89
  249. package/dist/ui/components/Iframe.svelte.d.ts +0 -40
  250. package/dist/ui/components/InjectComponent.svelte +0 -297
  251. package/dist/ui/components/InjectComponent.svelte.d.ts +0 -27
  252. package/dist/ui/components/Modal.svelte +0 -139
  253. package/dist/ui/components/Modal.svelte.d.ts +0 -42
  254. package/dist/ui/components/Navbar.svelte +0 -132
  255. package/dist/ui/components/Navbar.svelte.d.ts +0 -29
  256. package/dist/ui/components/NoSettingsNeeded.svelte +0 -31
  257. package/dist/ui/components/Notification.svelte +0 -193
  258. package/dist/ui/components/Notification.svelte.d.ts +0 -64
  259. package/dist/ui/components/PlusMinusButton.svelte +0 -91
  260. package/dist/ui/components/PlusMinusButton.svelte.d.ts +0 -22
  261. package/dist/ui/components/PreviewBar.svelte +0 -40
  262. package/dist/ui/components/PreviewBar.svelte.d.ts +0 -20
  263. package/dist/ui/components/ScrollableContent.svelte +0 -18
  264. package/dist/ui/components/ScrollableContent.svelte.d.ts +0 -31
  265. package/dist/ui/components/Section.svelte +0 -97
  266. package/dist/ui/components/Section.svelte.d.ts +0 -50
  267. package/dist/ui/components/Spacer.svelte +0 -9
  268. package/dist/ui/components/Spacer.svelte.d.ts +0 -22
  269. package/dist/ui/components/SpinnerPlusMinus.svelte +0 -75
  270. package/dist/ui/components/SpinnerPlusMinus.svelte.d.ts +0 -23
  271. package/dist/ui/components/SpinnerUpDown.svelte +0 -194
  272. package/dist/ui/components/SpinnerUpDown.svelte.d.ts +0 -31
  273. package/dist/ui/components/Tabs.svelte +0 -71
  274. package/dist/ui/components/Tabs.svelte.d.ts +0 -26
  275. package/dist/ui/components/ToggleItem.svelte +0 -29
  276. package/dist/ui/components/ToggleList.svelte +0 -57
  277. package/dist/ui/components/buttons/FooterButton.svelte.d.ts +0 -10
  278. package/dist/ui/components/buttons/index.d.ts +0 -5
  279. package/dist/ui/components/buttons/index.js +0 -5
  280. package/dist/ui/components/clickable/Clickable.stories.svelte +0 -213
  281. package/dist/ui/components/clickable/Clickable.svelte +0 -93
  282. package/dist/ui/components/clickable/Clickable.svelte.d.ts +0 -4
  283. package/dist/ui/components/clickable/index.d.ts +0 -2
  284. package/dist/ui/components/clickable/index.js +0 -1
  285. package/dist/ui/components/clickable/types.d.ts +0 -17
  286. package/dist/utils/api/copyPaste/index.d.ts +0 -18
  287. /package/dist/router/{Link.svelte.d.ts → providers/Link.svelte.d.ts} +0 -0
  288. /package/dist/ui/components/{buttons → button-group}/types.js +0 -0
  289. /package/dist/ui/components/{clickable → checkbox}/types.js +0 -0
  290. /package/dist/{utils/api/copyPaste/index.js → ui/components/controlled-buttons/types.js} +0 -0
  291. /package/dist/ui/components/layout/{ExampleLayout.svelte.d.ts → examples/ExampleLayout.svelte.d.ts} +0 -0
  292. /package/dist/ui/components/{ImageUpload.svelte.d.ts → shared/ImageUpload.svelte.d.ts} +0 -0
  293. /package/dist/ui/components/{SelectBodyOrDivBlock.svelte.d.ts → shared/SelectBodyOrDivBlock.svelte.d.ts} +0 -0
@@ -0,0 +1,568 @@
1
+ <script lang="ts">
2
+ import type { Router } from '../../router.svelte';
3
+
4
+ interface Props {
5
+ params: Record<string, string>;
6
+ location: {
7
+ pathname: string;
8
+ search: string;
9
+ params: Record<string, string>;
10
+ };
11
+ router: Router;
12
+ }
13
+
14
+ let { params, location, router }: Props = $props();
15
+
16
+ // Extract section from params
17
+ let section = $derived(params.section || null);
18
+
19
+ // Section content mapping
20
+ const sectionContent = {
21
+ team: {
22
+ title: 'Our Team',
23
+ content: 'Meet the talented individuals who make our company great.',
24
+ items: [
25
+ {
26
+ name: 'Alice Johnson',
27
+ role: 'CEO & Founder',
28
+ bio: 'Visionary leader with 15+ years experience.'
29
+ },
30
+ { name: 'Bob Smith', role: 'CTO', bio: 'Technical architect passionate about innovation.' },
31
+ {
32
+ name: 'Carol Davis',
33
+ role: 'Lead Designer',
34
+ bio: 'Creative mind behind our beautiful interfaces.'
35
+ }
36
+ ]
37
+ },
38
+ history: {
39
+ title: 'Our History',
40
+ content: 'Learn about our journey from startup to industry leader.',
41
+ items: [
42
+ {
43
+ year: '2018',
44
+ event: 'Company founded',
45
+ description: 'Started with a small team and big dreams.'
46
+ },
47
+ {
48
+ year: '2020',
49
+ event: 'First major product launch',
50
+ description: 'Released our flagship product to market.'
51
+ },
52
+ {
53
+ year: '2023',
54
+ event: 'International expansion',
55
+ description: 'Opened offices in 5 new countries.'
56
+ }
57
+ ]
58
+ },
59
+ mission: {
60
+ title: 'Our Mission',
61
+ content: 'We strive to create technology that empowers people and transforms businesses.',
62
+ items: [
63
+ { value: 'Innovation', description: "Always pushing boundaries of what's possible." },
64
+ { value: 'Quality', description: 'Delivering excellence in everything we do.' },
65
+ { value: 'Integrity', description: 'Building trust through transparent practices.' }
66
+ ]
67
+ }
68
+ };
69
+
70
+ let currentSection = $derived(
71
+ (section && sectionContent[section as keyof typeof sectionContent]) || null
72
+ );
73
+ </script>
74
+
75
+ <div class="about-page">
76
+ {#if section && currentSection}
77
+ <!-- Section-specific content -->
78
+ <div class="section-header">
79
+ <button class="back-button" onclick={() => router.navigate('/about')}>
80
+ ← Back to About
81
+ </button>
82
+ <h1>{currentSection.title}</h1>
83
+ <p class="section-description">{currentSection.content}</p>
84
+ </div>
85
+
86
+ <div class="section-content">
87
+ {#if section === 'team' && currentSection}
88
+ <div class="team-grid">
89
+ {#each currentSection.items as member, index (index)}
90
+ <div class="team-card">
91
+ <div class="avatar">
92
+ {#if 'name' in member}
93
+ {member.name
94
+ .split(' ')
95
+ .map((n: string) => n[0])
96
+ .join('')}
97
+ {/if}
98
+ </div>
99
+ <h3>
100
+ {#if 'name' in member}
101
+ {member.name}
102
+ {/if}
103
+ </h3>
104
+ <p class="role">
105
+ {#if 'role' in member}
106
+ {member.role}
107
+ {/if}
108
+ </p>
109
+ <p class="bio">
110
+ {#if 'bio' in member}
111
+ {member.bio}
112
+ {/if}
113
+ </p>
114
+ </div>
115
+ {/each}
116
+ </div>
117
+ {:else if section === 'history' && currentSection}
118
+ <div class="timeline">
119
+ {#each currentSection.items as item, index (index)}
120
+ <div class="timeline-item">
121
+ <div class="timeline-year">
122
+ {#if 'year' in item}
123
+ {item.year}
124
+ {/if}
125
+ </div>
126
+ <div class="timeline-content">
127
+ <h3>
128
+ {#if 'event' in item}
129
+ {item.event}
130
+ {/if}
131
+ </h3>
132
+ <p>
133
+ {#if 'description' in item}
134
+ {item.description}
135
+ {/if}
136
+ </p>
137
+ </div>
138
+ </div>
139
+ {/each}
140
+ </div>
141
+ {:else if section === 'mission' && currentSection}
142
+ <div class="values-grid">
143
+ {#each currentSection.items as value, index (index)}
144
+ <div class="value-card">
145
+ <h3>
146
+ {#if 'value' in value}
147
+ {value.value}
148
+ {/if}
149
+ </h3>
150
+ <p>
151
+ {#if 'description' in value}
152
+ {value.description}
153
+ {/if}
154
+ </p>
155
+ </div>
156
+ {/each}
157
+ </div>
158
+ {/if}
159
+ </div>
160
+
161
+ <!-- Navigation to other sections -->
162
+ <div class="section-navigation">
163
+ <h3>Explore More</h3>
164
+ <div class="nav-buttons">
165
+ {#each Object.keys(sectionContent) as key (key)}
166
+ {#if key !== section}
167
+ <button class="nav-btn" onclick={() => router.navigate(`/about/${key}`)}>
168
+ {sectionContent[key as keyof typeof sectionContent].title}
169
+ </button>
170
+ {/if}
171
+ {/each}
172
+ </div>
173
+ </div>
174
+ {:else}
175
+ <!-- Main about page -->
176
+ <div class="main-about">
177
+ <header class="about-header">
178
+ <h1>About Our Company</h1>
179
+ <p class="lead">
180
+ We're a technology company dedicated to building innovative solutions that make a
181
+ difference in people's lives.
182
+ </p>
183
+ </header>
184
+
185
+ <div class="about-sections">
186
+ <h2>Learn More About Us</h2>
187
+ <div class="sections-grid">
188
+ <button class="section-card" onclick={() => router.navigate('/about/team')}>
189
+ <div class="section-icon">👥</div>
190
+ <h3>Our Team</h3>
191
+ <p>Meet the passionate people behind our success.</p>
192
+ <span class="section-link">Learn more →</span>
193
+ </button>
194
+
195
+ <button class="section-card" onclick={() => router.navigate('/about/history')}>
196
+ <div class="section-icon">📈</div>
197
+ <h3>Our History</h3>
198
+ <p>Discover our journey from startup to industry leader.</p>
199
+ <span class="section-link">Learn more →</span>
200
+ </button>
201
+
202
+ <button class="section-card" onclick={() => router.navigate('/about/mission')}>
203
+ <div class="section-icon">🎯</div>
204
+ <h3>Our Mission</h3>
205
+ <p>Understand the values and principles that guide us.</p>
206
+ <span class="section-link">Learn more →</span>
207
+ </button>
208
+ </div>
209
+ </div>
210
+
211
+ <div class="stats-section">
212
+ <h2>By the Numbers</h2>
213
+ <div class="stats-grid">
214
+ <div class="stat-item">
215
+ <div class="stat-number">50+</div>
216
+ <div class="stat-label">Team Members</div>
217
+ </div>
218
+ <div class="stat-item">
219
+ <div class="stat-number">1000+</div>
220
+ <div class="stat-label">Happy Customers</div>
221
+ </div>
222
+ <div class="stat-item">
223
+ <div class="stat-number">5</div>
224
+ <div class="stat-label">Countries</div>
225
+ </div>
226
+ <div class="stat-item">
227
+ <div class="stat-number">99.9%</div>
228
+ <div class="stat-label">Uptime</div>
229
+ </div>
230
+ </div>
231
+ </div>
232
+ </div>
233
+ {/if}
234
+
235
+ <!-- Debug information -->
236
+ <div class="debug-section">
237
+ <h3>Route Debug Information</h3>
238
+ <div class="debug-info">
239
+ <p><strong>Current Path:</strong> {location?.pathname}</p>
240
+ <p><strong>Section Parameter:</strong> {section || 'None'}</p>
241
+ <p><strong>All Parameters:</strong> {JSON.stringify(params)}</p>
242
+ <p><strong>Search Query:</strong> {location?.search || 'None'}</p>
243
+ </div>
244
+ </div>
245
+ </div>
246
+
247
+ <style>
248
+ .about-page {
249
+ max-width: 100%;
250
+ }
251
+
252
+ /* Main About Page Styles */
253
+ .about-header {
254
+ text-align: center;
255
+ margin-bottom: 3rem;
256
+ }
257
+
258
+ .about-header h1 {
259
+ font-size: 2.5rem;
260
+ color: #2c3e50;
261
+ margin: 0 0 1rem 0;
262
+ font-weight: 600;
263
+ }
264
+
265
+ .lead {
266
+ font-size: 1.25rem;
267
+ color: #6c757d;
268
+ margin: 0;
269
+ line-height: 1.6;
270
+ max-width: 600px;
271
+ margin: 0 auto;
272
+ }
273
+
274
+ .about-sections h2 {
275
+ text-align: center;
276
+ color: #2c3e50;
277
+ margin-bottom: 2rem;
278
+ font-size: 2rem;
279
+ }
280
+
281
+ .sections-grid {
282
+ display: grid;
283
+ grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
284
+ gap: 1.5rem;
285
+ margin-bottom: 3rem;
286
+ }
287
+
288
+ .section-card {
289
+ padding: 2rem;
290
+ border: 1px solid #e1e5e9;
291
+ border-radius: 12px;
292
+ background: white;
293
+ text-align: center;
294
+ cursor: pointer;
295
+ transition: all 0.3s ease;
296
+ width: 100%;
297
+ font-family: inherit;
298
+ font-size: inherit;
299
+ }
300
+
301
+ .section-card:hover {
302
+ transform: translateY(-4px);
303
+ box-shadow: 0 8px 25px rgba(0, 0, 0, 0.1);
304
+ border-color: #007bff;
305
+ }
306
+
307
+ .section-icon {
308
+ font-size: 3rem;
309
+ margin-bottom: 1rem;
310
+ }
311
+
312
+ .section-card h3 {
313
+ font-size: 1.5rem;
314
+ color: #2c3e50;
315
+ margin: 0 0 1rem 0;
316
+ }
317
+
318
+ .section-card p {
319
+ color: #6c757d;
320
+ margin: 0 0 1rem 0;
321
+ line-height: 1.5;
322
+ }
323
+
324
+ .section-link {
325
+ color: #007bff;
326
+ font-weight: 500;
327
+ font-size: 0.9rem;
328
+ }
329
+
330
+ /* Section-specific styles */
331
+ .section-header {
332
+ margin-bottom: 3rem;
333
+ }
334
+
335
+ .back-button {
336
+ background: none;
337
+ border: 1px solid #ddd;
338
+ padding: 0.5rem 1rem;
339
+ border-radius: 6px;
340
+ cursor: pointer;
341
+ color: #6c757d;
342
+ margin-bottom: 1rem;
343
+ transition: all 0.2s ease;
344
+ }
345
+
346
+ .back-button:hover {
347
+ background: #f8f9fa;
348
+ border-color: #adb5bd;
349
+ }
350
+
351
+ .section-header h1 {
352
+ font-size: 2.5rem;
353
+ color: #2c3e50;
354
+ margin: 0 0 1rem 0;
355
+ }
356
+
357
+ .section-description {
358
+ font-size: 1.25rem;
359
+ color: #6c757d;
360
+ margin: 0;
361
+ line-height: 1.6;
362
+ }
363
+
364
+ /* Team styles */
365
+ .team-grid {
366
+ display: grid;
367
+ grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
368
+ gap: 1.5rem;
369
+ margin-bottom: 3rem;
370
+ }
371
+
372
+ .team-card {
373
+ padding: 2rem;
374
+ border: 1px solid #e1e5e9;
375
+ border-radius: 12px;
376
+ background: white;
377
+ text-align: center;
378
+ }
379
+
380
+ .avatar {
381
+ width: 80px;
382
+ height: 80px;
383
+ border-radius: 50%;
384
+ background: #007bff;
385
+ color: white;
386
+ display: flex;
387
+ align-items: center;
388
+ justify-content: center;
389
+ font-size: 1.5rem;
390
+ font-weight: 600;
391
+ margin: 0 auto 1rem auto;
392
+ }
393
+
394
+ .team-card h3 {
395
+ font-size: 1.25rem;
396
+ color: #2c3e50;
397
+ margin: 0 0 0.5rem 0;
398
+ }
399
+
400
+ .role {
401
+ color: #007bff;
402
+ font-weight: 500;
403
+ margin: 0 0 1rem 0;
404
+ }
405
+
406
+ .bio {
407
+ color: #6c757d;
408
+ margin: 0;
409
+ line-height: 1.5;
410
+ font-size: 0.9rem;
411
+ }
412
+
413
+ /* Timeline styles */
414
+ .timeline {
415
+ margin-bottom: 3rem;
416
+ }
417
+
418
+ .timeline-item {
419
+ display: flex;
420
+ gap: 2rem;
421
+ margin-bottom: 2rem;
422
+ padding: 1.5rem;
423
+ border: 1px solid #e1e5e9;
424
+ border-radius: 8px;
425
+ background: white;
426
+ }
427
+
428
+ .timeline-year {
429
+ font-size: 1.5rem;
430
+ font-weight: 600;
431
+ color: #007bff;
432
+ min-width: 80px;
433
+ }
434
+
435
+ .timeline-content h3 {
436
+ font-size: 1.25rem;
437
+ color: #2c3e50;
438
+ margin: 0 0 0.5rem 0;
439
+ }
440
+
441
+ .timeline-content p {
442
+ color: #6c757d;
443
+ margin: 0;
444
+ line-height: 1.5;
445
+ }
446
+
447
+ /* Values styles */
448
+ .values-grid {
449
+ display: grid;
450
+ grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
451
+ gap: 1.5rem;
452
+ margin-bottom: 3rem;
453
+ }
454
+
455
+ .value-card {
456
+ padding: 2rem;
457
+ border: 1px solid #e1e5e9;
458
+ border-radius: 8px;
459
+ background: #f8f9fa;
460
+ text-align: center;
461
+ }
462
+
463
+ .value-card h3 {
464
+ font-size: 1.25rem;
465
+ color: #2c3e50;
466
+ margin: 0 0 1rem 0;
467
+ }
468
+
469
+ .value-card p {
470
+ color: #6c757d;
471
+ margin: 0;
472
+ line-height: 1.5;
473
+ }
474
+
475
+ /* Stats section */
476
+ .stats-section {
477
+ text-align: center;
478
+ margin-bottom: 3rem;
479
+ }
480
+
481
+ .stats-section h2 {
482
+ color: #2c3e50;
483
+ margin-bottom: 2rem;
484
+ font-size: 2rem;
485
+ }
486
+
487
+ .stats-grid {
488
+ display: grid;
489
+ grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
490
+ gap: 2rem;
491
+ }
492
+
493
+ .stat-item {
494
+ text-align: center;
495
+ }
496
+
497
+ .stat-number {
498
+ font-size: 3rem;
499
+ font-weight: 700;
500
+ color: #007bff;
501
+ margin-bottom: 0.5rem;
502
+ }
503
+
504
+ .stat-label {
505
+ color: #6c757d;
506
+ font-size: 1rem;
507
+ text-transform: uppercase;
508
+ letter-spacing: 0.5px;
509
+ }
510
+
511
+ /* Section navigation */
512
+ .section-navigation {
513
+ margin-bottom: 3rem;
514
+ }
515
+
516
+ .section-navigation h3 {
517
+ color: #2c3e50;
518
+ margin-bottom: 1rem;
519
+ }
520
+
521
+ .nav-buttons {
522
+ display: flex;
523
+ gap: 1rem;
524
+ flex-wrap: wrap;
525
+ }
526
+
527
+ .nav-btn {
528
+ padding: 0.75rem 1.5rem;
529
+ border: 1px solid #007bff;
530
+ border-radius: 6px;
531
+ background: white;
532
+ color: #007bff;
533
+ cursor: pointer;
534
+ transition: all 0.2s ease;
535
+ font-size: 0.9rem;
536
+ }
537
+
538
+ .nav-btn:hover {
539
+ background: #007bff;
540
+ color: white;
541
+ }
542
+
543
+ /* Debug section */
544
+ .debug-section {
545
+ background: #f8f9fa;
546
+ border: 1px solid #e1e5e9;
547
+ border-radius: 8px;
548
+ padding: 1.5rem;
549
+ margin-top: 2rem;
550
+ }
551
+
552
+ .debug-section h3 {
553
+ margin: 0 0 1rem 0;
554
+ color: #2c3e50;
555
+ font-size: 1.125rem;
556
+ }
557
+
558
+ .debug-info p {
559
+ margin: 0.5rem 0;
560
+ font-family: 'SFMono-Regular', Consolas, monospace;
561
+ font-size: 0.875rem;
562
+ color: #495057;
563
+ }
564
+
565
+ .debug-info strong {
566
+ color: #2c3e50;
567
+ }
568
+ </style>
@@ -0,0 +1,13 @@
1
+ import type { Router } from '../../router.svelte';
2
+ interface Props {
3
+ params: Record<string, string>;
4
+ location: {
5
+ pathname: string;
6
+ search: string;
7
+ params: Record<string, string>;
8
+ };
9
+ router: Router;
10
+ }
11
+ declare const AboutPage: import("svelte").Component<Props, {}, "">;
12
+ type AboutPage = ReturnType<typeof AboutPage>;
13
+ export default AboutPage;