ikanban-web 0.2.0 → 0.2.2

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 (100) hide show
  1. package/dist/assets/{ghostty-web-BkTBr6Qp.js → ghostty-web-DC9h7yp6.js} +1 -1
  2. package/dist/assets/{home-CbMdbws_.js → home-B2bEEt-Q.js} +1 -1
  3. package/dist/assets/{index-DvCClLZk.js → index-BM0fG0_S.js} +1 -1
  4. package/dist/assets/{session-mSsgwdFK.js → session-CFBQK6ra.js} +3 -3
  5. package/dist/index.html +1 -1
  6. package/package.json +3 -3
  7. package/src/app.tsx +7 -7
  8. package/src/components/dialog-connect-provider.tsx +10 -10
  9. package/src/components/dialog-custom-provider.tsx +7 -7
  10. package/src/components/dialog-edit-project.tsx +7 -7
  11. package/src/components/dialog-fork.tsx +5 -5
  12. package/src/components/dialog-manage-models.tsx +6 -6
  13. package/src/components/dialog-release-notes.tsx +3 -3
  14. package/src/components/dialog-select-directory.tsx +6 -6
  15. package/src/components/dialog-select-file.tsx +8 -8
  16. package/src/components/dialog-select-mcp.tsx +3 -3
  17. package/src/components/dialog-select-model-unpaid.tsx +7 -7
  18. package/src/components/dialog-select-model.tsx +7 -7
  19. package/src/components/dialog-select-provider.tsx +5 -5
  20. package/src/components/dialog-select-server.tsx +9 -9
  21. package/src/components/dialog-settings.tsx +3 -3
  22. package/src/components/file-tree.test.ts +4 -4
  23. package/src/components/file-tree.tsx +3 -3
  24. package/src/components/prompt-input/attachments.ts +1 -1
  25. package/src/components/prompt-input/build-request-parts.ts +1 -1
  26. package/src/components/prompt-input/context-items.tsx +4 -4
  27. package/src/components/prompt-input/drag-overlay.tsx +1 -1
  28. package/src/components/prompt-input/image-attachments.tsx +1 -1
  29. package/src/components/prompt-input/slash-popover.tsx +3 -3
  30. package/src/components/prompt-input/submit.test.ts +2 -2
  31. package/src/components/prompt-input/submit.ts +2 -2
  32. package/src/components/prompt-input.tsx +12 -12
  33. package/src/components/server/server-row.tsx +1 -1
  34. package/src/components/session/session-context-tab.tsx +8 -8
  35. package/src/components/session/session-header.tsx +12 -12
  36. package/src/components/session/session-new-view.tsx +2 -2
  37. package/src/components/session/session-sortable-tab.tsx +5 -5
  38. package/src/components/session/session-sortable-terminal-tab.tsx +4 -4
  39. package/src/components/session-context-usage.tsx +3 -3
  40. package/src/components/settings-general.tsx +7 -7
  41. package/src/components/settings-keybinds.tsx +5 -5
  42. package/src/components/settings-models.tsx +6 -6
  43. package/src/components/settings-permissions.tsx +2 -2
  44. package/src/components/settings-providers.tsx +5 -5
  45. package/src/components/status-popover.tsx +7 -7
  46. package/src/components/terminal.tsx +2 -2
  47. package/src/components/titlebar.tsx +5 -5
  48. package/src/context/command.tsx +2 -2
  49. package/src/context/comments.test.ts +1 -1
  50. package/src/context/comments.tsx +1 -1
  51. package/src/context/file.tsx +3 -3
  52. package/src/context/global-sdk.tsx +1 -1
  53. package/src/context/global-sync/bootstrap.ts +3 -3
  54. package/src/context/global-sync/event-reducer.ts +1 -1
  55. package/src/context/global-sync.tsx +2 -2
  56. package/src/context/highlights.tsx +2 -2
  57. package/src/context/language.tsx +18 -18
  58. package/src/context/layout.tsx +1 -1
  59. package/src/context/local.tsx +2 -2
  60. package/src/context/models.tsx +1 -1
  61. package/src/context/notification.tsx +3 -3
  62. package/src/context/permission-auto-respond.test.ts +1 -1
  63. package/src/context/permission-auto-respond.ts +1 -1
  64. package/src/context/permission.tsx +1 -1
  65. package/src/context/platform.tsx +1 -1
  66. package/src/context/prompt.tsx +2 -2
  67. package/src/context/sdk.tsx +1 -1
  68. package/src/context/server.tsx +1 -1
  69. package/src/context/settings.tsx +1 -1
  70. package/src/context/sync.tsx +3 -3
  71. package/src/context/terminal.test.ts +1 -1
  72. package/src/context/terminal.tsx +1 -1
  73. package/src/entry.tsx +1 -1
  74. package/src/index.css +1 -1
  75. package/src/pages/directory-layout.tsx +2 -2
  76. package/src/pages/error.tsx +4 -4
  77. package/src/pages/home.tsx +5 -5
  78. package/src/pages/layout/helpers.ts +1 -1
  79. package/src/pages/layout/inline-editor.tsx +1 -1
  80. package/src/pages/layout/sidebar-items.tsx +10 -10
  81. package/src/pages/layout/sidebar-project.tsx +7 -7
  82. package/src/pages/layout/sidebar-shell.tsx +2 -2
  83. package/src/pages/layout/sidebar-workspace.tsx +9 -9
  84. package/src/pages/layout.tsx +14 -14
  85. package/src/pages/session/composer/session-composer-region.tsx +1 -1
  86. package/src/pages/session/composer/session-composer-state.ts +1 -1
  87. package/src/pages/session/composer/session-permission-dock.tsx +3 -3
  88. package/src/pages/session/composer/session-question-dock.tsx +4 -4
  89. package/src/pages/session/composer/session-todo-dock.tsx +7 -7
  90. package/src/pages/session/file-tabs.tsx +10 -10
  91. package/src/pages/session/message-timeline.tsx +13 -13
  92. package/src/pages/session/review-tab.tsx +2 -2
  93. package/src/pages/session/session-mobile-tabs.tsx +1 -1
  94. package/src/pages/session/session-side-panel.tsx +6 -6
  95. package/src/pages/session/terminal-panel.tsx +4 -4
  96. package/src/pages/session/use-session-commands.tsx +3 -3
  97. package/src/pages/session.tsx +6 -6
  98. package/src/utils/base64.ts +1 -1
  99. package/src/utils/persist.ts +1 -1
  100. package/src/utils/sound.ts +45 -45
