@makolabs/ripple 0.0.1-dev.7 → 0.0.1-dev.70

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