fluid-ui-svelte 0.2.4 → 0.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (132) hide show
  1. package/LICENSE +22 -0
  2. package/README.md +16 -5
  3. package/dist/app.css +284 -0
  4. package/dist/base/Button.svelte +35 -0
  5. package/dist/base/Button.svelte.d.ts +14 -0
  6. package/dist/base/Container.svelte +34 -0
  7. package/dist/base/Container.svelte.d.ts +14 -0
  8. package/dist/base/Image.svelte +21 -0
  9. package/dist/base/Image.svelte.d.ts +8 -0
  10. package/dist/base/InputField.svelte +33 -0
  11. package/dist/base/InputField.svelte.d.ts +10 -0
  12. package/dist/base/Link.svelte +23 -0
  13. package/dist/base/Link.svelte.d.ts +10 -0
  14. package/dist/base/List.svelte +39 -0
  15. package/dist/base/List.svelte.d.ts +33 -0
  16. package/dist/base/Table.svelte +80 -0
  17. package/dist/base/Table.svelte.d.ts +42 -0
  18. package/dist/base/Text.svelte +45 -0
  19. package/dist/base/Text.svelte.d.ts +11 -0
  20. package/dist/base/index.d.ts +8 -0
  21. package/dist/base/index.js +8 -0
  22. package/dist/components/Accordion.svelte +44 -1
  23. package/dist/components/Accordion.svelte.d.ts +14 -25
  24. package/dist/components/Calendar.svelte +62 -0
  25. package/dist/components/Calendar.svelte.d.ts +12 -25
  26. package/dist/components/Carousel.svelte +114 -0
  27. package/dist/components/Carousel.svelte.d.ts +37 -0
  28. package/dist/components/CodeBlock.svelte +33 -0
  29. package/dist/components/CodeBlock.svelte.d.ts +9 -0
  30. package/dist/components/Drawer.svelte +77 -22
  31. package/dist/components/Drawer.svelte.d.ts +21 -6
  32. package/dist/components/{Badge.svelte.d.ts → ImageCrop.svelte.d.ts} +3 -3
  33. package/dist/components/Page.svelte +26 -0
  34. package/dist/components/Page.svelte.d.ts +11 -0
  35. package/dist/components/Switch.svelte +22 -20
  36. package/dist/components/Switch.svelte.d.ts +9 -4
  37. package/dist/components/index.d.ts +8 -0
  38. package/dist/components/index.js +8 -0
  39. package/dist/index.d.ts +2 -33
  40. package/dist/index.js +2 -36
  41. package/dist/{community/components/index.js → utilities/accesibility.js} +1 -0
  42. package/dist/utilities/applyCharacterFilter.d.ts +1 -0
  43. package/dist/utilities/applyCharacterFilter.js +6 -0
  44. package/dist/utilities/calendar.d.ts +10 -0
  45. package/dist/utilities/calendar.js +112 -0
  46. package/dist/utilities/carousel.d.ts +2 -0
  47. package/dist/utilities/carousel.js +27 -0
  48. package/dist/utilities/codeBlockContents.d.ts +15 -0
  49. package/dist/utilities/codeBlockContents.js +298 -0
  50. package/dist/utilities/imageCrop.d.ts +33 -0
  51. package/dist/utilities/imageCrop.js +217 -0
  52. package/dist/utilities/mergeClasses.d.ts +1 -0
  53. package/dist/utilities/mergeClasses.js +3 -0
  54. package/package.json +50 -33
  55. package/dist/community/prebuilt/index.d.ts +0 -1
  56. package/dist/community/prebuilt/index.js +0 -1
  57. package/dist/components/Breadcrumb.svelte +0 -1
  58. package/dist/components/Breadcrumb.svelte.d.ts +0 -26
  59. package/dist/components/Dropdown.svelte +0 -59
  60. package/dist/components/Dropdown.svelte.d.ts +0 -20
  61. package/dist/components/Dropzone.svelte +0 -1
  62. package/dist/components/Dropzone.svelte.d.ts +0 -26
  63. package/dist/components/InteractiveScrollArea.svelte +0 -1
  64. package/dist/components/InteractiveScrollArea.svelte.d.ts +0 -26
  65. package/dist/components/Pagination.svelte +0 -1
  66. package/dist/components/Pagination.svelte.d.ts +0 -26
  67. package/dist/components/Progress.svelte +0 -1
  68. package/dist/components/Progress.svelte.d.ts +0 -26
  69. package/dist/components/Tabs.svelte +0 -1
  70. package/dist/components/Tabs.svelte.d.ts +0 -26
  71. package/dist/components/Tooltip.svelte +0 -1
  72. package/dist/components/Tooltip.svelte.d.ts +0 -26
  73. package/dist/components/charts/BatteryChart.svelte +0 -0
  74. package/dist/components/charts/BatteryChart.svelte.d.ts +0 -26
  75. package/dist/components/charts/LineChart.svelte +0 -0
  76. package/dist/components/charts/LineChart.svelte.d.ts +0 -26
  77. package/dist/components/charts/PieChart.svelte +0 -0
  78. package/dist/components/charts/PieChart.svelte.d.ts +0 -26
  79. package/dist/components/notification/NotificationArea.svelte +0 -21
  80. package/dist/components/notification/NotificationArea.svelte.d.ts +0 -7
  81. package/dist/prebuilt/FormBuilder.svelte +0 -1
  82. package/dist/prebuilt/FormBuilder.svelte.d.ts +0 -26
  83. package/dist/prebuilt/document/Document.svelte +0 -1
  84. package/dist/prebuilt/document/Document.svelte.d.ts +0 -26
  85. package/dist/prebuilt/document/DocumentBlock.svelte +0 -1
  86. package/dist/prebuilt/document/DocumentBlock.svelte.d.ts +0 -26
  87. package/dist/prebuilt/document/DocumentPage.svelte +0 -1
  88. package/dist/prebuilt/document/DocumentPage.svelte.d.ts +0 -26
  89. package/dist/prebuilt/timeline/Timeline.svelte +0 -0
  90. package/dist/prebuilt/timeline/Timeline.svelte.d.ts +0 -26
  91. package/dist/prebuilt/timeline/TimelineItem.svelte +0 -0
  92. package/dist/prebuilt/timeline/TimelineItem.svelte.d.ts +0 -26
  93. package/dist/primitives/Button.svelte +0 -53
  94. package/dist/primitives/Button.svelte.d.ts +0 -13
  95. package/dist/primitives/Container.svelte +0 -51
  96. package/dist/primitives/Container.svelte.d.ts +0 -10
  97. package/dist/primitives/Dialog.svelte +0 -39
  98. package/dist/primitives/Dialog.svelte.d.ts +0 -10
  99. package/dist/primitives/Divider.svelte +0 -14
  100. package/dist/primitives/Divider.svelte.d.ts +0 -6
  101. package/dist/primitives/Form.svelte +0 -18
  102. package/dist/primitives/Form.svelte.d.ts +0 -8
  103. package/dist/primitives/Image.svelte +0 -57
  104. package/dist/primitives/Image.svelte.d.ts +0 -12
  105. package/dist/primitives/Input.svelte +0 -23
  106. package/dist/primitives/Input.svelte.d.ts +0 -9
  107. package/dist/primitives/Label.svelte +0 -18
  108. package/dist/primitives/Label.svelte.d.ts +0 -8
  109. package/dist/primitives/Link.svelte +0 -18
  110. package/dist/primitives/Link.svelte.d.ts +0 -8
  111. package/dist/primitives/Table.svelte +0 -18
  112. package/dist/primitives/Table.svelte.d.ts +0 -8
  113. package/dist/primitives/TableBody.svelte +0 -17
  114. package/dist/primitives/TableBody.svelte.d.ts +0 -7
  115. package/dist/primitives/TableData.svelte +0 -18
  116. package/dist/primitives/TableData.svelte.d.ts +0 -8
  117. package/dist/primitives/TableFooter.svelte +0 -17
  118. package/dist/primitives/TableFooter.svelte.d.ts +0 -7
  119. package/dist/primitives/TableHead.svelte +0 -18
  120. package/dist/primitives/TableHead.svelte.d.ts +0 -8
  121. package/dist/primitives/TableHeader.svelte +0 -17
  122. package/dist/primitives/TableHeader.svelte.d.ts +0 -7
  123. package/dist/primitives/TableRow.svelte +0 -18
  124. package/dist/primitives/TableRow.svelte.d.ts +0 -8
  125. package/dist/primitives/Text.svelte +0 -46
  126. package/dist/primitives/Text.svelte.d.ts +0 -8
  127. package/dist/primitives/TextArea.svelte +0 -15
  128. package/dist/primitives/TextArea.svelte.d.ts +0 -7
  129. package/dist/types.d.ts +0 -4
  130. package/dist/types.js +0 -1
  131. /package/dist/components/{Badge.svelte → ImageCrop.svelte} +0 -0
  132. /package/dist/{community/components/index.d.ts → utilities/accesibility.d.ts} +0 -0
