-
Notifications
You must be signed in to change notification settings - Fork 5
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
refactor(EditorNavbar): Put file commands in dropdown instead
- Loading branch information
1 parent
652a052
commit d47e63e
Showing
14 changed files
with
332 additions
and
5,502 deletions.
There are no files selected for viewing
This file was deleted.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
35 changes: 35 additions & 0 deletions
35
src/lib/components/ui/dropdown-menu/dropdown-menu-checkbox-item.svelte
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,35 @@ | ||
<script lang="ts"> | ||
import { DropdownMenu as DropdownMenuPrimitive } from "bits-ui"; | ||
import Check from "lucide-svelte/icons/check"; | ||
import { cn } from "$lib/utils.js"; | ||
type $$Props = DropdownMenuPrimitive.CheckboxItemProps; | ||
type $$Events = DropdownMenuPrimitive.CheckboxItemEvents; | ||
let className: $$Props["class"] = undefined; | ||
export let checked: $$Props["checked"] = undefined; | ||
export { className as class }; | ||
</script> | ||
|
||
<DropdownMenuPrimitive.CheckboxItem | ||
bind:checked | ||
class={cn( | ||
"data-[highlighted]:bg-accent data-[highlighted]:text-accent-foreground relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50", | ||
className | ||
)} | ||
{...$$restProps} | ||
on:click | ||
on:keydown | ||
on:focusin | ||
on:focusout | ||
on:pointerdown | ||
on:pointerleave | ||
on:pointermove | ||
> | ||
<span class="absolute left-2 flex h-3.5 w-3.5 items-center justify-center"> | ||
<DropdownMenuPrimitive.CheckboxIndicator> | ||
<Check class="h-4 w-4" /> | ||
</DropdownMenuPrimitive.CheckboxIndicator> | ||
</span> | ||
<slot /> | ||
</DropdownMenuPrimitive.CheckboxItem> |
27 changes: 27 additions & 0 deletions
27
src/lib/components/ui/dropdown-menu/dropdown-menu-content.svelte
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,27 @@ | ||
<script lang="ts"> | ||
import { DropdownMenu as DropdownMenuPrimitive } from "bits-ui"; | ||
import { cn, flyAndScale } from "$lib/utils.js"; | ||
type $$Props = DropdownMenuPrimitive.ContentProps; | ||
type $$Events = DropdownMenuPrimitive.ContentEvents; | ||
let className: $$Props["class"] = undefined; | ||
export let sideOffset: $$Props["sideOffset"] = 4; | ||
export let transition: $$Props["transition"] = flyAndScale; | ||
export let transitionConfig: $$Props["transitionConfig"] = undefined; | ||
export { className as class }; | ||
</script> | ||
|
||
<DropdownMenuPrimitive.Content | ||
{transition} | ||
{transitionConfig} | ||
{sideOffset} | ||
class={cn( | ||
"bg-popover text-popover-foreground z-50 min-w-[8rem] rounded-md border p-1 shadow-md focus:outline-none", | ||
className | ||
)} | ||
{...$$restProps} | ||
on:keydown | ||
> | ||
<slot /> | ||
</DropdownMenuPrimitive.Content> |
31 changes: 31 additions & 0 deletions
31
src/lib/components/ui/dropdown-menu/dropdown-menu-item.svelte
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,31 @@ | ||
<script lang="ts"> | ||
import { DropdownMenu as DropdownMenuPrimitive } from "bits-ui"; | ||
import { cn } from "$lib/utils.js"; | ||
type $$Props = DropdownMenuPrimitive.ItemProps & { | ||
inset?: boolean; | ||
}; | ||
type $$Events = DropdownMenuPrimitive.ItemEvents; | ||
let className: $$Props["class"] = undefined; | ||
export let inset: $$Props["inset"] = undefined; | ||
export { className as class }; | ||
</script> | ||
|
||
<DropdownMenuPrimitive.Item | ||
class={cn( | ||
"data-[highlighted]:bg-accent data-[highlighted]:text-accent-foreground relative flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50", | ||
inset && "pl-8", | ||
className | ||
)} | ||
{...$$restProps} | ||
on:click | ||
on:keydown | ||
on:focusin | ||
on:focusout | ||
on:pointerdown | ||
on:pointerleave | ||
on:pointermove | ||
> | ||
<slot /> | ||
</DropdownMenuPrimitive.Item> |
19 changes: 19 additions & 0 deletions
19
src/lib/components/ui/dropdown-menu/dropdown-menu-label.svelte
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,19 @@ | ||
<script lang="ts"> | ||
import { DropdownMenu as DropdownMenuPrimitive } from "bits-ui"; | ||
import { cn } from "$lib/utils.js"; | ||
type $$Props = DropdownMenuPrimitive.LabelProps & { | ||
inset?: boolean; | ||
}; | ||
let className: $$Props["class"] = undefined; | ||
export let inset: $$Props["inset"] = undefined; | ||
export { className as class }; | ||
</script> | ||
|
||
<DropdownMenuPrimitive.Label | ||
class={cn("px-2 py-1.5 text-sm font-semibold", inset && "pl-8", className)} | ||
{...$$restProps} | ||
> | ||
<slot /> | ||
</DropdownMenuPrimitive.Label> |
11 changes: 11 additions & 0 deletions
11
src/lib/components/ui/dropdown-menu/dropdown-menu-radio-group.svelte
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,11 @@ | ||
<script lang="ts"> | ||
import { DropdownMenu as DropdownMenuPrimitive } from "bits-ui"; | ||
type $$Props = DropdownMenuPrimitive.RadioGroupProps; | ||
export let value: $$Props["value"] = undefined; | ||
</script> | ||
|
||
<DropdownMenuPrimitive.RadioGroup {...$$restProps} bind:value> | ||
<slot /> | ||
</DropdownMenuPrimitive.RadioGroup> |
35 changes: 35 additions & 0 deletions
35
src/lib/components/ui/dropdown-menu/dropdown-menu-radio-item.svelte
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,35 @@ | ||
<script lang="ts"> | ||
import { DropdownMenu as DropdownMenuPrimitive } from "bits-ui"; | ||
import Circle from "lucide-svelte/icons/circle"; | ||
import { cn } from "$lib/utils.js"; | ||
type $$Props = DropdownMenuPrimitive.RadioItemProps; | ||
type $$Events = DropdownMenuPrimitive.RadioItemEvents; | ||
let className: $$Props["class"] = undefined; | ||
export let value: $$Props["value"]; | ||
export { className as class }; | ||
</script> | ||
|
||
<DropdownMenuPrimitive.RadioItem | ||
class={cn( | ||
"data-[highlighted]:bg-accent data-[highlighted]:text-accent-foreground relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50", | ||
className | ||
)} | ||
{value} | ||
{...$$restProps} | ||
on:click | ||
on:keydown | ||
on:focusin | ||
on:focusout | ||
on:pointerdown | ||
on:pointerleave | ||
on:pointermove | ||
> | ||
<span class="absolute left-2 flex h-3.5 w-3.5 items-center justify-center"> | ||
<DropdownMenuPrimitive.RadioIndicator> | ||
<Circle class="h-2 w-2 fill-current" /> | ||
</DropdownMenuPrimitive.RadioIndicator> | ||
</span> | ||
<slot /> | ||
</DropdownMenuPrimitive.RadioItem> |
14 changes: 14 additions & 0 deletions
14
src/lib/components/ui/dropdown-menu/dropdown-menu-separator.svelte
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,14 @@ | ||
<script lang="ts"> | ||
import { DropdownMenu as DropdownMenuPrimitive } from "bits-ui"; | ||
import { cn } from "$lib/utils.js"; | ||
type $$Props = DropdownMenuPrimitive.SeparatorProps; | ||
let className: $$Props["class"] = undefined; | ||
export { className as class }; | ||
</script> | ||
|
||
<DropdownMenuPrimitive.Separator | ||
class={cn("bg-muted -mx-1 my-1 h-px", className)} | ||
{...$$restProps} | ||
/> |
13 changes: 13 additions & 0 deletions
13
src/lib/components/ui/dropdown-menu/dropdown-menu-shortcut.svelte
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,13 @@ | ||
<script lang="ts"> | ||
import type { HTMLAttributes } from "svelte/elements"; | ||
import { cn } from "$lib/utils.js"; | ||
type $$Props = HTMLAttributes<HTMLSpanElement>; | ||
let className: $$Props["class"] = undefined; | ||
export { className as class }; | ||
</script> | ||
|
||
<span class={cn("ml-auto text-xs tracking-widest opacity-60", className)} {...$$restProps}> | ||
<slot /> | ||
</span> |
30 changes: 30 additions & 0 deletions
30
src/lib/components/ui/dropdown-menu/dropdown-menu-sub-content.svelte
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,30 @@ | ||
<script lang="ts"> | ||
import { DropdownMenu as DropdownMenuPrimitive } from "bits-ui"; | ||
import { cn, flyAndScale } from "$lib/utils.js"; | ||
type $$Props = DropdownMenuPrimitive.SubContentProps; | ||
type $$Events = DropdownMenuPrimitive.SubContentEvents; | ||
let className: $$Props["class"] = undefined; | ||
export let transition: $$Props["transition"] = flyAndScale; | ||
export let transitionConfig: $$Props["transitionConfig"] = { | ||
x: -10, | ||
y: 0, | ||
}; | ||
export { className as class }; | ||
</script> | ||
|
||
<DropdownMenuPrimitive.SubContent | ||
{transition} | ||
{transitionConfig} | ||
class={cn( | ||
"bg-popover text-popover-foreground z-50 min-w-[8rem] rounded-md border p-1 shadow-lg focus:outline-none", | ||
className | ||
)} | ||
{...$$restProps} | ||
on:keydown | ||
on:focusout | ||
on:pointermove | ||
> | ||
<slot /> | ||
</DropdownMenuPrimitive.SubContent> |
32 changes: 32 additions & 0 deletions
32
src/lib/components/ui/dropdown-menu/dropdown-menu-sub-trigger.svelte
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,32 @@ | ||
<script lang="ts"> | ||
import { DropdownMenu as DropdownMenuPrimitive } from "bits-ui"; | ||
import ChevronRight from "lucide-svelte/icons/chevron-right"; | ||
import { cn } from "$lib/utils.js"; | ||
type $$Props = DropdownMenuPrimitive.SubTriggerProps & { | ||
inset?: boolean; | ||
}; | ||
type $$Events = DropdownMenuPrimitive.SubTriggerEvents; | ||
let className: $$Props["class"] = undefined; | ||
export let inset: $$Props["inset"] = undefined; | ||
export { className as class }; | ||
</script> | ||
|
||
<DropdownMenuPrimitive.SubTrigger | ||
class={cn( | ||
"data-[highlighted]:bg-accent data-[state=open]:bg-accent data-[highlighted]:text-accent-foreground data-[state=open]:text-accent-foreground flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none", | ||
inset && "pl-8", | ||
className | ||
)} | ||
{...$$restProps} | ||
on:click | ||
on:keydown | ||
on:focusin | ||
on:focusout | ||
on:pointerleave | ||
on:pointermove | ||
> | ||
<slot /> | ||
<ChevronRight class="ml-auto h-4 w-4" /> | ||
</DropdownMenuPrimitive.SubTrigger> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,48 @@ | ||
import { DropdownMenu as DropdownMenuPrimitive } from "bits-ui"; | ||
import Item from "./dropdown-menu-item.svelte"; | ||
import Label from "./dropdown-menu-label.svelte"; | ||
import Content from "./dropdown-menu-content.svelte"; | ||
import Shortcut from "./dropdown-menu-shortcut.svelte"; | ||
import RadioItem from "./dropdown-menu-radio-item.svelte"; | ||
import Separator from "./dropdown-menu-separator.svelte"; | ||
import RadioGroup from "./dropdown-menu-radio-group.svelte"; | ||
import SubContent from "./dropdown-menu-sub-content.svelte"; | ||
import SubTrigger from "./dropdown-menu-sub-trigger.svelte"; | ||
import CheckboxItem from "./dropdown-menu-checkbox-item.svelte"; | ||
|
||
const Sub = DropdownMenuPrimitive.Sub; | ||
const Root = DropdownMenuPrimitive.Root; | ||
const Trigger = DropdownMenuPrimitive.Trigger; | ||
const Group = DropdownMenuPrimitive.Group; | ||
|
||
export { | ||
Sub, | ||
Root, | ||
Item, | ||
Label, | ||
Group, | ||
Trigger, | ||
Content, | ||
Shortcut, | ||
Separator, | ||
RadioItem, | ||
SubContent, | ||
SubTrigger, | ||
RadioGroup, | ||
CheckboxItem, | ||
// | ||
Root as DropdownMenu, | ||
Sub as DropdownMenuSub, | ||
Item as DropdownMenuItem, | ||
Label as DropdownMenuLabel, | ||
Group as DropdownMenuGroup, | ||
Content as DropdownMenuContent, | ||
Trigger as DropdownMenuTrigger, | ||
Shortcut as DropdownMenuShortcut, | ||
RadioItem as DropdownMenuRadioItem, | ||
Separator as DropdownMenuSeparator, | ||
RadioGroup as DropdownMenuRadioGroup, | ||
SubContent as DropdownMenuSubContent, | ||
SubTrigger as DropdownMenuSubTrigger, | ||
CheckboxItem as DropdownMenuCheckboxItem, | ||
}; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,7 @@ | ||
import Blockly from "blockly" | ||
import generator from "blockly/javascript" | ||
const { javascriptGenerator } = generator | ||
|
||
export function generateJavascriptCode(workspace: Blockly.Workspace = Blockly.getMainWorkspace()) { | ||
return javascriptGenerator.workspaceToCode(workspace) as string | ||
} |