@functionalcms/svelte-components 4.36.10 → 5.0.0-beta2

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 (127) hide show
  1. package/css/functional.css +48 -1
  2. package/dist/auth/getMachineAccessToken.d.ts +1 -1
  3. package/dist/auth/getMachineAccessToken.js +1 -2
  4. package/dist/auth/machineAuthenticationProvider.d.ts +1 -1
  5. package/dist/auth/machineAuthenticationProvider.js +1 -2
  6. package/dist/auth/tokenRefresh.d.ts +1 -1
  7. package/dist/auth/tokenRefresh.js +4 -5
  8. package/dist/auth/types.js +4 -8
  9. package/dist/auth/userAuthenticationProvider.d.ts +1 -1
  10. package/dist/auth/userAuthenticationProvider.js +1 -2
  11. package/dist/components/Icon.svelte +16 -0
  12. package/dist/components/Icon.svelte.d.ts +9 -0
  13. package/dist/components/content/Markdown.svelte +2 -2
  14. package/dist/components/content/Markdown.svelte.d.ts +17 -4
  15. package/dist/components/form/Dropzone.svelte +2 -5
  16. package/dist/components/form/SmartForm.svelte +206 -60
  17. package/dist/components/form/SmartForm.svelte.d.ts +2 -2
  18. package/dist/components/form/form.d.ts +87 -17
  19. package/dist/components/form/form.js +86 -6
  20. package/dist/components/icons.d.ts +763 -0
  21. package/dist/components/icons.js +765 -0
  22. package/dist/components/integrations/EasyTools.svelte +1 -1
  23. package/dist/components/layouts/DefaultLayout.svelte +92 -41
  24. package/dist/components/layouts/DefaultLayout.svelte.d.ts +17 -8
  25. package/dist/components/layouts/FlexBox.svelte +73 -0
  26. package/dist/components/layouts/FlexBox.svelte.d.ts +17 -0
  27. package/dist/components/layouts/MenuLayout.svelte +39 -201
  28. package/dist/components/layouts/MenuLayout.svelte.d.ts +2 -10
  29. package/dist/components/layouts/StyleBox.svelte +17 -0
  30. package/dist/components/layouts/StyleBox.svelte.d.ts +7 -0
  31. package/dist/components/layouts/Well.svelte +8 -34
  32. package/dist/components/layouts/Well.svelte.d.ts +4 -8
  33. package/dist/components/layouts/menuItems.d.ts +29 -0
  34. package/dist/components/layouts/menuItems.js +28 -0
  35. package/dist/index-server.d.ts +2 -1
  36. package/dist/index-server.js +2 -1
  37. package/dist/index.d.ts +9 -47
  38. package/dist/index.js +8 -59
  39. package/dist/server-side/getServices.d.ts +8 -8
  40. package/dist/server-side/getServices.js +16 -27
  41. package/dist/server-side/handlers/paraglideHandler.d.ts +2 -0
  42. package/dist/server-side/handlers/paraglideHandler.js +13 -0
  43. package/dist/server-side/handlers/redirectPipelineHandler.d.ts +5 -0
  44. package/dist/server-side/{getRedirectPipeline.js → handlers/redirectPipelineHandler.js} +1 -2
  45. package/dist/utils/stringHash.d.ts +1 -0
  46. package/dist/utils/stringHash.js +7 -0
  47. package/package.json +28 -39
  48. package/css/functional.css.map +0 -1
  49. package/dist/components/MaterialIconSet.d.ts +0 -3819
  50. package/dist/components/MaterialIconSet.js +0 -3823
  51. package/dist/components/Styling.d.ts +0 -59
  52. package/dist/components/Styling.js +0 -66
  53. package/dist/components/blog/blog.d.ts +0 -20
  54. package/dist/components/blog/blog.js +0 -29
  55. package/dist/components/dynamic/CopyToClipboard.svelte +0 -16
  56. package/dist/components/dynamic/CopyToClipboard.svelte.d.ts +0 -36
  57. package/dist/components/dynamic/DynamicButton.d.ts +0 -1
  58. package/dist/components/dynamic/DynamicButton.js +0 -10
  59. package/dist/components/dynamic/DynamicButton.svelte +0 -33
  60. package/dist/components/dynamic/DynamicButton.svelte.d.ts +0 -9
  61. package/dist/components/form/Button.svelte +0 -389
  62. package/dist/components/form/Button.svelte.d.ts +0 -30
  63. package/dist/components/form/ChoiceInput.svelte +0 -375
  64. package/dist/components/form/ChoiceInput.svelte.d.ts +0 -3
  65. package/dist/components/form/Input.svelte +0 -461
  66. package/dist/components/form/Input.svelte.d.ts +0 -30
  67. package/dist/components/form/Select.svelte +0 -163
  68. package/dist/components/form/Select.svelte.d.ts +0 -21
  69. package/dist/components/form/Switch.svelte +0 -293
  70. package/dist/components/form/Switch.svelte.d.ts +0 -14
  71. package/dist/components/indicators/Loader.svelte +0 -114
  72. package/dist/components/indicators/Loader.svelte.d.ts +0 -30
  73. package/dist/components/indicators/Spinner.svelte +0 -109
  74. package/dist/components/indicators/Spinner.svelte.d.ts +0 -28
  75. package/dist/components/layouts/Banner.svelte +0 -26
  76. package/dist/components/layouts/Banner.svelte.d.ts +0 -8
  77. package/dist/components/layouts/FoldablePanel.svelte +0 -16
  78. package/dist/components/layouts/FoldablePanel.svelte.d.ts +0 -7
  79. package/dist/components/layouts/SimpleFooter.svelte +0 -23
  80. package/dist/components/layouts/SimpleFooter.svelte.d.ts +0 -8
  81. package/dist/components/layouts/Tabs.svelte +0 -362
  82. package/dist/components/layouts/Tabs.svelte.d.ts +0 -11
  83. package/dist/components/layouts/TwoColumnsLayout.svelte +0 -44
  84. package/dist/components/layouts/TwoColumnsLayout.svelte.d.ts +0 -13
  85. package/dist/components/layouts/menuLayout.d.ts +0 -12
  86. package/dist/components/layouts/menuLayout.js +0 -1
  87. package/dist/components/layouts/tabs.d.ts +0 -21
  88. package/dist/components/layouts/tabs.js +0 -13
  89. package/dist/components/menu/CollapsibleMenu.svelte +0 -66
  90. package/dist/components/menu/CollapsibleMenu.svelte.d.ts +0 -18
  91. package/dist/components/menu/DynamicMenu.svelte +0 -55
  92. package/dist/components/menu/DynamicMenu.svelte.d.ts +0 -13
  93. package/dist/components/menu/HamburgerMenu.svelte +0 -62
  94. package/dist/components/menu/HamburgerMenu.svelte.d.ts +0 -14
  95. package/dist/components/menu/ListMenu.svelte +0 -61
  96. package/dist/components/menu/ListMenu.svelte.d.ts +0 -17
  97. package/dist/components/menu/NavigationDrawer.svelte +0 -53
  98. package/dist/components/menu/NavigationDrawer.svelte.d.ts +0 -18
  99. package/dist/components/menu/types.d.ts +0 -23
  100. package/dist/components/menu/types.js +0 -35
  101. package/dist/components/presentation/Accordion.svelte +0 -82
  102. package/dist/components/presentation/Accordion.svelte.d.ts +0 -11
  103. package/dist/components/presentation/Card.svelte +0 -147
  104. package/dist/components/presentation/Card.svelte.d.ts +0 -15
  105. package/dist/components/presentation/Carousel.d.ts +0 -5
  106. package/dist/components/presentation/Carousel.js +0 -1
  107. package/dist/components/presentation/Carousel.svelte +0 -119
  108. package/dist/components/presentation/Carousel.svelte.d.ts +0 -17
  109. package/dist/components/presentation/Dialog.svelte +0 -75
  110. package/dist/components/presentation/Dialog.svelte.d.ts +0 -22
  111. package/dist/components/presentation/Disclose.svelte +0 -116
  112. package/dist/components/presentation/Disclose.svelte.d.ts +0 -11
  113. package/dist/components/presentation/Drawer.svelte +0 -118
  114. package/dist/components/presentation/Drawer.svelte.d.ts +0 -13
  115. package/dist/components/presentation/EmptyState.svelte +0 -67
  116. package/dist/components/presentation/EmptyState.svelte.d.ts +0 -10
  117. package/dist/components/presentation/Gallery.svelte +0 -35
  118. package/dist/components/presentation/Gallery.svelte.d.ts +0 -14
  119. package/dist/components/presentation/Link.svelte +0 -362
  120. package/dist/components/presentation/Link.svelte.d.ts +0 -27
  121. package/dist/components/utils.d.ts +0 -3
  122. package/dist/components/utils.js +0 -1
  123. package/dist/index.server.d.ts +0 -11
  124. package/dist/index.server.js +0 -10
  125. package/dist/server-side/getRedirectPipeline.d.ts +0 -6
  126. package/dist/utils.d.ts +0 -1
  127. package/dist/utils.js +0 -3
