{
  "definitions": {
    "events": {
      "$ref": "#/definitions/Events",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "definitions": {
        "Events": {
          "additionalProperties": false,
          "properties": {
            "setVal": {
              "additionalProperties": false,
              "properties": {
                "id": {
                  "type": "string"
                },
                "valid": {
                  "type": "boolean"
                },
                "value": {
                  "items": {
                    "additionalProperties": {},
                    "properties": {
                      "_objId": {
                        "type": "string"
                      }
                    },
                    "required": [
                      "_objId"
                    ],
                    "type": "object"
                  },
                  "type": "array"
                }
              },
              "required": [
                "value",
                "valid",
                "id"
              ],
              "type": "object"
            }
          },
          "required": [
            "setVal"
          ],
          "type": "object"
        }
      }
    },
    "component": {
      "$ref": "#/definitions/Component",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "definitions": {
        "Component": {
          "additionalProperties": false,
          "properties": {
            "id": {
              "type": "string"
            },
            "schemaentry": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "$ref": "#/definitions/FormSchemaEntry"
                }
              ],
              "description": "JSON string from HTML, or a parsed object from JavaScript (`parseSchemaentryProp`)."
            },
            "show_validation": {
              "enum": [
                "yes",
                "no"
              ],
              "type": "string"
            },
            "style": {
              "type": "string"
            }
          },
          "type": "object"
        },
        "FormSchemaDependency": {
          "additionalProperties": false,
          "properties": {
            "id": {
              "type": "string"
            },
            "values": {
              "items": {
                "type": [
                  "string",
                  "number",
                  "boolean"
                ]
              },
              "type": "array"
            }
          },
          "required": [
            "id"
          ],
          "type": "object"
        },
        "FormSchemaEntry": {
          "additionalProperties": false,
          "properties": {
            "array_style": {
              "description": "For `type: \"arraytags\"` only: forwarded to `hb-input-array-tags` as the host `array_style` attribute (`\"pills\"` | `\"area\"` string). When omitted, **`hb-form` defaults to `\"area\"`**.",
              "type": "string"
            },
            "dependencies": {
              "items": {
                "$ref": "#/definitions/FormSchemaDependency"
              },
              "type": "array"
            },
            "disabled": {
              "type": "boolean"
            },
            "id": {
              "type": "string"
            },
            "label": {
              "type": "string"
            },
            "params": {
              "$ref": "#/definitions/InputArrayObjectsParams"
            },
            "placeholder": {
              "type": "string"
            },
            "readonly": {
              "type": "boolean"
            },
            "required": {
              "type": "boolean"
            },
            "type": {
              "description": "Discriminator for `hb-form` rows (`row`, `text`, `number`, …). May be omitted on a standalone `schemaentry` when implied by the host tag.",
              "type": "string"
            },
            "validationRegex": {
              "type": "string"
            },
            "validationTip": {
              "type": "string"
            },
            "value": {}
          },
          "required": [
            "id"
          ],
          "type": "object"
        },
        "InputArrayObjectsNestedField": {
          "additionalProperties": false,
          "description": "Same shape as `FormSchemaEntry` in `hb-form` (nested rows inside `params.schema`). Defined locally so `ts-json-schema-generator` does not merge two symbols named `FormSchemaEntry`.\n\nNested `params` may include any keys supported by the embedded input types (min/max, options, …) in addition to `columns` for `type: \"row\"`.",
          "properties": {
            "array_style": {
              "description": "For `type: \"arraytags\"` only: forwarded to `hb-input-array-tags` as the host `array_style` attribute (`\"pills\"` | `\"area\"` string). When omitted, **`hb-form` defaults to `\"area\"`**.",
              "type": "string"
            },
            "dependencies": {
              "items": {
                "$ref": "#/definitions/FormSchemaDependency"
              },
              "type": "array"
            },
            "disabled": {
              "type": "boolean"
            },
            "id": {
              "type": "string"
            },
            "label": {
              "type": "string"
            },
            "params": {
              "properties": {
                "columns": {
                  "items": {
                    "$ref": "#/definitions/InputArrayObjectsNestedField"
                  },
                  "type": "array"
                }
              },
              "type": "object"
            },
            "placeholder": {
              "type": "string"
            },
            "readonly": {
              "type": "boolean"
            },
            "required": {
              "type": "boolean"
            },
            "type": {
              "description": "Discriminator for `hb-form` rows (`row`, `text`, `number`, …). May be omitted on a standalone `schemaentry` when implied by the host tag.",
              "type": "string"
            },
            "validationRegex": {
              "type": "string"
            },
            "validationTip": {
              "type": "string"
            },
            "value": {}
          },
          "required": [
            "id",
            "type"
          ],
          "type": "object"
        },
        "InputArrayObjectsParams": {
          "additionalProperties": false,
          "properties": {
            "addPropertyLabel": {
              "description": "Label for the “add property” / add-row control.",
              "type": "string"
            },
            "columns": {
              "description": "Rarely used; mirror of row-style layouts.",
              "items": {
                "$ref": "#/definitions/InputArrayObjectsNestedField"
              },
              "type": "array"
            },
            "schema": {
              "description": "Sub-form template for each row in the table.",
              "items": {
                "$ref": "#/definitions/InputArrayObjectsNestedField"
              },
              "type": "array"
            }
          },
          "type": "object"
        }
      }
    }
  },
  "description": "Repeating records: `hb-table` for rows + `hb-form` from `params.schema` (`InputArrayObjectsParams`) to add entries; optional `addPropertyLabel`, optional `columns` mirror. Row `value` is an array of objects with `_objId`. Nested schema rows follow the same shape as `hb-form` (`InputArrayObjectsNestedField` in typings). Registers `@htmlbricks/hb-form` and `@htmlbricks/hb-table`. Dispatches `setVal` `{ value: array, valid, id }`. Bulma `button is-info`, `help is-danger`, container themed on `:host`. See `InputArrayObjectsParams`, `FormSchemaEntry`, `Events` in `types/webcomponent.type.d.ts`.",
  "storybookArgs": {
    "schemaentry": {
      "control": {
        "type": "object"
      }
    },
    "show_validation": {
      "control": {
        "type": "boolean"
      }
    },
    "setVal": {
      "action": "setVal"
    }
  },
  "styleSetup": {
    "vars": [
      {
        "name": "--bulma-text",
        "valueType": "color",
        "defaultValue": "",
        "description": "Table labels, form labels, and help text color."
      },
      {
        "name": "--bulma-border",
        "valueType": "color",
        "defaultValue": "",
        "description": "Outer container border around the table + form block."
      },
      {
        "name": "--bulma-danger",
        "valueType": "color",
        "defaultValue": "",
        "description": "Invalid validation message (`help is-danger`) when `show_validation` is on."
      },
      {
        "name": "--bulma-link",
        "valueType": "color",
        "defaultValue": "",
        "description": "Primary actions (e.g. add-row control styled with `is-info`)."
      },
      {
        "name": "--bulma-scheme-main",
        "valueType": "color",
        "defaultValue": "",
        "description": "Surface behind nested controls inside the shadow tree."
      },
      {
        "name": "--bulma-radius",
        "valueType": "number",
        "defaultValue": "",
        "description": "Corner radius for buttons and table chrome where Bulma applies it."
      }
    ],
    "parts": [
      {
        "name": "properties-container",
        "description": "Wrapper around the repeating table + add form; use for host-level layout or border overrides."
      },
      {
        "name": "invalid-feedback",
        "description": "The `p.help.is-danger` validation message when `show_validation` is `yes` and the value is invalid."
      }
    ]
  },
  "contributors": [],
  "htmlSlots": [
    {
      "name": "add-object-label",
      "description": "Optional light-DOM label for the add / new-row control (overrides `params.addPropertyLabel` when slotted)."
    }
  ],
  "i18n": [],
  "examples": [
    {
      "name": "default",
      "data": {
        "schemaentry": {
          "placeholder": "Insert your last name here...",
          "id": "lastName",
          "validationTip": "This field cannot be empty.",
          "params": {
            "schema": [
              {
                "id": "name-row",
                "type": "row",
                "params": {
                  "columns": [
                    {
                      "type": "text",
                      "placeholder": "Insert your first name here...",
                      "id": "firstNamee",
                      "required": true,
                      "label": "First Namee",
                      "validationTip": "This field cannot be empty."
                    },
                    {
                      "type": "text",
                      "placeholder": "Insert your last name here...",
                      "id": "lastName",
                      "label": "Last Nam3e",
                      "validationTip": "This field cannot be empty."
                    }
                  ]
                }
              }
            ]
          }
        }
      }
    },
    {
      "name": "withdata",
      "data": {
        "schemaentry": {
          "placeholder": "Insert your last name here...",
          "id": "lastName",
          "validationTip": "This field cannot be empty.",
          "params": {
            "schema": [
              {
                "id": "name-row",
                "type": "row",
                "params": {
                  "columns": [
                    {
                      "type": "text",
                      "placeholder": "Insert your first name here...",
                      "id": "firstNamee",
                      "required": true,
                      "label": "First Namee",
                      "validationTip": "This field cannot be empty."
                    },
                    {
                      "type": "text",
                      "placeholder": "Insert your last name here...",
                      "id": "lastName",
                      "label": "Last Nam3e",
                      "validationTip": "This field cannot be empty."
                    }
                  ]
                }
              }
            ]
          },
          "value": [
            {
              "firstNamee": "Dario",
              "lastName": "Rossi",
              "_objId": "testo1"
            },
            {
              "firstNamee": "Mario",
              "lastName": "Bianchi",
              "_objId": "testo2"
            }
          ]
        }
      }
    },
    {
      "name": "validationVisible",
      "description": "Surfaces validation feedback for the repeating editor.",
      "data": {
        "show_validation": "yes",
        "schemaentry": {
          "placeholder": "Insert your last name here...",
          "id": "lastName",
          "required": true,
          "validationTip": "Add at least one complete row.",
          "params": {
            "schema": [
              {
                "id": "name-row",
                "type": "row",
                "params": {
                  "columns": [
                    {
                      "type": "text",
                      "placeholder": "Insert your first name here...",
                      "id": "firstNamee",
                      "required": true,
                      "label": "First Namee",
                      "validationTip": "This field cannot be empty."
                    },
                    {
                      "type": "text",
                      "placeholder": "Insert your last name here...",
                      "id": "lastName",
                      "label": "Last Nam3e",
                      "validationTip": "This field cannot be empty."
                    }
                  ]
                }
              }
            ]
          }
        }
      }
    },
    {
      "name": "emptyList",
      "description": "Schema ready for new rows with an empty initial value array.",
      "data": {
        "schemaentry": {
          "placeholder": "Insert your last name here...",
          "id": "lastName",
          "validationTip": "This field cannot be empty.",
          "params": {
            "schema": [
              {
                "id": "name-row",
                "type": "row",
                "params": {
                  "columns": [
                    {
                      "type": "text",
                      "placeholder": "Insert your first name here...",
                      "id": "firstNamee",
                      "required": true,
                      "label": "First Namee",
                      "validationTip": "This field cannot be empty."
                    },
                    {
                      "type": "text",
                      "placeholder": "Insert your last name here...",
                      "id": "lastName",
                      "label": "Last Nam3e",
                      "validationTip": "This field cannot be empty."
                    }
                  ]
                }
              }
            ]
          },
          "value": []
        }
      }
    },
    {
      "name": "disabled",
      "description": "Repeating editor is fully disabled: no add, no delete, form hidden.",
      "data": {
        "schemaentry": {
          "id": "objectsDisabled",
          "disabled": true,
          "params": {
            "schema": [
              {
                "id": "name-row",
                "type": "row",
                "params": {
                  "columns": [
                    {
                      "type": "text",
                      "placeholder": "Insert your first name here...",
                      "id": "firstNamee",
                      "required": true,
                      "label": "First Namee",
                      "validationTip": "This field cannot be empty."
                    },
                    {
                      "type": "text",
                      "placeholder": "Insert your last name here...",
                      "id": "lastName",
                      "label": "Last Nam3e",
                      "validationTip": "This field cannot be empty."
                    }
                  ]
                }
              }
            ]
          },
          "value": [
            {
              "firstNamee": "Dario",
              "lastName": "Rossi",
              "_objId": "locked1"
            },
            {
              "firstNamee": "Mario",
              "lastName": "Bianchi",
              "_objId": "locked2"
            }
          ]
        }
      }
    }
  ],
  "iifeIntegrity": "sha384-Vp09F0ZG/TbBeE5j3VsUKym0IwrXFTUMRjrBzLJ5PDc5kSd10OgTD/SsRKHQ13v/",
  "dependencies": [
    {
      "name": "hb-form",
      "dependencies": [
        {
          "name": "hb-input-area",
          "dependencies": []
        },
        {
          "name": "hb-input-array-objects",
          "dependencies": []
        },
        {
          "name": "hb-input-array-tags",
          "dependencies": []
        },
        {
          "name": "hb-input-checkbox",
          "dependencies": []
        },
        {
          "name": "hb-input-color",
          "dependencies": []
        },
        {
          "name": "hb-input-coords",
          "dependencies": [
            {
              "name": "hb-input-number",
              "dependencies": []
            },
            {
              "name": "hb-map",
              "dependencies": []
            }
          ]
        },
        {
          "name": "hb-input-date",
          "dependencies": []
        },
        {
          "name": "hb-input-datetime",
          "dependencies": [
            {
              "name": "hb-input-date",
              "dependencies": []
            },
            {
              "name": "hb-input-number",
              "dependencies": []
            }
          ]
        },
        {
          "name": "hb-input-email",
          "dependencies": []
        },
        {
          "name": "hb-input-file",
          "dependencies": []
        },
        {
          "name": "hb-input-number",
          "dependencies": []
        },
        {
          "name": "hb-input-radio",
          "dependencies": []
        },
        {
          "name": "hb-input-range",
          "dependencies": []
        },
        {
          "name": "hb-input-select",
          "dependencies": []
        },
        {
          "name": "hb-input-text",
          "dependencies": []
        }
      ]
    },
    {
      "name": "hb-table",
      "dependencies": [
        {
          "name": "hb-dialog",
          "dependencies": []
        },
        {
          "name": "hb-dialogform",
          "dependencies": [
            {
              "name": "hb-dialog",
              "dependencies": []
            },
            {
              "name": "hb-form",
              "dependencies": [
                {
                  "name": "hb-input-area",
                  "dependencies": []
                },
                {
                  "name": "hb-input-array-objects",
                  "dependencies": []
                },
                {
                  "name": "hb-input-array-tags",
                  "dependencies": []
                },
                {
                  "name": "hb-input-checkbox",
                  "dependencies": []
                },
                {
                  "name": "hb-input-color",
                  "dependencies": []
                },
                {
                  "name": "hb-input-coords",
                  "dependencies": [
                    {
                      "name": "hb-input-number",
                      "dependencies": []
                    },
                    {
                      "name": "hb-map",
                      "dependencies": []
                    }
                  ]
                },
                {
                  "name": "hb-input-date",
                  "dependencies": []
                },
                {
                  "name": "hb-input-datetime",
                  "dependencies": [
                    {
                      "name": "hb-input-date",
                      "dependencies": []
                    },
                    {
                      "name": "hb-input-number",
                      "dependencies": []
                    }
                  ]
                },
                {
                  "name": "hb-input-email",
                  "dependencies": []
                },
                {
                  "name": "hb-input-file",
                  "dependencies": []
                },
                {
                  "name": "hb-input-number",
                  "dependencies": []
                },
                {
                  "name": "hb-input-radio",
                  "dependencies": []
                },
                {
                  "name": "hb-input-range",
                  "dependencies": []
                },
                {
                  "name": "hb-input-select",
                  "dependencies": []
                },
                {
                  "name": "hb-input-text",
                  "dependencies": []
                }
              ]
            }
          ]
        },
        {
          "name": "hb-paginate",
          "dependencies": [
            {
              "name": "hb-input-number",
              "dependencies": []
            },
            {
              "name": "hb-input-select",
              "dependencies": []
            }
          ]
        },
        {
          "name": "hb-tooltip",
          "dependencies": []
        }
      ]
    }
  ],
  "screenshots": [],
  "licenses": [
    {
      "type": "Apache-2.0",
      "path": "LICENSE.md",
      "cost": 0,
      "currency": "EUR"
    }
  ],
  "readmePath": "README.md",
  "name": "hb-input-array-objects",
  "category": "inputs",
  "tags": [
    "inputs"
  ],
  "size": {},
  "iifePath": "main.iife.js",
  "repoName": "@htmlbricks/hb-input-array-objects",
  "version": "0.76.5"
}