diff --git a/.vscode/vuecomp.code-snippets b/.vscode/vuecomp.code-snippets index 0eb1fd698..737f76967 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 000000000..83f0568ce --- /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 000000000..f0a474d51 --- /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 000000000..a29d1cccc --- /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 000000000..848b2c268 --- /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 000000000..2a84016dc --- /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 29dd918ff..4f86e8314 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 d481401b4..8b60abb68 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 387231136..2c1d3cd88 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 07939a19f..025830ec0 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 d1d5bf137..bc07a3cd5 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 000000000..4816cebd7 --- /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 000000000..f40d4007d --- /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 1cf0416f4..9729d4442 100644 --- a/client/web/src/components/widgets/labels/Icon.vue +++ b/client/web/src/components/widgets/labels/Icon.vue @@ -30,27 +30,27 @@