open-index/open-npm huggingface dataset:
npm package: @jkroso/cursor
Description: Enables you to present a subset of a large data structure as if it was the whole thing
Author: Jake Rosoman
Latest version: 0.0.3


# Cursor

Enables you to present a subset of a large data structure as if it was the whole thing

## Installation

`npm install jsiom/cursor`

then in your app:

```js
var Cursor = require('cursor')
```
npm package: @jkroso/emitter
Description: a basic event emitter
Author: Jakeb Rosoman
Latest version: 1.0.0

# Emitter

A simple but optimized event emitter.

## Features

- __inherited subscriptions:__
This allows you to define subscriptions on the class rather than on each instance of a class which is both more efficient in terms of memery and sometimes cleaner too.

## Installation

`npm install @jkroso/emitter`

```javascript
import Emitter from 'emitter'
```

## API

### Emitter([obj])

  Emitter constructor. Can optionally also act as a mixin

### Emitter#emit(topic, [...args])

  Process `event`. All arguments after `topic` will
  be passed to all listeners

```js
emitter.emit('event', new Date)
```

### Emitter#on(topic, fn)

  Add a subscription under a topic name

```js
emitter.on('event', function(data){})
```

### Emitter#off([topic], [fn])

  Remove subscriptions

```js
emitter.off()            // clears all listeners
emitter.off('topic')     // clears all `topic` listeners
emitter.off('topic', fn) // as above but only where `listener == fn`
```

### Emitter#once(topic, fn)

  subscribe `fn` but remove if after its first invocation

### Emitter.hasSubscription(emitter, topic, [fn])

  see if `emitter` has any subscriptions matching
  `topic` and optionally also `fn`

### Emitter.subscriptions(emitter, topic)

  get an Array of subscriptions for `topic`
npm package: @jkroso/move
Description: pure JavaScript DOM animation
Author: Jake Rosoman
Latest version: 1.0.1


# move

  Pure JS DOM animation. Still at the experimental stage. Inspiration coming from [move.js](//github.com/visionmedia/move.js) and [firmin](http://extralogical.net/projects/firmin) though by staying in JS as much as possible I hope to be able to go a lot further. 

  Note: it's plenty fast for most use cases but CSS animations will probably always be faster.

## Installation

With your favorite package manager:

- [packin](//github.com/jkroso/packin): `packin add jkroso/move`
- [component](//github.com/component/component#installing-packages): `component install jkroso/move`
- [npm](//npmjs.org/doc/cli/npm-install.html): `npm install jkroso/move`

then in your app:

```js
var move = require('move')
```

## Usage

```js
move(document.body)
  .set('background-color', 'blue')
  .rotate(30)
  .scale(2)
  .ease('out-bounce')
  .duration('.2s')
  .then()
    .rotate(-30)
    .scale(.5)
```

This will enlarge the document while rotating it clockwise and changing the background color to blue. `then()` 200ms later when that animation completes it will animate back to its original size and rotation.

## Running the tests

Just run `make` and navigate your browser to [test/index.html](test/index.html)
npm package: @jkroso/now
Description: get the highest resolution timestamp available x-browser
Author: Jake Rosoman
Latest version: 0.1.0


# now

  get the highest resolution timestamp available x-browser

## Getting Started

_With [component](//github.com/component/component), [packin](//github.com/jkroso/packin) or [npm](//github.com/isaacs/npm)_  

	$ {package mananger} install jkroso/now

then in your app:

```js
var now = require('now')
```

## API

- [now()](#now)

### now()

  will return a timestamp relative to some arbitrary time in the past in milliseconds (ms). In older browsers that time happens to be the unix Epoch so is a lot bigger than it would be in a modern browser which will give you a time relative to page load.

```js
now() // => 15.333000003010966
```

### example

  one possible use case is benchmarking

```js
var start = now()
while (now() - start < 10) continue;
console.log('bench took %dms', start - now())
// => bench took 10ms
``` 

## Running the example

```bash
$ npm install
$ make
```

Then open your browser to the `./example.html`.

_Note: these commands don't work on windows._
npm package: @jkroso/timeline
Description: orchestrate a group of animations
Author: Jake Rosoman
Latest version: 1.0.3


# timeline

  orchestrate a group of animations. Timelines themselves implement the animation API and therefore can be nested arbitrarily.

## Installation

With your favorite package manager:

- [packin](//github.com/jkroso/packin): `packin add jkroso/timeline`
- [component](//github.com/component/component#installing-packages): `component install jkroso/timeline`
- [npm](//npmjs.org/doc/cli/npm-install.html): `npm install jkroso/timeline`

then in your app:

<!--js window = global -->

```js
var timeline = require('timeline')
```

## API

### timeline([animations])

  create a timeline with an option Array of initial animations

### Timeline.add(start, end, animation)

  add an animation to the timeline

### Timeline.render(n)

  render point `n` on the timeline

### Timeline.then([anim]:Animation|Function)

  create a new timeline which will start when this
  one completes
npm package: @jkroso/type
Description: less broken typeof
Latest version: 2.0.0

# type

  Type assertions aka less-broken `typeof`.

## API

```js
var type = require('type')
type(new Date) // => 'date'
type({}) // => 'object'
type(null) // => 'null'
type(undefined) // => 'undefined'
type("hey") // => 'string'
type(true) // => 'boolean'
type(false) // => 'boolean'
type(12) // => 'number'
type(type) // => 'function'
type(/asdf/) // => 'regexp'
type((function(){ return arguments })()) // => 'arguments'
type([]) // => 'array'
type(new Uint8Array) // => 'bit-array'
type(document.createElement('div')) // => 'element'
```
npm package: @jkroso/unmatrix
Description: parse the values of a css transform
Author: Jake Rosoman
Latest version: 0.1.0


# unmatrix

  Parse and normalize the individual values of a css transform.
  Uses the same algorithm that Firefox uses to parse the transform string.
  Only parses the 2D transform attributes. This library is intentionally low-level
  and should probably be used within another library.

  If you'd like to parse 3D transforms take a look at:
  http://www.w3.org/TR/css3-transforms/#matrix-decomposing.

## Installation

  Install with [component(1)](http://component.io):

    $ component install matthewmueller/unmatrix

Then in you code:

```js
var parse = require('unmatrix')
```

## API

### parse(str)

Parse a CSS transformation matrix into its semantic components:

```js
parse('matrix(1 1.7320508075688772, -1.3680805733026749, 1.6304149381918094, 400, 200)') == {
  translateX: 400, // px
  translateY: 200, // px
  rotate: 60, // deg
  skew: 20, // deg
  scaleX: 2,
  scaleY: 2
}
```

## TODO

- support for 3D transforms
- tests would be nice

## License

  MIT