diff --git a/app/javascript/dashboard/assets/scss/widgets/_base.scss b/app/javascript/dashboard/assets/scss/widgets/_base.scss index d5d2e227f..d35c1cfc9 100644 --- a/app/javascript/dashboard/assets/scss/widgets/_base.scss +++ b/app/javascript/dashboard/assets/scss/widgets/_base.scss @@ -31,7 +31,13 @@ hr { ul, ol, dl { - @apply mb-2 list-disc list-outside leading-[1.65]; + @apply list-disc list-outside leading-[1.65]; +} + +ul:not(.reset-base), +ol:not(.reset-base), +dl:not(.reset-base) { + @apply mb-0; } // Form elements diff --git a/app/javascript/dashboard/assets/scss/widgets/_buttons.scss b/app/javascript/dashboard/assets/scss/widgets/_buttons.scss index 587b810ca..640e1395f 100644 --- a/app/javascript/dashboard/assets/scss/widgets/_buttons.scss +++ b/app/javascript/dashboard/assets/scss/widgets/_buttons.scss @@ -96,7 +96,7 @@ button { } // @TODDO - Remove after moving all buttons to woot-button - .icon+.button__content { + .icon + .button__content { @apply w-auto; } diff --git a/app/javascript/dashboard/components-next/dropdown-menu/DropdownPrimitives.story.vue b/app/javascript/dashboard/components-next/dropdown-menu/DropdownPrimitives.story.vue new file mode 100644 index 000000000..c0818283e --- /dev/null +++ b/app/javascript/dashboard/components-next/dropdown-menu/DropdownPrimitives.story.vue @@ -0,0 +1,79 @@ + + + diff --git a/app/javascript/dashboard/components-next/dropdown-menu/base/DropdownBody.vue b/app/javascript/dashboard/components-next/dropdown-menu/base/DropdownBody.vue new file mode 100644 index 000000000..4fde89306 --- /dev/null +++ b/app/javascript/dashboard/components-next/dropdown-menu/base/DropdownBody.vue @@ -0,0 +1,9 @@ + diff --git a/app/javascript/dashboard/components-next/dropdown-menu/base/DropdownContainer.vue b/app/javascript/dashboard/components-next/dropdown-menu/base/DropdownContainer.vue new file mode 100644 index 000000000..ee81e4b98 --- /dev/null +++ b/app/javascript/dashboard/components-next/dropdown-menu/base/DropdownContainer.vue @@ -0,0 +1,29 @@ + + + diff --git a/app/javascript/dashboard/components-next/dropdown-menu/base/DropdownItem.vue b/app/javascript/dashboard/components-next/dropdown-menu/base/DropdownItem.vue new file mode 100644 index 000000000..92be04fda --- /dev/null +++ b/app/javascript/dashboard/components-next/dropdown-menu/base/DropdownItem.vue @@ -0,0 +1,55 @@ + + + diff --git a/app/javascript/dashboard/components-next/dropdown-menu/base/DropdownSection.vue b/app/javascript/dashboard/components-next/dropdown-menu/base/DropdownSection.vue new file mode 100644 index 000000000..3879af0a7 --- /dev/null +++ b/app/javascript/dashboard/components-next/dropdown-menu/base/DropdownSection.vue @@ -0,0 +1,22 @@ + + + diff --git a/app/javascript/dashboard/components-next/dropdown-menu/base/DropdownSeparator.vue b/app/javascript/dashboard/components-next/dropdown-menu/base/DropdownSeparator.vue new file mode 100644 index 000000000..373aa4479 --- /dev/null +++ b/app/javascript/dashboard/components-next/dropdown-menu/base/DropdownSeparator.vue @@ -0,0 +1,3 @@ + diff --git a/app/javascript/dashboard/components-next/dropdown-menu/base/index.js b/app/javascript/dashboard/components-next/dropdown-menu/base/index.js new file mode 100644 index 000000000..69a15a850 --- /dev/null +++ b/app/javascript/dashboard/components-next/dropdown-menu/base/index.js @@ -0,0 +1,13 @@ +import DropdownBody from './DropdownBody.vue'; +import DropdownContainer from './DropdownContainer.vue'; +import DropdownItem from './DropdownItem.vue'; +import DropdownSection from './DropdownSection.vue'; +import DropdownSeparator from './DropdownSeparator.vue'; + +export { + DropdownBody, + DropdownContainer, + DropdownItem, + DropdownSection, + DropdownSeparator, +}; diff --git a/app/javascript/dashboard/components-next/dropdown-menu/base/provider.js b/app/javascript/dashboard/components-next/dropdown-menu/base/provider.js new file mode 100644 index 000000000..67f2cbd0a --- /dev/null +++ b/app/javascript/dashboard/components-next/dropdown-menu/base/provider.js @@ -0,0 +1,19 @@ +import { inject, provide } from 'vue'; + +const DropdownControl = Symbol('DropdownControl'); + +export function useDropdownContext() { + const context = inject(DropdownControl, null); + + if (context === null) { + throw new Error( + `Component is missing a parent component.` + ); + } + + return context; +} + +export function provideDropdownContext(context) { + provide(DropdownControl, context); +} diff --git a/app/javascript/dashboard/components-next/sidebar/SidebarAccountSwitcher.vue b/app/javascript/dashboard/components-next/sidebar/SidebarAccountSwitcher.vue index 8e99977dd..03e7a5e53 100644 --- a/app/javascript/dashboard/components-next/sidebar/SidebarAccountSwitcher.vue +++ b/app/javascript/dashboard/components-next/sidebar/SidebarAccountSwitcher.vue @@ -1,24 +1,23 @@ diff --git a/app/javascript/dashboard/components-next/sidebar/SidebarGroup.vue b/app/javascript/dashboard/components-next/sidebar/SidebarGroup.vue index f7bc2362d..43856e574 100644 --- a/app/javascript/dashboard/components-next/sidebar/SidebarGroup.vue +++ b/app/javascript/dashboard/components-next/sidebar/SidebarGroup.vue @@ -101,7 +101,7 @@ const toggleTrigger = () => { :permissions="resolvePermissions(to)" :feature-flag="resolveFeatureFlag(to)" as="li" - class="text-sm cursor-pointer select-none gap-1 grid" + class="grid gap-1 text-sm cursor-pointer select-none" > {