@joewinke/jatui 0.1.24 → 0.1.26

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 (242) hide show
  1. package/dist/actions/collapse.d.ts +80 -0
  2. package/dist/actions/collapse.js +134 -0
  3. package/dist/actions/railNav.d.ts +167 -0
  4. package/dist/actions/railNav.js +351 -0
  5. package/dist/components/AnnotationLayer.svelte +108 -0
  6. package/dist/components/AnnotationLayer.svelte.d.ts +12 -0
  7. package/dist/components/AnnotationPanel.svelte +319 -0
  8. package/dist/components/AnnotationPanel.svelte.d.ts +13 -0
  9. package/dist/components/AudioWaveform.svelte +701 -0
  10. package/dist/components/AudioWaveform.svelte.d.ts +19 -0
  11. package/dist/components/AvailabilityModal.svelte +177 -0
  12. package/dist/components/AvailabilityModal.svelte.d.ts +14 -0
  13. package/dist/components/AvatarUpload.svelte +234 -0
  14. package/dist/components/AvatarUpload.svelte.d.ts +23 -0
  15. package/dist/components/Badge.svelte +38 -0
  16. package/dist/components/Badge.svelte.d.ts +14 -0
  17. package/dist/components/BookingForm.svelte +278 -0
  18. package/dist/components/BookingForm.svelte.d.ts +37 -0
  19. package/dist/components/BurndownChart.svelte +778 -0
  20. package/dist/components/BurndownChart.svelte.d.ts +17 -0
  21. package/dist/components/Button.svelte +81 -0
  22. package/dist/components/Button.svelte.d.ts +21 -0
  23. package/dist/components/CalendarPicker.svelte +284 -0
  24. package/dist/components/CalendarPicker.svelte.d.ts +22 -0
  25. package/dist/components/Card.svelte +67 -0
  26. package/dist/components/Card.svelte.d.ts +17 -0
  27. package/dist/components/CharacterCounter.svelte +82 -0
  28. package/dist/components/CharacterCounter.svelte.d.ts +10 -0
  29. package/dist/components/ChipInput.svelte +609 -0
  30. package/dist/components/ChipInput.svelte.d.ts +55 -0
  31. package/dist/components/Collapse.svelte +91 -0
  32. package/dist/components/Collapse.svelte.d.ts +18 -0
  33. package/dist/components/ColorSelector.svelte +167 -0
  34. package/dist/components/ColorSelector.svelte.d.ts +9 -0
  35. package/dist/components/CommentThread.svelte +773 -0
  36. package/dist/components/CommentThread.svelte.d.ts +32 -0
  37. package/dist/components/ConfirmDialog.svelte +348 -0
  38. package/dist/components/ConfirmDialog.svelte.d.ts +3 -0
  39. package/dist/components/ConfirmModal.svelte +142 -0
  40. package/dist/components/ConfirmModal.svelte.d.ts +15 -0
  41. package/dist/components/ContextMenu.svelte +188 -0
  42. package/dist/components/ContextMenu.svelte.d.ts +31 -0
  43. package/dist/components/CountdownTimer.svelte +94 -0
  44. package/dist/components/CountdownTimer.svelte.d.ts +10 -0
  45. package/dist/components/DateRangePicker.svelte +194 -0
  46. package/dist/components/DateRangePicker.svelte.d.ts +10 -0
  47. package/dist/components/Drawer.svelte +143 -0
  48. package/dist/components/Drawer.svelte.d.ts +33 -0
  49. package/dist/components/EmojiPicker.svelte +159 -0
  50. package/dist/components/EmojiPicker.svelte.d.ts +8 -0
  51. package/dist/components/EntityPreviewCard.svelte +104 -0
  52. package/dist/components/EntityPreviewCard.svelte.d.ts +9 -0
  53. package/dist/components/FileDropzone.svelte +493 -0
  54. package/dist/components/FileDropzone.svelte.d.ts +40 -0
  55. package/dist/components/FilePicker.svelte +488 -0
  56. package/dist/components/FilePicker.svelte.d.ts +20 -0
  57. package/dist/components/FileThumbnail.svelte +80 -0
  58. package/dist/components/FileThumbnail.svelte.d.ts +12 -0
  59. package/dist/components/FilterDropdown.svelte +203 -0
  60. package/dist/components/FilterDropdown.svelte.d.ts +48 -0
  61. package/dist/components/FloatingActionBar.svelte +354 -0
  62. package/dist/components/FloatingActionBar.svelte.d.ts +51 -0
  63. package/dist/components/GPSTracker.svelte +202 -0
  64. package/dist/components/GPSTracker.svelte.d.ts +34 -0
  65. package/dist/components/HunkDiffView.svelte +348 -0
  66. package/dist/components/HunkDiffView.svelte.d.ts +9 -0
  67. package/dist/components/ImageLightbox.svelte +274 -0
  68. package/dist/components/ImageLightbox.svelte.d.ts +25 -0
  69. package/dist/components/ImageUpload.svelte +147 -0
  70. package/dist/components/ImageUpload.svelte.d.ts +10 -0
  71. package/dist/components/InlineEdit.svelte +291 -0
  72. package/dist/components/InlineEdit.svelte.d.ts +45 -0
  73. package/dist/components/InputDialog.svelte +327 -0
  74. package/dist/components/InputDialog.svelte.d.ts +3 -0
  75. package/dist/components/KeyboardShortcutsOverlay.svelte +296 -0
  76. package/dist/components/KeyboardShortcutsOverlay.svelte.d.ts +42 -0
  77. package/dist/components/LazyImage.svelte +123 -0
  78. package/dist/components/LazyImage.svelte.d.ts +14 -0
  79. package/dist/components/LinkShortener.svelte +274 -0
  80. package/dist/components/LinkShortener.svelte.d.ts +27 -0
  81. package/dist/components/LoadingSpinner.svelte +106 -0
  82. package/dist/components/LoadingSpinner.svelte.d.ts +21 -0
  83. package/dist/components/LocationMap.svelte +186 -0
  84. package/dist/components/LocationMap.svelte.d.ts +11 -0
  85. package/dist/components/MapView.svelte +341 -0
  86. package/dist/components/MapView.svelte.d.ts +20 -0
  87. package/dist/components/MarkupEditor.svelte +485 -0
  88. package/dist/components/MarkupEditor.svelte.d.ts +10 -0
  89. package/dist/components/MarkupOverlay.svelte +55 -0
  90. package/dist/components/MarkupOverlay.svelte.d.ts +8 -0
  91. package/dist/components/MediaWorkbench.svelte +871 -0
  92. package/dist/components/MediaWorkbench.svelte.d.ts +9 -0
  93. package/dist/components/MilestoneCard.svelte +98 -0
  94. package/dist/components/MilestoneCard.svelte.d.ts +16 -0
  95. package/dist/components/MilestoneTimeline.svelte +91 -0
  96. package/dist/components/MilestoneTimeline.svelte.d.ts +15 -0
  97. package/dist/components/Modal.svelte +244 -0
  98. package/dist/components/Modal.svelte.d.ts +35 -0
  99. package/dist/components/PDFViewer.svelte +105 -0
  100. package/dist/components/PDFViewer.svelte.d.ts +9 -0
  101. package/dist/components/PdfThumbnail.svelte +63 -0
  102. package/dist/components/PdfThumbnail.svelte.d.ts +9 -0
  103. package/dist/components/PhoneInput.svelte +212 -0
  104. package/dist/components/PhoneInput.svelte.d.ts +25 -0
  105. package/dist/components/ResizableDivider.svelte +307 -0
  106. package/dist/components/ResizableDivider.svelte.d.ts +26 -0
  107. package/dist/components/ResizablePanel.svelte +305 -0
  108. package/dist/components/ResizablePanel.svelte.d.ts +18 -0
  109. package/dist/components/SearchDropdown.svelte +421 -0
  110. package/dist/components/SearchDropdown.svelte.d.ts +24 -0
  111. package/dist/components/SelectInput.svelte +237 -0
  112. package/dist/components/SelectInput.svelte.d.ts +26 -0
  113. package/dist/components/SidebarUserFooter.svelte +34 -0
  114. package/dist/components/SidebarUserFooter.svelte.d.ts +16 -0
  115. package/dist/components/SignaturePad.svelte +175 -0
  116. package/dist/components/SignaturePad.svelte.d.ts +17 -0
  117. package/dist/components/SmartImageEditor.svelte +720 -0
  118. package/dist/components/SmartImageEditor.svelte.d.ts +24 -0
  119. package/dist/components/SortDropdown.svelte +156 -0
  120. package/dist/components/SortDropdown.svelte.d.ts +40 -0
  121. package/dist/components/Sparkline.svelte +116 -0
  122. package/dist/components/Sparkline.svelte.d.ts +12 -0
  123. package/dist/components/SpeechForm.svelte +114 -0
  124. package/dist/components/SpeechForm.svelte.d.ts +17 -0
  125. package/dist/components/StatusBadge.svelte +157 -0
  126. package/dist/components/StatusBadge.svelte.d.ts +24 -0
  127. package/dist/components/TaskTypeIcon.svelte +54 -0
  128. package/dist/components/TaskTypeIcon.svelte.d.ts +17 -0
  129. package/dist/components/TextArea.svelte +162 -0
  130. package/dist/components/TextArea.svelte.d.ts +30 -0
  131. package/dist/components/TextInput.svelte +131 -0
  132. package/dist/components/TextInput.svelte.d.ts +29 -0
  133. package/dist/components/ThemeSelector.svelte +206 -0
  134. package/dist/components/ThemeSelector.svelte.d.ts +14 -0
  135. package/dist/components/TimeSlotPicker.svelte +162 -0
  136. package/dist/components/TimeSlotPicker.svelte.d.ts +18 -0
  137. package/dist/components/UserAvatar.svelte +72 -0
  138. package/dist/components/UserAvatar.svelte.d.ts +11 -0
  139. package/dist/components/VariablePicker.svelte +170 -0
  140. package/dist/components/VariablePicker.svelte.d.ts +40 -0
  141. package/dist/components/VoicePlayer.svelte +422 -0
  142. package/dist/components/VoicePlayer.svelte.d.ts +18 -0
  143. package/dist/components/linked-columns/LinkedColumns.svelte +526 -0
  144. package/dist/components/linked-columns/LinkedColumns.svelte.d.ts +130 -0
  145. package/dist/components/markup.d.ts +47 -0
  146. package/dist/components/markup.js +201 -0
  147. package/dist/components/messaging/Avatar.svelte +81 -0
  148. package/dist/components/messaging/Avatar.svelte.d.ts +11 -0
  149. package/dist/components/messaging/ChannelInfoModal.svelte +163 -0
  150. package/dist/components/messaging/ChannelInfoModal.svelte.d.ts +18 -0
  151. package/dist/components/messaging/ChannelList.svelte +107 -0
  152. package/dist/components/messaging/ChannelList.svelte.d.ts +11 -0
  153. package/dist/components/messaging/ChannelMemberAvatarStack.svelte +69 -0
  154. package/dist/components/messaging/ChannelMemberAvatarStack.svelte.d.ts +11 -0
  155. package/dist/components/messaging/ChannelMembersModal.svelte +182 -0
  156. package/dist/components/messaging/ChannelMembersModal.svelte.d.ts +16 -0
  157. package/dist/components/messaging/CreateChannelModal.svelte +190 -0
  158. package/dist/components/messaging/CreateChannelModal.svelte.d.ts +14 -0
  159. package/dist/components/messaging/DirectMessageList.svelte +145 -0
  160. package/dist/components/messaging/DirectMessageList.svelte.d.ts +12 -0
  161. package/dist/components/messaging/EmojiSelector.svelte +261 -0
  162. package/dist/components/messaging/EmojiSelector.svelte.d.ts +19 -0
  163. package/dist/components/messaging/MentionAutocomplete.svelte +193 -0
  164. package/dist/components/messaging/MentionAutocomplete.svelte.d.ts +17 -0
  165. package/dist/components/messaging/MessageAttachment.svelte +273 -0
  166. package/dist/components/messaging/MessageAttachment.svelte.d.ts +13 -0
  167. package/dist/components/messaging/MessageAttachmentUpload.svelte +243 -0
  168. package/dist/components/messaging/MessageAttachmentUpload.svelte.d.ts +19 -0
  169. package/dist/components/messaging/MessageInput.svelte +452 -0
  170. package/dist/components/messaging/MessageInput.svelte.d.ts +28 -0
  171. package/dist/components/messaging/MessageItem.svelte +341 -0
  172. package/dist/components/messaging/MessageItem.svelte.d.ts +41 -0
  173. package/dist/components/messaging/MessageThread.svelte +306 -0
  174. package/dist/components/messaging/MessageThread.svelte.d.ts +30 -0
  175. package/dist/components/messaging/NotificationSettingsModal.svelte +234 -0
  176. package/dist/components/messaging/NotificationSettingsModal.svelte.d.ts +13 -0
  177. package/dist/components/messaging/QuotedMessageDisplay.svelte +123 -0
  178. package/dist/components/messaging/QuotedMessageDisplay.svelte.d.ts +10 -0
  179. package/dist/components/messaging/StartDMModal.svelte +100 -0
  180. package/dist/components/messaging/StartDMModal.svelte.d.ts +14 -0
  181. package/dist/components/messaging/ThreadPanel.svelte +153 -0
  182. package/dist/components/messaging/ThreadPanel.svelte.d.ts +16 -0
  183. package/dist/components/pipeline/DESIGN.md +361 -0
  184. package/dist/components/pipeline/Pipeline.svelte +391 -0
  185. package/dist/components/pipeline/Pipeline.svelte.d.ts +28 -0
  186. package/dist/components/pipeline/PipelineCard.svelte +94 -0
  187. package/dist/components/pipeline/PipelineCard.svelte.d.ts +13 -0
  188. package/dist/components/pipeline/PipelineColumn.svelte +163 -0
  189. package/dist/components/pipeline/PipelineColumn.svelte.d.ts +30 -0
  190. package/dist/components/replay/ChapterTimeline.svelte +326 -0
  191. package/dist/components/replay/ChapterTimeline.svelte.d.ts +39 -0
  192. package/dist/components/session-nav/transcriptModel.d.ts +132 -0
  193. package/dist/components/session-nav/transcriptModel.js +285 -0
  194. package/dist/data/emojis.d.ts +18 -0
  195. package/dist/data/emojis.js +1196 -0
  196. package/dist/index.d.ts +142 -0
  197. package/dist/index.js +142 -0
  198. package/dist/stores/confirmDialog.svelte.d.ts +21 -0
  199. package/dist/stores/confirmDialog.svelte.js +31 -0
  200. package/dist/stores/inputDialog.svelte.d.ts +24 -0
  201. package/dist/stores/inputDialog.svelte.js +32 -0
  202. package/dist/styles/rail.css +63 -0
  203. package/dist/types/annotation.d.ts +32 -0
  204. package/dist/types/annotation.js +3 -0
  205. package/dist/types/booking.d.ts +115 -0
  206. package/dist/types/booking.js +24 -0
  207. package/dist/types/comments.d.ts +65 -0
  208. package/dist/types/comments.js +22 -0
  209. package/dist/types/entityPreview.d.ts +42 -0
  210. package/dist/types/entityPreview.js +10 -0
  211. package/dist/types/filePicker.d.ts +15 -0
  212. package/dist/types/filePicker.js +1 -0
  213. package/dist/types/googleMaps.d.ts +51 -0
  214. package/dist/types/maps.d.ts +43 -0
  215. package/dist/types/maps.js +4 -0
  216. package/dist/types/messaging.d.ts +282 -0
  217. package/dist/types/messaging.js +100 -0
  218. package/dist/types/milestone.d.ts +20 -0
  219. package/dist/types/milestone.js +7 -0
  220. package/dist/types/pipeline.d.ts +115 -0
  221. package/dist/types/pipeline.js +15 -0
  222. package/dist/types/smartImageEditor.d.ts +42 -0
  223. package/dist/types/smartImageEditor.js +1 -0
  224. package/dist/types/templateVars.d.ts +34 -0
  225. package/dist/types/templateVars.js +12 -0
  226. package/dist/utils/currency.d.ts +8 -0
  227. package/dist/utils/currency.js +17 -0
  228. package/dist/utils/daisyuiColors.d.ts +37 -0
  229. package/dist/utils/daisyuiColors.js +152 -0
  230. package/dist/utils/dateFormatters.d.ts +69 -0
  231. package/dist/utils/dateFormatters.js +199 -0
  232. package/dist/utils/googleMapsLoader.d.ts +19 -0
  233. package/dist/utils/googleMapsLoader.js +121 -0
  234. package/dist/utils/mentionParser.d.ts +67 -0
  235. package/dist/utils/mentionParser.js +132 -0
  236. package/dist/utils/phone.d.ts +13 -0
  237. package/dist/utils/phone.js +67 -0
  238. package/dist/utils/phoneFormat.d.ts +26 -0
  239. package/dist/utils/phoneFormat.js +69 -0
  240. package/dist/utils/taskUtils.d.ts +37 -0
  241. package/dist/utils/taskUtils.js +71 -0
  242. package/package.json +3 -2
