├── src
├── vite-env.d.ts
├── react-float-menu.ts
├── models
│ ├── position.ts
│ └── menu-head.model.ts
├── utils
│ ├── theme-default.ts
│ └── helpers.ts
├── main.tsx
├── icons
│ ├── plus.tsx
│ ├── close.tsx
│ ├── index.tsx
│ ├── chevron-right.tsx
│ ├── logout.tsx
│ ├── file.tsx
│ ├── save.tsx
│ ├── copy.tsx
│ └── edit.tsx
├── components
│ ├── context.ts
│ ├── menu-list-item
│ │ ├── menu-list-item.model.ts
│ │ ├── menu-list-item.module.scss
│ │ ├── __tests__
│ │ │ └── menu-list-item.test.tsx
│ │ └── menu-list-item.tsx
│ ├── menu-container
│ │ ├── menu-container.model.ts
│ │ ├── menu-container.module.scss
│ │ └── menu-container.tsx
│ ├── menu
│ │ ├── menu-model.ts
│ │ ├── __tests__
│ │ │ └── menu.test.tsx
│ │ ├── menu.module.scss
│ │ └── index.tsx
│ └── main
│ │ ├── main.module.scss
│ │ ├── __tests__
│ │ └── main.test.tsx
│ │ └── index.tsx
├── effects
│ ├── useMenuHidden.ts
│ ├── useCloseOnEscape.ts
│ ├── useCloseOnClick.ts
│ ├── useKeyboardNav.ts
│ ├── useMenuToFront.ts
│ └── usePosition.ts
└── App.tsx
├── .prettierrc
├── jest-setup.d.ts
├── logo.jpg
├── logo.png
├── .github
├── ranger.yml
├── .kodiak.toml
└── workflows
│ ├── webpack.yml
│ ├── test-and-lint.yml
│ └── cypress.yml.disabled
├── .husky
└── pre-commit
├── cypress
├── videos
│ └── interactions.cy.ts.mp4
├── component
│ └── ComponentName.cy.ts
├── fixtures
│ └── example.json
├── support
│ ├── component-index.html
│ ├── e2e.ts
│ ├── component.ts
│ └── commands.ts
├── tsconfig.json
└── e2e
│ └── 3-float-menu
│ └── interactions.cy.ts
├── jest-setup.js
├── jest-setup.ts
├── .restyled.yaml
├── .stylelintrc.json
├── index.html
├── cypress.config.ts
├── .gitignore
├── postcss.config.js
├── globals.d.ts
├── vitest.config.ts
├── LICENSE.md
├── tsconfig.json
├── CONTRIBUTING.md
├── vite.config.ts
├── eslint.config.js
├── package.json
├── CLAUDE.md
├── README.md
└── logo.svg
/src/vite-env.d.ts:
--------------------------------------------------------------------------------
1 | ///