diff --git a/.github/workflows/generate_api_doc.yml b/.github/workflows/generate_api_doc.yml index 2870c3d65..56def89a6 100644 --- a/.github/workflows/generate_api_doc.yml +++ b/.github/workflows/generate_api_doc.yml @@ -12,6 +12,7 @@ permissions: jobs: build: + if: github.repository == 'primefaces/primevue' && github.ref == 'refs/heads/master' runs-on: ubuntu-latest strategy: diff --git a/.github/workflows/node.js.yml b/.github/workflows/node.js.yml index 515fb6d3c..cdea03744 100644 --- a/.github/workflows/node.js.yml +++ b/.github/workflows/node.js.yml @@ -5,7 +5,7 @@ on: branches: [master] permissions: - contents: read + contents: write jobs: build: @@ -16,10 +16,10 @@ jobs: node-version: [16.x, 18.x] steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v3 - name: Use Node.js ${{ matrix.node-version }} - uses: actions/setup-node@v2 + uses: actions/setup-node@v3 with: node-version: ${{ matrix.node-version }} cache: 'npm' @@ -31,19 +31,29 @@ jobs: - name: Lint Check if: ${{ success() }} run: | - npm run format:check + npm run lint - - name: Code Format + - name: Code Format Check + id: codeFormatCheck if: ${{ success() }} run: | npm run format:check + - name: Code Format + if: always() && steps.codeFormatCheck.outcome == 'failure' + run: | + npm run format + git config user.name "GitHub Actions Bot" + git config user.email "<>" + git commit -a -m "Code Format" + git push + - name: Security Check if: ${{ success() }} run: | npm run security:check - #- name: Test - # if: ${{ success() }} - # run: | - # npm run test:unit + - name: Unit Tests Check + if: ${{ success() }} + run: | + npm run test:unit diff --git a/.github/workflows/pr-checker.yml b/.github/workflows/pr-checker.yml index 48f6ba81e..e5d58b414 100644 --- a/.github/workflows/pr-checker.yml +++ b/.github/workflows/pr-checker.yml @@ -44,6 +44,14 @@ jobs: run: | npm run test:unit + - name: Lint + run: | + npm run lint + + - name: Security + run: | + npm run security:check + - name: Add Code Format Fail Comment if: always() && steps.codeFormat.outcome == 'failure' uses: thollander/actions-comment-pull-request@v1 diff --git a/CHANGELOG.md b/CHANGELOG.md index 69ed8fddb..97ded00d0 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,53 @@ # Changelog +## [3.28.0](https://github.com/primefaces/primevue/tree/3.28.0) (2023-05-02) + +[Full Changelog](https://github.com/primefaces/primevue/compare/3.27.0...3.28.0) + +**Implemented New Features and Enhancements:** + +- New passthrough\(pt\) property implementation for Chart & FileUpload & Message Components [\#3911](https://github.com/primefaces/primevue/issues/3911) +- New passthrough\(pt\) property implementation for Menu Components [\#3907](https://github.com/primefaces/primevue/issues/3907) +- Button: No label [\#3905](https://github.com/primefaces/primevue/issues/3905) +- Add global `pt` option to PrimeVue config [\#3902](https://github.com/primefaces/primevue/issues/3902) +- New passthrough\(pt\) property implementation for Button Components [\#3889](https://github.com/primefaces/primevue/issues/3889) +- New passthrough\(pt\) property implementation for Overlay Components [\#3885](https://github.com/primefaces/primevue/issues/3885) +- New passthrough\(pt\) property implementation for Misc Components [\#3879](https://github.com/primefaces/primevue/issues/3879) + +**Fixed bugs:** + +- Message: wrong close icon size [\#3908](https://github.com/primefaces/primevue/issues/3908) +- Panel: Header accessibility issue [\#3904](https://github.com/primefaces/primevue/issues/3904) +- Calendar: Material theme icons not visible [\#3903](https://github.com/primefaces/primevue/issues/3903) +- Password: Incorrect onClick property as scope for custom icons [\#3900](https://github.com/primefaces/primevue/issues/3900) +- AutoComplete: class style and click event refactor on `removetokenicon` scoped slot [\#3899](https://github.com/primefaces/primevue/issues/3899) +- Dropdown: Selection is not working correctly with falsy values [\#3891](https://github.com/primefaces/primevue/issues/3891) + +## [3.27.0](https://github.com/primefaces/primevue/tree/3.27.0) (2023-04-19) + +[Full Changelog](https://github.com/primefaces/primevue/compare/3.26.1...3.27.0) + +**Implemented New Features and Enhancements:** + +- Add icon templating support to components [\#3833](https://github.com/primefaces/primevue/issues/3833) +- Improve icon implementation in core [\#3832](https://github.com/primefaces/primevue/issues/3832) +- Add new Icon components [\#3829](https://github.com/primefaces/primevue/issues/3829) +- Panel: Footer Templating [\#3820](https://github.com/primefaces/primevue/issues/3820) +- AutoComplete: NumpadEnter is not recognised [\#3816](https://github.com/primefaces/primevue/issues/3816) +- Calendar: Emit year-change event via navBackward and navForward [\#3811](https://github.com/primefaces/primevue/issues/3811) +- New passthrough\(pt\) property implementation for Panel Components [\#3797](https://github.com/primefaces/primevue/issues/3797) +- Galleria: Play and Pause [\#3619](https://github.com/primefaces/primevue/issues/3619) + +**Fixed bugs:** + +- TabView: Scrollable Starting/Ending Nav Arrow Blocks First/Last Tab [\#3849](https://github.com/primefaces/primevue/issues/3849) +- DataTable Filter with Calendar is not showing in proper location [\#3632](https://github.com/primefaces/primevue/issues/3632) + +**Deprecated:** + +- Deprecated `indicator` slot [\#3871](https://github.com/primefaces/primevue/issues/3871) +- FullCalendar: Deprecated component [\#3827](https://github.com/primefaces/primevue/issues/3827) + ## [3.26.1](https://github.com/primefaces/primevue/tree/3.26.1) (2023-03-27) [Full Changelog](https://github.com/primefaces/primevue/compare/3.26.0...3.26.1) diff --git a/README.md b/README.md index 39c8509e6..b3f197029 100644 --- a/README.md +++ b/README.md @@ -15,10 +15,10 @@ PrimeVue is available at [npm](https://www.npmjs.com/package/primevue). ```` // with npm -npm install primevue primeicons +npm install primevue // with yarn -yarn add primevue primeicons +yarn add primevue ```` ## Plugin @@ -44,16 +44,13 @@ import 'primevue/resources/themes/lara-light-blue/theme.css'; // core import 'primevue/resources/primevue.min.css'; - -// icons -import 'primeicons/primeicons.css'; ``` Each PrimeVue theme has its own font family so it is suggested to apply it to your application for a unified look. ``` body { - font-family: (--font-family); + font-family: var(--font-family); } ``` @@ -96,12 +93,11 @@ Open the nuxt configuration file and add the css dependencies. export default defineNuxtConfig({ css: [ "primevue/resources/themes/lara-light-blue/theme.css", - "primevue/resources/primevue.css", - "primeicons/primeicons.css" + "primevue/resources/primevue.css" ], - build: { - transpile: ["primevue"] - } + build: { + transpile: ["primevue"] + } }) ``` diff --git a/api-generator/components/autocomplete.js b/api-generator/components/autocomplete.js index 14412ab63..e012096b8 100644 --- a/api-generator/components/autocomplete.js +++ b/api-generator/components/autocomplete.js @@ -250,6 +250,12 @@ const AutoCompleteProps = [ type: 'string', default: 'null', description: 'Identifier of the underlying input element.' + }, + { + name: 'pt', + type: 'any', + default: 'null', + description: 'Uses to pass attributes to DOM elements inside the component.' } ]; diff --git a/api-generator/components/avatar.js b/api-generator/components/avatar.js index 5146e4981..b0c96a8c6 100644 --- a/api-generator/components/avatar.js +++ b/api-generator/components/avatar.js @@ -28,6 +28,19 @@ const AvatarProps = [ type: 'string', default: 'square', description: 'Shape of the element, valid options are "square" and "circle".' + }, + { + name: 'pt', + type: 'any', + default: 'null', + description: 'Uses to pass attributes to DOM elements inside the component.' + } +]; + +const AvatarSlots = [ + { + name: 'icon', + description: 'Custom icon template.' } ]; @@ -43,6 +56,7 @@ module.exports = { name: 'Avatar', description: 'Avatar represents people using icons, labels and images.', props: AvatarProps, + slots: AvatarSlots, events: AvatarEvents } }; diff --git a/api-generator/components/avatargroup.js b/api-generator/components/avatargroup.js index 8b570a288..4168b6775 100644 --- a/api-generator/components/avatargroup.js +++ b/api-generator/components/avatargroup.js @@ -1,7 +1,47 @@ +const AvatarGroupProps = [ + { + name: 'label', + type: 'string', + default: 'null', + description: 'Defines the text to display.' + }, + { + name: 'icon', + type: 'string', + default: 'null', + description: 'Defines the icon to display.' + }, + { + name: 'image', + type: 'string', + default: 'null', + description: 'Defines the image to display.' + }, + { + name: 'size', + type: 'string', + default: 'null', + description: 'Size of the element, valid options are "large" and "xlarge".' + }, + { + name: 'shape', + type: 'string', + default: 'square', + description: 'Shape of the element, valid options are "square" and "circle".' + }, + { + name: 'pt', + type: 'any', + default: 'null', + description: 'Uses to pass attributes to DOM elements inside the component.' + } +]; + module.exports = { avatargroup: { name: 'AvatarGroup', 'doc-url': 'avatar', - description: 'A set of Avatars can be displayed together using the AvatarGroup component.' + description: 'A set of Avatars can be displayed together using the AvatarGroup component.', + props: AvatarGroupProps } }; diff --git a/api-generator/components/badge.js b/api-generator/components/badge.js index 5c7245dfb..0562aeb0a 100644 --- a/api-generator/components/badge.js +++ b/api-generator/components/badge.js @@ -16,6 +16,12 @@ const BadgeProps = [ type: 'string', default: 'null', description: 'Size of the badge, valid options are "large" and "xlarge".' + }, + { + name: 'pt', + type: 'any', + default: 'null', + description: 'Uses to pass attributes to DOM elements inside the component.' } ]; diff --git a/api-generator/components/blockui.js b/api-generator/components/blockui.js index 73deaf34c..d355deac8 100644 --- a/api-generator/components/blockui.js +++ b/api-generator/components/blockui.js @@ -22,6 +22,12 @@ const BlockUIProps = [ type: 'boolean', default: 'true', description: 'Whether to automatically manage layering.' + }, + { + name: 'pt', + type: 'any', + default: 'null', + description: 'Uses to pass attributes to DOM elements inside the component.' } ]; diff --git a/api-generator/components/breadcrumb.js b/api-generator/components/breadcrumb.js index e466fb154..cae78fa05 100644 --- a/api-generator/components/breadcrumb.js +++ b/api-generator/components/breadcrumb.js @@ -16,6 +16,12 @@ const BreadcrumbProps = [ type: 'boolean', default: 'true', description: "Whether to apply 'router-link-active-exact' class if route exactly matches the item path." + }, + { + name: 'pt', + type: 'any', + default: 'null', + description: 'Uses to pass attributes to DOM elements inside the component.' } ]; @@ -27,6 +33,10 @@ const BreadcrumbSlots = [ { name: 'separator', description: 'Custom separator template.' + }, + { + name: 'itemicon', + description: 'Custom item icon template.' } ]; diff --git a/api-generator/components/button.js b/api-generator/components/button.js index 359c3d45e..565350938 100644 --- a/api-generator/components/button.js +++ b/api-generator/components/button.js @@ -94,6 +94,25 @@ const ButtonProps = [ type: 'boolean', default: 'false', description: 'Add a plain textual class to the button without a background initially.' + }, + { + name: 'pt', + type: 'any', + default: 'null', + description: 'Uses to pass attributes to DOM elements inside the component.' + } +]; + +const ButtonEvents = []; + +const ButtonSlots = [ + { + name: 'icon', + description: 'Custom icon template.' + }, + { + name: 'loadingicon', + description: 'Custom loading icon template.' } ]; @@ -101,6 +120,8 @@ module.exports = { button: { name: 'Button', description: 'Button is an extension to standard button element with icons and theming.', - props: ButtonProps + props: ButtonProps, + events: ButtonEvents, + slots: ButtonSlots } }; diff --git a/api-generator/components/calendar.js b/api-generator/components/calendar.js index 131f885af..79614b5df 100644 --- a/api-generator/components/calendar.js +++ b/api-generator/components/calendar.js @@ -316,6 +316,12 @@ const CalendarProps = [ type: 'object', default: 'null', description: 'Uses to pass all properties of the HTMLDivElement to the overlay panel inside the component.' + }, + { + name: 'pt', + type: 'any', + default: 'null', + description: 'Uses to pass attributes to DOM elements inside the component.' } ]; @@ -462,11 +468,11 @@ const CalendarSlots = [ description: 'Custom content for the calendar decade.' }, { - name: 'triggericon', - description: 'Custom trigger icon template.' + name: 'dropdownicon', + description: 'Custom dropdown icon template.' }, { - name: 'previcon', + name: 'previousicon', description: 'Custom previous icon template.' }, { diff --git a/api-generator/components/carousel.js b/api-generator/components/carousel.js index ea51532dd..4fe24167a 100644 --- a/api-generator/components/carousel.js +++ b/api-generator/components/carousel.js @@ -82,10 +82,20 @@ const CarouselProps = [ type: 'boolean', default: 'true', description: 'Whether to display indicator container.' + }, + { + name: 'pt', + type: 'any', + default: 'null', + description: 'Uses to pass attributes to DOM elements inside the component.' } ]; const CarouselSlots = [ + { + name: 'header', + description: 'Custom content for the component header.' + }, { name: 'header', description: 'Custom content for the component header.' @@ -99,7 +109,7 @@ const CarouselSlots = [ description: 'Custom content for the component item.' }, { - name: 'previcon', + name: 'previousicon', description: 'Custom previous icon template.' }, { diff --git a/api-generator/components/cascadeselect.js b/api-generator/components/cascadeselect.js index 00d43400f..8715876d5 100644 --- a/api-generator/components/cascadeselect.js +++ b/api-generator/components/cascadeselect.js @@ -184,6 +184,12 @@ const CascadeSelectProps = [ type: 'string', default: 'null', description: 'Identifier of the underlying input element.' + }, + { + name: 'pt', + type: 'any', + default: 'null', + description: 'Uses to pass attributes to DOM elements inside the component.' } ]; @@ -284,6 +290,14 @@ const CascadeSelectSlots = [ name: 'indicator', description: 'Custom content for the dropdown indicator.' }, + { + name: 'dropdownicon', + description: 'Custom dropdown icon template.' + }, + { + name: 'loadingicon', + description: 'Custom loading icon template.' + }, { name: 'optiongroupicon', description: 'Custom content for the option group icon.' diff --git a/api-generator/components/chart.js b/api-generator/components/chart.js index c60869bca..2cd31d4e2 100644 --- a/api-generator/components/chart.js +++ b/api-generator/components/chart.js @@ -34,6 +34,12 @@ const ChartProps = [ type: 'number', default: '150', description: 'Height of the chart in non-responsive mode.' + }, + { + name: 'pt', + type: 'any', + default: 'null', + description: 'Uses to pass attributes to DOM elements inside the component.' } ]; diff --git a/api-generator/components/checkbox.js b/api-generator/components/checkbox.js index 2e122f275..0ca595316 100644 --- a/api-generator/components/checkbox.js +++ b/api-generator/components/checkbox.js @@ -88,6 +88,12 @@ const CheckboxProps = [ type: 'string', default: 'null', description: 'Used to define a string that labels the element.' + }, + { + name: 'pt', + type: 'any', + default: 'null', + description: 'Uses to pass attributes to DOM elements inside the component.' } ]; diff --git a/api-generator/components/chip.js b/api-generator/components/chip.js index abf3096df..894250b91 100644 --- a/api-generator/components/chip.js +++ b/api-generator/components/chip.js @@ -28,6 +28,12 @@ const ChipProps = [ type: 'string', default: 'pi pi-times-circle', description: 'Icon of the remove element.' + }, + { + name: 'pt', + type: 'any', + default: 'null', + description: 'Uses to pass attributes to DOM elements inside the component.' } ]; @@ -45,11 +51,23 @@ const ChipEvents = [ } ]; +const ChipSlots = [ + { + name: 'icon', + description: 'Custom icon template of chip component.' + }, + { + name: 'removeicon', + description: 'Custom remove icon template of chip component.' + } +]; + module.exports = { chip: { name: 'Chip', description: 'Chip represents entities using icons, labels and images', props: ChipProps, - events: ChipEvents + events: ChipEvents, + slots: ChipSlots } }; diff --git a/api-generator/components/chips.js b/api-generator/components/chips.js index bc2d80de7..9e0940fdd 100644 --- a/api-generator/components/chips.js +++ b/api-generator/components/chips.js @@ -64,6 +64,12 @@ const ChipsProps = [ type: 'object', default: 'null', description: 'Uses to pass all properties of the HTMLInputElement to the focusable input element inside the component.' + }, + { + name: 'pt', + type: 'any', + default: 'null', + description: 'Uses to pass attributes to DOM elements inside the component.' } ]; diff --git a/api-generator/components/colorpicker.js b/api-generator/components/colorpicker.js index f145256d9..a564c297a 100644 --- a/api-generator/components/colorpicker.js +++ b/api-generator/components/colorpicker.js @@ -70,6 +70,12 @@ const ColorPickerProps = [ type: 'string', default: 'null', description: 'Used to define a string that labels the element.' + }, + { + name: 'pt', + type: 'any', + default: 'null', + description: 'Uses to pass attributes to DOM elements inside the component.' } ]; diff --git a/api-generator/components/column.js b/api-generator/components/column.js index 380fbc8ec..6fc57b760 100644 --- a/api-generator/components/column.js +++ b/api-generator/components/column.js @@ -250,6 +250,12 @@ const ColumnProps = [ type: 'boolean', default: 'false', description: 'Whether the column is rendered.' + }, + { + name: 'pt', + type: 'any', + default: 'null', + description: 'Uses to pass attributes to DOM elements inside the component.' } ]; @@ -289,6 +295,62 @@ const ColumnSlots = [ { name: 'filterapply', description: "Custom content for the filter menu's apply section" + }, + { + name: 'loading', + description: 'Custom loading template.' + }, + { + name: 'rowtogglericon', + description: 'Custom row toggler icon template.' + }, + { + name: 'rowtogglericon', + description: 'Custom row toggler icon template.' + }, + { + name: 'rowcheckboxicon', + description: 'Custom row checkbox icon template.' + }, + { + name: 'roweditoriniticon', + description: 'Custom row editor init icon template.' + }, + { + name: 'roweditorsaveicon', + description: 'Custom row editor save icon template.' + }, + { + name: 'roweditorcancelicon', + description: 'Custom row editor cancel icon template.' + }, + { + name: 'filtericon', + description: 'Custom filter icon template.' + }, + { + name: 'filterclearicon', + description: 'Custom filter clear icon template.' + }, + { + name: 'filterremoveicon', + description: 'Custom filter remove icon template.' + }, + { + name: 'filteraddicon', + description: 'Custom filter add icon template.' + }, + { + name: 'sorticon', + description: 'Custom sort icon template.' + }, + { + name: 'headercheckboxicon', + description: 'Custom header checkbox icon template.' + }, + { + name: 'rowreordericon', + description: 'Custom row reorder icon template.' } ]; diff --git a/api-generator/components/columngroup.js b/api-generator/components/columngroup.js index 6fef6cdd8..cfd9b9605 100644 --- a/api-generator/components/columngroup.js +++ b/api-generator/components/columngroup.js @@ -1,7 +1,23 @@ +const ColumnGroupProps = [ + { + name: 'type', + type: 'string', + default: 'null', + description: 'Defines the type of the group.' + }, + { + name: 'pt', + type: 'any', + default: 'null', + description: 'Uses to pass attributes to DOM elements inside the component.' + } +]; + module.exports = { columngroup: { name: 'ColumnGroup', description: 'Columns can be grouped at header and footer sections by defining a ColumnGroup with nested rows and columns', - 'doc-url': 'datatable' + 'doc-url': 'datatable', + props: ColumnGroupProps } }; diff --git a/api-generator/components/confirmdialog.js b/api-generator/components/confirmdialog.js index 6e39797ca..130dc6444 100644 --- a/api-generator/components/confirmdialog.js +++ b/api-generator/components/confirmdialog.js @@ -16,13 +16,31 @@ const ConfirmDialogProps = [ type: 'boolean', default: 'true', description: 'Whether the dialog can be relocated by dragging.' + }, + { + name: 'pt', + type: 'any', + default: 'null', + description: 'Uses to pass attributes to DOM elements inside the component.' } ]; const ConfirmDialogSlots = [ { name: 'message', - description: 'Custom content for the component.' + description: 'Custom icon template.' + }, + { + name: 'icon', + description: 'Custom icon template.' + }, + { + name: 'accepticon', + description: 'Custom accept icon template.' + }, + { + name: 'rejecticon', + description: 'Custom reject icon template.' } ]; diff --git a/api-generator/components/confirmpopup.js b/api-generator/components/confirmpopup.js index c5354e9b9..27b47f4a4 100644 --- a/api-generator/components/confirmpopup.js +++ b/api-generator/components/confirmpopup.js @@ -4,6 +4,12 @@ const ConfirmPopupProps = [ type: 'string', default: 'null', description: 'Optional key to match the key of the confirmation, useful to target a specific confirm dialog instance.' + }, + { + name: 'pt', + type: 'any', + default: 'null', + description: 'Uses to pass attributes to DOM elements inside the component.' } ]; @@ -11,6 +17,18 @@ const ConfirmPopupSlots = [ { name: 'message', description: 'Custom content for the component.' + }, + { + name: 'icon', + description: 'Custom icon template.' + }, + { + name: 'accepticon', + description: 'Custom accept icon template.' + }, + { + name: 'rejecticon', + description: 'Custom reject icon template.' } ]; diff --git a/api-generator/components/contextmenu.js b/api-generator/components/contextmenu.js index 4c7030047..d0f7cffe6 100644 --- a/api-generator/components/contextmenu.js +++ b/api-generator/components/contextmenu.js @@ -34,6 +34,12 @@ const ContextMenuProps = [ type: 'boolean', default: 'true', description: "Whether to apply 'router-link-active-exact' class if route exactly matches the item path." + }, + { + name: 'pt', + type: 'any', + default: 'null', + description: 'Uses to pass attributes to DOM elements inside the component.' } ]; @@ -45,6 +51,10 @@ const ContextMenuSlots = [ { name: 'submenuicon', description: 'Custom submenu icon template.' + }, + { + name: 'itemicon', + description: 'Custom item icon template.' } ]; diff --git a/api-generator/components/datatable.js b/api-generator/components/datatable.js index a2e48a9e2..0b875f983 100644 --- a/api-generator/components/datatable.js +++ b/api-generator/components/datatable.js @@ -377,6 +377,12 @@ const DataTableProps = [ type: 'string', default: 'null', description: 'Style class of the table element.' + }, + { + name: 'pt', + type: 'any', + default: 'null', + description: 'Uses to pass attributes to DOM elements inside the component.' } ]; @@ -1120,31 +1126,67 @@ const DataTableEvents = [ const DataTableSlots = [ { name: 'header', - description: "Custom content for the component's header" + description: "Custom content for the component's header." }, { name: 'paginatorstart', - description: "Custom content for the component paginator's left side" + description: "Custom content for the component paginator's left side." }, { name: 'paginatorend', - description: "Custom content for the component paginator's right side" + description: "Custom content for the component paginator's right side." }, { name: 'footer', - description: "Custom content for the component's footer" + description: "Custom content for the component's footer." }, { name: 'groupheader', - description: "Custom content for the component's subgroup header" + description: "Custom content for the component's subgroup header." }, { name: 'groupfooter', - description: "Custom content for the component's subgroup footer" + description: "Custom content for the component's subgroup footer." }, { - name: 'expansion', - description: "Custom content for the component's expanded content" + name: 'loading', + description: 'Custom loading template.' + }, + { + name: 'loadingicon', + description: 'Custom loading icon template.' + }, + { + name: 'reorderindicatorupicon', + description: 'Custom reorder indicator up icon template.' + }, + { + name: 'reorderindicatordownicon', + description: 'Custom reorder indicator down icon template.' + }, + { + name: 'rowgrouptogglericon', + description: 'Custom rowgroup toggler icon template.' + }, + { + name: 'paginatorfirstpagelinkicon', + description: 'Custom paginator first page link icon template.' + }, + { + name: 'paginatorprevpagelinkicon', + description: 'Custom paginator prev page link icon template.' + }, + { + name: 'paginatornextpagelinkicon', + description: 'Custom paginator next page link icon template.' + }, + { + name: 'paginatorlastpagelinkicon', + description: 'Custom paginator last page link icon template.' + }, + { + name: 'empty', + description: 'Custom empty template.' } ]; diff --git a/api-generator/components/dataview.js b/api-generator/components/dataview.js index 039575f63..184e80c3e 100644 --- a/api-generator/components/dataview.js +++ b/api-generator/components/dataview.js @@ -94,6 +94,12 @@ const DataViewProps = [ type: 'string', default: 'null', description: 'Name of the data that uniquely identifies the a record in the data.' + }, + { + name: 'pt', + type: 'any', + default: 'null', + description: 'Uses to pass attributes to DOM elements inside the component.' } ]; diff --git a/api-generator/components/dataviewlayoutoptions.js b/api-generator/components/dataviewlayoutoptions.js index e34ae325f..a1feb110b 100644 --- a/api-generator/components/dataviewlayoutoptions.js +++ b/api-generator/components/dataviewlayoutoptions.js @@ -4,6 +4,12 @@ const DataViewLayoutOptionsProps = [ type: 'string', default: 'null', description: 'Value of the component.' + }, + { + name: 'pt', + type: 'any', + default: 'null', + description: 'Uses to pass attributes to DOM elements inside the component.' } ]; diff --git a/api-generator/components/dialog.js b/api-generator/components/dialog.js index 7e53088a9..e08bfa3c2 100644 --- a/api-generator/components/dialog.js +++ b/api-generator/components/dialog.js @@ -130,6 +130,12 @@ const DialogProps = [ type: 'string', default: 'body', description: 'A valid query selector or an HTMLElement to specify where the dialog gets attached. Special keywords are "body" for document body and "self" for the element itself.' + }, + { + name: 'pt', + type: 'any', + default: 'null', + description: 'Uses to pass attributes to DOM elements inside the component.' } ]; @@ -189,6 +195,14 @@ const DialogSlots = [ { name: 'footer', description: "Custom content for the component's footer" + }, + { + name: 'closeicon', + description: 'Custom close icon template.' + }, + { + name: 'maximizeicon', + description: 'Custom maximizeicon icon template of dialog.' } ]; diff --git a/api-generator/components/dock.js b/api-generator/components/dock.js index b5615d452..8c105e8b6 100644 --- a/api-generator/components/dock.js +++ b/api-generator/components/dock.js @@ -34,6 +34,12 @@ const DockProps = [ type: 'object', default: 'null', description: "Whether to display the tooltip on items. The modifiers of tooltip can be used like an object in it. Valid keys are 'event' and 'position'." + }, + { + name: 'pt', + type: 'any', + default: 'null', + description: 'Uses to pass attributes to DOM elements inside the component.' } ]; diff --git a/api-generator/components/dropdown.js b/api-generator/components/dropdown.js index d4826f131..afe00f1b1 100644 --- a/api-generator/components/dropdown.js +++ b/api-generator/components/dropdown.js @@ -256,6 +256,12 @@ const DropdownProps = [ type: 'string', default: 'null', description: 'Identifier of the underlying input element.' + }, + { + name: 'pt', + type: 'any', + default: 'null', + description: 'Uses to pass attributes to DOM elements inside the component.' } ]; @@ -372,6 +378,22 @@ const DropdownSlots = [ { name: 'loader', description: 'Custom content for the virtual scroller loader items' + }, + { + name: 'clearicon', + description: 'Custom clear icon template.' + }, + { + name: 'dropdownicon', + description: 'Custom dropdown icon template.' + }, + { + name: 'loadingicon', + description: 'Custom loading icon template.' + }, + { + name: 'filtericon', + description: 'Custom filter icon template.' } ]; diff --git a/api-generator/components/editor.js b/api-generator/components/editor.js index f443c2556..e55b2f419 100644 --- a/api-generator/components/editor.js +++ b/api-generator/components/editor.js @@ -34,6 +34,12 @@ const EditorProps = [ type: 'object', default: 'null', description: 'Modules configuration, see here for available options.' + }, + { + name: 'pt', + type: 'any', + default: 'null', + description: 'Uses to pass attributes to DOM elements inside the component.' } ]; diff --git a/api-generator/components/fileupload.js b/api-generator/components/fileupload.js index 72986a9f6..cef25b014 100644 --- a/api-generator/components/fileupload.js +++ b/api-generator/components/fileupload.js @@ -142,6 +142,12 @@ const FileUploadProps = [ type: 'string', default: 'null', description: 'Style class of the component.' + }, + { + name: 'pt', + type: 'any', + default: 'null', + description: 'Uses to pass attributes to DOM elements inside the component.' } ]; @@ -276,9 +282,33 @@ const FileUploadEvents = [ ]; const FileUploadSlots = [ + { + name: 'header', + description: 'Custom header template.' + }, + { + name: 'content', + description: 'Custom content template.' + }, { name: 'empty', description: 'Custom content when there is no selected file' + }, + { + name: 'chooseicon', + description: 'Custom choose icon template.' + }, + { + name: 'uploadicon', + description: 'Custom upload icon template.' + }, + { + name: 'cancelicon', + description: 'Custom cancel icon template.' + }, + { + name: 'fileremoveicon', + description: 'Custom remove icon template for each file.' } ]; diff --git a/api-generator/components/galleria.js b/api-generator/components/galleria.js index 4ef0cb142..953956ff3 100644 --- a/api-generator/components/galleria.js +++ b/api-generator/components/galleria.js @@ -142,6 +142,12 @@ const GalleriaProps = [ type: 'any', default: 'null', description: "Style class of the component on fullscreen mode. Otherwise, the 'class' property can be used." + }, + { + name: 'pt', + type: 'any', + default: 'null', + description: 'Uses to pass attributes to DOM elements inside the component.' } ]; @@ -175,7 +181,7 @@ const GalleriaSlots = [ description: 'Custom close icon template.' }, { - name: 'previtemicon', + name: 'previousitemicon', description: 'Custom navigator previous item icon template.' }, { @@ -183,7 +189,7 @@ const GalleriaSlots = [ description: 'Custom navigator next item icon template.' }, { - name: 'prevthumbnailicon', + name: 'previousthumbnailicon', description: 'Custom thumbnail previous icon template.' }, { diff --git a/api-generator/components/image.js b/api-generator/components/image.js index dc7205074..da1460ca5 100644 --- a/api-generator/components/image.js +++ b/api-generator/components/image.js @@ -22,6 +22,12 @@ const ImageProps = [ type: 'boolean', default: 'false', description: 'Disable the zoom-out button' + }, + { + name: 'pt', + type: 'any', + default: 'null', + description: 'Uses to pass attributes to DOM elements inside the component.' } ]; @@ -64,6 +70,14 @@ const ImageSlots = [ { name: 'close', description: 'Custom content for the component close.' + }, + { + name: 'image', + description: 'Custom content for the component image.' + }, + { + name: 'preview', + description: 'Custom content for the component preview.' } ]; diff --git a/api-generator/components/inlinemessage.js b/api-generator/components/inlinemessage.js index 78616eb77..0ec46364b 100644 --- a/api-generator/components/inlinemessage.js +++ b/api-generator/components/inlinemessage.js @@ -10,13 +10,19 @@ const InlineMessageProps = [ type: 'string', default: 'undefined', description: 'Display a custom icon for the message.' + }, + { + name: 'pt', + type: 'any', + default: 'null', + description: 'Uses to pass attributes to DOM elements inside the component.' } ]; const MessageSlots = [ { - name: 'messageicon', - description: 'Custom message icon template.' + name: 'icon', + description: 'Custom icon template.' } ]; diff --git a/api-generator/components/inplace.js b/api-generator/components/inplace.js index 5e2a4a6ba..f9f96aded 100644 --- a/api-generator/components/inplace.js +++ b/api-generator/components/inplace.js @@ -16,6 +16,12 @@ const InplaceProps = [ type: 'boolean', default: 'false', description: 'When present, it specifies that the element should be disabled.' + }, + { + name: 'pt', + type: 'any', + default: 'null', + description: 'Uses to pass attributes to DOM elements inside the component.' } ]; @@ -47,11 +53,15 @@ const InplaceEvents = [ const InplaceSlots = [ { name: 'display', - description: 'Output content' + description: 'Custom display template.' }, { name: 'content', - description: 'Actual content' + description: 'Custom content template.' + }, + { + name: 'closeicon', + description: 'Custom close icon template.' } ]; diff --git a/api-generator/components/inputmask.js b/api-generator/components/inputmask.js index 9111e6ae7..f1269744c 100644 --- a/api-generator/components/inputmask.js +++ b/api-generator/components/inputmask.js @@ -28,6 +28,12 @@ const InputMaskProps = [ type: 'boolean', default: 'false', description: 'Defines if model sets the raw unmasked value to bound value or the formatted mask value.' + }, + { + name: 'pt', + type: 'any', + default: 'null', + description: 'Uses to pass attributes to DOM elements inside the component.' } ]; diff --git a/api-generator/components/inputnumber.js b/api-generator/components/inputnumber.js index 9204a3c80..e3587c5bc 100644 --- a/api-generator/components/inputnumber.js +++ b/api-generator/components/inputnumber.js @@ -182,6 +182,12 @@ const InputNumberProps = [ type: 'object', default: 'null', description: 'Uses to pass all properties of the HTMLButtonElement to decrement button inside the component.' + }, + { + name: 'pt', + type: 'any', + default: 'null', + description: 'Uses to pass attributes to DOM elements inside the component.' } ]; diff --git a/api-generator/components/inputswitch.js b/api-generator/components/inputswitch.js index 6b06ebda2..f4b2eb076 100644 --- a/api-generator/components/inputswitch.js +++ b/api-generator/components/inputswitch.js @@ -40,6 +40,12 @@ const InputSwitchProps = [ type: 'object', default: 'null', description: 'Uses to pass all properties of the HTMLInputElement to the focusable input element inside the component.' + }, + { + name: 'pt', + type: 'any', + default: 'null', + description: 'Uses to pass attributes to DOM elements inside the component.' } ]; diff --git a/api-generator/components/inputtext.js b/api-generator/components/inputtext.js index 3b4110c74..4541151ce 100644 --- a/api-generator/components/inputtext.js +++ b/api-generator/components/inputtext.js @@ -4,6 +4,12 @@ const InputTextProps = [ type: 'any', default: 'null', description: 'Value of the component.' + }, + { + name: 'pt', + type: 'any', + default: 'null', + description: 'Uses to pass attributes to DOM elements inside the component.' } ]; diff --git a/api-generator/components/knob.js b/api-generator/components/knob.js index 81b026e0e..95d48e58b 100644 --- a/api-generator/components/knob.js +++ b/api-generator/components/knob.js @@ -94,6 +94,12 @@ const KnobProps = [ type: 'string', default: 'null', description: 'Used to define a string that labels the element.' + }, + { + name: 'pt', + type: 'any', + default: 'null', + description: 'Uses to pass attributes to DOM elements inside the component.' } ]; diff --git a/api-generator/components/listbox.js b/api-generator/components/listbox.js index 58844f546..f2c6d7c03 100644 --- a/api-generator/components/listbox.js +++ b/api-generator/components/listbox.js @@ -173,6 +173,12 @@ const ListboxProps = [ type: 'string', default: 'null', description: 'Identifier of the underlying input element.' + }, + { + name: 'pt', + type: 'any', + default: 'null', + description: 'Uses to pass attributes to DOM elements inside the component.' } ]; diff --git a/api-generator/components/megamenu.js b/api-generator/components/megamenu.js index cc47ddc71..f0f3a42ff 100644 --- a/api-generator/components/megamenu.js +++ b/api-generator/components/megamenu.js @@ -16,6 +16,12 @@ const MegaMenuProps = [ type: 'boolean', default: 'true', description: "Whether to apply 'router-link-active-exact' class if route exactly matches the item path." + }, + { + name: 'pt', + type: 'any', + default: 'null', + description: 'Uses to pass attributes to DOM elements inside the component.' } ]; @@ -35,6 +41,10 @@ const MegaMenuSlots = [ { name: 'submenuicon', description: 'Custom submenu icon template.' + }, + { + name: 'itemicon', + description: 'Custom item icon template.' } ]; diff --git a/api-generator/components/menu.js b/api-generator/components/menu.js index cd75e0365..4d98f2ac2 100644 --- a/api-generator/components/menu.js +++ b/api-generator/components/menu.js @@ -34,6 +34,12 @@ const MenuProps = [ type: 'boolean', default: 'true', description: "Whether to apply 'router-link-active-exact' class if route exactly matches the item path." + }, + { + name: 'pt', + type: 'any', + default: 'null', + description: 'Uses to pass attributes to DOM elements inside the component.' } ]; @@ -60,6 +66,10 @@ const MenuSlots = [ { name: 'item', description: 'Template of a menuitem.' + }, + { + name: 'itemicon', + description: 'Custom item icon template.' } ]; diff --git a/api-generator/components/menubar.js b/api-generator/components/menubar.js index e36616ff2..885730a1f 100644 --- a/api-generator/components/menubar.js +++ b/api-generator/components/menubar.js @@ -10,6 +10,12 @@ const MenubarProps = [ type: 'boolean', default: 'true', description: "Whether to apply 'router-link-active-exact' class if route exactly matches the item path." + }, + { + name: 'pt', + type: 'any', + default: 'null', + description: 'Uses to pass attributes to DOM elements inside the component.' } ]; @@ -33,6 +39,10 @@ const MenubarSlots = [ { name: 'submenuicon', description: 'Custom submenu icon template.' + }, + { + name: 'itemicon', + description: 'Custom item icon template.' } ]; diff --git a/api-generator/components/message.js b/api-generator/components/message.js index 02be57a06..8f6e648fe 100644 --- a/api-generator/components/message.js +++ b/api-generator/components/message.js @@ -34,6 +34,12 @@ const MessageProps = [ type: 'string', default: 'undefined', description: 'Display a custom close icon for the message.' + }, + { + name: 'pt', + type: 'any', + default: 'null', + description: 'Uses to pass attributes to DOM elements inside the component.' } ]; diff --git a/api-generator/components/multiselect.js b/api-generator/components/multiselect.js index 14fbcbe37..8eca6b3e3 100644 --- a/api-generator/components/multiselect.js +++ b/api-generator/components/multiselect.js @@ -292,6 +292,12 @@ const MultiSelectProps = [ type: 'string', default: 'null', description: 'Identifier of the underlying input element.' + }, + { + name: 'pt', + type: 'any', + default: 'null', + description: 'Uses to pass attributes to DOM elements inside the component.' } ]; @@ -448,6 +454,14 @@ const MultiSelectSlots = [ { name: 'itemcheckboxicon', description: 'Custom item checkbox icon template.' + }, + { + name: 'loadingicon', + description: 'Custom loading icon template.' + }, + { + name: 'dropdownicon', + description: 'Custom dropdown icon template.' } ]; diff --git a/api-generator/components/orderlist.js b/api-generator/components/orderlist.js index 95fd8d805..f71b7a644 100644 --- a/api-generator/components/orderlist.js +++ b/api-generator/components/orderlist.js @@ -47,6 +47,12 @@ const OrderListProps = [ type: 'boolean', default: 'false', description: 'Whether to displays rows with alternating colors.' + }, + { + name: 'pt', + type: 'any', + default: 'null', + description: 'Uses to pass attributes to DOM elements inside the component.' } ]; diff --git a/api-generator/components/organizationchart.js b/api-generator/components/organizationchart.js index 244a0b017..abd033fa6 100644 --- a/api-generator/components/organizationchart.js +++ b/api-generator/components/organizationchart.js @@ -28,6 +28,12 @@ const OrganizationChartProps = [ type: 'object', default: 'null', description: 'A map instance of key-value pairs to represented the collapsed nodes.' + }, + { + name: 'pt', + type: 'any', + default: 'null', + description: 'Uses to pass attributes to DOM elements inside the component.' } ]; diff --git a/api-generator/components/overlaypanel.js b/api-generator/components/overlaypanel.js index 3cdf36322..f2861c06b 100644 --- a/api-generator/components/overlaypanel.js +++ b/api-generator/components/overlaypanel.js @@ -46,6 +46,12 @@ const OverlayPanelProps = [ type: 'string', default: 'undefined', description: 'Display a custom close icon for the message.' + }, + { + name: 'pt', + type: 'any', + default: 'null', + description: 'Uses to pass attributes to DOM elements inside the component.' } ]; diff --git a/api-generator/components/paginator.js b/api-generator/components/paginator.js index 89c1fcc10..75967020d 100644 --- a/api-generator/components/paginator.js +++ b/api-generator/components/paginator.js @@ -46,6 +46,12 @@ const PaginatorProps = [ type: 'boolean', default: 'true', description: 'Whether to show the paginator even there is only one page.' + }, + { + name: 'pt', + type: 'any', + default: 'null', + description: 'Uses to pass attributes to DOM elements inside the component.' } ]; @@ -80,11 +86,11 @@ const PaginatorEvents = [ const PaginatorSlots = [ { - name: 'left', + name: 'start', description: "Custom content for the component's left side." }, { - name: 'right', + name: 'end', description: "Custom content for the component's right side." }, { diff --git a/api-generator/components/panelmenu.js b/api-generator/components/panelmenu.js index a534bc763..b5711eb58 100644 --- a/api-generator/components/panelmenu.js +++ b/api-generator/components/panelmenu.js @@ -16,6 +16,12 @@ const PanelMenuProps = [ type: 'boolean', default: 'true', description: "Whether to apply 'router-link-active-exact' class if route exactly matches the item path." + }, + { + name: 'pt', + type: 'any', + default: 'null', + description: 'Uses to pass attributes to DOM elements inside the component.' } ]; @@ -27,6 +33,14 @@ const PanelMenuSlots = [ { name: 'submenuicon', description: 'Custom submenu icon template.' + }, + { + name: 'headericon', + description: 'Custom header icon template.' + }, + { + name: 'itemicon', + description: 'Custom item icon template.' } ]; diff --git a/api-generator/components/password.js b/api-generator/components/password.js index 2c9492670..fc5d8224d 100644 --- a/api-generator/components/password.js +++ b/api-generator/components/password.js @@ -136,6 +136,12 @@ const PasswordProps = [ type: 'object', default: 'null', description: 'Uses to pass all properties of the HTMLDivElement to the overlay panel inside the component.' + }, + { + name: 'pt', + type: 'any', + default: 'null', + description: 'Uses to pass attributes to DOM elements inside the component.' } ]; diff --git a/api-generator/components/picklist.js b/api-generator/components/picklist.js index 2579f62a5..4f97179e9 100644 --- a/api-generator/components/picklist.js +++ b/api-generator/components/picklist.js @@ -59,6 +59,12 @@ const PickListProps = [ type: 'boolean', default: 'true', description: 'Whether to show buttons of target list.' + }, + { + name: 'pt', + type: 'any', + default: 'null', + description: 'Uses to pass attributes to DOM elements inside the component.' } ]; @@ -172,6 +178,10 @@ const PickListEvents = [ ]; const PickListSlots = [ + { + name: 'header', + description: 'Custom header template.' + }, { name: 'sourceheader', description: "Custom content for the component's source header." diff --git a/api-generator/components/progressbar.js b/api-generator/components/progressbar.js index c89f78165..161870126 100644 --- a/api-generator/components/progressbar.js +++ b/api-generator/components/progressbar.js @@ -16,6 +16,12 @@ const ProgressbarProps = [ type: 'boolean', default: 'true', description: 'Whether to display the progress bar value.' + }, + { + name: 'pt', + type: 'any', + default: 'null', + description: 'Uses to pass attributes to DOM elements inside the component.' } ]; diff --git a/api-generator/components/progressspinner.js b/api-generator/components/progressspinner.js index f2a190cea..493b9e054 100644 --- a/api-generator/components/progressspinner.js +++ b/api-generator/components/progressspinner.js @@ -16,6 +16,12 @@ const ProgressSpinnerProps = [ type: 'string', default: '2s', description: 'Duration of the rotate animation.' + }, + { + name: 'pt', + type: 'any', + default: 'null', + description: 'Uses to pass attributes to DOM elements inside the component.' } ]; diff --git a/api-generator/components/radiobutton.js b/api-generator/components/radiobutton.js index 620ad456b..ec531e6a4 100644 --- a/api-generator/components/radiobutton.js +++ b/api-generator/components/radiobutton.js @@ -58,6 +58,12 @@ const RadioButtonProps = [ type: 'string', default: 'null', description: 'Used to define a string that labels the element.' + }, + { + name: 'pt', + type: 'any', + default: 'null', + description: 'Uses to pass attributes to DOM elements inside the component.' } ]; diff --git a/api-generator/components/rating.js b/api-generator/components/rating.js index a65cfe909..a1014cbe2 100644 --- a/api-generator/components/rating.js +++ b/api-generator/components/rating.js @@ -46,6 +46,27 @@ const RatingProps = [ type: 'string', default: 'null', description: 'Icon for the cancelable state.' + }, + { + name: 'pt', + type: 'any', + default: 'null', + description: 'Uses to pass attributes to DOM elements inside the component.' + } +]; + +const RatingSlots = [ + { + name: 'cancelicon', + description: 'Custom cancel icon template.' + }, + { + name: 'onicon', + description: 'Custom on icon template.' + }, + { + name: 'officon', + description: 'Custom off icon template.' } ]; @@ -73,6 +94,7 @@ module.exports = { name: 'rating', description: 'Rating component is a star based selection input.', props: RatingProps, + slots: RatingSlots, events: RatingEvents } }; diff --git a/api-generator/components/row.js b/api-generator/components/row.js index 88fc8c91f..732575d73 100644 --- a/api-generator/components/row.js +++ b/api-generator/components/row.js @@ -1,7 +1,23 @@ +const RowProps = [ + { + name: 'type', + type: 'string', + default: 'null', + description: 'Defines the type of the group.' + }, + { + name: 'pt', + type: 'any', + default: 'null', + description: 'Uses to pass attributes to DOM elements inside the component.' + } +]; + module.exports = { row: { name: 'Row', description: 'DataTable can be grouped by defining a Row component with nested columns', - 'doc-url': 'datatable' + 'doc-url': 'datatable', + props: RowProps } }; diff --git a/api-generator/components/scrolltop.js b/api-generator/components/scrolltop.js index 4f59e0804..4dfc7beb1 100644 --- a/api-generator/components/scrolltop.js +++ b/api-generator/components/scrolltop.js @@ -22,6 +22,12 @@ const ScrollTopProps = [ type: 'string', default: 'smooth', description: 'Defines the scrolling behavi, "smooth" adds an animation and "auto" scrolls with a jump.' + }, + { + name: 'pt', + type: 'any', + default: 'null', + description: 'Uses to pass attributes to DOM elements inside the component.' } ]; diff --git a/api-generator/components/selectbutton.js b/api-generator/components/selectbutton.js index 4621fd151..483b4541f 100644 --- a/api-generator/components/selectbutton.js +++ b/api-generator/components/selectbutton.js @@ -58,6 +58,12 @@ const SelectButtonProps = [ type: 'string', default: 'null', description: 'Identifier of the underlying element.' + }, + { + name: 'pt', + type: 'any', + default: 'null', + description: 'Uses to pass attributes to DOM elements inside the component.' } ]; diff --git a/api-generator/components/sidebar.js b/api-generator/components/sidebar.js index 333484b7b..c810d3051 100644 --- a/api-generator/components/sidebar.js +++ b/api-generator/components/sidebar.js @@ -58,6 +58,12 @@ const SidebarProps = [ type: 'string', default: 'undefined', description: 'Icon to display in the sidebar close button.' + }, + { + name: 'pt', + type: 'any', + default: 'null', + description: 'Uses to pass attributes to DOM elements inside the component.' } ]; @@ -80,6 +86,10 @@ const SidebarSlots = [ { name: 'header', description: 'Custom content for the component header.' + }, + { + name: 'closeicon', + description: 'Custom close icon template.' } ]; diff --git a/api-generator/components/skeleton.js b/api-generator/components/skeleton.js index 59ef801d1..e500ce80d 100644 --- a/api-generator/components/skeleton.js +++ b/api-generator/components/skeleton.js @@ -34,6 +34,12 @@ const SkeletonProps = [ type: 'string', default: 'wave', description: 'Type of the animation, valid options are "wave" and "none".' + }, + { + name: 'pt', + type: 'any', + default: 'null', + description: 'Uses to pass attributes to DOM elements inside the component.' } ]; diff --git a/api-generator/components/slider.js b/api-generator/components/slider.js index 15ae0a7a5..5d6a3f816 100644 --- a/api-generator/components/slider.js +++ b/api-generator/components/slider.js @@ -58,6 +58,12 @@ const SliderProps = [ type: 'string', default: 'null', description: 'Used to define a string that labels the element.' + }, + { + name: 'pt', + type: 'any', + default: 'null', + description: 'Uses to pass attributes to DOM elements inside the component.' } ]; diff --git a/api-generator/components/speeddial.js b/api-generator/components/speeddial.js index 01c3d3422..84fc6ad58 100644 --- a/api-generator/components/speeddial.js +++ b/api-generator/components/speeddial.js @@ -106,6 +106,12 @@ const SpeedDialProps = [ type: 'object', default: 'null', description: "Whether to display the tooltip on items. The modifiers of tooltip can be used like an object in it. Valid keys are 'event' and 'position'." + }, + { + name: 'pt', + type: 'any', + default: 'null', + description: 'Uses to pass attributes to DOM elements inside the component.' } ]; @@ -137,8 +143,12 @@ const SpeedDialSlots = [ description: 'Custom content for the item' }, { - name: 'toggle', - description: 'toggle: toggle metadata' + name: 'button', + description: 'Custom button template.' + }, + { + name: 'icon', + description: 'Custom icon template.' } ]; diff --git a/api-generator/components/splitbutton.js b/api-generator/components/splitbutton.js index 669b43666..d5b237969 100644 --- a/api-generator/components/splitbutton.js +++ b/api-generator/components/splitbutton.js @@ -100,6 +100,12 @@ const SplitButtonProps = [ type: 'boolean', default: 'false', description: 'Add a plain textual class to the button without a background initially.' + }, + { + name: 'pt', + type: 'any', + default: 'null', + description: 'Uses to pass attributes to DOM elements inside the component.' } ]; @@ -117,11 +123,23 @@ const SplitButtonEvents = [ } ]; +const SplitButtonSlots = [ + { + name: 'icon', + description: 'Custom icon template.' + }, + { + name: 'menubuttonicon', + description: 'Custom menu button icon template.' + } +]; + module.exports = { splitbutton: { name: 'SplitButton', description: 'SplitButton groups a set of commands in an overlay with a default command.', props: SplitButtonProps, - events: SplitButtonEvents + events: SplitButtonEvents, + slots: SplitButtonSlots } }; diff --git a/api-generator/components/steps.js b/api-generator/components/steps.js index c0e3b3111..00dec500f 100644 --- a/api-generator/components/steps.js +++ b/api-generator/components/steps.js @@ -22,6 +22,12 @@ const StepsProps = [ type: 'boolean', default: 'true', description: "Whether to apply 'router-link-active-exact' class if route exactly matches the item path." + }, + { + name: 'pt', + type: 'any', + default: 'null', + description: 'Uses to pass attributes to DOM elements inside the component.' } ]; diff --git a/api-generator/components/tabmenu.js b/api-generator/components/tabmenu.js index 8f3954a6e..3c94c8961 100644 --- a/api-generator/components/tabmenu.js +++ b/api-generator/components/tabmenu.js @@ -16,6 +16,12 @@ const TabMenuProps = [ type: 'number', default: '0', description: 'Active index of menuitem.' + }, + { + name: 'pt', + type: 'any', + default: 'null', + description: 'Uses to pass attributes to DOM elements inside the component.' } ]; @@ -42,6 +48,10 @@ const TabMenuSlots = [ { name: 'item', description: 'Template of a menuitem.' + }, + { + name: 'itemicon', + description: 'Custom item icon template.' } ]; diff --git a/api-generator/components/tabview.js b/api-generator/components/tabview.js index a632fe72a..41d4879ab 100644 --- a/api-generator/components/tabview.js +++ b/api-generator/components/tabview.js @@ -41,6 +41,18 @@ const TabViewProps = [ default: 'null', description: 'Uses to pass all properties of the HTMLButtonElement to the next button.' }, + { + name: 'prevIcon', + type: 'string', + default: 'null', + description: 'Prev icon of the scrollable tabview.' + }, + { + name: 'nextIcon', + type: 'string', + default: 'null', + description: 'Next icon of the scrollable tabview.' + }, { name: 'pt', type: 'any', diff --git a/api-generator/components/tag.js b/api-generator/components/tag.js index 56a03541f..1ac243364 100644 --- a/api-generator/components/tag.js +++ b/api-generator/components/tag.js @@ -22,6 +22,19 @@ const TagProps = [ type: 'string', default: 'null', description: 'Icon of the tag to display next to the value.' + }, + { + name: 'pt', + type: 'any', + default: 'null', + description: 'Uses to pass attributes to DOM elements inside the component.' + } +]; + +const TagSlots = [ + { + name: 'icon', + description: 'custom icon template.' } ]; @@ -29,6 +42,7 @@ module.exports = { tag: { name: 'Tag', description: 'Tag component is used to categorize content.', - props: TagProps + props: TagProps, + slots: TagSlots } }; diff --git a/api-generator/components/terminal.js b/api-generator/components/terminal.js index abe7e54a8..7946ad94e 100644 --- a/api-generator/components/terminal.js +++ b/api-generator/components/terminal.js @@ -10,6 +10,12 @@ const TerminalProps = [ type: 'string', default: 'null', description: 'Prompt text for each command.' + }, + { + name: 'pt', + type: 'any', + default: 'null', + description: 'Uses to pass attributes to DOM elements inside the component.' } ]; diff --git a/api-generator/components/textarea.js b/api-generator/components/textarea.js index eb95104f5..fdaf7aaae 100644 --- a/api-generator/components/textarea.js +++ b/api-generator/components/textarea.js @@ -10,6 +10,12 @@ const TextareaProps = [ type: 'boolean', default: 'false', description: 'When present, height of textarea changes as being typed.' + }, + { + name: 'pt', + type: 'any', + default: 'null', + description: 'Uses to pass attributes to DOM elements inside the component.' } ]; diff --git a/api-generator/components/tieredmenu.js b/api-generator/components/tieredmenu.js index 57b1b20d7..85df8d475 100644 --- a/api-generator/components/tieredmenu.js +++ b/api-generator/components/tieredmenu.js @@ -34,6 +34,12 @@ const TieredMenuProps = [ type: 'boolean', default: 'true', description: "Whether to apply 'router-link-active-exact' class if route exactly matches the item path." + }, + { + name: 'pt', + type: 'any', + default: 'null', + description: 'Uses to pass attributes to DOM elements inside the component.' } ]; @@ -45,6 +51,10 @@ const TieredMenuSlots = [ { name: 'submenuicon', description: 'Custom submenu icon template.' + }, + { + name: 'itemicon', + description: 'Custom item icon template.' } ]; diff --git a/api-generator/components/timeline.js b/api-generator/components/timeline.js index 1e95f0ba3..45973dc90 100644 --- a/api-generator/components/timeline.js +++ b/api-generator/components/timeline.js @@ -22,6 +22,12 @@ const TimelineProps = [ type: 'string', default: 'null', description: 'Name of the field that uniquely identifies the a record in the data.' + }, + { + name: 'pt', + type: 'any', + default: 'null', + description: 'Uses to pass attributes to DOM elements inside the component.' } ]; diff --git a/api-generator/components/toast.js b/api-generator/components/toast.js index 1306aadb6..e4dc9fe4c 100644 --- a/api-generator/components/toast.js +++ b/api-generator/components/toast.js @@ -28,6 +28,12 @@ const ToastProps = [ type: 'object', default: 'null', description: 'Object literal to define widths per screen size.' + }, + { + name: 'pt', + type: 'any', + default: 'null', + description: 'Uses to pass attributes to DOM elements inside the component.' } ]; @@ -60,6 +66,14 @@ const ToastSlots = [ { name: 'message', description: 'Custom content for the toast message' + }, + { + name: 'icon', + description: 'Custom icon template.' + }, + { + name: 'closeicon', + description: 'Custom close icon template.' } ]; diff --git a/api-generator/components/togglebutton.js b/api-generator/components/togglebutton.js index 6614ca535..e35bca1f0 100644 --- a/api-generator/components/togglebutton.js +++ b/api-generator/components/togglebutton.js @@ -70,6 +70,12 @@ const ToggleButtonProps = [ type: 'object', default: 'null', description: 'Uses to pass all properties of the HTMLInputElement to the focusable input element inside the component.' + }, + { + name: 'pt', + type: 'any', + default: 'null', + description: 'Uses to pass attributes to DOM elements inside the component.' } ]; @@ -109,11 +115,19 @@ const ToggleButtonEvents = [ } ]; +const ToggleButtonSlots = [ + { + name: 'icon', + description: 'custom icon template.' + } +]; + module.exports = { togglebutton: { name: 'ToggleButton', description: 'ToggleButton is used to select a boolean value using a button.', props: ToggleButtonProps, + slots: ToggleButtonSlots, events: ToggleButtonEvents } }; diff --git a/api-generator/components/toolbar.js b/api-generator/components/toolbar.js index 40b5f6506..a9f08a52e 100644 --- a/api-generator/components/toolbar.js +++ b/api-generator/components/toolbar.js @@ -21,6 +21,10 @@ const ToolbarSlots = [ { name: 'end', description: "Custom content for the component's right side" + }, + { + name: 'center', + description: "Custom content for the component's center" } ]; diff --git a/api-generator/components/tree.js b/api-generator/components/tree.js index 433d4f39b..ddb7ddf4f 100644 --- a/api-generator/components/tree.js +++ b/api-generator/components/tree.js @@ -77,6 +77,12 @@ const TreeProps = [ type: 'string', default: 'null', description: 'Height of the scroll viewport in fixed units or the "flex" keyword for a dynamic size.' + }, + { + name: 'pt', + type: 'any', + default: 'null', + description: 'Uses to pass attributes to DOM elements inside the component.' } ]; diff --git a/api-generator/components/treeselect.js b/api-generator/components/treeselect.js index d11b2a2c2..349987baa 100644 --- a/api-generator/components/treeselect.js +++ b/api-generator/components/treeselect.js @@ -101,6 +101,12 @@ const TreeSelectProps = [ type: 'string', default: 'null', description: 'Used to define a string that labels the element.' + }, + { + name: 'pt', + type: 'any', + default: 'null', + description: 'Uses to pass attributes to DOM elements inside the component.' } ]; @@ -196,8 +202,16 @@ const TreeSelectSlots = [ description: 'Custom content when there is no data to display' }, { - name: 'indicator', + name: 'triggericon', description: 'Custom content for the dropdown indicator' + }, + { + name: 'itemtogglericon', + description: 'Custom item toggler icon template.' + }, + { + name: 'itemcheckboxicon', + description: 'Custom item checkbox icon template.' } ]; diff --git a/api-generator/components/treetable.js b/api-generator/components/treetable.js index 4d3be6134..9310522c4 100644 --- a/api-generator/components/treetable.js +++ b/api-generator/components/treetable.js @@ -221,6 +221,12 @@ const TreeTableProps = [ type: 'string', default: 'null', description: 'Defines the responsive mode, currently only option is scroll.' + }, + { + name: 'pt', + type: 'any', + default: 'null', + description: 'Uses to pass attributes to DOM elements inside the component.' } ]; @@ -443,23 +449,55 @@ const TreeTableEvents = [ const TreeTableSlots = [ { name: 'header', - description: "Custom content for the component's header" + description: "Custom content for the component's header." }, { name: 'paginatorstart', - description: "Custom content for the component paginator's left side" + description: "Custom content for the component paginator's left side." }, { name: 'paginatorend', - description: "Custom content for the component paginator's right side" + description: "Custom content for the component paginator's right side." }, { name: 'empty', - description: 'Custom content when there is no data to display' + description: 'Custom content when there is no data to display.' }, { name: 'footer', - description: "Custom content for the component's footer" + description: "Custom content for the component's footer." + }, + { + name: 'loadingicon', + description: 'Custom loading icon template.' + }, + { + name: 'togglericon', + description: 'Custom toggler icon template.' + }, + { + name: 'checkboxicon', + description: 'Custom checkbox icon template.' + }, + { + name: 'sorticon', + description: 'Custom sort icon template.' + }, + { + name: 'paginatorfirstpagelinkicon', + description: 'Custom paginator first page link icon template.' + }, + { + name: 'paginatorprevpagelinkicon', + description: 'Custom paginator prev page link icon template.' + }, + { + name: 'paginatornextpagelinkicon', + description: 'Custom paginator next page link icon template.' + }, + { + name: 'paginatorlastpagelinkicon', + description: 'Custom paginator last page link icon template.' } ]; diff --git a/api-generator/components/tristatecheckbox.js b/api-generator/components/tristatecheckbox.js index ea0e6b0c5..ce4779741 100644 --- a/api-generator/components/tristatecheckbox.js +++ b/api-generator/components/tristatecheckbox.js @@ -40,6 +40,12 @@ const TriStateCheckboxProps = [ type: 'string', default: 'null', description: 'Used to define a string that labels the element.' + }, + { + name: 'pt', + type: 'any', + default: 'null', + description: 'Uses to pass attributes to DOM elements inside the component.' } ]; diff --git a/api-generator/components/virtualscroller.js b/api-generator/components/virtualscroller.js index 31d19ef4e..8acfd16cc 100644 --- a/api-generator/components/virtualscroller.js +++ b/api-generator/components/virtualscroller.js @@ -101,6 +101,12 @@ const VirtualScrollerProps = [ type: 'number|string', default: '0', description: 'Index of the element in tabbing order.' + }, + { + name: 'pt', + type: 'any', + default: 'null', + description: 'Uses to pass attributes to DOM elements inside the component.' } ]; diff --git a/assets/data/news.json b/assets/data/news.json index 39d6566b1..aa0892abd 100644 --- a/assets/data/news.json +++ b/assets/data/news.json @@ -1,8 +1,8 @@ { - "id": 36, - "content": "Introducing the all-new Apollo Vite Template", - "linkText": "View Demo", - "linkHref": "https://www.primefaces.org/apollo-vue", + "id": 37, + "content": "Unstyled mode preview featuring Tailwind.", + "linkText": "Learn More", + "linkHref": "https://youtu.be/JpYIX3V96gs", "backgroundStyle": "background-color:#4f8ff7", "textStyle": "color:#ffffff;font-weight:500", "linkStyle": "color:#ffffff;font-weight:700;text-decoration: underline;" diff --git a/assets/menu/menu.json b/assets/menu/menu.json index 4bd02ce41..a15a73703 100644 --- a/assets/menu/menu.json +++ b/assets/menu/menu.json @@ -455,9 +455,18 @@ "to": "/uikit" }, { - "name": "PrimeIcons", + "name": "Icons", "icon": "pi pi-eye", - "to": "/icons" + "children": [ + { + "name": "Prime Icons", + "to": "/icons" + }, + { + "name": "Custom Icons", + "to": "/customicons" + } + ] }, { "name": "Templates", diff --git a/build-meta.js b/build-meta.js index 697602815..14486010e 100644 --- a/build-meta.js +++ b/build-meta.js @@ -14,7 +14,7 @@ function copyDependencies(inFolder, outFolder) { } copyDependencies('./components/lib/', 'dist/'); -copyDependencies('./components/lib/icon/', 'dist/icon/'); +copyDependencies('./components/lib/icons/', 'dist/icons/'); fs.copySync(path.resolve(__dirname, './components/lib/ts-helpers.d.ts'), 'dist/ts-helpers.d.ts'); fs.copySync(path.resolve(__dirname, './package-build.json'), 'dist/package.json'); diff --git a/components/doc/DocComponent.vue b/components/doc/DocComponent.vue index 26dc47657..3891826ba 100644 --- a/components/doc/DocComponent.vue +++ b/components/doc/DocComponent.vue @@ -49,7 +49,7 @@ export default { }; }, mounted() { - this.tab = this.$route.hash.includes('api') ? 1 : 0; + this.tab = this.$route.hash.includes('api') ? 1 : this.$route.hash.includes('pt') ? 2 : 0; } }; diff --git a/components/doc/codeeditor/templates.js b/components/doc/codeeditor/templates.js index 86d423d04..d0069f29a 100644 --- a/components/doc/codeeditor/templates.js +++ b/components/doc/codeeditor/templates.js @@ -2,7 +2,7 @@ import pkg from '../../../package.json'; import { services } from './services'; const PrimeVue = { - version: '^3.26.1', + version: '^3.28.0', description: 'PrimeVue is an open source UI library for Vue featuring a rich set of 80+ components, a theme designer, various theme alternatives such as Material, Bootstrap, Tailwind, premium templates and professional support. In addition, it integrates with PrimeBlock, which has 400+ ready to use UI blocks to build spectacular applications in no time.' }; diff --git a/components/lib/accordion/Accordion.vue b/components/lib/accordion/Accordion.vue index 3cde6b2b2..201a54b55 100755 --- a/components/lib/accordion/Accordion.vue +++ b/components/lib/accordion/Accordion.vue @@ -43,8 +43,8 @@ diff --git a/components/lib/badge/Badge.d.ts b/components/lib/badge/Badge.d.ts index 044eea063..3d7934bd8 100644 --- a/components/lib/badge/Badge.d.ts +++ b/components/lib/badge/Badge.d.ts @@ -10,6 +10,33 @@ import { VNode } from 'vue'; import { ClassComponent, GlobalComponentConstructor } from '../ts-helpers'; +export declare type BadgePassThroughOptionType = BadgePassThroughAttributes | ((options: BadgePassThroughMethodOptions) => BadgePassThroughAttributes) | null | undefined; + +/** + * Custom passthrough(pt) option method. + */ +export interface BadgePassThroughMethodOptions { + props: BadgeProps; +} + +/** + * Custom passthrough attributes for each DOM elements + */ +export interface BadgePassThroughAttributes { + [key: string]: any; +} + +/** + * Custom passthrough(pt) options. + * @see {@link BadgeProps.pt} + */ +export interface BadgePassThroughOptions { + /** + * Uses to pass attributes to the root's DOM element. + */ + root?: BadgePassThroughOptionType; +} + /** * Defines valid properties in Badge component. */ @@ -26,6 +53,11 @@ export interface BadgeProps { * Size of the badge, valid options are 'large' and 'xlarge'. */ size?: 'large' | 'xlarge' | null | undefined; + /** + * Uses to pass attributes to DOM elements inside the component. + * @type {BadgePassThroughOptions} + */ + pt?: BadgePassThroughOptions; } /** diff --git a/components/lib/badge/Badge.vue b/components/lib/badge/Badge.vue index 4d0ab5c76..43e243306 100644 --- a/components/lib/badge/Badge.vue +++ b/components/lib/badge/Badge.vue @@ -1,14 +1,16 @@ `, + composition: ` + + + + + diff --git a/doc/dock/pt/PTImage.vue b/doc/dock/pt/PTImage.vue new file mode 100644 index 000000000..9ac50d6b4 --- /dev/null +++ b/doc/dock/pt/PTImage.vue @@ -0,0 +1,8 @@ + diff --git a/doc/dock/pt/index.vue b/doc/dock/pt/index.vue new file mode 100644 index 000000000..c9b2caaaf --- /dev/null +++ b/doc/dock/pt/index.vue @@ -0,0 +1,41 @@ + + + diff --git a/doc/dropdown/pt/PTDoc.vue b/doc/dropdown/pt/PTDoc.vue new file mode 100644 index 000000000..4618c74e2 --- /dev/null +++ b/doc/dropdown/pt/PTDoc.vue @@ -0,0 +1,114 @@ + + + diff --git a/doc/dropdown/pt/PTImage.vue b/doc/dropdown/pt/PTImage.vue new file mode 100644 index 000000000..9ac50d6b4 --- /dev/null +++ b/doc/dropdown/pt/PTImage.vue @@ -0,0 +1,8 @@ + diff --git a/doc/dropdown/pt/index.vue b/doc/dropdown/pt/index.vue new file mode 100644 index 000000000..14965d722 --- /dev/null +++ b/doc/dropdown/pt/index.vue @@ -0,0 +1,41 @@ + + + diff --git a/doc/dynamicdialog/pt/PTDoc.vue b/doc/dynamicdialog/pt/PTDoc.vue new file mode 100644 index 000000000..b58499063 --- /dev/null +++ b/doc/dynamicdialog/pt/PTDoc.vue @@ -0,0 +1,37 @@ + + + diff --git a/doc/dynamicdialog/pt/PTImage.vue b/doc/dynamicdialog/pt/PTImage.vue new file mode 100644 index 000000000..71647dbd4 --- /dev/null +++ b/doc/dynamicdialog/pt/PTImage.vue @@ -0,0 +1,8 @@ + diff --git a/doc/dynamicdialog/pt/index.vue b/doc/dynamicdialog/pt/index.vue new file mode 100644 index 000000000..45417ede2 --- /dev/null +++ b/doc/dynamicdialog/pt/index.vue @@ -0,0 +1,41 @@ + + + diff --git a/doc/editor/pt/PTDoc.vue b/doc/editor/pt/PTDoc.vue new file mode 100644 index 000000000..9bf43877d --- /dev/null +++ b/doc/editor/pt/PTDoc.vue @@ -0,0 +1,73 @@ + + + diff --git a/doc/editor/pt/PTImage.vue b/doc/editor/pt/PTImage.vue new file mode 100644 index 000000000..9ac50d6b4 --- /dev/null +++ b/doc/editor/pt/PTImage.vue @@ -0,0 +1,8 @@ + diff --git a/doc/editor/pt/index.vue b/doc/editor/pt/index.vue new file mode 100644 index 000000000..d5e5b01c0 --- /dev/null +++ b/doc/editor/pt/index.vue @@ -0,0 +1,41 @@ + + + diff --git a/doc/fieldset/pt/PTDoc.vue b/doc/fieldset/pt/PTDoc.vue new file mode 100644 index 000000000..32e523dac --- /dev/null +++ b/doc/fieldset/pt/PTDoc.vue @@ -0,0 +1,73 @@ + + + diff --git a/doc/fieldset/pt/PTImage.vue b/doc/fieldset/pt/PTImage.vue new file mode 100644 index 000000000..9d7626707 --- /dev/null +++ b/doc/fieldset/pt/PTImage.vue @@ -0,0 +1,8 @@ + diff --git a/doc/fieldset/pt/index.vue b/doc/fieldset/pt/index.vue new file mode 100644 index 000000000..e88e54fd6 --- /dev/null +++ b/doc/fieldset/pt/index.vue @@ -0,0 +1,41 @@ + + + diff --git a/doc/fileupload/pt/PTDoc.vue b/doc/fileupload/pt/PTDoc.vue new file mode 100644 index 000000000..39d764391 --- /dev/null +++ b/doc/fileupload/pt/PTDoc.vue @@ -0,0 +1,114 @@ + + + diff --git a/doc/fileupload/pt/PTImage.vue b/doc/fileupload/pt/PTImage.vue new file mode 100644 index 000000000..da90b655a --- /dev/null +++ b/doc/fileupload/pt/PTImage.vue @@ -0,0 +1,8 @@ + diff --git a/doc/fileupload/pt/index.vue b/doc/fileupload/pt/index.vue new file mode 100644 index 000000000..6468dd10f --- /dev/null +++ b/doc/fileupload/pt/index.vue @@ -0,0 +1,41 @@ + + + diff --git a/doc/galleria/pt/PTDoc.vue b/doc/galleria/pt/PTDoc.vue new file mode 100644 index 000000000..c72f84945 --- /dev/null +++ b/doc/galleria/pt/PTDoc.vue @@ -0,0 +1,172 @@ + + + diff --git a/doc/galleria/pt/PTImage.vue b/doc/galleria/pt/PTImage.vue new file mode 100644 index 000000000..9ac50d6b4 --- /dev/null +++ b/doc/galleria/pt/PTImage.vue @@ -0,0 +1,8 @@ + diff --git a/doc/galleria/pt/index.vue b/doc/galleria/pt/index.vue new file mode 100644 index 000000000..489a2f1af --- /dev/null +++ b/doc/galleria/pt/index.vue @@ -0,0 +1,41 @@ + + + diff --git a/doc/icons/ImportDoc.vue b/doc/icons/ImportDoc.vue index 06213184b..b96ec6d70 100644 --- a/doc/icons/ImportDoc.vue +++ b/doc/icons/ImportDoc.vue @@ -1,6 +1,6 @@ diff --git a/doc/image/PreviewDoc.vue b/doc/image/PreviewDoc.vue index 0b71bdaf9..51575a899 100644 --- a/doc/image/PreviewDoc.vue +++ b/doc/image/PreviewDoc.vue @@ -5,6 +5,7 @@
Image
+ diff --git a/doc/image/TemplateDoc.vue b/doc/image/TemplateDoc.vue index 48b443ac7..cca7a2631 100644 --- a/doc/image/TemplateDoc.vue +++ b/doc/image/TemplateDoc.vue @@ -3,10 +3,16 @@

An eye icon is displayed by default when the image is hovered in preview mode. Use the indicator slot for custom content.

- Image -