diff --git a/.theme3/components/css/dialog.ts b/.theme3/components/css/dialog.ts
new file mode 100644
index 0000000..b99dfc5
--- /dev/null
+++ b/.theme3/components/css/dialog.ts
@@ -0,0 +1,41 @@
+const css = ({ dt }: { dt: (token: string) => string }) => `
+/* Размеры диалога по умолчанию (default) */
+.p-dialog-extra.p-dialog {
+ min-width: ${dt('sizingDialog.extra.minWidth')};
+ max-width: ${dt('sizingDialog.extra.maxWidth')};
+}
+
+/* Размер SM (small) - для компактных диалогов */
+.p-dialog-sm-extra.p-dialog {
+ min-width: ${dt('sizingDialog.sm.extra.minWidth')};
+ max-width: ${dt('sizingDialog.sm.extra.maxWidth')};
+}
+
+/* Размер LG (large) - для диалогов с большим содержимым */
+.p-dialog-lg-extra.p-dialog {
+ min-width: ${dt('sizingDialog.lg.extra.minWidth')};
+ max-width: ${dt('sizingDialog.lg.extra.maxWidth')};
+}
+
+/* Размер XLG (extra large) - для диалогов с максимальным содержимым */
+.p-dialog-xlg-extra.p-dialog {
+ min-width: ${dt('sizingDialog.xlg.extra.minWidth')};
+ max-width: ${dt('sizingDialog.xlg.extra.maxWidth')};
+}
+
+.p-dialog .p-dialog-header {
+ border-bottom: ${dt('sizing.width.w-0.1')} solid ${dt('content.borderColor')};
+}
+
+.p-dialog .p-dialog-header .p-dialog-title {
+ display: flex;
+ align-items: center;
+ gap: ${dt('spacing.gap.gap-2')};
+}
+
+.p-dialog .p-dialog-footer {
+ flex-direction: row-reverse;
+}
+`;
+
+export default css;
diff --git a/.theme3/fonts/tt-fellows/TT_Fellows_DemiBold.woff2 b/.theme3/fonts/tt-fellows/TT_Fellows_DemiBold.woff2
new file mode 100644
index 0000000..ec67015
Binary files /dev/null and b/.theme3/fonts/tt-fellows/TT_Fellows_DemiBold.woff2 differ
diff --git a/.theme3/fonts/tt-fellows/TT_Fellows_DemiBold_Italic.woff2 b/.theme3/fonts/tt-fellows/TT_Fellows_DemiBold_Italic.woff2
new file mode 100644
index 0000000..bf6d066
Binary files /dev/null and b/.theme3/fonts/tt-fellows/TT_Fellows_DemiBold_Italic.woff2 differ
diff --git a/.theme3/fonts/tt-fellows/TT_Fellows_Regular.woff2 b/.theme3/fonts/tt-fellows/TT_Fellows_Regular.woff2
new file mode 100644
index 0000000..c4c6736
Binary files /dev/null and b/.theme3/fonts/tt-fellows/TT_Fellows_Regular.woff2 differ
diff --git a/angular.json b/angular.json
index 0cbea1d..f932264 100644
--- a/angular.json
+++ b/angular.json
@@ -17,6 +17,8 @@
"build": {
"builder": "@angular/build:application",
"options": {
+ "outputPath": "dist/angular-ui-kit",
+ "index": "src/index.html",
"browser": "src/main.ts",
"tsConfig": "tsconfig.app.json",
"inlineStyleLanguage": "scss",
@@ -117,5 +119,8 @@
}
}
}
+ },
+ "cli": {
+ "analytics": false
}
}
\ No newline at end of file
diff --git a/documentation.json b/documentation.json
new file mode 100644
index 0000000..42dc70e
--- /dev/null
+++ b/documentation.json
@@ -0,0 +1,1587 @@
+{
+ "pipes": [],
+ "interfaces": [],
+ "injectables": [],
+ "guards": [],
+ "interceptors": [],
+ "classes": [],
+ "directives": [],
+ "components": [
+ {
+ "name": "ButtonBadgeComponent",
+ "id": "component-ButtonBadgeComponent-fab33f9afdb48c6fae49d289621dfd7234c7920f7d3f703dac62f523dd0852ba668326634ecf1aaddf69f2b1afbd505312415662d1865b6b360fbd9dec82dafc",
+ "file": "src/stories/components/button/examples/button-badge.component.ts",
+ "encapsulation": [],
+ "entryComponents": [],
+ "inputs": [],
+ "outputs": [],
+ "providers": [],
+ "selector": "app-button-badge",
+ "styleUrls": [],
+ "styles": [
+ ""
+ ],
+ "template": "`
\n`",
+ "templateUrl": [],
+ "viewProviders": [],
+ "hostDirectives": [],
+ "inputsClass": [],
+ "outputsClass": [],
+ "propertiesClass": [],
+ "methodsClass": [],
+ "deprecated": false,
+ "deprecationMessage": "",
+ "hostBindings": [],
+ "hostListeners": [],
+ "standalone": true,
+ "imports": [
+ {
+ "name": "Button"
+ }
+ ],
+ "description": "",
+ "rawdescription": "\n",
+ "type": "component",
+ "sourceCode": "import { Component } from '@angular/core';\nimport { Button } from 'primeng/button';\nimport { StoryObj } from '@storybook/angular';\n\nconst template = `\n\n`;\nconst styles = '';\n\n@Component({\n selector: 'app-button-badge',\n standalone: true,\n imports: [Button],\n template,\n styles\n})\nexport class ButtonBadgeComponent {}\n\nexport const Badge: StoryObj = {\n render: () => ({\n template: ``\n }),\n parameters: {\n docs: {\n description: {\n story: 'Badge кнопка'\n },\n source: {\n language: 'ts',\n code: `\nimport { Component } from '@angular/core';\nimport { Button } from 'primeng/button';\n\n@Component({\n selector: 'app-button-text',\n standalone: true,\n imports: [\n Button\n ],\n template: ${template},\n styles: ${styles}\n})\nexport class ButtonBadgeComponent {}\n `\n }\n }\n }\n};\n",
+ "assetsDirs": [],
+ "styleUrlsData": "",
+ "stylesData": "\n",
+ "extends": []
+ },
+ {
+ "name": "ButtonBaseComponent",
+ "id": "component-ButtonBaseComponent-6af8a00394965f790f420544bff02db11acaf9dc0a8d25754bf7fb4eca0b1593e580fb507f53a98cc78fc785cc15586e7c1e378bbe02c80a0d007a7649cb86bf",
+ "file": "src/stories/components/button/examples/button-base.component.ts",
+ "encapsulation": [],
+ "entryComponents": [],
+ "inputs": [],
+ "outputs": [],
+ "providers": [],
+ "selector": "app-button-base",
+ "styleUrls": [],
+ "styles": [
+ ""
+ ],
+ "template": "`\n`",
+ "templateUrl": [],
+ "viewProviders": [],
+ "hostDirectives": [],
+ "inputsClass": [
+ {
+ "name": "badge",
+ "defaultValue": "''",
+ "deprecated": false,
+ "deprecationMessage": "",
+ "line": 42,
+ "type": "string",
+ "decorators": []
+ },
+ {
+ "name": "disabled",
+ "defaultValue": "false",
+ "deprecated": false,
+ "deprecationMessage": "",
+ "line": 34,
+ "type": "boolean",
+ "decorators": []
+ },
+ {
+ "name": "icon",
+ "defaultValue": "''",
+ "deprecated": false,
+ "deprecationMessage": "",
+ "line": 40,
+ "type": "string",
+ "decorators": []
+ },
+ {
+ "name": "iconPos",
+ "defaultValue": "null",
+ "deprecated": false,
+ "deprecationMessage": "",
+ "line": 41,
+ "type": "\"left\" | \"right\" | null",
+ "decorators": []
+ },
+ {
+ "name": "label",
+ "defaultValue": "''",
+ "deprecated": false,
+ "deprecationMessage": "",
+ "line": 33,
+ "type": "string",
+ "decorators": []
+ },
+ {
+ "name": "loading",
+ "defaultValue": "false",
+ "deprecated": false,
+ "deprecationMessage": "",
+ "line": 35,
+ "type": "boolean",
+ "decorators": []
+ },
+ {
+ "name": "outlined",
+ "defaultValue": "false",
+ "deprecated": false,
+ "deprecationMessage": "",
+ "line": 38,
+ "type": "boolean",
+ "decorators": []
+ },
+ {
+ "name": "rounded",
+ "defaultValue": "false",
+ "deprecated": false,
+ "deprecationMessage": "",
+ "line": 37,
+ "type": "boolean",
+ "decorators": []
+ },
+ {
+ "name": "severity",
+ "defaultValue": "null",
+ "deprecated": false,
+ "deprecationMessage": "",
+ "line": 43,
+ "type": "\"success\" | \"info\" | \"warn\" | \"primary\" | \"help\" | \"danger\" | null",
+ "decorators": []
+ },
+ {
+ "name": "size",
+ "defaultValue": "null",
+ "deprecated": false,
+ "deprecationMessage": "",
+ "line": 36,
+ "type": "\"small\" | \"large\" | null",
+ "decorators": []
+ },
+ {
+ "name": "text",
+ "defaultValue": "false",
+ "deprecated": false,
+ "deprecationMessage": "",
+ "line": 39,
+ "type": "boolean",
+ "decorators": []
+ }
+ ],
+ "outputsClass": [],
+ "propertiesClass": [],
+ "methodsClass": [],
+ "deprecated": false,
+ "deprecationMessage": "",
+ "hostBindings": [],
+ "hostListeners": [],
+ "standalone": true,
+ "imports": [
+ {
+ "name": "Button"
+ }
+ ],
+ "description": "",
+ "rawdescription": "\n",
+ "type": "component",
+ "sourceCode": "import { Component, Input } from '@angular/core';\nimport { Button } from 'primeng/button';\nimport { StoryObj } from '@storybook/angular';\n\nconst template = `\n\n`;\nconst styles = ``;\n\n@Component({\n selector: 'app-button-base',\n standalone: true,\n imports: [Button],\n template,\n styles\n})\nexport class ButtonBaseComponent {\n @Input() label = '';\n @Input() disabled = false;\n @Input() loading = false;\n @Input() size: 'small' | 'large' | null = null;\n @Input() rounded = false;\n @Input() outlined = false;\n @Input() text = false;\n @Input() icon: string = '';\n @Input() iconPos: 'left' | 'right' | null = null;\n @Input() badge: string = '';\n @Input() severity: 'success' | 'info' | 'warn' | 'primary' | 'help' | 'danger' | null = null;\n}\n\nexport const Base: StoryObj = {\n render: (args) => ({\n props: args,\n template: `\n\n`\n }),\n args: {\n label: 'Base button',\n disabled: false,\n loading: false,\n size: null,\n rounded: false,\n outlined: false,\n text: false,\n icon: '',\n iconPos: null,\n badge: '',\n severity: null\n },\n argTypes: {\n label: {\n description: 'Текст кнопки.'\n },\n disabled: {\n description: 'При наличии указывает, что компонент должен быть отключен.'\n },\n loading: {\n description: 'Находится ли кнопка в состоянии загрузки.'\n },\n // TODO Добавить xlarge после фикса в либе.\n size: {\n description: 'Определяет размер кнопки.',\n control: { type: 'select' },\n options: [null, 'small', 'large'],\n table: {\n type: { summary: `'small' | 'large' | null` } // <-- тип в документации\n }\n },\n rounded: {\n description: 'При наличии делает кнопку с закругленными краями.'\n },\n outlined: {\n description: 'При наличии делает кнопку с контуром без фона.'\n },\n text: {\n description: 'При наличии делает кнопку текстовой без фона и границ.'\n },\n icon: {\n description: 'Имя иконки для отображения в кнопке.'\n },\n iconPos: {\n description: 'Позиция иконки относительно текста.',\n control: { type: 'select' },\n options: [null, 'left', 'right'],\n table: {\n type: { summary: `'left' | 'right' | null` }\n }\n },\n badge: {\n description: 'Текст для отображения в виде бейджа на кнопке.'\n },\n severity: {\n description: 'Определяет цветовую схему кнопки.',\n control: { type: 'select' },\n options: [null, 'success', 'info', 'warn', 'primary', 'help', 'danger'],\n table: {\n type: {\n summary: `'success' | 'info' | 'warn' | 'primary' | 'help' | 'danger' | null`\n }\n }\n }\n },\n parameters: {\n docs: {\n description: {\n story: 'Стандартная кнопка'\n },\n source: {\n language: 'ts',\n code: `\nimport { Component } from '@angular/core';\nimport { Button } from 'primeng/button';\n\n@Component({\n selector: 'app-button-base',\n standalone: true,\n imports: [\n Button\n ],\n template: ${template},\n styles: ${styles}\n})\nexport class ButtonBaseComponent {\n @Input() label = '';\n @Input() disabled = false;\n @Input() loading = false;\n @Input() size: 'small' | 'large' | null = null;\n @Input() rounded = false;\n}\n `\n }\n }\n }\n};\n",
+ "assetsDirs": [],
+ "styleUrlsData": "",
+ "stylesData": "\n",
+ "extends": []
+ },
+ {
+ "name": "ButtonDisabledComponent",
+ "id": "component-ButtonDisabledComponent-08149394bbd9dbd2d50d65e9a92b7cbac68e072764309fc410968d2ef7c91352a365dc0e14dd6193f13ab6eaa25606e8f505fc0a1c17097427aa69d168736ab8",
+ "file": "src/stories/components/button/examples/button-disabled.component.ts",
+ "encapsulation": [],
+ "entryComponents": [],
+ "inputs": [],
+ "outputs": [],
+ "providers": [],
+ "selector": "app-button-disabled",
+ "styleUrls": [],
+ "styles": [
+ ""
+ ],
+ "template": "`\n`",
+ "templateUrl": [],
+ "viewProviders": [],
+ "hostDirectives": [],
+ "inputsClass": [],
+ "outputsClass": [],
+ "propertiesClass": [],
+ "methodsClass": [],
+ "deprecated": false,
+ "deprecationMessage": "",
+ "hostBindings": [],
+ "hostListeners": [],
+ "standalone": true,
+ "imports": [
+ {
+ "name": "Button"
+ }
+ ],
+ "description": "",
+ "rawdescription": "\n",
+ "type": "component",
+ "sourceCode": "import { Component } from '@angular/core';\nimport { Button } from 'primeng/button';\nimport { StoryObj } from '@storybook/angular';\n\nconst template = `\n\n`;\nconst styles = '';\n\n@Component({\n selector: 'app-button-disabled',\n standalone: true,\n imports: [Button],\n template,\n styles\n})\nexport class ButtonDisabledComponent {}\n\nexport const Disabled: StoryObj = {\n render: () => ({\n template: ``\n }),\n parameters: {\n docs: {\n description: {\n story: 'Disabled кнопка'\n },\n source: {\n language: 'ts',\n code: `\nimport { Component } from '@angular/core';\nimport { Button } from 'primeng/button';\n\n@Component({\n selector: 'app-button-disabled',\n standalone: true,\n imports: [\n Button\n ],\n template: ${template},\n styles: ${styles}\n})\nexport class ButtonDisabledComponent {}\n `\n }\n }\n }\n};\n",
+ "assetsDirs": [],
+ "styleUrlsData": "",
+ "stylesData": "\n",
+ "extends": []
+ },
+ {
+ "name": "ButtonIconComponent",
+ "id": "component-ButtonIconComponent-553ddfe0086eec00020f592a5e46510ee6019a96420a18f0fc74e8ac183c5cd0e7ec864d369e6d9f3b378c09c5553bd2f92f8a6c407390fe601668ef0e6909ca",
+ "file": "src/stories/components/button/examples/button-icon.component.ts",
+ "encapsulation": [],
+ "entryComponents": [],
+ "inputs": [],
+ "outputs": [],
+ "providers": [],
+ "selector": "app-button-icon",
+ "styleUrls": [],
+ "styles": [
+ ""
+ ],
+ "template": "`\n`",
+ "templateUrl": [],
+ "viewProviders": [],
+ "hostDirectives": [],
+ "inputsClass": [],
+ "outputsClass": [],
+ "propertiesClass": [],
+ "methodsClass": [],
+ "deprecated": false,
+ "deprecationMessage": "",
+ "hostBindings": [],
+ "hostListeners": [],
+ "standalone": true,
+ "imports": [
+ {
+ "name": "Button"
+ }
+ ],
+ "description": "",
+ "rawdescription": "\n",
+ "type": "component",
+ "sourceCode": "import { Component } from '@angular/core';\nimport { Button } from 'primeng/button';\nimport { StoryObj } from '@storybook/angular';\n\nconst template = `\n\n`;\nconst styles = '';\n\n@Component({\n selector: 'app-button-icon',\n standalone: true,\n imports: [Button],\n template,\n styles\n})\nexport class ButtonIconComponent {}\n\nexport const Icon: StoryObj = {\n render: () => ({\n template: ``\n }),\n parameters: {\n docs: {\n description: {\n story: 'Кнопки с иконками'\n },\n source: {\n language: 'ts',\n code: `\nimport { Component } from '@angular/core';\nimport { Button } from 'primeng/button';\n\n@Component({\n selector: 'app-button-icon',\n standalone: true,\n imports: [\n Button\n ],\n template: ${template},\n styles: ${styles}\n})\nexport class ButtonIconComponent {}\n `\n }\n }\n }\n};\n",
+ "assetsDirs": [],
+ "styleUrlsData": "",
+ "stylesData": "\n",
+ "extends": []
+ },
+ {
+ "name": "ButtonLoadingComponent",
+ "id": "component-ButtonLoadingComponent-747831019d46f2ad5ee976a755845a807fe3d6fce93323c22753c42a300535885ea9570f93c580b2377de7ec8a16386caea5d52b5d8c5d87cf9ba97198870ace",
+ "file": "src/stories/components/button/examples/button-loading.component.ts",
+ "encapsulation": [],
+ "entryComponents": [],
+ "inputs": [],
+ "outputs": [],
+ "providers": [],
+ "selector": "app-button-loading",
+ "styleUrls": [],
+ "styles": [
+ ""
+ ],
+ "template": "`\n`",
+ "templateUrl": [],
+ "viewProviders": [],
+ "hostDirectives": [],
+ "inputsClass": [],
+ "outputsClass": [],
+ "propertiesClass": [],
+ "methodsClass": [],
+ "deprecated": false,
+ "deprecationMessage": "",
+ "hostBindings": [],
+ "hostListeners": [],
+ "standalone": true,
+ "imports": [
+ {
+ "name": "Button"
+ }
+ ],
+ "description": "",
+ "rawdescription": "\n",
+ "type": "component",
+ "sourceCode": "import { Component } from '@angular/core';\nimport { Button } from 'primeng/button';\nimport { StoryObj } from '@storybook/angular';\n\nconst template = `\n\n`;\nconst styles = '';\n\n@Component({\n selector: 'app-button-loading',\n standalone: true,\n imports: [Button],\n template,\n styles\n})\nexport class ButtonLoadingComponent {}\n\nexport const Loading: StoryObj = {\n render: () => ({\n template: ``\n }),\n parameters: {\n docs: {\n description: {\n story: 'Кнопка в состоянии загрузки'\n },\n source: {\n language: 'ts',\n code: `\nimport { Component } from '@angular/core';\nimport { Button } from 'primeng/button';\n\n@Component({\n selector: 'app-button-loading',\n standalone: true,\n imports: [\n Button\n ],\n template: ${template},\n styles: ${styles}\n})\nexport class ButtonLoadingComponent {}\n `\n }\n }\n }\n};\n",
+ "assetsDirs": [],
+ "styleUrlsData": "",
+ "stylesData": "\n",
+ "extends": []
+ },
+ {
+ "name": "ButtonOutlinedComponent",
+ "id": "component-ButtonOutlinedComponent-2f780c950280808a263be91edeaa56e63eedc39495be6eca8bb7dcea5d56a09aea77d6cecdb9341715d1e1f7c582df95b46fd1321497a1536e21b716244a4a5a",
+ "file": "src/stories/components/button/examples/button-outlined.component.ts",
+ "encapsulation": [],
+ "entryComponents": [],
+ "inputs": [],
+ "outputs": [],
+ "providers": [],
+ "selector": "app-button-outlined",
+ "styleUrls": [],
+ "styles": [
+ ""
+ ],
+ "template": "``",
+ "templateUrl": [],
+ "viewProviders": [],
+ "hostDirectives": [],
+ "inputsClass": [],
+ "outputsClass": [],
+ "propertiesClass": [],
+ "methodsClass": [],
+ "deprecated": false,
+ "deprecationMessage": "",
+ "hostBindings": [],
+ "hostListeners": [],
+ "standalone": true,
+ "imports": [
+ {
+ "name": "Button"
+ }
+ ],
+ "description": "",
+ "rawdescription": "\n",
+ "type": "component",
+ "sourceCode": "import { Component } from '@angular/core';\nimport { Button } from 'primeng/button';\nimport { StoryObj } from '@storybook/angular';\n\nconst template = `\n`;\nconst styles = '';\n\n@Component({\n selector: 'app-button-outlined',\n standalone: true,\n imports: [Button],\n template,\n styles\n})\nexport class ButtonOutlinedComponent {}\n\nexport const Outlined: StoryObj = {\n render: () => ({\n template: ``\n }),\n parameters: {\n docs: {\n description: {\n story: 'Outlined кнопка'\n },\n source: {\n language: 'ts',\n code: `\nimport { Component } from '@angular/core';\nimport { Button } from 'primeng/button';\n\n@Component({\n selector: 'app-button-outlined',\n standalone: true,\n imports: [\n Button\n ],\n template: ${template},\n styles: ${styles}\n})\nexport class ButtonOutlinedComponent {}\n `\n }\n }\n }\n};\n",
+ "assetsDirs": [],
+ "styleUrlsData": "",
+ "stylesData": "\n",
+ "extends": []
+ },
+ {
+ "name": "ButtonRoundedComponent",
+ "id": "component-ButtonRoundedComponent-75651107f6304e710142aef6f4f68ec0f1069847af847d954b7de576ea710779cec3f802adc8586bc9683100e14432e4c15d5d58fa2f7204d7e2e2d034db308a",
+ "file": "src/stories/components/button/examples/button-rounded.component.ts",
+ "encapsulation": [],
+ "entryComponents": [],
+ "inputs": [],
+ "outputs": [],
+ "providers": [],
+ "selector": "app-button-rounded",
+ "styleUrls": [],
+ "styles": [
+ ""
+ ],
+ "template": "`\n`",
+ "templateUrl": [],
+ "viewProviders": [],
+ "hostDirectives": [],
+ "inputsClass": [],
+ "outputsClass": [],
+ "propertiesClass": [],
+ "methodsClass": [],
+ "deprecated": false,
+ "deprecationMessage": "",
+ "hostBindings": [],
+ "hostListeners": [],
+ "standalone": true,
+ "imports": [
+ {
+ "name": "Button"
+ }
+ ],
+ "description": "",
+ "rawdescription": "\n",
+ "type": "component",
+ "sourceCode": "import { Component } from '@angular/core';\nimport { Button } from 'primeng/button';\nimport { StoryObj } from '@storybook/angular';\n\nconst template = `\n\n`;\nconst styles = '';\n\n@Component({\n selector: 'app-button-rounded',\n standalone: true,\n imports: [Button],\n template,\n styles\n})\nexport class ButtonRoundedComponent {}\n\nexport const Rounded: StoryObj = {\n render: () => ({\n template: ``\n }),\n parameters: {\n docs: {\n description: {\n story: 'Скругленная кнопка'\n },\n source: {\n language: 'ts',\n code: `\nimport { Component } from '@angular/core';\nimport { Button } from 'primeng/button';\n\n@Component({\n selector: 'app-button-rounded',\n standalone: true,\n imports: [\n Button\n ],\n template: ${template},\n styles: ${styles}\n})\nexport class ButtonRoundedComponent {}\n `\n }\n }\n }\n};\n",
+ "assetsDirs": [],
+ "styleUrlsData": "",
+ "stylesData": "\n",
+ "extends": []
+ },
+ {
+ "name": "ButtonSeverityComponent",
+ "id": "component-ButtonSeverityComponent-bceea86d34a4ff6c3637b6c4b0dfe628631cbeeacb8537089aaeb500fef8c51fbad4689c06a2de3d51f4f3510bc7520fd634f48cb91995dc93e187ab3099c6e5",
+ "file": "src/stories/components/button/examples/button-severity.component.ts",
+ "encapsulation": [],
+ "entryComponents": [],
+ "inputs": [],
+ "outputs": [],
+ "providers": [],
+ "selector": "app-button-severity",
+ "styleUrls": [],
+ "styles": [
+ ""
+ ],
+ "template": "`\n
\n
\n\n
\n\n
\n\n
\n\n
\n\n
\n\n
\n\n
\n
\n
\n`",
+ "templateUrl": [],
+ "viewProviders": [],
+ "hostDirectives": [],
+ "inputsClass": [],
+ "outputsClass": [],
+ "propertiesClass": [],
+ "methodsClass": [],
+ "deprecated": false,
+ "deprecationMessage": "",
+ "hostBindings": [],
+ "hostListeners": [],
+ "standalone": true,
+ "imports": [
+ {
+ "name": "Button"
+ }
+ ],
+ "description": "",
+ "rawdescription": "\n",
+ "type": "component",
+ "sourceCode": "import { Component } from '@angular/core';\nimport { Button } from 'primeng/button';\nimport { StoryObj } from '@storybook/angular';\n\nconst template = `\n\n
\n
\n\n
\n\n
\n\n
\n\n
\n\n
\n\n
\n\n
\n
\n
\n`;\nconst styles = '';\n\n@Component({\n selector: 'app-button-severity',\n standalone: true,\n imports: [Button],\n template,\n styles\n})\nexport class ButtonSeverityComponent {}\n\nexport const Severity: StoryObj = {\n render: () => ({\n template: ``\n }),\n parameters: {\n docs: {\n description: {\n story: 'Кнопки с разным Severity'\n },\n source: {\n language: 'ts',\n code: `\nimport { Component } from '@angular/core';\nimport { Button } from 'primeng/button';\n\n@Component({\n selector: 'app-button-severity',\n standalone: true,\n imports: [\n Button\n ],\n template: ${template},\n styles: ${styles}\n})\nexport class ButtonSeverityComponent {}\n `\n }\n }\n }\n};\n",
+ "assetsDirs": [],
+ "styleUrlsData": "",
+ "stylesData": "\n",
+ "extends": []
+ },
+ {
+ "name": "ButtonSizesComponent",
+ "id": "component-ButtonSizesComponent-cd17928f6a96e0c2d4319065effc31fa54d37723ef053a6ee42aaac52a553f33c495e79ccd49b3caa116ad0a761224fecf5b2f4bec5e1683dd8aa5f78cc53746",
+ "file": "src/stories/components/button/examples/button-sizes.component.ts",
+ "encapsulation": [],
+ "entryComponents": [],
+ "inputs": [],
+ "outputs": [],
+ "providers": [],
+ "selector": "app-button-sizes",
+ "styleUrls": [],
+ "styles": [
+ ""
+ ],
+ "template": "`\n`",
+ "templateUrl": [],
+ "viewProviders": [],
+ "hostDirectives": [],
+ "inputsClass": [],
+ "outputsClass": [],
+ "propertiesClass": [],
+ "methodsClass": [],
+ "deprecated": false,
+ "deprecationMessage": "",
+ "hostBindings": [],
+ "hostListeners": [],
+ "standalone": true,
+ "imports": [
+ {
+ "name": "Button"
+ }
+ ],
+ "description": "",
+ "rawdescription": "\n",
+ "type": "component",
+ "sourceCode": "import { Component } from '@angular/core';\nimport { StoryObj } from '@storybook/angular';\nimport { Button } from 'primeng/button';\n\nconst template = `\n\n`;\n\nconst styles = '';\n\n@Component({\n selector: 'app-button-sizes',\n standalone: true,\n imports: [Button],\n template,\n styles\n})\nexport class ButtonSizesComponent {}\n\nexport const Sizes: StoryObj = {\n render: () => ({\n template: ``\n }),\n parameters: {\n docs: {\n description: {\n story: 'Кнопки разных размеров'\n },\n source: {\n language: 'ts',\n code: `\nimport { Component } from '@angular/core';\nimport { Button } from 'primeng/button';\n\n@Component({\n selector: 'app-button-sizes',\n standalone: true,\n imports: [\n Button\n ],\n template: ${template},\n styles: ${styles}\n})\nexport class ButtonSizesComponent {}\n `\n }\n }\n }\n};\n",
+ "assetsDirs": [],
+ "styleUrlsData": "",
+ "stylesData": "\n",
+ "extends": []
+ },
+ {
+ "name": "ButtonTextComponent",
+ "id": "component-ButtonTextComponent-9ec9afa71413a44df8de13324a927aa6ce9c0992a9a509345a5081da321472dde3882151e6e56589f4e751c0c6091d49fb74c41e9cc549be31a6e283b2f0d5c1",
+ "file": "src/stories/components/button/examples/button-text.component.ts",
+ "encapsulation": [],
+ "entryComponents": [],
+ "inputs": [],
+ "outputs": [],
+ "providers": [],
+ "selector": "app-button-text",
+ "styleUrls": [],
+ "styles": [
+ ""
+ ],
+ "template": "`\n`",
+ "templateUrl": [],
+ "viewProviders": [],
+ "hostDirectives": [],
+ "inputsClass": [],
+ "outputsClass": [],
+ "propertiesClass": [],
+ "methodsClass": [],
+ "deprecated": false,
+ "deprecationMessage": "",
+ "hostBindings": [],
+ "hostListeners": [],
+ "standalone": true,
+ "imports": [
+ {
+ "name": "Button"
+ }
+ ],
+ "description": "",
+ "rawdescription": "\n",
+ "type": "component",
+ "sourceCode": "import { Component } from '@angular/core';\nimport { Button } from 'primeng/button';\nimport { StoryObj } from '@storybook/angular';\n\nconst template = `\n\n`;\nconst styles = '';\n\n@Component({\n selector: 'app-button-text',\n standalone: true,\n imports: [Button],\n template,\n styles\n})\nexport class ButtonTextComponent {}\n\nexport const Text: StoryObj = {\n render: () => ({\n template: ``\n }),\n parameters: {\n docs: {\n description: {\n story: 'Text кнопка'\n },\n source: {\n language: 'ts',\n code: `\nimport { Component } from '@angular/core';\nimport { Button } from 'primeng/button';\n\n@Component({\n selector: 'app-button-text',\n standalone: true,\n imports: [\n Button\n ],\n template: ${template},\n styles: ${styles}\n})\nexport class ButtonTextComponent {}\n `\n }\n }\n }\n};\n",
+ "assetsDirs": [],
+ "styleUrlsData": "",
+ "stylesData": "\n",
+ "extends": []
+ }
+ ],
+ "modules": [],
+ "miscellaneous": {
+ "variables": [
+ {
+ "name": "Badge",
+ "ctype": "miscellaneous",
+ "subtype": "variable",
+ "file": "src/stories/components/button/examples/button-badge.component.ts",
+ "deprecated": false,
+ "deprecationMessage": "",
+ "type": "StoryObj",
+ "defaultValue": "{\n render: () => ({\n template: ``\n }),\n parameters: {\n docs: {\n description: {\n story: 'Badge кнопка'\n },\n source: {\n language: 'ts',\n code: `\nimport { Component } from '@angular/core';\nimport { Button } from 'primeng/button';\n\n@Component({\n selector: 'app-button-text',\n standalone: true,\n imports: [\n Button\n ],\n template: ${template},\n styles: ${styles}\n})\nexport class ButtonBadgeComponent {}\n `\n }\n }\n }\n}"
+ },
+ {
+ "name": "Base",
+ "ctype": "miscellaneous",
+ "subtype": "variable",
+ "file": "src/stories/components/button/examples/button-base.component.ts",
+ "deprecated": false,
+ "deprecationMessage": "",
+ "type": "StoryObj",
+ "defaultValue": "{\n render: (args) => ({\n props: args,\n template: `\n\n`\n }),\n args: {\n label: 'Base button',\n disabled: false,\n loading: false,\n size: null,\n rounded: false,\n outlined: false,\n text: false,\n icon: '',\n iconPos: null,\n badge: '',\n severity: null\n },\n argTypes: {\n label: {\n description: 'Текст кнопки.'\n },\n disabled: {\n description: 'При наличии указывает, что компонент должен быть отключен.'\n },\n loading: {\n description: 'Находится ли кнопка в состоянии загрузки.'\n },\n // TODO Добавить xlarge после фикса в либе.\n size: {\n description: 'Определяет размер кнопки.',\n control: { type: 'select' },\n options: [null, 'small', 'large'],\n table: {\n type: { summary: `'small' | 'large' | null` } // <-- тип в документации\n }\n },\n rounded: {\n description: 'При наличии делает кнопку с закругленными краями.'\n },\n outlined: {\n description: 'При наличии делает кнопку с контуром без фона.'\n },\n text: {\n description: 'При наличии делает кнопку текстовой без фона и границ.'\n },\n icon: {\n description: 'Имя иконки для отображения в кнопке.'\n },\n iconPos: {\n description: 'Позиция иконки относительно текста.',\n control: { type: 'select' },\n options: [null, 'left', 'right'],\n table: {\n type: { summary: `'left' | 'right' | null` }\n }\n },\n badge: {\n description: 'Текст для отображения в виде бейджа на кнопке.'\n },\n severity: {\n description: 'Определяет цветовую схему кнопки.',\n control: { type: 'select' },\n options: [null, 'success', 'info', 'warn', 'primary', 'help', 'danger'],\n table: {\n type: {\n summary: `'success' | 'info' | 'warn' | 'primary' | 'help' | 'danger' | null`\n }\n }\n }\n },\n parameters: {\n docs: {\n description: {\n story: 'Стандартная кнопка'\n },\n source: {\n language: 'ts',\n code: `\nimport { Component } from '@angular/core';\nimport { Button } from 'primeng/button';\n\n@Component({\n selector: 'app-button-base',\n standalone: true,\n imports: [\n Button\n ],\n template: ${template},\n styles: ${styles}\n})\nexport class ButtonBaseComponent {\n @Input() label = '';\n @Input() disabled = false;\n @Input() loading = false;\n @Input() size: 'small' | 'large' | null = null;\n @Input() rounded = false;\n}\n `\n }\n }\n }\n}"
+ },
+ {
+ "name": "Disabled",
+ "ctype": "miscellaneous",
+ "subtype": "variable",
+ "file": "src/stories/components/button/examples/button-disabled.component.ts",
+ "deprecated": false,
+ "deprecationMessage": "",
+ "type": "StoryObj",
+ "defaultValue": "{\n render: () => ({\n template: ``\n }),\n parameters: {\n docs: {\n description: {\n story: 'Disabled кнопка'\n },\n source: {\n language: 'ts',\n code: `\nimport { Component } from '@angular/core';\nimport { Button } from 'primeng/button';\n\n@Component({\n selector: 'app-button-disabled',\n standalone: true,\n imports: [\n Button\n ],\n template: ${template},\n styles: ${styles}\n})\nexport class ButtonDisabledComponent {}\n `\n }\n }\n }\n}"
+ },
+ {
+ "name": "Icon",
+ "ctype": "miscellaneous",
+ "subtype": "variable",
+ "file": "src/stories/components/button/examples/button-icon.component.ts",
+ "deprecated": false,
+ "deprecationMessage": "",
+ "type": "StoryObj",
+ "defaultValue": "{\n render: () => ({\n template: ``\n }),\n parameters: {\n docs: {\n description: {\n story: 'Кнопки с иконками'\n },\n source: {\n language: 'ts',\n code: `\nimport { Component } from '@angular/core';\nimport { Button } from 'primeng/button';\n\n@Component({\n selector: 'app-button-icon',\n standalone: true,\n imports: [\n Button\n ],\n template: ${template},\n styles: ${styles}\n})\nexport class ButtonIconComponent {}\n `\n }\n }\n }\n}"
+ },
+ {
+ "name": "Loading",
+ "ctype": "miscellaneous",
+ "subtype": "variable",
+ "file": "src/stories/components/button/examples/button-loading.component.ts",
+ "deprecated": false,
+ "deprecationMessage": "",
+ "type": "StoryObj",
+ "defaultValue": "{\n render: () => ({\n template: ``\n }),\n parameters: {\n docs: {\n description: {\n story: 'Кнопка в состоянии загрузки'\n },\n source: {\n language: 'ts',\n code: `\nimport { Component } from '@angular/core';\nimport { Button } from 'primeng/button';\n\n@Component({\n selector: 'app-button-loading',\n standalone: true,\n imports: [\n Button\n ],\n template: ${template},\n styles: ${styles}\n})\nexport class ButtonLoadingComponent {}\n `\n }\n }\n }\n}"
+ },
+ {
+ "name": "meta",
+ "ctype": "miscellaneous",
+ "subtype": "variable",
+ "file": "src/stories/components/button/button.stories.ts",
+ "deprecated": false,
+ "deprecationMessage": "",
+ "type": "Meta",
+ "defaultValue": "{\n title: 'PrimeNG/Button',\n tags: ['autodocs'],\n decorators: [\n moduleMetadata({\n imports: [\n ButtonModule,\n ButtonBaseComponent,\n ButtonSizesComponent,\n ButtonRoundedComponent,\n ButtonOutlinedComponent,\n ButtonTextComponent,\n ButtonIconComponent,\n ButtonDisabledComponent,\n ButtonLoadingComponent,\n ButtonBadgeComponent,\n ButtonSeverityComponent\n ]\n })\n ],\n parameters: {\n docs: {\n description: {\n component: 'Компонент кнопки с различными стилями, состояниями и иконками'\n }\n }\n }\n}"
+ },
+ {
+ "name": "Outlined",
+ "ctype": "miscellaneous",
+ "subtype": "variable",
+ "file": "src/stories/components/button/examples/button-outlined.component.ts",
+ "deprecated": false,
+ "deprecationMessage": "",
+ "type": "StoryObj",
+ "defaultValue": "{\n render: () => ({\n template: ``\n }),\n parameters: {\n docs: {\n description: {\n story: 'Outlined кнопка'\n },\n source: {\n language: 'ts',\n code: `\nimport { Component } from '@angular/core';\nimport { Button } from 'primeng/button';\n\n@Component({\n selector: 'app-button-outlined',\n standalone: true,\n imports: [\n Button\n ],\n template: ${template},\n styles: ${styles}\n})\nexport class ButtonOutlinedComponent {}\n `\n }\n }\n }\n}"
+ },
+ {
+ "name": "Rounded",
+ "ctype": "miscellaneous",
+ "subtype": "variable",
+ "file": "src/stories/components/button/examples/button-rounded.component.ts",
+ "deprecated": false,
+ "deprecationMessage": "",
+ "type": "StoryObj",
+ "defaultValue": "{\n render: () => ({\n template: ``\n }),\n parameters: {\n docs: {\n description: {\n story: 'Скругленная кнопка'\n },\n source: {\n language: 'ts',\n code: `\nimport { Component } from '@angular/core';\nimport { Button } from 'primeng/button';\n\n@Component({\n selector: 'app-button-rounded',\n standalone: true,\n imports: [\n Button\n ],\n template: ${template},\n styles: ${styles}\n})\nexport class ButtonRoundedComponent {}\n `\n }\n }\n }\n}"
+ },
+ {
+ "name": "Severity",
+ "ctype": "miscellaneous",
+ "subtype": "variable",
+ "file": "src/stories/components/button/examples/button-severity.component.ts",
+ "deprecated": false,
+ "deprecationMessage": "",
+ "type": "StoryObj",
+ "defaultValue": "{\n render: () => ({\n template: ``\n }),\n parameters: {\n docs: {\n description: {\n story: 'Кнопки с разным Severity'\n },\n source: {\n language: 'ts',\n code: `\nimport { Component } from '@angular/core';\nimport { Button } from 'primeng/button';\n\n@Component({\n selector: 'app-button-severity',\n standalone: true,\n imports: [\n Button\n ],\n template: ${template},\n styles: ${styles}\n})\nexport class ButtonSeverityComponent {}\n `\n }\n }\n }\n}"
+ },
+ {
+ "name": "Sizes",
+ "ctype": "miscellaneous",
+ "subtype": "variable",
+ "file": "src/stories/components/button/examples/button-sizes.component.ts",
+ "deprecated": false,
+ "deprecationMessage": "",
+ "type": "StoryObj",
+ "defaultValue": "{\n render: () => ({\n template: ``\n }),\n parameters: {\n docs: {\n description: {\n story: 'Кнопки разных размеров'\n },\n source: {\n language: 'ts',\n code: `\nimport { Component } from '@angular/core';\nimport { Button } from 'primeng/button';\n\n@Component({\n selector: 'app-button-sizes',\n standalone: true,\n imports: [\n Button\n ],\n template: ${template},\n styles: ${styles}\n})\nexport class ButtonSizesComponent {}\n `\n }\n }\n }\n}"
+ },
+ {
+ "name": "styles",
+ "ctype": "miscellaneous",
+ "subtype": "variable",
+ "file": "src/stories/components/button/examples/button-badge.component.ts",
+ "deprecated": false,
+ "deprecationMessage": "",
+ "type": "string",
+ "defaultValue": "''"
+ },
+ {
+ "name": "styles",
+ "ctype": "miscellaneous",
+ "subtype": "variable",
+ "file": "src/stories/components/button/examples/button-base.component.ts",
+ "deprecated": false,
+ "deprecationMessage": "",
+ "type": "unknown",
+ "defaultValue": "``"
+ },
+ {
+ "name": "styles",
+ "ctype": "miscellaneous",
+ "subtype": "variable",
+ "file": "src/stories/components/button/examples/button-disabled.component.ts",
+ "deprecated": false,
+ "deprecationMessage": "",
+ "type": "string",
+ "defaultValue": "''"
+ },
+ {
+ "name": "styles",
+ "ctype": "miscellaneous",
+ "subtype": "variable",
+ "file": "src/stories/components/button/examples/button-icon.component.ts",
+ "deprecated": false,
+ "deprecationMessage": "",
+ "type": "string",
+ "defaultValue": "''"
+ },
+ {
+ "name": "styles",
+ "ctype": "miscellaneous",
+ "subtype": "variable",
+ "file": "src/stories/components/button/examples/button-loading.component.ts",
+ "deprecated": false,
+ "deprecationMessage": "",
+ "type": "string",
+ "defaultValue": "''"
+ },
+ {
+ "name": "styles",
+ "ctype": "miscellaneous",
+ "subtype": "variable",
+ "file": "src/stories/components/button/examples/button-outlined.component.ts",
+ "deprecated": false,
+ "deprecationMessage": "",
+ "type": "string",
+ "defaultValue": "''"
+ },
+ {
+ "name": "styles",
+ "ctype": "miscellaneous",
+ "subtype": "variable",
+ "file": "src/stories/components/button/examples/button-rounded.component.ts",
+ "deprecated": false,
+ "deprecationMessage": "",
+ "type": "string",
+ "defaultValue": "''"
+ },
+ {
+ "name": "styles",
+ "ctype": "miscellaneous",
+ "subtype": "variable",
+ "file": "src/stories/components/button/examples/button-severity.component.ts",
+ "deprecated": false,
+ "deprecationMessage": "",
+ "type": "string",
+ "defaultValue": "''"
+ },
+ {
+ "name": "styles",
+ "ctype": "miscellaneous",
+ "subtype": "variable",
+ "file": "src/stories/components/button/examples/button-sizes.component.ts",
+ "deprecated": false,
+ "deprecationMessage": "",
+ "type": "string",
+ "defaultValue": "''"
+ },
+ {
+ "name": "styles",
+ "ctype": "miscellaneous",
+ "subtype": "variable",
+ "file": "src/stories/components/button/examples/button-text.component.ts",
+ "deprecated": false,
+ "deprecationMessage": "",
+ "type": "string",
+ "defaultValue": "''"
+ },
+ {
+ "name": "template",
+ "ctype": "miscellaneous",
+ "subtype": "variable",
+ "file": "src/stories/components/button/examples/button-badge.component.ts",
+ "deprecated": false,
+ "deprecationMessage": "",
+ "type": "unknown",
+ "defaultValue": "`\n\n`"
+ },
+ {
+ "name": "template",
+ "ctype": "miscellaneous",
+ "subtype": "variable",
+ "file": "src/stories/components/button/examples/button-base.component.ts",
+ "deprecated": false,
+ "deprecationMessage": "",
+ "type": "unknown",
+ "defaultValue": "`\n\n`"
+ },
+ {
+ "name": "template",
+ "ctype": "miscellaneous",
+ "subtype": "variable",
+ "file": "src/stories/components/button/examples/button-disabled.component.ts",
+ "deprecated": false,
+ "deprecationMessage": "",
+ "type": "unknown",
+ "defaultValue": "`\n\n`"
+ },
+ {
+ "name": "template",
+ "ctype": "miscellaneous",
+ "subtype": "variable",
+ "file": "src/stories/components/button/examples/button-icon.component.ts",
+ "deprecated": false,
+ "deprecationMessage": "",
+ "type": "unknown",
+ "defaultValue": "`\n\n`"
+ },
+ {
+ "name": "template",
+ "ctype": "miscellaneous",
+ "subtype": "variable",
+ "file": "src/stories/components/button/examples/button-loading.component.ts",
+ "deprecated": false,
+ "deprecationMessage": "",
+ "type": "unknown",
+ "defaultValue": "`\n\n`"
+ },
+ {
+ "name": "template",
+ "ctype": "miscellaneous",
+ "subtype": "variable",
+ "file": "src/stories/components/button/examples/button-outlined.component.ts",
+ "deprecated": false,
+ "deprecationMessage": "",
+ "type": "unknown",
+ "defaultValue": "`\n`"
+ },
+ {
+ "name": "template",
+ "ctype": "miscellaneous",
+ "subtype": "variable",
+ "file": "src/stories/components/button/examples/button-rounded.component.ts",
+ "deprecated": false,
+ "deprecationMessage": "",
+ "type": "unknown",
+ "defaultValue": "`\n\n`"
+ },
+ {
+ "name": "template",
+ "ctype": "miscellaneous",
+ "subtype": "variable",
+ "file": "src/stories/components/button/examples/button-severity.component.ts",
+ "deprecated": false,
+ "deprecationMessage": "",
+ "type": "unknown",
+ "defaultValue": "`\n\n
\n
\n\n
\n\n
\n\n
\n\n
\n\n
\n\n
\n\n
\n
\n
\n`"
+ },
+ {
+ "name": "template",
+ "ctype": "miscellaneous",
+ "subtype": "variable",
+ "file": "src/stories/components/button/examples/button-sizes.component.ts",
+ "deprecated": false,
+ "deprecationMessage": "",
+ "type": "unknown",
+ "defaultValue": "`\n\n`"
+ },
+ {
+ "name": "template",
+ "ctype": "miscellaneous",
+ "subtype": "variable",
+ "file": "src/stories/components/button/examples/button-text.component.ts",
+ "deprecated": false,
+ "deprecationMessage": "",
+ "type": "unknown",
+ "defaultValue": "`\n\n`"
+ },
+ {
+ "name": "Text",
+ "ctype": "miscellaneous",
+ "subtype": "variable",
+ "file": "src/stories/components/button/examples/button-text.component.ts",
+ "deprecated": false,
+ "deprecationMessage": "",
+ "type": "StoryObj",
+ "defaultValue": "{\n render: () => ({\n template: ``\n }),\n parameters: {\n docs: {\n description: {\n story: 'Text кнопка'\n },\n source: {\n language: 'ts',\n code: `\nimport { Component } from '@angular/core';\nimport { Button } from 'primeng/button';\n\n@Component({\n selector: 'app-button-text',\n standalone: true,\n imports: [\n Button\n ],\n template: ${template},\n styles: ${styles}\n})\nexport class ButtonTextComponent {}\n `\n }\n }\n }\n}"
+ }
+ ],
+ "functions": [],
+ "typealiases": [],
+ "enumerations": [],
+ "groupedVariables": {
+ "src/stories/components/button/examples/button-badge.component.ts": [
+ {
+ "name": "Badge",
+ "ctype": "miscellaneous",
+ "subtype": "variable",
+ "file": "src/stories/components/button/examples/button-badge.component.ts",
+ "deprecated": false,
+ "deprecationMessage": "",
+ "type": "StoryObj",
+ "defaultValue": "{\n render: () => ({\n template: ``\n }),\n parameters: {\n docs: {\n description: {\n story: 'Badge кнопка'\n },\n source: {\n language: 'ts',\n code: `\nimport { Component } from '@angular/core';\nimport { Button } from 'primeng/button';\n\n@Component({\n selector: 'app-button-text',\n standalone: true,\n imports: [\n Button\n ],\n template: ${template},\n styles: ${styles}\n})\nexport class ButtonBadgeComponent {}\n `\n }\n }\n }\n}"
+ },
+ {
+ "name": "styles",
+ "ctype": "miscellaneous",
+ "subtype": "variable",
+ "file": "src/stories/components/button/examples/button-badge.component.ts",
+ "deprecated": false,
+ "deprecationMessage": "",
+ "type": "string",
+ "defaultValue": "''"
+ },
+ {
+ "name": "template",
+ "ctype": "miscellaneous",
+ "subtype": "variable",
+ "file": "src/stories/components/button/examples/button-badge.component.ts",
+ "deprecated": false,
+ "deprecationMessage": "",
+ "type": "unknown",
+ "defaultValue": "`\n\n`"
+ }
+ ],
+ "src/stories/components/button/examples/button-base.component.ts": [
+ {
+ "name": "Base",
+ "ctype": "miscellaneous",
+ "subtype": "variable",
+ "file": "src/stories/components/button/examples/button-base.component.ts",
+ "deprecated": false,
+ "deprecationMessage": "",
+ "type": "StoryObj",
+ "defaultValue": "{\n render: (args) => ({\n props: args,\n template: `\n\n`\n }),\n args: {\n label: 'Base button',\n disabled: false,\n loading: false,\n size: null,\n rounded: false,\n outlined: false,\n text: false,\n icon: '',\n iconPos: null,\n badge: '',\n severity: null\n },\n argTypes: {\n label: {\n description: 'Текст кнопки.'\n },\n disabled: {\n description: 'При наличии указывает, что компонент должен быть отключен.'\n },\n loading: {\n description: 'Находится ли кнопка в состоянии загрузки.'\n },\n // TODO Добавить xlarge после фикса в либе.\n size: {\n description: 'Определяет размер кнопки.',\n control: { type: 'select' },\n options: [null, 'small', 'large'],\n table: {\n type: { summary: `'small' | 'large' | null` } // <-- тип в документации\n }\n },\n rounded: {\n description: 'При наличии делает кнопку с закругленными краями.'\n },\n outlined: {\n description: 'При наличии делает кнопку с контуром без фона.'\n },\n text: {\n description: 'При наличии делает кнопку текстовой без фона и границ.'\n },\n icon: {\n description: 'Имя иконки для отображения в кнопке.'\n },\n iconPos: {\n description: 'Позиция иконки относительно текста.',\n control: { type: 'select' },\n options: [null, 'left', 'right'],\n table: {\n type: { summary: `'left' | 'right' | null` }\n }\n },\n badge: {\n description: 'Текст для отображения в виде бейджа на кнопке.'\n },\n severity: {\n description: 'Определяет цветовую схему кнопки.',\n control: { type: 'select' },\n options: [null, 'success', 'info', 'warn', 'primary', 'help', 'danger'],\n table: {\n type: {\n summary: `'success' | 'info' | 'warn' | 'primary' | 'help' | 'danger' | null`\n }\n }\n }\n },\n parameters: {\n docs: {\n description: {\n story: 'Стандартная кнопка'\n },\n source: {\n language: 'ts',\n code: `\nimport { Component } from '@angular/core';\nimport { Button } from 'primeng/button';\n\n@Component({\n selector: 'app-button-base',\n standalone: true,\n imports: [\n Button\n ],\n template: ${template},\n styles: ${styles}\n})\nexport class ButtonBaseComponent {\n @Input() label = '';\n @Input() disabled = false;\n @Input() loading = false;\n @Input() size: 'small' | 'large' | null = null;\n @Input() rounded = false;\n}\n `\n }\n }\n }\n}"
+ },
+ {
+ "name": "styles",
+ "ctype": "miscellaneous",
+ "subtype": "variable",
+ "file": "src/stories/components/button/examples/button-base.component.ts",
+ "deprecated": false,
+ "deprecationMessage": "",
+ "type": "unknown",
+ "defaultValue": "``"
+ },
+ {
+ "name": "template",
+ "ctype": "miscellaneous",
+ "subtype": "variable",
+ "file": "src/stories/components/button/examples/button-base.component.ts",
+ "deprecated": false,
+ "deprecationMessage": "",
+ "type": "unknown",
+ "defaultValue": "`\n\n`"
+ }
+ ],
+ "src/stories/components/button/examples/button-disabled.component.ts": [
+ {
+ "name": "Disabled",
+ "ctype": "miscellaneous",
+ "subtype": "variable",
+ "file": "src/stories/components/button/examples/button-disabled.component.ts",
+ "deprecated": false,
+ "deprecationMessage": "",
+ "type": "StoryObj",
+ "defaultValue": "{\n render: () => ({\n template: ``\n }),\n parameters: {\n docs: {\n description: {\n story: 'Disabled кнопка'\n },\n source: {\n language: 'ts',\n code: `\nimport { Component } from '@angular/core';\nimport { Button } from 'primeng/button';\n\n@Component({\n selector: 'app-button-disabled',\n standalone: true,\n imports: [\n Button\n ],\n template: ${template},\n styles: ${styles}\n})\nexport class ButtonDisabledComponent {}\n `\n }\n }\n }\n}"
+ },
+ {
+ "name": "styles",
+ "ctype": "miscellaneous",
+ "subtype": "variable",
+ "file": "src/stories/components/button/examples/button-disabled.component.ts",
+ "deprecated": false,
+ "deprecationMessage": "",
+ "type": "string",
+ "defaultValue": "''"
+ },
+ {
+ "name": "template",
+ "ctype": "miscellaneous",
+ "subtype": "variable",
+ "file": "src/stories/components/button/examples/button-disabled.component.ts",
+ "deprecated": false,
+ "deprecationMessage": "",
+ "type": "unknown",
+ "defaultValue": "`\n\n`"
+ }
+ ],
+ "src/stories/components/button/examples/button-icon.component.ts": [
+ {
+ "name": "Icon",
+ "ctype": "miscellaneous",
+ "subtype": "variable",
+ "file": "src/stories/components/button/examples/button-icon.component.ts",
+ "deprecated": false,
+ "deprecationMessage": "",
+ "type": "StoryObj",
+ "defaultValue": "{\n render: () => ({\n template: ``\n }),\n parameters: {\n docs: {\n description: {\n story: 'Кнопки с иконками'\n },\n source: {\n language: 'ts',\n code: `\nimport { Component } from '@angular/core';\nimport { Button } from 'primeng/button';\n\n@Component({\n selector: 'app-button-icon',\n standalone: true,\n imports: [\n Button\n ],\n template: ${template},\n styles: ${styles}\n})\nexport class ButtonIconComponent {}\n `\n }\n }\n }\n}"
+ },
+ {
+ "name": "styles",
+ "ctype": "miscellaneous",
+ "subtype": "variable",
+ "file": "src/stories/components/button/examples/button-icon.component.ts",
+ "deprecated": false,
+ "deprecationMessage": "",
+ "type": "string",
+ "defaultValue": "''"
+ },
+ {
+ "name": "template",
+ "ctype": "miscellaneous",
+ "subtype": "variable",
+ "file": "src/stories/components/button/examples/button-icon.component.ts",
+ "deprecated": false,
+ "deprecationMessage": "",
+ "type": "unknown",
+ "defaultValue": "`\n\n`"
+ }
+ ],
+ "src/stories/components/button/examples/button-loading.component.ts": [
+ {
+ "name": "Loading",
+ "ctype": "miscellaneous",
+ "subtype": "variable",
+ "file": "src/stories/components/button/examples/button-loading.component.ts",
+ "deprecated": false,
+ "deprecationMessage": "",
+ "type": "StoryObj",
+ "defaultValue": "{\n render: () => ({\n template: ``\n }),\n parameters: {\n docs: {\n description: {\n story: 'Кнопка в состоянии загрузки'\n },\n source: {\n language: 'ts',\n code: `\nimport { Component } from '@angular/core';\nimport { Button } from 'primeng/button';\n\n@Component({\n selector: 'app-button-loading',\n standalone: true,\n imports: [\n Button\n ],\n template: ${template},\n styles: ${styles}\n})\nexport class ButtonLoadingComponent {}\n `\n }\n }\n }\n}"
+ },
+ {
+ "name": "styles",
+ "ctype": "miscellaneous",
+ "subtype": "variable",
+ "file": "src/stories/components/button/examples/button-loading.component.ts",
+ "deprecated": false,
+ "deprecationMessage": "",
+ "type": "string",
+ "defaultValue": "''"
+ },
+ {
+ "name": "template",
+ "ctype": "miscellaneous",
+ "subtype": "variable",
+ "file": "src/stories/components/button/examples/button-loading.component.ts",
+ "deprecated": false,
+ "deprecationMessage": "",
+ "type": "unknown",
+ "defaultValue": "`\n\n`"
+ }
+ ],
+ "src/stories/components/button/button.stories.ts": [
+ {
+ "name": "meta",
+ "ctype": "miscellaneous",
+ "subtype": "variable",
+ "file": "src/stories/components/button/button.stories.ts",
+ "deprecated": false,
+ "deprecationMessage": "",
+ "type": "Meta",
+ "defaultValue": "{\n title: 'PrimeNG/Button',\n tags: ['autodocs'],\n decorators: [\n moduleMetadata({\n imports: [\n ButtonModule,\n ButtonBaseComponent,\n ButtonSizesComponent,\n ButtonRoundedComponent,\n ButtonOutlinedComponent,\n ButtonTextComponent,\n ButtonIconComponent,\n ButtonDisabledComponent,\n ButtonLoadingComponent,\n ButtonBadgeComponent,\n ButtonSeverityComponent\n ]\n })\n ],\n parameters: {\n docs: {\n description: {\n component: 'Компонент кнопки с различными стилями, состояниями и иконками'\n }\n }\n }\n}"
+ }
+ ],
+ "src/stories/components/button/examples/button-outlined.component.ts": [
+ {
+ "name": "Outlined",
+ "ctype": "miscellaneous",
+ "subtype": "variable",
+ "file": "src/stories/components/button/examples/button-outlined.component.ts",
+ "deprecated": false,
+ "deprecationMessage": "",
+ "type": "StoryObj",
+ "defaultValue": "{\n render: () => ({\n template: ``\n }),\n parameters: {\n docs: {\n description: {\n story: 'Outlined кнопка'\n },\n source: {\n language: 'ts',\n code: `\nimport { Component } from '@angular/core';\nimport { Button } from 'primeng/button';\n\n@Component({\n selector: 'app-button-outlined',\n standalone: true,\n imports: [\n Button\n ],\n template: ${template},\n styles: ${styles}\n})\nexport class ButtonOutlinedComponent {}\n `\n }\n }\n }\n}"
+ },
+ {
+ "name": "styles",
+ "ctype": "miscellaneous",
+ "subtype": "variable",
+ "file": "src/stories/components/button/examples/button-outlined.component.ts",
+ "deprecated": false,
+ "deprecationMessage": "",
+ "type": "string",
+ "defaultValue": "''"
+ },
+ {
+ "name": "template",
+ "ctype": "miscellaneous",
+ "subtype": "variable",
+ "file": "src/stories/components/button/examples/button-outlined.component.ts",
+ "deprecated": false,
+ "deprecationMessage": "",
+ "type": "unknown",
+ "defaultValue": "`\n`"
+ }
+ ],
+ "src/stories/components/button/examples/button-rounded.component.ts": [
+ {
+ "name": "Rounded",
+ "ctype": "miscellaneous",
+ "subtype": "variable",
+ "file": "src/stories/components/button/examples/button-rounded.component.ts",
+ "deprecated": false,
+ "deprecationMessage": "",
+ "type": "StoryObj",
+ "defaultValue": "{\n render: () => ({\n template: ``\n }),\n parameters: {\n docs: {\n description: {\n story: 'Скругленная кнопка'\n },\n source: {\n language: 'ts',\n code: `\nimport { Component } from '@angular/core';\nimport { Button } from 'primeng/button';\n\n@Component({\n selector: 'app-button-rounded',\n standalone: true,\n imports: [\n Button\n ],\n template: ${template},\n styles: ${styles}\n})\nexport class ButtonRoundedComponent {}\n `\n }\n }\n }\n}"
+ },
+ {
+ "name": "styles",
+ "ctype": "miscellaneous",
+ "subtype": "variable",
+ "file": "src/stories/components/button/examples/button-rounded.component.ts",
+ "deprecated": false,
+ "deprecationMessage": "",
+ "type": "string",
+ "defaultValue": "''"
+ },
+ {
+ "name": "template",
+ "ctype": "miscellaneous",
+ "subtype": "variable",
+ "file": "src/stories/components/button/examples/button-rounded.component.ts",
+ "deprecated": false,
+ "deprecationMessage": "",
+ "type": "unknown",
+ "defaultValue": "`\n\n`"
+ }
+ ],
+ "src/stories/components/button/examples/button-severity.component.ts": [
+ {
+ "name": "Severity",
+ "ctype": "miscellaneous",
+ "subtype": "variable",
+ "file": "src/stories/components/button/examples/button-severity.component.ts",
+ "deprecated": false,
+ "deprecationMessage": "",
+ "type": "StoryObj",
+ "defaultValue": "{\n render: () => ({\n template: ``\n }),\n parameters: {\n docs: {\n description: {\n story: 'Кнопки с разным Severity'\n },\n source: {\n language: 'ts',\n code: `\nimport { Component } from '@angular/core';\nimport { Button } from 'primeng/button';\n\n@Component({\n selector: 'app-button-severity',\n standalone: true,\n imports: [\n Button\n ],\n template: ${template},\n styles: ${styles}\n})\nexport class ButtonSeverityComponent {}\n `\n }\n }\n }\n}"
+ },
+ {
+ "name": "styles",
+ "ctype": "miscellaneous",
+ "subtype": "variable",
+ "file": "src/stories/components/button/examples/button-severity.component.ts",
+ "deprecated": false,
+ "deprecationMessage": "",
+ "type": "string",
+ "defaultValue": "''"
+ },
+ {
+ "name": "template",
+ "ctype": "miscellaneous",
+ "subtype": "variable",
+ "file": "src/stories/components/button/examples/button-severity.component.ts",
+ "deprecated": false,
+ "deprecationMessage": "",
+ "type": "unknown",
+ "defaultValue": "`\n\n
\n
\n\n
\n\n
\n\n
\n\n
\n\n
\n\n
\n\n
\n
\n
\n`"
+ }
+ ],
+ "src/stories/components/button/examples/button-sizes.component.ts": [
+ {
+ "name": "Sizes",
+ "ctype": "miscellaneous",
+ "subtype": "variable",
+ "file": "src/stories/components/button/examples/button-sizes.component.ts",
+ "deprecated": false,
+ "deprecationMessage": "",
+ "type": "StoryObj",
+ "defaultValue": "{\n render: () => ({\n template: ``\n }),\n parameters: {\n docs: {\n description: {\n story: 'Кнопки разных размеров'\n },\n source: {\n language: 'ts',\n code: `\nimport { Component } from '@angular/core';\nimport { Button } from 'primeng/button';\n\n@Component({\n selector: 'app-button-sizes',\n standalone: true,\n imports: [\n Button\n ],\n template: ${template},\n styles: ${styles}\n})\nexport class ButtonSizesComponent {}\n `\n }\n }\n }\n}"
+ },
+ {
+ "name": "styles",
+ "ctype": "miscellaneous",
+ "subtype": "variable",
+ "file": "src/stories/components/button/examples/button-sizes.component.ts",
+ "deprecated": false,
+ "deprecationMessage": "",
+ "type": "string",
+ "defaultValue": "''"
+ },
+ {
+ "name": "template",
+ "ctype": "miscellaneous",
+ "subtype": "variable",
+ "file": "src/stories/components/button/examples/button-sizes.component.ts",
+ "deprecated": false,
+ "deprecationMessage": "",
+ "type": "unknown",
+ "defaultValue": "`\n\n`"
+ }
+ ],
+ "src/stories/components/button/examples/button-text.component.ts": [
+ {
+ "name": "styles",
+ "ctype": "miscellaneous",
+ "subtype": "variable",
+ "file": "src/stories/components/button/examples/button-text.component.ts",
+ "deprecated": false,
+ "deprecationMessage": "",
+ "type": "string",
+ "defaultValue": "''"
+ },
+ {
+ "name": "template",
+ "ctype": "miscellaneous",
+ "subtype": "variable",
+ "file": "src/stories/components/button/examples/button-text.component.ts",
+ "deprecated": false,
+ "deprecationMessage": "",
+ "type": "unknown",
+ "defaultValue": "`\n\n`"
+ },
+ {
+ "name": "Text",
+ "ctype": "miscellaneous",
+ "subtype": "variable",
+ "file": "src/stories/components/button/examples/button-text.component.ts",
+ "deprecated": false,
+ "deprecationMessage": "",
+ "type": "StoryObj",
+ "defaultValue": "{\n render: () => ({\n template: ``\n }),\n parameters: {\n docs: {\n description: {\n story: 'Text кнопка'\n },\n source: {\n language: 'ts',\n code: `\nimport { Component } from '@angular/core';\nimport { Button } from 'primeng/button';\n\n@Component({\n selector: 'app-button-text',\n standalone: true,\n imports: [\n Button\n ],\n template: ${template},\n styles: ${styles}\n})\nexport class ButtonTextComponent {}\n `\n }\n }\n }\n}"
+ }
+ ]
+ },
+ "groupedFunctions": {},
+ "groupedEnumerations": {},
+ "groupedTypeAliases": {}
+ },
+ "routes": {
+ "name": "",
+ "kind": "module",
+ "children": []
+ },
+ "coverage": {
+ "count": 0,
+ "status": "low",
+ "files": [
+ {
+ "filePath": "src/stories/components/button/button.stories.ts",
+ "type": "variable",
+ "linktype": "miscellaneous",
+ "linksubtype": "variable",
+ "name": "meta",
+ "coveragePercent": 0,
+ "coverageCount": "0/1",
+ "status": "low"
+ },
+ {
+ "filePath": "src/stories/components/button/examples/button-badge.component.ts",
+ "type": "component",
+ "linktype": "component",
+ "name": "ButtonBadgeComponent",
+ "coveragePercent": 0,
+ "coverageCount": "0/1",
+ "status": "low"
+ },
+ {
+ "filePath": "src/stories/components/button/examples/button-badge.component.ts",
+ "type": "variable",
+ "linktype": "miscellaneous",
+ "linksubtype": "variable",
+ "name": "Badge",
+ "coveragePercent": 0,
+ "coverageCount": "0/1",
+ "status": "low"
+ },
+ {
+ "filePath": "src/stories/components/button/examples/button-badge.component.ts",
+ "type": "variable",
+ "linktype": "miscellaneous",
+ "linksubtype": "variable",
+ "name": "styles",
+ "coveragePercent": 0,
+ "coverageCount": "0/1",
+ "status": "low"
+ },
+ {
+ "filePath": "src/stories/components/button/examples/button-badge.component.ts",
+ "type": "variable",
+ "linktype": "miscellaneous",
+ "linksubtype": "variable",
+ "name": "template",
+ "coveragePercent": 0,
+ "coverageCount": "0/1",
+ "status": "low"
+ },
+ {
+ "filePath": "src/stories/components/button/examples/button-base.component.ts",
+ "type": "component",
+ "linktype": "component",
+ "name": "ButtonBaseComponent",
+ "coveragePercent": 0,
+ "coverageCount": "0/12",
+ "status": "low"
+ },
+ {
+ "filePath": "src/stories/components/button/examples/button-base.component.ts",
+ "type": "variable",
+ "linktype": "miscellaneous",
+ "linksubtype": "variable",
+ "name": "Base",
+ "coveragePercent": 0,
+ "coverageCount": "0/1",
+ "status": "low"
+ },
+ {
+ "filePath": "src/stories/components/button/examples/button-base.component.ts",
+ "type": "variable",
+ "linktype": "miscellaneous",
+ "linksubtype": "variable",
+ "name": "styles",
+ "coveragePercent": 0,
+ "coverageCount": "0/1",
+ "status": "low"
+ },
+ {
+ "filePath": "src/stories/components/button/examples/button-base.component.ts",
+ "type": "variable",
+ "linktype": "miscellaneous",
+ "linksubtype": "variable",
+ "name": "template",
+ "coveragePercent": 0,
+ "coverageCount": "0/1",
+ "status": "low"
+ },
+ {
+ "filePath": "src/stories/components/button/examples/button-disabled.component.ts",
+ "type": "component",
+ "linktype": "component",
+ "name": "ButtonDisabledComponent",
+ "coveragePercent": 0,
+ "coverageCount": "0/1",
+ "status": "low"
+ },
+ {
+ "filePath": "src/stories/components/button/examples/button-disabled.component.ts",
+ "type": "variable",
+ "linktype": "miscellaneous",
+ "linksubtype": "variable",
+ "name": "Disabled",
+ "coveragePercent": 0,
+ "coverageCount": "0/1",
+ "status": "low"
+ },
+ {
+ "filePath": "src/stories/components/button/examples/button-disabled.component.ts",
+ "type": "variable",
+ "linktype": "miscellaneous",
+ "linksubtype": "variable",
+ "name": "styles",
+ "coveragePercent": 0,
+ "coverageCount": "0/1",
+ "status": "low"
+ },
+ {
+ "filePath": "src/stories/components/button/examples/button-disabled.component.ts",
+ "type": "variable",
+ "linktype": "miscellaneous",
+ "linksubtype": "variable",
+ "name": "template",
+ "coveragePercent": 0,
+ "coverageCount": "0/1",
+ "status": "low"
+ },
+ {
+ "filePath": "src/stories/components/button/examples/button-icon.component.ts",
+ "type": "component",
+ "linktype": "component",
+ "name": "ButtonIconComponent",
+ "coveragePercent": 0,
+ "coverageCount": "0/1",
+ "status": "low"
+ },
+ {
+ "filePath": "src/stories/components/button/examples/button-icon.component.ts",
+ "type": "variable",
+ "linktype": "miscellaneous",
+ "linksubtype": "variable",
+ "name": "Icon",
+ "coveragePercent": 0,
+ "coverageCount": "0/1",
+ "status": "low"
+ },
+ {
+ "filePath": "src/stories/components/button/examples/button-icon.component.ts",
+ "type": "variable",
+ "linktype": "miscellaneous",
+ "linksubtype": "variable",
+ "name": "styles",
+ "coveragePercent": 0,
+ "coverageCount": "0/1",
+ "status": "low"
+ },
+ {
+ "filePath": "src/stories/components/button/examples/button-icon.component.ts",
+ "type": "variable",
+ "linktype": "miscellaneous",
+ "linksubtype": "variable",
+ "name": "template",
+ "coveragePercent": 0,
+ "coverageCount": "0/1",
+ "status": "low"
+ },
+ {
+ "filePath": "src/stories/components/button/examples/button-loading.component.ts",
+ "type": "component",
+ "linktype": "component",
+ "name": "ButtonLoadingComponent",
+ "coveragePercent": 0,
+ "coverageCount": "0/1",
+ "status": "low"
+ },
+ {
+ "filePath": "src/stories/components/button/examples/button-loading.component.ts",
+ "type": "variable",
+ "linktype": "miscellaneous",
+ "linksubtype": "variable",
+ "name": "Loading",
+ "coveragePercent": 0,
+ "coverageCount": "0/1",
+ "status": "low"
+ },
+ {
+ "filePath": "src/stories/components/button/examples/button-loading.component.ts",
+ "type": "variable",
+ "linktype": "miscellaneous",
+ "linksubtype": "variable",
+ "name": "styles",
+ "coveragePercent": 0,
+ "coverageCount": "0/1",
+ "status": "low"
+ },
+ {
+ "filePath": "src/stories/components/button/examples/button-loading.component.ts",
+ "type": "variable",
+ "linktype": "miscellaneous",
+ "linksubtype": "variable",
+ "name": "template",
+ "coveragePercent": 0,
+ "coverageCount": "0/1",
+ "status": "low"
+ },
+ {
+ "filePath": "src/stories/components/button/examples/button-outlined.component.ts",
+ "type": "component",
+ "linktype": "component",
+ "name": "ButtonOutlinedComponent",
+ "coveragePercent": 0,
+ "coverageCount": "0/1",
+ "status": "low"
+ },
+ {
+ "filePath": "src/stories/components/button/examples/button-outlined.component.ts",
+ "type": "variable",
+ "linktype": "miscellaneous",
+ "linksubtype": "variable",
+ "name": "Outlined",
+ "coveragePercent": 0,
+ "coverageCount": "0/1",
+ "status": "low"
+ },
+ {
+ "filePath": "src/stories/components/button/examples/button-outlined.component.ts",
+ "type": "variable",
+ "linktype": "miscellaneous",
+ "linksubtype": "variable",
+ "name": "styles",
+ "coveragePercent": 0,
+ "coverageCount": "0/1",
+ "status": "low"
+ },
+ {
+ "filePath": "src/stories/components/button/examples/button-outlined.component.ts",
+ "type": "variable",
+ "linktype": "miscellaneous",
+ "linksubtype": "variable",
+ "name": "template",
+ "coveragePercent": 0,
+ "coverageCount": "0/1",
+ "status": "low"
+ },
+ {
+ "filePath": "src/stories/components/button/examples/button-rounded.component.ts",
+ "type": "component",
+ "linktype": "component",
+ "name": "ButtonRoundedComponent",
+ "coveragePercent": 0,
+ "coverageCount": "0/1",
+ "status": "low"
+ },
+ {
+ "filePath": "src/stories/components/button/examples/button-rounded.component.ts",
+ "type": "variable",
+ "linktype": "miscellaneous",
+ "linksubtype": "variable",
+ "name": "Rounded",
+ "coveragePercent": 0,
+ "coverageCount": "0/1",
+ "status": "low"
+ },
+ {
+ "filePath": "src/stories/components/button/examples/button-rounded.component.ts",
+ "type": "variable",
+ "linktype": "miscellaneous",
+ "linksubtype": "variable",
+ "name": "styles",
+ "coveragePercent": 0,
+ "coverageCount": "0/1",
+ "status": "low"
+ },
+ {
+ "filePath": "src/stories/components/button/examples/button-rounded.component.ts",
+ "type": "variable",
+ "linktype": "miscellaneous",
+ "linksubtype": "variable",
+ "name": "template",
+ "coveragePercent": 0,
+ "coverageCount": "0/1",
+ "status": "low"
+ },
+ {
+ "filePath": "src/stories/components/button/examples/button-severity.component.ts",
+ "type": "component",
+ "linktype": "component",
+ "name": "ButtonSeverityComponent",
+ "coveragePercent": 0,
+ "coverageCount": "0/1",
+ "status": "low"
+ },
+ {
+ "filePath": "src/stories/components/button/examples/button-severity.component.ts",
+ "type": "variable",
+ "linktype": "miscellaneous",
+ "linksubtype": "variable",
+ "name": "Severity",
+ "coveragePercent": 0,
+ "coverageCount": "0/1",
+ "status": "low"
+ },
+ {
+ "filePath": "src/stories/components/button/examples/button-severity.component.ts",
+ "type": "variable",
+ "linktype": "miscellaneous",
+ "linksubtype": "variable",
+ "name": "styles",
+ "coveragePercent": 0,
+ "coverageCount": "0/1",
+ "status": "low"
+ },
+ {
+ "filePath": "src/stories/components/button/examples/button-severity.component.ts",
+ "type": "variable",
+ "linktype": "miscellaneous",
+ "linksubtype": "variable",
+ "name": "template",
+ "coveragePercent": 0,
+ "coverageCount": "0/1",
+ "status": "low"
+ },
+ {
+ "filePath": "src/stories/components/button/examples/button-sizes.component.ts",
+ "type": "component",
+ "linktype": "component",
+ "name": "ButtonSizesComponent",
+ "coveragePercent": 0,
+ "coverageCount": "0/1",
+ "status": "low"
+ },
+ {
+ "filePath": "src/stories/components/button/examples/button-sizes.component.ts",
+ "type": "variable",
+ "linktype": "miscellaneous",
+ "linksubtype": "variable",
+ "name": "Sizes",
+ "coveragePercent": 0,
+ "coverageCount": "0/1",
+ "status": "low"
+ },
+ {
+ "filePath": "src/stories/components/button/examples/button-sizes.component.ts",
+ "type": "variable",
+ "linktype": "miscellaneous",
+ "linksubtype": "variable",
+ "name": "styles",
+ "coveragePercent": 0,
+ "coverageCount": "0/1",
+ "status": "low"
+ },
+ {
+ "filePath": "src/stories/components/button/examples/button-sizes.component.ts",
+ "type": "variable",
+ "linktype": "miscellaneous",
+ "linksubtype": "variable",
+ "name": "template",
+ "coveragePercent": 0,
+ "coverageCount": "0/1",
+ "status": "low"
+ },
+ {
+ "filePath": "src/stories/components/button/examples/button-text.component.ts",
+ "type": "component",
+ "linktype": "component",
+ "name": "ButtonTextComponent",
+ "coveragePercent": 0,
+ "coverageCount": "0/1",
+ "status": "low"
+ },
+ {
+ "filePath": "src/stories/components/button/examples/button-text.component.ts",
+ "type": "variable",
+ "linktype": "miscellaneous",
+ "linksubtype": "variable",
+ "name": "styles",
+ "coveragePercent": 0,
+ "coverageCount": "0/1",
+ "status": "low"
+ },
+ {
+ "filePath": "src/stories/components/button/examples/button-text.component.ts",
+ "type": "variable",
+ "linktype": "miscellaneous",
+ "linksubtype": "variable",
+ "name": "template",
+ "coveragePercent": 0,
+ "coverageCount": "0/1",
+ "status": "low"
+ },
+ {
+ "filePath": "src/stories/components/button/examples/button-text.component.ts",
+ "type": "variable",
+ "linktype": "miscellaneous",
+ "linksubtype": "variable",
+ "name": "Text",
+ "coveragePercent": 0,
+ "coverageCount": "0/1",
+ "status": "low"
+ }
+ ]
+ }
+}
\ No newline at end of file
diff --git a/src/assets/fonts/tt-fellows/TT_Fellows_DemiBold.woff2 b/src/assets/fonts/tt-fellows/TT_Fellows_DemiBold.woff2
new file mode 100644
index 0000000..ec67015
Binary files /dev/null and b/src/assets/fonts/tt-fellows/TT_Fellows_DemiBold.woff2 differ
diff --git a/src/assets/fonts/tt-fellows/TT_Fellows_DemiBold_Italic.woff2 b/src/assets/fonts/tt-fellows/TT_Fellows_DemiBold_Italic.woff2
new file mode 100644
index 0000000..bf6d066
Binary files /dev/null and b/src/assets/fonts/tt-fellows/TT_Fellows_DemiBold_Italic.woff2 differ
diff --git a/src/assets/fonts/tt-fellows/TT_Fellows_Regular.woff2 b/src/assets/fonts/tt-fellows/TT_Fellows_Regular.woff2
new file mode 100644
index 0000000..c4c6736
Binary files /dev/null and b/src/assets/fonts/tt-fellows/TT_Fellows_Regular.woff2 differ
diff --git a/src/prime-preset/components/css/avatar.ts b/src/prime-preset/components/css/avatar.ts
new file mode 100644
index 0000000..b975a1b
--- /dev/null
+++ b/src/prime-preset/components/css/avatar.ts
@@ -0,0 +1,7 @@
+const css = ({ dt }: any) => `
+.p-avatar {
+ border: 0.07142857142857142rem solid ${dt('avatar.extend.borderColor')};
+}
+`;
+
+export default css;
diff --git a/src/prime-preset/components/css/breadcrumb.ts b/src/prime-preset/components/css/breadcrumb.ts
new file mode 100644
index 0000000..814fe91
--- /dev/null
+++ b/src/prime-preset/components/css/breadcrumb.ts
@@ -0,0 +1,7 @@
+const css = ({ dt }: any) => `
+.p-breadcrumb .p-breadcrumb-list .p-breadcrumb-item .p-breadcrumb-item-link:hover {
+ background: ${dt('breadcrumb.extend.hoverBackground')};
+}
+`;
+
+export default css;
diff --git a/src/prime-preset/components/css/button.ts b/src/prime-preset/components/css/button.ts
new file mode 100644
index 0000000..db2f57b
--- /dev/null
+++ b/src/prime-preset/components/css/button.ts
@@ -0,0 +1,66 @@
+const css = ({ dt }: any) => `
+.p-button.p-component .p-button-label {
+ font-family: ${dt('fonts.fontFamily.heading')};
+}
+
+.p-component.p-button:focus-visible {
+ outline: none;
+ box-shadow: ${dt('focusRing.shadow')};
+}
+
+.p-button .p-button-icon {
+ font-size: ${dt('fonts.fontSize.xl')};
+}
+
+.p-button.p-button-lg .p-button-icon {
+ font-size: ${dt('fonts.fontSize.2xl')};
+}
+
+.p-component.p-button-secondary:disabled {
+ color: ${dt('button.extend.disabledColor')};
+ background: ${dt('button.extend.disabledBackground')};
+ mix-blend-mode: unset;
+ opacity: 1;
+}
+
+.p-button-link.p-button {
+ padding: ${dt('button.extend.extLink.paddingY')} ${dt('button.extend.extLink.paddingX')};
+}
+
+.p-button.p-button-link:not(:disabled):hover {
+ color: ${dt('button.extend.extLink.colorHover')};
+}
+
+.p-button.p-button-link:not(:disabled):hover .p-button-label {
+ text-decoration: none;
+}
+
+.p-button-lg.p-button-icon-only.p-button-link {
+ width: ${dt('button.extend.extLink.lg.iconOnlyWidth')};
+ height: ${dt('button.extend.extLink.lg.iconOnlyWidth')};
+}
+
+.p-button-link.p-button-icon-only.p-button {
+ width: ${dt('button.extend.extLink.base.iconOnlyWidth')};
+ height: ${dt('button.extend.extLink.base.iconOnlyWidth')};
+}
+
+.p-button-link.p-button-icon-only.p-button-sm {
+ width: ${dt('button.extend.extLink.sm.iconOnlyWidth')};
+ height: ${dt('button.extend.extLink.sm.iconOnlyWidth')};
+}
+
+.p-button-lg.p-button-icon-only {
+ height: ${dt('button.root.lg.iconOnlyWidth')};
+}
+
+.p-button-icon-only {
+ height: ${dt('button.root.iconOnlyWidth')};
+}
+
+.p-button-sm.p-button-icon-only {
+ height: ${dt('button.root.sm.iconOnlyWidth')};
+}
+`;
+
+export default css;
diff --git a/src/prime-preset/components/css/checkbox.ts b/src/prime-preset/components/css/checkbox.ts
new file mode 100644
index 0000000..a5d6adc
--- /dev/null
+++ b/src/prime-preset/components/css/checkbox.ts
@@ -0,0 +1,7 @@
+const css = ({ dt }: any) => `
+.p-checkbox {
+ border-width: ${dt('checkbox.root.extend.borderWidth')};
+}
+`;
+
+export default css;
diff --git a/src/prime-preset/components/css/confirmdialog.ts b/src/prime-preset/components/css/confirmdialog.ts
new file mode 100644
index 0000000..fe169bd
--- /dev/null
+++ b/src/prime-preset/components/css/confirmdialog.ts
@@ -0,0 +1,80 @@
+const css = ({ dt }: any) => `
+/* Размеры диалога по умолчанию (default) */
+.p-confirmdialog.p-dialog {
+ min-width: ${dt('sizingDialog.extra.minWidth')};
+ max-width: ${dt('sizingDialog.extra.maxWidth')};
+}
+
+/* Размер SM (small) - для компактных диалогов */
+.p-confirmdialog-sm.p-dialog {
+ min-width: ${dt('sizingDialog.sm.extra.minWidth')};
+ max-width: ${dt('sizingDialog.sm.extra.maxWidth')};
+}
+
+/* Размер LG (large) - для диалогов с большим содержимым */
+.p-confirmdialog-lg.p-dialog {
+ min-width: ${dt('sizingDialog.lg.extra.minWidth')};
+ max-width: ${dt('sizingDialog.lg.extra.maxWidth')};
+}
+
+/* Размер XLG (extra large) - для диалогов с максимальным содержимым */
+.p-confirmdialog-xlg.p-dialog {
+ min-width: ${dt('sizingDialog.xlg.extra.minWidth')};
+ max-width: ${dt('sizingDialog.xlg.extra.maxWidth')};
+}
+
+.p-dialog .p-dialog-header .p-dialog-title {
+ gap: ${dt('spacing.gap.gap-2')};
+}
+
+/* Стилизация иконки в заголовке диалога */
+.p-confirmdialog .p-dialog-header .p-icon {
+ display: inline-flex;
+ width: ${dt('fonts.fontSize.2xl')};
+ height: ${dt('fonts.fontSize.2xl')};
+}
+
+/* Размер шрифта для иконки (псевдоэлемент ::before) */
+.p-confirmdialog .p-dialog-header .p-icon::before {
+font-size: ${dt('fonts.fontSize.2xl')};
+}
+
+/* Расположение кнопок в футере диалога */
+.p-confirmdialog .p-dialog-footer {
+ justify-content: flex-end;
+ flex-direction: row-reverse;
+}
+
+/* Цвет иконки для severity="success" (успешное действие) */
+.p-confirmdialog[data-pc-severity="success"] .p-dialog-header .p-icon,
+.p-confirmdialog.p-confirm-dialog-accept .p-dialog-header .p-icon {
+ color: ${dt('confirmdialog.extend.extIcon.success')};
+}
+
+/* Цвет иконки для severity="info" (информационное сообщение) */
+.p-confirmdialog[data-pc-severity="info"] .p-dialog-header .p-icon,
+.p-confirmdialog.p-confirm-dialog-info .p-dialog-header .p-icon {
+ color: ${dt('confirmdialog.extend.extIcon.info')};
+}
+
+/* Цвет иконки для severity="warn" (предупреждение) */
+.p-confirmdialog[data-pc-severity="warn"] .p-dialog-header .p-icon,
+.p-confirmdialog.p-confirm-dialog-warn .p-dialog-header .p-icon {
+ color: ${dt('confirmdialog.extend.extIcon.warn')};
+}
+
+/* Цвет иконки для severity="help" (справка) */
+.p-confirmdialog[data-pc-severity="help"] .p-dialog-header .p-icon,
+.p-confirmdialog.p-confirm-dialog-help .p-dialog-header .p-icon {
+ color: ${dt('confirmdialog.extend.extIcon.help')};
+}
+
+/* Цвет иконки для severity="danger" или "error" (критическое действие) */
+.p-confirmdialog[data-pc-severity="danger"] .p-dialog-header .p-icon,
+.p-confirmdialog[data-pc-severity="error"] .p-dialog-header .p-icon,
+.p-confirmdialog.p-confirm-dialog-error .p-dialog-header .p-icon {
+ color: ${dt('confirmdialog.extend.extIcon.danger')};
+}
+`;
+
+export default css;
diff --git a/src/prime-preset/components/css/dialog.ts b/src/prime-preset/components/css/dialog.ts
new file mode 100644
index 0000000..4e9f2c4
--- /dev/null
+++ b/src/prime-preset/components/css/dialog.ts
@@ -0,0 +1,41 @@
+const css = ({ dt }: any) => `
+/* Размеры диалога по умолчанию (default) */
+.p-dialog-extra.p-dialog {
+ min-width: ${dt('sizingDialog.extra.minWidth')};
+ max-width: ${dt('sizingDialog.extra.maxWidth')};
+}
+
+/* Размер SM (small) - для компактных диалогов */
+.p-dialog-sm-extra.p-dialog {
+ min-width: ${dt('sizingDialog.sm.extra.minWidth')};
+ max-width: ${dt('sizingDialog.sm.extra.maxWidth')};
+}
+
+/* Размер LG (large) - для диалогов с большим содержимым */
+.p-dialog-lg-extra.p-dialog {
+ min-width: ${dt('sizingDialog.lg.extra.minWidth')};
+ max-width: ${dt('sizingDialog.lg.extra.maxWidth')};
+}
+
+/* Размер XLG (extra large) - для диалогов с максимальным содержимым */
+.p-dialog-xlg-extra.p-dialog {
+ min-width: ${dt('sizingDialog.xlg.extra.minWidth')};
+ max-width: ${dt('sizingDialog.xlg.extra.maxWidth')};
+}
+
+.p-dialog .p-dialog-header {
+ border-bottom: ${dt('sizing.width.w-0.1')} solid ${dt('content.borderColor')};
+}
+
+.p-dialog .p-dialog-header .p-dialog-title {
+ display: flex;
+ align-items: center;
+ gap: ${dt('spacing.gap.gap-2')};
+}
+
+.p-dialog .p-dialog-footer {
+ flex-direction: row-reverse;
+}
+`;
+
+export default css;
diff --git a/src/prime-preset/components/css/divider.ts b/src/prime-preset/components/css/divider.ts
new file mode 100644
index 0000000..8528d63
--- /dev/null
+++ b/src/prime-preset/components/css/divider.ts
@@ -0,0 +1,16 @@
+const css = ({ dt }: any) => `
+
+/* Дополнительная обертка для контента с иконками */
+.p-divider-content > div {
+ display: flex;
+ align-items: center;
+ gap: ${dt('spacing.gap.gap-2')};
+}
+
+/* Сброс margin для всех иконок внутри divider-content */
+.p-divider-content i {
+ margin: 0;
+}
+`;
+
+export default css;
diff --git a/src/prime-preset/css.ts b/src/prime-preset/css.ts
new file mode 100644
index 0000000..053f1b5
--- /dev/null
+++ b/src/prime-preset/css.ts
@@ -0,0 +1,32 @@
+import buttonCss from './components/css/button';
+import avatarCss from './components/css/avatar';
+import breadcrumbCss from './components/css/breadcrumb';
+import checkboxCss from './components/css/checkbox';
+import confirmdialogCss from './components/css/confirmdialog';
+import dialogCss from './components/css/dialog';
+import dividerCss from './components/css/divider';
+
+const css = ({ dt }: any) => `
+ ${buttonCss({ dt })}
+ ${avatarCss({ dt })}
+ ${breadcrumbCss({ dt })}
+ ${checkboxCss({ dt })}
+ ${confirmdialogCss({ dt })}
+ ${dialogCss({ dt })}
+ ${dividerCss({ dt })}
+
+ .p-disabled, .p-component:disabled {
+ mix-blend-mode: luminosity;
+ }
+
+ [class*="menu"].p-component {
+ border: none;
+ }
+
+ [class*="menu"][class*="item"]:not(:has([class*="icon"])) [class*="item-content"] > [class*="item"] {
+ padding-top: 0.625rem;
+ padding-bottom: 0.625rem;
+ }
+`;
+
+export default css;
diff --git a/src/prime-preset/fonts/tt-fellows/TT_Fellows_DemiBold.woff2 b/src/prime-preset/fonts/tt-fellows/TT_Fellows_DemiBold.woff2
new file mode 100644
index 0000000..ec67015
Binary files /dev/null and b/src/prime-preset/fonts/tt-fellows/TT_Fellows_DemiBold.woff2 differ
diff --git a/src/prime-preset/fonts/tt-fellows/TT_Fellows_DemiBold_Italic.woff2 b/src/prime-preset/fonts/tt-fellows/TT_Fellows_DemiBold_Italic.woff2
new file mode 100644
index 0000000..bf6d066
Binary files /dev/null and b/src/prime-preset/fonts/tt-fellows/TT_Fellows_DemiBold_Italic.woff2 differ
diff --git a/src/prime-preset/fonts/tt-fellows/TT_Fellows_Regular.woff2 b/src/prime-preset/fonts/tt-fellows/TT_Fellows_Regular.woff2
new file mode 100644
index 0000000..c4c6736
Binary files /dev/null and b/src/prime-preset/fonts/tt-fellows/TT_Fellows_Regular.woff2 differ
diff --git a/src/prime-preset/primitive.ts b/src/prime-preset/primitive.ts
index eeadb16..2122fef 100644
--- a/src/prime-preset/primitive.ts
+++ b/src/prime-preset/primitive.ts
@@ -368,5 +368,137 @@ export default {
'85': '3.357142857142857rem',
auto: 'auto'
}
+ },
+ spacing: {
+ padding: {
+ "p-0": "0",
+ "p-1": "0.25rem",
+ "p-2": "0.5rem",
+ "p-3": "0.75rem",
+ "p-4": "1rem",
+ "p-5": "1.25rem",
+ "p-6": "1.5rem",
+ "p-7": "1.75rem",
+ "p-8": "2rem",
+ "p-9": "2.25rem",
+ "p-10": "2.5rem",
+ "p-11": "2.75rem",
+ "p-12": "3rem",
+ "p-14": "3.5rem",
+ "p-16": "4rem",
+ "p-20": "5rem",
+ "p-24": "6rem",
+ "p-28": "7rem",
+ "p-32": "8rem",
+ "p-36": "9rem",
+ "p-40": "10rem"
+ },
+ gap: {
+ "gap-0": "0",
+ "gap-1": "0.25rem",
+ "gap-2": "0.5rem",
+ "gap-3": "0.75rem",
+ "gap-4": "1rem",
+ "gap-5": "1.25rem",
+ "gap-6": "1.5rem",
+ "gap-7": "1.75rem",
+ "gap-8": "2rem",
+ "gap-9": "2.25rem",
+ "gap-10": "2.5rem",
+ "gap-11": "2.75rem",
+ "gap-12": "3rem",
+ "gap-14": "3.5rem",
+ "gap-16": "4rem",
+ "gap-20": "5rem",
+ "gap-24": "6rem",
+ "gap-28": "7rem",
+ "gap-32": "8rem",
+ "gap-36": "9rem",
+ "gap-40": "10rem"
+ }
+ },
+ sizing: {
+ width: {
+ "w-0.1": "0.1rem",
+ "w-1": "1rem",
+ "w-2": "2rem",
+ "w-3": "3rem",
+ "w-4": "4rem",
+ "w-5": "5rem",
+ "w-6": "6rem",
+ "w-7": "7rem",
+ "w-8": "8rem",
+ "w-9": "9rem",
+ "w-10": "10rem",
+ "w-11": "11rem",
+ "w-12": "12rem",
+ "w-13": "13rem",
+ "w-14": "14rem",
+ "w-15": "15rem",
+ "w-16": "16rem",
+ "w-17": "17rem",
+ "w-18": "18rem",
+ "w-19": "19rem",
+ "w-20": "20rem",
+ "w-21": "21rem",
+ "w-22": "22rem",
+ "w-23": "23rem",
+ "w-24": "24rem",
+ "w-25": "25rem",
+ "w-26": "26rem",
+ "w-27": "27rem",
+ "w-28": "28rem",
+ "w-29": "29rem",
+ "w-30": "30rem",
+ "w-34": "34rem",
+ "w-45": "45rem",
+ "w-50": "50rem",
+ "w-54": "54rem",
+ "w-58": "58rem",
+ "w-60": "60rem"
+ },
+ height: {
+ "h-1": "1rem",
+ "h-2": "2rem",
+ "h-3": "3rem",
+ "h-4": "4rem",
+ "h-5": "5rem",
+ "h-6": "6rem",
+ "h-7": "7rem",
+ "h-8": "8rem",
+ "h-9": "9rem",
+ "h-10": "10rem",
+ "h-11": "11rem",
+ "h-12": "12rem",
+ "h-13": "13rem",
+ "h-14": "14rem",
+ "h-15": "15rem",
+ "h-16": "16rem",
+ "h-17": "17rem",
+ "h-18": "18rem",
+ "h-19": "19rem",
+ "h-20": "20rem",
+ "h-21": "21rem",
+ "h-22": "22rem",
+ "h-23": "23rem",
+ "h-24": "24rem",
+ "h-25": "25rem",
+ "h-26": "26rem",
+ "h-27": "27rem",
+ "h-28": "28rem",
+ "h-29": "29rem",
+ "h-30": "30rem",
+ "h-34": "34rem",
+ "h-45": "45rem",
+ "h-50": "50rem",
+ "h-54": "54rem",
+ "h-58": "58rem",
+ "h-60": "60rem"
+ }
+ },
+ opacity: {
+ '0': 0,
+ '50': 0.5,
+ '100': 1
}
};
diff --git a/src/prime-preset/semantic.ts b/src/prime-preset/semantic.ts
index 951a084..143f594 100644
--- a/src/prime-preset/semantic.ts
+++ b/src/prime-preset/semantic.ts
@@ -183,8 +183,12 @@ export default {
shadow: '0 2px 12px 0 rgba(0, 0, 0, 0.1)'
}
},
+ opacity: {
+ default: '{opacity.100}',
+ muted: '{opacity.50}',
+ disabled: '{opacity.0}'
+ },
transitionDuration: '0.2s',
- disabledOpacity: '0.5',
iconSizeMedium: '1rem',
iconSizeLarge: '1.25rem',
anchorGutter: '0.14285714285714285rem',
diff --git a/src/prime-preset/theme.preset.ts b/src/prime-preset/theme.preset.ts
index 29ae4eb..6f64bab 100644
--- a/src/prime-preset/theme.preset.ts
+++ b/src/prime-preset/theme.preset.ts
@@ -1,13 +1,11 @@
import { definePreset } from '@primeng/themes';
import Aura from '@primeng/themes/aura';
-// import * as components from './components.json';
-// import * as primitive from './primitive.json';
-// import * as semantic from './semantic.json';
import components from './components';
import primitive from './primitive';
import semantic from './semantic';
+import css from './css';
-const Preset = definePreset(Aura, { components, primitive, semantic });
+const Preset = definePreset(Aura, { components, primitive, semantic, css });
export default Preset;
diff --git a/src/stories/components/avatar/avatar.stories.ts b/src/stories/components/avatar/avatar.stories.ts
new file mode 100644
index 0000000..ff66e6f
--- /dev/null
+++ b/src/stories/components/avatar/avatar.stories.ts
@@ -0,0 +1,36 @@
+import { Meta, moduleMetadata } from '@storybook/angular';
+import { Avatar } from 'primeng/avatar';
+import { AvatarGroup } from 'primeng/avatargroup';
+
+import { AvatarBaseComponent, Base } from './examples/avatar-base.component';
+import { AvatarIconComponent, Icon } from './examples/avatar-icon.component';
+import { AvatarSizesComponent, Sizes } from './examples/avatar-sizes.component';
+import { AvatarGroupComponent, Group } from './examples/avatar-group.component';
+
+const meta: Meta = {
+ title: 'PrimeNG/Avatar',
+ tags: ['autodocs'],
+ decorators: [
+ moduleMetadata({
+ imports: [
+ Avatar,
+ AvatarGroup,
+ AvatarBaseComponent,
+ AvatarIconComponent,
+ AvatarSizesComponent,
+ AvatarGroupComponent
+ ]
+ })
+ ],
+ parameters: {
+ docs: {
+ description: {
+ component: 'Компонент Avatar используется для представления пользователей с изображениями, иконками или текстом'
+ }
+ }
+ }
+};
+
+export default meta;
+
+export { Base, Icon, Sizes, Group };
diff --git a/src/stories/components/avatar/examples/avatar-base.component.ts b/src/stories/components/avatar/examples/avatar-base.component.ts
new file mode 100644
index 0000000..bac3b16
--- /dev/null
+++ b/src/stories/components/avatar/examples/avatar-base.component.ts
@@ -0,0 +1,53 @@
+import { Component } from '@angular/core';
+import { Avatar } from 'primeng/avatar';
+import { StoryObj } from '@storybook/angular';
+
+const template = `
+
+`;
+
+const styles = '';
+
+@Component({
+ selector: 'app-avatar-base',
+ standalone: true,
+ imports: [Avatar],
+ template,
+ styles
+})
+export class AvatarBaseComponent {}
+
+export const Base: StoryObj = {
+ render: () => ({
+ template: ``
+ }),
+ parameters: {
+ docs: {
+ description: {
+ story: 'Базовые аватары с буквами'
+ },
+ source: {
+ language: 'ts',
+ code: `
+import { Component } from '@angular/core';
+import { Avatar } from 'primeng/avatar';
+
+@Component({
+ selector: 'app-avatar-base',
+ standalone: true,
+ imports: [Avatar],
+ template: \`${template}\`,
+ styles: \`${styles}\`
+})
+export class AvatarBaseComponent {}
+ `
+ }
+ }
+ }
+};
diff --git a/src/stories/components/avatar/examples/avatar-group.component.ts b/src/stories/components/avatar/examples/avatar-group.component.ts
new file mode 100644
index 0000000..50d8e0f
--- /dev/null
+++ b/src/stories/components/avatar/examples/avatar-group.component.ts
@@ -0,0 +1,56 @@
+import { Component } from '@angular/core';
+import { Avatar } from 'primeng/avatar';
+import { AvatarGroup } from 'primeng/avatargroup';
+import { StoryObj } from '@storybook/angular';
+
+const template = `
+
+`;
+
+const styles = '';
+
+@Component({
+ selector: 'app-avatar-group',
+ standalone: true,
+ imports: [Avatar, AvatarGroup],
+ template,
+ styles
+})
+export class AvatarGroupComponent {}
+
+export const Group: StoryObj = {
+ render: () => ({
+ template: ``
+ }),
+ parameters: {
+ docs: {
+ description: {
+ story: 'Группа аватаров'
+ },
+ source: {
+ language: 'ts',
+ code: `
+import { Component } from '@angular/core';
+import { Avatar } from 'primeng/avatar';
+import { AvatarGroup } from 'primeng/avatargroup';
+
+@Component({
+ selector: 'app-avatar-group',
+ standalone: true,
+ imports: [Avatar, AvatarGroup],
+ template: \`${template}\`,
+ styles: \`${styles}\`
+})
+export class AvatarGroupComponent {}
+ `
+ }
+ }
+ }
+};
diff --git a/src/stories/components/avatar/examples/avatar-icon.component.ts b/src/stories/components/avatar/examples/avatar-icon.component.ts
new file mode 100644
index 0000000..cae83f4
--- /dev/null
+++ b/src/stories/components/avatar/examples/avatar-icon.component.ts
@@ -0,0 +1,53 @@
+import { Component } from '@angular/core';
+import { Avatar } from 'primeng/avatar';
+import { StoryObj } from '@storybook/angular';
+
+const template = `
+
+`;
+
+const styles = '';
+
+@Component({
+ selector: 'app-avatar-icon',
+ standalone: true,
+ imports: [Avatar],
+ template,
+ styles
+})
+export class AvatarIconComponent {}
+
+export const Icon: StoryObj = {
+ render: () => ({
+ template: ``
+ }),
+ parameters: {
+ docs: {
+ description: {
+ story: 'Аватары с иконками'
+ },
+ source: {
+ language: 'ts',
+ code: `
+import { Component } from '@angular/core';
+import { Avatar } from 'primeng/avatar';
+
+@Component({
+ selector: 'app-avatar-icon',
+ standalone: true,
+ imports: [Avatar],
+ template: \`${template}\`,
+ styles: \`${styles}\`
+})
+export class AvatarIconComponent {}
+ `
+ }
+ }
+ }
+};
diff --git a/src/stories/components/avatar/examples/avatar-sizes.component.ts b/src/stories/components/avatar/examples/avatar-sizes.component.ts
new file mode 100644
index 0000000..318ced3
--- /dev/null
+++ b/src/stories/components/avatar/examples/avatar-sizes.component.ts
@@ -0,0 +1,53 @@
+import { Component } from '@angular/core';
+import { Avatar } from 'primeng/avatar';
+import { StoryObj } from '@storybook/angular';
+
+const template = `
+
+`;
+
+const styles = '';
+
+@Component({
+ selector: 'app-avatar-sizes',
+ standalone: true,
+ imports: [Avatar],
+ template,
+ styles
+})
+export class AvatarSizesComponent {}
+
+export const Sizes: StoryObj = {
+ render: () => ({
+ template: ``
+ }),
+ parameters: {
+ docs: {
+ description: {
+ story: 'Различные размеры аватаров'
+ },
+ source: {
+ language: 'ts',
+ code: `
+import { Component } from '@angular/core';
+import { Avatar } from 'primeng/avatar';
+
+@Component({
+ selector: 'app-avatar-sizes',
+ standalone: true,
+ imports: [Avatar],
+ template: \`${template}\`,
+ styles: \`${styles}\`
+})
+export class AvatarSizesComponent {}
+ `
+ }
+ }
+ }
+};
diff --git a/src/stories/components/badge/badge.stories.ts b/src/stories/components/badge/badge.stories.ts
new file mode 100644
index 0000000..215f12f
--- /dev/null
+++ b/src/stories/components/badge/badge.stories.ts
@@ -0,0 +1,30 @@
+import { Meta, moduleMetadata } from '@storybook/angular';
+import { Badge } from 'primeng/badge';
+
+import { BadgeBaseComponent, Base } from './examples/badge-base.component';
+import { BadgeSizesComponent, Sizes } from './examples/badge-sizes.component';
+
+const meta: Meta = {
+ title: 'PrimeNG/Badge',
+ tags: ['autodocs'],
+ decorators: [
+ moduleMetadata({
+ imports: [
+ Badge,
+ BadgeBaseComponent,
+ BadgeSizesComponent
+ ]
+ })
+ ],
+ parameters: {
+ docs: {
+ description: {
+ component: 'Компонент Badge используется для отображения числовых значений или статусов'
+ }
+ }
+ }
+};
+
+export default meta;
+
+export { Base, Sizes };
diff --git a/src/stories/components/badge/examples/badge-base.component.ts b/src/stories/components/badge/examples/badge-base.component.ts
new file mode 100644
index 0000000..f00686d
--- /dev/null
+++ b/src/stories/components/badge/examples/badge-base.component.ts
@@ -0,0 +1,55 @@
+import { Component } from '@angular/core';
+import { Badge } from 'primeng/badge';
+import { StoryObj } from '@storybook/angular';
+
+const template = `
+
+`;
+
+const styles = '';
+
+@Component({
+ selector: 'app-badge-base',
+ standalone: true,
+ imports: [Badge],
+ template,
+ styles
+})
+export class BadgeBaseComponent {}
+
+export const Base: StoryObj = {
+ render: () => ({
+ template: ``
+ }),
+ parameters: {
+ docs: {
+ description: {
+ story: 'Базовые бейджи с различными severity'
+ },
+ source: {
+ language: 'ts',
+ code: `
+import { Component } from '@angular/core';
+import { Badge } from 'primeng/badge';
+
+@Component({
+ selector: 'app-badge-base',
+ standalone: true,
+ imports: [Badge],
+ template: \`${template}\`,
+ styles: \`${styles}\`
+})
+export class BadgeBaseComponent {}
+ `
+ }
+ }
+ }
+};
diff --git a/src/stories/components/badge/examples/badge-sizes.component.ts b/src/stories/components/badge/examples/badge-sizes.component.ts
new file mode 100644
index 0000000..4ffca7d
--- /dev/null
+++ b/src/stories/components/badge/examples/badge-sizes.component.ts
@@ -0,0 +1,54 @@
+import { Component } from '@angular/core';
+import { Badge } from 'primeng/badge';
+import { StoryObj } from '@storybook/angular';
+
+const template = `
+
+`;
+
+const styles = '';
+
+@Component({
+ selector: 'app-badge-sizes',
+ standalone: true,
+ imports: [Badge],
+ template,
+ styles
+})
+export class BadgeSizesComponent {}
+
+export const Sizes: StoryObj = {
+ render: () => ({
+ template: ``
+ }),
+ parameters: {
+ docs: {
+ description: {
+ story: 'Различные размеры бейджей'
+ },
+ source: {
+ language: 'ts',
+ code: `
+import { Component } from '@angular/core';
+import { Badge } from 'primeng/badge';
+
+@Component({
+ selector: 'app-badge-sizes',
+ standalone: true,
+ imports: [Badge],
+ template: \`${template}\`,
+ styles: \`${styles}\`
+})
+export class BadgeSizesComponent {}
+ `
+ }
+ }
+ }
+};
diff --git a/src/stories/components/breadcrumb/breadcrumb.stories.ts b/src/stories/components/breadcrumb/breadcrumb.stories.ts
new file mode 100644
index 0000000..59dea43
--- /dev/null
+++ b/src/stories/components/breadcrumb/breadcrumb.stories.ts
@@ -0,0 +1,28 @@
+import { Meta, moduleMetadata } from '@storybook/angular';
+import { Breadcrumb } from 'primeng/breadcrumb';
+
+import { BreadcrumbBaseComponent, Base } from './examples/breadcrumb-base.component';
+
+const meta: Meta = {
+ title: 'PrimeNG/Breadcrumb',
+ tags: ['autodocs'],
+ decorators: [
+ moduleMetadata({
+ imports: [
+ Breadcrumb,
+ BreadcrumbBaseComponent
+ ]
+ })
+ ],
+ parameters: {
+ docs: {
+ description: {
+ component: 'Компонент Breadcrumb отображает путь навигации для текущей страницы'
+ }
+ }
+ }
+};
+
+export default meta;
+
+export { Base };
diff --git a/src/stories/components/breadcrumb/examples/breadcrumb-base.component.ts b/src/stories/components/breadcrumb/examples/breadcrumb-base.component.ts
new file mode 100644
index 0000000..d46066c
--- /dev/null
+++ b/src/stories/components/breadcrumb/examples/breadcrumb-base.component.ts
@@ -0,0 +1,67 @@
+import { Component } from '@angular/core';
+import { Breadcrumb } from 'primeng/breadcrumb';
+import { MenuItem } from 'primeng/api';
+import { StoryObj } from '@storybook/angular';
+
+const template = `
+
+`;
+
+const styles = '';
+
+@Component({
+ selector: 'app-breadcrumb-base',
+ standalone: true,
+ imports: [Breadcrumb],
+ template,
+ styles
+})
+export class BreadcrumbBaseComponent {
+ items: MenuItem[] = [
+ { label: 'Электроника' },
+ { label: 'Компьютеры' },
+ { label: 'Ноутбуки' }
+ ];
+
+ home: MenuItem = { icon: 'ti ti-home', routerLink: '/' };
+}
+
+export const Base: StoryObj = {
+ render: () => ({
+ template: ``
+ }),
+ parameters: {
+ docs: {
+ description: {
+ story: 'Базовый breadcrumb с навигацией'
+ },
+ source: {
+ language: 'ts',
+ code: `
+import { Component } from '@angular/core';
+import { Breadcrumb } from 'primeng/breadcrumb';
+import { MenuItem } from 'primeng/api';
+
+@Component({
+ selector: 'app-breadcrumb-base',
+ standalone: true,
+ imports: [Breadcrumb],
+ template: \`${template}\`,
+ styles: \`${styles}\`
+})
+export class BreadcrumbBaseComponent {
+ items: MenuItem[] = [
+ { label: 'Электроника' },
+ { label: 'Компьютеры' },
+ { label: 'Ноутбуки' }
+ ];
+
+ home: MenuItem = { icon: 'ti ti-home', routerLink: '/' };
+}
+ `
+ }
+ }
+ }
+};
diff --git a/src/stories/components/card/examples/card-base.component.ts b/src/stories/components/card/examples/card-base.component.ts
new file mode 100644
index 0000000..8cb5715
--- /dev/null
+++ b/src/stories/components/card/examples/card-base.component.ts
@@ -0,0 +1,64 @@
+import { Component } from '@angular/core';
+import { Card } from 'primeng/card';
+import { Button } from 'primeng/button';
+import { StoryObj } from '@storybook/angular';
+
+const template = `
+
+
+
+
+
+
+ Lorem ipsum dolor sit amet, consectetur adipisicing elit. Inventore sed consequuntur error repudiandae.
+
+
+
+
+
+
+`;
+
+const styles = '';
+
+@Component({
+ selector: 'app-card-base',
+ standalone: true,
+ imports: [Card, Button],
+ template,
+ styles
+})
+export class CardBaseComponent {}
+
+export const Base: StoryObj = {
+ render: () => ({
+ template: ``
+ }),
+ parameters: {
+ docs: {
+ description: {
+ story: 'Базовая карточка с заголовком, контентом и футером'
+ },
+ source: {
+ language: 'ts',
+ code: `
+import { Component } from '@angular/core';
+import { Card } from 'primeng/card';
+import { Button } from 'primeng/button';
+
+@Component({
+ selector: 'app-card-base',
+ standalone: true,
+ imports: [Card, Button],
+ template: \`${template}\`,
+ styles: \`${styles}\`
+})
+export class CardBaseComponent {}
+ `
+ }
+ }
+ }
+};
diff --git a/src/stories/components/checkbox/checkbox.stories.ts b/src/stories/components/checkbox/checkbox.stories.ts
new file mode 100644
index 0000000..2c2f437
--- /dev/null
+++ b/src/stories/components/checkbox/checkbox.stories.ts
@@ -0,0 +1,32 @@
+import { Meta, moduleMetadata } from '@storybook/angular';
+import { Checkbox } from 'primeng/checkbox';
+import { FormsModule } from '@angular/forms';
+
+import { CheckboxBaseComponent, Base } from './examples/checkbox-base.component';
+import { CheckboxGroupComponent, Group } from './examples/checkbox-group.component';
+
+const meta: Meta = {
+ title: 'PrimeNG/Checkbox',
+ tags: ['autodocs'],
+ decorators: [
+ moduleMetadata({
+ imports: [
+ Checkbox,
+ FormsModule,
+ CheckboxBaseComponent,
+ CheckboxGroupComponent
+ ]
+ })
+ ],
+ parameters: {
+ docs: {
+ description: {
+ component: 'Компонент Checkbox используется для выбора булевых значений или множественного выбора из списка'
+ }
+ }
+ }
+};
+
+export default meta;
+
+export { Base, Group };
diff --git a/src/stories/components/checkbox/examples/checkbox-base.component.ts b/src/stories/components/checkbox/examples/checkbox-base.component.ts
new file mode 100644
index 0000000..8be98ef
--- /dev/null
+++ b/src/stories/components/checkbox/examples/checkbox-base.component.ts
@@ -0,0 +1,66 @@
+import { Component } from '@angular/core';
+import { Checkbox } from 'primeng/checkbox';
+import { FormsModule } from '@angular/forms';
+import { StoryObj } from '@storybook/angular';
+
+const template = `
+
+
+
+
+
+
+
+
+
+
+
+
+`;
+
+const styles = '';
+
+@Component({
+ selector: 'app-checkbox-base',
+ standalone: true,
+ imports: [Checkbox, FormsModule],
+ template,
+ styles
+})
+export class CheckboxBaseComponent {
+ checked1: boolean = false;
+ checked2: boolean = true;
+}
+
+export const Base: StoryObj = {
+ render: () => ({
+ template: ``
+ }),
+ parameters: {
+ docs: {
+ description: {
+ story: 'Базовые чекбоксы'
+ },
+ source: {
+ language: 'ts',
+ code: `
+import { Component } from '@angular/core';
+import { Checkbox } from 'primeng/checkbox';
+import { FormsModule } from '@angular/forms';
+
+@Component({
+ selector: 'app-checkbox-base',
+ standalone: true,
+ imports: [Checkbox, FormsModule],
+ template: \`${template}\`,
+ styles: \`${styles}\`
+})
+export class CheckboxBaseComponent {
+ checked1: boolean = false;
+ checked2: boolean = true;
+}
+ `
+ }
+ }
+ }
+};
diff --git a/src/stories/components/checkbox/examples/checkbox-group.component.ts b/src/stories/components/checkbox/examples/checkbox-group.component.ts
new file mode 100644
index 0000000..0fd2dc8
--- /dev/null
+++ b/src/stories/components/checkbox/examples/checkbox-group.component.ts
@@ -0,0 +1,69 @@
+import { Component } from '@angular/core';
+import { Checkbox } from 'primeng/checkbox';
+import { FormsModule } from '@angular/forms';
+import { StoryObj } from '@storybook/angular';
+
+const template = `
+
+
+
Выберите категории
+
+
+
+
+
+`;
+
+const styles = '';
+
+@Component({
+ selector: 'app-checkbox-group',
+ standalone: true,
+ imports: [Checkbox, FormsModule],
+ template,
+ styles
+})
+export class CheckboxGroupComponent {
+ categories: string[] = ['Technology'];
+}
+
+export const Group: StoryObj = {
+ render: () => ({
+ template: ``
+ }),
+ parameters: {
+ docs: {
+ description: {
+ story: 'Группа чекбоксов для множественного выбора'
+ },
+ source: {
+ language: 'ts',
+ code: `
+import { Component } from '@angular/core';
+import { Checkbox } from 'primeng/checkbox';
+import { FormsModule } from '@angular/forms';
+
+@Component({
+ selector: 'app-checkbox-group',
+ standalone: true,
+ imports: [Checkbox, FormsModule],
+ template: \`${template}\`,
+ styles: \`${styles}\`
+})
+export class CheckboxGroupComponent {
+ categories: string[] = ['Technology'];
+}
+ `
+ }
+ }
+ }
+};
diff --git a/src/stories/components/confirmdialog/confirmdialog.stories.ts b/src/stories/components/confirmdialog/confirmdialog.stories.ts
new file mode 100644
index 0000000..d7dd1e9
--- /dev/null
+++ b/src/stories/components/confirmdialog/confirmdialog.stories.ts
@@ -0,0 +1,32 @@
+import { Meta, moduleMetadata } from '@storybook/angular';
+import { ConfirmDialog } from 'primeng/confirmdialog';
+import { Button } from 'primeng/button';
+import { ConfirmationService } from 'primeng/api';
+
+import { ConfirmDialogBaseComponent, Base } from './examples/confirmdialog-base.component';
+
+const meta: Meta = {
+ title: 'PrimeNG/ConfirmDialog',
+ tags: ['autodocs'],
+ decorators: [
+ moduleMetadata({
+ imports: [
+ ConfirmDialog,
+ Button,
+ ConfirmDialogBaseComponent
+ ],
+ providers: [ConfirmationService]
+ })
+ ],
+ parameters: {
+ docs: {
+ description: {
+ component: 'Компонент ConfirmDialog используется для подтверждения действий пользователя'
+ }
+ }
+ }
+};
+
+export default meta;
+
+export { Base };
diff --git a/src/stories/components/confirmdialog/examples/confirmdialog-base.component.ts b/src/stories/components/confirmdialog/examples/confirmdialog-base.component.ts
new file mode 100644
index 0000000..c625475
--- /dev/null
+++ b/src/stories/components/confirmdialog/examples/confirmdialog-base.component.ts
@@ -0,0 +1,86 @@
+import { Component } from '@angular/core';
+import { ConfirmDialog } from 'primeng/confirmdialog';
+import { Button } from 'primeng/button';
+import { ConfirmationService } from 'primeng/api';
+import { StoryObj } from '@storybook/angular';
+
+const template = `
+
+`;
+
+const styles = '';
+
+@Component({
+ selector: 'app-confirmdialog-base',
+ standalone: true,
+ imports: [ConfirmDialog, Button],
+ providers: [ConfirmationService],
+ template,
+ styles
+})
+export class ConfirmDialogBaseComponent {
+ constructor(private confirmationService: ConfirmationService) {}
+
+ confirm() {
+ this.confirmationService.confirm({
+ header: 'Подтверждение удаления',
+ message: 'Вы уверены, что хотите удалить этот элемент?',
+ icon: 'ti ti-alert-triangle',
+ acceptLabel: 'Да, удалить',
+ rejectLabel: 'Отмена',
+ accept: () => {
+ console.log('Удалено');
+ }
+ });
+ }
+}
+
+export const Base: StoryObj = {
+ render: () => ({
+ template: ``
+ }),
+ parameters: {
+ docs: {
+ description: {
+ story: 'Базовый диалог подтверждения'
+ },
+ source: {
+ language: 'ts',
+ code: `
+import { Component } from '@angular/core';
+import { ConfirmDialog } from 'primeng/confirmdialog';
+import { Button } from 'primeng/button';
+import { ConfirmationService } from 'primeng/api';
+
+@Component({
+ selector: 'app-confirmdialog-base',
+ standalone: true,
+ imports: [ConfirmDialog, Button],
+ providers: [ConfirmationService],
+ template: \`${template}\`,
+ styles: \`${styles}\`
+})
+export class ConfirmDialogBaseComponent {
+ constructor(private confirmationService: ConfirmationService) {}
+
+ confirm() {
+ this.confirmationService.confirm({
+ header: 'Подтверждение удаления',
+ message: 'Вы уверены, что хотите удалить этот элемент?',
+ icon: 'ti ti-alert-triangle',
+ acceptLabel: 'Да, удалить',
+ rejectLabel: 'Отмена',
+ accept: () => {
+ console.log('Удалено');
+ }
+ });
+ }
+}
+ `
+ }
+ }
+ }
+};
diff --git a/src/stories/components/dialog/dialog.stories.ts b/src/stories/components/dialog/dialog.stories.ts
new file mode 100644
index 0000000..c7e58c2
--- /dev/null
+++ b/src/stories/components/dialog/dialog.stories.ts
@@ -0,0 +1,30 @@
+import { Meta, moduleMetadata } from '@storybook/angular';
+import { Dialog } from 'primeng/dialog';
+import { Button } from 'primeng/button';
+
+import { DialogBaseComponent, Base } from './examples/dialog-base.component';
+
+const meta: Meta = {
+ title: 'PrimeNG/Dialog',
+ tags: ['autodocs'],
+ decorators: [
+ moduleMetadata({
+ imports: [
+ Dialog,
+ Button,
+ DialogBaseComponent
+ ]
+ })
+ ],
+ parameters: {
+ docs: {
+ description: {
+ component: 'Компонент Dialog отображает контент в модальном окне поверх страницы'
+ }
+ }
+ }
+};
+
+export default meta;
+
+export { Base };
diff --git a/src/stories/components/dialog/examples/dialog-base.component.ts b/src/stories/components/dialog/examples/dialog-base.component.ts
new file mode 100644
index 0000000..d26dac4
--- /dev/null
+++ b/src/stories/components/dialog/examples/dialog-base.component.ts
@@ -0,0 +1,70 @@
+import { Component } from '@angular/core';
+import { Dialog } from 'primeng/dialog';
+import { Button } from 'primeng/button';
+import { StoryObj } from '@storybook/angular';
+
+const template = `
+
+
+
+
+
+ Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
+
+
+
+
+
+
+
+`;
+
+const styles = '';
+
+@Component({
+ selector: 'app-dialog-base',
+ standalone: true,
+ imports: [Dialog, Button],
+ template,
+ styles
+})
+export class DialogBaseComponent {
+ visible: boolean = false;
+}
+
+export const Base: StoryObj = {
+ render: () => ({
+ template: ``
+ }),
+ parameters: {
+ docs: {
+ description: {
+ story: 'Базовый модальный диалог'
+ },
+ source: {
+ language: 'ts',
+ code: `
+import { Component } from '@angular/core';
+import { Dialog } from 'primeng/dialog';
+import { Button } from 'primeng/button';
+
+@Component({
+ selector: 'app-dialog-base',
+ standalone: true,
+ imports: [Dialog, Button],
+ template: \`${template}\`,
+ styles: \`${styles}\`
+})
+export class DialogBaseComponent {
+ visible: boolean = false;
+}
+ `
+ }
+ }
+ }
+};
diff --git a/src/stories/components/divider/divider.stories.ts b/src/stories/components/divider/divider.stories.ts
new file mode 100644
index 0000000..97038c7
--- /dev/null
+++ b/src/stories/components/divider/divider.stories.ts
@@ -0,0 +1,28 @@
+import { Meta, moduleMetadata } from '@storybook/angular';
+import { Divider } from 'primeng/divider';
+
+import { DividerBaseComponent, Base } from './examples/divider-base.component';
+
+const meta: Meta = {
+ title: 'PrimeNG/Divider',
+ tags: ['autodocs'],
+ decorators: [
+ moduleMetadata({
+ imports: [
+ Divider,
+ DividerBaseComponent
+ ]
+ })
+ ],
+ parameters: {
+ docs: {
+ description: {
+ component: 'Компонент Divider используется для разделения контента'
+ }
+ }
+ }
+};
+
+export default meta;
+
+export { Base };
diff --git a/src/stories/components/divider/examples/divider-base.component.ts b/src/stories/components/divider/examples/divider-base.component.ts
new file mode 100644
index 0000000..9a1fb88
--- /dev/null
+++ b/src/stories/components/divider/examples/divider-base.component.ts
@@ -0,0 +1,67 @@
+import { Component } from '@angular/core';
+import { Divider } from 'primeng/divider';
+import { StoryObj } from '@storybook/angular';
+
+const template = `
+
+
+
+ Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
+
+
+
+
+
+ Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
+
+
+
+ ИЛИ
+
+
+
+ Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.
+
+
+
+`;
+
+const styles = '';
+
+@Component({
+ selector: 'app-divider-base',
+ standalone: true,
+ imports: [Divider],
+ template,
+ styles
+})
+export class DividerBaseComponent {}
+
+export const Base: StoryObj = {
+ render: () => ({
+ template: ``
+ }),
+ parameters: {
+ docs: {
+ description: {
+ story: 'Базовый разделитель с текстом и без'
+ },
+ source: {
+ language: 'ts',
+ code: `
+import { Component } from '@angular/core';
+import { Divider } from 'primeng/divider';
+
+@Component({
+ selector: 'app-divider-base',
+ standalone: true,
+ imports: [Divider],
+ template: \`${template}\`,
+ styles: \`${styles}\`
+})
+export class DividerBaseComponent {}
+ `
+ }
+ }
+ }
+};
diff --git a/src/styles.scss b/src/styles.scss
index e6cb491..9366aa3 100644
--- a/src/styles.scss
+++ b/src/styles.scss
@@ -3,3 +3,24 @@
@tailwind utilities;
@import '@tabler/icons-webfont/dist/tabler-icons.min.css';
+
+@font-face {
+ font-family: 'TT Fellows';
+ src: url('/src/prime-preset/fonts/tt-fellows/TT_Fellows_Regular.woff2') format('woff2');
+ font-weight: 400;
+ font-style: normal;
+}
+
+@font-face {
+ font-family: 'TT Fellows';
+ src: url('/src/prime-preset/fonts/tt-fellows/TT_Fellows_DemiBold.woff2') format('woff2');
+ font-weight: 600;
+ font-style: normal;
+}
+
+@font-face {
+ font-family: 'TT Fellows';
+ src: url('/src/prime-preset/fonts/tt-fellows/TT_Fellows_DemiBold_Italic.woff2') format('woff2');
+ font-weight: 600;
+ font-style: italic;
+}