@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
@@ -1,16 +1,7 @@
1
1
  <script lang="ts">
2
- import NavGroup from './NavGroup.svelte';
3
- import NavItem from './NavItem.svelte';
4
2
  import { setContext } from 'svelte';
5
- import type {
6
- MenuBar,
7
- NavigationItem,
8
- SidebarProps,
9
- ParentItem,
10
- LinkItem
11
- } from './sidebar.js';
3
+ import type { MenuBar, NavigationItem, SidebarProps, ParentItem, LinkItem } from '../../index.js';
12
4
  import clsx from 'clsx';
13
- import { cn } from '../../helper/cls.js';
14
5
  import { isRouteActive } from '../../helper/nav.svelte.js';
15
6
 
16
7
  let { items = [], logo }: SidebarProps = $props();
@@ -33,16 +24,15 @@
33
24
 
34
25
  if ('children' in item) {
35
26
  const parentItem = item as ParentItem;
36
- let anyChildActive = false;
27
+ let anyChildActive = parentItem.active;
37
28
 
38
29
  const updatedChildren = parentItem.children.map((child) => {
39
- const childActive = isRouteActive(child.href);
30
+ const childActive = isRouteActive(child.href, true);
40
31
  if (childActive) {
41
32
  anyChildActive = true;
42
33
  }
43
34
  return { ...child, active: childActive };
44
35
  });
45
-
46
36
  return { ...parentItem, active: anyChildActive, children: updatedChildren };
47
37
  }
48
38
 
@@ -56,90 +46,129 @@
56
46
 
57
47
  // Reactively compute the active states based on the current route
58
48
  const navigationItems = $derived(items.map((item) => processNavigationItem(item)));
49
+ $inspect(navigationItems)
59
50
 
60
51
  const sidebarClasses = $derived(
61
- clsx(
62
- `flex min-h-screen max-h-screen overflow-y-auto flex-col gap-y-1 overflow-y-auto
63
- border-r border-gray-800 bg-gray-900 px-3 duration-300 sticky top-0`,
64
- {
65
- 'w-16': menubar.collapsed,
66
- 'w-16 xl:w-72 shrink-0': !menubar.collapsed
67
- }
68
- )
52
+ clsx(`min-h-screen flex flex-col bg-gradient-to-b from-gray-900 to-default-900 h-full`, {
53
+ 'w-16': menubar.collapsed,
54
+ 'w-16 xl:w-64 shrink-0': !menubar.collapsed
55
+ })
69
56
  );
70
57
 
71
58
  const logoTextClasses = $derived(
72
- clsx('text-xl font-semibold hidden text-white', { 'xl:block': !menubar.collapsed })
59
+ clsx('text-xl font-bold text-white', {
60
+ 'xl:block': !menubar.collapsed,
61
+ hidden: menubar.collapsed
62
+ })
73
63
  );
74
64
 
75
65
  const logoWrapperClasses = $derived(
76
- clsx('flex shrink-0 items-center justify-between mt-3 flex-col', {
77
- 'xl:mt-0 xl:h-16 flex-row': !menubar.collapsed
78
- })
66
+ clsx(
67
+ 'flex items-center h-16 flex-shrink-0 px-4 bg-gradient-to-r from-gray-900 to-default-900/50 border-b border-white/10',
68
+ {
69
+ 'justify-between': !menubar.collapsed,
70
+ 'justify-center': menubar.collapsed
71
+ }
72
+ )
79
73
  );
80
74
  </script>
81
75
 
82
76
  <div class={sidebarClasses}>
83
77
  <div class={logoWrapperClasses}>
84
78
  <div class="flex items-center gap-x-1">
