<template> <DocSectionText v-bind="$attrs"> <p> The declarative syntax provides an alternative to the programmatic syntax. The attributes that start with <i>pt</i> are interpreted differently by the component based on the format below. An IDE extension is also being planned to autocomplete the values for better developer experience in the future. </p> <DocSectionCode :code="code1" hideToggleCode hideStackBlitz /> <p>Here is another example using both syntax alternatives for the same options.</p> <DocSectionCode :code="code2" hideToggleCode hideStackBlitz /> <DocSectionCode :code="code3" hideToggleCode hideStackBlitz /> </DocSectionText> </template> <script> export default { data() { return { code1: { basic: ` <ComponentTag pt:[passthrough_key]:[attribute]="value" /> ` }, code2: { basic: ` <Panel :pt="{ root: { class='"border-1 border-solid' }, header: { 'data-test-id': 'testid', class: 'bg-blue-500', onClick: onHeaderClick } }" > ` }, code3: { basic: ` <Panel pt:root:class="border-1 border-solid" pt:header:id="headerId" pt:header:data-test-id="testId" pt:header:class="bg-blue-500" :pt:header:onClick="onHeaderClick" > ` } }; } }; </script>