Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions src/Toolkit/CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
- [Flowbite] Add `avatar` recipe
- [Flowbite] Add `dropdown` recipe
- [Shadcn] Add `hover-card` recipe
- [Shadcn] Add `menubar` recipe
- [Shadcn] Add `resizable` recipe

## 3.0.0
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
import { Controller } from '@hotwired/stimulus';

export default class extends Controller {
static values = {
openDelay: { type: Number, default: 0 },
closeDelay: { type: Number, default: 0 },
};

connect() {
this.openTimeout = null;
this.closeTimeout = null;
this.element.dataset.state = 'closed';
}

disconnect() {
this.#clearTimeouts();
}

show() {
this.#clearTimeouts();
this.openTimeout = setTimeout(() => {
this.element.dataset.state = 'open';
this.openTimeout = null;
}, this.openDelayValue);
}

hide() {
this.#clearTimeouts();
this.closeTimeout = setTimeout(() => {
this.element.dataset.state = 'closed';
this.closeTimeout = null;
}, this.closeDelayValue);
}

#clearTimeouts() {
if (this.openTimeout) {
clearTimeout(this.openTimeout);
this.openTimeout = null;
}
if (this.closeTimeout) {
clearTimeout(this.closeTimeout);
this.closeTimeout = null;
}
}
}
24 changes: 24 additions & 0 deletions src/Toolkit/kits/shadcn/menubar/examples/Checkbox.html.twig
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
<twig:Menubar class="w-72">
<twig:Menubar:Menu>
<twig:Menubar:Trigger>
<twig:Button variant="ghost" size="sm" {{ ...menubar_trigger_attrs }}>View</twig:Button>
</twig:Menubar:Trigger>
<twig:Menubar:Content class="w-64">
<twig:Menubar:CheckboxItem name="bookmarks-bar">Always Show Bookmarks Bar</twig:Menubar:CheckboxItem>
<twig:Menubar:CheckboxItem name="full-urls" checked>Always Show Full URLs</twig:Menubar:CheckboxItem>
<twig:Menubar:Separator />
<twig:Menubar:Item>Reload<twig:Menubar:Shortcut>⌘R</twig:Menubar:Shortcut></twig:Menubar:Item>
<twig:Menubar:Item disabled>Force Reload<twig:Menubar:Shortcut>⇧⌘R</twig:Menubar:Shortcut></twig:Menubar:Item>
</twig:Menubar:Content>
</twig:Menubar:Menu>
<twig:Menubar:Menu>
<twig:Menubar:Trigger>
<twig:Button variant="ghost" size="sm" {{ ...menubar_trigger_attrs }}>Format</twig:Button>
</twig:Menubar:Trigger>
<twig:Menubar:Content>
<twig:Menubar:CheckboxItem name="strikethrough" checked>Strikethrough</twig:Menubar:CheckboxItem>
<twig:Menubar:CheckboxItem name="code">Code</twig:Menubar:CheckboxItem>
<twig:Menubar:CheckboxItem name="superscript">Superscript</twig:Menubar:CheckboxItem>
</twig:Menubar:Content>
</twig:Menubar:Menu>
</twig:Menubar>
89 changes: 89 additions & 0 deletions src/Toolkit/kits/shadcn/menubar/examples/Demo.html.twig
Original file line number Diff line number Diff line change
@@ -0,0 +1,89 @@
<twig:Menubar class="w-72">
<twig:Menubar:Menu>
<twig:Menubar:Trigger>
<twig:Button variant="ghost" size="sm" {{ ...menubar_trigger_attrs }}>File</twig:Button>
</twig:Menubar:Trigger>
<twig:Menubar:Content>
<twig:Menubar:Item>New Tab<twig:Menubar:Shortcut>⌘T</twig:Menubar:Shortcut></twig:Menubar:Item>
<twig:Menubar:Item>New Window<twig:Menubar:Shortcut>⌘N</twig:Menubar:Shortcut></twig:Menubar:Item>
<twig:Menubar:Item disabled>New Incognito Window</twig:Menubar:Item>
<twig:Menubar:Separator />
<twig:Menubar:Sub>
<twig:Menubar:SubTrigger>
<twig:Button variant="ghost" size="sm" class="w-full justify-start" {{ ...menubar_sub_trigger_attrs }}>
Share
<twig:ux:icon name="lucide:chevron-right" class="ms-auto size-4" aria-hidden="true" />
</twig:Button>
</twig:Menubar:SubTrigger>
<twig:Menubar:SubContent>
<twig:Menubar:Item>Email link</twig:Menubar:Item>
<twig:Menubar:Item>Messages</twig:Menubar:Item>
<twig:Menubar:Item>Notes</twig:Menubar:Item>
</twig:Menubar:SubContent>
</twig:Menubar:Sub>
<twig:Menubar:Separator />
<twig:Menubar:Item>Print...<twig:Menubar:Shortcut>⌘P</twig:Menubar:Shortcut></twig:Menubar:Item>
</twig:Menubar:Content>
</twig:Menubar:Menu>
<twig:Menubar:Menu>
<twig:Menubar:Trigger>
<twig:Button variant="ghost" size="sm" {{ ...menubar_trigger_attrs }}>Edit</twig:Button>
</twig:Menubar:Trigger>
<twig:Menubar:Content>
<twig:Menubar:Item>Undo<twig:Menubar:Shortcut>⌘Z</twig:Menubar:Shortcut></twig:Menubar:Item>
<twig:Menubar:Item>Redo<twig:Menubar:Shortcut>⇧⌘Z</twig:Menubar:Shortcut></twig:Menubar:Item>
<twig:Menubar:Separator />
<twig:Menubar:Sub>
<twig:Menubar:SubTrigger>
<twig:Button variant="ghost" size="sm" class="w-full justify-start" {{ ...menubar_sub_trigger_attrs }}>
Find
<twig:ux:icon name="lucide:chevron-right" class="ms-auto size-4" aria-hidden="true" />
</twig:Button>
</twig:Menubar:SubTrigger>
<twig:Menubar:SubContent>
<twig:Menubar:Item>Search the web</twig:Menubar:Item>
<twig:Menubar:Separator />
<twig:Menubar:Item>Find...</twig:Menubar:Item>
<twig:Menubar:Item>Find Next</twig:Menubar:Item>
<twig:Menubar:Item>Find Previous</twig:Menubar:Item>
</twig:Menubar:SubContent>
</twig:Menubar:Sub>
<twig:Menubar:Separator />
<twig:Menubar:Item>Cut</twig:Menubar:Item>
<twig:Menubar:Item>Copy</twig:Menubar:Item>
<twig:Menubar:Item>Paste</twig:Menubar:Item>
</twig:Menubar:Content>
</twig:Menubar:Menu>
<twig:Menubar:Menu>
<twig:Menubar:Trigger>
<twig:Button variant="ghost" size="sm" {{ ...menubar_trigger_attrs }}>View</twig:Button>
</twig:Menubar:Trigger>
<twig:Menubar:Content class="w-44">
<twig:Menubar:CheckboxItem name="bookmarks">Bookmarks Bar</twig:Menubar:CheckboxItem>
<twig:Menubar:CheckboxItem name="urls" checked>Full URLs</twig:Menubar:CheckboxItem>
<twig:Menubar:Separator />
<twig:Menubar:Item>Reload<twig:Menubar:Shortcut>⌘R</twig:Menubar:Shortcut></twig:Menubar:Item>
<twig:Menubar:Item disabled>Force Reload<twig:Menubar:Shortcut>⇧⌘R</twig:Menubar:Shortcut></twig:Menubar:Item>
<twig:Menubar:Separator />
<twig:Menubar:Item>Toggle Fullscreen</twig:Menubar:Item>
<twig:Menubar:Separator />
<twig:Menubar:Item>Hide Sidebar</twig:Menubar:Item>
</twig:Menubar:Content>
</twig:Menubar:Menu>
<twig:Menubar:Menu>
<twig:Menubar:Trigger>
<twig:Button variant="ghost" size="sm" {{ ...menubar_trigger_attrs }}>Profiles</twig:Button>
</twig:Menubar:Trigger>
<twig:Menubar:Content>
<twig:Menubar:RadioGroup name="profile">
<twig:Menubar:RadioItem name="profile" value="andy">Andy</twig:Menubar:RadioItem>
<twig:Menubar:RadioItem name="profile" value="benoit" checked>Benoit</twig:Menubar:RadioItem>
<twig:Menubar:RadioItem name="profile" value="luis">Luis</twig:Menubar:RadioItem>
</twig:Menubar:RadioGroup>
<twig:Menubar:Separator />
<twig:Menubar:Item>Edit...</twig:Menubar:Item>
<twig:Menubar:Separator />
<twig:Menubar:Item>Add Profile...</twig:Menubar:Item>
</twig:Menubar:Content>
</twig:Menubar:Menu>
</twig:Menubar>
42 changes: 42 additions & 0 deletions src/Toolkit/kits/shadcn/menubar/examples/Icons.html.twig
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
<twig:Menubar class="w-72">
<twig:Menubar:Menu>
<twig:Menubar:Trigger>
<twig:Button variant="ghost" size="sm" {{ ...menubar_trigger_attrs }}>File</twig:Button>
</twig:Menubar:Trigger>
<twig:Menubar:Content>
<twig:Menubar:Item>
<twig:ux:icon name="lucide:file" class="me-2 size-4" />
New File<twig:Menubar:Shortcut>⌘N</twig:Menubar:Shortcut>
</twig:Menubar:Item>
<twig:Menubar:Item>
<twig:ux:icon name="lucide:folder" class="me-2 size-4" />
Open Folder
</twig:Menubar:Item>
<twig:Menubar:Separator />
<twig:Menubar:Item>
<twig:ux:icon name="lucide:save" class="me-2 size-4" />
Save<twig:Menubar:Shortcut>⌘S</twig:Menubar:Shortcut>
</twig:Menubar:Item>
</twig:Menubar:Content>
</twig:Menubar:Menu>
<twig:Menubar:Menu>
<twig:Menubar:Trigger>
<twig:Button variant="ghost" size="sm" {{ ...menubar_trigger_attrs }}>Edit</twig:Button>
</twig:Menubar:Trigger>
<twig:Menubar:Content>
<twig:Menubar:Item>
<twig:ux:icon name="lucide:settings" class="me-2 size-4" />
Preferences
</twig:Menubar:Item>
<twig:Menubar:Item>
<twig:ux:icon name="lucide:trash" class="me-2 size-4" />
Delete
</twig:Menubar:Item>
<twig:Menubar:Separator />
<twig:Menubar:Item>
<twig:ux:icon name="lucide:help-circle" class="me-2 size-4" />
Help
</twig:Menubar:Item>
</twig:Menubar:Content>
</twig:Menubar:Menu>
</twig:Menubar>
Loading
Loading