85
- {#if logo.src}
79
+ {#if logo.src && !menubar.collapsed}
86
80
  <img src={logo.src} alt={logo.title} class="size-8 shrink-0" />
87
81
  {/if}
88
- {#if logo.title}
82
+ {#if logo.title && !menubar.collapsed}
89
83
  <h1 class={logoTextClasses}>{logo.title}</h1>
90
84
  {/if}
91
85
  </div>
92
- <button onclick={toggle} class="hidden cursor-pointer xl:block" aria-label="Toggle Sidebar">
93
- <svg
94
- xmlns="http://www.w3.org/2000/svg"
95
- width="0.8em"
96
- height="0.8em"
97
- viewBox="0 0 24 24"
98
- class="size-6 shrink-0 text-gray-600"
99
- >
100
- <path
101
- fill="currentColor"
102
- d="M3 17h18a1 1 0 0 1 .117 1.993L21 19H3a1 1 0 0 1-.117-1.993zh18zm0-6l18-.002a1 1 0 0 1 .117 1.993l-.117.007L3 13a1 1 0 0 1-.117-1.993zl18-.002zm0-6h18a1 1 0 0 1 .117 1.993L21 7H3a1 1 0 0 1-.117-1.993zh18z"
103
- />
104
- </svg>
86
+ <button
87
+ onclick={toggle}
88
+ class="hidden cursor-pointer text-white xl:block"
89
+ aria-label="Toggle Sidebar"
90
+ >
91
+ {@render ToggleIcon()}
105
92
  </button>
106
93
  </div>
107
- <nav class="flex flex-1 flex-col">
108
- <ul role="list" class="flex flex-1 flex-col gap-y-1">
94
+
95
+ <div class="flex flex-1 flex-col overflow-y-auto bg-gradient-to-b from-transparent to-black/20">
96
+ <nav class="flex-1 space-y-6 px-2 py-4">
109
97
  {#each navigationItems as item, index (index)}
110
98
  {#if 'type' in item && item.type === 'horizontal-divider'}
111
- <li class="my-3 border-t border-gray-700"></li>
99
+ <li class="my-2 border-t border-white/10"></li>
112
100
  {:else if 'children' in item}
113
- <NavGroup active={item.active}>
114
- {#snippet labelArea(classes)}
115
- {#if item.Icon}
116
- {@const Icon = item.Icon}
117
- <Icon class="size-6 shrink-0 text-gray-600" />
118
- {/if}
119
- <span class={cn(classes)}>{item.label}</span>
120
- {/snippet}
121
- {#each item.children as child (child.label)}
122
- <NavItem href={child.href} active={child.active}>
123
- {#if child.Icon}
124
- {@const Icon = child.Icon}
125
- <Icon class="size-6 shrink-0 text-gray-600" />
126
- {/if}
127
- <span class="truncate">{child.label}</span>
128
- </NavItem>
129
- {/each}
130
- </NavGroup>
101
+ <div>
102
+ {#if !menubar.collapsed}
103
+ <h3 class="text-default-200 px-3 text-xs font-semibold tracking-wider uppercase">
104
+ {item.label}
105
+ </h3>
106
+ {/if}
107
+ <div class={menubar.collapsed ? '' : 'mt-2 space-y-1'}>
108
+ {#each item.children as child (child.label)}
109
+ <button
110
+ class="group hover:bg-default-500/10 flex w-full cursor-pointer items-center rounded-md px-3 py-2 text-sm font-medium transition-all duration-150 ease-in-out hover:text-white {child.active
111
+ ? 'bg-default-500/20'
112
+ : ''} {menubar.collapsed ? 'justify-center' : ''}"
113
+ class:text-white={child.active}
114
+ class:text-gray-300={!child.active}
115
+ onclick={() => (window.location.href = child.href)}
116
+ title={menubar.collapsed ? child.label : ''}
117
+ >
118
+ {#if child.Icon}
119
+ {@const Icon = child.Icon}
120
+ <Icon
121
+ class="h-5 w-5 flex-shrink-0 {child.active
122
+ ? 'text-default-200'
123
+ : 'text-gray-400'} {menubar.collapsed ? '' : 'mr-3'}"
124
+ />
125
+ {/if}
126
+ {#if !menubar.collapsed}
127
+ <span class="truncate">{child.label}</span>
128
+ {/if}
129
+ </button>
130
+ {/each}
131
+ </div>
132
+ </div>
131
133
  {:else if 'href' in item}
132
- <NavItem href={item.href} active={item.active}>
133
- {#snippet children(classes)}
134
- {#if item.Icon}
135
- {@const Icon = item.Icon}
136
- <Icon class="size-6 shrink-0 text-gray-600" />
137
- {/if}
138
- <span class={cn(classes)}>{item.label}</span>
139
- {/snippet}
140
- </NavItem>
134
+ <button
135
+ class="group hover:bg-default-500/10 flex w-full cursor-pointer items-center rounded-md px-3 py-2 text-sm font-medium transition-all duration-150 ease-in-out hover:text-white {item.active
136
+ ? 'bg-default-500/20'
137
+ : ''} {menubar.collapsed ? 'justify-center' : ''}"
138
+ class:text-white={item.active}
139
+ class:text-gray-300={!item.active}
140
+ onclick={() => (window.location.href = item.href)}
141
+ title={menubar.collapsed ? item.label : ''}
142
+ >
143
+ {#if item.Icon}
144
+ {@const Icon = item.Icon}
145
+ <Icon
146
+ class="h-5 w-5 flex-shrink-0 {item.active
147
+ ? 'text-default-200'
148
+ : 'text-gray-400'} {menubar.collapsed ? '' : 'mr-3'}"
149
+ />
150
+ {/if}
151
+ {#if !menubar.collapsed}
152
+ <span class="truncate">{item.label}</span>
153
+ {/if}
154
+ </button>
141
155
  {/if}
142
156
  {/each}
143
- </ul>
144
- </nav>
157
+ </nav>
158
+ </div>
145
159
  </div>
160
+
161
+ {#snippet ToggleIcon(classes = 'size-6 shrink-0 text-default-200')}
162
+ <svg
163
+ xmlns="http://www.w3.org/2000/svg"
164
+ width="0.8em"
165
+ height="0.8em"
166
+ viewBox="0 0 24 24"
167
+ class={classes}
168
+ >
169
+ <path
170
+ fill="currentColor"
171
+ d="M3 17h18a1 1 0 0 1 .117 1.993L21 19H3a1 1 0 0 1-.117-1.993zh18zm0-6l18-.002a1 1 0 0 1 .117 1.993l-.117.007L3 13a1 1 0 0 1-.117-1.993zl18-.002zm0-6h18a1 1 0 0 1 .117 1.993L21 7H3a1 1 0 0 1-.117-1.993zh18z"
172
+ />
173
+ </svg>
174
+ {/snippet}
@@ -1,4 +1,4 @@
1
- import type { SidebarProps } from './sidebar.js';
1
+ import type { SidebarProps } from '../../index.js';
2
2
  declare const Sidebar: import("svelte").Component<SidebarProps, {}, "">;
3
3
  type Sidebar = ReturnType<typeof Sidebar>;
4
4
  export default Sidebar;