giseldo/neodataset huggingface dataset:
Pan and zoom only moving grid not the map

<!---
Please read this!

Before opening a new issue, make sure to search for keywords in the issues
filtered by the "regression" or "bug" label:

- https://gitlab.com/mythicteam/mythictable/issues?label_name%5B%5D=Bug

and verify the issue you're about to submit isn't a duplicate.

Title suggestion: [Bug] Brief bug description
--->

# Summary
<!--Summarize the bug encountered concisely -->
User t3rminus reported the following on Discord:
Started game.
Added a map.
Uploaded map background and set grid size.
After doing so, doing pan or zoom only the grid size was changing, not the image size.

Same result experienced in incognito mode.
User deleted the map and re-uploaded and then it worked as expected.

## Steps to reproduce

Difficult to reproduce. 

## What is the current *bug* behavior?

See summary.

## What is the expected *correct* behavior?

Map image should expand/contract/move along with grid.

## Relevant logs and/or screenshots
<!--Paste any relevant logs - please use code blocks (```) to format console output,
logs, and code as it's tough to read otherwise. -->

## Possible fixes
<!-- If you can, link to the line of code that might be responsible for the problem -->

## Cause (Fill out after fix)
<!-- This must be filled out before the Bug can be closed.  
This is used in our post mortems to understand where we can make improvements. -->

Chose one or more:
- [ ] Work was rushed
- [ ] Plan Incomplete
- [ ] Insufficient Tests
- [ ] Missed in Review

Story points: 5.0
[Polish] Redirect mythictable.com/kickstarter to our kickstarter page

<!-- Title suggestion: [Polish] Name of improvement -->
<!-- Polish issues track work to improve the look, feel and usability of existing features -->

# Description
To make it easier to disperse our kickstarter link, it would be good to have a more simplistic link to visit. 
I propose having mythictable.com/kickstarter redirect to it. 

The link it would need to redirect to is: 
[https://www.kickstarter.com/projects/mythictable/mythic-table](https://www.kickstarter.com/projects/mythictable/mythic-table)


<!-- A note on weights
0 is trivial. Does not involve code
1 is a button, documentation corrections, a quick fix
2 is a simple well known task
3 is for a somewhat simple task
5 is for a complicated story that requires a number of moving parts
8 is for a significant amount of work but should with perhaps some unknowns or external dependencies
Anything higher than 8 should be broken up into smaller more distinct stories.
-->

Story points: 2.0
[Story] Add an advertising graphic and link to the KS page

# User Story

Purpose:  Create advertising space to communicate to new and existing users within the MTVTT that we are launching a KS campaign

Essential:

Use Case 1:  As an **existing user** that isn't logged in, I want to be able to:
- [ ] see a prominent graphic announcing/advertising that a KS campaign exists
- [ ] click the graphic to navigate to the KS page in a new tab and (potentially) back it
- [ ] navigate back to MTVTT where I left off

Use Case 2:  As an **existing user** that is logged in, I want to be able to:
- [ ] see a prominent graphic announcing/advertising that a KS campaign exists
- [ ] click the graphic to navigate to the KS page in a new tab and (potentially) back it
- [ ] navigate back to MTVTT where I left off

Use Case 3:  As a **new user**, I want to be able to:
- [ ] see a prominent graphic announcing/advertising that a KS campaign exists
- [ ] click the graphic to navigate to the KS page in a new tab and (potentially) back it
- [ ] navigate back to MTVTT where I left off

Nice to have:

Use Case 4:  As an **MT Team member**, I want to be able to update the advertising graphic with a graphic from **any sponsor** that pays for that virtual real estate on a monthly basis.

Story points: 2.0
[Improvement] Fork vue-unleash for Mythic Table

# Description

We need to fork https://github.com/crishellco/vue-unleash and maintain it ourselves

## The Problem

`vue-unleash` is no longer maintained and it requires some minor changes.

## Background/Current State

This repo provides a simple vue wrapper around the unleash client for feature flags. It provides some nice abstractions around feature flags but it needs to be updated to work with Gitlab.

## Solution

Fork this repo and implement the `instanceId`.

## Additional Information

 - https://docs.gitlab.com/ee/operations/feature_flags.html
 - https://github.com/crishellco/vue-unleash/issues/129
 - https://github.com/Unleash/unleash-client-node


## Steps

- [x] Fork Repo to https://gitlab.com/mythicteam/libs/vue-unleash
- [x] Setup pipeline to build and publish releases
   - [x] Code Cov https://codecov.io/gl/mythicteam:libs/vue-unleash (Currently broken)
- [x] Configure Mythic Table client code to use the new release
- [x] Implement the `instanceId` header
- [x] Verify toggling feature flags works as expected.

```
npm install git+https://gitlab.com/mythicteam/libs/vue-unleash.git

Or after the package registry is set up

npm install @mythic/vue-unleash
```

Until the package registry is setup and the pipelines are set up to build you need to run a 
``` 
npm run build
```
Before each push.

# Acceptance Criteria

- [ ] After #351 is finished
- [ ] Confirm there is a Feature Flag here https://gitlab.com/mythicteam/mythictable/-/feature_flags called `grid-experience-v2`
- [ ] Get the latest code from `main` and run it. Ensure you see the grid editor button depicted in the image below
- [ ] Go to edge and confirm the button is not there
- [ ] Return to https://gitlab.com/mythicteam/mythictable/-/feature_flags
- [ ] Edit `grid-experience-v2`. Add the `edge` environment
- [ ] this

![image](/uploads/9b661afbf9fb35d1030f63b4c94ae014/image.png)

<!-- A note on weights
0 is trivial. Does not involve code
1 is a button, documentation corrections, a quick fix
2 is a simple well known task
3 is for a somewhat simple task
5 is for a complicated story that requires a number of moving parts
8 is for a significant amount of work but should with perhaps some unknowns or external dependencies
Anything higher than 8 should be broken up into smaller more distinct stories.
-->

Story points: 5.0
[Story] Kickstarter - Planning the work behind our kickstarter announcement

# Description

We are planning to do a kickstarter to raise funds for future feature development - details to be filled in as this gets planned. 

## The Problem

A successful kickstarter campaign needs a good marketing strategy to create maximum impact.

## Background/Current State

Most of the planning has been done in a word document so far and the official KS page has now been launched into a pre-launch state.  We are now in a time limited period to get a number of MT functional and Web page promotional tasks completed to ensure maximum impact.

## Solution

How to Fix it?

## Additional Information

## Steps

- [ ] Internal KS planning document updated
- [x] Update Official KS page
- [x] Set pledges
- [x] Establish partner discounts
- [x] Create Header Banners
- [x] Write Risks Section
- [x] Pre-release
- [ ] Create Video
- [x] Video: Storyboard
- [x] Video: Locate/acquire media assets
- [x] Video: Create Scripts
- [ ] Video: Edit/check DRM
- [x] Marketing: Pre-promo schedule
- [x] Marketing: During Promo schedule
- [x] Marketing: post-promo schedule
- [x] Marketing: Email template comms
- [ ] Website: CMS implementation for non dev updates
- [ ] Website: content update schedule and content!
- [x] Discord preparation
- [ ] Twitch preparation
- [ ] Schedule dry runs of full functionality testing of all of the above before go-live



<!-- A note on weights
0 is trivial. Does not involve code
1 is a button, documentation corrections, a quick fix
2 is a simple well known task
3 is for a somewhat simple task
5 is for a complicated story that requires a number of moving parts
8 is for a significant amount of work but should with perhaps some unknowns or external dependencies
Anything higher than 8 should be broken up into smaller more distinct stories.
-->

Story points: 2.0
[Improvement] Change mongocli container to use allowlist/denylist

<!-- Title suggestion: [Improvement] Name of improvement -->
<!-- Improvement issues are internal initiatives meant to improve code quality, tests, infrastructure or process -->

# Description

What are we doing?

## The Problem

Why this is Bad?

## Background/Current State

The latest version of mongocli will change to use the term allowlist instead of white list. We currently use the mongocli container created here on the mythic team. We need to create a new version of this image that has this fix.

## Solution

How to Fix it?

## Additional Information

## Steps

- [ ] TBD



<!-- A note on weights
0 is trivial. Does not involve code
1 is a button, documentation corrections, a quick fix
2 is a simple well known task
3 is for a somewhat simple task
5 is for a complicated story that requires a number of moving parts
8 is for a significant amount of work but should with perhaps some unknowns or external dependencies
Anything higher than 8 should be broken up into smaller more distinct stories.
-->

Story points: 2.0
[Improvement] Create Incident Template

<!-- Title suggestion: [Improvement] Name of improvement -->
<!-- Improvement issues are internal initiatives meant to improve code quality, tests, infrastructure or process -->

# Description

Creating an Incident Template so we can conduct PMRs better.

## The Problem

We don't have one, which slows us down and doesn't keep the process consistent.





<!-- A note on weights
0 is trivial. Does not involve code
1 is a button, documentation corrections, a quick fix
2 is a simple well known task
3 is for a somewhat simple task
5 is for a complicated story that requires a number of moving parts
8 is for a significant amount of work but should with perhaps some unknowns or external dependencies
Anything higher than 8 should be broken up into smaller more distinct stories.
-->

Story points: 2.0
[Improvement] Create Discord LFG Channel

<!-- Title suggestion: [Improvement] Name of improvement -->
<!-- Improvement issues are internal initiatives meant to improve code quality, tests, infrastructure or process -->

# Description

What are we doing?

## The Problem

Why this is Bad?

## Background/Current State

Where are we now?

## Solution

How to Fix it?

## Additional Information

## Steps

- [ ] TBD



<!-- A note on weights
0 is trivial. Does not involve code
1 is a button, documentation corrections, a quick fix
2 is a simple well known task
3 is for a somewhat simple task
5 is for a complicated story that requires a number of moving parts
8 is for a significant amount of work but should with perhaps some unknowns or external dependencies
Anything higher than 8 should be broken up into smaller more distinct stories.
-->

Story points: 2.0
[Story] Macro Buttons

# [Story] Macro Buttons

## User Story

As a player I want to have a set of macro buttons accessible to me that can send saved chat messages/commands. I want to be able to check what a macro is if it isn't readily apparent. I want to be able to have it function regardless of my window size.

## Steps

- [x] Create a macro bar.
- [x] Create backend connection for persistent macros.
- [x] Connect macro bar to chat. When clicked, chat receives. 
- [x] Connect characters/tokens to backend for macros.
- [x] Enable the creation/editing/deleting of macros.
- [x] Verify they persist.
- [x] Have the macro bar update to reflect the macros of the selected token.
- [x] When token is not selected ensure user has access to standard dice. 
- [x] When token selected, token should be rendered in chat rather than user icon.
- [x] Macro bar should communicate what the macro is in some way.
- [x] If there are more macros than room on the bar, they should be added to an overflow menu.
- [x] Enable keyboard to activate any item in the macro bar.
- [x] Communicate what keyboard press will activate the macro.
- [x] User should be able to minimize macro bar. 
- [x] Macro bar should be responsive to the size of the window.
- [x] Macro bar should be aware of the sidebar.
  - [x] Macro bar should never overlap with sidebar. Possible exception on very small screens.
- [x] Macro bar should be able to adapt to very small screens. 
- [ ] Final visual pass (as passible visual updates should happen along the way).
- [ ] Tests, tests, tests.

## Acceptance Criteria (To be checked off **only** during Review)

This should be filled in prior to moving into ~"In Progress", but is not required upon first submitting the ticket.
**This list needs to be reviewed and completed by someone who did not work on the ticket.** Please do not pass Acceptance Criteria on a ticket you contributed code to. Ping #qa in Slack or #mythic-table to let someone know that a ticket is completed and ready for ~Review.

<!-- Some notes on Acceptance Criteria (AC)
If you are having issues creating Acceptance Criteria, please review [Some notes on Acceptance Criteria(AC)](https://gitlab.com/mythicteam/mythictable/-/wikis/qa/acceptace-criteria). Don't hesitate to ask for AC review or assistance in #qa, it's what we're here for.
-->

- [ ] Given: Samples Criteria exists in template
    - [ ] And: it has not been removed
    - [ ] When: the ticket has been submitted
    - [ ] Then: Someone else should update this
    - [ ] And: include acceptable Acceptance Criteria
    
<!-- A note on weights
0 is trivial. Does not involve code
1 is a button, documentation corrections, a quick fix
2 is a simple well known task
3 is for a somewhat simple task
5 is for a complicated story that requires a number of moving parts
8 is for a significant amount of work but should with perhaps some unknowns or external dependencies
Anything higher than 8 should be broken up into smaller more distinct stories.
-->

Story points: 2.0
[Improvement] Campaign Info tile should stand out from campaign list

<!-- Title suggestion: [Improvement] Name of improvement -->
<!-- Improvement issues are internal initiatives meant to improve code quality, tests, infrastructure or process -->

# Description

When clicking the Info page from the Campaign Selection page, it should stand our more obviously.  The distinction is better when when a campaign image is used but when using the default or a dark color image the distinction is less obvious.

## The Problem

Less clean display.

## Background/Current State

TBD

## Possible Solution(s)

Lighten the new window background.
Add slight shading to the new window border.

## Additional Information

Here is the window with the Tutorial Campaign:
![image](/uploads/bad1d231415c3ce78a35a9e0af759dc2/image.png)

Here is the window with the default campaign background:
![image](/uploads/0c534607f55c698443059211eeea55a1/image.png)

## Steps

From the Campaign Selection Window, click a campaign and select Info.



<!-- A note on weights
0 is trivial. Does not involve code
1 is a button, documentation corrections, a quick fix
2 is a simple well known task
3 is for a somewhat simple task
5 is for a complicated story that requires a number of moving parts
8 is for a significant amount of work but should with perhaps some unknowns or external dependencies
Anything higher than 8 should be broken up into smaller more distinct stories.
-->

Story points: 2.0
[Improvement] Add Container Security Scanning

<!-- Title suggestion: [Improvement] Name of improvement -->
<!-- Improvement issues are internal initiates meant to improve code quality, tests, infrastructure or process -->

# Description

We are adding Container Scanning to the pipeline.

## The Problem

Shifting Security left, for free, and with not much more effort to accomplish this.

## Background/Current State

No container scanning.

## Solution

Add container scanning per this: https://docs.gitlab.com/ee/user/application_security/container_scanning/#requirements

<!-- A note on weights
0 is trivial. Does not involve and code
1 is a button, documentation corrections, a quick fix
2 is a simple well known task
3 is for a somewhat simple task
5 is for a complicated story that requires a number of moving parts
8 is for a significant amount of work but should with perhaps some unknowns or external dependencies
Anything higher than 8 should be broken up into smaller more distinct stories.
-->

Story points: 4.0
[Improvement] Client Testing

# Description

Currently our Client side tests are rotting.  Why is this?

- Tests couple with implementation
- Messy, difficult to understand tests
- Poor coverage
- Lack of understanding what to test
- Lack of understanding how to run tests
- Lack of understanding test well

## The Problem

Testing is extremely important. It improves confidence, enables refactoring and improves the 
speed and accuracy of development. Good tests save more time than they take.

## Solution

Javascript and Jest

- https://jestjs.io/docs/en/getting-started

Vue

- https://vuejs.org/v2/cookbook/unit-testing-vue-components.html
- https://vuejsdevelopers.com/2019/08/26/vue-what-to-unit-test-components/
- https://lmiller1990.github.io/vue-testing-handbook/

Vuex

- https://vuex.vuejs.org/guide/testing.html
- https://vuex.vuejs.org/guide/structure.html


## Steps

- [x] Research
- [x] Implementation
- [x] Practice
- [x] Documentation
- [ ] Training

<!-- A note on weights
0 is trivial. Does not involve and code
1 is a button, documentation corrections, a quick fix
2 is a simple well known task
3 is for a somewhat simple task
5 is for a complicated story that requies a number of moving parts
8 is for a signifcant amount of work but should with perhaps some unkowns or external dependencies
Anything higher than 8 should be broken up into smaller more distinct stories.
-->

Story points: 5.0
[Improvement] Client File Structure Cleanup

# Description

The File Structure is haphazard and not intuitive.

## The Problem

It's hard to know where to find things and to know what to name new files

## Background/Current State

There were a number of people with a number of varying ideas on how to do this contributing to the project. No one agreed on anything and people just made changes as the felt.

## Solution

There are some minor changes proposed, but the biggest is the `Feature-folders`.
This change is required because we we move forward and consider break up the
application into packages, we'll do so at the feature level and hunting for
all files through a ton of `Framework-folders` would be a nightmare.

Another big change is the naming convention. 

- Vue files will be camel case `CharacterEditor.vue`
- js will be snake case `character_store.js`


```
.
├── html
│   ├── node_modules
│   ├── public
│   │   └── ...
│   ├── src
│   │   ├── assets            # All the assets into one folder
│   │   │   ├── images
│   │   │   └── css
│   │   ├── core              # Home for common components and utilities
│   │   │   ├── analytics
│   │   │   │   └── store.js
│   │   │   ├── components
│   │   │   │   ├── CustomColorPicker.vue
│   │   │   │   └── BaseEditor.vue
│   │   │   └── collections
│   │   │       └── store.js
│   │   ├── characters        # Feature-folder at the base level
│   │   │   ├── components
│   │   │   │   ├── CharacterEditor.vue
│   │   │   │   └── Token.vue
│   │   │   ├── models
│   │   │   │   ├── character.js
│   │   │   │   └── token.js
│   │   │   ├── store
│   │   │   │   ├── character_store.js
│   │   │   │   ├── actions.js
│   │   │   │   └── mutations.js
│   │   │   └── store.js
│   │   ├── maps              # Feature-folder at the base level
│   │   │   ├── components
│   │   │   │   ├── MapEditor.vue
│   │   │   │   └── MapList.vue
│   │   │   └── store.js
│   │   ├── chat              # Feature-folder at the base level
│   │   │   └── ...
│   │   └── app               # App level items moved off the root
│   │       ├── main.js
│   │       ├── oidc.js
│   │       ├── router.js
│   │       └── store.js
│   ├── tests
│   │   └── ...
│   ├── environments          # Remove this in favor of https://12factor.net/config
│   │   ├── .env.development
│   │   ├── .env.production
│   │   └── ...
├── server
│   └── ...
├── tests
│   └── ...
├── .gitlab-ci.yml
├── deployment.yaml
├── README.md
└── ...
```

## Additional Information

### Unused Packages

We should remove all of the unused UI libraries

- Vue Bootstrap
- Vue Material

## Steps

- [ ] TBD



<!-- A note on weights
0 is trivial. Does not involve and code
1 is a button, documentation corrections, a quick fix
2 is a simple well known task
3 is for a somewhat simple task
5 is for a complicated story that requies a number of moving parts
8 is for a signifcant amount of work but should with perhaps some unkowns or external dependencies
Anything higher than 8 should be broken up into smaller more distinct stories.
-->

Story points: 5.0
[Polish] Finish the unfinished Top left menu work from #188

<!-- Title suggestion: [Polish] Name of improvement -->
<!-- Polish tasks track work to improve the look, feel and usability of existing features -->

# Description

What is the work we're doign and why?

## Current State

@honest3d 
https://gitlab.com/mythicteam/mythictable/-/issues/188

Pictures?

## How should it look/feel?

How to Fix it?

Pictures?


<!-- A note on weights
0 is trivial. Does not involve and code
1 is a button, documentation corrections, a quick fix
2 is a simple well known task
3 is for a somewhat simple task
5 is for a complicated story that requies a number of moving parts
8 is for a signifcant amount of work but should with perhaps some unkowns or external dependencies
Anything higher than 8 should be broken up into smaller more distinct stories.
-->

Story points: 2.0
[Polish] Announcement Splash

<!-- Title suggestion: [Polish] Name of improvement -->
<!-- Polish tasks track work to improve the look, feel and usability of existing features -->

# Description

Add in a splash for users when they first login after an update

## Current State

Where are we now?

Pictures?

## How should it look/feel?

How to Fix it?

Pictures?


<!-- A note on weights
0 is trivial. Does not involve and code
1 is a button, documentation corrections, a quick fix
2 is a simple well known task
3 is for a somewhat simple task
5 is for a complicated story that requies a number of moving parts
8 is for a signifcant amount of work but should with perhaps some unkowns or external dependencies
Anything higher than 8 should be broken up into smaller more distinct stories.
-->

Story points: 2.0