@@ -0,0 +1,28 @@
1
+ export var Visibility;
2
+ (function (Visibility) {
3
+ Visibility[Visibility["Always"] = 0] = "Always";
4
+ Visibility[Visibility["Authenticated"] = 1] = "Authenticated";
5
+ Visibility[Visibility["NotAuthenticated"] = 2] = "NotAuthenticated";
6
+ })(Visibility || (Visibility = {}));
7
+ export function selectVisible(pages, visibility) {
8
+ return pages.filter((page) => page?.visibility === Visibility.Always ||
9
+ page?.visibility === visibility);
10
+ }
11
+ export function isSelected(includeSubpagesForSelect, page, item) {
12
+ if (page?.url?.pathname === '/') {
13
+ return page?.url?.pathname === item.href;
14
+ }
15
+ return includeSubpagesForSelect
16
+ ? (page?.url.pathname.startsWith(item.href ?? '-') && item.href !== '/')
17
+ : page?.url.pathname === item.href;
18
+ }
19
+ export const defaultCss = {
20
+ buttonCss: [],
21
+ container: [],
22
+ link: []
23
+ };
24
+ export function isAuthenticated(page) {
25
+ const isAuthenticated = page?.data?.session != null;
26
+ const visibility = isAuthenticated ? Visibility.Authenticated : Visibility.NotAuthenticated;
27
+ return visibility;
28
+ }
@@ -8,4 +8,5 @@ export { getBlobService, getCommunicationService, getDataService, getTemplateSer
8
8
  export type { RedirectResponse } from './auth/RedirectResponse.js';
9
9
  export { createMachineTokenApprovedLocals } from './auth/getMachineAccessToken.js';
10
10
  export { isHuman } from './components/form/AntiBot.js';
11
- export { default as getRedirectPipeline } from './server-side/getRedirectPipeline.js';
11
+ export { paraglideHandler } from './server-side/handlers/paraglideHandler.js';
12
+ export { redirectPipelineHandler } from './server-side/handlers/redirectPipelineHandler.js';
@@ -7,4 +7,5 @@ export { userAuthenticationProvider } from './auth/userAuthenticationProvider.js
7
7
  export { getBlobService, getCommunicationService, getDataService, getTemplateService, getWebsiteService, getAIService, getAuthService, getFileService, } from './server-side/getServices.js';
8
8
  export { createMachineTokenApprovedLocals } from './auth/getMachineAccessToken.js';
9
9
  export { isHuman } from './components/form/AntiBot.js';
10
- export { default as getRedirectPipeline } from './server-side/getRedirectPipeline.js';
10
+ export { paraglideHandler } from './server-side/handlers/paraglideHandler.js';
11
+ export { redirectPipelineHandler } from './server-side/handlers/redirectPipelineHandler.js';
package/dist/index.d.ts CHANGED
@@ -1,56 +1,18 @@
1
1
  export { default as Meta } from './components/layouts/Meta.svelte';
2
2
  export { default as Tracker } from './components/layouts/Tracker.svelte';
3
3
  export { default as DefaultLayout } from './components/layouts/DefaultLayout.svelte';
4
- export { default as TwoColumnsLayout } from './components/layouts/TwoColumnsLayout.svelte';
5
4
  export { default as Well } from './components/layouts/Well.svelte';
6
- export { default as Banner } from './components/layouts/Banner.svelte';
7
- export { default as SimpleFooter } from './components/layouts/SimpleFooter.svelte';
8
- export { default as Tabs } from './components/layouts/Tabs.svelte';
9
- export type { Tab, TabSizes, NavigationDirection } from './components/layouts/tabs.js';
5
+ export { default as FlexBox } from './components/layouts/FlexBox.svelte';
6
+ export { default as StyleBox } from './components/layouts/StyleBox.svelte';
10
7
  export { default as MenuLayout } from './components/layouts/MenuLayout.svelte';
11
- export type { MenuItem, MenuSection, MenuIcon } from './components/layouts/menuLayout.js';
12
- export { Justify, AlignItmes, Placement, Orientation, Position, Sizes, ComponentSize } from './components/Styling.js';
13
- export { default as Link } from './components/presentation/Link.svelte';
14
- export { default as Logo } from './components/presentation/Logo.svelte';
15
- export { default as Card } from './components/presentation/Card.svelte';
16
- export { default as Gallery } from './components/presentation/Gallery.svelte';
17
- export type { CarouselItem } from './components/presentation/Carousel.js';
18
- export { default as Carousel } from './components/presentation/Carousel.svelte';
19
- export { default as Drawer } from './components/presentation/Drawer.svelte';
20
- export { default as Disclose } from './components/presentation/Disclose.svelte';
21
- export { default as EmptyState } from './components/presentation/EmptyState.svelte';
8
+ export type { MenuItem, MenuSection } from './components/layouts/menuItems.js';
9
+ export { Visibility } from './components/layouts/menuItems.js';
22
10
  export { default as ImageCompare } from './components/presentation/ImageCompare.svelte';
23
- export { default as Dialog } from './components/presentation/Dialog.svelte';
24
- export { default as Icon } from "@iconify/svelte";
25
- export { default as ListMenu } from './components/menu/ListMenu.svelte';
26
- export { default as DynamicMenu } from './components/menu/DynamicMenu.svelte';
27
- export { default as HamburgerMenu } from './components/menu/HamburgerMenu.svelte';
28
- export { default as CollapsibleMenu } from './components/menu/CollapsibleMenu.svelte';
29
- export { isAuthenticated, selectVisible } from './components/menu/types.js';
30
- export { HeaderNavigationItem, Visiblity } from './components/menu/types.js';
31
- export { default as Button } from './components/form/Button.svelte';
32
- export { default as Input } from './components/form/Input.svelte';
33
- export { default as Switch } from './components/form/Switch.svelte';
34
- export { default as ChoiceInput } from './components/form/ChoiceInput.svelte';
35
- export { InputType, FieldType, LabelSize, type Field, SubmitResult } from './components/form/form.js';
11
+ export { InputType, FieldType, type Field, type InputField, type TextareaField, type CollectionField, type SelectField, type FilePickerField, type TimePickerField, type PhoneInputField, SubmitResult, createInputField, createTextareaField, createFilePickerField, createCollectionField, createSelectField, createTimePickerField, createPhoneInputField, } from './components/form/form.js';
36
12
  export { default as AntiBot } from './components/form/AntiBot.svelte';
37
- export { default as Dropzone } from './components/form/Dropzone.svelte';
38
- export { default as Select } from './components/form/Select.svelte';
39
13
  export { default as SmartForm } from './components/form/SmartForm.svelte';
40
- export { default as Markdown } from './components/content/Markdown.svelte';
41
- export { type BlogPost, listAllPosts, importPost } from './components/blog/blog.js';
42
14
  export { default as EasyTools } from './components/integrations/EasyTools.svelte';
43
- /**
44
- * Indicators
45
- **/
46
- export { default as Loader } from './components/indicators/Loader.svelte';
47
- export { default as Spinner } from './components/indicators/Spinner.svelte';
48
- /**
49
- * Dynamic
50
- **/
51
- export { default as DynamicButton } from './components/dynamic/DynamicButton.svelte';
52
- export { executeRest } from './components/dynamic/DynamicButton.js';
53
- /**
54
- * Icons
55
- **/
56
- export { getIcon, MaterialSet, IconsSet } from './components/MaterialIconSet.js';
15
+ export { type Icons, SolidIcons, OutlinedIcons } from './components/icons.js';
16
+ export { default as Icon } from './components/Icon.svelte';
17
+ export * from "flowbite-svelte";
18
+ export { hashString } from './utils/stringHash.js';
package/dist/index.js CHANGED
@@ -4,74 +4,23 @@
4
4
  export { default as Meta } from './components/layouts/Meta.svelte';
5
5
  export { default as Tracker } from './components/layouts/Tracker.svelte';
6
6
  export { default as DefaultLayout } from './components/layouts/DefaultLayout.svelte';
7
- export { default as TwoColumnsLayout } from './components/layouts/TwoColumnsLayout.svelte';
8
7
  export { default as Well } from './components/layouts/Well.svelte';
9
- export { default as Banner } from './components/layouts/Banner.svelte';
10
- export { default as SimpleFooter } from './components/layouts/SimpleFooter.svelte';
11
- export { default as Tabs } from './components/layouts/Tabs.svelte';
8
+ export { default as FlexBox } from './components/layouts/FlexBox.svelte';
9
+ export { default as StyleBox } from './components/layouts/StyleBox.svelte';
12
10
  export { default as MenuLayout } from './components/layouts/MenuLayout.svelte';
13
- /*
14
- * Styling
15
- */
16
- export { Justify, AlignItmes, Placement, Orientation, Position, Sizes, ComponentSize } from './components/Styling.js';
17
- /*
18
- * Presentation
19
- */
20
- export { default as Link } from './components/presentation/Link.svelte';
21
- export { default as Logo } from './components/presentation/Logo.svelte';
22
- export { default as Card } from './components/presentation/Card.svelte';
23
- export { default as Gallery } from './components/presentation/Gallery.svelte';
24
- export { default as Carousel } from './components/presentation/Carousel.svelte';
25
- export { default as Drawer } from './components/presentation/Drawer.svelte';
26
- export { default as Disclose } from './components/presentation/Disclose.svelte';
27
- export { default as EmptyState } from './components/presentation/EmptyState.svelte';
11
+ export { Visibility } from './components/layouts/menuItems.js';
28
12
  export { default as ImageCompare } from './components/presentation/ImageCompare.svelte';
29
- export { default as Dialog } from './components/presentation/Dialog.svelte';
30
- export { default as Icon } from "@iconify/svelte";
31
- /*
32
- * Menu
33
- */
34
- export { default as ListMenu } from './components/menu/ListMenu.svelte';
35
- export { default as DynamicMenu } from './components/menu/DynamicMenu.svelte';
36
- export { default as HamburgerMenu } from './components/menu/HamburgerMenu.svelte';
37
- export { default as CollapsibleMenu } from './components/menu/CollapsibleMenu.svelte';
38
- export { isAuthenticated, selectVisible } from './components/menu/types.js';
39
- export { HeaderNavigationItem, Visiblity } from './components/menu/types.js';
40
13
  /*
41
14
  * Form
42
15
  */
43
- export { default as Button } from './components/form/Button.svelte';
44
- export { default as Input } from './components/form/Input.svelte';
45
- export { default as Switch } from './components/form/Switch.svelte';
46
- export { default as ChoiceInput } from './components/form/ChoiceInput.svelte';
47
- export { InputType, FieldType, LabelSize, SubmitResult } from './components/form/form.js';
16
+ export { InputType, FieldType, SubmitResult, createInputField, createTextareaField, createFilePickerField, createCollectionField, createSelectField, createTimePickerField, createPhoneInputField, } from './components/form/form.js';
48
17
  export { default as AntiBot } from './components/form/AntiBot.svelte';
49
- export { default as Dropzone } from './components/form/Dropzone.svelte';
50
- export { default as Select } from './components/form/Select.svelte';
51
18
  export { default as SmartForm } from './components/form/SmartForm.svelte';
52
- /*
53
- * Content
54
- */
55
- export { default as Markdown } from './components/content/Markdown.svelte';
56
- /*
57
- * Blog
58
- */
59
- export { listAllPosts, importPost } from './components/blog/blog.js';
60
19
  /*
61
20
  * Integrations
62
21
  */
63
22
  export { default as EasyTools } from './components/integrations/EasyTools.svelte';
64
- /**
65
- * Indicators
66
- **/
67
- export { default as Loader } from './components/indicators/Loader.svelte';
68
- export { default as Spinner } from './components/indicators/Spinner.svelte';
69
- /**
70
- * Dynamic
71
- **/
72
- export { default as DynamicButton } from './components/dynamic/DynamicButton.svelte';
73
- export { executeRest } from './components/dynamic/DynamicButton.js';
74
- /**
75
- * Icons
76
- **/
77
- export { getIcon, MaterialSet, IconsSet } from './components/MaterialIconSet.js';
23
+ export { SolidIcons, OutlinedIcons } from './components/icons.js';
24
+ export { default as Icon } from './components/Icon.svelte';
25
+ export * from "flowbite-svelte";
26
+ export { hashString } from './utils/stringHash.js';
@@ -1,10 +1,10 @@
1
1
  import { CommunicationService, DataService, TemplateService, WebsitesService, BlobService, AiService, AuthService, FilesService } from "@functionalcms/services";
2
2
  import type { Locals } from "./types.js";
3
- export declare const getDataService: (locals: Locals, endpoint?: string | undefined) => DataService;
4
- export declare const getCommunicationService: (locals: Locals, endpoint?: string | undefined) => CommunicationService;
5
- export declare const getWebsiteService: (locals: Locals, endpoint?: string | undefined) => WebsitesService;
6
- export declare const getTemplateService: (locals: Locals, endpoint?: string | undefined) => TemplateService;
7
- export declare const getBlobService: (locals: Locals, endpoint?: string | undefined) => BlobService;
8
- export declare const getAIService: (locals: Locals, endpoint?: string | undefined) => AiService;
9
- export declare const getAuthService: (locals: Locals, endpoint?: string | undefined) => AuthService;
10
- export declare const getFileService: (locals: Locals, endpoint?: string | undefined) => FilesService;
3
+ export declare const getDataService: (locals: Locals, domain: string, endpoint: string) => DataService;
4
+ export declare const getCommunicationService: (locals: Locals, domain: string, endpoint: string) => CommunicationService;
5
+ export declare const getWebsiteService: (locals: Locals, domain: string, endpoint: string) => WebsitesService;
6
+ export declare const getTemplateService: (locals: Locals, domain: string, endpoint: string) => TemplateService;
7
+ export declare const getBlobService: (locals: Locals, domain: string, endpoint: string) => BlobService;
8
+ export declare const getAIService: (locals: Locals, domain: string, endpoint: string) => AiService;
9
+ export declare const getAuthService: (locals: Locals, endpoint: string) => AuthService;
10
+ export declare const getFileService: (locals: Locals, domain: string, endpoint: string) => FilesService;
@@ -1,55 +1,44 @@
1
- import { DOMAIN, ENDPOINT } from "$env/static/private";
2
1
  import { CommunicationService, DataService, TemplateService, WebsitesService, BlobService, AiService, AuthService, FilesService, } from "@functionalcms/services";
3
2
  const getAccessToken = (locals) => {
4
3
  return locals.token.access_token;
5
4
  };
6
- export const getDataService = (locals, endpoint = undefined) => {
5
+ export const getDataService = (locals, domain, endpoint) => {
7
6
  const accessToken = getAccessToken(locals);
8
- const serviceEndopint = endpoint ?? ENDPOINT;
9
- const service = new DataService(accessToken, DOMAIN, serviceEndopint);
7
+ const service = new DataService(accessToken, domain, endpoint);
10
8
  return service;
11
9
  };
12
- export const getCommunicationService = (locals, endpoint = undefined) => {
10
+ export const getCommunicationService = (locals, domain, endpoint) => {
13
11
  const accessToken = getAccessToken(locals);
14
- const serviceEndopint = endpoint ?? ENDPOINT;
15
- const service = new CommunicationService(accessToken, DOMAIN, serviceEndopint);
12
+ const service = new CommunicationService(accessToken, domain, endpoint);
16
13
  return service;
17
14
  };
18
- export const getWebsiteService = (locals, endpoint = undefined) => {
15
+ export const getWebsiteService = (locals, domain, endpoint) => {
19
16
  const accessToken = getAccessToken(locals);
20
- const serviceEndopint = endpoint ?? ENDPOINT;
21
- const finalDomain = locals?.domain || DOMAIN;
22
- const service = new WebsitesService(accessToken, finalDomain, serviceEndopint);
17
+ const service = new WebsitesService(accessToken, domain, endpoint);
23
18
  return service;
24
19
  };
25
- export const getTemplateService = (locals, endpoint = undefined) => {
20
+ export const getTemplateService = (locals, domain, endpoint) => {
26
21
  const accessToken = getAccessToken(locals);
27
- const serviceEndopint = endpoint ?? ENDPOINT;
28
- const service = new TemplateService(accessToken, DOMAIN, serviceEndopint);
22
+ const service = new TemplateService(accessToken, domain, endpoint);
29
23
  return service;
30
24
  };
31
- export const getBlobService = (locals, endpoint = undefined) => {
25
+ export const getBlobService = (locals, domain, endpoint) => {
32
26
  const accessToken = getAccessToken(locals);
33
- const serviceEndopint = endpoint ?? ENDPOINT;
34
- const service = new BlobService(accessToken, DOMAIN, serviceEndopint);
27
+ const service = new BlobService(accessToken, domain, endpoint);
35
28
  return service;
36
29
  };
37
- export const getAIService = (locals, endpoint = undefined) => {
30
+ export const getAIService = (locals, domain, endpoint) => {
38
31
  const accessToken = getAccessToken(locals);
39
- const serviceEndopint = endpoint ?? ENDPOINT;
40
- const service = new AiService(accessToken, DOMAIN, serviceEndopint);
32
+ const service = new AiService(accessToken, domain, endpoint);
41
33
  return service;
42
34
  };
43
- export const getAuthService = (locals, endpoint = undefined) => {
35
+ export const getAuthService = (locals, endpoint) => {
44
36
  const accessToken = getAccessToken(locals);
45
- const serviceEndopint = endpoint ?? ENDPOINT;
46
- const service = new AuthService(accessToken, serviceEndopint);
37
+ const service = new AuthService(accessToken, endpoint);
47
38
  return service;
48
39
  };
49
- export const getFileService = (locals, endpoint = undefined) => {
40
+ export const getFileService = (locals, domain, endpoint) => {
50
41
  const accessToken = getAccessToken(locals);
51
- const serviceEndopint = endpoint ?? ENDPOINT;
52
- const finalDomain = locals?.domain || DOMAIN;
53
- const service = new FilesService(accessToken, finalDomain, serviceEndopint);
42
+ const service = new FilesService(accessToken, domain, endpoint);
54
43
  return service;
55
44
  };
@@ -0,0 +1,2 @@
1
+ import type { Handle } from '@sveltejs/kit';
2
+ export declare const paraglideHandler: (paraglideMiddleware: any, getTextDirection: any) => Handle;
@@ -0,0 +1,13 @@
1
+ // creating a handle to use the paraglide middleware
2
+ export const paraglideHandler = (paraglideMiddleware, getTextDirection) => {
3
+ return ({ event, resolve }) => paraglideMiddleware(event.request, ({ request: localizedRequest, locale }) => {
4
+ event.request = localizedRequest;
5
+ return resolve(event, {
6
+ transformPageChunk: ({ html }) => {
7
+ return html
8
+ .replace('%lang%', locale)
9
+ .replace('%dir%', getTextDirection(locale));
10
+ }
11
+ });
12
+ });
13
+ };
@@ -0,0 +1,5 @@
1
+ export interface Redirection {
2
+ pathname: string;
3
+ redirectTo: string;
4
+ }
5
+ export declare const redirectPipelineHandler: (redirections: Array<Redirection>) => ({ event, resolve }: any) => Promise<any>;
@@ -1,5 +1,5 @@
1
1
  import { redirect } from '@sveltejs/kit';
2
- const getRedirectPipeline = (redirections) => {
2
+ export const redirectPipelineHandler = (redirections) => {
3
3
  const redirectionPipeline = async ({ event, resolve }) => {
4
4
  const url = event.url.pathname;
5
5
  const elem = redirections.find((element) => element.pathname === url);
@@ -14,4 +14,3 @@ const getRedirectPipeline = (redirections) => {
14
14
  };
15
15
  return redirectionPipeline;
16
16
  };
17
- export default getRedirectPipeline;
@@ -0,0 +1 @@
1
+ export declare function hashString(input: string): number;
@@ -0,0 +1,7 @@
1
+ export function hashString(input) {
2
+ let hash = 5381;
3
+ for (let i = 0; i < input.length; i++) {
4
+ hash = (hash * 33) ^ input.charCodeAt(i);
5
+ }
6
+ return hash >>> 0; // unsigned 32-bit integer
7
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@functionalcms/svelte-components",
3
- "version": "4.36.10",
3
+ "version": "5.0.0-beta2",
4
4
  "license": "MIT",
5
5
  "watch": {
6
6
  "build": {
@@ -13,16 +13,14 @@
13
13
  },
14
14
  "scripts": {
15
15
  "dev": "vite dev",
16
- "build-css": "sass ./src/lib/css/functional.scss ./css/functional.css --style compressed",
17
- "build": "npm run build-css && vite build && npm run package",
16
+ "build-css": "node -e \"const fs = require('node:fs'); fs.mkdirSync('./css', { recursive: true }); fs.copyFileSync('./src/css/functional.css', './css/functional.css');\"",
17
+ "build": "vite build && npm run package",
18
18
  "preview": "vite preview",
19
- "package": "svelte-kit sync && svelte-package && publint",
20
- "prepublishOnly": "npm run build-css && npm run package",
19
+ "package": "npm run build-css && svelte-kit sync && svelte-package && publint",
20
+ "prepublishOnly": "npm run package",
21
21
  "check": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json",
22
22
  "check:watch": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json --watch",
23
- "lint": "eslint . && prettier --check .",
24
- "format": "prettier --write .",
25
- "watch": "npm-watch build"
23
+ "build:watch": "nodemon --watch src --exec \"npm run build\""
26
24
  },
27
25
  "exports": {
28
26
  ".": {
@@ -33,51 +31,42 @@
33
31
  "types": "./dist/index-server.d.ts",
34
32
  "svelte": "./dist/index-server.js"
35
33
  },
36
- "./css": "./css/*.css",
34
+ "./css/functional.css": "./css/functional.css",
37
35
  "./package.json": "./package.json"
38
36
  },
39
37
  "files": [
40
38
  "dist",
41
39
  "css",
42
- "!dist/css/**/*.*",
43
40
  "!dist/**/*.test.*",
44
41
  "!dist/**/*.spec.*"
45
42
  ],
46
43
  "devDependencies": {
47
- "@eslint/compat": "^1.2.9",
48
- "@eslint/js": "^9.26.0",
49
44
  "@functionalcms/services": "latest",
50
- "@iconify/json": "^2.2.429",
51
- "@iconify/svelte": "^5.2.1",
52
- "@sveltejs/adapter-auto": "^4.0.0",
53
- "@sveltejs/kit": "^2.20.8",
54
- "@sveltejs/package": "^2.3.11",
55
- "@sveltejs/vite-plugin-svelte": "^5.0.3",
56
- "autoprefixer": "^10.4.21",
57
- "eslint": "^9.26.0",
58
- "eslint-config-prettier": "^10.1.2",
59
- "eslint-plugin-svelte": "^3.5.1",
60
- "npm-watch": "^0.13.0",
61
- "prettier": "^3.5.3",
62
- "prettier-plugin-svelte": "^3.3.3",
63
- "publint": "^0.3.12",
64
- "sass": "^1.83.4",
65
- "svelte": "^5.28.2",
66
- "svelte-check": "^4.1.7",
67
- "typescript": "^5.8.3",
68
- "typescript-eslint": "^8.31.1",
69
- "unplugin-icons": "^23.0.1",
70
- "vite": "^6.3.4"
45
+ "@sveltejs/adapter-auto": "^7.0.1",
46
+ "@sveltejs/kit": "^2.55.0",
47
+ "@sveltejs/package": "^2.5.7",
48
+ "@sveltejs/vite-plugin-svelte": "^7.0.0",
49
+ "publint": "^0.3.18",
50
+ "svelte": "^5.54.0",
51
+ "svelte-check": "^4.4.5",
52
+ "tailwind-merge": "^3.5.0",
53
+ "tailwind-variants": "^3.2.2",
54
+ "tw-animate-css": "^1.4.0",
55
+ "typescript": "^5.9.3",
56
+ "vite": "^8.0.1"
71
57
  },
72
58
  "dependencies": {
73
- "embla-carousel-svelte": "^8.6.0",
74
- "ioredis": "^5.6.1",
75
- "marked": "^15.0.11",
76
- "oauth4webapi": "^3.5.0"
59
+ "@tailwindcss/vite": "^4.2.2",
60
+ "flowbite": "^4.0.1",
61
+ "flowbite-svelte": "^1.31.0",
62
+ "flowbite-svelte-icons": "^3.1.0",
63
+ "ioredis": "^5.10.0",
64
+ "oauth4webapi": "^3.8.5",
65
+ "tailwindcss": "^4.2.2"
77
66
  },
78
67
  "peerDependencies": {
79
- "@sveltejs/kit": "^2.20.8",
80
- "svelte": "^5.28.2"
68
+ "@sveltejs/kit": "^2.55.0",
69
+ "svelte": "^5.53.13"
81
70
  },
82
71
  "type": "module",
83
72
  "main": "./dist/index.js",
@@ -1 +0,0 @@
1
- {"version":3,"sourceRoot":"","sources":["../src/lib/css/common.scss","../src/lib/css/opinions.scss","../src/lib/css/menu.scss","../src/lib/css/logo.scss","../src/lib/css/displays.scss","../src/lib/css/properties.scss"],"names":[],"mappings":"AAAA,aACI,2CACA,oCACA,mCACA,kCACA,qCACA,+BACA,yCACA,mCACA,kCACA,oCACA,mCACA,6BACA,wBACA,uBACA,+BACA,gCACA,8BACA,gCACA,sCACA,kCACA,iCACA,gCACA,2BACA,mCACA,kCACA,iCACA,kCACA,4BACA,uDACA,qDAGJ,aACI,0CACA,mCACA,kCACA,iCACA,iCACA,8BACA,wCACA,kCACA,iCACA,mCACA,kCACA,4BACA,0BACA,yBACA,6CACA,kDACA,4CACA,8CACA,oDACA,iCACA,gCACA,+BACA,0BACA,kCACA,iCACA,gCACA,iCACA,2BACA,qDACA,oDAGJ,MACI,mBACA,gEACA,kDACA,gDACA,8CACA,oDACA,wCACA,gDACA,8CACA,kDACA,gDACA,oCACA,gCACA,8BACA,wCACA,gDACA,sCACA,0CACA,sDACA,gCACA,4CACA,0CACA,8CACA,6CACA,2CACA,gDACA,8CACA,4CACA,8CACA,mCAGJ,mCACI,MACI,kBACA,+DACA,iDACA,+CACA,6CACA,mDACA,uCACA,+CACA,6CACA,iDACA,+CACA,mCACA,+BACA,6BACA,uCACA,+CACA,qCACA,yCACA,qDACA,+BACA,2CACA,yCACA,6CACA,4CACA,0CACA,+CACA,6CACA,2CACA,6CACA,mCAIR,qBACI,mBACA,gEACA,kDACA,gDACA,8CACA,oDACA,wCACA,gDACA,8CACA,kDACA,gDACA,oCACA,gCACA,8BACA,wCACA,gDACA,sCACA,0CACA,sDACA,gCACA,4CACA,0CACA,8CACA,6CACA,2CACA,gDACA,8CACA,4CACA,8CACA,mCAGJ,oBACI,kBACA,+DACA,iDACA,+CACA,6CACA,mDACA,uCACA,+CACA,6CACA,iDACA,+CACA,mCACA,+BACA,6BACA,uCACA,+CACA,qCACA,yCACA,qDACA,+BACA,2CACA,yCACA,6CACA,4CACA,0CACA,+CACA,6CACA,2CACA,6CACA,kCAGJ,aACI,wCACA,kCACA,gCACA,2CAGJ,aACI,iBACA,mBACA,iBACA,mBACA,iBACA,mBACA,oBACA,i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","file":"functional.css"}