open-index/open-npm huggingface dataset:
npm package: @horus.dev/framework
Description: This is a package generated using the `dom-library` template of the horus.dev monorepo.
Author: Horus Lugo
Latest version: 0.0.0

# framework

This is a package generated using the `dom-library` template of the horus.dev monorepo.

It's the best starting point for a new package, as it provides the following out of the box:

- `@horus.dev/eslint-config`
- `@horus.dev/tsconfig`
- Common npm scripts for developing, building, testing, and linting.

## Usage

To use this package from another package or app in the monorepo, you can install it using the following command:

```bash
pnpm add framework@workspace:*
```

## Development

If you want to work on this package, you can clone the monorepo and run the following commands:

```bash
pnpm install
cd packages/framework
pnpm dev
```

## Scripts

The following scripts are available:

- `pnpm dev`. Starts the compiler in watch mode.
- `pnpm build`. Builds the package.
- `pnpm lint`. Lints the package with ESLint and Prettier.
- `pnpm lint:fix`. Runs ESLint and Prettier to fix any styling issues.
- `pnpm typecheck`. Runs the TypeScript type checker.
npm package: @horus.dev/remix-relay
Description: This is a package generated using the `react-library` template of the horus.dev monorepo.
Author: Horus Lugo
Latest version: 0.0.0

# remix-relay

This is a package generated using the `react-library` template of the horus.dev monorepo.

It's the best starting point for a new package, as it provides the following out of the box:

- `@horus.dev/eslint-config`
- `@horus.dev/tsconfig`
- Common npm scripts for developing, building, testing, and linting.

## Usage

To use this package from another package or app in the monorepo, you can install it using the following command:

```bash
pnpm add remix-relay@workspace:*
```

## Development

If you want to work on this package, you can clone the monorepo and run the following commands:

```bash
pnpm install
cd packages/remix-relay
pnpm dev
```

## Scripts

The following scripts are available:

- `pnpm dev`. Starts the compiler in watch mode.
- `pnpm build`. Builds the package.
- `pnpm lint`. Lints the package with ESLint and Prettier.
- `pnpm lint:fix`. Runs ESLint and Prettier to fix any styling issues.
- `pnpm typecheck`. Runs the TypeScript type checker.
npm package: @horus.dev/tw-dynamic-themes
Description: Dynamic themes for TailwindCSS
Latest version: 0.0.3

# @horus.dev/tw-dynamic-themes

This package provides a simple way to add dynamic themes to your Tailwind project.

## Install the package

```bash
pnpm add @horus.dev/tw-dynamic-themes
```

## Getting Started

This package assumes a standard Tailwind setup, so make sure you have Tailwind installed and configured in your project before continuing.

1. Choose your accent color and add it to your `tailwind.config.js` file. Example:

```js
import type { Config } from "tailwindcss";
import colors from "tailwindcss/colors";

import { dynamicTwClasses } from "@horus.dev/tw-dynamic-themes/tailwind";

const config: Config = {
  content: [
    "./src/**/*.{js,ts,jsx,tsx}",
    "index.html",
  ],
  darkMode: "class",
  theme: {
    extend: {
      colors: {
        accent: dynamicTwClasses("accent", 40),

        // These are not required, but recommended since it's
        // best to use semantic names for your colors.
        danger: colors.red,
        success: colors.green,
      },
    },
  },
};

export default config;
```

2. Within your app's main CSS file, add the following to ensure outline colors are updated when the theme changes:

```css
@tailwind base;
@tailwind components;
@tailwind utilities;

* {
  @apply outline-accent-500 dark:outline-accent-400;
}
```

3. Dark mode is defined with the `dark` class. If you want to use dark mode, make sure to pass it to the HTML element. Example:

```html
<html class="dark">
  ...
</html>
```

4. On page load, we need to set the theme. To do this, we need to call the `getVariables` function from the `@horus.dev/tw-dynamic-themes/runtime` module. Example:

```js
import { getVariables } from "@horus.dev/tw-dynamic-themes/runtime";

async function bootstrap() {
  const hue = localStorage.getItem("hue") ?? "40";
  const variables = getVariables({ baseName: "accent", hue: Number(hue) });

  Object.entries(variables).forEach(([key, value]) => {
    document.documentElement.style.setProperty(key, value);
  });

  // Load your app here
}

bootstrap();
```

5. All set, with that code you should be able to use the `accent` color in your Tailwind classes. Example:

```html
<button
  class="bg-accent-500 hover:bg-accent-600 text-white font-bold py-2 px-4 rounded"
>
  Button
</button>
```

## Using a hue picker

This package doesn't provide a hue picker, but the original demo used the `simple-hue-picker/react` module. Ensure to import it dynamically with `React.lazy` to avoid loading it when it's not needed.

# Acknowledgments

- [Better dynamic themes in Tailwind with OKLCH color magic](https://evilmartians.com/chronicles/better-dynamic-themes-in-tailwind-with-oklch-color-magic) by [Evil Martians](https://evilmartians.com/)

- [Demo from which I took the initial implementation](https://github.com/dkzlv/tw-dynamic-themes/tree/main) by @dkzlv
npm package: @horussw/auth-core
Description: Core contracts and engines for multi-tenant AuthN/AuthZ.
Latest version: 0.1.0

# @horussw/auth-core

Core contracts and authorization engine for multi-tenant AuthN/AuthZ.

## Install
```bash
npm install @horussw/auth-core
```

## Usage (minimal)
```ts
import { AuthorizationEngine, BasicPolicyEngine } from '@horussw/auth-core';

const engine = new AuthorizationEngine({
  permissionProvider,
  policyEngine: new BasicPolicyEngine({ enforceSameTenant: true })
});
```

See `docs/en` or `docs/es` for full guidance.
npm package: @horussw/auth-jwt
Description: JWT verification and principal resolution for auth-core.
Latest version: 0.1.0

# @horussw/auth-jwt

JWT adapter for `@horussw/auth-core` (Bearer extractor, verifier, principal resolver).

## Install
```bash
npm install @horussw/auth-jwt @horussw/auth-core
```

## Usage (minimal)
```ts
import { BearerTokenExtractor, JwtTokenVerifier, JwtPrincipalResolver } from '@horussw/auth-jwt';

const extractor = new BearerTokenExtractor();
const verifier = new JwtTokenVerifier({ publicKey: 'secret', algorithms: ['HS256'] });
const resolver = new JwtPrincipalResolver();
```

See `docs/en` or `docs/es` for full guidance.
npm package: @horussw/auth-nest
Description: NestJS adapters (guards, decorators, module) for auth-core.
Latest version: 0.1.0

# @horussw/auth-nest

NestJS adapters (module, guards, decorators) for `@horussw/auth-core`.

## Install
```bash
npm install @horussw/auth-nest @horussw/auth-core
```

## Usage (minimal)
```ts
import { AuthModule } from '@horussw/auth-nest';

@Module({
  imports: [AuthModule.forRoot({ /* providers */ })]
})
export class AppModule {}
```

See `docs/en` or `docs/es` for full guidance.