@@ -1,33 +1,88 @@
1
1
  <script lang="ts">
2
- import type { Snippet } from "svelte";
3
- import Container from "../primitives/Container.svelte";
4
- import Button from "../primitives/Button.svelte";
2
+ import { Container } from '../base/index.js';
3
+ import { mergeClasses } from '../utilities/mergeClasses.js';
4
+ import { fade, fly, type TransitionConfig } from 'svelte/transition';
5
+ import type { Snippet } from 'svelte';
6
+
5
7
  let {
6
- class: className,
7
- contentClass,
8
+ variation = '',
9
+ componentId,
8
10
  isOpen = $bindable(false),
9
- children,
10
- overrideDefaultStyling = false,
11
+ position = 'left',
12
+ closeOnBackdropClick = true,
13
+ scrollLock = true,
14
+ transitionFn = (node: Element, params?: any) => {
15
+ return {};
16
+ },
17
+ transitionParams = {},
18
+ backdropTransitionFn = (node: Element, params?: any) => {
19
+ return {};
20
+ },
21
+ backdropTransitionParams,
22
+ children
11
23
  }: {
12
- class?: string;
13
- contentClass?: string;
14
24
  isOpen?: boolean;
15
- overrideDefaultStyling?: boolean;
25
+ position?: 'left' | 'right' | 'top' | 'bottom';
26
+ closeOnBackdropClick?: boolean;
27
+ scrollLock?: boolean;
28
+ variation?: string;
29
+ componentId?: string;
30
+ transitionFn?: (node: Element, params?: any) => TransitionConfig;
31
+ transitionParams?: TransitionConfig & { x?: number; y?: number };
32
+ backdropTransitionFn?: (node: Element, params?: any) => TransitionConfig;
33
+ backdropTransitionParams?: TransitionConfig & { x?: number; y?: number };
16
34
  children: Snippet;
17
35
  } = $props();
