├── .dockerignore ├── .gitignore ├── CONTRIBUTING.md ├── DEVELOPMENT.md ├── Dockerfile ├── LICENSE.md ├── Makefile ├── Procfile ├── README.md ├── app.json ├── hardwarecheckout ├── __init__.py ├── config.py ├── constants.py ├── controllers │ ├── __init__.py │ ├── default.py │ ├── inventory.py │ ├── login.py │ ├── request.py │ └── user.py ├── forms │ ├── __init__.py │ ├── inventory_form.py │ ├── inventory_import_form.py │ ├── inventory_update_form.py │ ├── login_form.py │ └── user_update_form.py ├── models │ ├── __init__.py │ ├── inventory_entry.py │ ├── item.py │ ├── request.py │ ├── request_item.py │ ├── socket.py │ └── user.py ├── sheets_csv.py ├── static │ ├── css │ │ ├── app.css │ │ └── app.css.map │ ├── favicon.png │ ├── images │ │ └── default.png │ ├── sass │ │ └── app.scss │ ├── scripts │ │ ├── admin.js │ │ ├── api.js │ │ ├── inventory.js │ │ ├── item.js │ │ ├── main.js │ │ ├── user.js │ │ └── users.js │ └── vendor │ │ ├── jquery │ │ └── jquery.serialize-object.min.js │ │ ├── normalize │ │ └── normalize.css │ │ └── semantic │ │ ├── dist │ │ ├── components │ │ │ ├── accordion.css │ │ │ ├── accordion.js │ │ │ ├── accordion.min.css │ │ │ ├── ad.css │ │ │ ├── ad.min.css │ │ │ ├── api.js │ │ │ ├── breadcrumb.css │ │ │ ├── breadcrumb.min.css │ │ │ ├── button.css │ │ │ ├── button.min.css │ │ │ ├── card.css │ │ │ ├── card.min.css │ │ │ ├── checkbox.css │ │ │ ├── checkbox.js │ │ │ ├── checkbox.min.css │ │ │ ├── comment.css │ │ │ ├── comment.min.css │ │ │ ├── container.css │ │ │ ├── container.min.css │ │ │ ├── dimmer.css │ │ │ ├── dimmer.js │ │ │ ├── dimmer.min.css │ │ │ ├── divider.css │ │ │ ├── divider.min.css │ │ │ ├── dropdown.css │ │ │ ├── dropdown.js │ │ │ ├── dropdown.min.css │ │ │ ├── embed.css │ │ │ ├── embed.js │ │ │ ├── embed.min.css │ │ │ ├── feed.css │ │ │ ├── feed.min.css │ │ │ ├── flag.css │ │ │ ├── flag.min.css │ │ │ ├── form.css │ │ │ ├── form.js │ │ │ ├── form.min.css │ │ │ ├── grid.css │ │ │ ├── grid.min.css │ │ │ ├── header.css │ │ │ ├── header.min.css │ │ │ ├── icon.css │ │ │ ├── icon.min.css │ │ │ ├── image.css │ │ │ ├── image.min.css │ │ │ ├── input.css │ │ │ ├── input.min.css │ │ │ ├── item.css │ │ │ ├── item.min.css │ │ │ ├── label.css │ │ │ ├── label.min.css │ │ │ ├── list.css │ │ │ ├── list.min.css │ │ │ ├── loader.css │ │ │ ├── loader.min.css │ │ │ ├── menu.css │ │ │ ├── menu.min.css │ │ │ ├── message.css │ │ │ ├── message.min.css │ │ │ ├── modal.css │ │ │ ├── modal.js │ │ │ ├── modal.min.css │ │ │ ├── nag.css │ │ │ ├── nag.js │ │ │ ├── nag.min.css │ │ │ ├── popup.css │ │ │ ├── popup.js │ │ │ ├── popup.min.css │ │ │ ├── progress.css │ │ │ ├── progress.js │ │ │ ├── progress.min.css │ │ │ ├── rail.css │ │ │ ├── rail.min.css │ │ │ ├── rating.css │ │ │ ├── rating.js │ │ │ ├── rating.min.css │ │ │ ├── reset.css │ │ │ ├── reset.min.css │ │ │ ├── reveal.css │ │ │ ├── reveal.min.css │ │ │ ├── search.css │ │ │ ├── search.js │ │ │ ├── search.min.css │ │ │ ├── segment.css │ │ │ ├── segment.min.css │ │ │ ├── shape.css │ │ │ ├── shape.js │ │ │ ├── shape.min.css │ │ │ ├── sidebar.css │ │ │ ├── sidebar.js │ │ │ ├── sidebar.min.css │ │ │ ├── site.css │ │ │ ├── site.js │ │ │ ├── site.min.css │ │ │ ├── state.js │ │ │ ├── statistic.css │ │ │ ├── statistic.min.css │ │ │ ├── step.css │ │ │ ├── step.min.css │ │ │ ├── sticky.css │ │ │ ├── sticky.js │ │ │ ├── sticky.min.css │ │ │ ├── tab.css │ │ │ ├── tab.js │ │ │ ├── tab.min.css │ │ │ ├── table.css │ │ │ ├── table.min.css │ │ │ ├── transition.css │ │ │ ├── transition.js │ │ │ ├── transition.min.css │ │ │ └── visibility.js │ │ ├── semantic.css │ │ ├── semantic.js │ │ ├── semantic.min.css │ │ └── themes │ │ │ ├── basic │ │ │ └── assets │ │ │ │ └── fonts │ │ │ │ ├── icons.eot │ │ │ │ ├── icons.svg │ │ │ │ ├── icons.ttf │ │ │ │ └── icons.woff │ │ │ ├── default │ │ │ └── assets │ │ │ │ ├── fonts │ │ │ │ ├── icons.eot │ │ │ │ ├── icons.svg │ │ │ │ ├── icons.ttf │ │ │ │ ├── icons.woff │ │ │ │ └── icons.woff2 │ │ │ │ └── images │ │ │ │ └── flags.png │ │ │ ├── github │ │ │ └── assets │ │ │ │ └── fonts │ │ │ │ ├── octicons-local.ttf │ │ │ │ ├── octicons.svg │ │ │ │ ├── octicons.ttf │ │ │ │ └── octicons.woff │ │ │ ├── hackmit │ │ │ └── assets │ │ │ │ ├── fonts │ │ │ │ ├── icons.eot │ │ │ │ ├── icons.svg │ │ │ │ ├── icons.ttf │ │ │ │ ├── icons.woff │ │ │ │ └── icons.woff2 │ │ │ │ └── images │ │ │ │ └── flags.png │ │ │ └── material │ │ │ └── assets │ │ │ └── fonts │ │ │ ├── icons.eot │ │ │ ├── icons.svg │ │ │ ├── icons.ttf │ │ │ ├── icons.woff │ │ │ └── icons.woff2 │ │ ├── gulpfile.js │ │ ├── src │ │ ├── definitions │ │ │ ├── behaviors │ │ │ │ ├── api.js │ │ │ │ ├── colorize.js │ │ │ │ ├── form.js │ │ │ │ ├── state.js │ │ │ │ ├── visibility.js │ │ │ │ └── visit.js │ │ │ ├── collections │ │ │ │ ├── breadcrumb.less │ │ │ │ ├── form.less │ │ │ │ ├── grid.less │ │ │ │ ├── menu.less │ │ │ │ ├── message.less │ │ │ │ └── table.less │ │ │ ├── elements │ │ │ │ ├── button.less │ │ │ │ ├── container.less │ │ │ │ ├── divider.less │ │ │ │ ├── flag.less │ │ │ │ ├── header.less │ │ │ │ ├── icon.less │ │ │ │ ├── image.less │ │ │ │ ├── input.less │ │ │ │ ├── label.less │ │ │ │ ├── list.less │ │ │ │ ├── loader.less │ │ │ │ ├── rail.less │ │ │ │ ├── reveal.less │ │ │ │ ├── segment.less │ │ │ │ └── step.less │ │ │ ├── globals │ │ │ │ ├── reset.less │ │ │ │ ├── site.js │ │ │ │ └── site.less │ │ │ ├── modules │ │ │ │ ├── accordion.js │ │ │ │ ├── accordion.less │ │ │ │ ├── checkbox.js │ │ │ │ ├── checkbox.less │ │ │ │ ├── dimmer.js │ │ │ │ ├── dimmer.less │ │ │ │ ├── dropdown.js │ │ │ │ ├── dropdown.less │ │ │ │ ├── embed.js │ │ │ │ ├── embed.less │ │ │ │ ├── modal.js │ │ │ │ ├── modal.less │ │ │ │ ├── nag.js │ │ │ │ ├── nag.less │ │ │ │ ├── popup.js │ │ │ │ ├── popup.less │ │ │ │ ├── progress.js │ │ │ │ ├── progress.less │ │ │ │ ├── rating.js │ │ │ │ ├── rating.less │ │ │ │ ├── search.js │ │ │ │ ├── search.less │ │ │ │ ├── shape.js │ │ │ │ ├── shape.less │ │ │ │ ├── sidebar.js │ │ │ │ ├── sidebar.less │ │ │ │ ├── sticky.js │ │ │ │ ├── sticky.less │ │ │ │ ├── tab.js │ │ │ │ ├── tab.less │ │ │ │ ├── transition.js │ │ │ │ └── transition.less │ │ │ └── views │ │ │ │ ├── ad.less │ │ │ │ ├── card.less │ │ │ │ ├── comment.less │ │ │ │ ├── feed.less │ │ │ │ ├── item.less │ │ │ │ └── statistic.less │ │ ├── semantic.less │ │ ├── site │ │ │ ├── collections │ │ │ │ ├── breadcrumb.overrides │ │ │ │ ├── breadcrumb.variables │ │ │ │ ├── form.overrides │ │ │ │ ├── form.variables │ │ │ │ ├── grid.overrides │ │ │ │ ├── grid.variables │ │ │ │ ├── menu.overrides │ │ │ │ ├── menu.variables │ │ │ │ ├── message.overrides │ │ │ │ ├── message.variables │ │ │ │ ├── table.overrides │ │ │ │ └── table.variables │ │ │ ├── elements │ │ │ │ ├── button.overrides │ │ │ │ ├── button.variables │ │ │ │ ├── container.overrides │ │ │ │ ├── container.variables │ │ │ │ ├── divider.overrides │ │ │ │ ├── divider.variables │ │ │ │ ├── flag.overrides │ │ │ │ ├── flag.variables │ │ │ │ ├── header.overrides │ │ │ │ ├── header.variables │ │ │ │ ├── icon.overrides │ │ │ │ ├── icon.variables │ │ │ │ ├── image.overrides │ │ │ │ ├── image.variables │ │ │ │ ├── input.overrides │ │ │ │ ├── input.variables │ │ │ │ ├── label.overrides │ │ │ │ ├── label.variables │ │ │ │ ├── list.overrides │ │ │ │ ├── list.variables │ │ │ │ ├── loader.overrides │ │ │ │ ├── loader.variables │ │ │ │ ├── rail.overrides │ │ │ │ ├── rail.variables │ │ │ │ ├── reveal.overrides │ │ │ │ ├── reveal.variables │ │ │ │ ├── segment.overrides │ │ │ │ ├── segment.variables │ │ │ │ ├── step.overrides │ │ │ │ └── step.variables │ │ │ ├── globals │ │ │ │ ├── reset.overrides │ │ │ │ ├── reset.variables │ │ │ │ ├── site.overrides │ │ │ │ └── site.variables │ │ │ ├── modules │ │ │ │ ├── accordion.overrides │ │ │ │ ├── accordion.variables │ │ │ │ ├── chatroom.overrides │ │ │ │ ├── chatroom.variables │ │ │ │ ├── checkbox.overrides │ │ │ │ ├── checkbox.variables │ │ │ │ ├── dimmer.overrides │ │ │ │ ├── dimmer.variables │ │ │ │ ├── dropdown.overrides │ │ │ │ ├── dropdown.variables │ │ │ │ ├── embed.overrides │ │ │ │ ├── embed.variables │ │ │ │ ├── modal.overrides │ │ │ │ ├── modal.variables │ │ │ │ ├── nag.overrides │ │ │ │ ├── nag.variables │ │ │ │ ├── popup.overrides │ │ │ │ ├── popup.variables │ │ │ │ ├── progress.overrides │ │ │ │ ├── progress.variables │ │ │ │ ├── rating.overrides │ │ │ │ ├── rating.variables │ │ │ │ ├── search.overrides │ │ │ │ ├── search.variables │ │ │ │ ├── shape.overrides │ │ │ │ ├── shape.variables │ │ │ │ ├── sidebar.overrides │ │ │ │ ├── sidebar.variables │ │ │ │ ├── sticky.overrides │ │ │ │ ├── sticky.variables │ │ │ │ ├── tab.overrides │ │ │ │ ├── tab.variables │ │ │ │ ├── transition.overrides │ │ │ │ └── transition.variables │ │ │ └── views │ │ │ │ ├── ad.overrides │ │ │ │ ├── ad.variables │ │ │ │ ├── card.overrides │ │ │ │ ├── card.variables │ │ │ │ ├── comment.overrides │ │ │ │ ├── comment.variables │ │ │ │ ├── feed.overrides │ │ │ │ ├── feed.variables │ │ │ │ ├── item.overrides │ │ │ │ ├── item.variables │ │ │ │ ├── statistic.overrides │ │ │ │ └── statistic.variables │ │ ├── theme.config │ │ ├── theme.less │ │ └── themes │ │ │ ├── default │ │ │ ├── assets │ │ │ │ ├── fonts │ │ │ │ │ ├── icons.eot │ │ │ │ │ ├── icons.svg │ │ │ │ │ ├── icons.ttf │ │ │ │ │ ├── icons.woff │ │ │ │ │ └── icons.woff2 │ │ │ │ └── images │ │ │ │ │ └── flags.png │ │ │ ├── collections │ │ │ │ ├── breadcrumb.overrides │ │ │ │ ├── breadcrumb.variables │ │ │ │ ├── form.overrides │ │ │ │ ├── form.variables │ │ │ │ ├── grid.overrides │ │ │ │ ├── grid.variables │ │ │ │ ├── menu.overrides │ │ │ │ ├── menu.variables │ │ │ │ ├── message.overrides │ │ │ │ ├── message.variables │ │ │ │ ├── table.overrides │ │ │ │ └── table.variables │ │ │ ├── elements │ │ │ │ ├── button.overrides │ │ │ │ ├── button.variables │ │ │ │ ├── container.overrides │ │ │ │ ├── container.variables │ │ │ │ ├── divider.overrides │ │ │ │ ├── divider.variables │ │ │ │ ├── flag.overrides │ │ │ │ ├── flag.variables │ │ │ │ ├── header.overrides │ │ │ │ ├── header.variables │ │ │ │ ├── icon.overrides │ │ │ │ ├── icon.variables │ │ │ │ ├── image.overrides │ │ │ │ ├── image.variables │ │ │ │ ├── input.overrides │ │ │ │ ├── input.variables │ │ │ │ ├── label.overrides │ │ │ │ ├── label.variables │ │ │ │ ├── list.overrides │ │ │ │ ├── list.variables │ │ │ │ ├── loader.overrides │ │ │ │ ├── loader.variables │ │ │ │ ├── rail.overrides │ │ │ │ ├── rail.variables │ │ │ │ ├── reveal.overrides │ │ │ │ ├── reveal.variables │ │ │ │ ├── segment.overrides │ │ │ │ ├── segment.variables │ │ │ │ ├── step.overrides │ │ │ │ └── step.variables │ │ │ ├── globals │ │ │ │ ├── reset.overrides │ │ │ │ ├── reset.variables │ │ │ │ ├── site.overrides │ │ │ │ └── site.variables │ │ │ ├── modules │ │ │ │ ├── accordion.overrides │ │ │ │ ├── accordion.variables │ │ │ │ ├── chatroom.overrides │ │ │ │ ├── chatroom.variables │ │ │ │ ├── checkbox.overrides │ │ │ │ ├── checkbox.variables │ │ │ │ ├── dimmer.overrides │ │ │ │ ├── dimmer.variables │ │ │ │ ├── dropdown.overrides │ │ │ │ ├── dropdown.variables │ │ │ │ ├── embed.overrides │ │ │ │ ├── embed.variables │ │ │ │ ├── modal.overrides │ │ │ │ ├── modal.variables │ │ │ │ ├── nag.overrides │ │ │ │ ├── nag.variables │ │ │ │ ├── popup.overrides │ │ │ │ ├── popup.variables │ │ │ │ ├── progress.overrides │ │ │ │ ├── progress.variables │ │ │ │ ├── rating.overrides │ │ │ │ ├── rating.variables │ │ │ │ ├── search.overrides │ │ │ │ ├── search.variables │ │ │ │ ├── shape.overrides │ │ │ │ ├── shape.variables │ │ │ │ ├── sidebar.overrides │ │ │ │ ├── sidebar.variables │ │ │ │ ├── sticky.overrides │ │ │ │ ├── sticky.variables │ │ │ │ ├── tab.overrides │ │ │ │ ├── tab.variables │ │ │ │ ├── transition.overrides │ │ │ │ └── transition.variables │ │ │ └── views │ │ │ │ ├── ad.overrides │ │ │ │ ├── ad.variables │ │ │ │ ├── card.overrides │ │ │ │ ├── card.variables │ │ │ │ ├── comment.overrides │ │ │ │ ├── comment.variables │ │ │ │ ├── feed.overrides │ │ │ │ ├── feed.variables │ │ │ │ ├── item.overrides │ │ │ │ ├── item.variables │ │ │ │ ├── statistic.overrides │ │ │ │ └── statistic.variables │ │ │ └── hackmit │ │ │ ├── assets │ │ │ ├── fonts │ │ │ │ ├── icons.eot │ │ │ │ ├── icons.svg │ │ │ │ ├── icons.ttf │ │ │ │ ├── icons.woff │ │ │ │ └── icons.woff2 │ │ │ └── images │ │ │ │ └── flags.png │ │ │ ├── collections │ │ │ ├── breadcrumb.overrides │ │ │ ├── breadcrumb.variables │ │ │ ├── form.overrides │ │ │ ├── form.variables │ │ │ ├── grid.overrides │ │ │ ├── grid.variables │ │ │ ├── menu.overrides │ │ │ ├── menu.variables │ │ │ ├── message.overrides │ │ │ ├── message.variables │ │ │ ├── table.overrides │ │ │ └── table.variables │ │ │ ├── elements │ │ │ ├── button.overrides │ │ │ ├── button.variables │ │ │ ├── container.overrides │ │ │ ├── container.variables │ │ │ ├── divider.overrides │ │ │ ├── divider.variables │ │ │ ├── flag.overrides │ │ │ ├── flag.variables │ │ │ ├── header.overrides │ │ │ ├── header.variables │ │ │ ├── icon.overrides │ │ │ ├── icon.variables │ │ │ ├── image.overrides │ │ │ ├── image.variables │ │ │ ├── input.overrides │ │ │ ├── input.variables │ │ │ ├── label.overrides │ │ │ ├── label.variables │ │ │ ├── list.overrides │ │ │ ├── list.variables │ │ │ ├── loader.overrides │ │ │ ├── loader.variables │ │ │ ├── rail.overrides │ │ │ ├── rail.variables │ │ │ ├── reveal.overrides │ │ │ ├── reveal.variables │ │ │ ├── segment.overrides │ │ │ ├── segment.variables │ │ │ ├── step.overrides │ │ │ └── step.variables │ │ │ ├── globals │ │ │ ├── reset.overrides │ │ │ ├── reset.variables │ │ │ ├── site.overrides │ │ │ └── site.variables │ │ │ ├── modules │ │ │ ├── accordion.overrides │ │ │ ├── accordion.variables │ │ │ ├── chatroom.overrides │ │ │ ├── chatroom.variables │ │ │ ├── checkbox.overrides │ │ │ ├── checkbox.variables │ │ │ ├── dimmer.overrides │ │ │ ├── dimmer.variables │ │ │ ├── dropdown.overrides │ │ │ ├── dropdown.variables │ │ │ ├── embed.overrides │ │ │ ├── embed.variables │ │ │ ├── modal.overrides │ │ │ ├── modal.variables │ │ │ ├── nag.overrides │ │ │ ├── nag.variables │ │ │ ├── popup.overrides │ │ │ ├── popup.variables │ │ │ ├── progress.overrides │ │ │ ├── progress.variables │ │ │ ├── rating.overrides │ │ │ ├── rating.variables │ │ │ ├── search.overrides │ │ │ ├── search.variables │ │ │ ├── shape.overrides │ │ │ ├── shape.variables │ │ │ ├── sidebar.overrides │ │ │ ├── sidebar.variables │ │ │ ├── sticky.overrides │ │ │ ├── sticky.variables │ │ │ ├── tab.overrides │ │ │ ├── tab.variables │ │ │ ├── transition.overrides │ │ │ └── transition.variables │ │ │ └── views │ │ │ ├── ad.overrides │ │ │ ├── ad.variables │ │ │ ├── card.overrides │ │ │ ├── card.variables │ │ │ ├── comment.overrides │ │ │ ├── comment.variables │ │ │ ├── feed.overrides │ │ │ ├── feed.variables │ │ │ ├── item.overrides │ │ │ ├── item.variables │ │ │ ├── statistic.overrides │ │ │ └── statistic.variables │ │ └── tasks │ │ ├── README.md │ │ ├── admin │ │ ├── components │ │ │ ├── create.js │ │ │ ├── init.js │ │ │ └── update.js │ │ ├── distributions │ │ │ ├── create.js │ │ │ ├── init.js │ │ │ └── update.js │ │ ├── publish.js │ │ ├── register.js │ │ └── release.js │ │ ├── build.js │ │ ├── build │ │ ├── assets.js │ │ ├── css.js │ │ └── javascript.js │ │ ├── check-install.js │ │ ├── clean.js │ │ ├── collections │ │ ├── README.md │ │ ├── admin.js │ │ ├── build.js │ │ ├── internal.js │ │ └── rtl.js │ │ ├── config │ │ ├── admin │ │ │ ├── github.js │ │ │ ├── oauth.example.js │ │ │ ├── release.js │ │ │ └── templates │ │ │ │ ├── README.md │ │ │ │ ├── bower.json │ │ │ │ ├── component-package.js │ │ │ │ ├── composer.json │ │ │ │ ├── css-package.js │ │ │ │ ├── less-package.js │ │ │ │ └── package.json │ │ ├── defaults.js │ │ ├── docs.js │ │ ├── npm │ │ │ └── gulpfile.js │ │ ├── project │ │ │ ├── config.js │ │ │ ├── install.js │ │ │ └── release.js │ │ ├── tasks.js │ │ └── user.js │ │ ├── docs │ │ ├── build.js │ │ ├── metadata.js │ │ └── serve.js │ │ ├── install.js │ │ ├── rtl │ │ ├── build.js │ │ └── watch.js │ │ ├── version.js │ │ └── watch.js ├── templates │ ├── includes │ │ ├── macros │ │ │ ├── confirmation.html │ │ │ ├── display_item.html │ │ │ ├── display_requests.html │ │ │ ├── display_users.html │ │ │ ├── item_form.html │ │ │ └── items.html │ │ ├── nav.html │ │ └── wrapper.html │ └── pages │ │ ├── admin.html │ │ ├── inventory.html │ │ ├── item.html │ │ ├── login.html │ │ ├── user.html │ │ └── users.html └── utils.py ├── initialize.py ├── media └── cog.png ├── requirements.txt ├── runserver.py ├── runtime.txt ├── semantic.json └── tests ├── test_all.py └── utils.py /.dockerignore: -------------------------------------------------------------------------------- 1 | *.pyc 2 | *.swp 3 | *.swo 4 | i.*.swp 5 | .*.swo 6 | .webassets-cache 7 | .sass-cache/ 8 | private 9 | delete_db.py 10 | env/ 11 | .env 12 | node_modules/ 13 | .DS_Store 14 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | *.pyc 2 | *.swp 3 | *.swo 4 | i.*.swp 5 | .*.swo 6 | .webassets-cache 7 | .sass-cache/ 8 | private 9 | delete_db.py 10 | env/ 11 | venv/ 12 | test_db 13 | .env 14 | node_modules/ 15 | .DS_Store 16 | __pycache__ 17 | .cache/ 18 | Cog 19 | .vscode/ 20 | -------------------------------------------------------------------------------- /DEVELOPMENT.md: -------------------------------------------------------------------------------- 1 | # Development 2 | 3 | ## Setup 4 | - Set up a Python2 5 | [virtualenv](http://python-guide-pt-br.readthedocs.io/en/latest/dev/virtualenvs/) 6 | to manage Python dependencies 7 | - Source your virtualenv 8 | - Run `pip install -r requirements.txt` to install all dependencies 9 | - Install [PostgreSQL](https://www.postgresql.org/download/) to run a database locally 10 | - If you're using Mac, install *Postgres.app* from 11 | [here](https://www.postgresql.org/download/) 12 | - Set three environment variables: 13 | - `DATABASE_URL` points to the URL of a development database, 14 | which has to be set up using Postgres on your system. A sample `DATABASE_URL` 15 | could look like `postgres://username:password@localhost/cog`. 16 | - `QUILL` is the URL to your Quill instance for auth. 17 | - `SECRET` needs to be the same JWT secret used in your Quill instance. 18 | - Run `python initialize.py` 19 | - This initializes the database - run it if you make any changes to the models and 20 | are fine with overwriting data. 21 | 22 | ## Running 23 | - Run `make run` 24 | - The site will be visible at `localhost:8000` 25 | 26 | ## Tests 27 | - Run `make test` to run all tests 28 | -------------------------------------------------------------------------------- /Dockerfile: -------------------------------------------------------------------------------- 1 | FROM python:2 2 | 3 | ARG APP_PATH=/hardware-checkout 4 | 5 | WORKDIR $APP_PATH 6 | 7 | ADD requirements.txt $APP_PATH 8 | RUN pip install -r requirements.txt 9 | 10 | ADD . $APP_PATH 11 | 12 | EXPOSE 8000 13 | CMD ["gunicorn", "--bind", ":8000", "-k", "geventwebsocket.gunicorn.workers.GeventWebSocketWorker", "hardwarecheckout:app"] 14 | 15 | -------------------------------------------------------------------------------- /Makefile: -------------------------------------------------------------------------------- 1 | test: 2 | python -m pytest tests/ 3 | 4 | PORT = 8000 5 | run: 6 | gunicorn --bind 0.0.0.0:$(PORT) -k geventwebsocket.gunicorn.workers.GeventWebSocketWorker hardwarecheckout:app 7 | 8 | -------------------------------------------------------------------------------- /Procfile: -------------------------------------------------------------------------------- 1 | web: python runserver.py $PORT -------------------------------------------------------------------------------- /hardwarecheckout/constants.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/techx/cog/d6ef562d803bfc51ff3947d18a694c0f32cbb20a/hardwarecheckout/constants.py -------------------------------------------------------------------------------- /hardwarecheckout/controllers/__init__.py: -------------------------------------------------------------------------------- 1 | import hardwarecheckout.controllers.default 2 | import hardwarecheckout.controllers.inventory 3 | import hardwarecheckout.controllers.request 4 | import hardwarecheckout.controllers.user 5 | import hardwarecheckout.controllers.login 6 | -------------------------------------------------------------------------------- /hardwarecheckout/controllers/default.py: -------------------------------------------------------------------------------- 1 | from hardwarecheckout import app 2 | 3 | import os 4 | 5 | from flask import ( 6 | send_from_directory, 7 | request, 8 | redirect, 9 | render_template 10 | ) 11 | from hardwarecheckout.utils import requires_auth 12 | 13 | @app.route('/favicon.ico') 14 | def favicon(): 15 | return send_from_directory( 16 | os.path.join(app.root_path, 'static'), 17 | 'favicon.ico', 18 | mimetype='image/vnd.microsoft.icon' 19 | ) 20 | 21 | @app.route('/') 22 | def index(): 23 | return redirect('/inventory') 24 | -------------------------------------------------------------------------------- /hardwarecheckout/controllers/login.py: -------------------------------------------------------------------------------- 1 | from hardwarecheckout import app 2 | from hardwarecheckout import config 3 | from hardwarecheckout.models.user import * 4 | from hardwarecheckout.utils import verify_token 5 | import requests 6 | import datetime 7 | import json 8 | from urlparse import urljoin 9 | from hardwarecheckout.forms.login_form import LoginForm 10 | from flask import ( 11 | redirect, 12 | render_template, 13 | request, 14 | url_for 15 | ) 16 | 17 | @app.route('/login') 18 | def login_page(): 19 | """If not logged in render login page, otherwise redirect to inventory""" 20 | if 'jwt' in request.cookies: 21 | try: 22 | decode_token(request.cookies['jwt']) 23 | return redirect('/inventory') 24 | except Exception as e: 25 | pass 26 | 27 | return render_template('pages/login.html') 28 | 29 | @app.route('/login', methods=['POST']) 30 | def login_handler(): 31 | """Log user in""" 32 | form = LoginForm(request.form) 33 | if form.validate(): 34 | url = urljoin(config.QUILL_URL, '/auth/login') 35 | r = requests.post(url, data={'email':request.form['email'], 'password':request.form['password']}) 36 | try: 37 | r = json.loads(r.text) 38 | except ValueError as e: 39 | return render_template('pages/login.html', error=[str(e)]) 40 | 41 | if 'message' in r: 42 | return render_template('pages/login.html', error=[r['message']]) 43 | 44 | quill_id = verify_token(r['token']) 45 | if not quill_id: 46 | return render_template('pages/login.html', error=['Invalid token returned by registration']) 47 | 48 | if User.query.filter_by(quill_id=quill_id).count() == 0: 49 | user = User(quill_id, request.form['email'], r['user']['admin']) 50 | db.session.add(user) 51 | db.session.commit() 52 | 53 | response = app.make_response(redirect('/inventory')) 54 | response.set_cookie('jwt', r['token']) 55 | return response 56 | 57 | errors = [] 58 | for field, error in form.errors.items(): 59 | errors.append(field + ": " + "\n".join(error) + "\n") 60 | 61 | return render_template('pages/login.html', error=errors) 62 | 63 | @app.route('/logout') 64 | def logout(): 65 | """Log user out""" 66 | response = app.make_response(redirect('/')) 67 | response.set_cookie('jwt', '') 68 | return response -------------------------------------------------------------------------------- /hardwarecheckout/forms/__init__.py: -------------------------------------------------------------------------------- 1 | import hardwarecheckout.forms.inventory_form 2 | import hardwarecheckout.forms.inventory_update_form 3 | import hardwarecheckout.forms.inventory_import_form 4 | import hardwarecheckout.forms.login_form 5 | import hardwarecheckout.forms.user_update_form -------------------------------------------------------------------------------- /hardwarecheckout/forms/inventory_form.py: -------------------------------------------------------------------------------- 1 | from wtforms import Form, StringField, BooleanField, IntegerField, SelectField, validators 2 | from hardwarecheckout.forms.inventory_update_form import InventoryUpdateForm 3 | from hardwarecheckout.models.inventory_entry import ItemType 4 | 5 | def validate_quantity(form, field): 6 | return field.data != None or form.item_type == ItemType.FREE 7 | 8 | class InventoryForm(InventoryUpdateForm): 9 | quantity = IntegerField('quantity', [validators.Optional(), validators.NumberRange(min=0), validate_quantity]) 10 | -------------------------------------------------------------------------------- /hardwarecheckout/forms/inventory_import_form.py: -------------------------------------------------------------------------------- 1 | from wtforms import Form, StringField, IntegerField, FileField, validators 2 | 3 | class InventoryImportForm(Form): 4 | name = StringField('name', [validators.input_required(), validators.Length(max=120)]) 5 | description = StringField('description', [validators.Length(max=120)]) 6 | image = FileField(u'image_file') 7 | quantity = IntegerField('quantity') 8 | link = StringField('link') 9 | category = StringField('category') 10 | requires_checkout = StringField('checkout') 11 | -------------------------------------------------------------------------------- /hardwarecheckout/forms/inventory_update_form.py: -------------------------------------------------------------------------------- 1 | from wtforms import Form, StringField, BooleanField, IntegerField, SelectField, validators 2 | from hardwarecheckout.models.inventory_entry import ItemType 3 | 4 | def validate_image(form, field): 5 | if field.data == field.default: 6 | return True 7 | url_validator = validators.URL() 8 | return url_validator(form, field) 9 | 10 | class InventoryUpdateForm(Form): 11 | name = StringField('name', [validators.input_required(), validators.Length(max=120)]) 12 | description = StringField('description', [validators.Optional()]) 13 | link = StringField('link', [validators.Optional(), validators.URL()]) 14 | category = StringField('category', [validators.input_required()]) 15 | image = StringField('image', [validators.Optional(), validate_image], default='/static/images/default.png') 16 | item_type = SelectField('item_type', [validators.input_required()], 17 | choices=[('free', 'Free to Take'), ('checkout', 'Requires Checkout'), ('lottery', 'Requires Lottery')]) 18 | visible = BooleanField('visible') 19 | 20 | -------------------------------------------------------------------------------- /hardwarecheckout/forms/login_form.py: -------------------------------------------------------------------------------- 1 | from wtforms import Form, StringField, PasswordField, FileField, validators 2 | 3 | class LoginForm(Form): 4 | email = StringField('email_address', [validators.input_required(), validators.Email()]) 5 | password = PasswordField('password', [validators.input_required()]) -------------------------------------------------------------------------------- /hardwarecheckout/forms/user_update_form.py: -------------------------------------------------------------------------------- 1 | from wtforms import Form, StringField, validators 2 | from wtforms_alchemy import PhoneNumberField 3 | 4 | class UserUpdateForm(Form): 5 | location = StringField('location', [validators.Length(max=120)]) 6 | phone = PhoneNumberField('phone') 7 | name = StringField('name', [validators.Length(max=255)]) 8 | def validate(self): 9 | res = super(UserUpdateForm, self).validate() 10 | 11 | if not res: 12 | return False 13 | for field in [self.location, self.phone, self.name]: 14 | if field.data: 15 | return True 16 | self.errors['error'] = ['At least one field must be filled to update'] 17 | return False -------------------------------------------------------------------------------- /hardwarecheckout/models/__init__.py: -------------------------------------------------------------------------------- 1 | from flask_sqlalchemy import SQLAlchemy 2 | 3 | class SerializableAlchemy(SQLAlchemy): 4 | def apply_driver_hacks(self, app, info, options): 5 | if not 'isolation_level' in options: 6 | options['isolation_level'] = 'SERIALIZABLE' 7 | return super(SerializableAlchemy, self).apply_driver_hacks(app, info, options) 8 | db = SerializableAlchemy() 9 | -------------------------------------------------------------------------------- /hardwarecheckout/models/item.py: -------------------------------------------------------------------------------- 1 | from hardwarecheckout.models import db 2 | 3 | class Item(db.Model): 4 | id = db.Column(db.Integer, primary_key=True) 5 | 6 | item_id = db.Column(db.String()) 7 | entry_id = db.Column(db.Integer, db.ForeignKey('inventory_entry.id')) 8 | user_id = db.Column(db.Integer, db.ForeignKey('user.id')) 9 | 10 | def __init__(self, entry, id): 11 | self.user = None 12 | self.entry = entry 13 | self.item_id = id -------------------------------------------------------------------------------- /hardwarecheckout/models/request.py: -------------------------------------------------------------------------------- 1 | from hardwarecheckout.models import db 2 | from hardwarecheckout.models.user import User 3 | from hardwarecheckout.models.inventory_entry import ItemType 4 | from datetime import datetime 5 | import enum 6 | 7 | class RequestStatus(enum.Enum): 8 | SUBMITTED = 0 9 | APPROVED = 1 10 | FULFILLED = 2 11 | DENIED = 3 12 | CANCELLED = 4 13 | 14 | def __str__(self): 15 | return self.name 16 | 17 | class Request(db.Model): 18 | id = db.Column(db.Integer, primary_key=True) 19 | items = db.relationship('RequestItem', backref='request') 20 | 21 | status = db.Column(db.Enum(RequestStatus)) 22 | timestamp = db.Column(db.DateTime) 23 | user_id = db.Column(db.Integer, db.ForeignKey('user.id')) 24 | requires_id = db.Column(db.Boolean) 25 | requires_lottery = db.Column(db.Boolean) 26 | 27 | user = db.relationship('User', back_populates='requests') 28 | 29 | proposal = db.Column(db.String()) 30 | 31 | def __init__(self, items, user_id, proposal=''): 32 | self.status = RequestStatus.SUBMITTED 33 | self.items = items 34 | self.requires_id = self.check_requires_id() 35 | self.requires_lottery = self.check_requires_lottery() 36 | self.user_id = user_id 37 | self.user = User.query.get(user_id) 38 | self.timestamp = datetime.now() 39 | self.proposal = proposal 40 | 41 | def __str__(self): 42 | return self.user.email + ' ' + str(self.status) \ 43 | + ' ' + ', '.join([str(i) for i in self.items]) 44 | 45 | def check_requires_id(self): 46 | for item in self.items: 47 | if (item.entry.item_type == ItemType.LOTTERY 48 | or item.entry.item_type == ItemType.CHECKOUT): 49 | return True 50 | 51 | return False 52 | 53 | def check_requires_lottery(self): 54 | for item in self.items: 55 | if item.entry.item_type == ItemType.LOTTERY: 56 | return True 57 | 58 | return False -------------------------------------------------------------------------------- /hardwarecheckout/models/request_item.py: -------------------------------------------------------------------------------- 1 | from hardwarecheckout.models import db 2 | 3 | class RequestItem(db.Model): 4 | entry_id = db.Column(db.Integer, db.ForeignKey('inventory_entry.id'), primary_key=True) 5 | request_id = db.Column(db.Integer, db.ForeignKey('request.id'), primary_key=True) 6 | quantity = db.Column(db.Integer) 7 | 8 | entry = db.relationship('InventoryEntry') 9 | 10 | def __init__(self, entry, quantity): 11 | self.entry = entry 12 | self.quantity = quantity 13 | 14 | def __str__(self): 15 | return str(self.quantity) + 'x ' + self.entry.name -------------------------------------------------------------------------------- /hardwarecheckout/models/socket.py: -------------------------------------------------------------------------------- 1 | from hardwarecheckout.models import db 2 | 3 | class Socket(db.Model): 4 | sid = db.Column(db.String(), primary_key=True) 5 | user = db.relationship('User', back_populates='sockets') 6 | user_id = db.Column(db.Integer, db.ForeignKey('user.id')) 7 | 8 | def __init__(self, sid, user): 9 | self.sid = sid 10 | self.user = user -------------------------------------------------------------------------------- /hardwarecheckout/models/user.py: -------------------------------------------------------------------------------- 1 | from hardwarecheckout.models import db 2 | 3 | class User(db.Model): 4 | id = db.Column(db.Integer, primary_key=True) 5 | quill_id = db.Column(db.String(), unique=True) 6 | is_admin = db.Column(db.Boolean) 7 | location = db.Column(db.String(120)) 8 | name = db.Column(db.String()) 9 | phone = db.Column(db.String(255)) 10 | email = db.Column(db.String()) 11 | notifications = db.Column(db.Boolean) 12 | have_their_id = db.Column(db.Boolean) 13 | requests = db.relationship('Request', back_populates='user') 14 | sockets = db.relationship('Socket', back_populates='user') 15 | 16 | items = db.relationship('Item', backref='user') 17 | 18 | def __init__(self, quill_id, email, is_admin): 19 | self.quill_id = quill_id 20 | self.email = email 21 | self.is_admin = is_admin 22 | self.name = '' 23 | self.location = '' 24 | self.phone = '' 25 | self.notifications = False 26 | self.have_their_id = False 27 | 28 | def requires_id(self): 29 | for item in self.items: 30 | if item.entry.requires_checkout \ 31 | or item.entry.requires_lottery: 32 | return True 33 | 34 | return False -------------------------------------------------------------------------------- /hardwarecheckout/sheets_csv.py: -------------------------------------------------------------------------------- 1 | import requests 2 | 3 | class SheetsImportError(Exception): 4 | def __init__(self, msg): 5 | self.msg = msg 6 | 7 | def __str__(self): 8 | return repr(self.msg) 9 | 10 | # This function returns a list of dictionaries. The input is a google spreadsheet link (after publishing it to the web) 11 | # and the output is list of a dictionary for each row (excluding the first row). The keys are the first row with the data from every other row. 12 | def get_csv(u): 13 | tokens = u.split('/') 14 | 15 | for t, i in zip(tokens, range(len(tokens))): 16 | if t == 'd': 17 | id = tokens[i+1] 18 | break 19 | 20 | url = """https://docs.google.com/spreadsheets/d/{id}/export?format=tsv&id={id}&gid=0""".format(id=id) 21 | r = requests.get(url, allow_redirects=False) 22 | if r.status_code == 302: 23 | raise SheetsImportError('Unable to load sheet. Please make sure sharing is on!') 24 | 25 | lines = r.text.split('\n') 26 | 27 | dictionary_list = [] 28 | 29 | # the first row will be the keys for each dictionary 30 | dic_keys = lines[0].replace('\r', '').split('\t') 31 | 32 | # skip the first row when constructing the dictionary list 33 | for l in range(1, len(lines)): 34 | temp_dic = {} 35 | items = lines[l].split('\t') 36 | for i in range(len(items)): 37 | temp_dic[dic_keys[i]] = items[i].replace('\r', '') # remove '\r' character from some entries 38 | dictionary_list.append(temp_dic) 39 | 40 | return dictionary_list 41 | -------------------------------------------------------------------------------- /hardwarecheckout/static/css/app.css: -------------------------------------------------------------------------------- 1 | #login-wrapper { 2 | max-width: 450px; 3 | margin-top: 35px; } 4 | 5 | #login-form { 6 | text-align: left; 7 | vertical-align: middle; } 8 | 9 | .footer { 10 | color: #777; 11 | padding-bottom: 1em; 12 | padding-top: 3em; 13 | text-align: center; } 14 | 15 | /* Mobile */ 16 | @media only screen and (max-width: 767px) { 17 | [class*="mobile hidden"], 18 | [class*="tablet only"]:not(.mobile), 19 | [class*="computer only"]:not(.mobile), 20 | [class*="large screen only"]:not(.mobile), 21 | [class*="widescreen only"]:not(.mobile), 22 | [class*="or lower hidden"] { 23 | display: none !important; } } 24 | 25 | /*# sourceMappingURL=app.css.map */ 26 | 27 | .add-subitems-container .field, .list-subitems-container .field { 28 | display: inline-block; 29 | } -------------------------------------------------------------------------------- /hardwarecheckout/static/css/app.css.map: -------------------------------------------------------------------------------- 1 | { 2 | "version": 3, 3 | "mappings": "AAAA,cAAe;EACX,SAAS,EAAE,KAAK;EAChB,UAAU,EAAE,IAAI;;AAGpB,WAAY;EACR,UAAU,EAAE,IAAI;EAChB,cAAc,EAAE,MAAM;;AAG1B,OAAQ;EACJ,KAAK,EAAE,IAAI;EACX,cAAc,EAAE,GAAG;EACnB,WAAW,EAAE,GAAG;EAChB,UAAU,EAAE,MAAM;;AAKtB,YAAY;AACZ,yCAA0C;EACxC;;;;;4BAK2B;IACzB,OAAO,EAAE,eAAe", 4 | "sources": ["../sass/app.scss"], 5 | "names": [], 6 | "file": "app.css" 7 | } -------------------------------------------------------------------------------- /hardwarecheckout/static/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/techx/cog/d6ef562d803bfc51ff3947d18a694c0f32cbb20a/hardwarecheckout/static/favicon.png -------------------------------------------------------------------------------- /hardwarecheckout/static/images/default.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/techx/cog/d6ef562d803bfc51ff3947d18a694c0f32cbb20a/hardwarecheckout/static/images/default.png -------------------------------------------------------------------------------- /hardwarecheckout/static/sass/app.scss: -------------------------------------------------------------------------------- 1 | #login-wrapper { 2 | max-width: 450px; 3 | margin-top: 35px; 4 | } 5 | 6 | #login-form { 7 | text-align: left; 8 | vertical-align: middle; 9 | } 10 | 11 | .footer { 12 | color: #777; 13 | padding-bottom: 1em; 14 | padding-top: 3em; 15 | text-align: center; 16 | } 17 | 18 | 19 | // courtesy of https://gist.github.com/phuphighter/ce980aaec1c7104846f7e944743a7e07 20 | /* Mobile */ 21 | @media only screen and (max-width: 767px) { 22 | [class*="mobile hidden"], 23 | [class*="tablet only"]:not(.mobile), 24 | [class*="computer only"]:not(.mobile), 25 | [class*="large screen only"]:not(.mobile), 26 | [class*="widescreen only"]:not(.mobile), 27 | [class*="or lower hidden"] { 28 | display: none !important; 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /hardwarecheckout/static/scripts/api.js: -------------------------------------------------------------------------------- 1 | $.fn.api.settings.api = { 2 | 'add item' : '/inventory/add', 3 | 'import items' : '/inventory/autoadd', 4 | 'update item' : '/inventory/update/{id}', 5 | 'return item' : '/inventory/return/{id}', 6 | 'delete item' : '/inventory/delete/{id}', 7 | 'add subitem' : '/inventory/subitem/add/{id}', 8 | 'update subitem' : '/inventory/subitem/update/{id}', 9 | 'delete subitem' : '/inventory/subitem/delete/{id}', 10 | 'run all lotteries' : '/inventory/lottery/all', 11 | 'run lottery' : '/inventory/lottery/{id}', 12 | 'submit request' : '/request/submit', 13 | 'cancel request' : '/request/{id}/cancel', 14 | 'approve request' : '/request/{id}/approve', 15 | 'fulfill request' : '/request/{id}/fulfill', 16 | 'deny request' : '/request/{id}/deny', 17 | 'update user' : '/user/{id}/update' 18 | } 19 | 20 | $.fn.api.settings.successTest = function(response) { 21 | if(response && response.success) { 22 | return response.success; 23 | } 24 | return false; 25 | }; 26 | -------------------------------------------------------------------------------- /hardwarecheckout/static/scripts/main.js: -------------------------------------------------------------------------------- 1 | // https://stackoverflow.com/a/15651670 2 | $.fn.filterByData = function(prop, val) { 3 | return this.filter( 4 | function() { return $(this).data(prop)==val; } 5 | ); 6 | } -------------------------------------------------------------------------------- /hardwarecheckout/static/scripts/users.js: -------------------------------------------------------------------------------- 1 | $(document).ready(function() { 2 | // enables items_list actions 3 | $('.item-action').api({ 4 | method: 'POST', 5 | onSuccess: function (data) { 6 | $error = 7 | $(this).closest('form').find('.message').first(); 8 | $error.hide(); 9 | 10 | if (data.return_id) 11 | $('.return-notice').modal('show'); 12 | else 13 | setTimeout(function() { 14 | window.location.reload(); 15 | }, 250); 16 | }, 17 | onFailure: function(data) { 18 | $error = $('.message').filterByData('table-id', 19 | $(this).data('table-id')).first(); 20 | console.log($error); 21 | $error.html(data.message); 22 | $error.show(); 23 | } 24 | }); 25 | 26 | $('.return-notice-btn').on('click', function() { 27 | window.location.reload(); 28 | }); 29 | }); 30 | -------------------------------------------------------------------------------- /hardwarecheckout/static/vendor/jquery/jquery.serialize-object.min.js: -------------------------------------------------------------------------------- 1 | /** 2 | * jQuery serializeObject 3 | * @copyright 2014, macek 4 | * @link https://github.com/macek/jquery-serialize-object 5 | * @license BSD 6 | * @version 2.5.0 7 | */ 8 | !function(e,i){if("function"==typeof define&&define.amd)define(["exports","jquery"],function(e,r){return i(e,r)});else if("undefined"!=typeof exports){var r=require("jquery");i(exports,r)}else i(e,e.jQuery||e.Zepto||e.ender||e.$)}(this,function(e,i){function r(e,r){function n(e,i,r){return e[i]=r,e}function a(e,i){for(var r,a=e.match(t.key);void 0!==(r=a.pop());)if(t.push.test(r)){var u=s(e.replace(/\[\]$/,""));i=n([],u,i)}else t.fixed.test(r)?i=n([],r,i):t.named.test(r)&&(i=n({},r,i));return i}function s(e){return void 0===h[e]&&(h[e]=0),h[e]++}function u(e){switch(i('[name="'+e.name+'"]',r).attr("type")){case"checkbox":return"on"===e.value?!0:e.value;default:return e.value}}function f(i){if(!t.validate.test(i.name))return this;var r=a(i.name,u(i));return l=e.extend(!0,l,r),this}function d(i){if(!e.isArray(i))throw new Error("formSerializer.addPairs expects an Array");for(var r=0,t=i.length;t>r;r++)this.addPair(i[r]);return this}function o(){return l}function c(){return JSON.stringify(o())}var l={},h={};this.addPair=f,this.addPairs=d,this.serialize=o,this.serializeJSON=c}var t={validate:/^[a-z_][a-z0-9_]*(?:\[(?:\d*|[a-z0-9_]+)\])*$/i,key:/[a-z0-9_]+|(?=\[\])/gi,push:/^$/,fixed:/^\d+$/,named:/^[a-z0-9_]+$/i};return r.patterns=t,r.serializeObject=function(){return new r(i,this).addPairs(this.serializeArray()).serialize()},r.serializeJSON=function(){return new r(i,this).addPairs(this.serializeArray()).serializeJSON()},"undefined"!=typeof i.fn&&(i.fn.serializeObject=r.serializeObject,i.fn.serializeJSON=r.serializeJSON),e.FormSerializer=r,r}); 9 | -------------------------------------------------------------------------------- /hardwarecheckout/static/vendor/semantic/dist/components/ad.min.css: -------------------------------------------------------------------------------- 1 | /*! 2 | * # Semantic UI 2.2.11 - Ad 3 | * http://github.com/semantic-org/semantic-ui/ 4 | * 5 | * 6 | * Copyright 2013 Contributors 7 | * Released under the MIT license 8 | * http://opensource.org/licenses/MIT 9 | * 10 | */.ui.ad{display:block;overflow:hidden;margin:1em 0}.ui.ad:first-child{margin:0}.ui.ad:last-child{margin:0}.ui.ad iframe{margin:0;padding:0;border:none;overflow:hidden}.ui.leaderboard.ad{width:728px;height:90px}.ui[class*="medium rectangle"].ad{width:300px;height:250px}.ui[class*="large rectangle"].ad{width:336px;height:280px}.ui[class*="half page"].ad{width:300px;height:600px}.ui.square.ad{width:250px;height:250px}.ui[class*="small square"].ad{width:200px;height:200px}.ui[class*="small rectangle"].ad{width:180px;height:150px}.ui[class*="vertical rectangle"].ad{width:240px;height:400px}.ui.button.ad{width:120px;height:90px}.ui[class*="square button"].ad{width:125px;height:125px}.ui[class*="small button"].ad{width:120px;height:60px}.ui.skyscraper.ad{width:120px;height:600px}.ui[class*="wide skyscraper"].ad{width:160px}.ui.banner.ad{width:468px;height:60px}.ui[class*="vertical banner"].ad{width:120px;height:240px}.ui[class*="top banner"].ad{width:930px;height:180px}.ui[class*="half banner"].ad{width:234px;height:60px}.ui[class*="large leaderboard"].ad{width:970px;height:90px}.ui.billboard.ad{width:970px;height:250px}.ui.panorama.ad{width:980px;height:120px}.ui.netboard.ad{width:580px;height:400px}.ui[class*="large mobile banner"].ad{width:320px;height:100px}.ui[class*="mobile leaderboard"].ad{width:320px;height:50px}.ui.mobile.ad{display:none}@media only screen and (max-width:767px){.ui.mobile.ad{display:block}}.ui.centered.ad{margin-left:auto;margin-right:auto}.ui.test.ad{position:relative;background:#545454}.ui.test.ad:after{position:absolute;top:50%;left:50%;width:100%;text-align:center;-webkit-transform:translateX(-50%) translateY(-50%);transform:translateX(-50%) translateY(-50%);content:'Ad';color:#fff;font-size:1em;font-weight:700}.ui.mobile.test.ad:after{font-size:.85714286em}.ui.test.ad[data-text]:after{content:attr(data-text)} -------------------------------------------------------------------------------- /hardwarecheckout/static/vendor/semantic/dist/components/breadcrumb.min.css: -------------------------------------------------------------------------------- 1 | /*! 2 | * # Semantic UI 2.2.11 - Breadcrumb 3 | * http://github.com/semantic-org/semantic-ui/ 4 | * 5 | * 6 | * Released under the MIT license 7 | * http://opensource.org/licenses/MIT 8 | * 9 | */.ui.breadcrumb{line-height:1;display:inline-block;margin:0 0;vertical-align:middle}.ui.breadcrumb:first-child{margin-top:0}.ui.breadcrumb:last-child{margin-bottom:0}.ui.breadcrumb .divider{display:inline-block;opacity:.7;margin:0 .21428571rem 0;font-size:.92857143em;color:rgba(0,0,0,.4);vertical-align:baseline}.ui.breadcrumb a{color:#4183c4}.ui.breadcrumb a:hover{color:#1e70bf}.ui.breadcrumb .icon.divider{font-size:.85714286em;vertical-align:baseline}.ui.breadcrumb a.section{cursor:pointer}.ui.breadcrumb .section{display:inline-block;margin:0;padding:0}.ui.breadcrumb.segment{display:inline-block;padding:.78571429em 1em}.ui.breadcrumb .active.section{font-weight:700}.ui.mini.breadcrumb{font-size:.78571429rem}.ui.tiny.breadcrumb{font-size:.85714286rem}.ui.small.breadcrumb{font-size:.92857143rem}.ui.breadcrumb{font-size:1rem}.ui.large.breadcrumb{font-size:1.14285714rem}.ui.big.breadcrumb{font-size:1.28571429rem}.ui.huge.breadcrumb{font-size:1.42857143rem}.ui.massive.breadcrumb{font-size:1.71428571rem} -------------------------------------------------------------------------------- /hardwarecheckout/static/vendor/semantic/dist/components/container.min.css: -------------------------------------------------------------------------------- 1 | /*! 2 | * # Semantic UI 2.2.11 - Container 3 | * http://github.com/semantic-org/semantic-ui/ 4 | * 5 | * 6 | * Released under the MIT license 7 | * http://opensource.org/licenses/MIT 8 | * 9 | */.ui.container{display:block;max-width:100%!important}@media only screen and (max-width:767px){.ui.container{width:auto!important;margin-left:1em!important;margin-right:1em!important}.ui.grid.container{width:auto!important}.ui.relaxed.grid.container{width:auto!important}.ui.very.relaxed.grid.container{width:auto!important}}@media only screen and (min-width:768px) and (max-width:991px){.ui.container{width:723px;margin-left:auto!important;margin-right:auto!important}.ui.grid.container{width:calc(723px + 2rem)!important}.ui.relaxed.grid.container{width:calc(723px + 3rem)!important}.ui.very.relaxed.grid.container{width:calc(723px + 5rem)!important}}@media only screen and (min-width:992px) and (max-width:1199px){.ui.container{width:933px;margin-left:auto!important;margin-right:auto!important}.ui.grid.container{width:calc(933px + 2rem)!important}.ui.relaxed.grid.container{width:calc(933px + 3rem)!important}.ui.very.relaxed.grid.container{width:calc(933px + 5rem)!important}}@media only screen and (min-width:1200px){.ui.container{width:1127px;margin-left:auto!important;margin-right:auto!important}.ui.grid.container{width:calc(1127px + 2rem)!important}.ui.relaxed.grid.container{width:calc(1127px + 3rem)!important}.ui.very.relaxed.grid.container{width:calc(1127px + 5rem)!important}}.ui.text.container{font-family:Karla,'Helvetica Neue',Arial,Helvetica,sans-serif;max-width:700px!important;line-height:1.5}.ui.text.container{font-size:1.14285714rem}.ui.fluid.container{width:100%}.ui[class*="left aligned"].container{text-align:left}.ui[class*="center aligned"].container{text-align:center}.ui[class*="right aligned"].container{text-align:right}.ui.justified.container{text-align:justify;-webkit-hyphens:auto;-ms-hyphens:auto;hyphens:auto} -------------------------------------------------------------------------------- /hardwarecheckout/static/vendor/semantic/dist/components/embed.min.css: -------------------------------------------------------------------------------- 1 | /*! 2 | * # Semantic UI 2.2.11 - Video 3 | * http://github.com/semantic-org/semantic-ui/ 4 | * 5 | * 6 | * Released under the MIT license 7 | * http://opensource.org/licenses/MIT 8 | * 9 | */.ui.embed{position:relative;max-width:100%;height:0;overflow:hidden;background:#dcddde;padding-bottom:56.25%}.ui.embed embed,.ui.embed iframe,.ui.embed object{position:absolute;border:none;width:100%;height:100%;top:0;left:0;margin:0;padding:0}.ui.embed>.embed{display:none}.ui.embed>.placeholder{position:absolute;cursor:pointer;top:0;left:0;display:block;width:100%;height:100%;background-color:radial-gradient(transparent 45%,rgba(0,0,0,.3))}.ui.embed>.icon{cursor:pointer;position:absolute;top:0;left:0;width:100%;height:100%;z-index:2}.ui.embed>.icon:after{position:absolute;top:0;left:0;width:100%;height:100%;z-index:3;content:'';background:-webkit-radial-gradient(transparent 45%,rgba(0,0,0,.3));background:radial-gradient(transparent 45%,rgba(0,0,0,.3));opacity:.5;-webkit-transition:opacity .5s ease;transition:opacity .5s ease}.ui.embed>.icon:before{position:absolute;top:50%;left:50%;z-index:4;-webkit-transform:translateX(-50%) translateY(-50%);transform:translateX(-50%) translateY(-50%);color:#fff;font-size:6rem;text-shadow:0 2px 10px rgba(34,36,38,.2);-webkit-transition:opacity .5s ease,color .5s ease;transition:opacity .5s ease,color .5s ease;z-index:10}.ui.embed .icon:hover:after{background:-webkit-radial-gradient(transparent 45%,rgba(0,0,0,.3));background:radial-gradient(transparent 45%,rgba(0,0,0,.3));opacity:1}.ui.embed .icon:hover:before{color:#fff}.ui.active.embed>.icon,.ui.active.embed>.placeholder{display:none}.ui.active.embed>.embed{display:block}.ui.square.embed{padding-bottom:100%}.ui[class*="4:3"].embed{padding-bottom:75%}.ui[class*="16:9"].embed{padding-bottom:56.25%}.ui[class*="21:9"].embed{padding-bottom:42.85714286%} -------------------------------------------------------------------------------- /hardwarecheckout/static/vendor/semantic/dist/components/nag.min.css: -------------------------------------------------------------------------------- 1 | /*! 2 | * # Semantic UI 2.2.11 - Nag 3 | * http://github.com/semantic-org/semantic-ui/ 4 | * 5 | * 6 | * Released under the MIT license 7 | * http://opensource.org/licenses/MIT 8 | * 9 | */.ui.nag{display:none;opacity:.95;position:relative;top:0;left:0;z-index:999;min-height:0;width:100%;margin:0;padding:.75em 1em;background:#555;-webkit-box-shadow:0 1px 2px 0 rgba(0,0,0,.2);box-shadow:0 1px 2px 0 rgba(0,0,0,.2);font-size:1rem;text-align:center;color:rgba(0,0,0,.87);border-radius:0 0 .28571429rem .28571429rem;-webkit-transition:.2s background ease;transition:.2s background ease}a.ui.nag{cursor:pointer}.ui.nag>.title{display:inline-block;margin:0 .5em;color:#fff}.ui.nag>.close.icon{cursor:pointer;opacity:.4;position:absolute;top:50%;right:1em;font-size:1em;margin:-.5em 0 0;color:#fff;-webkit-transition:opacity .2s ease;transition:opacity .2s ease}.ui.nag:hover{background:#555;opacity:1}.ui.nag .close:hover{opacity:1}.ui.overlay.nag{position:absolute;display:block}.ui.fixed.nag{position:fixed}.ui.bottom.nag,.ui.bottom.nags{border-radius:.28571429rem .28571429rem 0 0;top:auto;bottom:0}.ui.inverted.nag,.ui.inverted.nags .nag{background-color:#f3f4f5;color:rgba(0,0,0,.85)}.ui.inverted.nag .close,.ui.inverted.nag .title,.ui.inverted.nags .nag .close,.ui.inverted.nags .nag .title{color:rgba(0,0,0,.4)}.ui.nags .nag{border-radius:0!important}.ui.nags .nag:last-child{border-radius:0 0 .28571429rem .28571429rem}.ui.bottom.nags .nag:last-child{border-radius:.28571429rem .28571429rem 0 0} -------------------------------------------------------------------------------- /hardwarecheckout/static/vendor/semantic/dist/components/rail.min.css: -------------------------------------------------------------------------------- 1 | /*! 2 | * # Semantic UI 2.2.11 - Rail 3 | * http://github.com/semantic-org/semantic-ui/ 4 | * 5 | * 6 | * Released under the MIT license 7 | * http://opensource.org/licenses/MIT 8 | * 9 | */.ui.rail{position:absolute;top:0;width:300px;height:100%}.ui.left.rail{left:auto;right:100%;padding:0 2rem 0 0;margin:0 2rem 0 0}.ui.right.rail{left:100%;right:auto;padding:0 0 0 2rem;margin:0 0 0 2rem}.ui.left.internal.rail{left:0;right:auto;padding:0 0 0 2rem;margin:0 0 0 2rem}.ui.right.internal.rail{left:auto;right:0;padding:0 2rem 0 0;margin:0 2rem 0 0}.ui.dividing.rail{width:302.5px}.ui.left.dividing.rail{padding:0 2.5rem 0 0;margin:0 2.5rem 0 0;border-right:1px solid rgba(34,36,38,.15)}.ui.right.dividing.rail{border-left:1px solid rgba(34,36,38,.15);padding:0 0 0 2.5rem;margin:0 0 0 2.5rem}.ui.close.rail{width:calc(300px + 1em)}.ui.close.left.rail{padding:0 1em 0 0;margin:0 1em 0 0}.ui.close.right.rail{padding:0 0 0 1em;margin:0 0 0 1em}.ui.very.close.rail{width:calc(300px + .5em)}.ui.very.close.left.rail{padding:0 .5em 0 0;margin:0 .5em 0 0}.ui.very.close.right.rail{padding:0 0 0 .5em;margin:0 0 0 .5em}.ui.attached.left.rail,.ui.attached.right.rail{padding:0;margin:0}.ui.mini.rail{font-size:.78571429rem}.ui.tiny.rail{font-size:.85714286rem}.ui.small.rail{font-size:.92857143rem}.ui.rail{font-size:1rem}.ui.large.rail{font-size:1.14285714rem}.ui.big.rail{font-size:1.28571429rem}.ui.huge.rail{font-size:1.42857143rem}.ui.massive.rail{font-size:1.71428571rem} -------------------------------------------------------------------------------- /hardwarecheckout/static/vendor/semantic/dist/components/shape.min.css: -------------------------------------------------------------------------------- 1 | /*! 2 | * # Semantic UI 2.2.11 - Shape 3 | * http://github.com/semantic-org/semantic-ui/ 4 | * 5 | * 6 | * Released under the MIT license 7 | * http://opensource.org/licenses/MIT 8 | * 9 | */.ui.shape{position:relative;vertical-align:top;display:inline-block;-webkit-perspective:2000px;perspective:2000px;-webkit-transition:left .6s ease-in-out,width .6s ease-in-out,height .6s ease-in-out,-webkit-transform .6s ease-in-out;transition:left .6s ease-in-out,width .6s ease-in-out,height .6s ease-in-out,-webkit-transform .6s ease-in-out;transition:transform .6s ease-in-out,left .6s ease-in-out,width .6s ease-in-out,height .6s ease-in-out;transition:transform .6s ease-in-out,left .6s ease-in-out,width .6s ease-in-out,height .6s ease-in-out,-webkit-transform .6s ease-in-out}.ui.shape .sides{-webkit-transform-style:preserve-3d;transform-style:preserve-3d}.ui.shape .side{opacity:1;width:100%;margin:0!important;-webkit-backface-visibility:hidden;backface-visibility:hidden}.ui.shape .side{display:none}.ui.shape .side *{-webkit-backface-visibility:visible!important;backface-visibility:visible!important}.ui.cube.shape .side{min-width:15em;height:15em;padding:2em;background-color:#e6e6e6;color:rgba(0,0,0,.87);-webkit-box-shadow:0 0 2px rgba(0,0,0,.3);box-shadow:0 0 2px rgba(0,0,0,.3)}.ui.cube.shape .side>.content{width:100%;height:100%;display:table;text-align:center;-webkit-user-select:text;-moz-user-select:text;-ms-user-select:text;user-select:text}.ui.cube.shape .side>.content>div{display:table-cell;vertical-align:middle;font-size:2em}.ui.text.shape.animating .sides{position:static}.ui.text.shape .side{white-space:nowrap}.ui.text.shape .side>*{white-space:normal}.ui.loading.shape{position:absolute;top:-9999px;left:-9999px}.ui.shape .animating.side{position:absolute;top:0;left:0;display:block;z-index:100}.ui.shape .hidden.side{opacity:.6}.ui.shape.animating .sides{position:absolute}.ui.shape.animating .sides{-webkit-transition:left .6s ease-in-out,width .6s ease-in-out,height .6s ease-in-out,-webkit-transform .6s ease-in-out;transition:left .6s ease-in-out,width .6s ease-in-out,height .6s ease-in-out,-webkit-transform .6s ease-in-out;transition:transform .6s ease-in-out,left .6s ease-in-out,width .6s ease-in-out,height .6s ease-in-out;transition:transform .6s ease-in-out,left .6s ease-in-out,width .6s ease-in-out,height .6s ease-in-out,-webkit-transform .6s ease-in-out}.ui.shape.animating .side{-webkit-transition:opacity .6s ease-in-out;transition:opacity .6s ease-in-out}.ui.shape .active.side{display:block} -------------------------------------------------------------------------------- /hardwarecheckout/static/vendor/semantic/dist/components/site.min.css: -------------------------------------------------------------------------------- 1 | /*! 2 | * # Semantic UI 2.2.11 - Site 3 | * http://github.com/semantic-org/semantic-ui/ 4 | * 5 | * 6 | * Released under the MIT license 7 | * http://opensource.org/licenses/MIT 8 | * 9 | */@import url(https://fonts.googleapis.com/css?family=Karla:400,700,400italic,700italic|Poppins:400,700,400italic,700italic&subset=latin);body,html{height:100%}html{font-size:14px}body{margin:0;padding:0;overflow-x:hidden;min-width:320px;background:#fff;font-family:Karla,'Helvetica Neue',Arial,Helvetica,sans-serif;font-size:14px;line-height:1.4285em;color:rgba(0,0,0,.87);font-smoothing:antialiased}h1,h2,h3,h4,h5{font-family:Poppins,'Helvetica Neue',Arial,Helvetica,sans-serif;line-height:1.28571429em;margin:calc(2rem - .14285714em) 0 1rem;font-weight:700;padding:0}h1{min-height:1rem;font-size:2rem}h2{font-size:1.71428571rem}h3{font-size:1.28571429rem}h4{font-size:1.07142857rem}h5{font-size:1rem}h1:first-child,h2:first-child,h3:first-child,h4:first-child,h5:first-child{margin-top:0}h1:last-child,h2:last-child,h3:last-child,h4:last-child,h5:last-child{margin-bottom:0}p{margin:0 0 1em;line-height:1.4285em}p:first-child{margin-top:0}p:last-child{margin-bottom:0}a{color:#4183c4;text-decoration:none}a:hover{color:#1e70bf;text-decoration:none}::-webkit-selection{background-color:#cce2ff;color:rgba(0,0,0,.87)}::-moz-selection{background-color:#cce2ff;color:rgba(0,0,0,.87)}::selection{background-color:#cce2ff;color:rgba(0,0,0,.87)}input::-webkit-selection,textarea::-webkit-selection{background-color:rgba(100,100,100,.4);color:rgba(0,0,0,.87)}input::-moz-selection,textarea::-moz-selection{background-color:rgba(100,100,100,.4);color:rgba(0,0,0,.87)}input::selection,textarea::selection{background-color:rgba(100,100,100,.4);color:rgba(0,0,0,.87)}body ::-webkit-scrollbar{-webkit-appearance:none;width:10px}body ::-webkit-scrollbar-track{background:rgba(0,0,0,.1);border-radius:0}body ::-webkit-scrollbar-thumb{cursor:pointer;border-radius:5px;background:rgba(0,0,0,.25);-webkit-transition:color .2s ease;transition:color .2s ease}body ::-webkit-scrollbar-thumb:window-inactive{background:rgba(0,0,0,.15)}body ::-webkit-scrollbar-thumb:hover{background:rgba(128,135,139,.8)}body .ui.inverted::-webkit-scrollbar-track{background:rgba(255,255,255,.1)}body .ui.inverted::-webkit-scrollbar-thumb{background:rgba(255,255,255,.25)}body .ui.inverted::-webkit-scrollbar-thumb:window-inactive{background:rgba(255,255,255,.15)}body .ui.inverted::-webkit-scrollbar-thumb:hover{background:rgba(255,255,255,.35)} -------------------------------------------------------------------------------- /hardwarecheckout/static/vendor/semantic/dist/components/sticky.css: -------------------------------------------------------------------------------- 1 | /*! 2 | * # Semantic UI 2.2.11 - Sticky 3 | * http://github.com/semantic-org/semantic-ui/ 4 | * 5 | * 6 | * Released under the MIT license 7 | * http://opensource.org/licenses/MIT 8 | * 9 | */ 10 | 11 | 12 | /******************************* 13 | Sticky 14 | *******************************/ 15 | 16 | .ui.sticky { 17 | position: static; 18 | -webkit-transition: none; 19 | transition: none; 20 | z-index: 800; 21 | } 22 | 23 | 24 | /******************************* 25 | States 26 | *******************************/ 27 | 28 | 29 | /* Bound */ 30 | .ui.sticky.bound { 31 | position: absolute; 32 | left: auto; 33 | right: auto; 34 | } 35 | 36 | /* Fixed */ 37 | .ui.sticky.fixed { 38 | position: fixed; 39 | left: auto; 40 | right: auto; 41 | } 42 | 43 | /* Bound/Fixed Position */ 44 | .ui.sticky.bound.top, 45 | .ui.sticky.fixed.top { 46 | top: 0px; 47 | bottom: auto; 48 | } 49 | .ui.sticky.bound.bottom, 50 | .ui.sticky.fixed.bottom { 51 | top: auto; 52 | bottom: 0px; 53 | } 54 | 55 | 56 | /******************************* 57 | Types 58 | *******************************/ 59 | 60 | .ui.native.sticky { 61 | position: -webkit-sticky; 62 | position: -moz-sticky; 63 | position: -ms-sticky; 64 | position: -o-sticky; 65 | position: sticky; 66 | } 67 | 68 | 69 | /******************************* 70 | Theme Overrides 71 | *******************************/ 72 | 73 | 74 | 75 | /******************************* 76 | Site Overrides 77 | *******************************/ 78 | 79 | -------------------------------------------------------------------------------- /hardwarecheckout/static/vendor/semantic/dist/components/sticky.min.css: -------------------------------------------------------------------------------- 1 | /*! 2 | * # Semantic UI 2.2.11 - Sticky 3 | * http://github.com/semantic-org/semantic-ui/ 4 | * 5 | * 6 | * Released under the MIT license 7 | * http://opensource.org/licenses/MIT 8 | * 9 | */.ui.sticky{position:static;-webkit-transition:none;transition:none;z-index:800}.ui.sticky.bound{position:absolute;left:auto;right:auto}.ui.sticky.fixed{position:fixed;left:auto;right:auto}.ui.sticky.bound.top,.ui.sticky.fixed.top{top:0;bottom:auto}.ui.sticky.bound.bottom,.ui.sticky.fixed.bottom{top:auto;bottom:0}.ui.native.sticky{position:-webkit-sticky;position:-moz-sticky;position:-ms-sticky;position:-o-sticky;position:sticky} -------------------------------------------------------------------------------- /hardwarecheckout/static/vendor/semantic/dist/components/tab.css: -------------------------------------------------------------------------------- 1 | /*! 2 | * # Semantic UI 2.2.11 - Tab 3 | * http://github.com/semantic-org/semantic-ui/ 4 | * 5 | * 6 | * Released under the MIT license 7 | * http://opensource.org/licenses/MIT 8 | * 9 | */ 10 | 11 | 12 | /******************************* 13 | UI Tabs 14 | *******************************/ 15 | 16 | .ui.tab { 17 | display: none; 18 | } 19 | 20 | 21 | /******************************* 22 | States 23 | *******************************/ 24 | 25 | 26 | /*-------------------- 27 | Active 28 | ---------------------*/ 29 | 30 | .ui.tab.active, 31 | .ui.tab.open { 32 | display: block; 33 | } 34 | 35 | /*-------------------- 36 | Loading 37 | ---------------------*/ 38 | 39 | .ui.tab.loading { 40 | position: relative; 41 | overflow: hidden; 42 | display: block; 43 | min-height: 250px; 44 | } 45 | .ui.tab.loading * { 46 | position: relative !important; 47 | left: -10000px !important; 48 | } 49 | .ui.tab.loading:before, 50 | .ui.tab.loading.segment:before { 51 | position: absolute; 52 | content: ''; 53 | top: 100px; 54 | left: 50%; 55 | margin: -1.25em 0em 0em -1.25em; 56 | width: 2.5em; 57 | height: 2.5em; 58 | border-radius: 500rem; 59 | border: 0.2em solid rgba(0, 0, 0, 0.1); 60 | } 61 | .ui.tab.loading:after, 62 | .ui.tab.loading.segment:after { 63 | position: absolute; 64 | content: ''; 65 | top: 100px; 66 | left: 50%; 67 | margin: -1.25em 0em 0em -1.25em; 68 | width: 2.5em; 69 | height: 2.5em; 70 | -webkit-animation: button-spin 0.6s linear; 71 | animation: button-spin 0.6s linear; 72 | -webkit-animation-iteration-count: infinite; 73 | animation-iteration-count: infinite; 74 | border-radius: 500rem; 75 | border-color: #767676 transparent transparent; 76 | border-style: solid; 77 | border-width: 0.2em; 78 | -webkit-box-shadow: 0px 0px 0px 1px transparent; 79 | box-shadow: 0px 0px 0px 1px transparent; 80 | } 81 | 82 | 83 | /******************************* 84 | Tab Overrides 85 | *******************************/ 86 | 87 | 88 | 89 | /******************************* 90 | User Overrides 91 | *******************************/ 92 | 93 | -------------------------------------------------------------------------------- /hardwarecheckout/static/vendor/semantic/dist/components/tab.min.css: -------------------------------------------------------------------------------- 1 | /*! 2 | * # Semantic UI 2.2.11 - Tab 3 | * http://github.com/semantic-org/semantic-ui/ 4 | * 5 | * 6 | * Released under the MIT license 7 | * http://opensource.org/licenses/MIT 8 | * 9 | */.ui.tab{display:none}.ui.tab.active,.ui.tab.open{display:block}.ui.tab.loading{position:relative;overflow:hidden;display:block;min-height:250px}.ui.tab.loading *{position:relative!important;left:-10000px!important}.ui.tab.loading.segment:before,.ui.tab.loading:before{position:absolute;content:'';top:100px;left:50%;margin:-1.25em 0 0 -1.25em;width:2.5em;height:2.5em;border-radius:500rem;border:.2em solid rgba(0,0,0,.1)}.ui.tab.loading.segment:after,.ui.tab.loading:after{position:absolute;content:'';top:100px;left:50%;margin:-1.25em 0 0 -1.25em;width:2.5em;height:2.5em;-webkit-animation:button-spin .6s linear;animation:button-spin .6s linear;-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite;border-radius:500rem;border-color:#767676 transparent transparent;border-style:solid;border-width:.2em;-webkit-box-shadow:0 0 0 1px transparent;box-shadow:0 0 0 1px transparent} -------------------------------------------------------------------------------- /hardwarecheckout/static/vendor/semantic/dist/themes/basic/assets/fonts/icons.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/techx/cog/d6ef562d803bfc51ff3947d18a694c0f32cbb20a/hardwarecheckout/static/vendor/semantic/dist/themes/basic/assets/fonts/icons.eot -------------------------------------------------------------------------------- /hardwarecheckout/static/vendor/semantic/dist/themes/basic/assets/fonts/icons.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/techx/cog/d6ef562d803bfc51ff3947d18a694c0f32cbb20a/hardwarecheckout/static/vendor/semantic/dist/themes/basic/assets/fonts/icons.ttf -------------------------------------------------------------------------------- /hardwarecheckout/static/vendor/semantic/dist/themes/basic/assets/fonts/icons.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/techx/cog/d6ef562d803bfc51ff3947d18a694c0f32cbb20a/hardwarecheckout/static/vendor/semantic/dist/themes/basic/assets/fonts/icons.woff -------------------------------------------------------------------------------- /hardwarecheckout/static/vendor/semantic/dist/themes/default/assets/fonts/icons.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/techx/cog/d6ef562d803bfc51ff3947d18a694c0f32cbb20a/hardwarecheckout/static/vendor/semantic/dist/themes/default/assets/fonts/icons.eot -------------------------------------------------------------------------------- /hardwarecheckout/static/vendor/semantic/dist/themes/default/assets/fonts/icons.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/techx/cog/d6ef562d803bfc51ff3947d18a694c0f32cbb20a/hardwarecheckout/static/vendor/semantic/dist/themes/default/assets/fonts/icons.ttf -------------------------------------------------------------------------------- /hardwarecheckout/static/vendor/semantic/dist/themes/default/assets/fonts/icons.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/techx/cog/d6ef562d803bfc51ff3947d18a694c0f32cbb20a/hardwarecheckout/static/vendor/semantic/dist/themes/default/assets/fonts/icons.woff -------------------------------------------------------------------------------- /hardwarecheckout/static/vendor/semantic/dist/themes/default/assets/fonts/icons.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/techx/cog/d6ef562d803bfc51ff3947d18a694c0f32cbb20a/hardwarecheckout/static/vendor/semantic/dist/themes/default/assets/fonts/icons.woff2 -------------------------------------------------------------------------------- /hardwarecheckout/static/vendor/semantic/dist/themes/default/assets/images/flags.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/techx/cog/d6ef562d803bfc51ff3947d18a694c0f32cbb20a/hardwarecheckout/static/vendor/semantic/dist/themes/default/assets/images/flags.png -------------------------------------------------------------------------------- /hardwarecheckout/static/vendor/semantic/dist/themes/github/assets/fonts/octicons-local.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/techx/cog/d6ef562d803bfc51ff3947d18a694c0f32cbb20a/hardwarecheckout/static/vendor/semantic/dist/themes/github/assets/fonts/octicons-local.ttf -------------------------------------------------------------------------------- /hardwarecheckout/static/vendor/semantic/dist/themes/github/assets/fonts/octicons.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/techx/cog/d6ef562d803bfc51ff3947d18a694c0f32cbb20a/hardwarecheckout/static/vendor/semantic/dist/themes/github/assets/fonts/octicons.ttf -------------------------------------------------------------------------------- /hardwarecheckout/static/vendor/semantic/dist/themes/github/assets/fonts/octicons.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/techx/cog/d6ef562d803bfc51ff3947d18a694c0f32cbb20a/hardwarecheckout/static/vendor/semantic/dist/themes/github/assets/fonts/octicons.woff -------------------------------------------------------------------------------- /hardwarecheckout/static/vendor/semantic/dist/themes/hackmit/assets/fonts/icons.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/techx/cog/d6ef562d803bfc51ff3947d18a694c0f32cbb20a/hardwarecheckout/static/vendor/semantic/dist/themes/hackmit/assets/fonts/icons.eot -------------------------------------------------------------------------------- /hardwarecheckout/static/vendor/semantic/dist/themes/hackmit/assets/fonts/icons.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/techx/cog/d6ef562d803bfc51ff3947d18a694c0f32cbb20a/hardwarecheckout/static/vendor/semantic/dist/themes/hackmit/assets/fonts/icons.ttf -------------------------------------------------------------------------------- /hardwarecheckout/static/vendor/semantic/dist/themes/hackmit/assets/fonts/icons.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/techx/cog/d6ef562d803bfc51ff3947d18a694c0f32cbb20a/hardwarecheckout/static/vendor/semantic/dist/themes/hackmit/assets/fonts/icons.woff -------------------------------------------------------------------------------- /hardwarecheckout/static/vendor/semantic/dist/themes/hackmit/assets/fonts/icons.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/techx/cog/d6ef562d803bfc51ff3947d18a694c0f32cbb20a/hardwarecheckout/static/vendor/semantic/dist/themes/hackmit/assets/fonts/icons.woff2 -------------------------------------------------------------------------------- /hardwarecheckout/static/vendor/semantic/dist/themes/hackmit/assets/images/flags.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/techx/cog/d6ef562d803bfc51ff3947d18a694c0f32cbb20a/hardwarecheckout/static/vendor/semantic/dist/themes/hackmit/assets/images/flags.png -------------------------------------------------------------------------------- /hardwarecheckout/static/vendor/semantic/dist/themes/material/assets/fonts/icons.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/techx/cog/d6ef562d803bfc51ff3947d18a694c0f32cbb20a/hardwarecheckout/static/vendor/semantic/dist/themes/material/assets/fonts/icons.eot -------------------------------------------------------------------------------- /hardwarecheckout/static/vendor/semantic/dist/themes/material/assets/fonts/icons.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/techx/cog/d6ef562d803bfc51ff3947d18a694c0f32cbb20a/hardwarecheckout/static/vendor/semantic/dist/themes/material/assets/fonts/icons.ttf -------------------------------------------------------------------------------- /hardwarecheckout/static/vendor/semantic/dist/themes/material/assets/fonts/icons.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/techx/cog/d6ef562d803bfc51ff3947d18a694c0f32cbb20a/hardwarecheckout/static/vendor/semantic/dist/themes/material/assets/fonts/icons.woff -------------------------------------------------------------------------------- /hardwarecheckout/static/vendor/semantic/dist/themes/material/assets/fonts/icons.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/techx/cog/d6ef562d803bfc51ff3947d18a694c0f32cbb20a/hardwarecheckout/static/vendor/semantic/dist/themes/material/assets/fonts/icons.woff2 -------------------------------------------------------------------------------- /hardwarecheckout/static/vendor/semantic/gulpfile.js: -------------------------------------------------------------------------------- 1 | /******************************* 2 | Set-up 3 | *******************************/ 4 | 5 | var 6 | gulp = require('gulp-help')(require('gulp')), 7 | 8 | // read user config to know what task to load 9 | config = require('./tasks/config/user'), 10 | 11 | // watch changes 12 | watch = require('./tasks/watch'), 13 | 14 | // build all files 15 | build = require('./tasks/build'), 16 | buildJS = require('./tasks/build/javascript'), 17 | buildCSS = require('./tasks/build/css'), 18 | buildAssets = require('./tasks/build/assets'), 19 | 20 | // utility 21 | clean = require('./tasks/clean'), 22 | version = require('./tasks/version'), 23 | 24 | // docs tasks 25 | serveDocs = require('./tasks/docs/serve'), 26 | buildDocs = require('./tasks/docs/build'), 27 | 28 | // rtl 29 | buildRTL = require('./tasks/rtl/build'), 30 | watchRTL = require('./tasks/rtl/watch') 31 | ; 32 | 33 | 34 | /******************************* 35 | Tasks 36 | *******************************/ 37 | 38 | gulp.task('default', false, [ 39 | 'watch' 40 | ]); 41 | 42 | gulp.task('watch', 'Watch for site/theme changes', watch); 43 | 44 | gulp.task('build', 'Builds all files from source', build); 45 | gulp.task('build-javascript', 'Builds all javascript from source', buildJS); 46 | gulp.task('build-css', 'Builds all css from source', buildCSS); 47 | gulp.task('build-assets', 'Copies all assets from source', buildAssets); 48 | 49 | gulp.task('clean', 'Clean dist folder', clean); 50 | gulp.task('version', 'Displays current version of Semantic', version); 51 | 52 | /*-------------- 53 | Docs 54 | ---------------*/ 55 | 56 | /* 57 | Lets you serve files to a local documentation instance 58 | https://github.com/Semantic-Org/Semantic-UI-Docs/ 59 | */ 60 | 61 | gulp.task('serve-docs', 'Serve file changes to SUI Docs', serveDocs); 62 | gulp.task('build-docs', 'Build all files and add to SUI Docs', buildDocs); 63 | 64 | 65 | /*-------------- 66 | RTL 67 | ---------------*/ 68 | 69 | if(config.rtl) { 70 | gulp.task('watch-rtl', 'Watch files as RTL', watchRTL); 71 | gulp.task('build-rtl', 'Build all files as RTL', buildRTL); 72 | } 73 | -------------------------------------------------------------------------------- /hardwarecheckout/static/vendor/semantic/src/definitions/elements/flag.less: -------------------------------------------------------------------------------- 1 | /*! 2 | * # Semantic UI - Flag 3 | * http://github.com/semantic-org/semantic-ui/ 4 | * 5 | * 6 | * Released under the MIT license 7 | * http://opensource.org/licenses/MIT 8 | * 9 | */ 10 | 11 | 12 | /******************************* 13 | Theme 14 | *******************************/ 15 | 16 | @type : 'element'; 17 | @element : 'flag'; 18 | 19 | @import (multiple) '../../theme.config'; 20 | 21 | 22 | /******************************* 23 | Flag 24 | *******************************/ 25 | 26 | i.flag:not(.icon) { 27 | display: inline-block; 28 | 29 | width: @width; 30 | height: @height; 31 | 32 | line-height: @height; 33 | vertical-align: @verticalAlign; 34 | margin: 0em @margin 0em 0em; 35 | 36 | text-decoration: inherit; 37 | 38 | speak: none; 39 | font-smoothing: antialiased; 40 | backface-visibility: hidden; 41 | } 42 | 43 | /* Sprite */ 44 | i.flag:not(.icon):before { 45 | display: inline-block; 46 | content: ''; 47 | background: url(@spritePath) no-repeat -108px -1976px; 48 | width: @width; 49 | height: @height; 50 | } 51 | 52 | .loadUIOverrides(); 53 | -------------------------------------------------------------------------------- /hardwarecheckout/static/vendor/semantic/src/definitions/globals/reset.less: -------------------------------------------------------------------------------- 1 | /*! 2 | * # Semantic UI - Reset 3 | * http://github.com/semantic-org/semantic-ui/ 4 | * 5 | * 6 | * Released under the MIT license 7 | * http://opensource.org/licenses/MIT 8 | * 9 | */ 10 | 11 | /******************************* 12 | Theme 13 | *******************************/ 14 | 15 | @type : 'global'; 16 | @element : 'reset'; 17 | 18 | @import (multiple) '../../theme.config'; 19 | 20 | /******************************* 21 | Reset 22 | *******************************/ 23 | 24 | /* Border-Box */ 25 | *, 26 | *:before, 27 | *:after { 28 | box-sizing: inherit; 29 | } 30 | html { 31 | box-sizing: border-box; 32 | } 33 | 34 | /* iPad Input Shadows */ 35 | input[type="text"], input[type="email"], input[type="search"], input[type="password"] { 36 | -webkit-appearance: none; 37 | -moz-appearance: none; /* mobile firefox too! */ 38 | } 39 | 40 | .loadUIOverrides(); 41 | -------------------------------------------------------------------------------- /hardwarecheckout/static/vendor/semantic/src/definitions/modules/sticky.less: -------------------------------------------------------------------------------- 1 | /*! 2 | * # Semantic UI - Sticky 3 | * http://github.com/semantic-org/semantic-ui/ 4 | * 5 | * 6 | * Released under the MIT license 7 | * http://opensource.org/licenses/MIT 8 | * 9 | */ 10 | 11 | 12 | /******************************* 13 | Theme 14 | *******************************/ 15 | 16 | @type : 'module'; 17 | @element : 'sticky'; 18 | 19 | @import (multiple) '../../theme.config'; 20 | 21 | /******************************* 22 | Sticky 23 | *******************************/ 24 | 25 | .ui.sticky { 26 | position: static; 27 | transition: @transition; 28 | z-index: @zIndex; 29 | } 30 | 31 | /******************************* 32 | States 33 | *******************************/ 34 | 35 | /* Bound */ 36 | .ui.sticky.bound { 37 | position: absolute; 38 | left: auto; 39 | right: auto; 40 | } 41 | 42 | /* Fixed */ 43 | .ui.sticky.fixed { 44 | position: fixed; 45 | left: auto; 46 | right: auto; 47 | } 48 | 49 | /* Bound/Fixed Position */ 50 | .ui.sticky.bound.top, 51 | .ui.sticky.fixed.top { 52 | top: 0px; 53 | bottom: auto; 54 | } 55 | .ui.sticky.bound.bottom, 56 | .ui.sticky.fixed.bottom { 57 | top: auto; 58 | bottom: 0px; 59 | } 60 | 61 | 62 | /******************************* 63 | Types 64 | *******************************/ 65 | 66 | .ui.native.sticky { 67 | position: -webkit-sticky; 68 | position: -moz-sticky; 69 | position: -ms-sticky; 70 | position: -o-sticky; 71 | position: sticky; 72 | } 73 | 74 | .loadUIOverrides(); 75 | -------------------------------------------------------------------------------- /hardwarecheckout/static/vendor/semantic/src/definitions/modules/tab.less: -------------------------------------------------------------------------------- 1 | /*! 2 | * # Semantic UI - Tab 3 | * http://github.com/semantic-org/semantic-ui/ 4 | * 5 | * 6 | * Released under the MIT license 7 | * http://opensource.org/licenses/MIT 8 | * 9 | */ 10 | 11 | 12 | /******************************* 13 | Theme 14 | *******************************/ 15 | 16 | @type : 'module'; 17 | @element : 'tab'; 18 | 19 | @import (multiple) '../../theme.config'; 20 | 21 | /******************************* 22 | UI Tabs 23 | *******************************/ 24 | 25 | .ui.tab { 26 | display: none; 27 | } 28 | 29 | /******************************* 30 | States 31 | *******************************/ 32 | 33 | /*-------------------- 34 | Active 35 | ---------------------*/ 36 | 37 | .ui.tab.active, 38 | .ui.tab.open { 39 | display: block; 40 | } 41 | 42 | /*-------------------- 43 | Loading 44 | ---------------------*/ 45 | 46 | .ui.tab.loading { 47 | position: relative; 48 | overflow: hidden; 49 | display: block; 50 | min-height: @loadingMinHeight; 51 | } 52 | .ui.tab.loading * { 53 | position: @loadingContentPosition !important; 54 | left: @loadingContentOffset !important; 55 | } 56 | 57 | .ui.tab.loading:before, 58 | .ui.tab.loading.segment:before { 59 | position: absolute; 60 | content: ''; 61 | top: @loaderDistanceFromTop; 62 | left: 50%; 63 | 64 | margin: @loaderMargin; 65 | width: @loaderSize; 66 | height: @loaderSize; 67 | 68 | border-radius: @circularRadius; 69 | border: @loaderLineWidth solid @loaderFillColor; 70 | } 71 | .ui.tab.loading:after, 72 | .ui.tab.loading.segment:after { 73 | position: absolute; 74 | content: ''; 75 | top: @loaderDistanceFromTop; 76 | left: 50%; 77 | 78 | margin: @loaderMargin; 79 | width: @loaderSize; 80 | height: @loaderSize; 81 | 82 | animation: button-spin @loaderSpeed linear; 83 | animation-iteration-count: infinite; 84 | 85 | border-radius: @circularRadius; 86 | 87 | border-color: @loaderLineColor transparent transparent; 88 | border-style: solid; 89 | border-width: @loaderLineWidth; 90 | 91 | box-shadow: 0px 0px 0px 1px transparent; 92 | } 93 | 94 | .loadUIOverrides(); 95 | -------------------------------------------------------------------------------- /hardwarecheckout/static/vendor/semantic/src/definitions/modules/transition.less: -------------------------------------------------------------------------------- 1 | /*! 2 | * # Semantic UI - Transition 3 | * http://github.com/semantic-org/semantic-ui/ 4 | * 5 | * 6 | * Released under the MIT license 7 | * http://opensource.org/licenses/MIT 8 | * 9 | */ 10 | 11 | 12 | /******************************* 13 | Theme 14 | *******************************/ 15 | 16 | @type : 'module'; 17 | @element : 'transition'; 18 | 19 | @import (multiple) '../../theme.config'; 20 | 21 | /******************************* 22 | Transitions 23 | *******************************/ 24 | 25 | .transition { 26 | animation-iteration-count: 1; 27 | animation-duration: @transitionDefaultDuration; 28 | animation-timing-function: @transitionDefaultEasing; 29 | animation-fill-mode: @transitionDefaultFill; 30 | } 31 | 32 | /******************************* 33 | States 34 | *******************************/ 35 | 36 | 37 | /* Animating */ 38 | .animating.transition { 39 | backface-visibility: @backfaceVisibility; 40 | visibility: visible !important; 41 | } 42 | 43 | /* Loading */ 44 | .loading.transition { 45 | position: absolute; 46 | top: -99999px; 47 | left: -99999px; 48 | } 49 | 50 | /* Hidden */ 51 | .hidden.transition { 52 | display: none; 53 | visibility: hidden; 54 | } 55 | 56 | /* Visible */ 57 | .visible.transition { 58 | display: block !important; 59 | visibility: visible !important; 60 | /* backface-visibility: @backfaceVisibility; 61 | transform: @use3DAcceleration;*/ 62 | } 63 | 64 | /* Disabled */ 65 | .disabled.transition { 66 | animation-play-state: paused; 67 | } 68 | 69 | /******************************* 70 | Variations 71 | *******************************/ 72 | 73 | .looping.transition { 74 | animation-iteration-count: infinite; 75 | } 76 | 77 | 78 | .loadUIOverrides(); 79 | -------------------------------------------------------------------------------- /hardwarecheckout/static/vendor/semantic/src/site/collections/breadcrumb.overrides: -------------------------------------------------------------------------------- 1 | /******************************* 2 | Site Overrides 3 | *******************************/ 4 | -------------------------------------------------------------------------------- /hardwarecheckout/static/vendor/semantic/src/site/collections/breadcrumb.variables: -------------------------------------------------------------------------------- 1 | /******************************* 2 | Site Overrides 3 | *******************************/ 4 | -------------------------------------------------------------------------------- /hardwarecheckout/static/vendor/semantic/src/site/collections/form.overrides: -------------------------------------------------------------------------------- 1 | /******************************* 2 | Site Overrides 3 | *******************************/ 4 | -------------------------------------------------------------------------------- /hardwarecheckout/static/vendor/semantic/src/site/collections/form.variables: -------------------------------------------------------------------------------- 1 | /******************************* 2 | User Variable Overrides 3 | *******************************/ 4 | -------------------------------------------------------------------------------- /hardwarecheckout/static/vendor/semantic/src/site/collections/grid.overrides: -------------------------------------------------------------------------------- 1 | /******************************* 2 | Site Overrides 3 | *******************************/ 4 | -------------------------------------------------------------------------------- /hardwarecheckout/static/vendor/semantic/src/site/collections/grid.variables: -------------------------------------------------------------------------------- 1 | /******************************* 2 | User Variable Overrides 3 | *******************************/ 4 | -------------------------------------------------------------------------------- /hardwarecheckout/static/vendor/semantic/src/site/collections/menu.overrides: -------------------------------------------------------------------------------- 1 | /******************************* 2 | Site Overrides 3 | *******************************/ -------------------------------------------------------------------------------- /hardwarecheckout/static/vendor/semantic/src/site/collections/menu.variables: -------------------------------------------------------------------------------- 1 | /******************************* 2 | User Variable Overrides 3 | *******************************/ 4 | -------------------------------------------------------------------------------- /hardwarecheckout/static/vendor/semantic/src/site/collections/message.overrides: -------------------------------------------------------------------------------- 1 | /******************************* 2 | Site Overrides 3 | *******************************/ 4 | -------------------------------------------------------------------------------- /hardwarecheckout/static/vendor/semantic/src/site/collections/message.variables: -------------------------------------------------------------------------------- 1 | /******************************* 2 | User Variable Overrides 3 | *******************************/ 4 | -------------------------------------------------------------------------------- /hardwarecheckout/static/vendor/semantic/src/site/collections/table.overrides: -------------------------------------------------------------------------------- 1 | /******************************* 2 | Site Overrides 3 | *******************************/ 4 | -------------------------------------------------------------------------------- /hardwarecheckout/static/vendor/semantic/src/site/collections/table.variables: -------------------------------------------------------------------------------- 1 | /******************************* 2 | User Variable Overrides 3 | *******************************/ 4 | -------------------------------------------------------------------------------- /hardwarecheckout/static/vendor/semantic/src/site/elements/button.overrides: -------------------------------------------------------------------------------- 1 | /******************************* 2 | Site Overrides 3 | *******************************/ 4 | -------------------------------------------------------------------------------- /hardwarecheckout/static/vendor/semantic/src/site/elements/button.variables: -------------------------------------------------------------------------------- 1 | /******************************* 2 | User Variable Overrides 3 | *******************************/ 4 | -------------------------------------------------------------------------------- /hardwarecheckout/static/vendor/semantic/src/site/elements/container.overrides: -------------------------------------------------------------------------------- 1 | /******************************* 2 | Site Overrides 3 | *******************************/ 4 | -------------------------------------------------------------------------------- /hardwarecheckout/static/vendor/semantic/src/site/elements/container.variables: -------------------------------------------------------------------------------- 1 | /******************************* 2 | User Variable Overrides 3 | *******************************/ 4 | -------------------------------------------------------------------------------- /hardwarecheckout/static/vendor/semantic/src/site/elements/divider.overrides: -------------------------------------------------------------------------------- 1 | /******************************* 2 | Site Overrides 3 | *******************************/ 4 | -------------------------------------------------------------------------------- /hardwarecheckout/static/vendor/semantic/src/site/elements/divider.variables: -------------------------------------------------------------------------------- 1 | /******************************* 2 | User Variable Overrides 3 | *******************************/ 4 | -------------------------------------------------------------------------------- /hardwarecheckout/static/vendor/semantic/src/site/elements/flag.overrides: -------------------------------------------------------------------------------- 1 | /******************************* 2 | Site Overrides 3 | *******************************/ 4 | -------------------------------------------------------------------------------- /hardwarecheckout/static/vendor/semantic/src/site/elements/flag.variables: -------------------------------------------------------------------------------- 1 | /*------------------- 2 | Flag Variables 3 | --------------------*/ 4 | -------------------------------------------------------------------------------- /hardwarecheckout/static/vendor/semantic/src/site/elements/header.overrides: -------------------------------------------------------------------------------- 1 | /******************************* 2 | Site Overrides 3 | *******************************/ 4 | -------------------------------------------------------------------------------- /hardwarecheckout/static/vendor/semantic/src/site/elements/header.variables: -------------------------------------------------------------------------------- 1 | /******************************* 2 | User Variable Overrides 3 | *******************************/ 4 | -------------------------------------------------------------------------------- /hardwarecheckout/static/vendor/semantic/src/site/elements/icon.overrides: -------------------------------------------------------------------------------- 1 | /******************************* 2 | Site Overrides 3 | *******************************/ 4 | -------------------------------------------------------------------------------- /hardwarecheckout/static/vendor/semantic/src/site/elements/icon.variables: -------------------------------------------------------------------------------- 1 | /******************************* 2 | User Variable Overrides 3 | *******************************/ 4 | -------------------------------------------------------------------------------- /hardwarecheckout/static/vendor/semantic/src/site/elements/image.overrides: -------------------------------------------------------------------------------- 1 | /******************************* 2 | Site Overrides 3 | *******************************/ 4 | -------------------------------------------------------------------------------- /hardwarecheckout/static/vendor/semantic/src/site/elements/image.variables: -------------------------------------------------------------------------------- 1 | /******************************* 2 | User Variable Overrides 3 | *******************************/ 4 | -------------------------------------------------------------------------------- /hardwarecheckout/static/vendor/semantic/src/site/elements/input.overrides: -------------------------------------------------------------------------------- 1 | /******************************* 2 | Site Overrides 3 | *******************************/ 4 | -------------------------------------------------------------------------------- /hardwarecheckout/static/vendor/semantic/src/site/elements/input.variables: -------------------------------------------------------------------------------- 1 | /******************************* 2 | User Variable Overrides 3 | *******************************/ 4 | -------------------------------------------------------------------------------- /hardwarecheckout/static/vendor/semantic/src/site/elements/label.overrides: -------------------------------------------------------------------------------- 1 | /******************************* 2 | Site Overrides 3 | *******************************/ 4 | -------------------------------------------------------------------------------- /hardwarecheckout/static/vendor/semantic/src/site/elements/label.variables: -------------------------------------------------------------------------------- 1 | /******************************* 2 | User Variable Overrides 3 | *******************************/ 4 | -------------------------------------------------------------------------------- /hardwarecheckout/static/vendor/semantic/src/site/elements/list.overrides: -------------------------------------------------------------------------------- 1 | /******************************* 2 | User Variable Overrides 3 | *******************************/ 4 | -------------------------------------------------------------------------------- /hardwarecheckout/static/vendor/semantic/src/site/elements/list.variables: -------------------------------------------------------------------------------- 1 | /******************************* 2 | User Variable Overrides 3 | *******************************/ 4 | -------------------------------------------------------------------------------- /hardwarecheckout/static/vendor/semantic/src/site/elements/loader.overrides: -------------------------------------------------------------------------------- 1 | /******************************* 2 | Site Overrides 3 | *******************************/ 4 | -------------------------------------------------------------------------------- /hardwarecheckout/static/vendor/semantic/src/site/elements/loader.variables: -------------------------------------------------------------------------------- 1 | /******************************* 2 | User Variable Overrides 3 | *******************************/ 4 | -------------------------------------------------------------------------------- /hardwarecheckout/static/vendor/semantic/src/site/elements/rail.overrides: -------------------------------------------------------------------------------- 1 | /******************************* 2 | Site Overrides 3 | *******************************/ 4 | -------------------------------------------------------------------------------- /hardwarecheckout/static/vendor/semantic/src/site/elements/rail.variables: -------------------------------------------------------------------------------- 1 | /******************************* 2 | User Variable Overrides 3 | *******************************/ 4 | -------------------------------------------------------------------------------- /hardwarecheckout/static/vendor/semantic/src/site/elements/reveal.overrides: -------------------------------------------------------------------------------- 1 | /******************************* 2 | Site Overrides 3 | *******************************/ 4 | -------------------------------------------------------------------------------- /hardwarecheckout/static/vendor/semantic/src/site/elements/reveal.variables: -------------------------------------------------------------------------------- 1 | /******************************* 2 | User Variable Overrides 3 | *******************************/ 4 | -------------------------------------------------------------------------------- /hardwarecheckout/static/vendor/semantic/src/site/elements/segment.overrides: -------------------------------------------------------------------------------- 1 | /******************************* 2 | Site Overrides 3 | *******************************/ 4 | -------------------------------------------------------------------------------- /hardwarecheckout/static/vendor/semantic/src/site/elements/segment.variables: -------------------------------------------------------------------------------- 1 | /******************************* 2 | User Variable Overrides 3 | *******************************/ 4 | -------------------------------------------------------------------------------- /hardwarecheckout/static/vendor/semantic/src/site/elements/step.overrides: -------------------------------------------------------------------------------- 1 | /******************************* 2 | Site Overrides 3 | *******************************/ 4 | -------------------------------------------------------------------------------- /hardwarecheckout/static/vendor/semantic/src/site/elements/step.variables: -------------------------------------------------------------------------------- 1 | /******************************* 2 | User Variable Overrides 3 | *******************************/ 4 | -------------------------------------------------------------------------------- /hardwarecheckout/static/vendor/semantic/src/site/globals/reset.overrides: -------------------------------------------------------------------------------- 1 | /******************************* 2 | Site Overrides 3 | *******************************/ 4 | -------------------------------------------------------------------------------- /hardwarecheckout/static/vendor/semantic/src/site/globals/reset.variables: -------------------------------------------------------------------------------- 1 | /******************************* 2 | User Global Variables 3 | *******************************/ 4 | -------------------------------------------------------------------------------- /hardwarecheckout/static/vendor/semantic/src/site/globals/site.overrides: -------------------------------------------------------------------------------- 1 | /******************************* 2 | Site Overrides 3 | *******************************/ 4 | -------------------------------------------------------------------------------- /hardwarecheckout/static/vendor/semantic/src/site/globals/site.variables: -------------------------------------------------------------------------------- 1 | /******************************* 2 | User Global Variables 3 | *******************************/ -------------------------------------------------------------------------------- /hardwarecheckout/static/vendor/semantic/src/site/modules/accordion.overrides: -------------------------------------------------------------------------------- 1 | /******************************* 2 | User Overrides 3 | *******************************/ 4 | -------------------------------------------------------------------------------- /hardwarecheckout/static/vendor/semantic/src/site/modules/accordion.variables: -------------------------------------------------------------------------------- 1 | /******************************* 2 | User Variable Overrides 3 | *******************************/ 4 | -------------------------------------------------------------------------------- /hardwarecheckout/static/vendor/semantic/src/site/modules/chatroom.overrides: -------------------------------------------------------------------------------- 1 | /******************************* 2 | User Overrides 3 | *******************************/ 4 | -------------------------------------------------------------------------------- /hardwarecheckout/static/vendor/semantic/src/site/modules/chatroom.variables: -------------------------------------------------------------------------------- 1 | /******************************* 2 | User Variable Overrides 3 | *******************************/ 4 | -------------------------------------------------------------------------------- /hardwarecheckout/static/vendor/semantic/src/site/modules/checkbox.overrides: -------------------------------------------------------------------------------- 1 | /******************************* 2 | Site Overrides 3 | *******************************/ 4 | -------------------------------------------------------------------------------- /hardwarecheckout/static/vendor/semantic/src/site/modules/checkbox.variables: -------------------------------------------------------------------------------- 1 | /******************************* 2 | User Variable Overrides 3 | *******************************/ 4 | -------------------------------------------------------------------------------- /hardwarecheckout/static/vendor/semantic/src/site/modules/dimmer.overrides: -------------------------------------------------------------------------------- 1 | /******************************* 2 | User Overrides 3 | *******************************/ 4 | -------------------------------------------------------------------------------- /hardwarecheckout/static/vendor/semantic/src/site/modules/dimmer.variables: -------------------------------------------------------------------------------- 1 | /******************************* 2 | User Variable Overrides 3 | *******************************/ 4 | -------------------------------------------------------------------------------- /hardwarecheckout/static/vendor/semantic/src/site/modules/dropdown.overrides: -------------------------------------------------------------------------------- 1 | /******************************* 2 | User Overrides 3 | *******************************/ 4 | -------------------------------------------------------------------------------- /hardwarecheckout/static/vendor/semantic/src/site/modules/dropdown.variables: -------------------------------------------------------------------------------- 1 | /******************************* 2 | User Variable Overrides 3 | *******************************/ 4 | -------------------------------------------------------------------------------- /hardwarecheckout/static/vendor/semantic/src/site/modules/embed.overrides: -------------------------------------------------------------------------------- 1 | /******************************* 2 | Site Overrides 3 | *******************************/ 4 | -------------------------------------------------------------------------------- /hardwarecheckout/static/vendor/semantic/src/site/modules/embed.variables: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/techx/cog/d6ef562d803bfc51ff3947d18a694c0f32cbb20a/hardwarecheckout/static/vendor/semantic/src/site/modules/embed.variables -------------------------------------------------------------------------------- /hardwarecheckout/static/vendor/semantic/src/site/modules/modal.overrides: -------------------------------------------------------------------------------- 1 | /******************************* 2 | Site Overrides 3 | *******************************/ 4 | -------------------------------------------------------------------------------- /hardwarecheckout/static/vendor/semantic/src/site/modules/modal.variables: -------------------------------------------------------------------------------- 1 | /******************************* 2 | Site Overrides 3 | *******************************/ 4 | -------------------------------------------------------------------------------- /hardwarecheckout/static/vendor/semantic/src/site/modules/nag.overrides: -------------------------------------------------------------------------------- 1 | /******************************* 2 | User Overrides 3 | *******************************/ 4 | -------------------------------------------------------------------------------- /hardwarecheckout/static/vendor/semantic/src/site/modules/nag.variables: -------------------------------------------------------------------------------- 1 | /******************************* 2 | User Variable Overrides 3 | *******************************/ 4 | -------------------------------------------------------------------------------- /hardwarecheckout/static/vendor/semantic/src/site/modules/popup.overrides: -------------------------------------------------------------------------------- 1 | /******************************* 2 | User Overrides 3 | *******************************/ 4 | -------------------------------------------------------------------------------- /hardwarecheckout/static/vendor/semantic/src/site/modules/popup.variables: -------------------------------------------------------------------------------- 1 | /******************************* 2 | User Variable Overrides 3 | *******************************/ 4 | -------------------------------------------------------------------------------- /hardwarecheckout/static/vendor/semantic/src/site/modules/progress.overrides: -------------------------------------------------------------------------------- 1 | /******************************* 2 | Site Overrides 3 | *******************************/ 4 | -------------------------------------------------------------------------------- /hardwarecheckout/static/vendor/semantic/src/site/modules/progress.variables: -------------------------------------------------------------------------------- 1 | /******************************* 2 | User Variable Overrides 3 | *******************************/ 4 | -------------------------------------------------------------------------------- /hardwarecheckout/static/vendor/semantic/src/site/modules/rating.overrides: -------------------------------------------------------------------------------- 1 | /******************************* 2 | Site Overrides 3 | *******************************/ 4 | -------------------------------------------------------------------------------- /hardwarecheckout/static/vendor/semantic/src/site/modules/rating.variables: -------------------------------------------------------------------------------- 1 | /******************************* 2 | Site Overrides 3 | *******************************/ 4 | -------------------------------------------------------------------------------- /hardwarecheckout/static/vendor/semantic/src/site/modules/search.overrides: -------------------------------------------------------------------------------- 1 | /******************************* 2 | Site Overrides 3 | *******************************/ 4 | -------------------------------------------------------------------------------- /hardwarecheckout/static/vendor/semantic/src/site/modules/search.variables: -------------------------------------------------------------------------------- 1 | /******************************* 2 | Site Overrides 3 | *******************************/ 4 | -------------------------------------------------------------------------------- /hardwarecheckout/static/vendor/semantic/src/site/modules/shape.overrides: -------------------------------------------------------------------------------- 1 | /******************************* 2 | User Overrides 3 | *******************************/ 4 | -------------------------------------------------------------------------------- /hardwarecheckout/static/vendor/semantic/src/site/modules/shape.variables: -------------------------------------------------------------------------------- 1 | /******************************* 2 | User Variable Overrides 3 | *******************************/ 4 | -------------------------------------------------------------------------------- /hardwarecheckout/static/vendor/semantic/src/site/modules/sidebar.overrides: -------------------------------------------------------------------------------- 1 | /******************************* 2 | Site Overrides 3 | *******************************/ 4 | -------------------------------------------------------------------------------- /hardwarecheckout/static/vendor/semantic/src/site/modules/sidebar.variables: -------------------------------------------------------------------------------- 1 | /******************************* 2 | Site Overrides 3 | *******************************/ 4 | -------------------------------------------------------------------------------- /hardwarecheckout/static/vendor/semantic/src/site/modules/sticky.overrides: -------------------------------------------------------------------------------- 1 | /******************************* 2 | Site Overrides 3 | *******************************/ 4 | -------------------------------------------------------------------------------- /hardwarecheckout/static/vendor/semantic/src/site/modules/sticky.variables: -------------------------------------------------------------------------------- 1 | /******************************* 2 | Site Overrides 3 | *******************************/ 4 | -------------------------------------------------------------------------------- /hardwarecheckout/static/vendor/semantic/src/site/modules/tab.overrides: -------------------------------------------------------------------------------- 1 | /******************************* 2 | User Overrides 3 | *******************************/ 4 | -------------------------------------------------------------------------------- /hardwarecheckout/static/vendor/semantic/src/site/modules/tab.variables: -------------------------------------------------------------------------------- 1 | /******************************* 2 | User Variable Overrides 3 | *******************************/ 4 | -------------------------------------------------------------------------------- /hardwarecheckout/static/vendor/semantic/src/site/modules/transition.overrides: -------------------------------------------------------------------------------- 1 | /******************************* 2 | Site Overrides 3 | *******************************/ 4 | -------------------------------------------------------------------------------- /hardwarecheckout/static/vendor/semantic/src/site/modules/transition.variables: -------------------------------------------------------------------------------- 1 | /******************************* 2 | User Variable Overrides 3 | *******************************/ 4 | -------------------------------------------------------------------------------- /hardwarecheckout/static/vendor/semantic/src/site/views/ad.overrides: -------------------------------------------------------------------------------- 1 | /******************************* 2 | User Variable Overrides 3 | *******************************/ 4 | -------------------------------------------------------------------------------- /hardwarecheckout/static/vendor/semantic/src/site/views/ad.variables: -------------------------------------------------------------------------------- 1 | /******************************* 2 | User Variable Overrides 3 | *******************************/ 4 | -------------------------------------------------------------------------------- /hardwarecheckout/static/vendor/semantic/src/site/views/card.overrides: -------------------------------------------------------------------------------- 1 | /******************************* 2 | User Variable Overrides 3 | *******************************/ 4 | -------------------------------------------------------------------------------- /hardwarecheckout/static/vendor/semantic/src/site/views/card.variables: -------------------------------------------------------------------------------- 1 | /******************************* 2 | User Variable Overrides 3 | *******************************/ 4 | -------------------------------------------------------------------------------- /hardwarecheckout/static/vendor/semantic/src/site/views/comment.overrides: -------------------------------------------------------------------------------- 1 | /******************************* 2 | User Variable Overrides 3 | *******************************/ 4 | -------------------------------------------------------------------------------- /hardwarecheckout/static/vendor/semantic/src/site/views/comment.variables: -------------------------------------------------------------------------------- 1 | /******************************* 2 | User Variable Overrides 3 | *******************************/ 4 | -------------------------------------------------------------------------------- /hardwarecheckout/static/vendor/semantic/src/site/views/feed.overrides: -------------------------------------------------------------------------------- 1 | /******************************* 2 | User Variable Overrides 3 | *******************************/ 4 | -------------------------------------------------------------------------------- /hardwarecheckout/static/vendor/semantic/src/site/views/feed.variables: -------------------------------------------------------------------------------- 1 | /******************************* 2 | User Variable Overrides 3 | *******************************/ 4 | -------------------------------------------------------------------------------- /hardwarecheckout/static/vendor/semantic/src/site/views/item.overrides: -------------------------------------------------------------------------------- 1 | /******************************* 2 | User Variable Overrides 3 | *******************************/ 4 | -------------------------------------------------------------------------------- /hardwarecheckout/static/vendor/semantic/src/site/views/item.variables: -------------------------------------------------------------------------------- 1 | /******************************* 2 | User Variable Overrides 3 | *******************************/ 4 | -------------------------------------------------------------------------------- /hardwarecheckout/static/vendor/semantic/src/site/views/statistic.overrides: -------------------------------------------------------------------------------- 1 | /******************************* 2 | User Variable Overrides 3 | *******************************/ 4 | -------------------------------------------------------------------------------- /hardwarecheckout/static/vendor/semantic/src/site/views/statistic.variables: -------------------------------------------------------------------------------- 1 | /******************************* 2 | User Variable Overrides 3 | *******************************/ 4 | -------------------------------------------------------------------------------- /hardwarecheckout/static/vendor/semantic/src/theme.config: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | ████████╗██╗ ██╗███████╗███╗ ███╗███████╗███████╗ 4 | ╚══██╔══╝██║ ██║██╔════╝████╗ ████║██╔════╝██╔════╝ 5 | ██║ ███████║█████╗ ██╔████╔██║█████╗ ███████╗ 6 | ██║ ██╔══██║██╔══╝ ██║╚██╔╝██║██╔══╝ ╚════██║ 7 | ██║ ██║ ██║███████╗██║ ╚═╝ ██║███████╗███████║ 8 | ╚═╝ ╚═╝ ╚═╝╚══════╝╚═╝ ╚═╝╚══════╝╚══════╝ 9 | 10 | */ 11 | 12 | /******************************* 13 | Theme Selection 14 | *******************************/ 15 | 16 | /* To override a theme for an individual element 17 | specify theme name below 18 | */ 19 | 20 | /* Global */ 21 | @site : 'hackmit'; 22 | @reset : 'hackmit'; 23 | 24 | /* Elements */ 25 | @button : 'hackmit'; 26 | @container : 'hackmit'; 27 | @divider : 'hackmit'; 28 | @flag : 'hackmit'; 29 | @header : 'hackmit'; 30 | @icon : 'hackmit'; 31 | @image : 'hackmit'; 32 | @input : 'hackmit'; 33 | @label : 'hackmit'; 34 | @list : 'hackmit'; 35 | @loader : 'hackmit'; 36 | @rail : 'hackmit'; 37 | @reveal : 'hackmit'; 38 | @segment : 'hackmit'; 39 | @step : 'hackmit'; 40 | 41 | /* Collections */ 42 | @breadcrumb : 'hackmit'; 43 | @form : 'hackmit'; 44 | @grid : 'hackmit'; 45 | @menu : 'hackmit'; 46 | @message : 'hackmit'; 47 | @table : 'hackmit'; 48 | 49 | /* Modules */ 50 | @accordion : 'default'; 51 | @checkbox : 'default'; 52 | @dimmer : 'default'; 53 | @dropdown : 'default'; 54 | @embed : 'default'; 55 | @modal : 'default'; 56 | @nag : 'default'; 57 | @popup : 'default'; 58 | @progress : 'default'; 59 | @rating : 'default'; 60 | @search : 'default'; 61 | @shape : 'default'; 62 | @sidebar : 'default'; 63 | @sticky : 'default'; 64 | @tab : 'default'; 65 | @transition : 'default'; 66 | 67 | /* Views */ 68 | @ad : 'default'; 69 | @card : 'default'; 70 | @comment : 'default'; 71 | @feed : 'default'; 72 | @item : 'default'; 73 | @statistic : 'default'; 74 | 75 | /******************************* 76 | Folders 77 | *******************************/ 78 | 79 | /* Path to theme packages */ 80 | @themesFolder : 'themes'; 81 | 82 | /* Path to site override folder */ 83 | @siteFolder : 'site/'; 84 | 85 | 86 | /******************************* 87 | Import Theme 88 | *******************************/ 89 | 90 | @import "theme.less"; 91 | 92 | /* End Config */ 93 | -------------------------------------------------------------------------------- /hardwarecheckout/static/vendor/semantic/src/theme.less: -------------------------------------------------------------------------------- 1 | /******************************* 2 | Import Directives 3 | *******************************/ 4 | 5 | /*------------------ 6 | Theme 7 | -------------------*/ 8 | 9 | @theme: @@element; 10 | 11 | /*-------------------- 12 | Site Variables 13 | ---------------------*/ 14 | 15 | /* Default site.variables */ 16 | @import "@{themesFolder}/default/globals/site.variables"; 17 | 18 | /* Packaged site.variables */ 19 | @import "@{themesFolder}/@{site}/globals/site.variables"; 20 | 21 | /* Component's site.variables */ 22 | @import (optional) "@{themesFolder}/@{theme}/globals/site.variables"; 23 | 24 | /* Site theme site.variables */ 25 | @import (optional) "@{siteFolder}/globals/site.variables"; 26 | 27 | 28 | /*------------------- 29 | Component Variables 30 | ---------------------*/ 31 | 32 | /* Default */ 33 | @import "@{themesFolder}/default/@{type}s/@{element}.variables"; 34 | 35 | /* Packaged Theme */ 36 | @import (optional) "@{themesFolder}/@{theme}/@{type}s/@{element}.variables"; 37 | 38 | /* Site Theme */ 39 | @import (optional) "@{siteFolder}/@{type}s/@{element}.variables"; 40 | 41 | 42 | /******************************* 43 | Mix-ins 44 | *******************************/ 45 | 46 | /*------------------ 47 | Fonts 48 | -------------------*/ 49 | 50 | .loadFonts() when (@importGoogleFonts) { 51 | @import url('@{googleProtocol}fonts.googleapis.com/css?family=@{googleFontRequest}'); 52 | } 53 | 54 | /*------------------ 55 | Overrides 56 | -------------------*/ 57 | 58 | .loadUIOverrides() { 59 | @import (optional) "@{themesFolder}/@{theme}/@{type}s/@{element}.overrides"; 60 | @import (optional) "@{siteFolder}/@{type}s/@{element}.overrides"; 61 | } 62 | -------------------------------------------------------------------------------- /hardwarecheckout/static/vendor/semantic/src/themes/default/assets/fonts/icons.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/techx/cog/d6ef562d803bfc51ff3947d18a694c0f32cbb20a/hardwarecheckout/static/vendor/semantic/src/themes/default/assets/fonts/icons.eot -------------------------------------------------------------------------------- /hardwarecheckout/static/vendor/semantic/src/themes/default/assets/fonts/icons.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/techx/cog/d6ef562d803bfc51ff3947d18a694c0f32cbb20a/hardwarecheckout/static/vendor/semantic/src/themes/default/assets/fonts/icons.ttf -------------------------------------------------------------------------------- /hardwarecheckout/static/vendor/semantic/src/themes/default/assets/fonts/icons.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/techx/cog/d6ef562d803bfc51ff3947d18a694c0f32cbb20a/hardwarecheckout/static/vendor/semantic/src/themes/default/assets/fonts/icons.woff -------------------------------------------------------------------------------- /hardwarecheckout/static/vendor/semantic/src/themes/default/assets/fonts/icons.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/techx/cog/d6ef562d803bfc51ff3947d18a694c0f32cbb20a/hardwarecheckout/static/vendor/semantic/src/themes/default/assets/fonts/icons.woff2 -------------------------------------------------------------------------------- /hardwarecheckout/static/vendor/semantic/src/themes/default/assets/images/flags.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/techx/cog/d6ef562d803bfc51ff3947d18a694c0f32cbb20a/hardwarecheckout/static/vendor/semantic/src/themes/default/assets/images/flags.png -------------------------------------------------------------------------------- /hardwarecheckout/static/vendor/semantic/src/themes/default/collections/breadcrumb.overrides: -------------------------------------------------------------------------------- 1 | /******************************* 2 | Theme Overrides 3 | *******************************/ 4 | -------------------------------------------------------------------------------- /hardwarecheckout/static/vendor/semantic/src/themes/default/collections/breadcrumb.variables: -------------------------------------------------------------------------------- 1 | /******************************* 2 | Breadcrumb 3 | *******************************/ 4 | 5 | /*------------------- 6 | Breadcrumb 7 | --------------------*/ 8 | 9 | @verticalMargin: 0em; 10 | @display: inline-block; 11 | @verticalAlign: middle; 12 | 13 | @dividerSpacing: @3px; 14 | @dividerOpacity: 0.7; 15 | @dividerColor: @lightTextColor; 16 | 17 | @dividerSize: @relativeSmall; 18 | @dividerVerticalAlign: baseline; 19 | 20 | @iconDividerSize: @relativeTiny; 21 | @iconDividerVerticalAlign: baseline; 22 | 23 | @sectionMargin: 0em; 24 | @sectionPadding: 0em; 25 | 26 | /* Coupling */ 27 | @segmentPadding: @relativeMini @relativeMedium; 28 | 29 | /*------------------- 30 | States 31 | --------------------*/ 32 | 33 | @activeFontWeight: bold; -------------------------------------------------------------------------------- /hardwarecheckout/static/vendor/semantic/src/themes/default/collections/form.overrides: -------------------------------------------------------------------------------- 1 | /******************************* 2 | Theme Overrides 3 | *******************************/ 4 | -------------------------------------------------------------------------------- /hardwarecheckout/static/vendor/semantic/src/themes/default/collections/grid.overrides: -------------------------------------------------------------------------------- 1 | /******************************* 2 | Theme Overrides 3 | *******************************/ 4 | 5 | -------------------------------------------------------------------------------- /hardwarecheckout/static/vendor/semantic/src/themes/default/collections/menu.overrides: -------------------------------------------------------------------------------- 1 | /******************************* 2 | Theme Overrides 3 | *******************************/ 4 | -------------------------------------------------------------------------------- /hardwarecheckout/static/vendor/semantic/src/themes/default/collections/message.overrides: -------------------------------------------------------------------------------- 1 | /******************************* 2 | Theme Overrides 3 | *******************************/ 4 | -------------------------------------------------------------------------------- /hardwarecheckout/static/vendor/semantic/src/themes/default/collections/table.overrides: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/techx/cog/d6ef562d803bfc51ff3947d18a694c0f32cbb20a/hardwarecheckout/static/vendor/semantic/src/themes/default/collections/table.overrides -------------------------------------------------------------------------------- /hardwarecheckout/static/vendor/semantic/src/themes/default/elements/button.overrides: -------------------------------------------------------------------------------- 1 | /******************************* 2 | Theme Overrides 3 | *******************************/ 4 | -------------------------------------------------------------------------------- /hardwarecheckout/static/vendor/semantic/src/themes/default/elements/container.overrides: -------------------------------------------------------------------------------- 1 | /******************************* 2 | Theme Overrides 3 | *******************************/ 4 | -------------------------------------------------------------------------------- /hardwarecheckout/static/vendor/semantic/src/themes/default/elements/container.variables: -------------------------------------------------------------------------------- 1 | /******************************* 2 | Container 3 | *******************************/ 4 | 5 | /*------------------- 6 | Element 7 | --------------------*/ 8 | 9 | /* Minimum Gutter is used to determine the maximum container width for a given device */ 10 | 11 | @maxWidth: 100%; 12 | 13 | /* Devices */ 14 | @mobileMinimumGutter: 0em; 15 | @mobileWidth: auto; 16 | @mobileGutter: 1em; 17 | 18 | @tabletMinimumGutter: (@emSize * 1); 19 | @tabletWidth: @tabletBreakpoint - (@tabletMinimumGutter * 2) - @scrollbarWidth; 20 | @tabletGutter: auto; 21 | 22 | @computerMinimumGutter: (@emSize * 1.5); 23 | @computerWidth: @computerBreakpoint - (@computerMinimumGutter * 2) - @scrollbarWidth; 24 | @computerGutter: auto; 25 | 26 | @largeMonitorMinimumGutter: (@emSize * 2); 27 | @largeMonitorWidth: @largeMonitorBreakpoint - (@largeMonitorMinimumGutter * 2) - @scrollbarWidth; 28 | @largeMonitorGutter: auto; 29 | 30 | /* Coupling (Add Negative Margin to container size) */ 31 | @gridGutterWidth: 2rem; 32 | @relaxedGridGutterWidth: 3rem; 33 | @veryRelaxedGridGutterWidth: 5rem; 34 | 35 | @mobileGridWidth: @mobileWidth; 36 | @tabletGridWidth: ~"calc("@tabletWidth~" + "@gridGutterWidth~")"; 37 | @computerGridWidth: ~"calc("@computerWidth~" + "@gridGutterWidth~")"; 38 | @largeMonitorGridWidth: ~"calc("@largeMonitorWidth~" + "@gridGutterWidth~")"; 39 | 40 | @mobileRelaxedGridWidth: @mobileWidth; 41 | @tabletRelaxedGridWidth: ~"calc("@tabletWidth~" + "@relaxedGridGutterWidth~")"; 42 | @computerRelaxedGridWidth: ~"calc("@computerWidth~" + "@relaxedGridGutterWidth~")"; 43 | @largeMonitorRelaxedGridWidth: ~"calc("@largeMonitorWidth~" + "@relaxedGridGutterWidth~")"; 44 | 45 | @mobileVeryRelaxedGridWidth: @mobileWidth; 46 | @tabletVeryRelaxedGridWidth: ~"calc("@tabletWidth~" + "@veryRelaxedGridGutterWidth~")"; 47 | @computerVeryRelaxedGridWidth: ~"calc("@computerWidth~" + "@veryRelaxedGridGutterWidth~")"; 48 | @largeMonitorVeryRelaxedGridWidth: ~"calc("@largeMonitorWidth~" + "@veryRelaxedGridGutterWidth~")"; 49 | 50 | /*------------------- 51 | Types 52 | --------------------*/ 53 | 54 | /* Text */ 55 | @textWidth: 700px; 56 | @textFontFamily: @pageFont; 57 | @textLineHeight: 1.5; 58 | @textSize: @large; -------------------------------------------------------------------------------- /hardwarecheckout/static/vendor/semantic/src/themes/default/elements/divider.variables: -------------------------------------------------------------------------------- 1 | /******************************* 2 | Divider 3 | *******************************/ 4 | 5 | /*------------------- 6 | Element 7 | --------------------*/ 8 | 9 | @margin: 1rem 0rem; 10 | 11 | @highlightWidth: 1px; 12 | @highlightColor: @whiteBorderColor; 13 | 14 | @shadowWidth: 1px; 15 | @shadowColor: @borderColor; 16 | 17 | /* Text */ 18 | @letterSpacing: 0.05em; 19 | @fontWeight: bold; 20 | @color: @darkTextColor; 21 | @textTransform: uppercase; 22 | 23 | /*------------------- 24 | Coupling 25 | --------------------*/ 26 | 27 | /* Icon */ 28 | @dividerIconSize: 1rem; 29 | @dividerIconMargin: 0rem; 30 | 31 | 32 | /******************************* 33 | Variations 34 | *******************************/ 35 | 36 | /* Horizontal / Vertical */ 37 | @horizontalMargin: ''; 38 | @horizontalDividerMargin: 1em; 39 | @horizontalRulerOffset: ~"calc(-50% - "(@horizontalDividerMargin)~")"; 40 | 41 | @verticalDividerMargin: 1rem; 42 | @verticalDividerHeight: ~"calc(100% - "(@verticalDividerMargin)~")"; 43 | 44 | /* Inverted */ 45 | @invertedTextColor: @white; 46 | @invertedHighlightColor: rgba(255, 255, 255, 0.15); 47 | @invertedShadowColor: @borderColor; 48 | 49 | /* Section */ 50 | @sectionMargin: 2rem; 51 | 52 | /* Sizes */ 53 | @medium: 1rem; -------------------------------------------------------------------------------- /hardwarecheckout/static/vendor/semantic/src/themes/default/elements/flag.variables: -------------------------------------------------------------------------------- 1 | /******************************* 2 | Flag 3 | *******************************/ 4 | 5 | /*------------------- 6 | Element 7 | --------------------*/ 8 | 9 | @spritePath: "@{imagePath}/flags.png"; 10 | @width: 16px; 11 | @height: 11px; 12 | @verticalAlign: baseline; 13 | @margin: 0.5em; -------------------------------------------------------------------------------- /hardwarecheckout/static/vendor/semantic/src/themes/default/elements/header.overrides: -------------------------------------------------------------------------------- 1 | /******************************* 2 | Theme Overrides 3 | *******************************/ 4 | 5 | -------------------------------------------------------------------------------- /hardwarecheckout/static/vendor/semantic/src/themes/default/elements/icon.variables: -------------------------------------------------------------------------------- 1 | /******************************* 2 | Icon 3 | *******************************/ 4 | 5 | /*------------------- 6 | Icon Variables 7 | --------------------*/ 8 | 9 | @fontName: 'icons'; 10 | @fallbackSRC: url("@{fontPath}/@{fontName}.eot"); 11 | @src: 12 | url("@{fontPath}/@{fontName}.eot?#iefix") format('embedded-opentype'), 13 | url("@{fontPath}/@{fontName}.woff2") format('woff2'), 14 | url("@{fontPath}/@{fontName}.woff") format('woff'), 15 | url("@{fontPath}/@{fontName}.ttf") format('truetype'), 16 | url("@{fontPath}/@{fontName}.svg#icons") format('svg') 17 | ; 18 | 19 | @opacity: 1; 20 | @width: @iconWidth; 21 | @height: 1em; 22 | @distanceFromText: 0.25rem; 23 | 24 | 25 | /* Variations */ 26 | 27 | @linkOpacity: 0.8; 28 | @linkDuration: 0.3s; 29 | @loadingDuration: 2s; 30 | 31 | @circularSize: 2em; 32 | @circularPadding: 0.5em 0.5em; 33 | @circularShadow: 0em 0em 0em 0.1em rgba(0, 0, 0, 0.1) inset; 34 | 35 | @borderedSize: 2em; 36 | @borderedVerticalPadding: ((@borderedSize - @height) / 2); 37 | @borderedHorizontalPadding: ((@borderedSize - @width) / 2); 38 | @borderedShadow: 0em 0em 0em 0.1em rgba(0, 0, 0, 0.1) inset; 39 | 40 | @cornerIconSize: 0.45em; 41 | @cornerIconStroke: 1px; 42 | @cornerIconShadow: 43 | -@cornerIconStroke -@cornerIconStroke 0 @white, 44 | @cornerIconStroke -@cornerIconStroke 0 @white, 45 | -@cornerIconStroke @cornerIconStroke 0 @white, 46 | @cornerIconStroke @cornerIconStroke 0 @white 47 | ; 48 | @cornerIconInvertedShadow: 49 | -@cornerIconStroke -@cornerIconStroke 0 @black, 50 | @cornerIconStroke -@cornerIconStroke 0 @black, 51 | -@cornerIconStroke @cornerIconStroke 0 @black, 52 | @cornerIconStroke @cornerIconStroke 0 @black 53 | ; 54 | 55 | @mini: 0.4em; 56 | @tiny: 0.5em; 57 | @small: 0.75em; 58 | @medium: 1em; 59 | @large: 1.5em; 60 | @big: 2em; 61 | @huge: 4em; 62 | @massive: 8em; 63 | -------------------------------------------------------------------------------- /hardwarecheckout/static/vendor/semantic/src/themes/default/elements/image.overrides: -------------------------------------------------------------------------------- 1 | /******************************* 2 | Theme Overrides 3 | *******************************/ 4 | -------------------------------------------------------------------------------- /hardwarecheckout/static/vendor/semantic/src/themes/default/elements/image.variables: -------------------------------------------------------------------------------- 1 | /******************************* 2 | Image 3 | *******************************/ 4 | 5 | /*------------------- 6 | Element 7 | --------------------*/ 8 | 9 | @placeholderColor: transparent; 10 | @roundedBorderRadius: 0.3125em; 11 | 12 | @imageHorizontalMargin: 0.25rem; 13 | @imageVerticalMargin: 0.5rem; 14 | @imageBorder: 1px solid rgba(0, 0, 0, 0.1); 15 | 16 | /*------------------- 17 | Types 18 | --------------------*/ 19 | 20 | /* Avatar */ 21 | @avatarSize: 2em; 22 | @avatarMargin: 0.25em; 23 | 24 | 25 | /*------------------- 26 | Variations 27 | --------------------*/ 28 | 29 | /* Spaced */ 30 | @spacedDistance: 0.5em; 31 | 32 | /* Floated */ 33 | @floatedHorizontalMargin: 1em; 34 | @floatedVerticalMargin: 1em; 35 | 36 | /* Size */ 37 | @miniWidth: 35px; 38 | @tinyWidth: 80px; 39 | @smallWidth: 150px; 40 | @mediumWidth: 300px; 41 | @largeWidth: 450px; 42 | @bigWidth: 600px; 43 | @hugeWidth: 800px; 44 | @massiveWidth: 960px; 45 | -------------------------------------------------------------------------------- /hardwarecheckout/static/vendor/semantic/src/themes/default/elements/input.overrides: -------------------------------------------------------------------------------- 1 | /******************************* 2 | Theme Overrides 3 | *******************************/ 4 | -------------------------------------------------------------------------------- /hardwarecheckout/static/vendor/semantic/src/themes/default/elements/label.overrides: -------------------------------------------------------------------------------- 1 | /******************************* 2 | Theme Overrides 3 | *******************************/ 4 | -------------------------------------------------------------------------------- /hardwarecheckout/static/vendor/semantic/src/themes/default/elements/list.overrides: -------------------------------------------------------------------------------- 1 | /******************************* 2 | Theme Overrides 3 | *******************************/ 4 | -------------------------------------------------------------------------------- /hardwarecheckout/static/vendor/semantic/src/themes/default/elements/loader.overrides: -------------------------------------------------------------------------------- 1 | /******************************* 2 | Theme Overrides 3 | *******************************/ 4 | -------------------------------------------------------------------------------- /hardwarecheckout/static/vendor/semantic/src/themes/default/elements/loader.variables: -------------------------------------------------------------------------------- 1 | /******************************* 2 | Loader 3 | *******************************/ 4 | 5 | /* Some global loader styles defined in site.variables */ 6 | // @loaderSpeed 7 | // @loaderLineWidth 8 | // @loaderFillColor 9 | // @loaderLineColor 10 | // @invertedLoaderFillColor 11 | // @invertedLoaderLineColor 12 | 13 | /*------------------- 14 | Standard 15 | --------------------*/ 16 | 17 | @loaderTopOffset: 50%; 18 | @loaderLeftOffset: 50%; 19 | 20 | @shapeBorderColor: @loaderLineColor transparent transparent; 21 | @invertedShapeBorderColor: @invertedLoaderLineColor transparent transparent; 22 | 23 | /*------------------- 24 | Types 25 | --------------------*/ 26 | 27 | /* Text */ 28 | @textDistance: @relativeMini; 29 | @loaderTextColor: @textColor; 30 | @invertedLoaderTextColor: @invertedTextColor; 31 | 32 | /*------------------- 33 | States 34 | --------------------*/ 35 | 36 | @indeterminateDirection: reverse; 37 | @indeterminateSpeed: (2 * @loaderSpeed); 38 | 39 | /*------------------- 40 | Variations 41 | --------------------*/ 42 | 43 | @inlineVerticalAlign: middle; 44 | @inlineMargin: 0em; 45 | 46 | /* Exact Sizes (Avoids Rounding Errors) */ 47 | @mini : @14px; 48 | @tiny : @16px; 49 | @small : @24px; 50 | @medium : @32px; 51 | @large : @48px; 52 | @big : @52px; 53 | @huge : @58px; 54 | @massive : @64px; 55 | 56 | @miniOffset: 0em 0em 0em -(@mini / 2); 57 | @tinyOffset: 0em 0em 0em -(@tiny / 2); 58 | @smallOffset: 0em 0em 0em -(@small / 2); 59 | @mediumOffset: 0em 0em 0em -(@medium / 2); 60 | @largeOffset: 0em 0em 0em -(@large / 2); 61 | @bigOffset: 0em 0em 0em -(@big / 2); 62 | @hugeOffset: 0em 0em 0em -(@huge / 2); 63 | @massiveOffset: 0em 0em 0em -(@massive / 2); 64 | 65 | @tinyFontSize: @relativeTiny; 66 | @miniFontSize: @relativeMini; 67 | @smallFontSize: @relativeSmall; 68 | @mediumFontSize: @relativeMedium; 69 | @largeFontSize: @relativeLarge; 70 | @bigFontSize: @relativeBig; 71 | @hugeFontSize: @relativeHuge; 72 | @massiveFontSize: @relativeMassive; 73 | -------------------------------------------------------------------------------- /hardwarecheckout/static/vendor/semantic/src/themes/default/elements/rail.overrides: -------------------------------------------------------------------------------- 1 | /******************************* 2 | Theme Overrides 3 | *******************************/ 4 | -------------------------------------------------------------------------------- /hardwarecheckout/static/vendor/semantic/src/themes/default/elements/rail.variables: -------------------------------------------------------------------------------- 1 | /******************************* 2 | Rail 3 | *******************************/ 4 | 5 | /*------------------- 6 | Element 7 | --------------------*/ 8 | 9 | @width: 300px; 10 | @height: 100%; 11 | 12 | @distance: 4rem; 13 | @splitDistance: (@distance / 2); 14 | 15 | /*------------------- 16 | Variations 17 | --------------------*/ 18 | 19 | /* Close */ 20 | @closeDistance: 2em; 21 | @veryCloseDistance: 1em; 22 | 23 | @splitCloseDistance: (@closeDistance / 2); 24 | @splitVeryCloseDistance: (@veryCloseDistance / 2); 25 | 26 | @closeWidth: ~"calc("@width~" + "@splitCloseDistance~")"; 27 | @veryCloseWidth: ~"calc("@width~" + "@splitVeryCloseDistance~")"; 28 | 29 | /* Dividing */ 30 | @dividingBorder: 1px solid @borderColor; 31 | @dividingDistance: 5rem; 32 | @splitDividingDistance: (@dividingDistance / 2); 33 | @dividingWidth: @width + @splitDividingDistance; 34 | 35 | -------------------------------------------------------------------------------- /hardwarecheckout/static/vendor/semantic/src/themes/default/elements/reveal.overrides: -------------------------------------------------------------------------------- 1 | /******************************* 2 | Theme Overrides 3 | *******************************/ 4 | -------------------------------------------------------------------------------- /hardwarecheckout/static/vendor/semantic/src/themes/default/elements/reveal.variables: -------------------------------------------------------------------------------- 1 | /******************************* 2 | Reveal 3 | *******************************/ 4 | 5 | @transitionDelay: 0.1s; 6 | @transitionDuration: 0.5s; 7 | @transitionEasing: cubic-bezier(0.175, 0.885, 0.320, 1); 8 | @transition: all @transitionDuration @defaultEasing @transitionDelay; 9 | 10 | @bottomZIndex: 2; 11 | @topZIndex: 3; 12 | @activeZIndex: 4; 13 | 14 | /* Types */ 15 | @rotateDegrees: 110deg; 16 | @moveTransition: transform @transitionDuration @transitionEasing @transitionDelay; 17 | @slideTransition: transform @transitionDuration @defaultEasing @transitionDelay; -------------------------------------------------------------------------------- /hardwarecheckout/static/vendor/semantic/src/themes/default/elements/segment.overrides: -------------------------------------------------------------------------------- 1 | /******************************* 2 | Theme Overrides 3 | *******************************/ 4 | -------------------------------------------------------------------------------- /hardwarecheckout/static/vendor/semantic/src/themes/default/globals/reset.variables: -------------------------------------------------------------------------------- 1 | /******************************* 2 | Reset 3 | *******************************/ -------------------------------------------------------------------------------- /hardwarecheckout/static/vendor/semantic/src/themes/default/globals/site.overrides: -------------------------------------------------------------------------------- 1 | /******************************* 2 | Global Overrides 3 | *******************************/ 4 | -------------------------------------------------------------------------------- /hardwarecheckout/static/vendor/semantic/src/themes/default/modules/chatroom.overrides: -------------------------------------------------------------------------------- 1 | /******************************* 2 | Theme Overrides 3 | *******************************/ 4 | -------------------------------------------------------------------------------- /hardwarecheckout/static/vendor/semantic/src/themes/default/modules/chatroom.variables: -------------------------------------------------------------------------------- 1 | /******************************* 2 | Chatroom 3 | *******************************/ -------------------------------------------------------------------------------- /hardwarecheckout/static/vendor/semantic/src/themes/default/modules/dimmer.overrides: -------------------------------------------------------------------------------- 1 | /******************************* 2 | Theme Overrides 3 | *******************************/ 4 | -------------------------------------------------------------------------------- /hardwarecheckout/static/vendor/semantic/src/themes/default/modules/dimmer.variables: -------------------------------------------------------------------------------- 1 | /******************************* 2 | Dimmer 3 | *******************************/ 4 | 5 | @dimmablePosition: relative; 6 | @dimmerPosition: absolute; 7 | 8 | @backgroundColor: rgba(0, 0, 0 , 0.85); 9 | @lineHeight: 1; 10 | @perspective: 2000px; 11 | 12 | @duration: 0.5s; 13 | @transition: 14 | background-color @duration linear 15 | ; 16 | @zIndex: 1000; 17 | @textAlign: center; 18 | @verticalAlign: middle; 19 | @textColor: @white; 20 | @overflow: hidden; 21 | 22 | @blurredStartFilter: ~"blur(0px) grayscale(0)"; 23 | @blurredEndFilter: ~"blur(5px) grayscale(0.7)"; 24 | @blurredTransition: 800ms filter @defaultEasing; 25 | 26 | @blurredBackgroundColor: rgba(0, 0, 0, 0.6); 27 | @blurredInvertedBackgroundColor: rgba(255, 255, 255, 0.6); 28 | 29 | /* Hidden (Default) */ 30 | @hiddenOpacity: 0; 31 | 32 | /* Content */ 33 | @contentDisplay: table; 34 | @contentChildDisplay: table-cell; 35 | 36 | /* Visible */ 37 | @visibleOpacity: 1; 38 | 39 | /*------------------- 40 | Types 41 | --------------------*/ 42 | 43 | /* Page Dimmer*/ 44 | @transformStyle: ''; 45 | @pageDimmerPosition: fixed; 46 | 47 | 48 | /*------------------- 49 | Variations 50 | --------------------*/ 51 | 52 | /* Inverted */ 53 | @invertedBackgroundColor: rgba(255, 255, 255, 0.85); 54 | @invertedTextColor: @textColor; 55 | 56 | /* Simple */ 57 | @simpleZIndex: 1; 58 | @simpleStartBackgroundColor: rgba(0, 0, 0, 0); 59 | @simpleEndBackgroundColor: @backgroundColor; 60 | @simpleInvertedStartBackgroundColor: rgba(255, 255, 255, 0); 61 | @simpleInvertedEndBackgroundColor: @invertedBackgroundColor; -------------------------------------------------------------------------------- /hardwarecheckout/static/vendor/semantic/src/themes/default/modules/embed.overrides: -------------------------------------------------------------------------------- 1 | /******************************* 2 | Video Overrides 3 | *******************************/ 4 | -------------------------------------------------------------------------------- /hardwarecheckout/static/vendor/semantic/src/themes/default/modules/embed.variables: -------------------------------------------------------------------------------- 1 | /******************************* 2 | Video 3 | *******************************/ 4 | 5 | /*------------------- 6 | Element 7 | --------------------*/ 8 | 9 | /* Simple */ 10 | @background: @lightGrey; 11 | @transitionDuration: 0.5s; 12 | @transitionEasing: @defaultEasing; 13 | 14 | /* Placeholder */ 15 | @placeholderUnderlay: @background; 16 | 17 | /* Placeholder Overlayed Background */ 18 | @placeholderBackground: radial-gradient(transparent 45%, rgba(0, 0, 0, 0.3)); 19 | @placeholderBackgroundOpacity: 0.5; 20 | @placeholderBackgroundTransition: opacity @transitionDuration @transitionEasing; 21 | 22 | /* Icon */ 23 | @iconBackground: @veryStrongTransparentBlack; 24 | @iconSize: 6rem; 25 | @iconTransition: 26 | opacity @transitionDuration @transitionEasing, 27 | color @transitionDuration @transitionEasing 28 | ; 29 | @iconColor: @white; 30 | @iconShadow: 31 | 0px 2px 10px rgba(34, 36, 38, 0.2) 32 | ; 33 | @iconZIndex: 10; 34 | 35 | /*------------------- 36 | States 37 | --------------------*/ 38 | 39 | /* Hover */ 40 | @hoverPlaceholderBackground: @placeholderBackground; 41 | @hoverPlaceholderBackgroundOpacity: 1; 42 | @hoverIconColor: @white; 43 | 44 | 45 | /*------------------- 46 | Variations 47 | --------------------*/ 48 | 49 | /* Aspect Ratios */ 50 | @squareRatio: (1/1) * 100%; 51 | @widescreenRatio: (9/16) * 100%; 52 | @ultraWidescreenRatio: (9/21) * 100%; 53 | @standardRatio: (3/4) * 100%; -------------------------------------------------------------------------------- /hardwarecheckout/static/vendor/semantic/src/themes/default/modules/modal.overrides: -------------------------------------------------------------------------------- 1 | /******************************* 2 | Theme Overrides 3 | *******************************/ 4 | -------------------------------------------------------------------------------- /hardwarecheckout/static/vendor/semantic/src/themes/default/modules/nag.overrides: -------------------------------------------------------------------------------- 1 | /******************************* 2 | Theme Overrides 3 | *******************************/ 4 | -------------------------------------------------------------------------------- /hardwarecheckout/static/vendor/semantic/src/themes/default/modules/nag.variables: -------------------------------------------------------------------------------- 1 | /******************************* 2 | Nag 3 | *******************************/ 4 | 5 | /*-------------- 6 | Collection 7 | ---------------*/ 8 | 9 | @position: relative; 10 | @width: 100%; 11 | @zIndex: 999; 12 | @margin: 0em; 13 | 14 | @background: #555555; 15 | @opacity: 0.95; 16 | @minHeight: 0em; 17 | @padding: 0.75em 1em; 18 | @lineHeight: 1em; 19 | @boxShadow: 0px 1px 2px 0px rgba(0, 0, 0, 0.2); 20 | 21 | @fontSize: 1rem; 22 | @textAlign: center; 23 | @color: @textColor; 24 | 25 | @transition: 0.2s background ease; 26 | 27 | 28 | /*-------------- 29 | Elements 30 | ---------------*/ 31 | 32 | /* Title */ 33 | @titleColor: @white; 34 | @titleMargin: 0em 0.5em; 35 | 36 | @closeSize: 1em; 37 | @closeMargin: (-@closeSize / 2) 0em 0em; 38 | @closeTop: 50%; 39 | @closeRight: 1em; 40 | @closeColor: @white; 41 | @closeTransition: opacity 0.2s ease; 42 | @closeOpacity: 0.4; 43 | 44 | 45 | /*-------------- 46 | States 47 | ---------------*/ 48 | 49 | /* Hover */ 50 | @nagHoverBackground: @background; 51 | @nagHoverOpacity: 1; 52 | 53 | @closeHoverOpacity: 1; 54 | 55 | /*-------------- 56 | Variations 57 | ---------------*/ 58 | 59 | /* Top / Bottom */ 60 | @top: 0em; 61 | @bottom: 0em; 62 | @borderRadius: @defaultBorderRadius; 63 | @topBorderRadius: 0em 0em @borderRadius @borderRadius; 64 | @bottomBorderRadius: @borderRadius @borderRadius 0em 0em; 65 | 66 | /* Inverted */ 67 | @invertedBackground: @darkWhite; 68 | 69 | /*-------------- 70 | Plural 71 | ---------------*/ 72 | 73 | @groupedBorderRadius: 0em; 74 | 75 | -------------------------------------------------------------------------------- /hardwarecheckout/static/vendor/semantic/src/themes/default/modules/popup.overrides: -------------------------------------------------------------------------------- 1 | /******************************* 2 | Theme Overrides 3 | *******************************/ 4 | -------------------------------------------------------------------------------- /hardwarecheckout/static/vendor/semantic/src/themes/default/modules/progress.overrides: -------------------------------------------------------------------------------- 1 | /******************************* 2 | Progress 3 | *******************************/ 4 | -------------------------------------------------------------------------------- /hardwarecheckout/static/vendor/semantic/src/themes/default/modules/search.overrides: -------------------------------------------------------------------------------- 1 | /******************************* 2 | Theme Overrides 3 | *******************************/ 4 | -------------------------------------------------------------------------------- /hardwarecheckout/static/vendor/semantic/src/themes/default/modules/shape.overrides: -------------------------------------------------------------------------------- 1 | /******************************* 2 | Theme Overrides 3 | *******************************/ 4 | -------------------------------------------------------------------------------- /hardwarecheckout/static/vendor/semantic/src/themes/default/modules/shape.variables: -------------------------------------------------------------------------------- 1 | /******************************* 2 | Shape 3 | *******************************/ 4 | 5 | @display: inline-block; 6 | 7 | /* Animating */ 8 | @perspective: 2000px; 9 | 10 | @duration: 0.6s; 11 | @easing: ease-in-out; 12 | 13 | @hiddenSideOpacity: 0.6; 14 | @animatingZIndex: 100; 15 | 16 | @transition: 17 | transform @duration @easing, 18 | left @duration @easing, 19 | width @duration @easing, 20 | height @duration @easing 21 | ; 22 | @sideTransition: opacity @duration @easing; 23 | @backfaceVisibility: hidden; 24 | 25 | /* Side */ 26 | @sideMargin: 0em; 27 | 28 | /*-------------- 29 | Types 30 | ---------------*/ 31 | 32 | /* Cube */ 33 | @cubeSize: 15em; 34 | @cubeBackground: #E6E6E6; 35 | @cubePadding: 2em; 36 | @cubeTextColor: @textColor; 37 | @cubeBoxShadow: 0px 0px 2px rgba(0, 0, 0, 0.3); 38 | 39 | @cubeTextAlign: center; 40 | @cubeFontSize: 2em; 41 | -------------------------------------------------------------------------------- /hardwarecheckout/static/vendor/semantic/src/themes/default/modules/sidebar.overrides: -------------------------------------------------------------------------------- 1 | /******************************* 2 | Theme Overrides 3 | *******************************/ 4 | -------------------------------------------------------------------------------- /hardwarecheckout/static/vendor/semantic/src/themes/default/modules/sidebar.variables: -------------------------------------------------------------------------------- 1 | /******************************* 2 | Sidebar 3 | *******************************/ 4 | 5 | /*------------------- 6 | Content 7 | --------------------*/ 8 | 9 | /* Animation */ 10 | @perspective: 1500px; 11 | @duration: 500ms; 12 | @easing: @defaultEasing; 13 | 14 | /* Dimmer */ 15 | @dimmerColor: rgba(0, 0, 0, 0.4); 16 | @dimmerTransition: opacity @duration; 17 | 18 | /* Color below page */ 19 | @canvasBackground: @lightBlack; 20 | 21 | /* Shadow */ 22 | @boxShadow: 0px 0px 20px @borderColor; 23 | @horizontalBoxShadow: @boxShadow; 24 | @verticalBoxShadow: @boxShadow; 25 | 26 | /* Layering */ 27 | @bottomLayer: 1; 28 | @middleLayer: 2; 29 | @fixedLayer: 101; 30 | @topLayer: 102; 31 | @dimmerLayer: 1000; 32 | 33 | /*------------------- 34 | Variations 35 | --------------------*/ 36 | 37 | /* Width */ 38 | @veryThinWidth: 60px; 39 | @thinWidth: 150px; 40 | @width: 260px; 41 | @wideWidth: 350px; 42 | @veryWideWidth: 475px; 43 | 44 | /* Height */ 45 | @height: 36px; 46 | -------------------------------------------------------------------------------- /hardwarecheckout/static/vendor/semantic/src/themes/default/modules/sticky.overrides: -------------------------------------------------------------------------------- 1 | /******************************* 2 | Theme Overrides 3 | *******************************/ 4 | -------------------------------------------------------------------------------- /hardwarecheckout/static/vendor/semantic/src/themes/default/modules/sticky.variables: -------------------------------------------------------------------------------- 1 | /******************************* 2 | Sticky 3 | *******************************/ 4 | 5 | @transitionDuration: @defaultDuration; 6 | @transition: none; 7 | @zIndex: 800; -------------------------------------------------------------------------------- /hardwarecheckout/static/vendor/semantic/src/themes/default/modules/tab.overrides: -------------------------------------------------------------------------------- 1 | /******************************* 2 | Tab Overrides 3 | *******************************/ 4 | -------------------------------------------------------------------------------- /hardwarecheckout/static/vendor/semantic/src/themes/default/modules/tab.variables: -------------------------------------------------------------------------------- 1 | /******************************* 2 | Tab 3 | *******************************/ 4 | 5 | /* Loading */ 6 | @loadingMinHeight: 250px; 7 | @loadingContentPosition: relative; 8 | @loadingContentOffset: -10000px; 9 | 10 | @loaderDistanceFromTop: 100px; 11 | @loaderSize: 2.5em; -------------------------------------------------------------------------------- /hardwarecheckout/static/vendor/semantic/src/themes/default/modules/transition.variables: -------------------------------------------------------------------------------- 1 | /******************************* 2 | Transition 3 | *******************************/ 4 | 5 | @transitionDefaultEasing: @defaultEasing; 6 | @transitionDefaultFill: both; 7 | @transitionDefaultDuration: 300ms; 8 | 9 | @use3DAcceleration: translateZ(0); 10 | @backfaceVisibility: hidden; -------------------------------------------------------------------------------- /hardwarecheckout/static/vendor/semantic/src/themes/default/views/ad.overrides: -------------------------------------------------------------------------------- 1 | /******************************* 2 | Theme Overrides 3 | *******************************/ 4 | -------------------------------------------------------------------------------- /hardwarecheckout/static/vendor/semantic/src/themes/default/views/ad.variables: -------------------------------------------------------------------------------- 1 | /******************************* 2 | Advertisement 3 | *******************************/ 4 | 5 | @margin: 1em 0em; 6 | @overflow: hidden; 7 | 8 | @testBackground: @lightBlack; 9 | @testColor: @white; 10 | @testFontWeight: bold; 11 | @testText: 'Ad'; 12 | @testFontSize: @relativeMedium; 13 | @testMobileFontSize: @relativeTiny; -------------------------------------------------------------------------------- /hardwarecheckout/static/vendor/semantic/src/themes/default/views/card.overrides: -------------------------------------------------------------------------------- 1 | /******************************* 2 | Theme Overrides 3 | *******************************/ 4 | -------------------------------------------------------------------------------- /hardwarecheckout/static/vendor/semantic/src/themes/default/views/comment.overrides: -------------------------------------------------------------------------------- 1 | /******************************* 2 | Theme Overrides 3 | *******************************/ 4 | -------------------------------------------------------------------------------- /hardwarecheckout/static/vendor/semantic/src/themes/default/views/feed.overrides: -------------------------------------------------------------------------------- 1 | /******************************* 2 | Theme Overrides 3 | *******************************/ 4 | -------------------------------------------------------------------------------- /hardwarecheckout/static/vendor/semantic/src/themes/default/views/item.overrides: -------------------------------------------------------------------------------- 1 | /******************************* 2 | Theme Overrides 3 | *******************************/ 4 | -------------------------------------------------------------------------------- /hardwarecheckout/static/vendor/semantic/src/themes/default/views/statistic.overrides: -------------------------------------------------------------------------------- 1 | /******************************* 2 | Theme Overrides 3 | *******************************/ 4 | -------------------------------------------------------------------------------- /hardwarecheckout/static/vendor/semantic/src/themes/default/views/statistic.variables: -------------------------------------------------------------------------------- 1 | /******************************* 2 | Statistic 3 | *******************************/ 4 | 5 | /*------------------- 6 | View 7 | --------------------*/ 8 | 9 | @margin: 1em 0em; 10 | @textAlign: center; 11 | @maxWidth: auto; 12 | 13 | /* Group */ 14 | @horizontalSpacing: 1.5em; 15 | @rowSpacing: 2em; 16 | @groupMargin: 1em -@horizontalSpacing -@rowSpacing; 17 | 18 | /* Group Element */ 19 | @elementMargin: 0em @horizontalSpacing @rowSpacing; 20 | @elementMaxWidth: @maxWidth; 21 | 22 | /*------------------- 23 | Content 24 | --------------------*/ 25 | 26 | /* Value */ 27 | @valueFont: @pageFont; 28 | @valueFontWeight: normal; 29 | @valueLineHeight: 1em; 30 | @valueColor: @black; 31 | @valueTextTransform: uppercase; 32 | 33 | /* Label */ 34 | @labelSize: @relativeMedium; 35 | @topLabelDistance: 0rem; 36 | @bottomLabelDistance: 0rem; 37 | @labelFont: @headerFont; 38 | @labelFontWeight: bold; 39 | @labelColor: @textColor; 40 | @labelLineHeight: @relativeLarge; 41 | @labelTextTransform: uppercase; 42 | 43 | /* Text */ 44 | @textValueLineHeight: 1em; 45 | @textValueMinHeight: 2em; 46 | @textValueFontWeight: bold; 47 | 48 | /* Label Image */ 49 | @imageHeight: 3rem; 50 | @imageVerticalAlign: baseline; 51 | 52 | /*------------------- 53 | Types 54 | --------------------*/ 55 | 56 | @horizontalGroupElementMargin: 1em 0em; 57 | @horizontalLabelDistance: 0.75em; 58 | 59 | /*------------------- 60 | Variations 61 | --------------------*/ 62 | 63 | /* Floated */ 64 | @leftFloatedMargin: 0em 2em 1em 0em; 65 | @rightFloatedMargin: 0em 0em 1em 2em; 66 | 67 | /* Inverted */ 68 | @invertedValueColor: @white; 69 | @invertedLabelColor: @invertedTextColor; 70 | 71 | /* Item Width */ 72 | @itemGroupMargin: 0em 0em -@rowSpacing; 73 | @itemMargin: 0em 0em @rowSpacing; 74 | 75 | /* Size */ 76 | @miniTextValueSize: 1rem; 77 | @miniValueSize: 1.5rem; 78 | @miniHorizontalValueSize: 1.5rem; 79 | 80 | @tinyTextValueSize: 1rem; 81 | @tinyValueSize: 2rem; 82 | @tinyHorizontalValueSize: 2rem; 83 | 84 | @smallTextValueSize: 1rem; 85 | @smallValueSize: 3rem; 86 | @smallHorizontalValueSize: 2rem; 87 | 88 | @textValueSize: 2rem; 89 | @valueSize: 4rem; 90 | @horizontalValueSize: 3rem; 91 | 92 | @largeTextValueSize: 2.5rem; 93 | @largeValueSize: 5rem; 94 | @largeHorizontalValueSize: 4rem; 95 | 96 | @hugeTextValueSize: 2.5rem; 97 | @hugeValueSize: 6rem; 98 | @hugeHorizontalValueSize: 5rem; -------------------------------------------------------------------------------- /hardwarecheckout/static/vendor/semantic/src/themes/hackmit/assets/fonts/icons.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/techx/cog/d6ef562d803bfc51ff3947d18a694c0f32cbb20a/hardwarecheckout/static/vendor/semantic/src/themes/hackmit/assets/fonts/icons.eot -------------------------------------------------------------------------------- /hardwarecheckout/static/vendor/semantic/src/themes/hackmit/assets/fonts/icons.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/techx/cog/d6ef562d803bfc51ff3947d18a694c0f32cbb20a/hardwarecheckout/static/vendor/semantic/src/themes/hackmit/assets/fonts/icons.ttf -------------------------------------------------------------------------------- /hardwarecheckout/static/vendor/semantic/src/themes/hackmit/assets/fonts/icons.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/techx/cog/d6ef562d803bfc51ff3947d18a694c0f32cbb20a/hardwarecheckout/static/vendor/semantic/src/themes/hackmit/assets/fonts/icons.woff -------------------------------------------------------------------------------- /hardwarecheckout/static/vendor/semantic/src/themes/hackmit/assets/fonts/icons.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/techx/cog/d6ef562d803bfc51ff3947d18a694c0f32cbb20a/hardwarecheckout/static/vendor/semantic/src/themes/hackmit/assets/fonts/icons.woff2 -------------------------------------------------------------------------------- /hardwarecheckout/static/vendor/semantic/src/themes/hackmit/assets/images/flags.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/techx/cog/d6ef562d803bfc51ff3947d18a694c0f32cbb20a/hardwarecheckout/static/vendor/semantic/src/themes/hackmit/assets/images/flags.png -------------------------------------------------------------------------------- /hardwarecheckout/static/vendor/semantic/src/themes/hackmit/collections/breadcrumb.overrides: -------------------------------------------------------------------------------- 1 | /******************************* 2 | Theme Overrides 3 | *******************************/ 4 | -------------------------------------------------------------------------------- /hardwarecheckout/static/vendor/semantic/src/themes/hackmit/collections/breadcrumb.variables: -------------------------------------------------------------------------------- 1 | /******************************* 2 | Breadcrumb 3 | *******************************/ 4 | 5 | /*------------------- 6 | Breadcrumb 7 | --------------------*/ 8 | 9 | @verticalMargin: 0em; 10 | @display: inline-block; 11 | @verticalAlign: middle; 12 | 13 | @dividerSpacing: @3px; 14 | @dividerOpacity: 0.7; 15 | @dividerColor: @lightTextColor; 16 | 17 | @dividerSize: @relativeSmall; 18 | @dividerVerticalAlign: baseline; 19 | 20 | @iconDividerSize: @relativeTiny; 21 | @iconDividerVerticalAlign: baseline; 22 | 23 | @sectionMargin: 0em; 24 | @sectionPadding: 0em; 25 | 26 | /* Coupling */ 27 | @segmentPadding: @relativeMini @relativeMedium; 28 | 29 | /*------------------- 30 | States 31 | --------------------*/ 32 | 33 | @activeFontWeight: bold; -------------------------------------------------------------------------------- /hardwarecheckout/static/vendor/semantic/src/themes/hackmit/collections/form.overrides: -------------------------------------------------------------------------------- 1 | /******************************* 2 | Overrides 3 | *******************************/ 4 | 5 | .ui.form input[type="text"], 6 | .ui.form input[type="email"], 7 | .ui.form input[type="date"], 8 | .ui.form input[type="password"], 9 | .ui.form input[type="number"], 10 | .ui.form input[type="url"], 11 | .ui.form input[type="tel"] { 12 | border-bottom: 1px solid #DDDDDD; 13 | } 14 | 15 | .ui.form .selection.dropdown { 16 | border: none; 17 | box-shadow: none !important; 18 | border-bottom: 1px solid #DDDDDD; 19 | border-radius: 0em !important; 20 | } 21 | .ui.form .selection.dropdown > .menu { 22 | border-top-width: 1px !important; 23 | border-radius: @defaultBorderRadius !important; 24 | } 25 | 26 | .ui.form .ui.icon.input > .icon { 27 | width: 1em; 28 | } -------------------------------------------------------------------------------- /hardwarecheckout/static/vendor/semantic/src/themes/hackmit/collections/form.variables: -------------------------------------------------------------------------------- 1 | /******************************* 2 | Form 3 | *******************************/ 4 | 5 | /*------------------- 6 | Elements 7 | --------------------*/ 8 | 9 | 10 | /* Text */ 11 | @paragraphMargin: 1em 0em; 12 | 13 | /* Field */ 14 | @fieldMargin: 0em 0em 1em; 15 | 16 | /* Form Label */ 17 | @labelFontSize: @relative11px; 18 | @labelTextTransform: uppercase; 19 | 20 | @groupedLabelTextTransform: none; 21 | 22 | /* Input */ 23 | @inputHorizontalPadding: 0.5em; 24 | @inputBackground: transparent; 25 | @inputBorder: none; 26 | @inputBorderRadius: 0em; 27 | @inputBoxShadow: none; 28 | @invertedInputColor: @invertedTextColor; 29 | 30 | @textAreaPadding: 1em; 31 | @textAreaBackground: transparent; 32 | @textAreaFocusBackground: #EEEEEE; 33 | @textAreaBorder: 1px solid #DDDDDD; 34 | 35 | /* Divider */ 36 | @dividerMargin: 1em 0em; 37 | 38 | /* Validation Prompt */ 39 | @validationMargin: 0em 0em 0em 1em; 40 | @validationArrowOffset: -0.3em; 41 | 42 | /*------------------- 43 | States 44 | --------------------*/ 45 | 46 | /* Disabled */ 47 | 48 | /* Focus */ 49 | @inputFocusPointerSize: 0px; 50 | @inputErrorPointerSize: 0px; 51 | 52 | /* Dropdown Error */ 53 | @dropdownErrorHoverBackground: #FFF2F2; 54 | @dropdownErrorActiveBackground: #FDCFCF; 55 | 56 | /* Focused Error */ 57 | @inputErrorFocusBackground: @negativeBackgroundColor; 58 | @inputErrorFocusColor: @negativeColorHover; 59 | @inputErrorFocusBorder: @negativeBorderColor; 60 | @inputErrorFocusBoxShadow: @inputErrorPointerSize 0em 0em 0em @negativeColorHover inset; 61 | 62 | /* Placeholder */ 63 | @inputPlaceholderColor: lighten(@inputColor, 55); 64 | @inputPlaceholderFocusColor: lighten(@inputColor, 35); 65 | @inputErrorPlaceholderColor: lighten(@formErrorColor, 10); 66 | @inputErrorPlaceholderFocusColor: lighten(@formErrorColor, 5); 67 | 68 | /* Loading */ 69 | @formLoaderDimmerColor: rgba(255, 255, 255, 0.6); 70 | @formLoaderPath: "@{imagePath}/loader-large.gif"; 71 | @formLoaderPosition: 50% 50%; 72 | 73 | /* (x) Wide Field */ 74 | @gutterWidth: 1.5em; 75 | -------------------------------------------------------------------------------- /hardwarecheckout/static/vendor/semantic/src/themes/hackmit/collections/grid.overrides: -------------------------------------------------------------------------------- 1 | /******************************* 2 | Theme Overrides 3 | *******************************/ 4 | 5 | -------------------------------------------------------------------------------- /hardwarecheckout/static/vendor/semantic/src/themes/hackmit/collections/menu.overrides: -------------------------------------------------------------------------------- 1 | /******************************* 2 | Theme Overrides 3 | *******************************/ 4 | -------------------------------------------------------------------------------- /hardwarecheckout/static/vendor/semantic/src/themes/hackmit/collections/message.overrides: -------------------------------------------------------------------------------- 1 | /******************************* 2 | Theme Overrides 3 | *******************************/ 4 | -------------------------------------------------------------------------------- /hardwarecheckout/static/vendor/semantic/src/themes/hackmit/collections/table.overrides: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/techx/cog/d6ef562d803bfc51ff3947d18a694c0f32cbb20a/hardwarecheckout/static/vendor/semantic/src/themes/hackmit/collections/table.overrides -------------------------------------------------------------------------------- /hardwarecheckout/static/vendor/semantic/src/themes/hackmit/elements/button.overrides: -------------------------------------------------------------------------------- 1 | /******************************* 2 | Theme Overrides 3 | *******************************/ 4 | -------------------------------------------------------------------------------- /hardwarecheckout/static/vendor/semantic/src/themes/hackmit/elements/container.overrides: -------------------------------------------------------------------------------- 1 | /******************************* 2 | Theme Overrides 3 | *******************************/ 4 | -------------------------------------------------------------------------------- /hardwarecheckout/static/vendor/semantic/src/themes/hackmit/elements/container.variables: -------------------------------------------------------------------------------- 1 | /******************************* 2 | Container 3 | *******************************/ 4 | 5 | /*------------------- 6 | Element 7 | --------------------*/ 8 | 9 | /* Minimum Gutter is used to determine the maximum container width for a given device */ 10 | 11 | @maxWidth: 100%; 12 | 13 | /* Devices */ 14 | @mobileMinimumGutter: 0em; 15 | @mobileWidth: auto; 16 | @mobileGutter: 1em; 17 | 18 | @tabletMinimumGutter: (@emSize * 1); 19 | @tabletWidth: @tabletBreakpoint - (@tabletMinimumGutter * 2) - @scrollbarWidth; 20 | @tabletGutter: auto; 21 | 22 | @computerMinimumGutter: (@emSize * 1.5); 23 | @computerWidth: @computerBreakpoint - (@computerMinimumGutter * 2) - @scrollbarWidth; 24 | @computerGutter: auto; 25 | 26 | @largeMonitorMinimumGutter: (@emSize * 2); 27 | @largeMonitorWidth: @largeMonitorBreakpoint - (@largeMonitorMinimumGutter * 2) - @scrollbarWidth; 28 | @largeMonitorGutter: auto; 29 | 30 | /* Coupling (Add Negative Margin to container size) */ 31 | @gridGutterWidth: 2rem; 32 | @relaxedGridGutterWidth: 3rem; 33 | @veryRelaxedGridGutterWidth: 5rem; 34 | 35 | @mobileGridWidth: @mobileWidth; 36 | @tabletGridWidth: ~"calc("@tabletWidth~" + "@gridGutterWidth~")"; 37 | @computerGridWidth: ~"calc("@computerWidth~" + "@gridGutterWidth~")"; 38 | @largeMonitorGridWidth: ~"calc("@largeMonitorWidth~" + "@gridGutterWidth~")"; 39 | 40 | @mobileRelaxedGridWidth: @mobileWidth; 41 | @tabletRelaxedGridWidth: ~"calc("@tabletWidth~" + "@relaxedGridGutterWidth~")"; 42 | @computerRelaxedGridWidth: ~"calc("@computerWidth~" + "@relaxedGridGutterWidth~")"; 43 | @largeMonitorRelaxedGridWidth: ~"calc("@largeMonitorWidth~" + "@relaxedGridGutterWidth~")"; 44 | 45 | @mobileVeryRelaxedGridWidth: @mobileWidth; 46 | @tabletVeryRelaxedGridWidth: ~"calc("@tabletWidth~" + "@veryRelaxedGridGutterWidth~")"; 47 | @computerVeryRelaxedGridWidth: ~"calc("@computerWidth~" + "@veryRelaxedGridGutterWidth~")"; 48 | @largeMonitorVeryRelaxedGridWidth: ~"calc("@largeMonitorWidth~" + "@veryRelaxedGridGutterWidth~")"; 49 | 50 | /*------------------- 51 | Types 52 | --------------------*/ 53 | 54 | /* Text */ 55 | @textWidth: 700px; 56 | @textFontFamily: @pageFont; 57 | @textLineHeight: 1.5; 58 | @textSize: @large; -------------------------------------------------------------------------------- /hardwarecheckout/static/vendor/semantic/src/themes/hackmit/elements/divider.variables: -------------------------------------------------------------------------------- 1 | /******************************* 2 | Divider 3 | *******************************/ 4 | 5 | /*------------------- 6 | Element 7 | --------------------*/ 8 | 9 | @margin: 1rem 0rem; 10 | 11 | @highlightWidth: 1px; 12 | @highlightColor: @whiteBorderColor; 13 | 14 | @shadowWidth: 1px; 15 | @shadowColor: @borderColor; 16 | 17 | /* Text */ 18 | @letterSpacing: 0.05em; 19 | @fontWeight: bold; 20 | @color: @darkTextColor; 21 | @textTransform: uppercase; 22 | 23 | /*------------------- 24 | Coupling 25 | --------------------*/ 26 | 27 | /* Icon */ 28 | @dividerIconSize: 1rem; 29 | @dividerIconMargin: 0rem; 30 | 31 | 32 | /******************************* 33 | Variations 34 | *******************************/ 35 | 36 | /* Horizontal / Vertical */ 37 | @horizontalMargin: ''; 38 | @horizontalDividerMargin: 1em; 39 | @horizontalRulerOffset: ~"calc(-50% - "(@horizontalDividerMargin)~")"; 40 | 41 | @verticalDividerMargin: 1rem; 42 | @verticalDividerHeight: ~"calc(100% - "(@verticalDividerMargin)~")"; 43 | 44 | /* Inverted */ 45 | @invertedTextColor: @white; 46 | @invertedHighlightColor: rgba(255, 255, 255, 0.15); 47 | @invertedShadowColor: @borderColor; 48 | 49 | /* Section */ 50 | @sectionMargin: 2rem; 51 | 52 | /* Sizes */ 53 | @medium: 1rem; -------------------------------------------------------------------------------- /hardwarecheckout/static/vendor/semantic/src/themes/hackmit/elements/flag.variables: -------------------------------------------------------------------------------- 1 | /******************************* 2 | Flag 3 | *******************************/ 4 | 5 | /*------------------- 6 | Element 7 | --------------------*/ 8 | 9 | @spritePath: "@{imagePath}/flags.png"; 10 | @width: 16px; 11 | @height: 11px; 12 | @verticalAlign: baseline; 13 | @margin: 0.5em; -------------------------------------------------------------------------------- /hardwarecheckout/static/vendor/semantic/src/themes/hackmit/elements/header.overrides: -------------------------------------------------------------------------------- 1 | /******************************* 2 | Theme Overrides 3 | *******************************/ 4 | 5 | -------------------------------------------------------------------------------- /hardwarecheckout/static/vendor/semantic/src/themes/hackmit/elements/icon.variables: -------------------------------------------------------------------------------- 1 | /******************************* 2 | Icon 3 | *******************************/ 4 | 5 | /*------------------- 6 | Icon Variables 7 | --------------------*/ 8 | 9 | @fontName: 'icons'; 10 | @fallbackSRC: url("@{fontPath}/@{fontName}.eot"); 11 | @src: 12 | url("@{fontPath}/@{fontName}.eot?#iefix") format('embedded-opentype'), 13 | url("@{fontPath}/@{fontName}.woff2") format('woff2'), 14 | url("@{fontPath}/@{fontName}.woff") format('woff'), 15 | url("@{fontPath}/@{fontName}.ttf") format('truetype'), 16 | url("@{fontPath}/@{fontName}.svg#icons") format('svg') 17 | ; 18 | 19 | @opacity: 1; 20 | @width: @iconWidth; 21 | @height: 1em; 22 | @distanceFromText: 0.25rem; 23 | 24 | 25 | /* Variations */ 26 | 27 | @linkOpacity: 0.8; 28 | @linkDuration: 0.3s; 29 | @loadingDuration: 2s; 30 | 31 | @circularSize: 2em; 32 | @circularPadding: 0.5em 0.5em; 33 | @circularShadow: 0em 0em 0em 0.1em rgba(0, 0, 0, 0.1) inset; 34 | 35 | @borderedSize: 2em; 36 | @borderedVerticalPadding: ((@borderedSize - @height) / 2); 37 | @borderedHorizontalPadding: ((@borderedSize - @width) / 2); 38 | @borderedShadow: 0em 0em 0em 0.1em rgba(0, 0, 0, 0.1) inset; 39 | 40 | @cornerIconSize: 0.45em; 41 | @cornerIconStroke: 1px; 42 | @cornerIconShadow: 43 | -@cornerIconStroke -@cornerIconStroke 0 @white, 44 | @cornerIconStroke -@cornerIconStroke 0 @white, 45 | -@cornerIconStroke @cornerIconStroke 0 @white, 46 | @cornerIconStroke @cornerIconStroke 0 @white 47 | ; 48 | @cornerIconInvertedShadow: 49 | -@cornerIconStroke -@cornerIconStroke 0 @black, 50 | @cornerIconStroke -@cornerIconStroke 0 @black, 51 | -@cornerIconStroke @cornerIconStroke 0 @black, 52 | @cornerIconStroke @cornerIconStroke 0 @black 53 | ; 54 | 55 | @mini: 0.4em; 56 | @tiny: 0.5em; 57 | @small: 0.75em; 58 | @medium: 1em; 59 | @large: 1.5em; 60 | @big: 2em; 61 | @huge: 4em; 62 | @massive: 8em; 63 | -------------------------------------------------------------------------------- /hardwarecheckout/static/vendor/semantic/src/themes/hackmit/elements/image.overrides: -------------------------------------------------------------------------------- 1 | /******************************* 2 | Theme Overrides 3 | *******************************/ 4 | -------------------------------------------------------------------------------- /hardwarecheckout/static/vendor/semantic/src/themes/hackmit/elements/image.variables: -------------------------------------------------------------------------------- 1 | /******************************* 2 | Image 3 | *******************************/ 4 | 5 | /*------------------- 6 | Element 7 | --------------------*/ 8 | 9 | @placeholderColor: transparent; 10 | @roundedBorderRadius: 0.3125em; 11 | 12 | @imageHorizontalMargin: 0.25rem; 13 | @imageVerticalMargin: 0.5rem; 14 | @imageBorder: 1px solid rgba(0, 0, 0, 0.1); 15 | 16 | /*------------------- 17 | Types 18 | --------------------*/ 19 | 20 | /* Avatar */ 21 | @avatarSize: 2em; 22 | @avatarMargin: 0.25em; 23 | 24 | 25 | /*------------------- 26 | Variations 27 | --------------------*/ 28 | 29 | /* Spaced */ 30 | @spacedDistance: 0.5em; 31 | 32 | /* Floated */ 33 | @floatedHorizontalMargin: 1em; 34 | @floatedVerticalMargin: 1em; 35 | 36 | /* Size */ 37 | @miniWidth: 35px; 38 | @tinyWidth: 80px; 39 | @smallWidth: 150px; 40 | @mediumWidth: 300px; 41 | @largeWidth: 450px; 42 | @bigWidth: 600px; 43 | @hugeWidth: 800px; 44 | @massiveWidth: 960px; 45 | -------------------------------------------------------------------------------- /hardwarecheckout/static/vendor/semantic/src/themes/hackmit/elements/input.overrides: -------------------------------------------------------------------------------- 1 | /******************************* 2 | Theme Overrides 3 | *******************************/ 4 | -------------------------------------------------------------------------------- /hardwarecheckout/static/vendor/semantic/src/themes/hackmit/elements/label.overrides: -------------------------------------------------------------------------------- 1 | /******************************* 2 | Theme Overrides 3 | *******************************/ 4 | -------------------------------------------------------------------------------- /hardwarecheckout/static/vendor/semantic/src/themes/hackmit/elements/list.overrides: -------------------------------------------------------------------------------- 1 | /******************************* 2 | Theme Overrides 3 | *******************************/ 4 | -------------------------------------------------------------------------------- /hardwarecheckout/static/vendor/semantic/src/themes/hackmit/elements/loader.overrides: -------------------------------------------------------------------------------- 1 | /******************************* 2 | Theme Overrides 3 | *******************************/ 4 | -------------------------------------------------------------------------------- /hardwarecheckout/static/vendor/semantic/src/themes/hackmit/elements/loader.variables: -------------------------------------------------------------------------------- 1 | /******************************* 2 | Loader 3 | *******************************/ 4 | 5 | /* Some global loader styles defined in site.variables */ 6 | // @loaderSpeed 7 | // @loaderLineWidth 8 | // @loaderFillColor 9 | // @loaderLineColor 10 | // @invertedLoaderFillColor 11 | // @invertedLoaderLineColor 12 | 13 | /*------------------- 14 | Standard 15 | --------------------*/ 16 | 17 | @loaderTopOffset: 50%; 18 | @loaderLeftOffset: 50%; 19 | 20 | @shapeBorderColor: @loaderLineColor transparent transparent; 21 | @invertedShapeBorderColor: @invertedLoaderLineColor transparent transparent; 22 | 23 | /*------------------- 24 | Types 25 | --------------------*/ 26 | 27 | /* Text */ 28 | @textDistance: @relativeMini; 29 | @loaderTextColor: @textColor; 30 | @invertedLoaderTextColor: @invertedTextColor; 31 | 32 | /*------------------- 33 | States 34 | --------------------*/ 35 | 36 | @indeterminateDirection: reverse; 37 | @indeterminateSpeed: (2 * @loaderSpeed); 38 | 39 | /*------------------- 40 | Variations 41 | --------------------*/ 42 | 43 | @inlineVerticalAlign: middle; 44 | @inlineMargin: 0em; 45 | 46 | /* Exact Sizes (Avoids Rounding Errors) */ 47 | @mini : @14px; 48 | @tiny : @16px; 49 | @small : @24px; 50 | @medium : @32px; 51 | @large : @48px; 52 | @big : @52px; 53 | @huge : @58px; 54 | @massive : @64px; 55 | 56 | @miniOffset: 0em 0em 0em -(@mini / 2); 57 | @tinyOffset: 0em 0em 0em -(@tiny / 2); 58 | @smallOffset: 0em 0em 0em -(@small / 2); 59 | @mediumOffset: 0em 0em 0em -(@medium / 2); 60 | @largeOffset: 0em 0em 0em -(@large / 2); 61 | @bigOffset: 0em 0em 0em -(@big / 2); 62 | @hugeOffset: 0em 0em 0em -(@huge / 2); 63 | @massiveOffset: 0em 0em 0em -(@massive / 2); 64 | 65 | @tinyFontSize: @relativeTiny; 66 | @miniFontSize: @relativeMini; 67 | @smallFontSize: @relativeSmall; 68 | @mediumFontSize: @relativeMedium; 69 | @largeFontSize: @relativeLarge; 70 | @bigFontSize: @relativeBig; 71 | @hugeFontSize: @relativeHuge; 72 | @massiveFontSize: @relativeMassive; 73 | -------------------------------------------------------------------------------- /hardwarecheckout/static/vendor/semantic/src/themes/hackmit/elements/rail.overrides: -------------------------------------------------------------------------------- 1 | /******************************* 2 | Theme Overrides 3 | *******************************/ 4 | -------------------------------------------------------------------------------- /hardwarecheckout/static/vendor/semantic/src/themes/hackmit/elements/rail.variables: -------------------------------------------------------------------------------- 1 | /******************************* 2 | Rail 3 | *******************************/ 4 | 5 | /*------------------- 6 | Element 7 | --------------------*/ 8 | 9 | @width: 300px; 10 | @height: 100%; 11 | 12 | @distance: 4rem; 13 | @splitDistance: (@distance / 2); 14 | 15 | /*------------------- 16 | Variations 17 | --------------------*/ 18 | 19 | /* Close */ 20 | @closeDistance: 2em; 21 | @veryCloseDistance: 1em; 22 | 23 | @splitCloseDistance: (@closeDistance / 2); 24 | @splitVeryCloseDistance: (@veryCloseDistance / 2); 25 | 26 | @closeWidth: ~"calc("@width~" + "@splitCloseDistance~")"; 27 | @veryCloseWidth: ~"calc("@width~" + "@splitVeryCloseDistance~")"; 28 | 29 | /* Dividing */ 30 | @dividingBorder: 1px solid @borderColor; 31 | @dividingDistance: 5rem; 32 | @splitDividingDistance: (@dividingDistance / 2); 33 | @dividingWidth: @width + @splitDividingDistance; 34 | 35 | -------------------------------------------------------------------------------- /hardwarecheckout/static/vendor/semantic/src/themes/hackmit/elements/reveal.overrides: -------------------------------------------------------------------------------- 1 | /******************************* 2 | Theme Overrides 3 | *******************************/ 4 | -------------------------------------------------------------------------------- /hardwarecheckout/static/vendor/semantic/src/themes/hackmit/elements/reveal.variables: -------------------------------------------------------------------------------- 1 | /******************************* 2 | Reveal 3 | *******************************/ 4 | 5 | @transitionDelay: 0.1s; 6 | @transitionDuration: 0.5s; 7 | @transitionEasing: cubic-bezier(0.175, 0.885, 0.320, 1); 8 | @transition: all @transitionDuration @defaultEasing @transitionDelay; 9 | 10 | @bottomZIndex: 2; 11 | @topZIndex: 3; 12 | @activeZIndex: 4; 13 | 14 | /* Types */ 15 | @rotateDegrees: 110deg; 16 | @moveTransition: transform @transitionDuration @transitionEasing @transitionDelay; 17 | @slideTransition: transform @transitionDuration @defaultEasing @transitionDelay; -------------------------------------------------------------------------------- /hardwarecheckout/static/vendor/semantic/src/themes/hackmit/elements/segment.overrides: -------------------------------------------------------------------------------- 1 | /******************************* 2 | Theme Overrides 3 | *******************************/ 4 | -------------------------------------------------------------------------------- /hardwarecheckout/static/vendor/semantic/src/themes/hackmit/globals/reset.variables: -------------------------------------------------------------------------------- 1 | /******************************* 2 | Reset 3 | *******************************/ -------------------------------------------------------------------------------- /hardwarecheckout/static/vendor/semantic/src/themes/hackmit/globals/site.overrides: -------------------------------------------------------------------------------- 1 | /******************************* 2 | Global Overrides 3 | *******************************/ 4 | -------------------------------------------------------------------------------- /hardwarecheckout/static/vendor/semantic/src/themes/hackmit/modules/chatroom.overrides: -------------------------------------------------------------------------------- 1 | /******************************* 2 | Theme Overrides 3 | *******************************/ 4 | -------------------------------------------------------------------------------- /hardwarecheckout/static/vendor/semantic/src/themes/hackmit/modules/chatroom.variables: -------------------------------------------------------------------------------- 1 | /******************************* 2 | Chatroom 3 | *******************************/ -------------------------------------------------------------------------------- /hardwarecheckout/static/vendor/semantic/src/themes/hackmit/modules/dimmer.overrides: -------------------------------------------------------------------------------- 1 | /******************************* 2 | Theme Overrides 3 | *******************************/ 4 | -------------------------------------------------------------------------------- /hardwarecheckout/static/vendor/semantic/src/themes/hackmit/modules/dimmer.variables: -------------------------------------------------------------------------------- 1 | /******************************* 2 | Dimmer 3 | *******************************/ 4 | 5 | @dimmablePosition: relative; 6 | @dimmerPosition: absolute; 7 | 8 | @backgroundColor: rgba(0, 0, 0 , 0.85); 9 | @lineHeight: 1; 10 | @perspective: 2000px; 11 | 12 | @duration: 0.5s; 13 | @transition: 14 | background-color @duration linear 15 | ; 16 | @zIndex: 1000; 17 | @textAlign: center; 18 | @verticalAlign: middle; 19 | @textColor: @white; 20 | @overflow: hidden; 21 | 22 | @blurredStartFilter: ~"blur(0px) grayscale(0)"; 23 | @blurredEndFilter: ~"blur(5px) grayscale(0.7)"; 24 | @blurredTransition: 800ms filter @defaultEasing; 25 | 26 | @blurredBackgroundColor: rgba(0, 0, 0, 0.6); 27 | @blurredInvertedBackgroundColor: rgba(255, 255, 255, 0.6); 28 | 29 | /* Hidden (Default) */ 30 | @hiddenOpacity: 0; 31 | 32 | /* Content */ 33 | @contentDisplay: table; 34 | @contentChildDisplay: table-cell; 35 | 36 | /* Visible */ 37 | @visibleOpacity: 1; 38 | 39 | /*------------------- 40 | Types 41 | --------------------*/ 42 | 43 | /* Page Dimmer*/ 44 | @transformStyle: ''; 45 | @pageDimmerPosition: fixed; 46 | 47 | 48 | /*------------------- 49 | Variations 50 | --------------------*/ 51 | 52 | /* Inverted */ 53 | @invertedBackgroundColor: rgba(255, 255, 255, 0.85); 54 | @invertedTextColor: @textColor; 55 | 56 | /* Simple */ 57 | @simpleZIndex: 1; 58 | @simpleStartBackgroundColor: rgba(0, 0, 0, 0); 59 | @simpleEndBackgroundColor: @backgroundColor; 60 | @simpleInvertedStartBackgroundColor: rgba(255, 255, 255, 0); 61 | @simpleInvertedEndBackgroundColor: @invertedBackgroundColor; -------------------------------------------------------------------------------- /hardwarecheckout/static/vendor/semantic/src/themes/hackmit/modules/embed.overrides: -------------------------------------------------------------------------------- 1 | /******************************* 2 | Video Overrides 3 | *******************************/ 4 | -------------------------------------------------------------------------------- /hardwarecheckout/static/vendor/semantic/src/themes/hackmit/modules/embed.variables: -------------------------------------------------------------------------------- 1 | /******************************* 2 | Video 3 | *******************************/ 4 | 5 | /*------------------- 6 | Element 7 | --------------------*/ 8 | 9 | /* Simple */ 10 | @background: @lightGrey; 11 | @transitionDuration: 0.5s; 12 | @transitionEasing: @defaultEasing; 13 | 14 | /* Placeholder */ 15 | @placeholderUnderlay: @background; 16 | 17 | /* Placeholder Overlayed Background */ 18 | @placeholderBackground: radial-gradient(transparent 45%, rgba(0, 0, 0, 0.3)); 19 | @placeholderBackgroundOpacity: 0.5; 20 | @placeholderBackgroundTransition: opacity @transitionDuration @transitionEasing; 21 | 22 | /* Icon */ 23 | @iconBackground: @veryStrongTransparentBlack; 24 | @iconSize: 6rem; 25 | @iconTransition: 26 | opacity @transitionDuration @transitionEasing, 27 | color @transitionDuration @transitionEasing 28 | ; 29 | @iconColor: @white; 30 | @iconShadow: 31 | 0px 2px 10px rgba(34, 36, 38, 0.2) 32 | ; 33 | @iconZIndex: 10; 34 | 35 | /*------------------- 36 | States 37 | --------------------*/ 38 | 39 | /* Hover */ 40 | @hoverPlaceholderBackground: @placeholderBackground; 41 | @hoverPlaceholderBackgroundOpacity: 1; 42 | @hoverIconColor: @white; 43 | 44 | 45 | /*------------------- 46 | Variations 47 | --------------------*/ 48 | 49 | /* Aspect Ratios */ 50 | @squareRatio: (1/1) * 100%; 51 | @widescreenRatio: (9/16) * 100%; 52 | @ultraWidescreenRatio: (9/21) * 100%; 53 | @standardRatio: (3/4) * 100%; -------------------------------------------------------------------------------- /hardwarecheckout/static/vendor/semantic/src/themes/hackmit/modules/modal.overrides: -------------------------------------------------------------------------------- 1 | /******************************* 2 | Theme Overrides 3 | *******************************/ 4 | -------------------------------------------------------------------------------- /hardwarecheckout/static/vendor/semantic/src/themes/hackmit/modules/nag.overrides: -------------------------------------------------------------------------------- 1 | /******************************* 2 | Theme Overrides 3 | *******************************/ 4 | -------------------------------------------------------------------------------- /hardwarecheckout/static/vendor/semantic/src/themes/hackmit/modules/nag.variables: -------------------------------------------------------------------------------- 1 | /******************************* 2 | Nag 3 | *******************************/ 4 | 5 | /*-------------- 6 | Collection 7 | ---------------*/ 8 | 9 | @position: relative; 10 | @width: 100%; 11 | @zIndex: 999; 12 | @margin: 0em; 13 | 14 | @background: #555555; 15 | @opacity: 0.95; 16 | @minHeight: 0em; 17 | @padding: 0.75em 1em; 18 | @lineHeight: 1em; 19 | @boxShadow: 0px 1px 2px 0px rgba(0, 0, 0, 0.2); 20 | 21 | @fontSize: 1rem; 22 | @textAlign: center; 23 | @color: @textColor; 24 | 25 | @transition: 0.2s background ease; 26 | 27 | 28 | /*-------------- 29 | Elements 30 | ---------------*/ 31 | 32 | /* Title */ 33 | @titleColor: @white; 34 | @titleMargin: 0em 0.5em; 35 | 36 | @closeSize: 1em; 37 | @closeMargin: (-@closeSize / 2) 0em 0em; 38 | @closeTop: 50%; 39 | @closeRight: 1em; 40 | @closeColor: @white; 41 | @closeTransition: opacity 0.2s ease; 42 | @closeOpacity: 0.4; 43 | 44 | 45 | /*-------------- 46 | States 47 | ---------------*/ 48 | 49 | /* Hover */ 50 | @nagHoverBackground: @background; 51 | @nagHoverOpacity: 1; 52 | 53 | @closeHoverOpacity: 1; 54 | 55 | /*-------------- 56 | Variations 57 | ---------------*/ 58 | 59 | /* Top / Bottom */ 60 | @top: 0em; 61 | @bottom: 0em; 62 | @borderRadius: @defaultBorderRadius; 63 | @topBorderRadius: 0em 0em @borderRadius @borderRadius; 64 | @bottomBorderRadius: @borderRadius @borderRadius 0em 0em; 65 | 66 | /* Inverted */ 67 | @invertedBackground: @darkWhite; 68 | 69 | /*-------------- 70 | Plural 71 | ---------------*/ 72 | 73 | @groupedBorderRadius: 0em; 74 | 75 | -------------------------------------------------------------------------------- /hardwarecheckout/static/vendor/semantic/src/themes/hackmit/modules/popup.overrides: -------------------------------------------------------------------------------- 1 | /******************************* 2 | Theme Overrides 3 | *******************************/ 4 | -------------------------------------------------------------------------------- /hardwarecheckout/static/vendor/semantic/src/themes/hackmit/modules/progress.overrides: -------------------------------------------------------------------------------- 1 | /******************************* 2 | Progress 3 | *******************************/ 4 | -------------------------------------------------------------------------------- /hardwarecheckout/static/vendor/semantic/src/themes/hackmit/modules/search.overrides: -------------------------------------------------------------------------------- 1 | /******************************* 2 | Theme Overrides 3 | *******************************/ 4 | -------------------------------------------------------------------------------- /hardwarecheckout/static/vendor/semantic/src/themes/hackmit/modules/shape.overrides: -------------------------------------------------------------------------------- 1 | /******************************* 2 | Theme Overrides 3 | *******************************/ 4 | -------------------------------------------------------------------------------- /hardwarecheckout/static/vendor/semantic/src/themes/hackmit/modules/shape.variables: -------------------------------------------------------------------------------- 1 | /******************************* 2 | Shape 3 | *******************************/ 4 | 5 | @display: inline-block; 6 | 7 | /* Animating */ 8 | @perspective: 2000px; 9 | 10 | @duration: 0.6s; 11 | @easing: ease-in-out; 12 | 13 | @hiddenSideOpacity: 0.6; 14 | @animatingZIndex: 100; 15 | 16 | @transition: 17 | transform @duration @easing, 18 | left @duration @easing, 19 | width @duration @easing, 20 | height @duration @easing 21 | ; 22 | @sideTransition: opacity @duration @easing; 23 | @backfaceVisibility: hidden; 24 | 25 | /* Side */ 26 | @sideMargin: 0em; 27 | 28 | /*-------------- 29 | Types 30 | ---------------*/ 31 | 32 | /* Cube */ 33 | @cubeSize: 15em; 34 | @cubeBackground: #E6E6E6; 35 | @cubePadding: 2em; 36 | @cubeTextColor: @textColor; 37 | @cubeBoxShadow: 0px 0px 2px rgba(0, 0, 0, 0.3); 38 | 39 | @cubeTextAlign: center; 40 | @cubeFontSize: 2em; 41 | -------------------------------------------------------------------------------- /hardwarecheckout/static/vendor/semantic/src/themes/hackmit/modules/sidebar.overrides: -------------------------------------------------------------------------------- 1 | /******************************* 2 | Theme Overrides 3 | *******************************/ 4 | -------------------------------------------------------------------------------- /hardwarecheckout/static/vendor/semantic/src/themes/hackmit/modules/sidebar.variables: -------------------------------------------------------------------------------- 1 | /******************************* 2 | Sidebar 3 | *******************************/ 4 | 5 | /*------------------- 6 | Content 7 | --------------------*/ 8 | 9 | /* Animation */ 10 | @perspective: 1500px; 11 | @duration: 500ms; 12 | @easing: @defaultEasing; 13 | 14 | /* Dimmer */ 15 | @dimmerColor: rgba(0, 0, 0, 0.4); 16 | @dimmerTransition: opacity @duration; 17 | 18 | /* Color below page */ 19 | @canvasBackground: @lightBlack; 20 | 21 | /* Shadow */ 22 | @boxShadow: 0px 0px 20px @borderColor; 23 | @horizontalBoxShadow: @boxShadow; 24 | @verticalBoxShadow: @boxShadow; 25 | 26 | /* Layering */ 27 | @bottomLayer: 1; 28 | @middleLayer: 2; 29 | @fixedLayer: 101; 30 | @topLayer: 102; 31 | @dimmerLayer: 1000; 32 | 33 | /*------------------- 34 | Variations 35 | --------------------*/ 36 | 37 | /* Width */ 38 | @veryThinWidth: 60px; 39 | @thinWidth: 150px; 40 | @width: 260px; 41 | @wideWidth: 350px; 42 | @veryWideWidth: 475px; 43 | 44 | /* Height */ 45 | @height: 36px; 46 | -------------------------------------------------------------------------------- /hardwarecheckout/static/vendor/semantic/src/themes/hackmit/modules/sticky.overrides: -------------------------------------------------------------------------------- 1 | /******************************* 2 | Theme Overrides 3 | *******************************/ 4 | -------------------------------------------------------------------------------- /hardwarecheckout/static/vendor/semantic/src/themes/hackmit/modules/sticky.variables: -------------------------------------------------------------------------------- 1 | /******************************* 2 | Sticky 3 | *******************************/ 4 | 5 | @transitionDuration: @defaultDuration; 6 | @transition: none; 7 | @zIndex: 800; -------------------------------------------------------------------------------- /hardwarecheckout/static/vendor/semantic/src/themes/hackmit/modules/tab.overrides: -------------------------------------------------------------------------------- 1 | /******************************* 2 | Tab Overrides 3 | *******************************/ 4 | -------------------------------------------------------------------------------- /hardwarecheckout/static/vendor/semantic/src/themes/hackmit/modules/tab.variables: -------------------------------------------------------------------------------- 1 | /******************************* 2 | Tab 3 | *******************************/ 4 | 5 | /* Loading */ 6 | @loadingMinHeight: 250px; 7 | @loadingContentPosition: relative; 8 | @loadingContentOffset: -10000px; 9 | 10 | @loaderDistanceFromTop: 100px; 11 | @loaderSize: 2.5em; -------------------------------------------------------------------------------- /hardwarecheckout/static/vendor/semantic/src/themes/hackmit/modules/transition.variables: -------------------------------------------------------------------------------- 1 | /******************************* 2 | Transition 3 | *******************************/ 4 | 5 | @transitionDefaultEasing: @defaultEasing; 6 | @transitionDefaultFill: both; 7 | @transitionDefaultDuration: 300ms; 8 | 9 | @use3DAcceleration: translateZ(0); 10 | @backfaceVisibility: hidden; -------------------------------------------------------------------------------- /hardwarecheckout/static/vendor/semantic/src/themes/hackmit/views/ad.overrides: -------------------------------------------------------------------------------- 1 | /******************************* 2 | Theme Overrides 3 | *******************************/ 4 | -------------------------------------------------------------------------------- /hardwarecheckout/static/vendor/semantic/src/themes/hackmit/views/ad.variables: -------------------------------------------------------------------------------- 1 | /******************************* 2 | Advertisement 3 | *******************************/ 4 | 5 | @margin: 1em 0em; 6 | @overflow: hidden; 7 | 8 | @testBackground: @lightBlack; 9 | @testColor: @white; 10 | @testFontWeight: bold; 11 | @testText: 'Ad'; 12 | @testFontSize: @relativeMedium; 13 | @testMobileFontSize: @relativeTiny; -------------------------------------------------------------------------------- /hardwarecheckout/static/vendor/semantic/src/themes/hackmit/views/card.overrides: -------------------------------------------------------------------------------- 1 | /******************************* 2 | Theme Overrides 3 | *******************************/ 4 | -------------------------------------------------------------------------------- /hardwarecheckout/static/vendor/semantic/src/themes/hackmit/views/comment.overrides: -------------------------------------------------------------------------------- 1 | /******************************* 2 | Theme Overrides 3 | *******************************/ 4 | -------------------------------------------------------------------------------- /hardwarecheckout/static/vendor/semantic/src/themes/hackmit/views/feed.overrides: -------------------------------------------------------------------------------- 1 | /******************************* 2 | Theme Overrides 3 | *******************************/ 4 | -------------------------------------------------------------------------------- /hardwarecheckout/static/vendor/semantic/src/themes/hackmit/views/item.overrides: -------------------------------------------------------------------------------- 1 | /******************************* 2 | Theme Overrides 3 | *******************************/ 4 | -------------------------------------------------------------------------------- /hardwarecheckout/static/vendor/semantic/src/themes/hackmit/views/statistic.overrides: -------------------------------------------------------------------------------- 1 | /******************************* 2 | Theme Overrides 3 | *******************************/ 4 | -------------------------------------------------------------------------------- /hardwarecheckout/static/vendor/semantic/src/themes/hackmit/views/statistic.variables: -------------------------------------------------------------------------------- 1 | /******************************* 2 | Statistic 3 | *******************************/ 4 | 5 | /*------------------- 6 | View 7 | --------------------*/ 8 | 9 | @margin: 1em 0em; 10 | @textAlign: center; 11 | @maxWidth: auto; 12 | 13 | /* Group */ 14 | @horizontalSpacing: 1.5em; 15 | @rowSpacing: 2em; 16 | @groupMargin: 1em -@horizontalSpacing -@rowSpacing; 17 | 18 | /* Group Element */ 19 | @elementMargin: 0em @horizontalSpacing @rowSpacing; 20 | @elementMaxWidth: @maxWidth; 21 | 22 | /*------------------- 23 | Content 24 | --------------------*/ 25 | 26 | /* Value */ 27 | @valueFont: @pageFont; 28 | @valueFontWeight: normal; 29 | @valueLineHeight: 1em; 30 | @valueColor: @black; 31 | @valueTextTransform: uppercase; 32 | 33 | /* Label */ 34 | @labelSize: @relativeMedium; 35 | @topLabelDistance: 0rem; 36 | @bottomLabelDistance: 0rem; 37 | @labelFont: @headerFont; 38 | @labelFontWeight: bold; 39 | @labelColor: @textColor; 40 | @labelLineHeight: @relativeLarge; 41 | @labelTextTransform: uppercase; 42 | 43 | /* Text */ 44 | @textValueLineHeight: 1em; 45 | @textValueMinHeight: 2em; 46 | @textValueFontWeight: bold; 47 | 48 | /* Label Image */ 49 | @imageHeight: 3rem; 50 | @imageVerticalAlign: baseline; 51 | 52 | /*------------------- 53 | Types 54 | --------------------*/ 55 | 56 | @horizontalGroupElementMargin: 1em 0em; 57 | @horizontalLabelDistance: 0.75em; 58 | 59 | /*------------------- 60 | Variations 61 | --------------------*/ 62 | 63 | /* Floated */ 64 | @leftFloatedMargin: 0em 2em 1em 0em; 65 | @rightFloatedMargin: 0em 0em 1em 2em; 66 | 67 | /* Inverted */ 68 | @invertedValueColor: @white; 69 | @invertedLabelColor: @invertedTextColor; 70 | 71 | /* Item Width */ 72 | @itemGroupMargin: 0em 0em -@rowSpacing; 73 | @itemMargin: 0em 0em @rowSpacing; 74 | 75 | /* Size */ 76 | @miniTextValueSize: 1rem; 77 | @miniValueSize: 1.5rem; 78 | @miniHorizontalValueSize: 1.5rem; 79 | 80 | @tinyTextValueSize: 1rem; 81 | @tinyValueSize: 2rem; 82 | @tinyHorizontalValueSize: 2rem; 83 | 84 | @smallTextValueSize: 1rem; 85 | @smallValueSize: 3rem; 86 | @smallHorizontalValueSize: 2rem; 87 | 88 | @textValueSize: 2rem; 89 | @valueSize: 4rem; 90 | @horizontalValueSize: 3rem; 91 | 92 | @largeTextValueSize: 2.5rem; 93 | @largeValueSize: 5rem; 94 | @largeHorizontalValueSize: 4rem; 95 | 96 | @hugeTextValueSize: 2.5rem; 97 | @hugeValueSize: 6rem; 98 | @hugeHorizontalValueSize: 5rem; -------------------------------------------------------------------------------- /hardwarecheckout/static/vendor/semantic/tasks/README.md: -------------------------------------------------------------------------------- 1 | ## Tasks 2 | 3 | * Watch - Compile only changed files from source 4 | * Build - Build all files from source 5 | * Version - Output version number 6 | * Install - Run Installer to Set-up Paths 7 | 8 | ## How to use 9 | 10 | These tasks can be imported into your own gulpfile allowing you to avoid using Semantic's build tools 11 | 12 | ```javascript 13 | var 14 | watch = require('path/to/semantic/tasks/watch') 15 | ; 16 | gulp.task('watch ui', watch); 17 | ``` 18 | -------------------------------------------------------------------------------- /hardwarecheckout/static/vendor/semantic/tasks/admin/publish.js: -------------------------------------------------------------------------------- 1 | /******************************* 2 | Release All 3 | *******************************/ 4 | 5 | /* 6 | This task update all SUI individual component repos with new versions of components 7 | 8 | * Commits changes from create components to GitHub and Tags 9 | 10 | */ 11 | 12 | var 13 | runSequence = require('run-sequence') 14 | ; 15 | 16 | /* Release All */ 17 | module.exports = function(callback) { 18 | 19 | runSequence( 20 | 'update distributions', // commit less/css versions to github 21 | 'update components', // commit components to github 22 | callback 23 | ); 24 | 25 | }; -------------------------------------------------------------------------------- /hardwarecheckout/static/vendor/semantic/tasks/admin/register.js: -------------------------------------------------------------------------------- 1 | /******************************* 2 | Register PM 3 | *******************************/ 4 | 5 | /* 6 | Task to register component repos with Package Managers 7 | * Registers component with bower 8 | * Registers component with NPM 9 | */ 10 | 11 | var 12 | // node dependencies 13 | process = require('child_process'), 14 | 15 | // config 16 | release = require('../config/admin/release'), 17 | 18 | // register components and distributions 19 | repos = release.distributions.concat(release.components), 20 | total = repos.length, 21 | index = -1, 22 | 23 | stream, 24 | stepRepo 25 | ; 26 | 27 | module.exports = function(callback) { 28 | 29 | console.log('Registering repos with package managers'); 30 | 31 | // Do Git commands synchronously per component, to avoid issues 32 | stepRepo = function() { 33 | index = index + 1; 34 | if(index >= total) { 35 | callback(); 36 | return; 37 | } 38 | var 39 | repo = repos[index].toLowerCase(), 40 | outputDirectory = release.outputRoot + repo + '/', 41 | exec = process.exec, 42 | execSettings = {cwd: outputDirectory}, 43 | updateNPM = 'npm publish' 44 | ; 45 | 46 | /* Register with NPM */ 47 | exec(updateNPM, execSettings, function(err, stdout, stderr) { 48 | console.log(err, stdout, stderr); 49 | stepRepo(); 50 | }); 51 | 52 | }; 53 | stepRepo(); 54 | }; 55 | 56 | -------------------------------------------------------------------------------- /hardwarecheckout/static/vendor/semantic/tasks/admin/release.js: -------------------------------------------------------------------------------- 1 | /******************************* 2 | Release 3 | *******************************/ 4 | 5 | /* 6 | This task update all SUI individual component repos with new versions of components 7 | 8 | * Initializes repositories with current versions 9 | * Creates local files at ../distributions/ with each repo for release 10 | 11 | */ 12 | 13 | var 14 | runSequence = require('run-sequence') 15 | ; 16 | 17 | /* Release All */ 18 | module.exports = function(callback) { 19 | 20 | runSequence( 21 | //'build', // build Semantic 22 | 'init distributions', // sync with current github version 23 | 'create distributions', // update each repo with changes from master repo 24 | 'init components', // sync with current github version 25 | 'create components', // update each repo 26 | callback 27 | ); 28 | 29 | }; -------------------------------------------------------------------------------- /hardwarecheckout/static/vendor/semantic/tasks/build.js: -------------------------------------------------------------------------------- 1 | /******************************* 2 | Build Task 3 | *******************************/ 4 | 5 | var 6 | // dependencies 7 | gulp = require('gulp-help')(require('gulp')), 8 | runSequence = require('run-sequence'), 9 | 10 | // config 11 | config = require('./config/user'), 12 | install = require('./config/project/install'), 13 | 14 | // task sequence 15 | tasks = [] 16 | ; 17 | 18 | 19 | // sub-tasks 20 | if(config.rtl) { 21 | require('./collections/rtl')(gulp); 22 | } 23 | require('./collections/build')(gulp); 24 | 25 | 26 | module.exports = function(callback) { 27 | 28 | console.info('Building Semantic'); 29 | 30 | if( !install.isSetup() ) { 31 | console.error('Cannot find semantic.json. Run "gulp install" to set-up Semantic'); 32 | return 1; 33 | } 34 | 35 | // check for right-to-left (RTL) language 36 | if(config.rtl === true || config.rtl === 'Yes') { 37 | gulp.start('build-rtl'); 38 | return; 39 | } 40 | 41 | if(config.rtl == 'both') { 42 | tasks.push('build-rtl'); 43 | } 44 | 45 | tasks.push('build-javascript'); 46 | tasks.push('build-css'); 47 | tasks.push('build-assets'); 48 | 49 | runSequence(tasks, callback); 50 | }; 51 | -------------------------------------------------------------------------------- /hardwarecheckout/static/vendor/semantic/tasks/build/assets.js: -------------------------------------------------------------------------------- 1 | /******************************* 2 | Build Task 3 | *******************************/ 4 | 5 | var 6 | gulp = require('gulp'), 7 | 8 | // gulp dependencies 9 | chmod = require('gulp-chmod'), 10 | gulpif = require('gulp-if'), 11 | 12 | // config 13 | config = require('../config/user'), 14 | tasks = require('../config/tasks'), 15 | 16 | // shorthand 17 | globs = config.globs, 18 | assets = config.paths.assets, 19 | output = config.paths.output, 20 | source = config.paths.source, 21 | 22 | log = tasks.log 23 | ; 24 | 25 | module.exports = function(callback) { 26 | 27 | console.info('Building assets'); 28 | 29 | // copy assets 30 | return gulp.src(source.themes + '/**/assets/**/*.*') 31 | .pipe(gulpif(config.hasPermission, chmod(config.permission))) 32 | .pipe(gulp.dest(output.themes)) 33 | ; 34 | 35 | }; -------------------------------------------------------------------------------- /hardwarecheckout/static/vendor/semantic/tasks/build/javascript.js: -------------------------------------------------------------------------------- 1 | /******************************* 2 | Build Task 3 | *******************************/ 4 | 5 | var 6 | gulp = require('gulp'), 7 | 8 | // node dependencies 9 | console = require('better-console'), 10 | fs = require('fs'), 11 | 12 | // gulp dependencies 13 | chmod = require('gulp-chmod'), 14 | flatten = require('gulp-flatten'), 15 | gulpif = require('gulp-if'), 16 | plumber = require('gulp-plumber'), 17 | print = require('gulp-print'), 18 | rename = require('gulp-rename'), 19 | replace = require('gulp-replace'), 20 | uglify = require('gulp-uglify'), 21 | 22 | // config 23 | config = require('../config/user'), 24 | tasks = require('../config/tasks'), 25 | install = require('../config/project/install'), 26 | 27 | // shorthand 28 | globs = config.globs, 29 | assets = config.paths.assets, 30 | output = config.paths.output, 31 | source = config.paths.source, 32 | 33 | banner = tasks.banner, 34 | comments = tasks.regExp.comments, 35 | log = tasks.log, 36 | settings = tasks.settings 37 | ; 38 | 39 | // add internal tasks (concat release) 40 | require('../collections/internal')(gulp); 41 | 42 | module.exports = function(callback) { 43 | 44 | var 45 | stream, 46 | compressedStream, 47 | uncompressedStream 48 | ; 49 | 50 | console.info('Building Javascript'); 51 | 52 | if( !install.isSetup() ) { 53 | console.error('Cannot build files. Run "gulp install" to set-up Semantic'); 54 | return; 55 | } 56 | 57 | // copy source javascript 58 | gulp.src(source.definitions + '/**/' + globs.components + '.js') 59 | .pipe(plumber()) 60 | .pipe(flatten()) 61 | .pipe(replace(comments.license.in, comments.license.out)) 62 | .pipe(gulp.dest(output.uncompressed)) 63 | .pipe(gulpif(config.hasPermission, chmod(config.permission))) 64 | .pipe(print(log.created)) 65 | .pipe(uglify(settings.uglify)) 66 | .pipe(rename(settings.rename.minJS)) 67 | .pipe(gulp.dest(output.compressed)) 68 | .pipe(gulpif(config.hasPermission, chmod(config.permission))) 69 | .pipe(print(log.created)) 70 | .on('end', function() { 71 | gulp.start('package compressed js'); 72 | gulp.start('package uncompressed js'); 73 | callback(); 74 | }) 75 | ; 76 | 77 | }; -------------------------------------------------------------------------------- /hardwarecheckout/static/vendor/semantic/tasks/check-install.js: -------------------------------------------------------------------------------- 1 | /******************************* 2 | Check Install 3 | *******************************/ 4 | 5 | var 6 | // node dependencies 7 | gulp = require('gulp'), 8 | fs = require('fs'), 9 | console = require('better-console'), 10 | install = require('./config/project/install') 11 | ; 12 | 13 | // export task 14 | module.exports = function() { 15 | 16 | setTimeout(function() { 17 | if( !install.isSetup() ) { 18 | console.log('Starting install...'); 19 | gulp.start('install'); 20 | return; 21 | } 22 | else { 23 | gulp.start('watch'); 24 | } 25 | }, 50); // Delay to allow console.clear to remove messages from check event 26 | 27 | 28 | }; -------------------------------------------------------------------------------- /hardwarecheckout/static/vendor/semantic/tasks/clean.js: -------------------------------------------------------------------------------- 1 | /******************************* 2 | Clean Task 3 | *******************************/ 4 | 5 | var 6 | del = require('del'), 7 | config = require('./config/user'), 8 | tasks = require('./config/tasks') 9 | ; 10 | 11 | // cleans distribution files 12 | module.exports = function(callback) { 13 | return del([config.paths.clean], tasks.settings.del, callback); 14 | }; -------------------------------------------------------------------------------- /hardwarecheckout/static/vendor/semantic/tasks/collections/README.md: -------------------------------------------------------------------------------- 1 | ## How to use 2 | 3 | These are collections of tasks that are imported together. 4 | 5 | To import them into gulp: 6 | ```javascript 7 | var 8 | gulp = require('gulp'), 9 | // modified to point to semantic folder 10 | install = require('tasks/collections/install') 11 | ; 12 | gulp = install(gulp); 13 | 14 | // tasks are now injected and ready to be used 15 | gulp.start('install'); 16 | ``` -------------------------------------------------------------------------------- /hardwarecheckout/static/vendor/semantic/tasks/collections/admin.js: -------------------------------------------------------------------------------- 1 | /******************************* 2 | Admin Task Collection 3 | *******************************/ 4 | 5 | /* 6 | This are tasks to be run by project maintainers 7 | - Creating Component Repos 8 | - Syncing with GitHub via APIs 9 | - Modifying package files 10 | */ 11 | 12 | /******************************* 13 | Tasks 14 | *******************************/ 15 | 16 | 17 | module.exports = function(gulp) { 18 | var 19 | // less/css distributions 20 | initComponents = require('../admin/components/init'), 21 | createComponents = require('../admin/components/create'), 22 | updateComponents = require('../admin/components/update'), 23 | 24 | // single component releases 25 | initDistributions = require('../admin/distributions/init'), 26 | createDistributions = require('../admin/distributions/create'), 27 | updateDistributions = require('../admin/distributions/update'), 28 | 29 | release = require('../admin/release'), 30 | publish = require('../admin/publish'), 31 | register = require('../admin/register') 32 | ; 33 | 34 | /* Release */ 35 | gulp.task('init distributions', 'Grabs each component from GitHub', initDistributions); 36 | gulp.task('create distributions', 'Updates files in each repo', createDistributions); 37 | gulp.task('init components', 'Grabs each component from GitHub', initComponents); 38 | gulp.task('create components', 'Updates files in each repo', createComponents); 39 | 40 | /* Publish */ 41 | gulp.task('update distributions', 'Commits component updates from create to GitHub', updateDistributions); 42 | gulp.task('update components', 'Commits component updates from create to GitHub', updateComponents); 43 | 44 | /* Tasks */ 45 | gulp.task('release', 'Stages changes in GitHub repos for all distributions', release); 46 | gulp.task('publish', 'Publishes all releases (components, package)', publish); 47 | gulp.task('register', 'Registers all packages with NPM', register); 48 | 49 | }; -------------------------------------------------------------------------------- /hardwarecheckout/static/vendor/semantic/tasks/collections/build.js: -------------------------------------------------------------------------------- 1 | /******************************* 2 | Define Sub-Tasks 3 | *******************************/ 4 | 5 | module.exports = function(gulp) { 6 | 7 | var 8 | // build sub-tasks 9 | buildJS = require('./../build/javascript'), 10 | buildCSS = require('./../build/css'), 11 | buildAssets = require('./../build/assets') 12 | ; 13 | 14 | // in case these tasks are undefined during import, less make sure these are available in scope 15 | gulp.task('build-javascript', 'Builds all javascript from source', buildJS); 16 | gulp.task('build-css', 'Builds all css from source', buildCSS); 17 | gulp.task('build-assets', 'Copies all assets from source', buildAssets); 18 | 19 | }; 20 | -------------------------------------------------------------------------------- /hardwarecheckout/static/vendor/semantic/tasks/collections/rtl.js: -------------------------------------------------------------------------------- 1 | /******************************* 2 | Define Sub-Tasks 3 | *******************************/ 4 | 5 | module.exports = function(gulp) { 6 | 7 | var 8 | // rtl 9 | buildRTL = require('./../rtl/build'), 10 | watchRTL = require('./../rtl/watch') 11 | ; 12 | 13 | gulp.task('watch-rtl', 'Build all files as RTL', watchRTL); 14 | gulp.task('build-rtl', 'Watch files as RTL ', buildRTL); 15 | 16 | }; 17 | -------------------------------------------------------------------------------- /hardwarecheckout/static/vendor/semantic/tasks/config/admin/github.js: -------------------------------------------------------------------------------- 1 | /******************************* 2 | GitHub Login 3 | *******************************/ 4 | /* 5 | Logs into GitHub using OAuth 6 | */ 7 | 8 | var 9 | fs = require('fs'), 10 | path = require('path'), 11 | githubAPI = require('github'), 12 | 13 | // stores oauth info for GitHub API 14 | oAuthConfig = path.join(__dirname, 'oauth.js'), 15 | oAuth = fs.existsSync(oAuthConfig) 16 | ? require(oAuthConfig) 17 | : false, 18 | github 19 | ; 20 | 21 | if(!oAuth) { 22 | console.error('Must add oauth token for GitHub in tasks/config/admin/oauth.js'); 23 | } 24 | 25 | github = new githubAPI({ 26 | version : '3.0.0', 27 | debug : true, 28 | protocol : 'https', 29 | timeout : 5000 30 | }); 31 | 32 | github.authenticate({ 33 | type: 'oauth', 34 | token: oAuth.token 35 | }); 36 | 37 | module.exports = github; 38 | -------------------------------------------------------------------------------- /hardwarecheckout/static/vendor/semantic/tasks/config/admin/oauth.example.js: -------------------------------------------------------------------------------- 1 | /* 2 | Used to import GitHub Auth Token 3 | To Automate GitHub Updates 4 | */ 5 | 6 | module.exports = { 7 | token : 'AN-OAUTH2-TOKEN', 8 | username : 'github-username', 9 | name : 'Your Name', 10 | email : 'user@email.com' 11 | }; -------------------------------------------------------------------------------- /hardwarecheckout/static/vendor/semantic/tasks/config/admin/templates/README.md: -------------------------------------------------------------------------------- 1 | # Semantic {Component} 2 | 3 | This repository contains pre-compiled {component} files using the default themes. This is intended for use in projects that do not need all the bells and whistles of Semantic UI, and want to keep file size to a minimum. 4 | 5 | For the latest changes please see the [Release Notes](https://github.com/Semantic-Org/UI-{Component}/blob/master/RELEASE-NOTES.md) 6 | 7 | **Special Note** 8 | An update in `2.0.8` has fixed an issue which may have prevented some single component modules from working correctly. Please see notes in [this pull request](https://github.com/Semantic-Org/Semantic-UI/pull/2816). 9 | 10 | If you're looking for the full version of Semantic including all components and build tools [check out the main project repository](https://github.com/Semantic-Org/Semantic-UI/tree/1.0) 11 | 12 | #### To install with Bower 13 | ``` 14 | bower install semantic-ui-{component} 15 | ``` 16 | 17 | #### To install with NPM 18 | ``` 19 | npm install semantic-ui-{component} 20 | ``` 21 | 22 | #### To install with Meteor 23 | ``` 24 | meteor add semantic:ui-{component} 25 | ``` 26 | 27 | 28 | ## Addendum 29 | 30 | This element's definitions (required class names, html structures) are available in the [UI Docs](http://www.semantic-ui.com) 31 | 32 | Please consider checking out [all the benefits to theming](http://www.learnsemantic.com/guide/expert.html) before using these stand-alone releases. 33 | -------------------------------------------------------------------------------- /hardwarecheckout/static/vendor/semantic/tasks/config/admin/templates/bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name" : "Component", 3 | "description" : "Component distribution", 4 | "homepage" : "http://www.semantic-ui.com", 5 | "author": { 6 | "name" : "Jack Lukic", 7 | "web" : "http://www.jacklukic.com" 8 | }, 9 | "ignore": [ 10 | "./index.js" 11 | ], 12 | "keywords": [ 13 | "semantic", 14 | "ui", 15 | "css3", 16 | "framework" 17 | ], 18 | "license" : [ 19 | "http://semantic-ui.mit-license.org/" 20 | ], 21 | "ignore": [ 22 | "docs", 23 | "node", 24 | "server", 25 | "spec", 26 | "src", 27 | "test" 28 | ] 29 | } 30 | -------------------------------------------------------------------------------- /hardwarecheckout/static/vendor/semantic/tasks/config/admin/templates/component-package.js: -------------------------------------------------------------------------------- 1 | 2 | Package.describe({ 3 | name : 'semantic:ui-{component}', 4 | summary : 'Semantic UI - {Component}: Single component release', 5 | version : '{version}', 6 | git : 'git://github.com/Semantic-Org/UI-{Component}.git', 7 | }); 8 | 9 | Package.onUse(function(api) { 10 | api.versionsFrom('1.0'); 11 | api.addFiles([ 12 | {files} 13 | ], 'client'); 14 | }); 15 | -------------------------------------------------------------------------------- /hardwarecheckout/static/vendor/semantic/tasks/config/admin/templates/composer.json: -------------------------------------------------------------------------------- 1 | { 2 | "name" : "semantic/ui", 3 | "description" : "Semantic empowers designers and developers by creating a shared vocabulary for UI.", 4 | "homepage" : "http://www.semantic-ui.com", 5 | "authors": [ 6 | { 7 | "name" : "Jack Lukic", 8 | "email": "jacklukic@gmail.com", 9 | "web" : "http://www.jacklukic.com", 10 | "role" : "Creator" 11 | } 12 | ], 13 | "keywords": [ 14 | "semantic", 15 | "ui", 16 | "css", 17 | "framework" 18 | ], 19 | "license" : "MIT" 20 | } -------------------------------------------------------------------------------- /hardwarecheckout/static/vendor/semantic/tasks/config/admin/templates/css-package.js: -------------------------------------------------------------------------------- 1 | var 2 | where = 'client' // Adds files only to the client 3 | ; 4 | 5 | Package.describe({ 6 | name : 'semantic:ui-css', 7 | summary : 'Semantic UI - CSS Release of Semantic UI', 8 | version : '{version}', 9 | git : 'git://github.com/Semantic-Org/Semantic-UI-CSS.git', 10 | }); 11 | 12 | Package.onUse(function(api) { 13 | 14 | api.versionsFrom('1.0'); 15 | 16 | api.use('jquery', 'client'); 17 | 18 | api.addFiles([ 19 | // icons 20 | 'themes/default/assets/fonts/icons.eot', 21 | 'themes/default/assets/fonts/icons.svg', 22 | 'themes/default/assets/fonts/icons.ttf', 23 | 'themes/default/assets/fonts/icons.woff', 24 | 'themes/default/assets/fonts/icons.woff2', 25 | 26 | // flags 27 | 'themes/default/assets/images/flags.png', 28 | 29 | // release 30 | 'semantic.css', 31 | 'semantic.js' 32 | ], 'client'); 33 | 34 | }); 35 | -------------------------------------------------------------------------------- /hardwarecheckout/static/vendor/semantic/tasks/config/admin/templates/less-package.js: -------------------------------------------------------------------------------- 1 | var 2 | where = 'client' // Adds files only to the client 3 | ; 4 | 5 | Package.describe({ 6 | name : 'semantic:ui', 7 | summary : 'Semantic UI - LESS Release of Semantic UI', 8 | version : '{version}', 9 | git : 'git://github.com/Semantic-Org/Semantic-UI-LESS.git', 10 | }); 11 | 12 | Package.onUse(function(api) { 13 | 14 | api.versionsFrom('1.0'); 15 | api.use('less', 'client'); 16 | 17 | api.addFiles([ 18 | {files} 19 | ], 'client'); 20 | 21 | }); 22 | -------------------------------------------------------------------------------- /hardwarecheckout/static/vendor/semantic/tasks/config/admin/templates/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "semantic", 3 | "version": "1.0.0", 4 | "title": "Semantic UI", 5 | "description": "Semantic empowers designers and developers by creating a shared vocabulary for UI.", 6 | "homepage": "http://www.semantic-ui.com", 7 | "author": "Jack Lukic ", 8 | "license": "MIT", 9 | "repository": { 10 | "type": "git", 11 | "url": "git://github.com/Semantic-Org/Semantic-UI.git" 12 | }, 13 | "bugs": { 14 | "url": "https://github.com/Semantic-Org/Semantic-UI/issues" 15 | }, 16 | "devDependencies": {} 17 | } 18 | -------------------------------------------------------------------------------- /hardwarecheckout/static/vendor/semantic/tasks/config/docs.js: -------------------------------------------------------------------------------- 1 | /******************************* 2 | Docs 3 | *******************************/ 4 | 5 | /* Paths used for "serve-docs" and "build-docs" tasks */ 6 | module.exports = { 7 | base: '', 8 | globs: { 9 | eco: '**/*.html.eco' 10 | }, 11 | paths: { 12 | clean: '../docs/out/dist/', 13 | source: { 14 | config : 'src/theme.config', 15 | definitions : 'src/definitions/', 16 | site : 'src/site/', 17 | themes : 'src/themes/' 18 | }, 19 | output: { 20 | examples : '../docs/out/examples/', 21 | less : '../docs/out/src/', 22 | metadata : '../docs/out/', 23 | packaged : '../docs/out/dist/', 24 | uncompressed : '../docs/out/dist/components/', 25 | compressed : '../docs/out/dist/components/', 26 | themes : '../docs/out/dist/themes/' 27 | }, 28 | template: { 29 | eco: '../docs/server/documents/' 30 | }, 31 | } 32 | }; 33 | -------------------------------------------------------------------------------- /hardwarecheckout/static/vendor/semantic/tasks/config/npm/gulpfile.js: -------------------------------------------------------------------------------- 1 | /******************************* 2 | Set-up 3 | *******************************/ 4 | 5 | var 6 | gulp = require('gulp-help')(require('gulp')), 7 | 8 | // read user config to know what task to load 9 | config = require('./tasks/config/user'), 10 | 11 | // watch changes 12 | watch = require('./tasks/watch'), 13 | 14 | // build all files 15 | build = require('./tasks/build'), 16 | buildJS = require('./tasks/build/javascript'), 17 | buildCSS = require('./tasks/build/css'), 18 | buildAssets = require('./tasks/build/assets'), 19 | 20 | // utility 21 | clean = require('./tasks/clean'), 22 | version = require('./tasks/version'), 23 | 24 | // docs tasks 25 | serveDocs = require('./tasks/docs/serve'), 26 | buildDocs = require('./tasks/docs/build'), 27 | 28 | // rtl 29 | buildRTL = require('./tasks/rtl/build'), 30 | watchRTL = require('./tasks/rtl/watch') 31 | ; 32 | 33 | 34 | /******************************* 35 | Tasks 36 | *******************************/ 37 | 38 | gulp.task('default', false, [ 39 | 'watch' 40 | ]); 41 | 42 | gulp.task('watch', 'Watch for site/theme changes', watch); 43 | 44 | gulp.task('build', 'Builds all files from source', build); 45 | gulp.task('build-javascript', 'Builds all javascript from source', buildJS); 46 | gulp.task('build-css', 'Builds all css from source', buildCSS); 47 | gulp.task('build-assets', 'Copies all assets from source', buildAssets); 48 | 49 | gulp.task('clean', 'Clean dist folder', clean); 50 | gulp.task('version', 'Displays current version of Semantic', version); 51 | 52 | /*-------------- 53 | Docs 54 | ---------------*/ 55 | 56 | /* 57 | Lets you serve files to a local documentation instance 58 | https://github.com/Semantic-Org/Semantic-UI-Docs/ 59 | */ 60 | 61 | gulp.task('serve-docs', 'Serve file changes to SUI Docs', serveDocs); 62 | gulp.task('build-docs', 'Build all files and add to SUI Docs', buildDocs); 63 | 64 | 65 | /*-------------- 66 | RTL 67 | ---------------*/ 68 | 69 | if(config.rtl) { 70 | gulp.task('watch-rtl', 'Watch files as RTL', watchRTL); 71 | gulp.task('build-rtl', 'Build all files as RTL', buildRTL); 72 | } 73 | -------------------------------------------------------------------------------- /hardwarecheckout/static/vendor/semantic/tasks/config/project/release.js: -------------------------------------------------------------------------------- 1 | /******************************* 2 | Release Config 3 | *******************************/ 4 | 5 | var 6 | requireDotFile = require('require-dot-file'), 7 | config, 8 | npmPackage, 9 | version 10 | ; 11 | 12 | 13 | /******************************* 14 | Derived Values 15 | *******************************/ 16 | 17 | try { 18 | config = requireDotFile('semantic.json'); 19 | } 20 | catch(error) {} 21 | 22 | 23 | try { 24 | npmPackage = require('../../../package.json'); 25 | } 26 | catch(error) { 27 | // generate fake package 28 | npmPackage = { 29 | name: 'Unknown', 30 | version: 'x.x' 31 | }; 32 | } 33 | 34 | // looks for version in config or package.json (whichever is available) 35 | version = (npmPackage && npmPackage.version !== undefined && npmPackage.name == 'semantic-ui') 36 | ? npmPackage.version 37 | : config.version 38 | ; 39 | 40 | 41 | /******************************* 42 | Export 43 | *******************************/ 44 | 45 | module.exports = { 46 | 47 | title : 'Semantic UI', 48 | repository : 'https://github.com/Semantic-Org/Semantic-UI', 49 | url : 'http://www.semantic-ui.com/', 50 | 51 | banner: '' 52 | + ' /*' + '\n' 53 | + ' * # <%= title %> - <%= version %>' + '\n' 54 | + ' * <%= repository %>' + '\n' 55 | + ' * <%= url %>' + '\n' 56 | + ' *' + '\n' 57 | + ' * Copyright 2014 Contributors' + '\n' 58 | + ' * Released under the MIT license' + '\n' 59 | + ' * http://opensource.org/licenses/MIT' + '\n' 60 | + ' *' + '\n' 61 | + ' */' + '\n', 62 | 63 | version : version 64 | 65 | }; 66 | -------------------------------------------------------------------------------- /hardwarecheckout/static/vendor/semantic/tasks/config/user.js: -------------------------------------------------------------------------------- 1 | /******************************* 2 | Set-up 3 | *******************************/ 4 | 5 | var 6 | // npm dependencies 7 | extend = require('extend'), 8 | fs = require('fs'), 9 | path = require('path'), 10 | requireDotFile = require('require-dot-file'), 11 | 12 | // semantic.json defaults 13 | defaults = require('./defaults'), 14 | config = require('./project/config'), 15 | 16 | // Final config object 17 | gulpConfig = {}, 18 | 19 | // semantic.json settings 20 | userConfig 21 | 22 | ; 23 | 24 | 25 | /******************************* 26 | User Config 27 | *******************************/ 28 | 29 | try { 30 | // looks for config file across all parent directories 31 | userConfig = requireDotFile('semantic.json'); 32 | } 33 | catch(error) { 34 | if(error.code === 'MODULE_NOT_FOUND') { 35 | console.error('No semantic.json config found'); 36 | } 37 | } 38 | 39 | // extend user config with defaults 40 | gulpConfig = (!userConfig) 41 | ? extend(true, {}, defaults) 42 | : extend(false, {}, defaults, userConfig) 43 | ; 44 | 45 | /******************************* 46 | Add Derived Values 47 | *******************************/ 48 | 49 | // adds calculated values 50 | config.addDerivedValues(gulpConfig); 51 | 52 | 53 | /******************************* 54 | Export 55 | *******************************/ 56 | 57 | module.exports = gulpConfig; 58 | 59 | -------------------------------------------------------------------------------- /hardwarecheckout/static/vendor/semantic/tasks/version.js: -------------------------------------------------------------------------------- 1 | /******************************* 2 | Version Task 3 | *******************************/ 4 | 5 | var 6 | release = require('./config/project/release') 7 | ; 8 | 9 | module.exports = function(callback) { 10 | console.log(release.title + ' ' + release.version); 11 | }; -------------------------------------------------------------------------------- /hardwarecheckout/templates/includes/macros/confirmation.html: -------------------------------------------------------------------------------- 1 | {% macro confirmation(id, header, message, action, data_id, button_class) -%} 2 | 21 | {%- endmacro %} 22 | -------------------------------------------------------------------------------- /hardwarecheckout/templates/includes/macros/items.html: -------------------------------------------------------------------------------- 1 | {% macro items_list(items, table_id=1, editable=True, admin=False) -%} 2 | 3 | {% for item in items %} 4 | 5 | 15 | {% if item.user %} 16 | 17 | {% else %} 18 | 19 | {% endif %} 20 | 35 | 36 | {% endfor %} 37 |
6 | {% if admin %} 7 | 9 | {{ item.item_id }} 10 | 11 | {% else %} 12 | {{ item.item_id }} 13 | {% endif %} 14 | {{ item.user.name }} Available! 21 | {% if admin %} 22 | {% if item.user %} 23 | 26 | Return 27 | {% else %} 28 | 31 | Delete 32 | {% endif %} 33 | {% endif %} 34 |
38 |
39 | 40 |
41 | {%- endmacro %} 42 | 43 | 44 | {{ items_list(items) }} -------------------------------------------------------------------------------- /hardwarecheckout/templates/includes/nav.html: -------------------------------------------------------------------------------- 1 | {% extends "includes/wrapper.html" %} 2 | {% block head %} 3 | {% endblock %} 4 | {% block content %} 5 | 18 | 19 |
20 |

