@makolabs/ripple 0.0.1 → 0.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 (144) hide show
  1. package/README.md +575 -8
  2. package/dist/adapters/storage/BaseAdapter.d.ts +20 -0
  3. package/dist/adapters/storage/BaseAdapter.js +171 -0
  4. package/dist/adapters/storage/S3Adapter.d.ts +21 -0
  5. package/dist/adapters/storage/S3Adapter.js +194 -0
  6. package/dist/adapters/storage/index.d.ts +3 -0
  7. package/dist/adapters/storage/index.js +3 -0
  8. package/dist/adapters/storage/types.d.ts +102 -0
  9. package/dist/adapters/storage/types.js +4 -0
  10. package/dist/button/Button.svelte +48 -0
  11. package/dist/button/Button.svelte.d.ts +4 -0
  12. package/dist/button/button.d.ts +113 -0
  13. package/dist/button/button.js +168 -0
  14. package/dist/charts/Chart.svelte +545 -0
  15. package/dist/charts/Chart.svelte.d.ts +4 -0
  16. package/dist/drawer/Drawer.svelte +224 -0
  17. package/dist/drawer/Drawer.svelte.d.ts +4 -0
  18. package/dist/drawer/drawer.d.ts +160 -0
  19. package/dist/drawer/drawer.js +80 -0
  20. package/dist/elements/accordion/Accordion.svelte +98 -0
  21. package/dist/elements/accordion/Accordion.svelte.d.ts +4 -0
  22. package/dist/elements/accordion/accordion.d.ts +227 -0
  23. package/dist/elements/accordion/accordion.js +138 -0
  24. package/dist/elements/alert/Alert.svelte +57 -0
  25. package/dist/elements/alert/Alert.svelte.d.ts +4 -0
  26. package/dist/elements/badge/Badge.svelte +43 -0
  27. package/dist/elements/badge/Badge.svelte.d.ts +4 -0
  28. package/dist/elements/badge/badge.d.ts +181 -0
  29. package/dist/elements/badge/badge.js +65 -0
  30. package/dist/elements/dropdown/Dropdown.svelte +234 -0
  31. package/dist/elements/dropdown/Dropdown.svelte.d.ts +4 -0
  32. package/dist/elements/dropdown/Select.svelte +333 -0
  33. package/dist/elements/dropdown/Select.svelte.d.ts +4 -0
  34. package/dist/elements/dropdown/dropdown.d.ts +251 -0
  35. package/dist/elements/dropdown/dropdown.js +95 -0
  36. package/dist/elements/dropdown/select.d.ts +200 -0
  37. package/dist/elements/dropdown/select.js +82 -0
  38. package/dist/elements/file-upload/FileUpload.svelte +135 -0
  39. package/dist/elements/file-upload/FileUpload.svelte.d.ts +4 -0
  40. package/dist/elements/file-upload/FilesPreview.svelte +93 -0
  41. package/dist/elements/file-upload/FilesPreview.svelte.d.ts +4 -0
  42. package/dist/elements/progress/Progress.svelte +145 -0
  43. package/dist/elements/progress/Progress.svelte.d.ts +4 -0
  44. package/dist/elements/timeline/Timeline.svelte +92 -0
  45. package/dist/elements/timeline/Timeline.svelte.d.ts +7 -0
  46. package/dist/file-browser/FileBrowser.svelte +877 -0
  47. package/dist/file-browser/FileBrowser.svelte.d.ts +14 -0
  48. package/dist/file-browser/index.d.ts +1 -0
  49. package/dist/file-browser/index.js +1 -0
  50. package/dist/filters/CompactFilters.svelte +147 -0
  51. package/dist/filters/CompactFilters.svelte.d.ts +4 -0
  52. package/dist/filters/index.d.ts +1 -0
  53. package/dist/filters/index.js +1 -0
  54. package/dist/forms/Checkbox.svelte +54 -0
  55. package/dist/forms/Checkbox.svelte.d.ts +4 -0
  56. package/dist/forms/DateRange.svelte +493 -0
  57. package/dist/forms/DateRange.svelte.d.ts +4 -0
  58. package/dist/forms/Form.svelte +39 -0
  59. package/dist/forms/Form.svelte.d.ts +4 -0
  60. package/dist/forms/Input.svelte +86 -0
  61. package/dist/forms/Input.svelte.d.ts +4 -0
  62. package/dist/forms/NumberInput.svelte +159 -0
  63. package/dist/forms/NumberInput.svelte.d.ts +4 -0
  64. package/dist/forms/RadioInputs.svelte +64 -0
  65. package/dist/forms/RadioInputs.svelte.d.ts +4 -0
  66. package/dist/forms/RadioPill.svelte +66 -0
  67. package/dist/forms/RadioPill.svelte.d.ts +4 -0
  68. package/dist/forms/Slider.svelte +342 -0
  69. package/dist/forms/Slider.svelte.d.ts +4 -0
  70. package/dist/forms/Tags.svelte +181 -0
  71. package/dist/forms/Tags.svelte.d.ts +4 -0
  72. package/dist/forms/Toggle.svelte +132 -0
  73. package/dist/forms/Toggle.svelte.d.ts +4 -0
  74. package/dist/forms/slider.d.ts +143 -0
  75. package/dist/forms/slider.js +62 -0
  76. package/dist/header/Breadcrumbs.svelte +73 -0
  77. package/dist/header/Breadcrumbs.svelte.d.ts +4 -0
  78. package/dist/header/PageHeader.svelte +68 -0
  79. package/dist/header/PageHeader.svelte.d.ts +4 -0
  80. package/dist/header/breadcrumbs.d.ts +226 -0
  81. package/dist/header/breadcrumbs.js +87 -0
  82. package/dist/helper/cls.d.ts +1 -0
  83. package/dist/helper/cls.js +4 -0
  84. package/dist/helper/date.d.ts +7 -0
  85. package/dist/helper/date.js +15 -0
  86. package/dist/helper/nav.svelte.d.ts +6 -0
  87. package/dist/helper/nav.svelte.js +23 -0
  88. package/dist/index.d.ts +856 -1
  89. package/dist/index.js +78 -1
  90. package/dist/layout/card/Card.svelte +41 -0
  91. package/dist/layout/card/Card.svelte.d.ts +4 -0
  92. package/dist/layout/card/MetricCard.svelte +64 -0
  93. package/dist/layout/card/MetricCard.svelte.d.ts +4 -0
  94. package/dist/layout/card/StatsCard.svelte +266 -0
  95. package/dist/layout/card/StatsCard.svelte.d.ts +4 -0
  96. package/dist/layout/card/card.d.ts +128 -0
  97. package/dist/layout/card/card.js +51 -0
  98. package/dist/layout/card/metric-card.d.ts +49 -0
  99. package/dist/layout/card/metric-card.js +10 -0
  100. package/dist/layout/card/stats-card.d.ts +191 -0
  101. package/dist/layout/card/stats-card.js +73 -0
  102. package/dist/layout/navbar/Navbar.svelte +206 -0
  103. package/dist/layout/navbar/Navbar.svelte.d.ts +4 -0
  104. package/dist/layout/navbar/navbar.d.ts +205 -0
  105. package/dist/layout/navbar/navbar.js +98 -0
  106. package/dist/layout/sidebar/NavGroup.svelte +91 -0
  107. package/dist/layout/sidebar/NavGroup.svelte.d.ts +4 -0
  108. package/dist/layout/sidebar/NavItem.svelte +29 -0
  109. package/dist/layout/sidebar/NavItem.svelte.d.ts +4 -0
  110. package/dist/layout/sidebar/Sidebar.svelte +193 -0
  111. package/dist/layout/sidebar/Sidebar.svelte.d.ts +4 -0
  112. package/dist/layout/table/Cells.svelte +111 -0
  113. package/dist/layout/table/Cells.svelte.d.ts +27 -0
  114. package/dist/layout/table/Table.svelte +790 -0
  115. package/dist/layout/table/Table.svelte.d.ts +4 -0
  116. package/dist/layout/table/table.d.ts +256 -0
  117. package/dist/layout/table/table.js +141 -0
  118. package/dist/layout/tabs/Tab.svelte +60 -0
  119. package/dist/layout/tabs/Tab.svelte.d.ts +4 -0
  120. package/dist/layout/tabs/TabContent.svelte +30 -0
  121. package/dist/layout/tabs/TabContent.svelte.d.ts +4 -0
  122. package/dist/layout/tabs/TabGroup.svelte +62 -0
  123. package/dist/layout/tabs/TabGroup.svelte.d.ts +4 -0
  124. package/dist/layout/tabs/tabs.d.ts +140 -0
  125. package/dist/layout/tabs/tabs.js +298 -0
  126. package/dist/modal/Modal.svelte +207 -0
  127. package/dist/modal/Modal.svelte.d.ts +4 -0
  128. package/dist/modal/modal.d.ts +211 -0
  129. package/dist/modal/modal.js +81 -0
  130. package/dist/sonner/sonner.svelte +13 -0
  131. package/dist/sonner/sonner.svelte.d.ts +4 -0
  132. package/dist/types/variants.d.ts +1 -0
  133. package/dist/types/variants.js +1 -0
  134. package/dist/utils/Portal.svelte +108 -0
  135. package/dist/utils/Portal.svelte.d.ts +8 -0
  136. package/dist/utils/dateUtils.d.ts +7 -0
  137. package/dist/utils/dateUtils.js +26 -0
  138. package/dist/variants.d.ts +30 -0
  139. package/dist/variants.js +36 -0
  140. package/package.json +39 -6
  141. package/dist/layout/Card.svelte +0 -179
  142. package/dist/layout/Card.svelte.d.ts +0 -208
  143. package/dist/layout/index.d.ts +0 -1
  144. package/dist/layout/index.js +0 -1