18
- </script>
19
36
 
20
- <Container overrideDefaultStyling={true} class={overrideDefaultStyling ? "" + (className ? className : "") : "fluid-drawer" + (className ? ` ${className}` : "")}>
21
- <Container class={overrideDefaultStyling ? "" + (contentClass ? `${contentClass}` : "") : "fluid-drawer-body" + (contentClass ? ` ${contentClass}` : "")}>
22
- {@render children()}
23
- </Container>
24
- <Button
25
- overrideDefaultStyling
26
- class="fluid-drawer-backdrop"
27
- onclick={(e: Event) => {
37
+ // Programmatic anchoring mapping to avoid repetitive CSS classes
38
+ const positionClasses: Record<string, string> = {
39
+ left: 'left-0 top-0 bottom-0 h-full border-r',
40
+ right: 'right-0 top-0 bottom-0 h-full border-l',
41
+ top: 'top-0 right-0 left-0 w-full border-b',
42
+ bottom: 'bottom-0 right-0 left-0 w-full border-t'
43
+ };
44
+
45
+ const handleKeyDown = (event: KeyboardEvent) => {
46
+ if (event.key === 'Escape' && isOpen) {
28
47
  isOpen = false;
48
+ }
49
+ };
50
+
51
+ $effect(() => {
52
+ if (isOpen) {
53
+ const originalStyle = window.getComputedStyle(document.body).overflow;
54
+ if (scrollLock) document.body.style.overflow = 'hidden';
55
+ window.addEventListener('keydown', handleKeyDown);
56
+
57
+ return () => {
58
+ if (scrollLock) document.body.style.overflow = originalStyle;
59
+ window.removeEventListener('keydown', handleKeyDown);
60
+ };
61
+ }
62
+ });
63
+ </script>
64
+
65
+ {#if isOpen}
66
+ <Container
67
+ id={componentId}
68
+ class={mergeClasses(variation, 'fluid-drawer-container')}
69
+ transitionFn={backdropTransitionFn}
70
+ transitionParams={backdropTransitionParams}
71
+ onclick={async () => {
72
+ if (closeOnBackdropClick) isOpen = false;
29
73
  }}
74
+ overrideDefaultStyling
30
75
  >
31
- <Container></Container>
32
- </Button>
33
- </Container>
76
+ <Container
77
+ role="dialog"
78
+ aria-modal="true"
79
+ onclick={(event) => event.stopPropagation()}
80
+ class={mergeClasses(variation, `fluid-drawer-panel ${positionClasses[position]}`)}
81
+ {transitionFn}
82
+ {transitionParams}
83
+ overrideDefaultStyling
84
+ >
85
+ {@render children()}
86
+ </Container>
87
+ </Container>
88
+ {/if}
@@ -1,9 +1,24 @@
1
- import type { Snippet } from "svelte";
2
- declare const Drawer: import("svelte").Component<{
3
- class?: string;
4
- contentClass?: string;
1
+ import { type TransitionConfig } from 'svelte/transition';
2
+ import type { Snippet } from 'svelte';
3
+ type $$ComponentProps = {
5
4
  isOpen?: boolean;
6
- overrideDefaultStyling?: boolean;
5
+ position?: 'left' | 'right' | 'top' | 'bottom';
6
+ closeOnBackdropClick?: boolean;
7
+ scrollLock?: boolean;
8
+ variation?: string;
9
+ componentId?: string;
10
+ transitionFn?: (node: Element, params?: any) => TransitionConfig;
11
+ transitionParams?: TransitionConfig & {
12
+ x?: number;
13
+ y?: number;
14
+ };
15
+ backdropTransitionFn?: (node: Element, params?: any) => TransitionConfig;
16
+ backdropTransitionParams?: TransitionConfig & {
17
+ x?: number;
18
+ y?: number;
19
+ };
7
20
  children: Snippet;
8
- }, {}, "isOpen">;
21
+ };
22
+ declare const Drawer: import("svelte").Component<$$ComponentProps, {}, "isOpen">;
23
+ type Drawer = ReturnType<typeof Drawer>;
9
24
  export default Drawer;
@@ -1,12 +1,12 @@
1
- export default Badge;
2
- type Badge = SvelteComponent<{
1
+ export default ImageCrop;
2
+ type ImageCrop = SvelteComponent<{
3
3
  [x: string]: never;
4
4
  }, {
5
5
  [evt: string]: CustomEvent<any>;
6
6
  }, {}> & {
7
7
  $$bindings?: string | undefined;
8
8
  };
9
- declare const Badge: $$__sveltets_2_IsomorphicComponent<{
9
+ declare const ImageCrop: $$__sveltets_2_IsomorphicComponent<{
10
10
  [x: string]: never;
11
11
  }, {
12
12
  [evt: string]: CustomEvent<any>;
@@ -0,0 +1,26 @@
1
+ <script lang="ts">
2
+ import { Container } from '../base/index.js';
3
+ import type { HTMLAttributes } from 'svelte/elements';
4
+ import type { Snippet } from 'svelte';
5
+
6
+ const {
7
+ title = '',
8
+ description = '',
9
+ children,
10
+ ...rest
11
+ }: {
12
+ class?: string;
13
+ title: string;
14
+ description: string;
15
+ children?: Snippet;
16
+ } & HTMLAttributes<HTMLElement> = $props();
17
+ </script>
18
+
19
+ <svelte:head>
20
+ <title>{title}</title>
21
+ <meta name="description" content={description} />
22
+ </svelte:head>
23
+
24
+ <Container class="fluid-page" type="section">
25
+ {@render children?.()}
26
+ </Container>
@@ -0,0 +1,11 @@
1
+ import type { HTMLAttributes } from 'svelte/elements';
2
+ import type { Snippet } from 'svelte';
3
+ type $$ComponentProps = {
4
+ class?: string;
5
+ title: string;
6
+ description: string;
7
+ children?: Snippet;
8
+ } & HTMLAttributes<HTMLElement>;
9
+ declare const Page: import("svelte").Component<$$ComponentProps, {}, "">;
10
+ type Page = ReturnType<typeof Page>;
11
+ export default Page;
@@ -1,32 +1,34 @@
1
1
  <script lang="ts">
2
- import Label from "../primitives/Label.svelte";
3
- import Input from "../primitives/Input.svelte";
4
- import Button from "../primitives/Button.svelte";
5
- import Container from "../primitives/Container.svelte";
2
+ import { Button } from '../base/index.js';
3
+ import type { HTMLAttributes } from 'svelte/elements';
6
4
 
7
5
  let {
8
- class: className,
6
+ onswitch,
9
7
  checked = $bindable(false),
10
- overrideDefaultStyling = false,
8
+ disabled = false,
9
+ class: className = '',
10
+ ...rest
11
11
  }: {
12
- class?: string;
12
+ onswitch: (event: Event, checked: boolean) => Promise<void>;
13
13
  checked?: boolean;
14
- overrideDefaultStyling?: boolean;
15
- } = $props();
14
+ disabled?: boolean;
15
+ class?: string;
16
+ id?: string;
17
+ } & Omit<HTMLAttributes<HTMLButtonElement>, 'onclick'> = $props();
16
18
  </script>
17
19
 
18
20
  <Button
19
- onclick={() => {
20
- checked = !checked;
21
+ role="switch"
22
+ aria-checked={checked}
23
+ class={'fluid-switch-button' + (checked ? ' checked' : '')}
24
+ onclick={async (event) => {
25
+ if (!disabled) {
26
+ await onswitch(event, checked);
27
+ checked = !checked;
28
+ }
21
29
  }}
22
- overrideDefaultStyling={true}
23
- class="w-full h-full cursor-pointer"
30
+ {...rest}
31
+ overrideDefaultStyling
24
32
  >
25
- <Container
26
- overrideDefaultStyling={true}
27
- class={(overrideDefaultStyling ? "" : "fluid-switch" + (checked ? " fluid-switch-checked" : "")) + (className ? (overrideDefaultStyling ? `${className}` : ` ${className}`) : "")}
28
- >
29
- <Input bind:checked type="checkbox" class="sr-only peer"></Input>
30
- <div class="fluid-switch-slider"></div>
31
- </Container>
33
+ <span class="fluid-switch-circle"></span>
32
34
  </Button>
@@ -1,6 +1,11 @@
1
- declare const Switch: import("svelte").Component<{
2
- class?: string;
1
+ import type { HTMLAttributes } from 'svelte/elements';
2
+ type $$ComponentProps = {
3
+ onswitch: (event: Event, checked: boolean) => Promise<void>;
3
4
  checked?: boolean;
4
- overrideDefaultStyling?: boolean;
5
- }, {}, "checked">;
5
+ disabled?: boolean;
6
+ class?: string;
7
+ id?: string;
8
+ } & Omit<HTMLAttributes<HTMLButtonElement>, 'onclick'>;
9
+ declare const Switch: import("svelte").Component<$$ComponentProps, {}, "checked">;
10
+ type Switch = ReturnType<typeof Switch>;
6
11
  export default Switch;
@@ -0,0 +1,8 @@
1
+ export { default as Accordion } from './Accordion.svelte';
2
+ export { default as Calendar } from './Calendar.svelte';
3
+ export { default as Carousel } from './Carousel.svelte';
4
+ export { default as CodeBlock } from './CodeBlock.svelte';
5
+ export { default as Drawer } from './Drawer.svelte';
6
+ export { default as ImageCrop } from './ImageCrop.svelte';
7
+ export { default as Page } from './Page.svelte';
8
+ export { default as Switch } from './Switch.svelte';
@@ -0,0 +1,8 @@
1
+ export { default as Accordion } from './Accordion.svelte';
2
+ export { default as Calendar } from './Calendar.svelte';
3
+ export { default as Carousel } from './Carousel.svelte';
4
+ export { default as CodeBlock } from './CodeBlock.svelte';
5
+ export { default as Drawer } from './Drawer.svelte';
6
+ export { default as ImageCrop } from './ImageCrop.svelte';
7
+ export { default as Page } from './Page.svelte';
8
+ export { default as Switch } from './Switch.svelte';
package/dist/index.d.ts CHANGED
@@ -1,33 +1,2 @@
1
- export type { DropdownOptions as DropdownOptions } from "./types.ts";
2
- export { default as Link } from "./primitives/Link.svelte";
3
- export { default as Button } from "./primitives/Button.svelte";
4
- export { default as Container } from "./primitives/Container.svelte";
5
- export { default as Dialog } from "./primitives/Dialog.svelte";
6
- export { default as Form } from "./primitives/Form.svelte";
7
- export { default as Image } from "./primitives/Image.svelte";
8
- export { default as Input } from "./primitives/Input.svelte";
9
- export { default as Label } from "./primitives/Label.svelte";
10
- export { default as Table } from "./primitives/Table.svelte";
11
- export { default as TableBody } from "./primitives/TableBody.svelte";
12
- export { default as TableData } from "./primitives/TableData.svelte";
13
- export { default as TableFooter } from "./primitives/TableFooter.svelte";
14
- export { default as TableHead } from "./primitives/TableHead.svelte";
15
- export { default as TableHeader } from "./primitives/TableHeader.svelte";
16
- export { default as TableRow } from "./primitives/TableRow.svelte";
17
- export { default as Text } from "./primitives/Text.svelte";
18
- export { default as TextArea } from "./primitives/TextArea.svelte";
19
- export { default as Accordion } from "./components/Accordion.svelte";
20
- export { default as Breadcrumb } from "./components/Breadcrumb.svelte";
21
- export { default as Drawer } from "./components/Drawer.svelte";
22
- export { default as Dropdown } from "./components/Dropdown.svelte";
23
- export { default as NotificationArea } from "./components/notification/NotificationArea.svelte";
24
- export { default as Pagination } from "./components/Pagination.svelte";
25
- export { default as Progress } from "./components/Progress.svelte";
26
- export { default as Switch } from "./components/Switch.svelte";
27
- export { default as Tabs } from "./components/Tabs.svelte";
28
- export { default as Dropzone } from "./components/Dropzone.svelte";
29
- export { default as FormBuilder } from "./prebuilt/FormBuilder.svelte";
30
- export { default as InteractiveScrollArea } from "./components/InteractiveScrollArea.svelte";
31
- export { default as Document } from "./prebuilt/document/Document.svelte";
32
- export { default as DocumentBlock } from "./prebuilt/document/DocumentBlock.svelte";
33
- export { default as DocumentPage } from "./prebuilt/document/DocumentPage.svelte";
1
+ export * from './base/index.js';
2
+ export * from './components/index.js';
package/dist/index.js CHANGED
@@ -1,36 +1,2 @@
1
- //Types
2
- // Primitives
3
- export { default as Link } from "./primitives/Link.svelte";
4
- export { default as Button } from "./primitives/Button.svelte";
5
- export { default as Container } from "./primitives/Container.svelte";
6
- export { default as Dialog } from "./primitives/Dialog.svelte";
7
- export { default as Form } from "./primitives/Form.svelte";
8
- export { default as Image } from "./primitives/Image.svelte";
9
- export { default as Input } from "./primitives/Input.svelte";
10
- export { default as Label } from "./primitives/Label.svelte";
11
- export { default as Table } from "./primitives/Table.svelte";
12
- export { default as TableBody } from "./primitives/TableBody.svelte";
13
- export { default as TableData } from "./primitives/TableData.svelte";
14
- export { default as TableFooter } from "./primitives/TableFooter.svelte";
15
- export { default as TableHead } from "./primitives/TableHead.svelte";
16
- export { default as TableHeader } from "./primitives/TableHeader.svelte";
17
- export { default as TableRow } from "./primitives/TableRow.svelte";
18
- export { default as Text } from "./primitives/Text.svelte";
19
- export { default as TextArea } from "./primitives/TextArea.svelte";
20
- // Components
21
- export { default as Accordion } from "./components/Accordion.svelte";
22
- export { default as Breadcrumb } from "./components/Breadcrumb.svelte";
23
- export { default as Drawer } from "./components/Drawer.svelte";
24
- export { default as Dropdown } from "./components/Dropdown.svelte";
25
- export { default as NotificationArea } from "./components/notification/NotificationArea.svelte";
26
- export { default as Pagination } from "./components/Pagination.svelte";
27
- export { default as Progress } from "./components/Progress.svelte";
28
- export { default as Switch } from "./components/Switch.svelte";
29
- export { default as Tabs } from "./components/Tabs.svelte";
30
- export { default as Dropzone } from "./components/Dropzone.svelte";
31
- // Prebuilt
32
- export { default as FormBuilder } from "./prebuilt/FormBuilder.svelte";
33
- export { default as InteractiveScrollArea } from "./components/InteractiveScrollArea.svelte";
34
- export { default as Document } from "./prebuilt/document/Document.svelte";
35
- export { default as DocumentBlock } from "./prebuilt/document/DocumentBlock.svelte";
36
- export { default as DocumentPage } from "./prebuilt/document/DocumentPage.svelte";
1
+ export * from './base/index.js';
2
+ export * from './components/index.js';
@@ -1 +1,2 @@
1
1
  "use strict";
2
+ // TODO
@@ -0,0 +1 @@
1
+ export declare function applyCharacterFilter(keys: Array<string>, value: string): string;
@@ -0,0 +1,6 @@
1
+ export function applyCharacterFilter(keys, value) {
2
+ return value
3
+ .split('')
4
+ .filter((char) => keys.includes(char))
5
+ .join('');
6
+ }
@@ -0,0 +1,10 @@
1
+ export declare function applyDate(currentDates: {
2
+ startDate?: string;
3
+ endDate?: string;
4
+ }, selectedDate: string): {
5
+ startDate?: string;
6
+ endDate?: string;
7
+ };
8
+ export declare function generateDaysOfTheMonthFromDate(date: string): string[];
9
+ export declare function isBetweenDateRange(selectedDate: string, startDate?: string, endDate?: string): boolean;
10
+ export declare function generateCalendarCellStyles(currentDate: string, cellDate: string, startDate?: string, endDate?: string, hideRollingDays?: boolean): string;
@@ -0,0 +1,112 @@
1
+ export function applyDate(currentDates, selectedDate) {
2
+ // If selected already, second click action is to remove selection.
3
+ if (currentDates.endDate && currentDates.endDate === selectedDate) {
4
+ currentDates.endDate = undefined;
5
+ return currentDates;
6
+ }
7
+ // If selected already, second click action is to remove selection.
8
+ if (currentDates.startDate && currentDates.startDate === selectedDate) {
9
+ currentDates.startDate = undefined;
10
+ return currentDates;
11
+ }
12
+ // Nothing is selected, set start date.
13
+ if (!currentDates.startDate) {
14
+ currentDates.startDate = selectedDate;
15
+ }
16
+ // If start date is already there, apply range by setting end date.
17
+ else if (!currentDates.endDate) {
18
+ // If newly selected date earlier swap with start date..
19
+ if (selectedDate < currentDates.startDate) {
20
+ currentDates.endDate = currentDates.startDate;
21
+ currentDates.startDate = selectedDate;
22
+ }
23
+ else {
24
+ currentDates.endDate = selectedDate;
25
+ }
26
+ }
27
+ // If both exists, rearrange the range based on the selected date.
28
+ else {
29
+ // If newly selected date is smaller than start date, reset start date to selected date.
30
+ if (selectedDate < currentDates.startDate) {
31
+ currentDates.startDate = selectedDate;
32
+ }
33
+ // If newly selected date is bigger than start date, extend the range.
34
+ else {
35
+ currentDates.endDate = selectedDate;
36
+ }
37
+ }
38
+ return currentDates;
39
+ }
40
+ export function generateDaysOfTheMonthFromDate(date) {
41
+ const dateInstance = new Date(date);
42
+ // Get year and month for active date.
43
+ const year = dateInstance.getFullYear();
44
+ const month = dateInstance.getMonth();
45
+ // Get first day, last day and total number of days of active month.
46
+ const firstDayOfMonth = new Date(year, month, 1);
47
+ const daysInMonth = new Date(year, month + 1, 0).getDate();
48
+ // Get day of the week for first day of the month and remove 1 for 0 indexed array.
49
+ let startDayOfWeek = firstDayOfMonth.getDay() - 1;
50
+ // If day of the week is Sunday index will be -1 because Sunday's index is 0.
51
+ // Our array has 6 as Sunday so we "roll over".
52
+ if (startDayOfWeek === -1) {
53
+ startDayOfWeek = 6; // Sunday
54
+ }
55
+ const days = [];
56
+ // Get last day of the previous month.
57
+ // Date constructors 'date' parameter starts from 1 so if we give 0 we go last day of previous month.
58
+ const prevMonthLastDay = new Date(year, month, 0).getDate();
59
+ // Go to previous month's first day.
60
+ const prevMonth = new Date(year, month - 1, 1);
61
+ // Add rolling over days of the last month to current array which will be used to render the current month's grid.
62
+ // This is reversed because it adds rollover days by subtracting it one by one.
63
+ // If start day of the week is Wednesday then it is equal to 4, basically adding 28th, 29th, 30th and 31st to first row as rolling over days.
64
+ for (let i = startDayOfWeek; i > 0; i--) {
65
+ const day = prevMonthLastDay - i + 1;
66
+ days.push(new Date(prevMonth.getFullYear(), prevMonth.getMonth(), day).toISOString());
67
+ }
68
+ // Adding days of the current month on top of rolled over days from last month.
69
+ for (let i = 1; i <= daysInMonth; i++) {
70
+ days.push(new Date(year, month, i).toISOString());
71
+ }
72
+ // Adding rolling back days of the next month to current grid if month is not ending at Sunday.
73
+ const remainingDays = (startDayOfWeek + daysInMonth > 35 ? 42 : 35) - days.length; // 42 cells for a 6x7 grid
74
+ const nextMonth = new Date(year, month + 1, 1);
75
+ for (let i = 1; i <= remainingDays; i++) {
76
+ days.push(new Date(nextMonth.getFullYear(), nextMonth.getMonth(), i).toISOString());
77
+ }
78
+ return days;
79
+ }
80
+ export function isBetweenDateRange(selectedDate, startDate, endDate) {
81
+ if (!startDate || !endDate) {
82
+ return false;
83
+ }
84
+ const startDateObj = new Date(startDate);
85
+ const endDateObj = new Date(endDate);
86
+ const selectedDateObj = new Date(selectedDate);
87
+ // Normalize all dates to midnight to compare only the date part.
88
+ const start = new Date(startDateObj.getFullYear(), startDateObj.getMonth(), startDateObj.getDate());
89
+ const end = new Date(endDateObj.getFullYear(), endDateObj.getMonth(), endDateObj.getDate());
90
+ const current = new Date(selectedDateObj.getFullYear(), selectedDateObj.getMonth(), selectedDateObj.getDate());
91
+ // Determine the actual earlier and later dates to handle incorrect order.
92
+ const earlierDate = start < end ? start : end;
93
+ const laterDate = start < end ? end : start;
94
+ // Perform the check to see if the current date is within the range .
95
+ return current > earlierDate && current < laterDate;
96
+ }
97
+ export function generateCalendarCellStyles(currentDate, cellDate, startDate, endDate, hideRollingDays = false) {
98
+ const styles = ['fluid-calendar-cell'];
99
+ if (new Date(currentDate).getMonth() !== new Date(cellDate).getMonth()) {
100
+ styles.push('fluid-calendar-cell-rolling-day');
101
+ if (hideRollingDays) {
102
+ styles.push('invisible');
103
+ }
104
+ }
105
+ if (startDate === cellDate || endDate === cellDate) {
106
+ styles.push('fluid-calendar-cell-selected');
107
+ }
108
+ if (isBetweenDateRange(cellDate, startDate, endDate)) {
109
+ styles.push('fluid-calendar-cell-in-range');
110
+ }
111
+ return styles.join(' ');
112
+ }
@@ -0,0 +1,2 @@
1
+ export declare function scrollToIndex(componentId: string, activeIndex: number, totalItems: number, orientation?: 'horizontal' | 'vertical'): void;
2
+ export declare function getSwipeDirection(touchStartX: number, touchStartY: number, touchEndX: number, touchEndY: number, threshold?: number, orientation?: 'horizontal' | 'vertical'): 'next' | 'prev' | null;
@@ -0,0 +1,27 @@
1
+ export function scrollToIndex(componentId, activeIndex, totalItems, orientation = 'horizontal') {
2
+ const element = document.getElementById(componentId);
3
+ if (!element || totalItems <= 0)
4
+ return;
5
+ const scrollWidth = orientation === 'horizontal' ? element.scrollWidth : element.scrollHeight;
6
+ const itemWidth = scrollWidth / totalItems;
7
+ const targetPosition = activeIndex * itemWidth;
8
+ element.scrollTo({
9
+ left: orientation === 'horizontal' ? targetPosition : 0,
10
+ top: orientation === 'vertical' ? targetPosition : 0
11
+ });
12
+ }
13
+ export function getSwipeDirection(touchStartX, touchStartY, touchEndX, touchEndY, threshold = 50, orientation = 'horizontal') {
14
+ const diffX = touchStartX - touchEndX;
15
+ const diffY = touchStartY - touchEndY;
16
+ if (orientation === 'horizontal') {
17
+ if (Math.abs(diffX) > threshold) {
18
+ return diffX > 0 ? 'next' : 'prev';
19
+ }
20
+ }
21
+ else {
22
+ if (Math.abs(diffY) > threshold) {
23
+ return diffY > 0 ? 'next' : 'prev';
24
+ }
25
+ }
26
+ return null;
27
+ }
@@ -0,0 +1,15 @@
1
+ export declare const codeBlockContents: {
2
+ gettingStartedAppCss: string;
3
+ gettingStartedUsage: string;
4
+ drawerBasicUsage: string;
5
+ drawerPositions: string;
6
+ drawerAnimated: string;
7
+ drawerFlyAnimation: string;
8
+ calendarSingle: string;
9
+ calendarDual: string;
10
+ calendarSixMonth: string;
11
+ calendarRange: string;
12
+ calendarMulti: string;
13
+ carouselSlide: string;
14
+ carouselFade: string;
15
+ };