{% block title %}{% endblock %}

21 | {% block panel %} 22 | {% endblock %} 23 |
24 | 25 | {% endblock %} 26 | 27 | {% block end %} 28 | {% block script %} 29 | {% endblock %} 30 | {% endblock %} 31 | 32 | -------------------------------------------------------------------------------- /hardwarecheckout/templates/includes/wrapper.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | {% block title %}{% endblock %} · {{ config['APP_NAME'] }} 21 | {% block head %} 22 | {% endblock %} 23 | 24 | 25 |
26 | {% block content %} 27 | {% endblock %} 28 |
29 | 30 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | {% block end %} 43 | {% endblock %} 44 | 45 | 46 | 47 | -------------------------------------------------------------------------------- /hardwarecheckout/templates/pages/admin.html: -------------------------------------------------------------------------------- 1 | {% extends "includes/nav.html" %} 2 | {% block title %} Admin {% endblock %} 3 | 4 | {% from 'includes/macros/display_requests.html' import display_requests %} 5 | 6 | {% block panel %} 7 | 8 |

Approved Requests

9 |
10 | {{ display_requests(approved_requests, RequestStatus, user.is_admin) }} 11 |
12 | 13 |

Pending Requests

14 |
15 | {{ display_requests(submitted_requests, RequestStatus, user.is_admin) }} 16 |
17 | 18 | {% if lottery_items %} 19 | 20 | 21 | 22 | 25 | 28 | 29 | 30 | {% for item in lottery_items %} 31 | 32 | 46 | 50 | 51 | {% endfor %} 52 |
23 |

