@xosue-utils/inputs
v0.1.13
Published
Angular standalone form inputs (text, select, date, media, rich-text, ...) shared across apps.
Maintainers
Readme
@xosue-utils/inputs
Librería Angular 19 de inputs standalone (text, select, date, media, rich-text, …), extraída de Caludy.
Estructura
inputs/
package.json # manifiesto npm
ng-package.json # build con ng-packagr
src/
public-api.ts # API pública
config/ # provideXosueUtilsInputs / media adapters
lib/ # componentes de input
vendor/ # lucide-icon, field-help-tooltip, context-menu, pipes…Requisitos del host
En app.config.ts (o main):
import {
provideXosueUtilsInputs,
provideXosueUtilsMedia,
ContextMenuServiceComponent,
} from '@xosue-utils/inputs';
import { environment } from './enviroments/environment';
import { AuthService } from './core/services/auth.service';
import { MediaPreviewService } from '...';
import { MediaViewerService } from '...';
export const appConfig = {
providers: [
...provideXosueUtilsInputs({
apiUrl: environment.apiUrl,
getAuthToken: () => inject(AuthService).getToken(), // o closure con tu auth
}),
// Solo si usas <media-entry>
...provideXosueUtilsMedia({
preview: inject(MediaPreviewService),
viewer: inject(MediaViewerService),
}),
],
};Montá el overlay de context-menu una vez (field-help):
<context-menu-service></context-menu-service>Desarrollo local (sin publicar)
En el package.json de tu app:
"dependencies": {
"@xosue-utils/inputs": "file:../xosue-utils/inputs"
}O en tsconfig.json (path mapping sin build):
"paths": {
"@xosue-utils/inputs": ["../xosue-utils/inputs/src/public-api.ts"],
"@xosue-utils/inputs/*": ["../xosue-utils/inputs/src/*"]
}Build del paquete
cd D:\apps\xosue-utils\inputs
npm install
npm run buildLa salida queda en dist/ lista para publicar.
Cómo subirla a npm (librería oficial)
1) Cuenta y scope
- Creá cuenta en https://www.npmjs.com/signup
- Verificá el email
- Creá una organización (recomendado) p.ej.
xosue-utils: - El nombre del paquete ya es
@xosue-utils/inputs(scope = org)
Si la org xosue-utils no está libre, cambiá en package.json:
"name": "@tu-org/inputs"2) Login
npm login
# usuario, password, email, OTP si tenés 2FA
npm whoami3) Publicar
cd D:\apps\xosue-utils\inputs
npm run build
npm publish ./dist --access public--access publices obligatorio la primera vez en scopes gratuitos.- Si el paquete debe ser privado (npm Pro): omití
--access publicy usá plan de pago. - El build deja el paquete listo en
dist/(ahí está elpackage.jsonque se publica).
4) Versionado
Antes de cada release:
npm version patch # 0.1.0 → 0.1.1
# o: npm version minor / major
npm run build
npm publish ./dist --access public5) Usar desde un proyecto
npm install @xosue-utils/inputsimport { TextEntryComponent, OnlySelectComponent } from '@xosue-utils/inputs';6) GitHub Packages (alternativa a npmjs)
Si preferís GitHub:
# .npmrc en xosue-utils/inputs
@xosue-utils:registry=https://npm.pkg.github.com
//npm.pkg.github.com/:_authToken=YOUR_GH_TOKEN
npm publish ./distY en la app:
npm install @xosue-utils/inputs --registry=https://npm.pkg.github.comPeer dependencies
El host debe instalar (si aún no las tiene):
@angular/*19@lucide/angularlexical+@lexical/*(rich-text)luxon,rxjs
Nota
media-entry exige provideXosueUtilsMedia(...). El resto de inputs solo necesita provideXosueUtilsInputs(...).