@@ -0,0 +1,14 @@
1
+ import type { StorageAdapter, FileAction } from '../adapters/storage/index.js';
2
+ type $$ComponentProps = {
3
+ adapter: StorageAdapter;
4
+ startPath?: string;
5
+ actions?: FileAction[];
6
+ selectedFiles?: string[];
7
+ infoSection?: (props: {
8
+ selectedFiles: string[];
9
+ navToFileFolder: (fileKey: string) => void;
10
+ }) => any;
11
+ };
12
+ declare const FileBrowser: import("svelte").Component<$$ComponentProps, {}, "selectedFiles">;
13
+ type FileBrowser = ReturnType<typeof FileBrowser>;
14
+ export default FileBrowser;
@@ -0,0 +1 @@
1
+ export { default as FileBrowser } from './FileBrowser.svelte';
@@ -0,0 +1 @@
1
+ export { default as FileBrowser } from './FileBrowser.svelte';
@@ -0,0 +1,147 @@
1
+ <script lang="ts">
2
+ import { cn } from '../helper/cls.js';
3
+ import type { FilterTab, CompactFiltersProps } from '../index.js';
4
+
5
+ // Props definition
6
+ let {
7
+ filterGroups = [],
8
+ isExpanded = $bindable(false),
9
+ title = 'Filters',
10
+ class: className,
11
+ summaryClass,
12
+ expandedClass,
13
+ FilterIcon
14
+ }: CompactFiltersProps = $props();
15
+
16
+ // Toggle expanded state
17
+ function toggleExpanded() {
18
+ isExpanded = !isExpanded;
19
+ }
20
+
21
+ // Helper to get the label of the selected filter
22
+ function getSelectedLabel(tabs: FilterTab[], selectedValue: string): string {
23
+ const tab = tabs.find((tab) => tab.value === selectedValue);
24
+ return tab ? tab.label : 'All';
25
+ }
26
+ </script>
27
+
28
+ {#snippet DefaultFilterIcon()}
29
+ <svg
30
+ width="16"
31
+ height="16"
32
+ viewBox="0 0 24 24"
33
+ fill="none"
34
+ stroke="currentColor"
35
+ stroke-width="2"
36
+ stroke-linecap="round"
37
+ stroke-linejoin="round"
38
+ >
39
+ <polygon points="22,3 2,3 10,12.46 10,19 14,21 14,12.46"></polygon>
40
+ </svg>
41
+ {/snippet}
42
+
43
+ {#snippet DefaultChevronDown()}
44
+ <svg
45
+ width="18"
46
+ height="18"
47
+ viewBox="0 0 24 24"
48
+ fill="none"
49
+ stroke="currentColor"
50
+ stroke-width="2"
51
+ stroke-linecap="round"
52
+ stroke-linejoin="round"
53
+ >
54
+ <polyline points="6,9 12,15 18,9"></polyline>
55
+ </svg>
56
+ {/snippet}
57
+
58
+ {#snippet DefaultChevronUp()}
59
+ <svg
60
+ width="18"
61
+ height="18"
62
+ viewBox="0 0 24 24"
63
+ fill="none"
64
+ stroke="currentColor"
65
+ stroke-width="2"
66
+ stroke-linecap="round"
67
+ stroke-linejoin="round"
68
+ >
69
+ <polyline points="18,15 12,9 6,15"></polyline>
70
+ </svg>
71
+ {/snippet}
72
+
73
+ <div class={cn('rounded-lg border border-gray-200 bg-white p-3 shadow-sm', className)}>
74
+ <button
75
+ onclick={toggleExpanded}
76
+ class="mb-2 flex min-w-full cursor-pointer items-center justify-between"
77
+ >
78
+ <div class="flex items-center gap-2">
79
+ {#if FilterIcon}
80
+ <FilterIcon size={16} class="text-gray-500" />
81
+ {:else}
82
+ <span class="text-gray-500">
83
+ {@render DefaultFilterIcon()}
84
+ </span>
85
+ {/if}
86
+ <span class="text-sm font-medium">{title}</span>
87
+ </div>
88
+ <div
89
+ class="rounded-md p-1 text-gray-500 hover:bg-gray-100 hover:text-gray-700"
90
+ aria-label={isExpanded ? `Collapse ${title.toLowerCase()}` : `Expand ${title.toLowerCase()}`}
91
+ >
92
+ {#if isExpanded}
93
+ <span>{@render DefaultChevronUp()}</span>
94
+ {:else}
95
+ <span>{@render DefaultChevronDown()}</span>
96
+ {/if}
97
+ </div>
98
+ </button>
99
+
100
+ {#if !isExpanded}
101
+ <!-- Summary of selected filters when collapsed -->
102
+ <div class={cn('flex flex-wrap gap-2', summaryClass)}>
103
+ {#each filterGroups as group}
104
+ {#if group.tabs.length > 0}
105
+ <div
106
+ class="bg-primary-50 text-primary-700 border-primary-200 flex items-center gap-1 rounded-full border px-3 py-1 text-xs"
107
+ >
108
+ <span class="font-medium">{group.label}:</span>
109
+ {getSelectedLabel(group.tabs, group.selectedValue)}
110
+ </div>
111
+ {/if}
112
+ {/each}
113
+ </div>
114
+ {:else}
115
+ <div class={cn('flex flex-col gap-2', expandedClass)}>
116
+ {#each filterGroups as group, index}
117
+ {#if group.tabs.length > 0}
118
+ <div
119
+ class={cn(
120
+ 'flex items-center gap-2 pb-2',
121
+ index > 0 ? 'border-t border-gray-100 pt-2' : ''
122
+ )}
123
+ >
124
+ <div class={cn('text-xs font-medium text-gray-500', group.minWidth || 'min-w-[70px]')}>
125
+ {group.label}
126
+ </div>
127
+ <div class="flex flex-wrap gap-2">
128
+ {#each group.tabs as tab}
129
+ <button
130
+ onclick={() => group.onChange(tab.value)}
131
+ class={cn(
132
+ 'rounded-full border px-3 py-1 text-xs font-medium whitespace-nowrap',
133
+ group.selectedValue === tab.value
134
+ ? 'bg-primary-50 text-primary-700 border-primary-200'
135
+ : 'border-gray-200 text-gray-700 hover:bg-gray-50'
136
+ )}
137
+ >
138
+ {tab.label}
139
+ </button>
140
+ {/each}
141
+ </div>
142
+ </div>
143
+ {/if}
144
+ {/each}
145
+ </div>
146
+ {/if}
147
+ </div>
@@ -0,0 +1,4 @@
1
+ import type { CompactFiltersProps } from '../index.js';
2
+ declare const CompactFilters: import("svelte").Component<CompactFiltersProps, {}, "isExpanded">;
3
+ type CompactFilters = ReturnType<typeof CompactFilters>;
4
+ export default CompactFilters;
@@ -0,0 +1 @@
1
+ export { default as CompactFilters } from './CompactFilters.svelte';
@@ -0,0 +1 @@
1
+ export { default as CompactFilters } from './CompactFilters.svelte';
@@ -0,0 +1,54 @@
1
+ <script lang="ts">
2
+ import { cn } from '../helper/cls.js';
3
+ import type { CheckboxProps } from '../index.js';
4
+
5
+ let {
6
+ name,
7
+ label,
8
+ value = $bindable(false),
9
+ disabled = false,
10
+ class: className = '',
11
+ errors = [],
12
+ required = false
13
+ }: CheckboxProps = $props();
14
+
15
+ const checkboxClass = $derived(
16
+ cn('w-4 h-4 rounded text-primary-600 border-default-300 focus:ring-primary-500', {
17
+ 'opacity-50 cursor-not-allowed': disabled,
18
+ 'accent-danger-500': errors.length
19
+ })
20
+ );
21
+
22
+ const labelClass = $derived(
23
+ cn('text-sm font-medium', {
24
+ 'text-default-700': !errors.length,
25
+ 'text-danger-600': errors.length
26
+ })
27
+ );
28
+ </script>
29
+
30
+ <div class="w-full">
31
+ <div class="inline-flex w-full items-center gap-2">
32
+ <input
33
+ type="checkbox"
34
+ {name}
35
+ id={name}
36
+ bind:checked={value}
37
+ class={checkboxClass}
38
+ {disabled}
39
+ {required}
40
+ aria-describedby={errors.length ? `${name}-errors` : undefined}
41
+ />
42
+ {#if label}
43
+ <label for={name} class={labelClass}>{label}</label>
44
+ {/if}
45
+ </div>
46
+
47
+ {#if errors.length}
48
+ {#each errors as error (error)}
49
+ <p id={`${name}-errors`} class="text-danger-600 mt-1 text-sm" role="alert">
50
+ {error}
51
+ </p>
52
+ {/each}
53
+ {/if}
54
+ </div>
@@ -0,0 +1,4 @@
1
+ import type { CheckboxProps } from '../index.js';
2
+ declare const Checkbox: import("svelte").Component<CheckboxProps, {}, "value">;
3
+ type Checkbox = ReturnType<typeof Checkbox>;
4
+ export default Checkbox;