Lotteries

24 |
26 |
Run All
27 |
33 |
34 |

{{ item.name }}

35 | Quantity: 36 | 37 | {{ item.quantity }} 38 | , 39 | Proposals: 40 | 43 | (view) 44 |
45 |
47 |
Run Lottery
49 |
53 | {% endif %} 54 | 55 | {% endblock %} 56 | 57 | {% block script %} 58 | 59 | 60 | {% endblock %} -------------------------------------------------------------------------------- /hardwarecheckout/templates/pages/login.html: -------------------------------------------------------------------------------- 1 | {% extends "includes/wrapper.html" %} 2 | {% block title %} Login {% endblock %} 3 | 4 | {% block content %} 5 |
6 |
7 |

{{ config["HACKATHON_NAME"] }} Hardware

8 | Please login using your {{ config["QUILL_URL_READABLE"] }} credentials 9 |
10 |
11 | 12 | 13 |
14 |
15 | 16 | 17 |
18 | 19 |
20 | {% if error %} 21 |
Login Errors: 22 | {% for item in error %} 23 |
{{item}}
24 | {% endfor %} 25 |
26 | {% endif %} 27 |
28 |
29 | {% endblock %} 30 | 31 | -------------------------------------------------------------------------------- /hardwarecheckout/templates/pages/user.html: -------------------------------------------------------------------------------- 1 | {% extends "includes/nav.html" %} 2 | 3 | {% block title %} {{ target.email }} {% endblock %} 4 | {% block panel %} 5 | 6 | {% from 'includes/macros/display_item.html' import display_item %} 7 | {% from 'includes/macros/display_requests.html' import display_requests %} 8 | {% from 'includes/macros/items.html' import items_list %} 9 | 10 | {% if (not isme) and (not user.is_admin) %} 11 |
Forbidden.
12 | {% else %} 13 | 14 | {% if not isme %} 15 | {% if target.have_their_id %} 16 | ID Collected 17 | {% else %} 18 | No ID Collected 19 | {% endif %} 20 | {% endif %} 21 | 22 |