@@ -3,15 +3,15 @@ import { createEffect, createMemo, For, Show, type Accessor, type JSX } from "so
3
3
  import { createStore } from "solid-js/store"
4
4
  import { createSortable } from "@thisbeyond/solid-dnd"
5
5
  import { createMediaQuery } from "@solid-primitives/media"
6
- import { base64Encode } from "@opencode-ai/util/encode"
7
- import { getFilename } from "@opencode-ai/util/path"
8
- import { Button } from "@opencode-ai/ui/button"
9
- import { Collapsible } from "@opencode-ai/ui/collapsible"
10
- import { DropdownMenu } from "@opencode-ai/ui/dropdown-menu"
11
- import { Icon } from "@opencode-ai/ui/icon"
12
- import { IconButton } from "@opencode-ai/ui/icon-button"
13
- import { Spinner } from "@opencode-ai/ui/spinner"
14
- import { Tooltip } from "@opencode-ai/ui/tooltip"
6
+ import { base64Encode } from "ikanban-utils/encode"
7
+ import { getFilename } from "ikanban-utils/path"
8
+ import { Button } from "ikanban-ui/button"
9
+ import { Collapsible } from "ikanban-ui/collapsible"
10
+ import { DropdownMenu } from "ikanban-ui/dropdown-menu"
11
+ import { Icon } from "ikanban-ui/icon"
12
+ import { IconButton } from "ikanban-ui/icon-button"
13
+ import { Spinner } from "ikanban-ui/spinner"
14
+ import { Tooltip } from "ikanban-ui/tooltip"
15
15
  import { type Session } from "@opencode-ai/sdk/v2/client"
16
16
  import { type LocalProject } from "@/context/layout"
17
17
  import { useGlobalSync } from "@/context/global-sync"
@@ -16,16 +16,16 @@ import { A, useNavigate, useParams } from "@solidjs/router"
16
16
  import { useLayout, LocalProject } from "@/context/layout"
17
17
  import { useGlobalSync } from "@/context/global-sync"
18
18
  import { Persist, persisted } from "@/utils/persist"
19
- import { base64Encode } from "@opencode-ai/util/encode"
19
+ import { base64Encode } from "ikanban-utils/encode"
20
20
  import { decode64 } from "@/utils/base64"
