@ngstarter-ui/components 21.0.42 → 21.0.43
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +0 -1
- package/ai/component-registry.json +26 -101
- package/fesm2022/ngstarter-ui-components-form-builder.mjs +204 -19
- package/fesm2022/ngstarter-ui-components-form-builder.mjs.map +1 -1
- package/package.json +1 -5
- package/types/ngstarter-ui-components-form-builder.d.ts +41 -5
- package/fesm2022/ngstarter-ui-components-form-renderer-autocomplete-many-field-CGQ3pJaG.mjs +0 -124
- package/fesm2022/ngstarter-ui-components-form-renderer-autocomplete-many-field-CGQ3pJaG.mjs.map +0 -1
- package/fesm2022/ngstarter-ui-components-form-renderer-checkbox-field-CoyKdvhV.mjs +0 -22
- package/fesm2022/ngstarter-ui-components-form-renderer-checkbox-field-CoyKdvhV.mjs.map +0 -1
- package/fesm2022/ngstarter-ui-components-form-renderer-datepicker-field-Cf3jfPv7.mjs +0 -44
- package/fesm2022/ngstarter-ui-components-form-renderer-datepicker-field-Cf3jfPv7.mjs.map +0 -1
- package/fesm2022/ngstarter-ui-components-form-renderer-divider-content-D8Sffofu.mjs +0 -17
- package/fesm2022/ngstarter-ui-components-form-renderer-divider-content-D8Sffofu.mjs.map +0 -1
- package/fesm2022/ngstarter-ui-components-form-renderer-image-content-ICTwkZPa.mjs +0 -17
- package/fesm2022/ngstarter-ui-components-form-renderer-image-content-ICTwkZPa.mjs.map +0 -1
- package/fesm2022/ngstarter-ui-components-form-renderer-input-field-tZHU8-_L.mjs +0 -35
- package/fesm2022/ngstarter-ui-components-form-renderer-input-field-tZHU8-_L.mjs.map +0 -1
- package/fesm2022/ngstarter-ui-components-form-renderer-radio-group-field-DugkPKYU.mjs +0 -38
- package/fesm2022/ngstarter-ui-components-form-renderer-radio-group-field-DugkPKYU.mjs.map +0 -1
- package/fesm2022/ngstarter-ui-components-form-renderer-select-field-DyBidcIU.mjs +0 -39
- package/fesm2022/ngstarter-ui-components-form-renderer-select-field-DyBidcIU.mjs.map +0 -1
- package/fesm2022/ngstarter-ui-components-form-renderer-text-content-BjzH_M3-.mjs +0 -24
- package/fesm2022/ngstarter-ui-components-form-renderer-text-content-BjzH_M3-.mjs.map +0 -1
- package/fesm2022/ngstarter-ui-components-form-renderer-textarea-field-DxbPsw3z.mjs +0 -37
- package/fesm2022/ngstarter-ui-components-form-renderer-textarea-field-DxbPsw3z.mjs.map +0 -1
- package/fesm2022/ngstarter-ui-components-form-renderer-timezone-field-DAWrM-jS.mjs +0 -35
- package/fesm2022/ngstarter-ui-components-form-renderer-timezone-field-DAWrM-jS.mjs.map +0 -1
- package/fesm2022/ngstarter-ui-components-form-renderer-toggle-field-iyqUrWxt.mjs +0 -22
- package/fesm2022/ngstarter-ui-components-form-renderer-toggle-field-iyqUrWxt.mjs.map +0 -1
- package/fesm2022/ngstarter-ui-components-form-renderer.mjs +0 -317
- package/fesm2022/ngstarter-ui-components-form-renderer.mjs.map +0 -1
- package/types/ngstarter-ui-components-form-renderer.d.ts +0 -121
package/README.md
CHANGED
|
@@ -102,7 +102,6 @@ The documentation site includes live demos and API examples for each component:
|
|
|
102
102
|
- [Country Select](https://docs.ngstarter.com/forms/country)
|
|
103
103
|
- [Currency Select](https://docs.ngstarter.com/forms/currency-select)
|
|
104
104
|
- [Date Format Select](https://docs.ngstarter.com/forms/date-format-select)
|
|
105
|
-
- [Form Renderer](https://docs.ngstarter.com/forms/form-renderer)
|
|
106
105
|
- [Inline Text Edit](https://docs.ngstarter.com/forms/inline-text-edit)
|
|
107
106
|
- [Input](https://docs.ngstarter.com/forms/input)
|
|
108
107
|
- [Input Mask](https://docs.ngstarter.com/forms/input-mask)
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
"generatedBy": "scripts/generate-ai-metadata.mjs",
|
|
4
4
|
"package": "@ngstarter-ui/components",
|
|
5
5
|
"description": "AI-readable registry for NgStarter UI Angular secondary entry points.",
|
|
6
|
-
"componentCount":
|
|
6
|
+
"componentCount": 126,
|
|
7
7
|
"conventions": {
|
|
8
8
|
"importPattern": "@ngstarter-ui/components/<component>",
|
|
9
9
|
"selectorPrefix": "ngs",
|
|
@@ -4364,6 +4364,18 @@
|
|
|
4364
4364
|
"docsOverviewSource": "projects/docs/src/app/libraries/form-builder/overview/overview.html",
|
|
4365
4365
|
"purpose": "The NgStarter Angular Form Builder library provides a drag-and-drop form designer, schema model, runtime renderer, and provider registration API for custom field types and field-specific settings.",
|
|
4366
4366
|
"useWhen": "Choose Form Builder when the workflow matches examples such as Basic form builder, Custom field registration, Form builder renderer.",
|
|
4367
|
+
"schemaFormat": [
|
|
4368
|
+
"FormBuilderSchema shape: { title?: string; fields?: FormBuilderField[]; layout?: FormBuilderLayoutItem[]; sections: FormBuilderSection[] }.",
|
|
4369
|
+
"Root-level fields live in schema.fields and can be placed outside sections. Sections live in schema.sections and contain section.fields. The optional schema.layout array controls top-level canvas order with items like { kind: \"field\" | \"section\", id }.",
|
|
4370
|
+
"FormBuilderSection shape: { id: string; title: string; description?: string; collapsed?: boolean; fields: FormBuilderField[] }.",
|
|
4371
|
+
"FormBuilderField shape: { id: string; name: string; type: string; kind?: \"field\" | \"layout\" | \"static\"; label: string; placeholder?: string; hint?: string; defaultValue?: any; width?: 1..12; multiple?: boolean; clearable?: boolean; required?: boolean; disabled?: boolean; readonly?: boolean; options?: FormBuilderOption[]; validation?: FormBuilderValidationRule[]; visibility?: { form?: boolean; email?: boolean; pdf?: boolean; condition?: string }; settings?: Record<string, any>; children?: FormBuilderField[] }.",
|
|
4372
|
+
"Layout blocks are represented as fields with kind: \"layout\". The built-in group block uses type: \"group\", width: 12, and children: FormBuilderField[]. Section is a top-level FormBuilderSection, not a child field, and should not be nested inside another section/group.",
|
|
4373
|
+
"Static blocks are represented as fields with kind: \"static\". The built-in spacer block uses type: \"spacer\", width: 12, and settings.height with one of 8, 16, 24, 32, 48, or 64.",
|
|
4374
|
+
"Use width as a 12-column span. Default fields are 12 columns unless a narrower width is set. Nested children in group are sorted and rendered inside that group container.",
|
|
4375
|
+
"Option fields use options entries { label: string; value: any; selected?: boolean }. For select, multiple controls array values; clearable enables the clear action. For radio, settings.orientation is \"vertical\" by default and can be \"horizontal\". Date and time fields include type: \"date\" for a single date, type: \"time\" for HH:mm time values, and type: \"date-range\" for a DateRange-like value with start/end dates. Upload fields use type: \"upload\", multiple for File[] values, and settings.accept for comma-separated MIME types such as \"*/*\" or \"image/*,application/pdf\". Upload handling can be provided with [uploadCallback] on ngs-form-builder/ngs-form-renderer or globally through provideFormBuilder({ uploadCallback }). The callback receives { field, control, event, files, fileList, multiple } and may return sync/async value stored in the form control.",
|
|
4376
|
+
"Use <ngs-form-renderer> from @ngstarter-ui/components/form-builder to render a saved FormBuilderSchema as a runtime form. The Angular class export is FormBuilderRenderer.",
|
|
4377
|
+
"Register custom placeholders through provideFormBuilder({ fields/items/settings }) using formBuilderField(), formBuilderItem(), and formBuilderSettings(). Custom field definitions can provide defaults, renderer, settings, validators, acceptsChildren, group, icon, and kind."
|
|
4378
|
+
],
|
|
4367
4379
|
"exampleTopics": [
|
|
4368
4380
|
"Basic form builder",
|
|
4369
4381
|
"Custom field registration",
|
|
@@ -4387,7 +4399,7 @@
|
|
|
4387
4399
|
"name": "form-builder-renderer-example",
|
|
4388
4400
|
"title": "Form builder renderer",
|
|
4389
4401
|
"file": "projects/docs/src/app/libraries/form-builder/_examples/form-builder-renderer-example/form-builder-renderer-example.html",
|
|
4390
|
-
"source": "<div class=\"grid gap-6 lg:grid-cols-[minmax(0,1fr)_320px]\">\n <ngs-form-
|
|
4402
|
+
"source": "<div class=\"grid gap-6 lg:grid-cols-[minmax(0,1fr)_320px]\">\n <ngs-form-renderer\n [schema]=\"schema\"\n [(value)]=\"value\"\n submitLabel=\"Save profile\"\n (formSubmit)=\"submittedValue.set($event)\"/>\n <ngs-card>\n <ngs-card-header>\n <ngs-card-title>Submitted value</ngs-card-title>\n </ngs-card-header>\n <ngs-card-content>\n <pre>{{ submittedValue() || value() | json }}</pre>\n </ngs-card-content>\n </ngs-card>\n</div>"
|
|
4391
4403
|
}
|
|
4392
4404
|
],
|
|
4393
4405
|
"previewAsset": null,
|
|
@@ -4397,8 +4409,8 @@
|
|
|
4397
4409
|
"ngs-basic-form-builder-section-settings",
|
|
4398
4410
|
"ngs-form-builder",
|
|
4399
4411
|
"ngs-form-builder-field-host",
|
|
4400
|
-
"ngs-form-builder-
|
|
4401
|
-
"ngs-form-
|
|
4412
|
+
"ngs-form-builder-settings-host",
|
|
4413
|
+
"ngs-form-renderer"
|
|
4402
4414
|
],
|
|
4403
4415
|
"exportedSymbols": [
|
|
4404
4416
|
"BasicFormBuilderFieldSettings",
|
|
@@ -4410,6 +4422,7 @@
|
|
|
4410
4422
|
"FORM_BUILDER_FIELDS",
|
|
4411
4423
|
"FORM_BUILDER_ITEMS",
|
|
4412
4424
|
"FORM_BUILDER_SETTINGS",
|
|
4425
|
+
"FORM_BUILDER_UPLOAD_CALLBACK",
|
|
4413
4426
|
"FormBuilder",
|
|
4414
4427
|
"FormBuilderComponentImporter",
|
|
4415
4428
|
"formBuilderField",
|
|
@@ -4433,6 +4446,8 @@
|
|
|
4433
4446
|
"FormBuilderSettingsContext",
|
|
4434
4447
|
"FormBuilderSettingsDefinition",
|
|
4435
4448
|
"FormBuilderSettingsHost",
|
|
4449
|
+
"FormBuilderUploadCallback",
|
|
4450
|
+
"FormBuilderUploadContext",
|
|
4436
4451
|
"FormBuilderValidationRule",
|
|
4437
4452
|
"FormBuilderVisibility",
|
|
4438
4453
|
"provideFormBuilder",
|
|
@@ -4450,7 +4465,8 @@
|
|
|
4450
4465
|
"section",
|
|
4451
4466
|
"settingsDefinitions",
|
|
4452
4467
|
"showSubmit",
|
|
4453
|
-
"submitLabel"
|
|
4468
|
+
"submitLabel",
|
|
4469
|
+
"uploadCallback"
|
|
4454
4470
|
],
|
|
4455
4471
|
"outputs": [
|
|
4456
4472
|
"fieldAdded",
|
|
@@ -4470,6 +4486,7 @@
|
|
|
4470
4486
|
"--ngs-color-surface",
|
|
4471
4487
|
"--ngs-color-surface-container-low",
|
|
4472
4488
|
"--ngs-color-surface-container-lowest",
|
|
4489
|
+
"--ngs-field-radius",
|
|
4473
4490
|
"--ngs-font-size-base",
|
|
4474
4491
|
"--ngs-font-size-lg",
|
|
4475
4492
|
"--ngs-font-size-sm",
|
|
@@ -4483,7 +4500,9 @@
|
|
|
4483
4500
|
"--ngs-tree-node-drop-line-color",
|
|
4484
4501
|
"--ngs-tree-node-drop-target-bg",
|
|
4485
4502
|
"--ngs-tree-node-drop-target-outline",
|
|
4486
|
-
"--ngs-tree-node-gap"
|
|
4503
|
+
"--ngs-tree-node-gap",
|
|
4504
|
+
"--ngs-upload-area-border-radius",
|
|
4505
|
+
"--ngs-upload-area-padding"
|
|
4487
4506
|
],
|
|
4488
4507
|
"example": null
|
|
4489
4508
|
},
|
|
@@ -4588,100 +4607,6 @@
|
|
|
4588
4607
|
],
|
|
4589
4608
|
"example": null
|
|
4590
4609
|
},
|
|
4591
|
-
{
|
|
4592
|
-
"name": "form-renderer",
|
|
4593
|
-
"title": "Form Renderer",
|
|
4594
|
-
"overviewName": "Form Renderer",
|
|
4595
|
-
"category": "libraries",
|
|
4596
|
-
"package": "@ngstarter-ui/components",
|
|
4597
|
-
"importPath": "@ngstarter-ui/components/form-renderer",
|
|
4598
|
-
"publicApi": "projects/components/form-renderer/public-api.ts",
|
|
4599
|
-
"sourceRoot": "projects/components/form-renderer/src",
|
|
4600
|
-
"docsPath": "/libraries/form-renderer",
|
|
4601
|
-
"docsOverviewSource": "projects/docs/src/app/libraries/form-renderer/overview/overview.html",
|
|
4602
|
-
"purpose": "Render backend-driven or config-driven forms from a FormConfig.",
|
|
4603
|
-
"useWhen": "Use when the backend or an admin configuration defines the form structure: dynamic settings, surveys, onboarding schemas, profile or config forms, CMS forms, tenant-specific forms, and feature-specific forms where fields can change without editing the Angular template. FormRenderer creates a FormGroup, renders fields from elements, places them through layout, applies validators and crossValidators, handles initialValue, visibleWhen, disabled state, content blocks, and emits valueChanges, formSubmit, and initialized. Do not use for ordinary static forms where fields are known in Angular code; build those manually with TailwindCSS grid/flex layout and one ngs-form-field per control. Do not use as a replacement for FormField, a wizard/stepper workflow, or an arbitrary page builder.",
|
|
4604
|
-
"exampleTopics": [
|
|
4605
|
-
"Basic form renderer"
|
|
4606
|
-
],
|
|
4607
|
-
"minimalExample": "<ngs-form-renderer #formRenderer\n [config]=\"formConfig()\"\n [initialValue]=\"initialValue()\"\n (valueChanges)=\"onValueChanges($event)\"\n (formSubmit)=\"onFormSubmit($event)\" />\n<div class=\"mt-3\">\n <button ngsButton=\"filled\" (click)=\"formRenderer.submit()\">Submit</button>\n</div>\n@if(submittedData()) {\n <div class=\"font-bold mb-3 mt-6\">Submitted data:</div>\n <pre>{{ submittedData() | json }}</pre>\n}",
|
|
4608
|
-
"exampleFiles": [
|
|
4609
|
-
{
|
|
4610
|
-
"name": "basic-form-renderer-example",
|
|
4611
|
-
"title": "Basic form renderer",
|
|
4612
|
-
"file": "projects/docs/src/app/libraries/form-renderer/_examples/basic-form-renderer-example/basic-form-renderer-example.html",
|
|
4613
|
-
"source": "<ngs-form-renderer #formRenderer\n [config]=\"formConfig()\"\n [initialValue]=\"initialValue()\"\n (valueChanges)=\"onValueChanges($event)\"\n (formSubmit)=\"onFormSubmit($event)\" />\n<div class=\"mt-3\">\n <button ngsButton=\"filled\" (click)=\"formRenderer.submit()\">Submit</button>\n</div>\n@if(submittedData()) {\n <div class=\"font-bold mb-3 mt-6\">Submitted data:</div>\n <pre>{{ submittedData() | json }}</pre>\n}"
|
|
4614
|
-
}
|
|
4615
|
-
],
|
|
4616
|
-
"previewAsset": "projects/components/form-renderer/preview.svg",
|
|
4617
|
-
"selectors": [
|
|
4618
|
-
"ngs-autocomplete-many-field",
|
|
4619
|
-
"ngs-checkbox-field",
|
|
4620
|
-
"ngs-component-loader",
|
|
4621
|
-
"ngs-datepicker-field",
|
|
4622
|
-
"ngs-divider-content",
|
|
4623
|
-
"ngs-form-renderer",
|
|
4624
|
-
"ngs-image-content",
|
|
4625
|
-
"ngs-input-field",
|
|
4626
|
-
"ngs-radio-group-field",
|
|
4627
|
-
"ngs-select-field",
|
|
4628
|
-
"ngs-text-content",
|
|
4629
|
-
"ngs-textarea-field",
|
|
4630
|
-
"ngs-timezone-field",
|
|
4631
|
-
"ngs-toggle-field"
|
|
4632
|
-
],
|
|
4633
|
-
"exportedSymbols": [
|
|
4634
|
-
"AutocompleteManyField",
|
|
4635
|
-
"CheckboxField",
|
|
4636
|
-
"ComponentConfig",
|
|
4637
|
-
"ComponentImporter",
|
|
4638
|
-
"ComponentLoader",
|
|
4639
|
-
"ComponentNode",
|
|
4640
|
-
"ComponentRegistryService",
|
|
4641
|
-
"ContentConfig",
|
|
4642
|
-
"CrossValidatorFn",
|
|
4643
|
-
"DatepickerField",
|
|
4644
|
-
"DividerContent",
|
|
4645
|
-
"FORM_RENDERER_FIELD_REGISTRY",
|
|
4646
|
-
"FormConfig",
|
|
4647
|
-
"FormFieldConfig",
|
|
4648
|
-
"FormGeneratorService",
|
|
4649
|
-
"FormRenderer",
|
|
4650
|
-
"GridNode",
|
|
4651
|
-
"ImageContent",
|
|
4652
|
-
"InputField",
|
|
4653
|
-
"LayoutNode",
|
|
4654
|
-
"RadioGroupField",
|
|
4655
|
-
"SelectField",
|
|
4656
|
-
"TextareaField",
|
|
4657
|
-
"TextContent",
|
|
4658
|
-
"TimezoneField",
|
|
4659
|
-
"ToggleField",
|
|
4660
|
-
"ValidatorConfig",
|
|
4661
|
-
"ValidatorRegistryService"
|
|
4662
|
-
],
|
|
4663
|
-
"inputs": [
|
|
4664
|
-
"colspan",
|
|
4665
|
-
"componentConfig",
|
|
4666
|
-
"config",
|
|
4667
|
-
"control"
|
|
4668
|
-
],
|
|
4669
|
-
"outputs": [
|
|
4670
|
-
"formSubmit",
|
|
4671
|
-
"initialized",
|
|
4672
|
-
"valueChanges"
|
|
4673
|
-
],
|
|
4674
|
-
"cssTokens": [
|
|
4675
|
-
"--ngs-color-outline-variant",
|
|
4676
|
-
"--ngs-font-size-xs",
|
|
4677
|
-
"--ngs-form-field-outlined-label-text-color",
|
|
4678
|
-
"--ngs-form-field-outlined-label-text-size",
|
|
4679
|
-
"--ngs-form-field-subscript-text-size",
|
|
4680
|
-
"--ngs-form-field-subscript-text-tracking",
|
|
4681
|
-
"--ngs-form-field-subscript-text-weight"
|
|
4682
|
-
],
|
|
4683
|
-
"example": null
|
|
4684
|
-
},
|
|
4685
4610
|
{
|
|
4686
4611
|
"name": "gauge",
|
|
4687
4612
|
"title": "Gauge",
|
|
@@ -10954,7 +10879,7 @@
|
|
|
10954
10879
|
"docsPath": "/libraries/visual-builder",
|
|
10955
10880
|
"docsOverviewSource": "projects/docs/src/app/libraries/visual-builder/overview/overview.html",
|
|
10956
10881
|
"purpose": "Experimental scaffold for a future no-code or low-code visual workspace.",
|
|
10957
|
-
"useWhen": "Do not use ngs-visual-builder for production admin screens, dashboards, visual editors, page builders, or real no-code/low-code workflows yet. The current component is only a placeholder: it has no inputs, outputs, layout regions, canvas, drag and drop, inspector, persistence, or editable block model. Mention it only as an experimental scaffold for future visual builder work. Use ContentEditor for block-based CMS/page content, ImageDesigner for creative image composition, Tiles for editable dashboard widgets or config-driven dashboard renderers, Grid for static dashboard layouts,
|
|
10882
|
+
"useWhen": "Do not use ngs-visual-builder for production admin screens, dashboards, visual editors, page builders, or real no-code/low-code workflows yet. The current component is only a placeholder: it has no inputs, outputs, layout regions, canvas, drag and drop, inspector, persistence, or editable block model. Mention it only as an experimental scaffold for future visual builder work. Use ContentEditor for block-based CMS/page content, ImageDesigner for creative image composition, Tiles for editable dashboard widgets or config-driven dashboard renderers, Grid for static dashboard layouts, Form Builder for schema-driven forms, KanbanBoard for workflow columns, and normal NgStarter layout/components for admin screens.",
|
|
10958
10883
|
"exampleTopics": [
|
|
10959
10884
|
"Visual Builder"
|
|
10960
10885
|
],
|