Info

23 |
24 |
25 |
26 | 27 |
28 |
29 | 30 |
31 |
32 | 33 |
34 |
35 | 38 |
39 |
40 |
41 |
42 | 43 | {% if target.items %} 44 |

Checked out

45 | {{ items_list(target.items, admin=user.is_admin) }} 46 | {% else %} 47 |
User has no items checked out!
48 | {% endif %} 49 | 50 | 51 |

Requests

52 | {{ display_requests(requests, RequestStatus, user.is_admin) }} 53 | 54 | {% endif %} 55 | {% endblock %} 56 | 57 | {% block script %} 58 | 59 | {% endblock %} -------------------------------------------------------------------------------- /hardwarecheckout/templates/pages/users.html: -------------------------------------------------------------------------------- 1 | {% extends "includes/nav.html" %} 2 | 3 | {% from 'includes/macros/display_users.html' import display_users %} 4 | 5 | {% block title %} Users {% endblock %} 6 | 7 | {% block panel %} 8 | {{ display_users(users) }} 9 | {% endblock %} 10 | 11 | {% block script %} 12 | 13 | 14 | {% endblock %} 15 | 16 | -------------------------------------------------------------------------------- /initialize.py: -------------------------------------------------------------------------------- 1 | if __name__ == '__main__': 2 | from hardwarecheckout.models import db 3 | db.reflect() 4 | db.drop_all() 5 | db.create_all() 6 | -------------------------------------------------------------------------------- /media/cog.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/techx/cog/d6ef562d803bfc51ff3947d18a694c0f32cbb20a/media/cog.png -------------------------------------------------------------------------------- /requirements.txt: -------------------------------------------------------------------------------- 1 | astroid==1.5.3 2 | Babel==2.4.0 3 | backports.functools-lru-cache==1.4 4 | beautifulsoup4==4.6.0 5 | blinker==1.4 6 | bs4==0.0.1 7 | certifi==2017.4.17 8 | cffi==1.10.0 9 | chardet==3.0.4 10 | click==6.7 11 | configparser==3.5.0 12 | cryptography==1.7.2 13 | decorator==4.1.2 14 | ecdsa==0.13 15 | enum34==1.1.6 16 | eventlet 17 | Flask==0.12.2 18 | Flask-Admin==1.5.0 19 | Flask-Markdown==0.3 20 | Flask-SocketIO==2.9.1 21 | Flask-SQLAlchemy==2.2 22 | Flask-SSLify==0.1.5 23 | future==0.16.0 24 | gevent==1.2.2 25 | gevent-websocket==0.10.1 26 | greenlet==0.4.12 27 | gunicorn==19.7.1 28 | idna==2.5 29 | infinity==1.4 30 | intervals==0.8.0 31 | ipaddress==1.0.18 32 | isort==4.2.15 33 | itsdangerous==0.24 34 | Jinja2==2.9.6 35 | lazy-object-proxy==1.3.1 36 | Markdown==2.6.9 37 | MarkupSafe==1.0 38 | mccabe==0.6.1 39 | phonenumbers==8.8.1 40 | psycopg2==2.7.1 41 | py==1.4.34 42 | pyasn1==0.2.3 43 | pycodestyle==2.3.1 44 | pycparser==2.18 45 | pycrypto==2.6.1 46 | pytest==3.2.3 47 | python-engineio==1.7.0 48 | python-jose==1.3.2 49 | python-socketio==1.8.0 50 | pytz==2017.2 51 | requests==2.18.1 52 | singledispatch==3.4.0.3 53 | six==1.10.0 54 | SQLAlchemy==1.1.11 55 | SQLAlchemy-Utils==0.32.16 56 | typing==3.5.3.0 57 | urllib3==1.21.1 58 | validators==0.12.0 59 | Werkzeug==0.12.2 60 | wrapt==1.10.11 61 | WTForms==2.0 62 | WTForms-Alchemy==0.15.0 63 | WTForms-Components==0.10.3 64 | -------------------------------------------------------------------------------- /runserver.py: -------------------------------------------------------------------------------- 1 | from hardwarecheckout import app, socketio 2 | import sys 3 | 4 | if __name__ == '__main__': 5 | try: 6 | port = int(sys.argv[1]) 7 | except (IndexError, ValueError): 8 | port = 5000 9 | socketio.run(app, host='0.0.0.0', port=port) 10 | -------------------------------------------------------------------------------- /runtime.txt: -------------------------------------------------------------------------------- 1 | python-2.7.14 2 | -------------------------------------------------------------------------------- /semantic.json: -------------------------------------------------------------------------------- 1 | { 2 | "base": "hardwarecheckout/static/vendor/semantic/", 3 | "paths": { 4 | "source": { 5 | "config": "src/theme.config", 6 | "definitions": "src/definitions/", 7 | "site": "src/site/", 8 | "themes": "src/themes/" 9 | }, 10 | "output": { 11 | "packaged": "dist/", 12 | "uncompressed": "dist/components/", 13 | "compressed": "dist/components/", 14 | "themes": "dist/themes/" 15 | }, 16 | "clean": "dist/" 17 | }, 18 | "permission": 744, 19 | "autoInstall": false, 20 | "rtl": false, 21 | "components": [ 22 | "reset", 23 | "site", 24 | "button", 25 | "container", 26 | "divider", 27 | "flag", 28 | "header", 29 | "icon", 30 | "image", 31 | "input", 32 | "label", 33 | "list", 34 | "loader", 35 | "rail", 36 | "reveal", 37 | "segment", 38 | "step", 39 | "breadcrumb", 40 | "form", 41 | "grid", 42 | "menu", 43 | "message", 44 | "table", 45 | "ad", 46 | "card", 47 | "comment", 48 | "feed", 49 | "item", 50 | "statistic", 51 | "accordion", 52 | "checkbox", 53 | "dimmer", 54 | "dropdown", 55 | "embed", 56 | "modal", 57 | "nag", 58 | "popup", 59 | "progress", 60 | "rating", 61 | "search", 62 | "shape", 63 | "sidebar", 64 | "sticky", 65 | "tab", 66 | "transition", 67 | "api", 68 | "form", 69 | "state", 70 | "visibility" 71 | ], 72 | "version": "2.2.11" 73 | } 74 | -------------------------------------------------------------------------------- /tests/utils.py: -------------------------------------------------------------------------------- 1 | from contextlib import contextmanager 2 | from flask import template_rendered 3 | 4 | def quill_login(app, username, password): 5 | return app.post('/login', data=dict( 6 | email=username, 7 | password=password 8 | ), follow_redirects=True) 9 | 10 | def logout(app): 11 | return app.get('/logout', follow_redirects=True) 12 | 13 | def add_item(app, quantity=5, lottery=True, checkout=True): 14 | data=dict( 15 | name='Fidget Spinner', 16 | description='Lets you spin like a good fidget boi', 17 | link='http://fidget.spinner', 18 | category='Spinner', 19 | image='', 20 | quantity=quantity, 21 | item_type='free') 22 | 23 | if lottery: 24 | data['item_type'] = 'lottery' 25 | elif checkout: 26 | data['item_type'] = 'checkout' 27 | 28 | return app.post('/inventory/add', data=data, follow_redirects=True) 29 | 30 | def update_user(app): 31 | return app.post('/user/1/update', data=dict( 32 | location='A5', 33 | phone='617-555-0123', 34 | name='Alyssa' 35 | ), follow_redirects=True) 36 | 37 | def request_item(app, id): 38 | return app.post('/request/submit', data=dict( 39 | item_id=id, 40 | quantity=1), 41 | follow_redirects=True) 42 | 43 | def approve_request(app, id_): 44 | return app.post('/request/{}/approve'.format(id_), 45 | follow_redirects=True) 46 | 47 | @contextmanager 48 | def captured_templates(app): 49 | recorded = [] 50 | def record(sender, template, context, **extra): 51 | recorded.append((template, context)) 52 | template_rendered.connect(record, app) 53 | try: 54 | yield recorded 55 | finally: 56 | template_rendered.disconnect(record, app) 57 | --------------------------------------------------------------------------------