21
- import { ResizeHandle } from "@opencode-ai/ui/resize-handle"
22
- import { Button } from "@opencode-ai/ui/button"
23
- import { Icon } from "@opencode-ai/ui/icon"
24
- import { IconButton } from "@opencode-ai/ui/icon-button"
25
- import { Tooltip, TooltipKeybind } from "@opencode-ai/ui/tooltip"
26
- import { DropdownMenu } from "@opencode-ai/ui/dropdown-menu"
27
- import { Dialog } from "@opencode-ai/ui/dialog"
28
- import { getFilename } from "@opencode-ai/util/path"
21
+ import { ResizeHandle } from "ikanban-ui/resize-handle"
22
+ import { Button } from "ikanban-ui/button"
23
+ import { Icon } from "ikanban-ui/icon"
24
+ import { IconButton } from "ikanban-ui/icon-button"
25
+ import { Tooltip, TooltipKeybind } from "ikanban-ui/tooltip"
26
+ import { DropdownMenu } from "ikanban-ui/dropdown-menu"
27
+ import { Dialog } from "ikanban-ui/dialog"
28
+ import { getFilename } from "ikanban-utils/path"
29
29
  import { Session, type Message } from "@opencode-ai/sdk/v2/client"
30
30
  import { usePlatform } from "@/context/platform"
31
31
  import { useSettings } from "@/context/settings"
@@ -33,19 +33,19 @@ import { createStore, produce, reconcile } from "solid-js/store"
33
33
  import { DragDropProvider, DragDropSensors, DragOverlay, SortableProvider, closestCenter } from "@thisbeyond/solid-dnd"
34
34
  import type { DragEvent } from "@thisbeyond/solid-dnd"
35
35
  import { useProviders } from "@/hooks/use-providers"
36
- import { showToast, Toast, toaster } from "@opencode-ai/ui/toast"
36
+ import { showToast, Toast, toaster } from "ikanban-ui/toast"
37
37
  import { useGlobalSDK } from "@/context/global-sdk"
38
38
  import { clearWorkspaceTerminals } from "@/context/terminal"
39
39
  import { useNotification } from "@/context/notification"
40
40
  import { usePermission } from "@/context/permission"
41
- import { Binary } from "@opencode-ai/util/binary"
42
- import { retry } from "@opencode-ai/util/retry"
41
+ import { Binary } from "ikanban-utils/binary"
42
+ import { retry } from "ikanban-utils/retry"
43
43
  import { playSound, soundSrc } from "@/utils/sound"
44
44
  import { createAim } from "@/utils/aim"
45
45
  import { Worktree as WorktreeState } from "@/utils/worktree"
46
46
 
47
- import { useDialog } from "@opencode-ai/ui/context/dialog"
48
- import { useTheme, type ColorScheme } from "@opencode-ai/ui/theme"
47
+ import { useDialog } from "ikanban-ui/context/dialog"
48
+ import { useTheme, type ColorScheme } from "ikanban-ui/theme"
49
49
  import { DialogSelectProvider } from "@/components/dialog-select-provider"
50
50
  import { DialogSelectServer } from "@/components/dialog-select-server"
51
51
  import { DialogSettings } from "@/components/dialog-settings"
@@ -1,6 +1,6 @@
1
1
  import { Show, createEffect, createMemo, createSignal, onCleanup } from "solid-js"
2
2
  import { useParams } from "@solidjs/router"
3
- import { useSpring } from "@opencode-ai/ui/motion-spring"
3
+ import { useSpring } from "ikanban-ui/motion-spring"
4
4
  import { PromptInput } from "@/components/prompt-input"
5
5
  import { useLanguage } from "@/context/language"
6
6
  import { usePrompt } from "@/context/prompt"
@@ -2,7 +2,7 @@ import { createEffect, createMemo, on, onCleanup } from "solid-js"
2
2
  import { createStore } from "solid-js/store"
3
3
  import type { PermissionRequest, QuestionRequest, Todo } from "@opencode-ai/sdk/v2"
4
4
  import { useParams } from "@solidjs/router"
5
- import { showToast } from "@opencode-ai/ui/toast"
5
+ import { showToast } from "ikanban-ui/toast"
6
6
  import { useGlobalSync } from "@/context/global-sync"
7
7
  import { useLanguage } from "@/context/language"
8
8
  import { usePermission } from "@/context/permission"
@@ -1,8 +1,8 @@
1
1
  import { For, Show } from "solid-js"
2
2
  import type { PermissionRequest } from "@opencode-ai/sdk/v2"
3
- import { Button } from "@opencode-ai/ui/button"
4
- import { DockPrompt } from "@opencode-ai/ui/dock-prompt"
5
- import { Icon } from "@opencode-ai/ui/icon"
3
+ import { Button } from "ikanban-ui/button"
4
+ import { DockPrompt } from "ikanban-ui/dock-prompt"
5
+ import { Icon } from "ikanban-ui/icon"
6
6
  import { useLanguage } from "@/context/language"
