
Product
Introducing Repository Access Permissions and Custom Roles
Socket now supports Custom Roles and Repository Access Permissions so organizations can control who can access specific repositories and actions.
com.hydroper.tilelayout
Advanced tools
Base layout implementation for Windows 8 like live tiles in HTML5.
Shifting during drag-n-drop isn't working currently, but at least grid snapping does.
For now, code sets ENABLE_SHIFT to false.
Used positioning style: cascading
translateGroup-label element tag:
divGroup-label element attribute
data-id: the group ID.Tile element tag:
buttonTile element attribute
data-id: the tile ID.Tile element attribute
data-size: the tile size (small,medium,wideorlarge).Tile element attribute
data-dragging: false or true.Tile size: supports small (1x1), medium (2x2), wide (4x2) and large tiles (4x4).
Overrides the
transitionstyle in tile elements.
Note: only horizontal containers are supported currently.
import { Tiles } from "com.hydroper.tilelayout";
const tiles = new Tiles({
// Container.
element,
// The direction of the tile container.
direction: "horizontal",
// Class name used for identifying group labels.
labelClassName: "label",
// Class name used for identifying tiles.
tileClassName: "tile",
// Class name used for identifying the tile placeholder when dragging
// a tile.
placeholderClassName: "placeholder",
// The size of small tiles, in cascading "rem" units.
smallSize: 3.625,
// Gap between tiles, in cascading "rem" units.
tileGap: 0.6,
// Gap between groups, in cascading "rem" units.
groupGap: 9,
// The height of group labels, in cascading "rem" units.
labelHeight: 2,
// Maximum width in small tiles.
// Effective only in vertical containers.
// Must be >= 4 for vertical containers.
maxWidth: undefined,
// Maximum height in small tiles.
// Effective only in horizontal containers.
// Must be >= 4 for horizontal containers.
maxHeight: 6,
// Transition function(s) to contribute to tiles.
tileTransition: "",
});
// Adding groups
const label_div = tiles.addGroup({
id: "group1",
label: "Group 1",
});
// Adding tiles
const button = tiles.addTile({
id: "tile1",
group: "group1",
// Horizontal position in small tiles.
x: 0,
// Vertical position in small tiles.
y: 0,
size: "large",
});
// Disposal
tiles.destroy();
Dispatched when a new group is added. Event is given a CustomEvent<{ group: Group, label: HTMLDivElement }> object. This is also dispatched when automatic groups are created (such as when a tile is dropped far away in no existing group).
tiles.addEventListener("addedGroup", ({ detail: { group, label } }) => {
//
});
Dispatched when a new tile is added. Event is given a CustomEvent<{ tile: Tile, button: HTMLButtonElement }> object.
tiles.addEventListener("addedTile", ({ detail: { tile, button } }) => {
//
});
Dispatched whenever the state is updated. Event is given a CustomEvent<State> object.
tiles.addEventListener("stateUpdated", ({ detail: state }) => {
//
});
Event is given a CustomEvent<{ tile: HTMLButtonElement }> object.
tiles.addEventListener("dragStart", ({ detail: { tile } }) => {
//
});
Event is given a CustomEvent<{ tile: HTMLButtonElement }> object.
tiles.addEventListener("drag", ({ detail: { tile } }) => {
//
});
Event is given a CustomEvent<{ tile: HTMLButtonElement }> object.
tiles.addEventListener("dragEnd", ({ detail: { tile } }) => {
//
});
FAQs
Metro tile layout
We found that com.hydroper.tilelayout demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Product
Socket now supports Custom Roles and Repository Access Permissions so organizations can control who can access specific repositories and actions.

Product
Socket MCP now lets AI assistants review org alerts, investigate threats using the Socket threat feed, and inspect package files in addition to dependency scoring.

Product
Socket Firewall blocks malicious VS Code and Open VSX extensions before install, protecting developers from compromised editor marketplaces.