diff --git a/.vscode/vuecomp.code-snippets b/.vscode/vuecomp.code-snippets index 0eb1fd698a..737f769673 100644 --- a/.vscode/vuecomp.code-snippets +++ b/.vscode/vuecomp.code-snippets @@ -22,10 +22,10 @@ "import { defineComponent } from \"vue\";", "", "export default defineComponent({", - "\tcomponents: {", - "\t},", "\tprops: {", "\t},", + "\tcomponents: {", + "\t},", "});", "", "", diff --git a/client/web/assets/12px-solid/checkmark.svg b/client/web/assets/12px-solid/checkmark.svg new file mode 100644 index 0000000000..83f0568ce7 --- /dev/null +++ b/client/web/assets/12px-solid/checkmark.svg @@ -0,0 +1,3 @@ + + + diff --git a/client/web/assets/12px-solid/grid.svg b/client/web/assets/12px-solid/grid.svg new file mode 100644 index 0000000000..f0a474d51b --- /dev/null +++ b/client/web/assets/12px-solid/grid.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/client/web/assets/12px-solid/link.svg b/client/web/assets/12px-solid/link.svg new file mode 100644 index 0000000000..a29d1cccc1 --- /dev/null +++ b/client/web/assets/12px-solid/link.svg @@ -0,0 +1,4 @@ + + + + diff --git a/client/web/assets/12px-solid/overlays.svg b/client/web/assets/12px-solid/overlays.svg new file mode 100644 index 0000000000..848b2c268f --- /dev/null +++ b/client/web/assets/12px-solid/overlays.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/client/web/assets/12px-solid/snapping.svg b/client/web/assets/12px-solid/snapping.svg new file mode 100644 index 0000000000..2a84016dc8 --- /dev/null +++ b/client/web/assets/12px-solid/snapping.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/client/web/assets/16px-solid/align-horizontal-right.svg b/client/web/assets/16px-solid/align-horizontal-right.svg index 29dd918ff8..4f86e83140 100644 --- a/client/web/assets/16px-solid/align-horizontal-right.svg +++ b/client/web/assets/16px-solid/align-horizontal-right.svg @@ -1,5 +1,5 @@ - - + + diff --git a/client/web/assets/16px-solid/align-vertical-bottom.svg b/client/web/assets/16px-solid/align-vertical-bottom.svg index d481401b4c..8b60abb680 100644 --- a/client/web/assets/16px-solid/align-vertical-bottom.svg +++ b/client/web/assets/16px-solid/align-vertical-bottom.svg @@ -1,5 +1,5 @@ - - + + diff --git a/client/web/assets/16px-solid/visibility-eye-hidden.svg b/client/web/assets/16px-solid/eye-hidden.svg similarity index 100% rename from client/web/assets/16px-solid/visibility-eye-hidden.svg rename to client/web/assets/16px-solid/eye-hidden.svg diff --git a/client/web/assets/16px-solid/visibility-eye-visible.svg b/client/web/assets/16px-solid/eye-visible.svg similarity index 100% rename from client/web/assets/16px-solid/visibility-eye-visible.svg rename to client/web/assets/16px-solid/eye-visible.svg diff --git a/client/web/src/components/panels/Document.vue b/client/web/src/components/panels/Document.vue index 387231136f..2c1d3cd882 100644 --- a/client/web/src/components/panels/Document.vue +++ b/client/web/src/components/panels/Document.vue @@ -52,15 +52,39 @@
+ + +

Snapping

+

More snapping options will be here

+
+ + + + + +

Grid

+

More grid options will be here

+
+ + + + + +

Overlays

+

More overlays options will be here

+
+ + + - -

Display Mode

-

More display mode options will be here

-
+ +

Display Mode

+

More display mode options will be here

+
@@ -176,6 +200,7 @@ import PopoverButton from "../widgets/buttons/PopoverButton.vue"; import RadioInput from "../widgets/inputs/RadioInput.vue"; import NumberInput from "../widgets/inputs/NumberInput.vue"; import DropdownInput from "../widgets/inputs/DropdownInput.vue"; +import OptionalInput from "../widgets/inputs/OptionalInput.vue"; import { SectionsOfMenuListEntries } from "../widgets/floating-menus/MenuList.vue"; const modeMenuEntries: SectionsOfMenuListEntries = [ @@ -282,6 +307,9 @@ export default defineComponent({ SeparatorType, modeMenuEntries, viewModeIndex: 0, + snappingEnabled: true, + gridEnabled: true, + overlaysEnabled: true, }; }, components: { @@ -295,6 +323,7 @@ export default defineComponent({ RadioInput, NumberInput, DropdownInput, + OptionalInput, }, }); diff --git a/client/web/src/components/widgets/WorkingColors.vue b/client/web/src/components/widgets/WorkingColors.vue index 07939a19f2..025830ec08 100644 --- a/client/web/src/components/widgets/WorkingColors.vue +++ b/client/web/src/components/widgets/WorkingColors.vue @@ -2,8 +2,8 @@
- - + +
diff --git a/client/web/src/components/widgets/buttons/PopoverButton.vue b/client/web/src/components/widgets/buttons/PopoverButton.vue index d1d5bf1379..bc07a3cd58 100644 --- a/client/web/src/components/widgets/buttons/PopoverButton.vue +++ b/client/web/src/components/widgets/buttons/PopoverButton.vue @@ -35,6 +35,15 @@ fill: var(--color-f-white); } } + + // TODO: Refactor this and other complicated cases dealing with joined widget margins and border-radius by adding a single standard set of classes: joined-first, joined-inner, and joined-last + div[class*="-input"] + & { + margin-left: 1px; + + .icon-button { + border-radius: 0 2px 2px 0; + } + } } diff --git a/client/web/src/components/widgets/inputs/CheckboxInput.vue b/client/web/src/components/widgets/inputs/CheckboxInput.vue new file mode 100644 index 0000000000..4816cebd7e --- /dev/null +++ b/client/web/src/components/widgets/inputs/CheckboxInput.vue @@ -0,0 +1,74 @@ + + + + + diff --git a/client/web/src/components/widgets/inputs/OptionalInput.vue b/client/web/src/components/widgets/inputs/OptionalInput.vue new file mode 100644 index 0000000000..f40d4007d9 --- /dev/null +++ b/client/web/src/components/widgets/inputs/OptionalInput.vue @@ -0,0 +1,80 @@ + + + + + diff --git a/client/web/src/components/widgets/labels/Icon.vue b/client/web/src/components/widgets/labels/Icon.vue index 1cf0416f4f..9729d4442c 100644 --- a/client/web/src/components/widgets/labels/Icon.vue +++ b/client/web/src/components/widgets/labels/Icon.vue @@ -30,27 +30,27 @@