diff --git a/CHANGELOG.md b/CHANGELOG.md
index 998b548f..d0d91087 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,14 +1,26 @@
+## 0.24.0 (April 4, 2024)
+
+### Features
+
+- [FDebugMenu] Add `input` type for menu items
+- [FDebugMenu] Add `select` type for menu items
+
+### Changes
+
+- [FDebugMenu] Explicitly store data in local storage if a key is set in config
+- [Storybook] Bump Node version to 18.17.1 for Storybook build (github.io page)
+
## 0.23.3 (March 20, 2024)
### Fixes
-- [Lib] Add `types` for all icon paths
+- [Lib] Add `types` for all icon paths
## 0.23.2 (March 20, 2024)
### Fixes
-- [Lib] Add `types` for all export paths
+- [Lib] Add `types` for all export paths
## 0.23.1 (February 13, 2024)
diff --git a/CHANGELOG.unreleased.md b/CHANGELOG.unreleased.md
index c71c76ec..abf609f9 100644
--- a/CHANGELOG.unreleased.md
+++ b/CHANGELOG.unreleased.md
@@ -1,5 +1 @@
# Changelog Unreleased
-
-### Changes
-
-- [Storybook] Bump Node version to 18.17.1 for Storybook build (github.io page)
diff --git a/package.json b/package.json
index af47be6b..5d0621bc 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "@fifteen/design-system-vue",
- "version": "0.23.3",
+ "version": "0.24.0",
"description": "Vue 3 (Composition API + Typescript) implementation of the Fifteen Design System",
"repository": {
"type": "git",
@@ -121,7 +121,7 @@
"@typescript-eslint/parser": "^6.19.0",
"@typescript-eslint/typescript-estree": "^6.19.0",
"@vitejs/plugin-vue": "^2.3.3",
- "@volar/vue-language-plugin-pug": "^1.6.5",
+ "@vue/language-plugin-pug": "^2.0.12",
"@vue/tsconfig": "^0.4.0",
"babel-loader": "^8.2.5",
"camelcase": "^6.3.0",
diff --git a/src/components/FButton.vue b/src/components/FButton.vue
index ed191496..2123725a 100644
--- a/src/components/FButton.vue
+++ b/src/components/FButton.vue
@@ -74,8 +74,9 @@ square($size)
.FLink__content
color var(--fbutton--text-color)
- path
- fill var(--fbutton--text-color)
+ .FIcon__content
+ path
+ fill var(--fbutton--text-color)
&.FButton--ghost,
&.FButton--outlined
@@ -93,8 +94,9 @@ square($size)
.FLink__content
color var(--fbutton--text-color--hover)
- path
- fill var(--fbutton--text-color--hover)
+ .FIcon__content
+ path
+ fill var(--fbutton--text-color--hover)
&.FButton--outlined
box-shadow 0 0 0 rem(2) var(--fbutton--outline-color) inset
diff --git a/src/components/FExpandable.vue b/src/components/FExpandable.vue
index a24d0b63..0ed0dab3 100644
--- a/src/components/FExpandable.vue
+++ b/src/components/FExpandable.vue
@@ -22,7 +22,7 @@
@@ -386,11 +389,18 @@ function getValueLabel(value: string): string | undefined {
function handleIconClick(event: Event): void {
if (props.clearable && isMenuOpen.value && fieldValue.value) {
event.stopPropagation();
- fieldValue.value = null;
- emit('clear');
+ clear();
}
}
+/**
+ * Clear selection
+ */
+function clear(): void {
+ fieldValue.value = null;
+ emit('clear');
+}
+
/**
* Handle select blur
*/
diff --git a/src/ui/FDebugMenu.vue b/src/ui/FDebugMenu.vue
index 7070de72..4c3036b9 100644
--- a/src/ui/FDebugMenu.vue
+++ b/src/ui/FDebugMenu.vue
@@ -44,7 +44,7 @@ FPopup.FDebugMenu(
@click="isOpen = false"
)
FIcon(name="close")
- transition(name="FDebugMenu__message--transition")
+ Transition(name="FDebugMenu__message--transition")
.FDebugMenu__message(
v-if="message"
:class="{ 'FDebugMenu__message--error': hasError }"
@@ -67,6 +67,7 @@ FPopup.FDebugMenu(
:title-vertical-padding="8"
:gap="8"
:text-hover-color="controlColor"
+ no-isolation
)
template(#title)
h6 {{ group.title }}
@@ -84,8 +85,7 @@ FPopup.FDebugMenu(
template(v-if="item.type === 'trigger'")
FButton(
:key="`${groupIndex}-${itemIndex}`"
- :disabled="item.disabled"
- size="tiny"
+ :disabled="getValue(item.disabled)"
:color="controlColor"
:hover-color="`${controlColor}--light-1`"
:loading="itemLoadingKey === `${groupIndex}-${itemIndex}`"
@@ -95,12 +95,45 @@ FPopup.FDebugMenu(
FCheckbox(
:key="`${groupIndex}-${itemIndex}`"
:model-value="item.ref.value"
- :disabled="item.disabled"
- size="tiny"
+ :disabled="getValue(item.disabled)"
:hover-border-color="`${controlColor}--light-1`"
:checked-border-color="`${controlColor}--light-1`"
:checked-color="controlColor"
- @update:model-value="updateToggleRef($event, item, `${groupIndex}-${itemIndex}`)"
+ @update:model-value="updateToggleRef($event, item)"
+ @click.stop
+ )
+ template(v-if="item.type === 'input'")
+ FInput(
+ :key="`${groupIndex}-${itemIndex}`"
+ :style="getInputStyle(item)"
+ :model-value="item.ref.value"
+ :disabled="getValue(item.disabled)"
+ :hover-border-color="`${controlColor}--light-1`"
+ :checked-border-color="`${controlColor}--light-1`"
+ :placeholder="getValue(item.placeholder, '')"
+ :outline-color="controlColor"
+ :focus-color="`${controlColor}--light-2`"
+ :color="`${controlColor}--light-2`"
+ @change="updateInputRef($event, item)"
+ @click.stop
+ )
+ template(v-if="item.type === 'select'")
+ FSelect(
+ :key="`${groupIndex}-${itemIndex}`"
+ :style="getInputStyle(item)"
+ :model-value="item.ref.value"
+ :disabled="getValue(item.disabled)"
+ :hover-border-color="`${controlColor}--light-1`"
+ :checked-border-color="`${controlColor}--light-1`"
+ :options-menu-color="`${controlColor}--light-2`"
+ :placeholder="getValue(item.placeholder, '')"
+ :outline-color="controlColor"
+ :focus-color="`${controlColor}--light-2`"
+ :color="`${controlColor}--light-2`"
+ :options="getValue(item.options)"
+ :clearable="getValue(item.clearable)"
+ size="small"
+ @update:model-value="updateInputRef($event, item)"
@click.stop
)
template(v-if="item.type === 'content'")
@@ -272,34 +305,54 @@ scroll-theme()
.FCheckbox
margin 0
- .FCheckbox__labelText
+ &__labelText
+ margin 0
+
+ .FInput
+ margin 0
+ height 2.5rem
+ width var(--FDebugMenu--inputWidth)
+
+ &__input input
+ font-size rem(14)
+
+ .FSelect
margin 0