7
7
 
8
8
  export function SessionPermissionDock(props: {
@@ -1,9 +1,9 @@
1
1
  import { For, Show, createMemo, onCleanup, onMount, type Component } from "solid-js"
2
2
  import { createStore } from "solid-js/store"
3
- import { Button } from "@opencode-ai/ui/button"
4
- import { DockPrompt } from "@opencode-ai/ui/dock-prompt"
5
- import { Icon } from "@opencode-ai/ui/icon"
6
- import { showToast } from "@opencode-ai/ui/toast"
3
+ import { Button } from "ikanban-ui/button"
4
+ import { DockPrompt } from "ikanban-ui/dock-prompt"
5
+ import { Icon } from "ikanban-ui/icon"
6
+ import { showToast } from "ikanban-ui/toast"
7
7
  import type { QuestionAnswer, QuestionRequest } from "@opencode-ai/sdk/v2"
8
8
  import { useLanguage } from "@/context/language"
9
9
  import { useSDK } from "@/context/sdk"
@@ -1,11 +1,11 @@
1
1
  import type { Todo } from "@opencode-ai/sdk/v2"
2
- import { AnimatedNumber } from "@opencode-ai/ui/animated-number"
3
- import { Checkbox } from "@opencode-ai/ui/checkbox"
4
- import { DockTray } from "@opencode-ai/ui/dock-surface"
5
- import { IconButton } from "@opencode-ai/ui/icon-button"
6
- import { useSpring } from "@opencode-ai/ui/motion-spring"
7
- import { TextReveal } from "@opencode-ai/ui/text-reveal"
8
- import { TextStrikethrough } from "@opencode-ai/ui/text-strikethrough"
2
+ import { AnimatedNumber } from "ikanban-ui/animated-number"
3
+ import { Checkbox } from "ikanban-ui/checkbox"
4
+ import { DockTray } from "ikanban-ui/dock-surface"
5
+ import { IconButton } from "ikanban-ui/icon-button"
6
+ import { useSpring } from "ikanban-ui/motion-spring"
7
+ import { TextReveal } from "ikanban-ui/text-reveal"
8
+ import { TextStrikethrough } from "ikanban-ui/text-strikethrough"
9
9
  import { Index, createEffect, createMemo, createSignal, on, onCleanup } from "solid-js"
10
10
  import { createStore } from "solid-js/store"
11
11
 
@@ -2,16 +2,16 @@ import { createEffect, createMemo, Match, on, onCleanup, Switch } from "solid-js
2
2
  import { createStore } from "solid-js/store"
3
3
  import { Dynamic } from "solid-js/web"
4
4
  import { useParams } from "@solidjs/router"
5
- import type { FileSearchHandle } from "@opencode-ai/ui/file"
6
- import { useFileComponent } from "@opencode-ai/ui/context/file"
7
- import { cloneSelectedLineRange, previewSelectedLines } from "@opencode-ai/ui/pierre/selection-bridge"
8
- import { createLineCommentController } from "@opencode-ai/ui/line-comment-annotations"
9
- import { sampledChecksum } from "@opencode-ai/util/encode"
10
- import { DropdownMenu } from "@opencode-ai/ui/dropdown-menu"
11
- import { IconButton } from "@opencode-ai/ui/icon-button"
12
- import { Tabs } from "@opencode-ai/ui/tabs"
13
- import { ScrollView } from "@opencode-ai/ui/scroll-view"
14
- import { showToast } from "@opencode-ai/ui/toast"
5
+ import type { FileSearchHandle } from "ikanban-ui/file"
6
+ import { useFileComponent } from "ikanban-ui/context/file"
7
+ import { cloneSelectedLineRange, previewSelectedLines } from "ikanban-ui/pierre/selection-bridge"
8
+ import { createLineCommentController } from "ikanban-ui/line-comment-annotations"
9
+ import { sampledChecksum } from "ikanban-utils/encode"
10
+ import { DropdownMenu } from "ikanban-ui/dropdown-menu"
11
+ import { IconButton } from "ikanban-ui/icon-button"
12
+ import { Tabs } from "ikanban-ui/tabs"
13
+ import { ScrollView } from "ikanban-ui/scroll-view"
14
+ import { showToast } from "ikanban-ui/toast"
15
15
  import { useLayout } from "@/context/layout"
16
16
  import { selectionFromLines, useFile, type FileSelection, type SelectedLineRange } from "@/context/file"
17
17
  import { useComments } from "@/context/comments"
@@ -1,22 +1,22 @@
1
1
  import { For, createEffect, createMemo, on, onCleanup, Show, startTransition, Index, type JSX } from "solid-js"
2
2
  import { createStore, produce } from "solid-js/store"
3
3
  import { useNavigate, useParams } from "@solidjs/router"
4
- import { Button } from "@opencode-ai/ui/button"
5
- import { FileIcon } from "@opencode-ai/ui/file-icon"
6
- import { Icon } from "@opencode-ai/ui/icon"
7
- import { IconButton } from "@opencode-ai/ui/icon-button"
8
- import { DropdownMenu } from "@opencode-ai/ui/dropdown-menu"
9
- import { Dialog } from "@opencode-ai/ui/dialog"
10
- import { InlineInput } from "@opencode-ai/ui/inline-input"
11
- import { SessionTurn } from "@opencode-ai/ui/session-turn"
12
- import { ScrollView } from "@opencode-ai/ui/scroll-view"
4
+ import { Button } from "ikanban-ui/button"
5
+ import { FileIcon } from "ikanban-ui/file-icon"
6
+ import { Icon } from "ikanban-ui/icon"
7
+ import { IconButton } from "ikanban-ui/icon-button"
8
+ import { DropdownMenu } from "ikanban-ui/dropdown-menu"
9
+ import { Dialog } from "ikanban-ui/dialog"
10
+ import { InlineInput } from "ikanban-ui/inline-input"
11
+ import { SessionTurn } from "ikanban-ui/session-turn"
12
+ import { ScrollView } from "ikanban-ui/scroll-view"
13
13
  import type { AssistantMessage, Message as MessageType, Part, TextPart, UserMessage } from "@opencode-ai/sdk/v2"
14
- import { showToast } from "@opencode-ai/ui/toast"
15
- import { Binary } from "@opencode-ai/util/binary"
16
- import { getFilename } from "@opencode-ai/util/path"
14
+ import { showToast } from "ikanban-ui/toast"
15
+ import { Binary } from "ikanban-utils/binary"
16
+ import { getFilename } from "ikanban-utils/path"
17
17
  import { shouldMarkBoundaryGesture, normalizeWheelDelta } from "@/pages/session/message-gesture"
18
18
  import { SessionContextUsage } from "@/components/session-context-usage"
19
- import { useDialog } from "@opencode-ai/ui/context/dialog"
19
+ import { useDialog } from "ikanban-ui/context/dialog"
20
20
  import { useLanguage } from "@/context/language"
21
21
  import { useSettings } from "@/context/settings"
22
22
  import { useSDK } from "@/context/sdk"
@@ -1,11 +1,11 @@
1
1
  import { createEffect, onCleanup, type JSX } from "solid-js"
2
2
  import type { FileDiff } from "@opencode-ai/sdk/v2"
3
- import { SessionReview } from "@opencode-ai/ui/session-review"
3
+ import { SessionReview } from "ikanban-ui/session-review"
4
4
  import type {
5
5
  SessionReviewCommentActions,
6
6
  SessionReviewCommentDelete,
7
7
  SessionReviewCommentUpdate,
8
- } from "@opencode-ai/ui/session-review"
8
+ } from "ikanban-ui/session-review"
9
9
  import type { SelectedLineRange } from "@/context/file"
10
10
  import { useSDK } from "@/context/sdk"
11
11
  import { useLayout } from "@/context/layout"
@@ -1,5 +1,5 @@
1
1
  import { Show } from "solid-js"
2
- import { Tabs } from "@opencode-ai/ui/tabs"
2
+ import { Tabs } from "ikanban-ui/tabs"
3
3
  import { useLanguage } from "@/context/language"
4
4
 
5
5
  export function SessionMobileTabs(props: {
@@ -2,15 +2,15 @@ import { For, Match, Show, Switch, createEffect, createMemo, onCleanup, type JSX
2
2
  import { createStore } from "solid-js/store"
3
3
  import { createMediaQuery } from "@solid-primitives/media"
4
4
  import { useParams } from "@solidjs/router"
5
- import { Tabs } from "@opencode-ai/ui/tabs"
6
- import { IconButton } from "@opencode-ai/ui/icon-button"
7
- import { TooltipKeybind } from "@opencode-ai/ui/tooltip"
8
- import { ResizeHandle } from "@opencode-ai/ui/resize-handle"
9
- import { Mark } from "@opencode-ai/ui/logo"
5
+ import { Tabs } from "ikanban-ui/tabs"
6
+ import { IconButton } from "ikanban-ui/icon-button"
7
+ import { TooltipKeybind } from "ikanban-ui/tooltip"
8
+ import { ResizeHandle } from "ikanban-ui/resize-handle"
9
+ import { Mark } from "ikanban-ui/logo"
10
10
  import { DragDropProvider, DragDropSensors, DragOverlay, SortableProvider, closestCenter } from "@thisbeyond/solid-dnd"
11
11
  import type { DragEvent } from "@thisbeyond/solid-dnd"
12
12
  import { ConstrainDragYAxis, getDraggableId } from "@/utils/solid-dnd"
13
- import { useDialog } from "@opencode-ai/ui/context/dialog"
13
+ import { useDialog } from "ikanban-ui/context/dialog"
14
14
 
15
15
  import FileTree from "@/components/file-tree"
16
16
  import { SessionContextUsage } from "@/components/session-context-usage"
@@ -2,10 +2,10 @@ import { For, Show, createEffect, createMemo, on } from "solid-js"
2
2
  import { createStore } from "solid-js/store"
3
3
  import { createMediaQuery } from "@solid-primitives/media"
4
4
  import { useParams } from "@solidjs/router"
5
- import { Tabs } from "@opencode-ai/ui/tabs"
6
- import { ResizeHandle } from "@opencode-ai/ui/resize-handle"
7
- import { IconButton } from "@opencode-ai/ui/icon-button"
8
- import { TooltipKeybind } from "@opencode-ai/ui/tooltip"
5
+ import { Tabs } from "ikanban-ui/tabs"
6
+ import { ResizeHandle } from "ikanban-ui/resize-handle"
7
+ import { IconButton } from "ikanban-ui/icon-button"
8
+ import { TooltipKeybind } from "ikanban-ui/tooltip"
9
9
  import { DragDropProvider, DragDropSensors, DragOverlay, SortableProvider, closestCenter } from "@thisbeyond/solid-dnd"
10
10
  import type { DragEvent } from "@thisbeyond/solid-dnd"
11
11
  import { ConstrainDragYAxis, getDraggableId } from "@/utils/solid-dnd"
@@ -1,7 +1,7 @@
1
1
  import { createMemo } from "solid-js"
2
2
  import { useNavigate, useParams } from "@solidjs/router"
3
3
  import { useCommand, type CommandOption } from "@/context/command"
4
- import { useDialog } from "@opencode-ai/ui/context/dialog"
4
+ import { useDialog } from "ikanban-ui/context/dialog"
5
5
  import { useFile, selectionFromLines, type FileSelection, type SelectedLineRange } from "@/context/file"
6
6
  import { useLanguage } from "@/context/language"
7
7
  import { useLayout } from "@/context/layout"
@@ -15,8 +15,8 @@ import { DialogSelectFile } from "@/components/dialog-select-file"
15
15
  import { DialogSelectModel } from "@/components/dialog-select-model"
16
16
  import { DialogSelectMcp } from "@/components/dialog-select-mcp"
17
17
  import { DialogFork } from "@/components/dialog-fork"
18
- import { showToast } from "@opencode-ai/ui/toast"
19
- import { findLast } from "@opencode-ai/util/array"
18
+ import { showToast } from "ikanban-ui/toast"
19
+ import { findLast } from "ikanban-utils/array"
20
20
  import { extractPromptFromParts } from "@/utils/prompt"
21
21
  import { UserMessage } from "@opencode-ai/sdk/v2"
22
22
  import { canAddSelectionContext } from "@/pages/session/session-command-helpers"
@@ -16,15 +16,15 @@ import { createResizeObserver } from "@solid-primitives/resize-observer"
16
16
  import { useLocal } from "@/context/local"
17
17
  import { selectionFromLines, useFile, type FileSelection, type SelectedLineRange } from "@/context/file"
18
18
  import { createStore } from "solid-js/store"
19
- import { ResizeHandle } from "@opencode-ai/ui/resize-handle"
20
- import { Select } from "@opencode-ai/ui/select"
21
- import { createAutoScroll } from "@opencode-ai/ui/hooks"
22
- import { Mark } from "@opencode-ai/ui/logo"
19
+ import { ResizeHandle } from "ikanban-ui/resize-handle"
20
+ import { Select } from "ikanban-ui/select"
21
+ import { createAutoScroll } from "ikanban-ui/hooks"
22
+ import { Mark } from "ikanban-ui/logo"
23
23
 
24
24
  import { useSync } from "@/context/sync"
25
25
  import { useLayout } from "@/context/layout"
26
- import { checksum, base64Encode } from "@opencode-ai/util/encode"
27
- import { useDialog } from "@opencode-ai/ui/context/dialog"
26
+ import { checksum, base64Encode } from "ikanban-utils/encode"
27
+ import { useDialog } from "ikanban-ui/context/dialog"
28
28
  import { useLanguage } from "@/context/language"
29
29
  import { useNavigate, useParams } from "@solidjs/router"
30
30
  import { UserMessage } from "@opencode-ai/sdk/v2"
@@ -1,4 +1,4 @@
1
- import { base64Decode } from "@opencode-ai/util/encode"
1
+ import { base64Decode } from "ikanban-utils/encode"
2
2
 
3
3
  export function decode64(value: string | undefined) {
4
4
  if (value === undefined) return
@@ -1,6 +1,6 @@
1
1
  import { Platform, usePlatform } from "@/context/platform"
2
2
  import { makePersisted, type AsyncStorage, type SyncStorage } from "@solid-primitives/storage"
3
- import { checksum } from "@opencode-ai/util/encode"
3
+ import { checksum } from "ikanban-utils/encode"
4
4
  import { createResource, type Accessor } from "solid-js"
5
5
  import type { SetStoreFunction, Store } from "solid-js/store"
6
6
 
@@ -1,48 +1,48 @@
1
- import alert01 from "@opencode-ai/ui/audio/alert-01.aac"
2
- import alert02 from "@opencode-ai/ui/audio/alert-02.aac"
3
- import alert03 from "@opencode-ai/ui/audio/alert-03.aac"
4
- import alert04 from "@opencode-ai/ui/audio/alert-04.aac"
5
- import alert05 from "@opencode-ai/ui/audio/alert-05.aac"
6
- import alert06 from "@opencode-ai/ui/audio/alert-06.aac"
7
- import alert07 from "@opencode-ai/ui/audio/alert-07.aac"
8
- import alert08 from "@opencode-ai/ui/audio/alert-08.aac"
9
- import alert09 from "@opencode-ai/ui/audio/alert-09.aac"
10
- import alert10 from "@opencode-ai/ui/audio/alert-10.aac"
11
- import bipbop01 from "@opencode-ai/ui/audio/bip-bop-01.aac"
12
- import bipbop02 from "@opencode-ai/ui/audio/bip-bop-02.aac"
13
- import bipbop03 from "@opencode-ai/ui/audio/bip-bop-03.aac"
14
- import bipbop04 from "@opencode-ai/ui/audio/bip-bop-04.aac"
15
- import bipbop05 from "@opencode-ai/ui/audio/bip-bop-05.aac"
16
- import bipbop06 from "@opencode-ai/ui/audio/bip-bop-06.aac"
17
- import bipbop07 from "@opencode-ai/ui/audio/bip-bop-07.aac"
18
- import bipbop08 from "@opencode-ai/ui/audio/bip-bop-08.aac"
19
- import bipbop09 from "@opencode-ai/ui/audio/bip-bop-09.aac"
20
- import bipbop10 from "@opencode-ai/ui/audio/bip-bop-10.aac"
21
- import nope01 from "@opencode-ai/ui/audio/nope-01.aac"
22
- import nope02 from "@opencode-ai/ui/audio/nope-02.aac"
23
- import nope03 from "@opencode-ai/ui/audio/nope-03.aac"
24
- import nope04 from "@opencode-ai/ui/audio/nope-04.aac"
25
- import nope05 from "@opencode-ai/ui/audio/nope-05.aac"
26
- import nope06 from "@opencode-ai/ui/audio/nope-06.aac"
27
- import nope07 from "@opencode-ai/ui/audio/nope-07.aac"
28
- import nope08 from "@opencode-ai/ui/audio/nope-08.aac"
29
- import nope09 from "@opencode-ai/ui/audio/nope-09.aac"
30
- import nope10 from "@opencode-ai/ui/audio/nope-10.aac"
31
- import nope11 from "@opencode-ai/ui/audio/nope-11.aac"
32
- import nope12 from "@opencode-ai/ui/audio/nope-12.aac"
33
- import staplebops01 from "@opencode-ai/ui/audio/staplebops-01.aac"
34
- import staplebops02 from "@opencode-ai/ui/audio/staplebops-02.aac"
35
- import staplebops03 from "@opencode-ai/ui/audio/staplebops-03.aac"
36
- import staplebops04 from "@opencode-ai/ui/audio/staplebops-04.aac"
37
- import staplebops05 from "@opencode-ai/ui/audio/staplebops-05.aac"
38
- import staplebops06 from "@opencode-ai/ui/audio/staplebops-06.aac"
39
- import staplebops07 from "@opencode-ai/ui/audio/staplebops-07.aac"
40
- import yup01 from "@opencode-ai/ui/audio/yup-01.aac"
41
- import yup02 from "@opencode-ai/ui/audio/yup-02.aac"
42
- import yup03 from "@opencode-ai/ui/audio/yup-03.aac"
43
- import yup04 from "@opencode-ai/ui/audio/yup-04.aac"
44
- import yup05 from "@opencode-ai/ui/audio/yup-05.aac"
45
- import yup06 from "@opencode-ai/ui/audio/yup-06.aac"
1
+ import alert01 from "ikanban-ui/audio/alert-01.aac"
2
+ import alert02 from "ikanban-ui/audio/alert-02.aac"
3
+ import alert03 from "ikanban-ui/audio/alert-03.aac"
4
+ import alert04 from "ikanban-ui/audio/alert-04.aac"
5
+ import alert05 from "ikanban-ui/audio/alert-05.aac"
6
+ import alert06 from "ikanban-ui/audio/alert-06.aac"
7
+ import alert07 from "ikanban-ui/audio/alert-07.aac"
8
+ import alert08 from "ikanban-ui/audio/alert-08.aac"
9
+ import alert09 from "ikanban-ui/audio/alert-09.aac"
10
+ import alert10 from "ikanban-ui/audio/alert-10.aac"
11
+ import bipbop01 from "ikanban-ui/audio/bip-bop-01.aac"
12
+ import bipbop02 from "ikanban-ui/audio/bip-bop-02.aac"
13
+ import bipbop03 from "ikanban-ui/audio/bip-bop-03.aac"
14
+ import bipbop04 from "ikanban-ui/audio/bip-bop-04.aac"
15
+ import bipbop05 from "ikanban-ui/audio/bip-bop-05.aac"
16
+ import bipbop06 from "ikanban-ui/audio/bip-bop-06.aac"
17
+ import bipbop07 from "ikanban-ui/audio/bip-bop-07.aac"
18
+ import bipbop08 from "ikanban-ui/audio/bip-bop-08.aac"
19
+ import bipbop09 from "ikanban-ui/audio/bip-bop-09.aac"
20
+ import bipbop10 from "ikanban-ui/audio/bip-bop-10.aac"
21
+ import nope01 from "ikanban-ui/audio/nope-01.aac"
22
+ import nope02 from "ikanban-ui/audio/nope-02.aac"
23
+ import nope03 from "ikanban-ui/audio/nope-03.aac"
24
+ import nope04 from "ikanban-ui/audio/nope-04.aac"
25
+ import nope05 from "ikanban-ui/audio/nope-05.aac"
26
+ import nope06 from "ikanban-ui/audio/nope-06.aac"
27
+ import nope07 from "ikanban-ui/audio/nope-07.aac"
28
+ import nope08 from "ikanban-ui/audio/nope-08.aac"
29
+ import nope09 from "ikanban-ui/audio/nope-09.aac"
30
+ import nope10 from "ikanban-ui/audio/nope-10.aac"
31
+ import nope11 from "ikanban-ui/audio/nope-11.aac"
32
+ import nope12 from "ikanban-ui/audio/nope-12.aac"
33
+ import staplebops01 from "ikanban-ui/audio/staplebops-01.aac"
34
+ import staplebops02 from "ikanban-ui/audio/staplebops-02.aac"
35
+ import staplebops03 from "ikanban-ui/audio/staplebops-03.aac"
36
+ import staplebops04 from "ikanban-ui/audio/staplebops-04.aac"
37
+ import staplebops05 from "ikanban-ui/audio/staplebops-05.aac"
38
+ import staplebops06 from "ikanban-ui/audio/staplebops-06.aac"
39
+ import staplebops07 from "ikanban-ui/audio/staplebops-07.aac"
40
+ import yup01 from "ikanban-ui/audio/yup-01.aac"
41
+ import yup02 from "ikanban-ui/audio/yup-02.aac"
42
+ import yup03 from "ikanban-ui/audio/yup-03.aac"
43
+ import yup04 from "ikanban-ui/audio/yup-04.aac"
44
+ import yup05 from "ikanban-ui/audio/yup-05.aac"
45
+ import yup06 from "ikanban-ui/audio/yup-06.aac"
46
46
 
47
47
  export const SOUND_OPTIONS = [
48
48
  { id: "alert-01", label: "sound.option.alert01", src: alert01 },