open-index/open-npm huggingface dataset:
npm package: @freedom-app/app
Description: a social media platform, where people can discuss about issues and conflicts.
Author: Freedom Team
Latest version: 0.0.2
Deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.

# Freedom.

![Palestine Watermelon Symbol](./frontend/images/watermelon.png)

A Social Media Platform, Where People Can Discuss About Issues And Conflicts.

## Our Goal:

Our Goal Is To Create A Platform That Is Very Pro-Palestinian, It Is Our Job To Make Their Voice Heard.

## Running For Yourself

### Dependencies

The Dependencies For `Freedom` Are:

- Python 3.9+
- Visual Studio 2017+
- Python Poetry
- Node.js 14+
- Npm

### To Install

To Install `Freedom` You Should Run:

```
npm install
poetry install
poetry run npm run production
```

> **NOTE:** If you are running on Windows, you should run `poetry run npm.exe run production` or else you will get an error

> **NOTE:** If you would like to run in development mode, you should run `poetry run npm start`

> If you don't have access to `stdin`, set environment variables of `PORT` for the port, and `MONGO_URL` for the MongoDB URI

> **NOTE:** For Right Now, The Testing Server Is Running [Here](https://freedom-tests.molai.dev)
npm package: @freedom-editor/block-inline-markup-controller
Description: Block inline markup controller for Freedom Editor
Author: Hugo Sum
Latest version: 0.1.0

# Freedom Editor Block Inline Markup Controller

[![License](https://img.shields.io/badge/license-MIT-blue)](https://img.shields.io/github/license/winston0410/freedom-editor) [![Maintainability](https://api.codeclimate.com/v1/badges/f52cde6ae17bc5b8fe4d/maintainability)](https://codeclimate.com/github/winston0410/freedom-editor-lighterhtml-faq-block/maintainability) [![Known Vulnerabilities](https://snyk.io/test/github/winston0410/freedom-editor-lighterhtml-faq-block/badge.svg?targetFile=package.json)](https://snyk.io/test/github/winston0410/freedom-editor-lighterhtml-faq-block?targetFile=package.json) [![Codacy Badge](https://app.codacy.com/project/badge/Grade/65d4727d39d14170bb784d258e3b4bb4)](https://www.codacy.com/manual/winston0410/freedom-editor-lighterhtml-faq-block?utm_source=github.com&utm_medium=referral&utm_content=winston0410/freedom-editor-lighterhtml-faq-block&utm_campaign=Badge_Grade)

A controller for handling block inline markup for Freedom Editor.

## Installation

```
npm i @freedom-editor/block-inline-markup-controller
```

## Usage

### Step 1: Import the controller

Import this controller to the script where you configurate Freedom Editor.

```
import {
  BlockInlineMarkup
} from '@freedom-editor/block-inline-markup-controller'
```

### Step2: Hook the controller to blocks

Hook this controller to the Freedom Editor instance in `FreedomEditorInstance.init()`. The controller will then apply to all blocks.

```
const editor = new FreedomEditor({
  containerId: 'freedom-editor',
  //Options here...
  }
})

editor.init([
  //Hook controllers here
  new BlockInlineMarkup({

  })
])
```

You can also hook this controller to block instance. The controller will then apply to specific block only.

```
import { Paragraph } from '@freedom-editor/lighterhtml-paragraph-block'

const paragraphBlock = new Paragraph({
  controllers: [
    //Hook controllers here
    new BlockInlineMarkup({

    })
  ]
})
```

## API Reference

TODO

## License

This project is licensed under the MIT License - see the [license](https://github.com/winston0410/freedom-editor/LICENSE.md) for more details.
npm package: @freedom-editor/hyperapp-code-block
Description: A code block for Freedom Editor, built with Hyperapp
Author: Hugo Sum
Latest version: 0.1.0

# Freedom Editor Hyperapp Code Block

[![License](https://img.shields.io/badge/license-MIT-blue)](https://img.shields.io/github/license/winston0410/freedom-editor) [![Maintainability](https://api.codeclimate.com/v1/badges/00f1edf8bd3168a6da09/maintainability)](https://codeclimate.com/github/winston0410/freedom-editor-hyperapp-code-block/maintainability) [![Known Vulnerabilities](https://snyk.io/test/github/winston0410/freedom-editor-hyperapp-code-block/badge.svg?targetFile=package.json)](https://snyk.io/test/github/winston0410/freedom-editor-hyperapp-code-block?targetFile=package.json) [![Codacy Badge](https://app.codacy.com/project/badge/Grade/dda5900eec4742ad92066df32044f450)](https://www.codacy.com/manual/winston0410/freedom-editor-hyperapp-code-block?utm_source=github.com&utm_medium=referral&utm_content=winston0410/freedom-editor-hyperapp-code-block&utm_campaign=Badge_Grade)

A code block built with [Hyperapp](https://github.com/jorgebucaran/hyperapp) for Freedom Editor.

## Installation

```
npm i @freedom-editor/hyperapp-code-block
```

## Usage

Import this block to the script where you config Freedom Editor. Create a new instance.

```
import { Code } from '@freedom-editor/hyperapp-code-block'

const codeBlock = new Code()
```

### Register paragraph block in Freedom Editor instance

Register this block in `options.registeredBlocks`.

```
registeredBlocks: [
  codeBlock
]
```

## API Reference

TODO

## License

This project is licensed under the MIT License - see the [license](https://github.com/winston0410/freedom-editor/LICENSE.md) for more details.
npm package: @freedom-editor/keybindings-controller
Description: Keybindings controllers for Freedom Editor
Author: Hugo Sum
Latest version: 1.0.4

# Freedom Editor Keybindings Controller

[![License](https://img.shields.io/badge/license-MIT-blue)](https://img.shields.io/github/license/winston0410/freedom-editor) [![Codacy Badge](https://app.codacy.com/project/badge/Grade/82be88673d684012ad90d83c4ed12c6e)](https://www.codacy.com/manual/winston0410/freedom-editor-keybindings-controller?utm_source=github.com&utm_medium=referral&utm_content=winston0410/freedom-editor-keybindings-controller&utm_campaign=Badge_Grade) [![Known Vulnerabilities](https://snyk.io/test/github/winston0410/freedom-editor-keybindings-controller/badge.svg?targetFile=package.json)](https://snyk.io/test/github/winston0410/freedom-editor-keybindings-controller?targetFile=package.json) [![Maintainability](https://api.codeclimate.com/v1/badges/d63de116e1d0f9364a53/maintainability)](https://codeclimate.com/github/winston0410/freedom-editor-keybindings-controller/maintainability)

A controller to apply custom keybindings to blocks for controlling their behaviors.

## Installation

```
npm i @freedom-editor/keybindings-controller
```

## Usage

### Step 1: Import the controller

Import this controller to the script where you configurate Freedom Editor.

```
import {
  FreedomEditorKeyBindings
} from '@freedom-editor/keybindings-controller'
```

### Step2: Hook the controller to blocks

Hook this controller to the Freedom Editor instance in `FreedomEditorInstance.init()`. The controller will then apply to all blocks.

```
const editor = new FreedomEditor({
  containerId: 'freedom-editor',
  //Options here...
  }
})

editor.init([
  //Hook controllers here
  new FreedomEditorKeyBindings({

  })
])
```

You can also hook this controller to block instance. The controller will then apply to specific block only.

```
import { Paragraph } from '@freedom-editor/lighterhtml-paragraph-block'

const paragraphBlock = new Paragraph({
  controllers: [
    //Hook controllers here
    new FreedomEditorKeyBindings({

    })
  ]
})
```

## API Reference

TODO

## License

This project is licensed under the MIT License - see the [license](https://github.com/winston0410/freedom-editor/LICENSE.md) for more details.
npm package: @freedom-editor/lighterhtml-code-block
Description: Code block built with Lighterhtml for Freedom Editor
Author: Hugo Sum
Latest version: 1.0.0

# Freedom Editor Lighterhtml Code Block

[![License](https://img.shields.io/badge/license-MIT-blue)](https://img.shields.io/github/license/winston0410/freedom-editor) [![Maintainability](https://api.codeclimate.com/v1/badges/efec2ea3587adc69fbce/maintainability)](https://codeclimate.com/github/winston0410/freedom-editor-lighterhtml-heading-block/maintainability) [![Known Vulnerabilities](https://snyk.io/test/github/winston0410/freedom-editor-lighterhtml-heading-block/badge.svg?targetFile=package.json)](https://snyk.io/test/github/winston0410/freedom-editor-lighterhtml-heading-block?targetFile=package.json) [![Codacy Badge](https://app.codacy.com/project/badge/Grade/1fee29a4436d4eee9417a234796643e6)](https://www.codacy.com/manual/winston0410/freedom-editor-lighterhtml-heading-block?utm_source=github.com&utm_medium=referral&utm_content=winston0410/freedom-editor-lighterhtml-heading-block&utm_campaign=Badge_Grade)

A code block built with [Lighterhtml](https://github.com/WebReflection/lighterhtml) for Freedom Editor.

## Installation

```
npm i @freedom-editor/lighterhtml-code-block
```

## Usage

Import this block to the script where you config Freedom Editor. Create a new instance.

```
import { Code } from '@freedom-editor/lighterhtml-code-block'

const codeBlock = new Code()
```

### Register paragraph block in Freedom Editor instance

Register this block in `options.registeredBlocks`.

```
registeredBlocks: [
  codeBlock
]
```

## API Reference

TODO

## License

This project is licensed under the MIT License - see the [license](https://github.com/winston0410/freedom-editor/LICENSE.md) for more details.
npm package: @freedom-editor/lighterhtml-faq-block
Description: FAQ block built with Lighterhtml for Freedom Editor
Author: Hugo Sum
Latest version: 1.0.2

# Freedom Editor Lighterhtml FAQ Block

[![License](https://img.shields.io/badge/license-MIT-blue)](https://img.shields.io/github/license/winston0410/freedom-editor) [![Maintainability](https://api.codeclimate.com/v1/badges/f52cde6ae17bc5b8fe4d/maintainability)](https://codeclimate.com/github/winston0410/freedom-editor-lighterhtml-faq-block/maintainability) [![Known Vulnerabilities](https://snyk.io/test/github/winston0410/freedom-editor-lighterhtml-faq-block/badge.svg?targetFile=package.json)](https://snyk.io/test/github/winston0410/freedom-editor-lighterhtml-faq-block?targetFile=package.json) [![Codacy Badge](https://app.codacy.com/project/badge/Grade/65d4727d39d14170bb784d258e3b4bb4)](https://www.codacy.com/manual/winston0410/freedom-editor-lighterhtml-faq-block?utm_source=github.com&utm_medium=referral&utm_content=winston0410/freedom-editor-lighterhtml-faq-block&utm_campaign=Badge_Grade)

A FAQ block built with [Lighterhtml](https://github.com/WebReflection/lighterhtml) for Freedom Editor.

## Installation

```
npm i @freedom-editor/lighterhtml-faq-block
```

## Usage

A FAQ block can help you apply [FAQ schema](https://developers.google.com/search/docs/data-types/faqpage) with Microdata to your content easily, thus improving your SEO ranking.

```

```

## API Reference

TODO

## License

This project is licensed under the MIT License - see the [license](https://github.com/winston0410/freedom-editor/LICENSE.md) for more details.
npm package: @freedom-editor/lighterhtml-heading-block
Description: Heading block built with Lighterhtml for Freedom Editor
Author: Hugo Sum
Latest version: 1.0.2

# Freedom Editor Lighterhtml Heading Block

[![License](https://img.shields.io/badge/license-MIT-blue)](https://img.shields.io/github/license/winston0410/freedom-editor) [![Maintainability](https://api.codeclimate.com/v1/badges/efec2ea3587adc69fbce/maintainability)](https://codeclimate.com/github/winston0410/freedom-editor-lighterhtml-heading-block/maintainability) [![Known Vulnerabilities](https://snyk.io/test/github/winston0410/freedom-editor-lighterhtml-heading-block/badge.svg?targetFile=package.json)](https://snyk.io/test/github/winston0410/freedom-editor-lighterhtml-heading-block?targetFile=package.json) [![Codacy Badge](https://app.codacy.com/project/badge/Grade/1fee29a4436d4eee9417a234796643e6)](https://www.codacy.com/manual/winston0410/freedom-editor-lighterhtml-heading-block?utm_source=github.com&utm_medium=referral&utm_content=winston0410/freedom-editor-lighterhtml-heading-block&utm_campaign=Badge_Grade)

A heading block built with [Lighterhtml](https://github.com/WebReflection/lighterhtml) for Freedom Editor.

## Installation

```
npm i @freedom-editor/lighterhtml-heading-block
```

## Usage

Import this block to the script where you config Freedom Editor. Create a new instance.

```
import { Heading } from '@freedom-editor/lighterhtml-heading-block'

const headingBlock = new Heading()
```

### Register paragraph block in Freedom Editor instance

Register this block in `options.registeredBlocks`.

```
registeredBlocks: [
  headingBlock
]
```

## API Reference

TODO

## License

This project is licensed under the MIT License - see the [license](https://github.com/winston0410/freedom-editor/LICENSE.md) for more details.
npm package: @freedom-editor/lighterhtml-paragraph-block
Description: A paragraph block for Freedom Editor, built with lighterhtml
Author: Hugo Sum
Latest version: 1.0.4

# Freedom Editor Lighterhtml Paragraph block

[![License](https://img.shields.io/badge/license-MIT-blue)](https://img.shields.io/github/license/winston0410/freedom-editor) [![Known Vulnerabilities](https://snyk.io/test/github/winston0410/freedom-editor-lighterhtml-paragraph-block/badge.svg?targetFile=package.json)](https://snyk.io/test/github/winston0410/freedom-editor-lighterhtml-paragraph-block?targetFile=package.json) [![Maintainability](https://api.codeclimate.com/v1/badges/f74e08b360f3796017b7/maintainability)](https://codeclimate.com/github/winston0410/freedom-editor-lighterhtml-paragraph-block/maintainability) [![Codacy Badge](https://app.codacy.com/project/badge/Grade/504ad0b45a2347c89bae8ec7251fad8c)](https://www.codacy.com/manual/winston0410/freedom-editor-lighterhtml-paragraph-block?utm_source=github.com&utm_medium=referral&utm_content=winston0410/freedom-editor-lighterhtml-paragraph-block&utm_campaign=Badge_Grade)

A paragraph block built with [Lighterhtml](https://github.com/WebReflection/lighterhtml) for Freedom Editor

## Installation

```
npm i @freedom-editor/lighterhtml-paragraph-block
```

## Usage

### Import paragraph block

Import paragraph block to the script where you config Freedom Editor. Create a new instance.

```
import { Paragraph } from '@freedom-editor/lighterhtml-paragraph-block'

const paragraphBlock = new Paragraph()
```

### Register paragraph block in Freedom Editor instance

Register this block in `options.registeredBlocks`.

```
registeredBlocks: [
  paragraphBlock
],
```

### Full example

```
//Pre-bundle by bundler like Rollup.js

import { FreedomEditor } from '@freedom-editor/core'
import { Paragraph } from '@freedom-editor/lighterhtml-paragraph-block'

const paragraphBlock = new Paragraph()

const editor = new FreedomEditor({
  containerId: 'freedom-editor',
  defaultBlock: paragraphBlock,
  registeredBlocks: {
    paragraphBlock: paragraphBlock
  },
  blockTemplate: [

  ],
  i18n: {
    rtl: 'ltr'
  }
})

editor.init([])

editor.loadBlocks()
```

## API Reference

TODO

## License

This project is licensed under the MIT License - see the [license](https://github.com/winston0410/freedom-editor/LICENSE.md) for more details.
npm package: @freedom-editor/preact-code-block
Description: Code block built with Preact for Freedom Editor
Author: Hugo Sum
Latest version: 1.0.1

# Freedom Editor Preact Code Block

[![License](https://img.shields.io/badge/license-MIT-blue)](https://img.shields.io/github/license/winston0410/freedom-editor) [![Maintainability](https://api.codeclimate.com/v1/badges/60e1e3c1243a117d8e7f/maintainability)](https://codeclimate.com/github/winston0410/freedom-editor-preact-code-block/maintainability) [![Known Vulnerabilities](https://snyk.io/test/github/winston0410/freedom-editor-preact-code-block/badge.svg?targetFile=package.json)](https://snyk.io/test/github/winston0410/freedom-editor-preact-code-block?targetFile=package.json) [![Codacy Badge](https://app.codacy.com/project/badge/Grade/f1af9722eab64980abfe8c8ca2192eea)](https://www.codacy.com/manual/winston0410/freedom-editor-preact-code-block?utm_source=github.com&amp;utm_medium=referral&amp;utm_content=winston0410/freedom-editor-preact-code-block&amp;utm_campaign=Badge_Grade)

A code block built with [Preact](https://preactjs.com/) for Freedom Editor.

## Installation

```
npm i @freedom-editor/preact-code-block
```

## Usage

Import this block to the script where you config Freedom Editor. Create a new instance.

```
import { Code } from '@freedom-editor/preact-code-block'

const codeBlock = new Code()
```

### Register paragraph block in Freedom Editor instance

Register this block in `options.registeredBlocks`.

```
registeredBlocks: [
  codeBlock
]
```

## API Reference

TODO

## License

This project is licensed under the MIT License - see the [license](https://github.com/winston0410/freedom-editor/LICENSE.md) for more details.
npm package: @freedom-editor/svelte-code-block
Description: Code block built with svelte.js for Freedom Editor
Author: Hugo Sum
Latest version: 1.0.1

# Freedom Editor Svelte Code Block

[![License](https://img.shields.io/badge/license-MIT-blue)](https://img.shields.io/github/license/winston0410/freedom-editor) [![Maintainability](https://api.codeclimate.com/v1/badges/c2c148e63513c9519e9f/maintainability)](https://codeclimate.com/github/winston0410/freedom-editor-svelte-code-block/maintainability) [![Known Vulnerabilities](https://snyk.io/test/github/winston0410/freedom-editor-svelte-code-block/badge.svg?targetFile=package.json)](https://snyk.io/test/github/winston0410/freedom-editor-svelte-code-block?targetFile=package.json) [![Codacy Badge](https://app.codacy.com/project/badge/Grade/480901bc71444456b0f241fbaee86db7)](https://www.codacy.com/manual/winston0410/freedom-editor-svelte-code-block?utm_source=github.com&utm_medium=referral&utm_content=winston0410/freedom-editor-svelte-code-block&utm_campaign=Badge_Grade)

A code block built with [Svelte](https://svelte.dev/) for Freedom Editor.

## Installation

```
npm i @freedom-editor/svelte-code-block
```

## Usage

Import this block to the script where you config Freedom Editor. Create a new instance.

```
import { Code } from '@freedom-editor/svelte-code-block'

const codeBlock = new Code()
```

### Register paragraph block in Freedom Editor instance

Register this block in `options.registeredBlocks`.

```
registeredBlocks: [
  codeBlock
]
```

## API Reference

TODO

## License

This project is licensed under the MIT License - see the [license](https://github.com/winston0410/freedom-editor/LICENSE.md) for more details.
npm package: @freedom-editor/vanilla-code-block
Description: A code block for Freedom Editor written in vanilla Javascript
Author: Hugo Sum
Latest version: 1.0.1

# Freedom Editor Vanilla Code Block

[![License](https://img.shields.io/badge/license-MIT-blue)](https://img.shields.io/github/license/winston0410/freedom-editor) [![Maintainability](https://api.codeclimate.com/v1/badges/5027214872226fd3c0e3/maintainability)](https://codeclimate.com/github/winston0410/freedom-editor-vanilla-code-block/maintainability) [![Known Vulnerabilities](https://snyk.io/test/github/winston0410/freedom-editor-vanilla-code-block/badge.svg?targetFile=package.json)](https://snyk.io/test/github/winston0410/freedom-editor-vanilla-code-block?targetFile=package.json) [![Codacy Badge](https://app.codacy.com/project/badge/Grade/820b7de253e14e59b8a8360ad7bff6a1)](https://www.codacy.com/manual/winston0410/freedom-editor-vanilla-code-block?utm_source=github.com&utm_medium=referral&utm_content=winston0410/freedom-editor-vanilla-code-block&utm_campaign=Badge_Grade)

A code block written in vanilla Javascript for Freedom Editor.

## Installation

```
npm i @freedom-editor/vanilla-code-block
```

## Usage

Import this block to the script where you config Freedom Editor. Create a new instance.

```
import { Code } from '@freedom-editor/vanilla-code-block'

const codeBlock = new Code()
```

### Register paragraph block in Freedom Editor instance

Register this block in `options.registeredBlocks`.

```
registeredBlocks: [
  codeBlock
]
```

## API Reference

TODO

## License

This project is licensed under the MIT License - see the [license](https://github.com/winston0410/freedom-editor/LICENSE.md) for more details.
npm package: @freedomcore/button-fc
Description: Foundational button component with variants, sizes, states, and optional Tauri invoke
Author: FreedomCore
Latest version: 0.2.1

# @freedomcore/button-fc

Foundational button web component with variants, sizes, states, and optional Tauri integration.

## Installation

```bash
npm install @freedomcore/button-fc
```

## Usage

```html
<link rel="stylesheet" href="node_modules/@freedomcore/button-fc/button-fc.css">

<button-fc>Default</button-fc>
<button-fc variant="primary">Primary</button-fc>
<button-fc variant="ghost" size="sm">Small Ghost</button-fc>
<button-fc variant="danger" disabled>Disabled</button-fc>

<script type="module">
  import '@freedomcore/button-fc';
</script>
```

## Attributes

| Attribute | Values | Default |
|-----------|--------|---------|
| `variant` | `default`, `primary`, `secondary`, `ghost`, `danger` | `default` |
| `size` | `sm`, `md`, `lg` | `md` |
| `disabled` | boolean | `false` |
| `invoke` | Tauri command name | — |

## Tauri Integration

```html
<!-- Calls Tauri command on click -->
<button-fc invoke="open_settings">Settings</button-fc>
```

## CSS Variables

```css
--btn-bg: var(--surface-2);
--btn-color: var(--text-1);
--btn-radius: 6px;
--btn-padding: 0.5em 1em;
```

## License

MIT © [FreedomCore](https://github.com/Acumen-Desktop/freedom-core)
npm package: @freedomcore/button-group-fc
Description: Button grouping component with toggle and multi-select modes
Author: FreedomCore
Latest version: 0.2.1

# @freedomcore/button-group-fc

Button grouping component with toggle and multi-select modes.

## Installation

```bash
npm install @freedomcore/button-group-fc @freedomcore/button-fc
```

## Usage

```html
<link rel="stylesheet" href="node_modules/@freedomcore/button-fc/button-fc.css">
<link rel="stylesheet" href="node_modules/@freedomcore/button-group-fc/button-group-fc.css">

<!-- Toggle group (single selection) -->
<button-group-fc mode="toggle" value="left">
  <button-fc value="left">Left</button-fc>
  <button-fc value="center">Center</button-fc>
  <button-fc value="right">Right</button-fc>
</button-group-fc>

<!-- Multi-select group -->
<button-group-fc mode="multi">
  <button-fc value="bold">B</button-fc>
  <button-fc value="italic">I</button-fc>
  <button-fc value="underline">U</button-fc>
</button-group-fc>

<script type="module">
  import '@freedomcore/button-fc';
  import '@freedomcore/button-group-fc';
</script>
```

## Attributes

| Attribute | Values | Description |
|-----------|--------|-------------|
| `mode` | `toggle`, `multi` | Selection behavior |
| `value` | string | Current selection (toggle mode) |

## Events

```js
group.addEventListener('change', (e) => {
  console.log('Selected:', e.detail.value);
});
```

## License

MIT © [FreedomCore](https://github.com/Acumen-Desktop/freedom-core)
npm package: @freedomcore/design-system
Description: Core design system, global styles, and theme switching component
Author: FreedomCore
Latest version: 0.2.1

# @freedomcore/design-system

Core design system, global styles, and theme switching component for FreedomCore.

## Installation

```bash
npm install @freedomcore/design-system
```

## Usage

```html
<link rel="stylesheet" href="node_modules/@freedomcore/design-system/theme-switcher-fc.css">

<!-- Core FC styles (bundled) -->
<link rel="stylesheet" href="node_modules/@freedomcore/design-system/styles/base.css">
<link rel="stylesheet" href="node_modules/@freedomcore/design-system/styles/theme-core.css">

<!-- Place theme stylesheets with data-theme attribute -->
<link rel="stylesheet" href="node_modules/@freedomcore/design-system/styles/theme-purple.css" data-theme>

<theme-switcher-fc></theme-switcher-fc>

<script type="module">
  import '@freedomcore/design-system';
</script>
```

## Attributes

| Attribute | Description |
|-----------|-------------|
| `themes` | Comma-separated theme names (auto-detected from CSS if omitted) |
| `default` | Default theme name |

## Bundled Styles

This package includes the core FreedomCore design system:

- `@freedomcore/design-system/styles/base.css` (Reset + Typography)
- `@freedomcore/design-system/styles/colors.css` (Color palette)
- `@freedomcore/design-system/styles/tokens.css` (Design tokens)
- `@freedomcore/design-system/styles/theme-*.css` (Theme presets)

## How It Works

1. Scans for `<link>` elements with `data-theme` attribute
2. Extracts theme names from filenames (e.g., `theme-purple.css` → "purple")
3. Swaps the active theme stylesheet on selection
4. Persists selection to localStorage

## Events

```js
switcher.addEventListener('theme-change', (e) => {
  console.log('Theme:', e.detail.theme);
});
```

## License

MIT © [FreedomCore](https://github.com/Acumen-Desktop/freedom-core)
npm package: @freedomcore/tabs-bar
Description: Chrome-style browser tabs with drag-and-drop, persistence, and customizable styling
Author: FreedomCore
Latest version: 0.2.1

# @freedomcore/tabs-bar

Chrome-style browser tabs with drag-and-drop reordering, persistence, and customizable styling.

## Installation

```bash
npm install @freedomcore/tabs-bar
```

## Usage

```html
<link rel="stylesheet" href="node_modules/@freedomcore/tabs-bar/tabs-bar.css">

<tabs-bar-fc id="main-tabs">
  <tab-fc label="Home" active></tab-fc>
  <tab-fc label="Settings"></tab-fc>
  <tab-fc label="About"></tab-fc>
</tabs-bar-fc>

<script type="module">
  import '@freedomcore/tabs-bar';
</script>
```

## Attributes

### `<tabs-bar-fc>`

| Attribute | Description |
|-----------|-------------|
| `id` | Required for persistence |
| `closable` | Enable close buttons on tabs |
| `addable` | Show "new tab" button |

### `<tab-fc>`

| Attribute | Description |
|-----------|-------------|
| `label` | Tab display text |
| `active` | Currently selected tab |
| `icon` | Optional icon URL |

## Events

```js
tabsBar.addEventListener('tab-change', (e) => {
  console.log('Active tab:', e.detail.tab);
});

tabsBar.addEventListener('tab-close', (e) => {
  console.log('Closed:', e.detail.tab);
});
```

## API

```js
const tabs = document.querySelector('tabs-bar-fc');
tabs.addTab({ label: 'New Tab' });
tabs.activeTab = 'tab-id';
```

## License

MIT © [FreedomCore](https://github.com/Acumen-Desktop/freedom-core)
npm package: @freedomcore/theme-switcher-fc
Description: Theme switching component with dropdown selector and persistence
Author: FreedomCore
Latest version: 0.2.0

# @freedomcore/theme-switcher-fc

Theme switching component with dropdown selector and localStorage persistence.

## Installation

```bash
npm install @freedomcore/theme-switcher-fc
```

## Usage

```html
<link rel="stylesheet" href="node_modules/@freedomcore/theme-switcher-fc/theme-switcher-fc.css">

<!-- Place theme stylesheets with data-theme attribute -->
<link rel="stylesheet" href="theme-purple.css" data-theme>

<theme-switcher-fc></theme-switcher-fc>

<script type="module">
  import '@freedomcore/theme-switcher-fc';
</script>
```

## Attributes

| Attribute | Description |
|-----------|-------------|
| `themes` | Comma-separated theme names (auto-detected from CSS if omitted) |
| `default` | Default theme name |

## How It Works

1. Scans for `<link>` elements with `data-theme` attribute
2. Extracts theme names from filenames (e.g., `theme-purple.css` → "purple")
3. Swaps the active theme stylesheet on selection
4. Persists selection to localStorage

## Events

```js
switcher.addEventListener('theme-change', (e) => {
  console.log('Theme:', e.detail.theme);
});
```

## License

MIT © [FreedomCore](https://github.com/Acumen-Desktop/freedom-core)
npm package: @freedomcore/window-controls
Description: Window control components for Tauri v2: control buttons, drag region, and monitor switcher
Author: FreedomCore
Latest version: 0.2.1

# @freedomcore/window-controls

Window control components for Tauri v2 applications: traffic light buttons, drag regions, and monitor switching.

## Installation

```bash
npm install @freedomcore/window-controls
```

**Peer dependency:** `@tauri-apps/api@^2.0.0`

## Components

### Window Control Buttons

```html
<window-control-fc type="close"></window-control-fc>
<window-control-fc type="minimize"></window-control-fc>
<window-control-fc type="maximize"></window-control-fc>
```

### Draggable Title Bar

```html
<window-drag-fc>
  <h1>My App</h1>
</window-drag-fc>
```

### Monitor Switcher

```html
<monitor-switcher-fc></monitor-switcher-fc>
```

## Full Example

```html
<link rel="stylesheet" href="node_modules/@freedomcore/window-controls/window-controls.css">

<header>
  <window-control-fc type="close"></window-control-fc>
  <window-control-fc type="minimize"></window-control-fc>
  <window-control-fc type="maximize"></window-control-fc>
  
  <window-drag-fc>
    <h1>My Tauri App</h1>
  </window-drag-fc>
  
  <monitor-switcher-fc></monitor-switcher-fc>
</header>

<script type="module">
  import '@freedomcore/window-controls';
</script>
```

## Exports

```js
import { WindowControl } from '@freedomcore/window-controls/window-control';
import { WindowDrag } from '@freedomcore/window-controls/window-drag';
import { MonitorSwitcher } from '@freedomcore/window-controls/monitor-switcher';
```

## License

MIT © [FreedomCore](https://github.com/Acumen-Desktop/freedom-core)
npm package: @freedomofpress/cometbft
Description: A CometBFT light client for the browser.
Author: Giulio B
Latest version: 0.1.4

# cometbft-ts

_Note: this library has not been audited, thus its security has not been independently verified._

`cometbft-ts` is a small TypeScript library for verifying CometBFT commits in the browser. It takes the JSON you get from CometBFT ABCI/RPC for a `commit` and its `validators`, constructs canonical sign-bytes via protobuf, and verifies Ed25519 signatures and >2/3 quorum. It is verification-only and throws on any cryptographic or format error. It uses the native [Web Crypto API](https://developer.mozilla.org/en-US/docs/Web/API/Web_Crypto_API). The library is developed as part of [WEBCAT](https://github.com/freedomofpress/webcat) and is **not audited**.

## Usage

```ts
import { importCommit } from "./src/commit";
import { importValidators } from "./src/validators";
import { verifyCommit } from "./src/lightclient";

// JSON from CometBFT RPC: /commit and /validators
const sh = importCommit(commitJson);
const { proto: vset, cryptoIndex } = await importValidators(validatorsJson);

const result = await verifyCommit(sh, vset, cryptoIndex);
```

## Tests

```bash
$ npm run coverage

> cometbft@0.1.0 coverage
> vitest run --coverage


 RUN  v3.2.4 /Users/g/cometbft-ts
      Coverage enabled with v8

 ✓ src/tests/encoding.test.ts (6 tests) 2ms
 ✓ src/tests/commit.test.ts (27 tests) 7ms
 ✓ src/tests/validators.test.ts (18 tests) 13ms
 ✓ src/tests/lightclient.test.ts (19 tests) 11ms

 Test Files  4 passed (4)
      Tests  70 passed (70)
   Start at  20:45:26
   Duration  377ms (transform 133ms, setup 0ms, collect 222ms, tests 33ms, environment 0ms, prepare 241ms)

 % Coverage report from v8
----------------|---------|----------|---------|---------|-------------------
File            | % Stmts | % Branch | % Funcs | % Lines | Uncovered Line #s
----------------|---------|----------|---------|---------|-------------------
All files       |     100 |      100 |     100 |     100 |
 commit.ts      |     100 |      100 |     100 |     100 |
 encoding.ts    |     100 |      100 |     100 |     100 |
 lightclient.ts |     100 |      100 |     100 |     100 |
 types.ts       |       0 |        0 |       0 |       0 |
 validators.ts  |     100 |      100 |     100 |     100 |
----------------|---------|----------|---------|---------|-------------------
```