open-index/open-npm huggingface dataset:
npm package: @shazomiii/image-carousel
Description: A simple image carousel.
Author: Oluseye Oyeniran
Latest version: 1.0.2

# Image Carousel

A simple image carousel.

## Installation

```bash
npm install @shazomiii/image-carousel
```

## Usage

To use the image carousel, import the `createCarousel` function and call it with a selector for your carousel element.

```javascript
import createCarousel from '@shazomiii/image-carousel';

createCarousel('.carousel');
```

Your HTML should have the following structure:

```html
<div class="carousel">
    <div class="slides">
        <img src="..." alt="...">
        <img src="..." alt="...">
        <img src="..." alt="...">
    </div>
    <button class="prev">&#10094;</button>
    <button class="next">&#10095;</button>
    <div class="dots"></div>
</div>
```

### Development Server

To run the development server, clone the repository and run the following commands:

```bash
npm install
npm start
```

## License

[MIT](LICENSE)
npm package: @shazomiii/simple-dropdown
Description: A simple dropdown menu.
Author: Oluseye Oyeniran
Latest version: 1.0.1

# Simple Dropdown Menu

A lightweight and simple dropdown menu component.

## Installation

```bash
npm install @shazomiii/simple-dropdown
```

## Usage

1.  Create a container element in your HTML.

```html
<div id="my-dropdown"></div>
```

2.  Import the `createDropdown` function in your JavaScript and call it.

```javascript
import { createDropdown } from '@shazomiii/simple-dropdown';

// The selector for your container element
const containerSelector = '#my-dropdown';

// The text for the dropdown button
const buttonText = 'Click Me';

// An array of objects for the menu items
const menuItems = [
    { title: 'Home', href: '/home' },
    { title: 'About', href: '/about' },
    { title: 'Contact', href: '/contact' }
];

// Initialize the dropdown
createDropdown(containerSelector, buttonText, menuItems);
```
npm package: @shbernal/anki-apkg-export
Description: Generate decks (.apkg) for Anki
Author: shbernal
Latest version: 1.0.0

# anki-apkg-export

Server-side ESM module for generating Anki `.apkg` decks.

## Requirements
- Node.js >= 24
- ESM

## Install
```sh
pnpm add @shbernal/anki-apkg-export
```

## Usage (Node/TypeScript)
```ts
import fs from 'fs';
import AnkiExport from '@shbernal/anki-apkg-export';

const apkg = await AnkiExport('deck-name');

apkg.addMedia('anki.png', fs.readFileSync('anki.png'));

apkg.addCard('card #1 front', 'card #1 back');
apkg.addCard('card #2 front', 'card #2 back', { tags: ['nice', 'better card'] });
apkg.addCard('card #3 with image <img src="anki.png" />', 'card #3 back');

const zip = await apkg.save();
fs.writeFileSync('./output.apkg', zip);
console.log(`Package has been generated: output.apkg`);
```

### Template customization
`AnkiExport(name, templateOverrides?)` returns a Promise that resolves to an exporter. You can override `questionFormat`, `answerFormat`, and `css`:
```ts
const apkg = await AnkiExport('customized', {
  questionFormat: '{{Front}}',
  answerFormat: '{{FrontSide}}<hr id="answer">{{Back}}',
  css: '.card { font-family: Arial; font-size: 20px; }'
});
```

### API
- `addCard(front: string, back: string, options?: { tags?: string | string[] })`
- `addMedia(filename: string, data: Buffer | Uint8Array | ArrayBuffer | string)`
- `save(options?: JSZip.JSZipGeneratorOptions): Promise<Buffer>` (returns the APKG as a Node buffer)

## Examples
- Server example: `examples/server/server.js`

## Development
- `pnpm install`
- `pnpm run build`
- `pnpm test`
- `pnpm run lint`

## References
- [APKG format documentation](http://decks.wikia.com/wiki/Anki_APKG_format_documentation)
npm package: @shbernal/pdfanki
Description: Core PDF/EPUB parsing and flashcard generation utilities for pdfanki
Author: shbernal
Latest version: 0.1.0

# @shbernal/pdfanki

Core utilities used by the pdfanki CLI for parsing PDF/EPUB files and generating flashcards.

## Entrypoints

- `@shbernal/pdfanki/server`: Node-facing helpers to parse files and call models.
  - `convertFileFromPath({ inputPath, type?, indexPath?, startChapter?, endChapter?, epubFilters?, debug? })` → `{ data, text, fileType, sourcePath }`.
  - `generateFlashcards({ provider, model, apiKey, prompt, content })` → markdown string.
  - `bookJsonToPlainText(book)` to flatten parsed sections for prompting.
- `@shbernal/pdfanki/client`: Browser-safe helpers for JSON validation/editing.
  - `validateJsonStructure(bookJson)` plus undo/delete helpers for sections.
  - `formatFileSize(bytes)` for UI display.
- `@shbernal/pdfanki`: Shared transforms and types (`BookJson`, `IndexEntry`, `ContentSection`, etc).

All exports are ESM-only.
npm package: @shbernal/tiny-slug
Description: Basic utility function for testing publishing a package to npm registry.
Author: shbernal
Latest version: 1.0.0

# @shbernal/tiny-slug

Tiny, URL-safe slug utility meant for learning how npm publishing works.

## Install (after publishing)

```sh
pnpm add @shbernal/tiny-slug
# or: npm install @shbernal/tiny-slug
```

## Usage

```ts
import { slugify } from '@shbernal/tiny-slug';
// const slugify = (await import('@shbernal/tiny-slug')).default; // ESM default import

slugify('Hello, World!');         // "hello-world"
slugify('Espanol & Francais');    // "espanol-francais"
slugify('  multiple   spaces  '); // "multiple-spaces"
```

## Development

```sh
pnpm install
pnpm run build
```

Publishing flow example:

```sh
# make sure tests pass / build succeeds
pnpm run build

# log in to npm if you have not already
npm login

# publish as a public package
npm publish --access public
```