@@ -0,0 +1,305 @@
1
+ <script lang="ts">
2
+ import type { Snippet } from "svelte"
3
+ import { onMount } from "svelte"
4
+
5
+ let {
6
+ width = 320,
7
+ minWidth = 280,
8
+ maxWidth = 800,
9
+ position = "right",
10
+ enableResize = true,
11
+ enableDragToSwap = true,
12
+ color = "neutral",
13
+ animateWidth = false,
14
+ onResize,
15
+ onResizeEnd,
16
+ onSwap,
17
+ children,
18
+ } = $props<{
19
+ width?: number
20
+ minWidth?: number
21
+ maxWidth?: number
22
+ position?: "left" | "right"
23
+ enableResize?: boolean
24
+ enableDragToSwap?: boolean
25
+ color?: string
26
+ animateWidth?: boolean
27
+ onResize?: (width: number) => void
28
+ onResizeEnd?: (width: number) => void
29
+ onSwap?: (newPosition: "left" | "right") => void
30
+ children?: Snippet
31
+ }>()
32
+
33
+ let panel = $state<HTMLElement | null>(null)
34
+ let resizeSide = $state<"left" | "right" | null>(null)
35
+ let startWidth = $state(0)
36
+ let startX = $state(0)
37
+ let isResizing = $state(false)
38
+ let isDragging = $state(false)
39
+ let dragIndicatorPosition = $state<{ x: number; y: number } | null>(null)
40
+
41
+ onMount(() => {
42
+ if (panel) {
43
+ width = panel.offsetWidth
44
+ }
45
+ })
46
+
47
+ function handleResizeStart(e: MouseEvent | TouchEvent, side: "left" | "right") {
48
+ if (!enableResize) return
49
+
50
+ isResizing = true
51
+ startWidth = width
52
+ resizeSide = side
53
+
54
+ if ("touches" in e) {
55
+ startX = e.touches[0].clientX
56
+ } else {
57
+ startX = e.clientX
58
+ }
59
+
60
+ window.addEventListener("mousemove", handleResize)
61
+ window.addEventListener("touchmove", handleResize, { passive: false })
62
+ window.addEventListener("mouseup", handleResizeEnd)
63
+ window.addEventListener("touchend", handleResizeEnd)
64
+
65
+ document.body.style.userSelect = "none"
66
+ e.stopPropagation()
67
+ }
68
+
69
+ function handleResize(e: MouseEvent | TouchEvent) {
70
+ if (!isResizing || !resizeSide) return
71
+
72
+ if ("touches" in e) {
73
+ e.preventDefault()
74
+ const currentX = e.touches[0].clientX
75
+ const diff = resizeSide === "right" ? startX - currentX : currentX - startX
76
+ width = Math.max(minWidth, Math.min(maxWidth, startWidth + diff))
77
+ } else {
78
+ const currentX = e.clientX
79
+ const diff = resizeSide === "right" ? startX - currentX : currentX - startX
80
+ width = Math.max(minWidth, Math.min(maxWidth, startWidth + diff))
81
+ }
82
+
83
+ onResize?.(width)
84
+ }
85
+
86
+ function handleResizeEnd() {
87
+ if (!isResizing) return
88
+
89
+ isResizing = false
90
+ resizeSide = null
91
+
92
+ window.removeEventListener("mousemove", handleResize)
93
+ window.removeEventListener("touchmove", handleResize)
94
+ window.removeEventListener("mouseup", handleResizeEnd)
95
+ window.removeEventListener("touchend", handleResizeEnd)
96
+
97
+ document.body.style.userSelect = ""
98
+ onResizeEnd?.(width)
99
+ }
100
+
101
+ function handleDragStart(e: MouseEvent | TouchEvent) {
102
+ if (!enableDragToSwap) return
103
+
104
+ isDragging = true
105
+
106
+ if ("touches" in e) {
107
+ dragIndicatorPosition = { x: e.touches[0].clientX, y: e.touches[0].clientY }
108
+ } else {
109
+ dragIndicatorPosition = { x: e.clientX, y: e.clientY }
110
+ }
111
+
112
+ window.addEventListener("mousemove", handleDrag)
113
+ window.addEventListener("touchmove", handleDrag, { passive: false })
114
+ window.addEventListener("mouseup", handleDragEnd)
115
+ window.addEventListener("touchend", handleDragEnd)
116
+
117
+ e.stopPropagation()
118
+ }
119
+
120
+ function handleDrag(e: MouseEvent | TouchEvent) {
121
+ if (!isDragging) return
122
+
123
+ if ("touches" in e) {
124
+ e.preventDefault()
125
+ dragIndicatorPosition = { x: e.touches[0].clientX, y: e.touches[0].clientY }
126
+ } else {
127
+ dragIndicatorPosition = { x: e.clientX, y: e.clientY }
128
+ }
129
+ }
130
+
131
+ function handleDragEnd(e: MouseEvent | TouchEvent) {
132
+ if (!isDragging) return
133
+
134
+ isDragging = false
135
+ dragIndicatorPosition = null
136
+
137
+ window.removeEventListener("mousemove", handleDrag)
138
+ window.removeEventListener("touchmove", handleDrag)
139
+ window.removeEventListener("mouseup", handleDragEnd)
140
+ window.removeEventListener("touchend", handleDragEnd)
141
+
142
+ let clientX: number
143
+ if ("changedTouches" in e) {
144
+ clientX = e.changedTouches[0].clientX
145
+ } else {
146
+ clientX = e.clientX
147
+ }
148
+
149
+ const viewportWidth = window.innerWidth
150
+ const threshold = viewportWidth * 0.4
151
+
152
+ const shouldSwap =
153
+ (position === "right" && clientX < threshold) ||
154
+ (position === "left" && clientX > viewportWidth - threshold)
155
+
156
+ if (shouldSwap) {
157
+ onSwap?.(position === "right" ? "left" : "right")
158
+ }
159
+ }
160
+ </script>
161
+
162
+ <div
163
+ bind:this={panel}
164
+ class={`resizable-panel border-l border-r border-${color}/30 ${isResizing ? " resizing" : ""}${isDragging ? " dragging" : ""}${animateWidth && !isResizing ? " animate-width" : ""}`}
165
+ style="width: {width}px;"
166
+ >
167
+ {#if enableResize}
168
+ <!-- svelte-ignore a11y_no_static_element_interactions -->
169
+ <div
170
+ class="resize-handle left"
171
+ style="right: 0;"
172
+ onmousedown={(e) => handleResizeStart(e, "left")}
173
+ ontouchstart={(e) => handleResizeStart(e, "left")}
174
+ >
175
+ <div class="handle-indicator"></div>
176
+ </div>
177
+ <!-- svelte-ignore a11y_no_static_element_interactions -->
178
+ <div
179
+ class="resize-handle right"
180
+ style="left: 0;"
181
+ onmousedown={(e) => handleResizeStart(e, "right")}
182
+ ontouchstart={(e) => handleResizeStart(e, "right")}
183
+ >
184
+ <div class="handle-indicator"></div>
185
+ </div>
186
+ {/if}
187
+
188
+ {#if enableDragToSwap}
189
+ <!-- svelte-ignore a11y_no_static_element_interactions -->
190
+ <div
191
+ class="drag-handle"
192
+ onmousedown={handleDragStart}
193
+ ontouchstart={handleDragStart}
194
+ >
195
+ <div class="drag-indicator"></div>
196
+ </div>
197
+ {/if}
198
+
199
+ <div class="panel-content min-w-0">
200
+ {#if children}
201
+ {@render children()}
202
+ {/if}
203
+ </div>
204
+ </div>
205
+
206
+ {#if isDragging && dragIndicatorPosition}
207
+ <div
208
+ class="drag-preview"
209
+ style="left: {dragIndicatorPosition.x}px; top: {dragIndicatorPosition.y}px;"
210
+ >
211
+ <div class="drag-preview-inner"></div>
212
+ </div>
213
+ {/if}
214
+
215
+ <style>
216
+ .resizable-panel {
217
+ position: relative;
218
+ height: 100%;
219
+ overflow: hidden;
220
+ transition: box-shadow 0.2s ease;
221
+ }
222
+
223
+ .resizable-panel.animate-width {
224
+ transition: width 0.3s cubic-bezier(0.4, 0, 0.2, 1);
225
+ }
226
+
227
+ .resizable-panel.resizing { user-select: none; }
228
+
229
+ .resize-handle {
230
+ position: absolute;
231
+ width: 10px;
232
+ height: 100%;
233
+ cursor: col-resize;
234
+ z-index: 100;
235
+ }
236
+
237
+ .resize-handle.right { left: 0; width: 15px; }
238
+ .resize-handle.left { right: 0; width: 15px; }
239
+
240
+ .handle-indicator {
241
+ position: absolute;
242
+ left: 50%;
243
+ top: 0;
244
+ bottom: 0;
245
+ width: 6px;
246
+ border-radius: 2px;
247
+ transform: translateX(-50%);
248
+ background-color: transparent;
249
+ transition: background-color 0.2s ease;
250
+ }
251
+
252
+ .resize-handle:hover .handle-indicator,
253
+ .resizing .handle-indicator {
254
+ background-color: var(--color-accent);
255
+ }
256
+
257
+ .drag-handle {
258
+ position: absolute;
259
+ top: 0;
260
+ left: 0;
261
+ right: 0;
262
+ height: 10px;
263
+ cursor: move;
264
+ z-index: 10;
265
+ display: flex;
266
+ justify-content: center;
267
+ align-items: center;
268
+ }
269
+
270
+ .drag-indicator {
271
+ width: 30px;
272
+ height: 4px;
273
+ border-radius: 2px;
274
+ background-color: var(--color-base-300, oklch(0.82 0.03 255));
275
+ transition: background-color 0.2s ease;
276
+ }
277
+
278
+ .drag-handle:hover .drag-indicator,
279
+ .dragging .drag-indicator {
280
+ background-color: var(--color-primary, oklch(0.64 0.18 259));
281
+ }
282
+
283
+ .panel-content {
284
+ height: 100%;
285
+ overflow: hidden;
286
+ display: flex;
287
+ flex-direction: column;
288
+ }
289
+
290
+ .drag-preview {
291
+ position: fixed;
292
+ pointer-events: none;
293
+ z-index: 9999;
294
+ transform: translate(-50%, -50%);
295
+ }
296
+
297
+ .drag-preview-inner {
298
+ width: 100px;
299
+ height: 60px;
300
+ background-color: var(--color-primary, oklch(0.64 0.18 259));
301
+ opacity: 0.3;
302
+ border-radius: 4px;
303
+ border: 2px solid var(--color-primary, oklch(0.64 0.18 259));
304
+ }
305
+ </style>
@@ -0,0 +1,18 @@
1
+ import type { Snippet } from "svelte";
2
+ type $$ComponentProps = {
3
+ width?: number;
4
+ minWidth?: number;
5
+ maxWidth?: number;
6
+ position?: "left" | "right";
7
+ enableResize?: boolean;
8
+ enableDragToSwap?: boolean;
9
+ color?: string;
10
+ animateWidth?: boolean;
11
+ onResize?: (width: number) => void;
12
+ onResizeEnd?: (width: number) => void;
13
+ onSwap?: (newPosition: "left" | "right") => void;
14
+ children?: Snippet;
15
+ };
16
+ declare const ResizablePanel: import("svelte").Component<$$ComponentProps, {}, "">;
17
+ type ResizablePanel = ReturnType<typeof ResizablePanel>;
18
+ export default ResizablePanel;