@prozorro/prozorro-ui 0.0.10-beta → 0.0.12-beta
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/app/assets/{Color-FRDS63T2-NkJWwZpV.js → Color-FRDS63T2-BVVRSzFu.js} +1 -1
- package/dist/app/assets/{Colors.stories-BYTBLsDR.js → Colors.stories-BV0C2AcY.js} +3 -3
- package/dist/app/assets/{DocsRenderer-LL677BLK-DT0XE5RB.js → DocsRenderer-LL677BLK-BvkMeFSH.js} +71 -71
- package/dist/app/assets/{Grid.stories-B3nKsUwh.js → Grid.stories-0uJYxh6v.js} +23 -2
- package/dist/app/assets/PzAccordion-BK8qPIGx.js +1 -0
- package/dist/app/assets/{PzAccordion.stories-cOAYUrCJ.js → PzAccordion.stories-CBJM1l8G.js} +2 -2
- package/dist/app/assets/PzAccordionTable.stories-0OZ08OCM.js +275 -0
- package/dist/app/assets/{PzArrayClamp.stories-Btd9xMHi.js → PzArrayClamp.stories-CVsbMoOI.js} +5 -5
- package/dist/app/assets/{PzBreadcrumb.stories-D54RjRCg.js → PzBreadcrumb.stories-AEkdP3Sx.js} +4 -4
- package/dist/app/assets/PzBtn-B9m7S5t4.js +1 -0
- package/dist/app/assets/{PzBtn.stories-xnSEsakq.js → PzBtn.stories-C0en9cjk.js} +2 -2
- package/dist/app/assets/PzCheckbox-4-y3QxIg.js +1 -0
- package/dist/app/assets/{PzCheckbox.stories-RN07sGno.js → PzCheckbox.stories-0AqtpX2R.js} +4 -4
- package/dist/app/assets/{PzCheckboxGroup.stories-KogRihCz.js → PzCheckboxGroup.stories-Bc2Q0qzm.js} +3 -3
- package/dist/app/assets/PzClamp-0zNrPrFL.css +1 -0
- package/dist/app/assets/PzClamp.stories-ClQxjI3w.js +1 -0
- package/dist/app/assets/PzCopyToClipboard-DYvP-lFq.css +1 -0
- package/dist/app/assets/PzCopyToClipboard.stories-DpySg5be.js +45 -0
- package/dist/app/assets/PzDate-B7IRRe08.js +1 -0
- package/dist/app/assets/PzDate-DzxkQx_5.css +1 -0
- package/dist/app/assets/PzDate.stories-BMKH61UJ.js +116 -0
- package/dist/app/assets/PzDateRange-DafT5WRv.css +1 -0
- package/dist/app/assets/PzDateRange.stories-DermFDVN.js +9 -0
- package/dist/app/assets/{PzDomHandler.stories-DAp97pdG.js → PzDomHandler.stories-BZmKmq7h.js} +3 -3
- package/dist/app/assets/{PzDropdown.stories-eClrzbYq.js → PzDropdown.stories-D21VL1Wl.js} +3 -3
- package/dist/app/assets/{PzFileInput.stories-Dg6-KAun.js → PzFileInput.stories-CdV-8Ur5.js} +4 -4
- package/dist/app/assets/{PzGrid.stories-DLm_q1Lw.js → PzGrid.stories-jBExFoH9.js} +1 -1
- package/dist/app/assets/PzHint-Cs9J6pTd.js +1 -0
- package/dist/app/assets/{PzHint.stories-C2oiTVIN.js → PzHint.stories-qTU73X-T.js} +2 -2
- package/dist/app/assets/{PzIcon-DTWQGv5c.js → PzIcon-4heVmbY5.js} +1 -1
- package/dist/app/assets/{PzIcon.stories-CT6OA9PM.js → PzIcon.stories-CHQJZBkl.js} +2 -2
- package/dist/app/assets/{PzImage.stories-BJL_3ef9.js → PzImage.stories-cr2I1Mv8.js} +3 -3
- package/dist/app/assets/{PzImageInput.stories-CTksIxMS.js → PzImageInput.stories-wOMiRK50.js} +4 -4
- package/dist/app/assets/{PzInfoBlockLayout.stories-BBkiY-o7.js → PzInfoBlockLayout.stories-DkIvXHsN.js} +3 -3
- package/dist/app/assets/PzInfoHint-DyFMEGP1.js +1 -0
- package/dist/app/assets/{PzInfoHint.stories-6f6FePkY.js → PzInfoHint.stories-CbQPKqr-.js} +3 -3
- package/dist/app/assets/{PzInput.stories-Bm_5Kj-P.js → PzInput.stories-DFL76csJ.js} +3 -3
- package/dist/app/assets/{PzInputDate.stories-Ccqq1p1p.js → PzInputDate.stories-DtbZSO2I.js} +3 -3
- package/dist/app/assets/{PzInputNumber.stories-DAQYW2cJ.js → PzInputNumber.stories-BnWkdIia.js} +3 -3
- package/dist/app/assets/{PzKeyValue.stories-BrV9VQaC.js → PzKeyValue.stories-D62cy2Nn.js} +4 -4
- package/dist/app/assets/PzLabel-BGjTUIxv.js +1 -0
- package/dist/app/assets/{PzLabel.stories-DvN_0fOj.js → PzLabel.stories-Bsn2on9n.js} +3 -3
- package/dist/app/assets/PzLink-PMftGlCf.js +1 -0
- package/dist/app/assets/{PzLink.stories-BnY0IvI7.js → PzLink.stories-uYyu1A1Y.js} +2 -2
- package/dist/app/assets/PzListNav-DRMKw6wp.css +1 -0
- package/dist/app/assets/PzListNav.stories-CzdiB1vJ.js +37 -0
- package/dist/app/assets/PzLoader-J7_Govh3.css +1 -0
- package/dist/app/assets/PzLoader.stories-BKbYZbCg.js +9 -0
- package/dist/app/assets/{PzModal.stories-Bq5YuGJo.js → PzModal.stories-D2Ix-15K.js} +3 -3
- package/dist/app/assets/PzMultiSelect-DeX8aBEQ.css +1 -0
- package/dist/app/assets/PzMultiSelect.stories-ZraFVUKD.js +453 -0
- package/dist/app/assets/{PzNav.stories-5KiqcPrd.js → PzNav.stories-G7KKxcZ2.js} +4 -4
- package/dist/app/assets/{PzNumberFormat.stories-QyheTXgc.js → PzNumberFormat.stories-Cbj23Stp.js} +2 -2
- package/dist/app/assets/PzPagination-DoBWX1Bo.js +1 -0
- package/dist/app/assets/PzPagination-k9D0Hxrx.css +1 -0
- package/dist/app/assets/{PzPagination-07CphuYh.css → PzPagination-ohvV8gN-.css} +1 -1
- package/dist/app/assets/PzPagination.stories-Cebi1pnM.js +83 -0
- package/dist/app/assets/{PzPriceFormat.stories-Clj4FRWT.js → PzPriceFormat.stories-BUxyBQoC.js} +2 -2
- package/dist/app/assets/{PzRadioGroup.stories-o8HE47Hq.js → PzRadioGroup.stories-BniR4fVs.js} +3 -3
- package/dist/app/assets/{PzRouterLink.stories-Dc_EnCBz.js → PzRouterLink.stories-DXaqIXWs.js} +3 -3
- package/dist/app/assets/{PzScrollTo.stories-4BSDyJ2p.js → PzScrollTo.stories-Ck6gWxiu.js} +2 -2
- package/dist/app/assets/{PzSearchResultItemLayout.stories-QRI-A0Zi.js → PzSearchResultItemLayout.stories-BUAZX2y1.js} +3 -3
- package/dist/app/assets/PzSelect-BwhRsTZd.css +1 -0
- package/dist/app/assets/PzSelect-CuDRkOrL.js +1 -0
- package/dist/app/assets/PzSelect-Del6HRlD.css +1 -0
- package/dist/app/assets/PzSelect.stories-BB855vvD.js +292 -0
- package/dist/app/assets/PzSkeleton-Cniu9lo6.js +1 -0
- package/dist/app/assets/{PzSkeleton.stories-Djp-bBqZ.js → PzSkeleton.stories-B2Am1ZYO.js} +2 -2
- package/dist/app/assets/PzStatus-C3v_r0Oj.js +1 -0
- package/dist/app/assets/{PzStatus.stories-BZ2XwRJs.js → PzStatus.stories-mQSY87YP.js} +2 -2
- package/dist/app/assets/PzTable-Bwa8_IhX.js +1 -0
- package/dist/app/assets/{PzTable.stories-C76ZN_A5.js → PzTable.stories-95TCj8y6.js} +3 -3
- package/dist/app/assets/{PzTabs.stories-DHf6EZU7.js → PzTabs.stories-n-w_IPjO.js} +5 -5
- package/dist/app/assets/PzTag-DkreR1ah.js +1 -0
- package/dist/app/assets/{PzTag.stories-BIrmr98f.js → PzTag.stories-B3pQ3jt7.js} +2 -2
- package/dist/app/assets/PzText-REfIJddB.js +1 -0
- package/dist/app/assets/{PzText.stories-Cr6TBVe6.js → PzText.stories-735Z3n9m.js} +8 -8
- package/dist/app/assets/PzTextClamp.stories-DeNGHabI.js +149 -0
- package/dist/app/assets/{PzTextarea.stories--ghqzz2f.js → PzTextarea.stories-CnHN5KKO.js} +3 -3
- package/dist/app/assets/{PzValidatorXSS.stories-zCaJ6Q__.js → PzValidatorXSS.stories-BwMdWW4N.js} +3 -3
- package/dist/app/assets/{Spacing-B5TnfKCB.css → Spacing-DDiZ9XB6.css} +1 -1
- package/dist/app/assets/{Spacing.stories-Dzeg7Tfn.js → Spacing.stories-DDQc5HL2.js} +29 -2
- package/dist/app/assets/Typography.stories-DvalSfqI.js +47 -0
- package/dist/app/assets/{WithTooltip-65CFNBJE-C0efi5Yj.js → WithTooltip-65CFNBJE-DkkeYwH0.js} +2 -2
- package/dist/app/assets/_plugin-vue_export-helper-DlAUqK2U.js +1 -0
- package/dist/app/assets/floating-vue-BNQ4rNf7.js +1 -0
- package/dist/app/assets/floating-vue-Bvgx7aQ5.js +1 -0
- package/dist/app/assets/{formatter-EIJCOSYU-Noau93iy.js → formatter-EIJCOSYU-DcIAKjRL.js} +1 -1
- package/dist/app/assets/iframe-4qk0Ss25.css +1 -0
- package/dist/app/assets/{iframe-Ckq2fQkL.js → iframe-BfW4-zQw.js} +141 -141
- package/dist/app/assets/index-02P5Hwc1.js +1 -0
- package/dist/app/assets/{syntaxhighlighter-OH4MV7E3-ByOORGJm.js → syntaxhighlighter-OH4MV7E3-Ceel2kqU.js} +3 -3
- package/dist/app/assets/text-clamp.esm-BHxuNfNm.js +1 -0
- package/dist/app/iframe.html +81 -76
- package/dist/app/index.json +1 -1
- package/dist/app/project.json +1 -1
- package/dist/app/sb-manager/globals-runtime.js +1 -1
- package/dist/components/Actions/PzCopyToClipboard/PzCopyToClipboard.vue.d.ts +33 -0
- package/dist/components/Actions/PzCopyToClipboard/index.d.ts +2 -0
- package/dist/components/Actions/PzCopyToClipboard/types.d.ts +17 -0
- package/dist/components/Actions/PzLink/configs.d.ts +1 -1
- package/dist/components/Display/PzClamp/PzClamp.vue.d.ts +8 -0
- package/dist/components/Display/PzClamp/index.d.ts +2 -0
- package/dist/components/Display/PzClamp/types.d.ts +7 -0
- package/dist/components/Display/PzDate/PzDate.vue.d.ts +5 -0
- package/dist/components/Display/PzDate/index.d.ts +2 -0
- package/dist/components/Display/PzDate/types.d.ts +5 -0
- package/dist/components/Display/PzDateRange/PzDateRange.vue.d.ts +9 -0
- package/dist/components/Display/PzDateRange/constants.d.ts +1 -0
- package/dist/components/Display/PzDateRange/index.d.ts +2 -0
- package/dist/components/Display/PzDateRange/types.d.ts +16 -0
- package/dist/components/Display/PzLoader/PzLoader.vue.d.ts +7 -0
- package/dist/components/Display/PzLoader/index.d.ts +2 -0
- package/dist/components/Display/PzLoader/types.d.ts +6 -0
- package/dist/components/Form/PzInput/PzInput.vue.d.ts +1 -1
- package/dist/components/Form/PzMultiSelect/PzMultiSelect.vue.d.ts +44 -0
- package/dist/components/Form/PzMultiSelect/constants.d.ts +1 -0
- package/dist/components/Form/PzMultiSelect/index.d.ts +2 -0
- package/dist/components/Form/PzMultiSelect/types.d.ts +22 -0
- package/dist/components/Form/PzSelect/PzSelect.vue.d.ts +42 -0
- package/dist/components/Form/PzSelect/configs.d.ts +1 -0
- package/dist/components/Form/PzSelect/constants.d.ts +1 -0
- package/dist/components/Form/PzSelect/index.d.ts +2 -0
- package/dist/components/Form/PzSelect/types.d.ts +22 -0
- package/dist/components/Form/shared/types.d.ts +7 -0
- package/dist/components/Navigation/PzListNav/PzListNav.vue.d.ts +15 -0
- package/dist/components/Navigation/PzListNav/index.d.ts +4 -0
- package/dist/components/Navigation/PzListNav/types.d.ts +9 -0
- package/dist/components/Navigation/shared/configs.d.ts +2 -0
- package/dist/components/Navigation/shared/constants.d.ts +8 -0
- package/dist/components/Popups/PzHint/PzHint.vue.d.ts +1 -1
- package/dist/components/Popups/PzInfoHint/PzInfoHint.vue.d.ts +1 -1
- package/dist/components/Popups/PzModal/PzModal.vue.d.ts +1 -1
- package/dist/components/Text/PzArrayClamp/PzArrayClamp.vue.d.ts +1 -1
- package/dist/components/Text/PzTextClamp/PzTextClamp.vue.d.ts +3 -3
- package/dist/index.d.ts +8 -0
- package/dist/package.json +1 -1
- package/dist/prozorro-ui.cjs +15 -15
- package/dist/prozorro-ui.js +8669 -7906
- package/dist/style.css +1 -1
- package/package.json +1 -1
- package/src/styles/_spacing.scss +30 -4
- package/dist/app/assets/PzAccordion-CTihyZc5.js +0 -1
- package/dist/app/assets/PzAccordionTable.stories-CVSn3lrC.js +0 -275
- package/dist/app/assets/PzBtn-Bz2NPCiD.js +0 -1
- package/dist/app/assets/PzCheckbox-DDIj_TyE.js +0 -1
- package/dist/app/assets/PzHint-BhuDfy-l.js +0 -1
- package/dist/app/assets/PzInfoHint-C-UyP8PR.js +0 -1
- package/dist/app/assets/PzLabel-jmQOAHGo.js +0 -1
- package/dist/app/assets/PzLink-CwtmibRx.js +0 -1
- package/dist/app/assets/PzPagination.stories-D_qRevIg.js +0 -83
- package/dist/app/assets/PzSkeleton-BMyhdGXq.js +0 -1
- package/dist/app/assets/PzStatus-rctea0Gb.js +0 -1
- package/dist/app/assets/PzTable-CzfehTN7.js +0 -1
- package/dist/app/assets/PzTag-DudHfisQ.js +0 -1
- package/dist/app/assets/PzText-BOcxbzaG.js +0 -1
- package/dist/app/assets/PzTextClamp.stories-CR0IRYLS.js +0 -149
- package/dist/app/assets/Typography.stories-GZEYS8Ny.js +0 -47
- package/dist/app/assets/floating-vue-D0dcONsr.js +0 -1
- package/dist/app/assets/iframe-B97zFSkg.css +0 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{P as
|
|
1
|
+
import{P as r}from"./PzText-REfIJddB.js";import{P as t}from"./PzSkeleton-Cniu9lo6.js";import"./iframe-BfW4-zQw.js";import"./preload-helper-C1FmrZbK.js";import"./_plugin-vue_export-helper-DlAUqK2U.js";const h={title:"Components/Display/PzSkeleton",component:t,parameters:{prototype:{caption:"PzSkeleton",note:"Reusable loading placeholder for lines, blocks, and lightweight preview cards. Used by `PzAccordion` as the default loading surface."},docs:{description:{component:"Use `PzSkeleton` for loading placeholders. Control its dimensions through `width`, `height`, and `radius`, and disable shimmer with `animated=false` when a static placeholder is preferred."}}},args:{width:"240px",height:"24px",radius:"8px",animated:!0},argTypes:{width:{control:"text",description:"Skeleton width."},height:{control:"text",description:"Skeleton height."},radius:{control:"text",description:"Border radius."},animated:{control:"boolean",description:"Enables the shimmer animation."}},render:a=>({components:{pzSkeleton:t,pzText:r},setup(){return{args:a}},template:`
|
|
2
2
|
<div class="pz-skeleton-story">
|
|
3
3
|
<section class="pz-skeleton-story-board">
|
|
4
4
|
<div class="pz-skeleton-story-header">
|
|
@@ -36,4 +36,4 @@ import{P as n}from"./PzText-BOcxbzaG.js";import{P as t}from"./PzSkeleton-BMyhdGX
|
|
|
36
36
|
</div>
|
|
37
37
|
</section>
|
|
38
38
|
</div>
|
|
39
|
-
`})},e={};var s,o,i;e.parameters={...e.parameters,docs:{...(s=e.parameters)==null?void 0:s.docs,source:{originalSource:"{}",...(i=(o=e.parameters)==null?void 0:o.docs)==null?void 0:i.source}}};const
|
|
39
|
+
`})},e={};var s,o,i;e.parameters={...e.parameters,docs:{...(s=e.parameters)==null?void 0:s.docs,source:{originalSource:"{}",...(i=(o=e.parameters)==null?void 0:o.docs)==null?void 0:i.source}}};const m=["Playground"];export{e as Playground,m as __namedExportsOrder,h as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{d as o,B as r,D as u,f as l,C as c,g as i,o as p,k as d,l as m}from"./iframe-BfW4-zQw.js";import{_ as f}from"./_plugin-vue_export-helper-DlAUqK2U.js";const _=["auction-progress","auction-waiting","auction-success"],z={class:"pz-status__label"},a=o({name:"PzStatus",__name:"PzStatus",props:{variant:{default:"progress"},as:{default:"span"}},setup(t){const s=t,e=i(()=>[`pz-status--${s.variant}`,{"pz-status--gradient":_.includes(s.variant)}]);return(n,v)=>(p(),r(c(s.as),{class:l(["pz-status",e.value])},{default:u(()=>[d("span",z,[m(n.$slots,"default",{},void 0,!0)])]),_:3},8,["class"]))}}),g=f(a,[["__scopeId","data-v-63f04bd2"]]);a.__docgenInfo=Object.assign({displayName:a.name??a.__name},{name:"PzStatus",exportName:"default",displayName:"PzStatus",description:"",tags:{},props:[{name:"variant",required:!1,type:{name:"PzStatusVariant"},defaultValue:{func:!1,value:'"progress"'}},{name:"as",required:!1,type:{name:"PzStatusTag"},defaultValue:{func:!1,value:'"span"'}}],slots:[{name:"default"}],sourceFiles:["/builds/Web-Projects/client-services/prozorro-ui/src/components/Display/PzStatus/PzStatus.vue"]});export{g as P};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{P as l}from"./PzText-
|
|
1
|
+
import{P as l}from"./PzText-REfIJddB.js";import{P as s}from"./PzStatus-C3v_r0Oj.js";import"./iframe-BfW4-zQw.js";import"./preload-helper-C1FmrZbK.js";import"./_plugin-vue_export-helper-DlAUqK2U.js";const c=["inactive","hidden","active","monitoring","disabled","progress","auction-progress","auction-waiting","auction-success"],d=["span","div","li"],p=[{id:"hidden-review",variant:"hidden",label:"Очікує розгляду"},{id:"monitoring-accepted",variant:"monitoring",label:"Прийнято до розгляду"},{id:"inactive-without-review",variant:"inactive",label:"Залишено без розгляду"},{id:"inactive-stopped",variant:"inactive",label:"Розгляд припинено"},{id:"inactive-rejected",variant:"inactive",label:"Відмовлено в задоволенні"},{id:"active-satisfied",variant:"active",label:"Задоволено"},{id:"inactive-withdrawn",variant:"inactive",label:"Відкликано"},{id:"inactive-cancelled",variant:"inactive",label:"Скасовано"},{id:"active-fixed",variant:"active",label:"Порушення усунуто"}],v=[{id:"palette-hidden",variant:"hidden",label:"Текст"},{id:"palette-inactive",variant:"inactive",label:"Текст"},{id:"palette-active",variant:"active",label:"Текст"},{id:"palette-monitoring",variant:"monitoring",label:"Текст"},{id:"palette-disabled",variant:"disabled",label:"Текст"}],u=t=>`<template>
|
|
2
2
|
<PzStatus ${[t.variant!=="progress"?`variant="${t.variant}"`:null,t.as!=="span"?`as="${t.as}"`:null].filter(o=>!!o).join(" ")}>${t.label}</PzStatus>
|
|
3
3
|
</template>`,m={title:"Components/Display/PzStatus",component:s,parameters:{prototype:{caption:"Status component",note:"Aligned with Figma node 76:1113: compact filled badges with 3px radius, white label text, optional indicator, and multiline support."},docs:{description:{component:"Use `PzStatus` for semantic state labels. The component matches the design-system badge treatment from Figma and keeps semantic color variants, including gradient auction states."},source:{transform:(t,i)=>u(i.args??m.args)}}},args:{variant:"progress",as:"span",label:"Очікує розгляду"},argTypes:{variant:{control:"select",options:c,description:"Semantic status variant."},as:{control:"select",options:d,description:"HTML tag used for the wrapper."},label:{control:"text",description:"Slot content preview text.",table:{category:"Slots"}}},render:t=>({components:{pzStatus:s,pzText:l},setup(){return{args:t,statusReferenceItems:p,statusPaletteItems:v}},template:`
|
|
4
4
|
<div class="pz-status-story">
|
|
@@ -92,4 +92,4 @@ import{P as l}from"./PzText-BOcxbzaG.js";import{P as s}from"./PzStatus-rctea0Gb.
|
|
|
92
92
|
</div>
|
|
93
93
|
</section>
|
|
94
94
|
</div>
|
|
95
|
-
`})},a={};var e,n,r;a.parameters={...a.parameters,docs:{...(e=a.parameters)==null?void 0:e.docs,source:{originalSource:"{}",...(r=(n=a.parameters)==null?void 0:n.docs)==null?void 0:r.source}}};const
|
|
95
|
+
`})},a={};var e,n,r;a.parameters={...a.parameters,docs:{...(e=a.parameters)==null?void 0:e.docs,source:{originalSource:"{}",...(r=(n=a.parameters)==null?void 0:n.docs)==null?void 0:r.source}}};const f=["Playground"];export{a as Playground,f as __namedExportsOrder,m as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{d as z,o as a,e as t,f as D,k as d,t as _,B as b,u as h,y,l as v,F as i,E,g as H,G as L,A as p,n as g,I as F,D as q,J as A}from"./iframe-BfW4-zQw.js";import{l as x}from"./lodash-CdDiHlzQ.js";import{P as B}from"./PzInfoHint-DyFMEGP1.js";import{_ as P}from"./_plugin-vue_export-helper-DlAUqK2U.js";const I="—",$={class:"pz-table-data__title"},W=["innerHTML"],c=z({name:"PzTableData",__name:"PzTableData",props:{column:{},data:{default:void 0},defaultValue:{},isBold:{type:Boolean,default:!1}},setup(e){const u=e,s=H(()=>x.get(u.data,u.column.key)||u.defaultValue);return(o,T)=>{var n;return a(),t("td",{class:D(["pz-table-data",{"pz-table-data--bold":e.isBold}])},[d("p",$,[d("span",null,_(e.column.mobileName||e.column.name),1),(n=e.column.infoContent)!=null&&n.length?(a(),b(h(B),{key:0,"info-content":e.column.infoContent},null,8,["info-content"])):y("",!0)]),v(o.$slots,"default",{data:e.data,column:e.column,value:s.value},()=>[e.column.isContentHtml?(a(),t("span",{key:0,innerHTML:String(s.value)},null,8,W)):(a(),t(i,{key:1},[E(_(s.value),1)],64))],!0)],2)}}}),w=P(c,[["__scopeId","data-v-0c3a26db"]]);c.__docgenInfo=Object.assign({displayName:c.name??c.__name},{name:"PzTableData",exportName:"default",displayName:"PzTableData",description:"",tags:{},props:[{name:"column",required:!0,type:{name:"PzTableColumn"}},{name:"data",required:!1,type:{name:"PzTableRow"},defaultValue:{func:!1,value:"undefined"}},{name:"defaultValue",required:!0,type:{name:"string"}},{name:"isBold",required:!1,type:{name:"boolean"},defaultValue:{func:!1,value:"false"}}],slots:[{name:"default",scoped:!0,bindings:[{name:"data",title:"binding"},{name:"column",title:"binding"},{name:"value",title:"binding"}]}],sourceFiles:["/builds/Web-Projects/client-services/prozorro-ui/src/components/Data/PzTable/PzTableData.vue"]});const S={class:"pz-table-head",scope:"col"},m=z({name:"PzTableHead",__name:"PzTableHead",props:{column:{}},setup(e){return(u,s)=>{var o;return a(),t("th",S,[d("span",null,_(e.column.name),1),(o=e.column.infoContent)!=null&&o.length?(a(),b(h(B),{key:0,"info-content":e.column.infoContent,class:"pz-table-head__hint"},null,8,["info-content"])):y("",!0)])}}}),j=P(m,[["__scopeId","data-v-b0c91dea"]]);m.__docgenInfo=Object.assign({displayName:m.name??m.__name},{name:"PzTableHead",exportName:"default",displayName:"PzTableHead",description:"",tags:{},props:[{name:"column",required:!0,type:{name:"PzTableColumn"}}],sourceFiles:["/builds/Web-Projects/client-services/prozorro-ui/src/components/Data/PzTable/PzTableHead.vue"]});const M={class:"pz-table-wrap"},U={class:"pz-table"},O={key:0,class:"pz-table__head"},R={class:"pz-table__row pz-table__row--head"},Y=100,f=z({name:"PzTable",__name:"PzTable",props:{config:{},data:{},defaultValue:{default:I},visibleHeader:{type:Boolean,default:!0},isBoldFirstColumn:{type:Boolean,default:!0}},setup(e){const u=L(),s=e,o=({colWidth:n})=>({width:s.config.some(({colWidth:l})=>!!l)?`${n}%`:`${Math.floor(Y/s.config.length)}%`}),T=n=>!!u[n];return(n,k)=>(a(),t("div",M,[d("table",U,[e.visibleHeader?(a(),t("thead",O,[d("tr",R,[(a(!0),t(i,null,p(e.config,l=>(a(),b(j,{key:l.id,column:l,style:g(o(l))},null,8,["column","style"]))),128))])])):y("",!0),d("tbody",null,[(a(!0),t(i,null,p(e.data,(l,C)=>(a(),t("tr",{key:l.id??C,class:"pz-table__row"},[(a(!0),t(i,null,p(e.config,(r,V)=>(a(),b(w,{key:r.id,column:r,data:l,"default-value":e.defaultValue,"is-bold":e.isBoldFirstColumn&&V===0,style:g(o(r))},F({_:2},[T(r.key)?{name:"default",fn:q(N=>[v(n.$slots,r.key,A({ref_for:!0},N),void 0,!0)]),key:"0"}:void 0]),1032,["column","data","default-value","is-bold","style"]))),128))]))),128))])])]))}}),Q=P(f,[["__scopeId","data-v-d142680c"]]);f.__docgenInfo=Object.assign({displayName:f.name??f.__name},{name:"PzTable",exportName:"default",displayName:"PzTable",description:"",tags:{},props:[{name:"config",required:!0,type:{name:"Array",elements:[{name:"PzTableColumn"}]}},{name:"data",required:!0,type:{name:"Array",elements:[{name:"PzTableRow"}]}},{name:"defaultValue",required:!1,type:{name:"string"},defaultValue:{func:!1,value:"PZ_TABLE_DEFAULT_EMPTY_VALUE"}},{name:"visibleHeader",required:!1,type:{name:"boolean"},defaultValue:{func:!1,value:"true"}},{name:"isBoldFirstColumn",required:!1,type:{name:"boolean"},defaultValue:{func:!1,value:"true"}}],slots:[{name:"column.key",scoped:!0,bindings:[{name:"name",title:"binding"}]}],sourceFiles:["/builds/Web-Projects/client-services/prozorro-ui/src/components/Data/PzTable/PzTable.vue"]});export{Q as P,I as a,j as b,w as c};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{P as T}from"./PzLink-
|
|
1
|
+
import{P as T}from"./PzLink-PMftGlCf.js";import{P}from"./PzTag-DkreR1ah.js";import{P as l}from"./PzText-REfIJddB.js";import{P as a,a as i}from"./PzTable-Bwa8_IhX.js";import"./iframe-BfW4-zQw.js";import"./preload-helper-C1FmrZbK.js";import"./_plugin-vue_export-helper-DlAUqK2U.js";import"./lodash-CdDiHlzQ.js";import"./_commonjsHelpers-Cpj98o6Y.js";import"./PzInfoHint-DyFMEGP1.js";import"./PzIcon-4heVmbY5.js";import"./PzHint-Cs9J6pTd.js";import"./floating-vue-Bvgx7aQ5.js";import"./floating-vue-BNQ4rNf7.js";const S=[{id:"name",name:"Назва",key:"name",colWidth:22},{id:"classification",name:"Класифікатор та його відповідний код",key:"classification",colWidth:30},{id:"quantity",name:"Кількість/Одиниці виміру",key:"quantity",colWidth:14},{id:"deliveryLocation",name:"Місце поставки",key:"deliveryLocation",colWidth:18},{id:"deliveryDate",name:"Дата поставки",key:"deliveryDate",colWidth:16}],k=[{id:"item-1",name:"Швидкозшивач пласт. E31509, 31511",classification:"ДК 021:2015: 30190000-7 — Офісне устаткування та приладдя різне",quantity:"100 штука",deliveryLocation:"79025, Україна, Львівська область, Львів, вул.Левандівська, будинок 17-В",deliveryDate:"до 30 грудня 2026"},{id:"item-2",name:"Ручка масляна, 0,7мм, PT-195, Piano",classification:"ДК 021:2015: 30190000-7 — Офісне устаткування та приладдя різне",quantity:"150 штука",deliveryLocation:"79025, Україна, Львівська область, Львів, вул.Левандівська, будинок 17-В",deliveryDate:"до 30 грудня 2026"},{id:"item-3",name:"Папка А4 КОШЕНЯ 34,527,51см, верт. 2 ручки",classification:"ДК 021:2015: 30190000-7 — Офісне устаткування та приладдя різне",quantity:"30 штука",deliveryLocation:"79025, Україна, Львівська область, Львів, вул.Левандівська, будинок 17-В",deliveryDate:"до 30 грудня 2026"}],w=[{id:"name",name:"Назва",key:"name",colWidth:18},{id:"classification",name:"Класифікатор та його відповідний код",key:"classification",colWidth:24},{id:"quantity",name:"Кількість/Одиниці виміру",key:"quantity",colWidth:14},{id:"price",name:"Ціна за одиницю",key:"price",colWidth:14},{id:"deliveryLocation",name:"Місце поставки",key:"deliveryLocation",colWidth:18},{id:"deliveryDate",name:"Дата поставки",key:"deliveryDate",colWidth:12}],x=k.map(t=>({...t,price:null})),W=[{id:"event",name:"Подія",key:"event",colWidth:18},{id:"type",name:"Тип",key:"type",colWidth:18},{id:"reason",name:"Підстава",key:"reason",colWidth:18},{id:"period",name:"Період, (днів)",key:"period",colWidth:16},{id:"daysType",name:"Тип днів",key:"daysType",colWidth:15},{id:"amount",name:"Розмір, (%)",key:"amount",colWidth:15}],C=[{id:"payment-1",event:"Оплата",type:"Пiсляоплата",reason:"поставка товару",period:10,daysType:"робочі",amount:100},{id:"payment-2",event:"Поставка",type:"Одноразова поставка",reason:"подання заявки",period:10,daysType:"робочі",amount:100}],L=[{id:"supplier",name:"Постачальник",key:"supplier",colWidth:28},{id:"contractId",name:"Договір",key:"contractId",colWidth:20},{id:"amount",name:"Сума",key:"amount",colWidth:18},{id:"status",name:"Статус",key:"statusLabel",colWidth:18},{id:"updatedAt",name:"Оновлено",key:"updatedAt",colWidth:16}],D=[{id:"contract-01",supplier:{name:"ТОВ «Офіс-Постач»",href:"https://prozorro.gov.ua"},contractId:"UA-2026-04-17-000001",amount:128340.5,status:"active",statusLabel:"Активний",updatedAt:"17.04.2026"},{id:"contract-02",supplier:{name:"ФОП Іваненко Ірина",href:"https://prozorro.gov.ua"},contractId:"UA-2026-04-17-000002",amount:68400,status:"hidden",statusLabel:"Очікує підтвердження",updatedAt:"16.04.2026"}],A=`<template>
|
|
2
2
|
<PzTable
|
|
3
3
|
:config="config"
|
|
4
4
|
:data="data"
|
|
@@ -47,7 +47,7 @@ const data: PzTableRow[] = [
|
|
|
47
47
|
</PzTag>
|
|
48
48
|
</template>
|
|
49
49
|
</PzTable>
|
|
50
|
-
</template>`,
|
|
50
|
+
</template>`,K={title:"Components/Data/PzTable",component:a,parameters:{prototype:{caption:"PzTable",note:"Three-part table structure based on the original prototype, refined only where needed for tokens, docs, and Storybook examples."},docs:{description:{component:"Use `PzTable` for procurement-style tabular data. Configure columns through `config`, provide rows through `data`, and override cell rendering with named slots that match `column.key`."}}},args:{config:S,data:k,defaultValue:i,visibleHeader:!0,isBoldFirstColumn:!0},argTypes:{config:{control:!1,description:"Column configuration array. Use `name`, `key`, and optional `colWidth`, `mobileName`, `infoContent`, `slot`, and `isContentHtml`."},data:{control:!1,description:"Table rows resolved by `column.key`."},defaultValue:{control:"text",description:"Fallback content for empty cells."},visibleHeader:{control:"boolean",description:"Shows or hides the desktop header row."},isBoldFirstColumn:{control:"boolean",description:"Makes the first column semibold."}}},n={parameters:{docs:{source:{code:A}}},render:t=>({components:{pzTable:a,pzText:l},setup(){return{args:t}},template:`
|
|
51
51
|
<div class="pz-table-story">
|
|
52
52
|
<section class="pz-table-story-board">
|
|
53
53
|
<div class="pz-table-story-header">
|
|
@@ -350,4 +350,4 @@ const data: PzTableRow[] = [
|
|
|
350
350
|
</div>
|
|
351
351
|
\`
|
|
352
352
|
})
|
|
353
|
-
}`,...(f=(h=r.parameters)==null?void 0:h.docs)==null?void 0:f.source}}};const
|
|
353
|
+
}`,...(f=(h=r.parameters)==null?void 0:h.docs)==null?void 0:f.source}}};const Q=["Playground","ProcurementWithPrice","PaymentSchedule","CustomSlots"];export{r as CustomSlots,s as PaymentSchedule,n as Playground,o as ProcurementWithPrice,Q as __namedExportsOrder,K as default};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{P as T}from"./PzText-REfIJddB.js";import{d as q,a4 as f,w as Q,a5 as Y,a0 as G,Y as J,a6 as X,e as m,l as F,r as Z,o as u,p as K,j as tt,k as _,F as at,A as st,n as et,f as k,h as nt,g as rt,t as pt,a7 as P}from"./iframe-BfW4-zQw.js";import{_ as M}from"./_plugin-vue_export-helper-DlAUqK2U.js";import"./preload-helper-C1FmrZbK.js";const ot=["","light"];var r=(t=>(t.INIT_TAB="init-tab",t.TABS_STATE="tabs-state",t.REMOVE_TAB="remove-tab",t))(r||{});const it={class:"pz-tab"},x=q({name:"PzTab",__name:"PzTab",props:{name:{default:"Tab"},selected:{type:Boolean,default:!1},id:{default:void 0}},setup(t){const a=t,p=K(),i=Z(!1),o=f(r.REMOVE_TAB,void 0),s=f(r.TABS_STATE,void 0),e=f(r.INIT_TAB,void 0),n={get id(){return a.id??`pz-tab-${(p==null?void 0:p.uid)??a.name}`},get name(){return a.name}};return Q(()=>s==null?void 0:s.activeTab,z=>{i.value=a.name===z}),Y(()=>{e==null||e(n),i.value=a.selected}),G(()=>o==null?void 0:o(n)),(z,mt)=>J((u(),m("div",it,[F(z.$slots,"default",{},void 0,!0)],512)),[[X,i.value]])}}),h=M(x,[["__scopeId","data-v-2374460d"]]);x.__docgenInfo=Object.assign({displayName:x.name??x.__name},{name:"PzTab",exportName:"default",displayName:"PzTab",description:"",tags:{},props:[{name:"name",required:!1,type:{name:"string"},defaultValue:{func:!1,value:'"Tab"'}},{name:"selected",required:!1,type:{name:"boolean"},defaultValue:{func:!1,value:"false"}},{name:"id",required:!1,type:{name:"string"},defaultValue:{func:!1,value:"undefined"}}],slots:[{name:"default"}],sourceFiles:["/builds/Web-Projects/client-services/prozorro-ui/src/components/Layouts/PzTabs/PzTab.vue"]});const lt={class:"pz-tabs__nav"},zt=["onClick"],bt={class:"pz-tabs__content"},g=q({name:"PzTabs",__name:"PzTabs",props:{skin:{default:""},maxWidth:{default:""}},setup(t){const a=nt({tabs:[],activeTab:""}),p=t,i=rt(()=>p.skin?`pz-tabs--${p.skin}`:"");P(r.TABS_STATE,a),P(r.INIT_TAB,s=>a.tabs.push(s)),P(r.REMOVE_TAB,s=>{a.tabs=a.tabs.filter(e=>e.id!==s.id),o()}),tt(()=>o());const o=()=>{var e;const[{name:s}={name:""}]=a.tabs.filter(({selected:n})=>n);a.activeTab=s||((e=a.tabs[0])==null?void 0:e.name)||""};return(s,e)=>(u(),m("div",{class:k(["pz-tabs",i.value]),style:et({maxWidth:t.maxWidth})},[_("ul",lt,[(u(!0),m(at,null,st(a.tabs,n=>(u(),m("li",{key:n.id,class:k(["pz-tabs__item",{active:a.activeTab===n.name}]),onClick:z=>a.activeTab=n.name||""},pt(n.name),11,zt))),128))]),_("div",bt,[F(s.$slots,"default",{},void 0,!0)])],6))}}),l=M(g,[["__scopeId","data-v-88e033ce"]]);g.__docgenInfo=Object.assign({displayName:g.name??g.__name},{name:"PzTabs",exportName:"default",displayName:"PzTabs",description:"",tags:{},props:[{name:"skin",required:!1,type:{name:"PzTabsSkin"},defaultValue:{func:!1,value:'""'}},{name:"maxWidth",required:!1,type:{name:"string"},defaultValue:{func:!1,value:'""'}}],slots:[{name:"default"}],sourceFiles:["/builds/Web-Projects/client-services/prozorro-ui/src/components/Layouts/PzTabs/PzTabs.vue"]});const dt=t=>[t.skin?`skin="${t.skin}"`:null,t.maxWidth?`max-width="${t.maxWidth}"`:null].filter(a=>!!a).join(" "),ct=t=>`<template>
|
|
2
2
|
<PzTabs ${dt(t)}>
|
|
3
3
|
<PzTab name="${t.currentEditionLabel}" selected>
|
|
4
4
|
Current content
|
|
@@ -400,7 +400,7 @@ ${[R(),H(),U()].join(`
|
|
|
400
400
|
</div>
|
|
401
401
|
</section>
|
|
402
402
|
</div>
|
|
403
|
-
`})},y={parameters:{docs:{source:{code:vt()}}}};var
|
|
403
|
+
`})},y={parameters:{docs:{source:{code:vt()}}}};var w,S,E;b.parameters={...b.parameters,docs:{...(w=b.parameters)==null?void 0:w.docs,source:{originalSource:"{}",...(E=(S=b.parameters)==null?void 0:S.docs)==null?void 0:E.source}}};var A,B,C;d.parameters={...d.parameters,docs:{...(A=d.parameters)==null?void 0:A.docs,source:{originalSource:`{
|
|
404
404
|
parameters: {
|
|
405
405
|
docs: {
|
|
406
406
|
source: {
|
|
@@ -465,7 +465,7 @@ ${[R(),H(),U()].join(`
|
|
|
465
465
|
</div>
|
|
466
466
|
\`
|
|
467
467
|
})
|
|
468
|
-
}`,...(C=(B=d.parameters)==null?void 0:B.docs)==null?void 0:C.source}}};var N,W
|
|
468
|
+
}`,...(C=(B=d.parameters)==null?void 0:B.docs)==null?void 0:C.source}}};var N,W,D;c.parameters={...c.parameters,docs:{...(N=c.parameters)==null?void 0:N.docs,source:{originalSource:`{
|
|
469
469
|
parameters: {
|
|
470
470
|
docs: {
|
|
471
471
|
source: {
|
|
@@ -518,7 +518,7 @@ ${[R(),H(),U()].join(`
|
|
|
518
518
|
</div>
|
|
519
519
|
\`
|
|
520
520
|
})
|
|
521
|
-
}`,...(
|
|
521
|
+
}`,...(D=(W=c.parameters)==null?void 0:W.docs)==null?void 0:D.source}}};var $,I,L;v.parameters={...v.parameters,docs:{...($=v.parameters)==null?void 0:$.docs,source:{originalSource:`{
|
|
522
522
|
parameters: {
|
|
523
523
|
docs: {
|
|
524
524
|
source: {
|
|
@@ -591,4 +591,4 @@ ${[R(),H(),U()].join(`
|
|
|
591
591
|
}
|
|
592
592
|
}
|
|
593
593
|
}
|
|
594
|
-
}`,...(j=(V=y.parameters)==null?void 0:V.docs)==null?void 0:j.source}}};const
|
|
594
|
+
}`,...(j=(V=y.parameters)==null?void 0:V.docs)==null?void 0:j.source}}};const ht=["Playground","ThreeTabs","DefaultSkin","ConstrainedWidth","Examples"];export{v as ConstrainedWidth,c as DefaultSkin,y as Examples,b as Playground,d as ThreeTabs,ht as __namedExportsOrder,yt as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{d as i,B as p,D as f,f as u,C as c,o as s,e as n,l as t,y as r,k as d}from"./iframe-BfW4-zQw.js";import{_ as m}from"./_plugin-vue_export-helper-DlAUqK2U.js";const g={key:0,class:"pz-tag-prefix"},_={class:"pz-tag-label"},z={key:1,class:"pz-tag-suffix"},a=i({name:"PzTag",__name:"PzTag",props:{variant:{default:"grey"},as:{default:"span"}},setup(l){const o=l;return(e,v)=>(s(),p(c(o.as),{class:u(["pz-tag",`pz-tag--${o.variant}`])},{default:f(()=>[e.$slots.prefix?(s(),n("span",g,[t(e.$slots,"prefix",{},void 0,!0)])):r("",!0),d("span",_,[t(e.$slots,"default",{},void 0,!0)]),e.$slots.suffix?(s(),n("span",z,[t(e.$slots,"suffix",{},void 0,!0)])):r("",!0)]),_:3},8,["class"]))}}),T=m(a,[["__scopeId","data-v-545f113d"]]);a.__docgenInfo=Object.assign({displayName:a.name??a.__name},{name:"PzTag",exportName:"default",displayName:"PzTag",description:"",tags:{},props:[{name:"variant",required:!1,type:{name:"PzTagVariant"},defaultValue:{func:!1,value:'"grey"'}},{name:"as",required:!1,type:{name:"PzTagTag"},defaultValue:{func:!1,value:'"span"'}}],slots:[{name:"prefix"},{name:"default"},{name:"suffix"}],sourceFiles:["/builds/Web-Projects/client-services/prozorro-ui/src/components/Display/PzTag/PzTag.vue"]});export{T as P};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{_ as c}from"./PzIcon-
|
|
1
|
+
import{_ as c}from"./PzIcon-4heVmbY5.js";import{P as g}from"./PzText-REfIJddB.js";import{P as o}from"./PzTag-DkreR1ah.js";import"./iframe-BfW4-zQw.js";import"./preload-helper-C1FmrZbK.js";import"./_plugin-vue_export-helper-DlAUqK2U.js";const d=["grey","blue","green","red","grey-light"],m=["span","div","li"],f=[{variant:"grey",label:"Neutral"},{variant:"grey-light",label:"Neutral light"},{variant:"blue",label:"Information"},{variant:"green",label:"Verified"},{variant:"red",label:"Important"}],v=t=>{const a=[t.variant!=="grey"?`variant="${t.variant}"`:null,t.as!=="span"?`as="${t.as}"`:null].filter(p=>!!p).join(" "),n=t.showPrefix?`
|
|
2
2
|
<template #prefix>
|
|
3
3
|
<PzIcon name="sell" size="12" />
|
|
4
4
|
</template>`:"",l=t.showSuffix?`
|
|
@@ -67,4 +67,4 @@ import{_ as c}from"./PzIcon-DTWQGv5c.js";import{P as g}from"./PzText-BOcxbzaG.js
|
|
|
67
67
|
</div>
|
|
68
68
|
</section>
|
|
69
69
|
</div>
|
|
70
|
-
`})},e={};var s,r,i;e.parameters={...e.parameters,docs:{...(s=e.parameters)==null?void 0:s.docs,source:{originalSource:"{}",...(i=(r=e.parameters)==null?void 0:r.docs)==null?void 0:i.source}}};const
|
|
70
|
+
`})},e={};var s,r,i;e.parameters={...e.parameters,docs:{...(s=e.parameters)==null?void 0:s.docs,source:{originalSource:"{}",...(i=(r=e.parameters)==null?void 0:r.docs)==null?void 0:i.source}}};const P=["Playground"];export{e as Playground,P as __namedExportsOrder,z as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{d as l,B as r,f as d,C as p,g as i,D as u,o as m,l as c}from"./iframe-BfW4-zQw.js";import{_ as h}from"./_plugin-vue_export-helper-DlAUqK2U.js";const e=l({name:"PzText",__name:"PzText",props:{variant:{},as:{default:void 0}},setup(a){const s={"h1-bold":"h1","h1-regular":"h1","h2-bold":"h2","h3-bold":"h3","h3-regular":"h3","h4-regular":"h4","h4-semibold":"h4","h4-bold":"h4",subtitle:"p","body-regular":"p","body-semibold":"p","body-bold":"p",capitalized:"span",hint:"span","line-through":"span","small-regular":"span","small-semibold":"span","small-bold":"span",link:"a",document:"p"},t=a,o=i(()=>t.as??s[t.variant]??"span");return(n,b)=>(m(),r(p(o.value),{class:d(["pz-text",`pz-text--${a.variant}`])},{default:u(()=>[c(n.$slots,"default",{},void 0,!0)]),_:3},8,["class"]))}}),z=h(e,[["__scopeId","data-v-ebeee9bc"]]);e.__docgenInfo=Object.assign({displayName:e.name??e.__name},{name:"PzText",exportName:"default",displayName:"PzText",description:"",tags:{},props:[{name:"variant",required:!0,type:{name:"PzTextVariant"}},{name:"as",required:!1,type:{name:"PzTextTag"},defaultValue:{func:!1,value:"undefined"}}],slots:[{name:"default"}],sourceFiles:["/builds/Web-Projects/client-services/prozorro-ui/src/components/Text/PzText/PzText.vue"]});export{z as P};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{P as R}from"./PzText-
|
|
1
|
+
import{P as R}from"./PzText-REfIJddB.js";import"./iframe-BfW4-zQw.js";import"./preload-helper-C1FmrZbK.js";import"./_plugin-vue_export-helper-DlAUqK2U.js";const De=["h1-bold","h1-regular","h2-bold","h3-bold","h3-regular","h4-regular","h4-semibold","h4-bold","subtitle","body-regular","body-semibold","body-bold","capitalized","hint","line-through","small-regular","small-semibold","small-bold","link","document"],Pe=["h1","h2","h3","h4","h5","h6","p","span","div","a","label"],$e=r=>r.split("-").map(e=>e.charAt(0).toUpperCase()+e.slice(1)).join(" "),Ae={title:"Components/Text/PzText",component:R,parameters:{prototype:{caption:"Text component",note:"Component-level playground for semantic tag overrides and text variant rendering."},docs:{description:{component:"Vue text primitive for rendering the shared typography variants. Use `Foundation/Typography` for the full type-scale reference and `Components/Text/PzText` for the component API."},source:{transform:(r,e)=>{const a=e.args??{};return`<template>
|
|
2
2
|
<PzText ${[a.variant?`variant="${a.variant}"`:null,a.as?`as="${a.as}"`:null,a.content?`content="${a.content}"`:null].filter(Boolean).join(" ")} />
|
|
3
3
|
</template>`}}}},args:{variant:"body-regular",content:"Every procurement notice should stay readable across dense interfaces and long-form content."},argTypes:{variant:{control:"select",options:De,description:"Text style variant from the Design System."},as:{control:"select",options:Pe,description:"HTML tag to render. Defaults to a semantic tag based on variant."},content:{control:"text",description:"Text content.",table:{category:"Slots"}}},render:r=>({components:{pzText:R},setup(){const e=$e(r.variant);return{args:r,currentLabel:e}},template:`
|
|
4
4
|
<section class="pz-text-demo">
|
|
@@ -14,7 +14,7 @@ import{P as R}from"./PzText-BOcxbzaG.js";import"./iframe-Ckq2fQkL.js";import"./p
|
|
|
14
14
|
<pz-text :variant="args.variant" :as="args.as">{{ args.content }}</pz-text>
|
|
15
15
|
</div>
|
|
16
16
|
</section>
|
|
17
|
-
`})},t={name:"H1 Bold",args:{variant:"h1-bold",content:"Headline Bold 1"}},n={name:"H1 Regular",args:{variant:"h1-regular",content:"Headline Regular 1"}},o={name:"H2 Bold",args:{variant:"h2-bold",content:"Headline Bold 2"}},s={name:"H3 Bold",args:{variant:"h3-bold",content:"Headline Bold 3"}},l={name:"H3 Regular",args:{variant:"h3-regular",content:"Headline Regular 3"}},c={name:"H4 Regular",args:{variant:"h4-regular",content:"Headline Regular 4"}},
|
|
17
|
+
`})},t={name:"H1 Bold",args:{variant:"h1-bold",content:"Headline Bold 1"}},n={name:"H1 Regular",args:{variant:"h1-regular",content:"Headline Regular 1"}},o={name:"H2 Bold",args:{variant:"h2-bold",content:"Headline Bold 2"}},s={name:"H3 Bold",args:{variant:"h3-bold",content:"Headline Bold 3"}},l={name:"H3 Regular",args:{variant:"h3-regular",content:"Headline Regular 3"}},c={name:"H4 Regular",args:{variant:"h4-regular",content:"Headline Regular 4"}},i={name:"H4 Semibold",args:{variant:"h4-semibold",content:"Headline Semibold 4"}},d={name:"H4 Bold",args:{variant:"h4-bold",content:"Headline Bold 4"}},m={args:{variant:"subtitle",content:"Subtitle"}},u={name:"Body Regular",args:{variant:"body-regular",content:"Body text regular"}},p={name:"Body Semibold",args:{variant:"body-semibold",content:"Body text semibold"}},g={name:"Body Bold",args:{variant:"body-bold",content:"Body text bold"}},b={args:{variant:"capitalized",content:"Capitalized text"}},v={args:{variant:"hint",content:"Hint text"}},h={name:"Line Through",args:{variant:"line-through",content:"Line through text"}},S={name:"Small Regular",args:{variant:"small-regular",content:"Small text regular"}},H={name:"Small Semibold",args:{variant:"small-semibold",content:"Small text semibold"}},B={name:"Small Bold",args:{variant:"small-bold",content:"Small text bold"}},x={name:"Link",args:{variant:"link",content:"Link text"}},y={args:{variant:"document",content:"Document text"}};var z,T,L;t.parameters={...t.parameters,docs:{...(z=t.parameters)==null?void 0:z.docs,source:{originalSource:`{
|
|
18
18
|
name: "H1 Bold",
|
|
19
19
|
args: {
|
|
20
20
|
variant: "h1-bold",
|
|
@@ -50,19 +50,19 @@ import{P as R}from"./PzText-BOcxbzaG.js";import"./iframe-Ckq2fQkL.js";import"./p
|
|
|
50
50
|
variant: "h4-regular",
|
|
51
51
|
content: "Headline Regular 4"
|
|
52
52
|
}
|
|
53
|
-
}`,...(F=(U=c.parameters)==null?void 0:U.docs)==null?void 0:F.source}}};var I,M,q;
|
|
53
|
+
}`,...(F=(U=c.parameters)==null?void 0:U.docs)==null?void 0:F.source}}};var I,M,q;i.parameters={...i.parameters,docs:{...(I=i.parameters)==null?void 0:I.docs,source:{originalSource:`{
|
|
54
54
|
name: "H4 Semibold",
|
|
55
55
|
args: {
|
|
56
56
|
variant: "h4-semibold",
|
|
57
57
|
content: "Headline Semibold 4"
|
|
58
58
|
}
|
|
59
|
-
}`,...(q=(M=
|
|
59
|
+
}`,...(q=(M=i.parameters)==null?void 0:M.docs)==null?void 0:q.source}}};var G,J,K;d.parameters={...d.parameters,docs:{...(G=d.parameters)==null?void 0:G.docs,source:{originalSource:`{
|
|
60
60
|
name: "H4 Bold",
|
|
61
61
|
args: {
|
|
62
62
|
variant: "h4-bold",
|
|
63
63
|
content: "Headline Bold 4"
|
|
64
64
|
}
|
|
65
|
-
}`,...(K=(J=
|
|
65
|
+
}`,...(K=(J=d.parameters)==null?void 0:J.docs)==null?void 0:K.source}}};var N,Q,W;m.parameters={...m.parameters,docs:{...(N=m.parameters)==null?void 0:N.docs,source:{originalSource:`{
|
|
66
66
|
args: {
|
|
67
67
|
variant: "subtitle",
|
|
68
68
|
content: "Subtitle"
|
|
@@ -90,12 +90,12 @@ import{P as R}from"./PzText-BOcxbzaG.js";import"./iframe-Ckq2fQkL.js";import"./p
|
|
|
90
90
|
variant: "capitalized",
|
|
91
91
|
content: "Capitalized text"
|
|
92
92
|
}
|
|
93
|
-
}`,...(ce=(le=b.parameters)==null?void 0:le.docs)==null?void 0:ce.source}}};var de,
|
|
93
|
+
}`,...(ce=(le=b.parameters)==null?void 0:le.docs)==null?void 0:ce.source}}};var ie,de,me;v.parameters={...v.parameters,docs:{...(ie=v.parameters)==null?void 0:ie.docs,source:{originalSource:`{
|
|
94
94
|
args: {
|
|
95
95
|
variant: "hint",
|
|
96
96
|
content: "Hint text"
|
|
97
97
|
}
|
|
98
|
-
}`,...(me=(
|
|
98
|
+
}`,...(me=(de=v.parameters)==null?void 0:de.docs)==null?void 0:me.source}}};var ue,pe,ge;h.parameters={...h.parameters,docs:{...(ue=h.parameters)==null?void 0:ue.docs,source:{originalSource:`{
|
|
99
99
|
name: "Line Through",
|
|
100
100
|
args: {
|
|
101
101
|
variant: "line-through",
|
|
@@ -130,4 +130,4 @@ import{P as R}from"./PzText-BOcxbzaG.js";import"./iframe-Ckq2fQkL.js";import"./p
|
|
|
130
130
|
variant: "document",
|
|
131
131
|
content: "Document text"
|
|
132
132
|
}
|
|
133
|
-
}`,...(Ce=(ke=y.parameters)==null?void 0:ke.docs)==null?void 0:Ce.source}}};const
|
|
133
|
+
}`,...(Ce=(ke=y.parameters)==null?void 0:ke.docs)==null?void 0:Ce.source}}};const Ee=["H1Bold","H1Regular","H2Bold","H3Bold","H3Regular","H4Regular","H4Semibold","H4Bold","Subtitle","BodyRegular","BodySemibold","BodyBold","Capitalized","Hint","LineThroughStory","SmallRegular","SmallSemibold","SmallBold","LinkStory","Document"];export{g as BodyBold,u as BodyRegular,p as BodySemibold,b as Capitalized,y as Document,t as H1Bold,n as H1Regular,o as H2Bold,s as H3Bold,l as H3Regular,d as H4Bold,c as H4Regular,i as H4Semibold,v as Hint,h as LineThroughStory,x as LinkStory,B as SmallBold,S as SmallRegular,H as SmallSemibold,m as Subtitle,Ee as __namedExportsOrder,Ae as default};
|
|
@@ -0,0 +1,149 @@
|
|
|
1
|
+
import{d as _,B as k,D as S,u as N,o as u,l as B,e as E,t as O,L as q,f as A,y as R,r as V,w as $}from"./iframe-BfW4-zQw.js";import{P as T}from"./PzText-REfIJddB.js";import{y as I}from"./text-clamp.esm-BHxuNfNm.js";import{_ as D}from"./_plugin-vue_export-helper-DlAUqK2U.js";import"./preload-helper-C1FmrZbK.js";const M=3,F="... ",j=["aria-expanded","onClick"],r=_({name:"PzTextClamp",__name:"PzTextClamp",props:{text:{},maxContentLines:{default:M},clampPostfix:{default:F},btnClass:{default:""},autoResize:{type:Boolean,default:!0},expanded:{type:Boolean,default:!1},expandLabel:{default:"Show more"},collapseLabel:{default:"Collapse"}},emits:["update:expanded","clamp-change"],setup(e,{emit:a}){const t=e,d=a,L=n=>{d("update:expanded",n)},P=n=>{d("clamp-change",n)};return(n,W)=>(u(),k(N(I),{text:t.text,"max-lines":t.maxContentLines,ellipsis:t.clampPostfix,expanded:t.expanded,"auto-resize":t.autoResize,class:"pz-text-clamp","onUpdate:expanded":L,onClampChange:P},{after:S(({toggle:m,expanded:l,clamped:x})=>[B(n.$slots,"toggle",{toggle:m,expanded:l,clamped:x},()=>[x||l?(u(),E("button",{key:0,type:"button",class:A(["pz-text-clamp__toggle",t.btnClass]),"aria-expanded":l,onClick:q(m,["stop"])},O(l?t.collapseLabel:t.expandLabel),11,j)):R("",!0)],!0)]),_:3},8,["text","max-lines","ellipsis","expanded","auto-resize"]))}}),i=D(r,[["__scopeId","data-v-d9db4ec4"]]);r.__docgenInfo=Object.assign({displayName:r.name??r.__name},{name:"PzTextClamp",exportName:"default",displayName:"PzTextClamp",description:"",tags:{},props:[{name:"text",required:!0,type:{name:"string"}},{name:"maxContentLines",required:!1,type:{name:"number"},defaultValue:{func:!1,value:"MAX_CONTENT_LINES"}},{name:"clampPostfix",required:!1,type:{name:"string"},defaultValue:{func:!1,value:"DEFAULT_CLAMP_POSTFIX"}},{name:"btnClass",required:!1,type:{name:"string"},defaultValue:{func:!1,value:'""'}},{name:"autoResize",required:!1,type:{name:"boolean"},defaultValue:{func:!1,value:"true"}},{name:"expanded",required:!1,type:{name:"boolean"},defaultValue:{func:!1,value:"false"}},{name:"expandLabel",required:!1,type:{name:"string"},defaultValue:{func:!1,value:'"Show more"'}},{name:"collapseLabel",required:!1,type:{name:"string"},defaultValue:{func:!1,value:'"Collapse"'}}],events:[{name:"update:expanded",type:{names:["boolean"]}},{name:"clamp-change",type:{names:["boolean"]}}],slots:[{name:"toggle",scoped:!0,bindings:[{name:"toggle",title:"binding"},{name:"expanded",title:"binding"},{name:"clamped",title:"binding"}]}],sourceFiles:["/builds/Web-Projects/client-services/prozorro-ui/src/components/Text/PzTextClamp/PzTextClamp.vue"]});const c=[{kicker:"News teaser",title:"Two lines with default toggle",text:"The procurement framework for recovery projects should remain readable even when editors add dense context, supporting details, and legal clarifications into a single preview paragraph.",maxContentLines:2},{kicker:"Tender summary",title:"Three lines with longer body copy",text:"Prozorro teams often need the first block of text to stay compact inside cards, while still giving visitors a way to reveal the full explanation, deadlines, and rationale without leaving the page context.",maxContentLines:3},{kicker:"Always expanded",title:"Controlled expanded state",text:"This example starts opened to show that the wrapper supports v-model style control through update:expanded and still keeps the same text treatment as the collapsed variant.",maxContentLines:2,expanded:!0}],U=e=>`<template>
|
|
2
|
+
<PzTextClamp ${[`text="${e.text}"`,e.maxContentLines!==3?`:max-content-lines="${e.maxContentLines}"`:null,e.clampPostfix!=="... "?`clamp-postfix="${e.clampPostfix}"`:null,e.expandLabel!=="Show more"?`expand-label="${e.expandLabel}"`:null,e.collapseLabel!=="Collapse"?`collapse-label="${e.collapseLabel}"`:null,e.expanded?':expanded="true"':null].filter(t=>!!t).join(" ")} />
|
|
3
|
+
</template>`,X=()=>`<template>
|
|
4
|
+
<PzTextClamp
|
|
5
|
+
text="Long procurement summary that needs a custom action."
|
|
6
|
+
:max-content-lines="2"
|
|
7
|
+
>
|
|
8
|
+
<template #toggle="{ toggle, expanded, clamped }">
|
|
9
|
+
<button
|
|
10
|
+
v-if="clamped || expanded"
|
|
11
|
+
type="button"
|
|
12
|
+
class="custom-toggle"
|
|
13
|
+
@click="toggle"
|
|
14
|
+
>
|
|
15
|
+
{{ expanded ? "Hide details" : "Open full text" }}
|
|
16
|
+
</button>
|
|
17
|
+
</template>
|
|
18
|
+
</PzTextClamp>
|
|
19
|
+
</template>`,H={title:"Components/Text/PzTextClamp",component:i,parameters:{prototype:{caption:"Text clamp component",note:"Built as a thin wrapper over vue3-text-clamp, reusing the old text/max-lines/postfix/button-class contract and replacing app-specific translations with explicit labels and a toggle slot."},docs:{description:{component:"Use `PzTextClamp` for compact previews of long copy. It defaults to the `body-regular` text style, exposes the old clamp props, and supports toggle customization through `v-model:expanded` and the `toggle` slot."},source:{transform:(e,a)=>U(a.args??H.args)}}},args:{text:c[1].text,maxContentLines:3,clampPostfix:"... ",btnClass:"",autoResize:!0,expanded:!1,expandLabel:"Show more",collapseLabel:"Collapse",title:"Long-form card description"},argTypes:{text:{control:"text",description:"Source text rendered by the clamp component."},maxContentLines:{control:{type:"number",min:1,max:8,step:1},description:"Maximum number of visible lines before the text is clamped."},clampPostfix:{control:"text",description:"String appended to the truncated text."},btnClass:{control:"text",description:"Additional class names applied to the default toggle button."},autoResize:{control:"boolean",description:"Recalculates clamping on layout changes."},expanded:{control:"boolean",description:"Controlled expanded state."},expandLabel:{control:"text",description:"Default label shown while the text is collapsed."},collapseLabel:{control:"text",description:"Default label shown while the text is expanded."},title:{control:"text",description:"Preview heading used in the story only.",table:{category:"Story"}}},render:e=>({components:{pzText:T,pzTextClamp:i},setup(){const a=V(!!e.expanded);return $(()=>e.expanded,t=>{a.value=!!t}),{args:e,expanded:a,clampStories:c}},template:`
|
|
20
|
+
<div class="pz-text-clamp-story">
|
|
21
|
+
<section class="pz-text-clamp-story-hero">
|
|
22
|
+
<div class="pz-text-clamp-story-copy">
|
|
23
|
+
<span class="pz-text-clamp-story-eyebrow">Body Regular by default</span>
|
|
24
|
+
<pz-text variant="h4-bold">{{ args.title }}</pz-text>
|
|
25
|
+
<pz-text variant="body-regular">
|
|
26
|
+
Clamp long editorial or procurement copy without creating new typography rules for each surface.
|
|
27
|
+
</pz-text>
|
|
28
|
+
</div>
|
|
29
|
+
|
|
30
|
+
<div class="pz-text-clamp-story-preview">
|
|
31
|
+
<pz-text variant="small-semibold" as="span" class="pz-text-clamp-story-chip">
|
|
32
|
+
{{ expanded ? "expanded" : "collapsed" }}
|
|
33
|
+
</pz-text>
|
|
34
|
+
|
|
35
|
+
<pz-text-clamp
|
|
36
|
+
:text="args.text"
|
|
37
|
+
:max-content-lines="args.maxContentLines"
|
|
38
|
+
:clamp-postfix="args.clampPostfix"
|
|
39
|
+
:btn-class="args.btnClass"
|
|
40
|
+
:auto-resize="args.autoResize"
|
|
41
|
+
:expanded="expanded"
|
|
42
|
+
:expand-label="args.expandLabel"
|
|
43
|
+
:collapse-label="args.collapseLabel"
|
|
44
|
+
@update:expanded="expanded = $event"
|
|
45
|
+
/>
|
|
46
|
+
</div>
|
|
47
|
+
</section>
|
|
48
|
+
|
|
49
|
+
<section class="pz-text-clamp-story-grid">
|
|
50
|
+
<article
|
|
51
|
+
v-for="item in clampStories"
|
|
52
|
+
:key="item.title"
|
|
53
|
+
class="pz-text-clamp-story-card"
|
|
54
|
+
>
|
|
55
|
+
<div class="pz-text-clamp-story-card-header">
|
|
56
|
+
<span class="pz-text-clamp-story-kicker">{{ item.kicker }}</span>
|
|
57
|
+
<pz-text variant="body-semibold">{{ item.title }}</pz-text>
|
|
58
|
+
</div>
|
|
59
|
+
|
|
60
|
+
<pz-text-clamp
|
|
61
|
+
:text="item.text"
|
|
62
|
+
:max-content-lines="item.maxContentLines"
|
|
63
|
+
:expanded="item.expanded"
|
|
64
|
+
/>
|
|
65
|
+
</article>
|
|
66
|
+
</section>
|
|
67
|
+
</div>
|
|
68
|
+
`})},o={},s={args:{text:c[0].text,maxContentLines:2,title:"News teaser"}},p={parameters:{docs:{source:{code:X()}}},render:()=>({components:{pzText:T,pzTextClamp:i},setup(){return{text:"Publishing teams can replace the default inline action with a branded control while keeping the same clamp behavior and the same underlying library implementation."}},template:`
|
|
69
|
+
<div class="pz-text-clamp-story">
|
|
70
|
+
<section class="pz-text-clamp-story-hero">
|
|
71
|
+
<div class="pz-text-clamp-story-copy">
|
|
72
|
+
<span class="pz-text-clamp-story-eyebrow">Toggle slot</span>
|
|
73
|
+
<pz-text variant="h4-bold">Custom action content</pz-text>
|
|
74
|
+
</div>
|
|
75
|
+
|
|
76
|
+
<div class="pz-text-clamp-story-preview">
|
|
77
|
+
<pz-text-clamp
|
|
78
|
+
:text="text"
|
|
79
|
+
:max-content-lines="2"
|
|
80
|
+
>
|
|
81
|
+
<template #toggle="{ toggle, expanded, clamped }">
|
|
82
|
+
<button
|
|
83
|
+
v-if="clamped || expanded"
|
|
84
|
+
type="button"
|
|
85
|
+
class="pz-text-clamp-story-custom-toggle"
|
|
86
|
+
@click="toggle"
|
|
87
|
+
>
|
|
88
|
+
{{ expanded ? "Hide details" : "Open full text" }}
|
|
89
|
+
</button>
|
|
90
|
+
</template>
|
|
91
|
+
</pz-text-clamp>
|
|
92
|
+
</div>
|
|
93
|
+
</section>
|
|
94
|
+
</div>
|
|
95
|
+
`})};var g,f,b;o.parameters={...o.parameters,docs:{...(g=o.parameters)==null?void 0:g.docs,source:{originalSource:"{}",...(b=(f=o.parameters)==null?void 0:f.docs)==null?void 0:b.source}}};var y,h,z;s.parameters={...s.parameters,docs:{...(y=s.parameters)==null?void 0:y.docs,source:{originalSource:`{
|
|
96
|
+
args: {
|
|
97
|
+
text: clampStories[0].text,
|
|
98
|
+
maxContentLines: 2,
|
|
99
|
+
title: "News teaser"
|
|
100
|
+
}
|
|
101
|
+
}`,...(z=(h=s.parameters)==null?void 0:h.docs)==null?void 0:z.source}}};var v,C,w;p.parameters={...p.parameters,docs:{...(v=p.parameters)==null?void 0:v.docs,source:{originalSource:`{
|
|
102
|
+
parameters: {
|
|
103
|
+
docs: {
|
|
104
|
+
source: {
|
|
105
|
+
code: buildSlotSource()
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
},
|
|
109
|
+
render: () => ({
|
|
110
|
+
components: {
|
|
111
|
+
pzText: PzText,
|
|
112
|
+
pzTextClamp: PzTextClamp
|
|
113
|
+
},
|
|
114
|
+
setup() {
|
|
115
|
+
const text = "Publishing teams can replace the default inline action with a branded control while keeping the same clamp behavior and the same underlying library implementation.";
|
|
116
|
+
return {
|
|
117
|
+
text
|
|
118
|
+
};
|
|
119
|
+
},
|
|
120
|
+
template: \`
|
|
121
|
+
<div class="pz-text-clamp-story">
|
|
122
|
+
<section class="pz-text-clamp-story-hero">
|
|
123
|
+
<div class="pz-text-clamp-story-copy">
|
|
124
|
+
<span class="pz-text-clamp-story-eyebrow">Toggle slot</span>
|
|
125
|
+
<pz-text variant="h4-bold">Custom action content</pz-text>
|
|
126
|
+
</div>
|
|
127
|
+
|
|
128
|
+
<div class="pz-text-clamp-story-preview">
|
|
129
|
+
<pz-text-clamp
|
|
130
|
+
:text="text"
|
|
131
|
+
:max-content-lines="2"
|
|
132
|
+
>
|
|
133
|
+
<template #toggle="{ toggle, expanded, clamped }">
|
|
134
|
+
<button
|
|
135
|
+
v-if="clamped || expanded"
|
|
136
|
+
type="button"
|
|
137
|
+
class="pz-text-clamp-story-custom-toggle"
|
|
138
|
+
@click="toggle"
|
|
139
|
+
>
|
|
140
|
+
{{ expanded ? "Hide details" : "Open full text" }}
|
|
141
|
+
</button>
|
|
142
|
+
</template>
|
|
143
|
+
</pz-text-clamp>
|
|
144
|
+
</div>
|
|
145
|
+
</section>
|
|
146
|
+
</div>
|
|
147
|
+
\`
|
|
148
|
+
})
|
|
149
|
+
}`,...(w=(C=p.parameters)==null?void 0:C.docs)==null?void 0:w.source}}};const Z=["Playground","TwoLines","CustomToggle"];export{p as CustomToggle,o as Playground,s as TwoLines,Z as __namedExportsOrder,H as default};
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import{d as q,
|
|
1
|
+
import{d as q,W as P,e as n,z as _,D as T,u as M,f as x,X as b,o as d,Y as S,k as B,$,t as u,y as z,g as k,r,w as N}from"./iframe-BfW4-zQw.js";import{P as C}from"./PzText-REfIJddB.js";import{P as I}from"./PzLabel-BGjTUIxv.js";import{_ as D}from"./_plugin-vue_export-helper-DlAUqK2U.js";import"./preload-helper-C1FmrZbK.js";const F={key:0,class:"pz-textarea-wrap"},j=["id","placeholder","disabled","maxlength","required","rows"],A={key:0,class:"pz-textarea-counter"},E=["id"],L={key:2,class:"pz-textarea-error"},c=q({name:"PzTextarea",__name:"PzTextarea",props:b({name:{},modelValue:{},label:{default:""},placeholder:{default:""},errorMessage:{default:""},counted:{type:Boolean,default:!1},maxSize:{default:1e3},required:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1},editable:{type:Boolean,default:!0},rows:{default:4}},{modelValue:{default:""},modelModifiers:{}}),emits:b(["focus","blur","update:modelValue"],["update:modelValue"]),setup(e,{emit:l}){const a=e,i=l,o=P(e,"modelValue"),m=k(()=>o.value.length);return(f,t)=>(d(),n("div",{class:x(["pz-textarea",{error:!!a.errorMessage,disabled:a.disabled}])},[_(M(I),{label:a.label,for:a.name,required:a.required,disabled:a.disabled},{default:T(()=>[a.editable?(d(),n("span",F,[S(B("textarea",{id:a.name,"onUpdate:modelValue":t[0]||(t[0]=s=>o.value=s),placeholder:a.placeholder,disabled:a.disabled,maxlength:a.counted?a.maxSize:void 0,required:a.required,rows:a.rows,class:x(["pz-textarea-control",{"pz-textarea-control--counted":a.counted}]),onBlur:t[1]||(t[1]=s=>i("blur")),onFocus:t[2]||(t[2]=s=>i("focus"))},null,42,j),[[$,o.value]]),a.counted?(d(),n("span",A,u(m.value)+"/"+u(a.maxSize),1)):z("",!0)])):(d(),n("div",{key:1,id:a.name,class:"pz-textarea-readonly"},u(o.value),9,E)),a.errorMessage?(d(),n("span",L,u(a.errorMessage),1)):z("",!0)]),_:1},8,["label","for","required","disabled"])],2))}}),v=D(c,[["__scopeId","data-v-0e35dbdf"]]);c.__docgenInfo=Object.assign({displayName:c.name??c.__name},{name:"PzTextarea",exportName:"default",displayName:"PzTextarea",description:"",tags:{},props:[{name:"name",required:!0,type:{name:"string"}},{name:"modelValue",required:!0,type:{name:"string"}},{name:"label",required:!1,type:{name:"string"},defaultValue:{func:!1,value:'""'}},{name:"placeholder",required:!1,type:{name:"string"},defaultValue:{func:!1,value:'""'}},{name:"errorMessage",required:!1,type:{name:"string"},defaultValue:{func:!1,value:'""'}},{name:"counted",required:!1,type:{name:"boolean"},defaultValue:{func:!1,value:"false"}},{name:"maxSize",required:!1,type:{name:"number"},defaultValue:{func:!1,value:"1000"}},{name:"required",required:!1,type:{name:"boolean"},defaultValue:{func:!1,value:"false"}},{name:"disabled",required:!1,type:{name:"boolean"},defaultValue:{func:!1,value:"false"}},{name:"editable",required:!1,type:{name:"boolean"},defaultValue:{func:!1,value:"true"}},{name:"rows",required:!1,type:{name:"number"},defaultValue:{func:!1,value:"4"}}],events:[{name:"focus"},{name:"blur"},{name:"update:modelValue",type:{names:["string"]}}],sourceFiles:["/builds/Web-Projects/client-services/prozorro-ui/src/components/Form/PzTextarea/PzTextarea.vue"]});const V=2,O=e=>`<template>
|
|
2
2
|
<PzTextarea
|
|
3
3
|
v-model="value"
|
|
4
4
|
${[`name="${e.name}"`,e.label?`label="${e.label}"`:null,e.placeholder?`placeholder="${e.placeholder}"`:null,e.required?':required="true"':null,e.disabled?':disabled="true"':null,e.editable===!1?':editable="false"':null,e.counted?':counted="true"':null,e.maxSize?`:max-size="${e.maxSize}"`:null,e.rows&&e.rows!==V?`:rows="${e.rows}"`:null,e.errorMessage?`error-message="${e.errorMessage}"`:null].filter(a=>!!a).join(" ")}
|
|
5
5
|
/>
|
|
6
|
-
</template>`,U={title:"Components/Form/PzTextarea",component:v,parameters:{docs:{description:{component:"Use `PzTextarea` for multi-line text input. It follows the shared form patterns in the library, wraps the control with `PzLabel`, supports counters, validation feedback, and a display-only presentation mode."},source:{transform:(e,
|
|
6
|
+
</template>`,U={title:"Components/Form/PzTextarea",component:v,parameters:{docs:{description:{component:"Use `PzTextarea` for multi-line text input. It follows the shared form patterns in the library, wraps the control with `PzLabel`, supports counters, validation feedback, and a display-only presentation mode."},source:{transform:(e,l)=>O(l.args??U.args)}}},args:{name:"pz-textarea-story",label:"Опис",modelValue:"",placeholder:"Введiть детальний опис...",errorMessage:"",counted:!1,maxSize:1e3,required:!1,disabled:!1,editable:!0,rows:V},argTypes:{name:{control:"text",description:"Native textarea `id`/`name`."},label:{control:"text",description:"Текст лейбла над полем."},modelValue:{control:"text",description:"Поточне значення, прив'язане через `v-model`."},placeholder:{control:"text",description:"Пiдказка для порожнього поля."},errorMessage:{control:"text",description:"Повiдомлення про помилку пiд полем; одночасно вмикає error-стан."},counted:{control:"boolean",description:"Показує лiчильник символiв у правому нижньому кутi."},maxSize:{control:"number",description:"Максимальна довжина тексту для лiчильника та `maxlength`, коли `counted=true`."},required:{control:"boolean",description:"Позначає поле як обов'язкове."},disabled:{control:"boolean",description:"Блокує введення та застосовує приглушений стиль."},editable:{control:"boolean",description:"Коли `false`, компонент показує display-only представлення замiсть textarea."},rows:{control:"number",description:"Кiлькiсть рядкiв textarea."}},render:e=>({components:{pzTextarea:v,pzText:C},setup(){const l=r(e.modelValue??""),a=r("Спiльне значення для двох текстових полiв."),i=r(""),o=r(""),m=r("Короткий опис для прикладу лiчильника."),f=r("Текст, який потребує перевiрки."),t=r(`Перший рядок.
|
|
7
7
|
Другий рядок.
|
|
8
|
-
Третiй рядок.`),s=
|
|
8
|
+
Третiй рядок.`),s=r("Просимо детально описати контекст звернення.");return N(()=>e.modelValue,g=>{l.value=g??""}),{args:e,value:l,sharedValue:a,defaultValue:i,requiredValue:o,countedValue:m,errorValue:f,previewValue:t,patternValue:s}},template:`
|
|
9
9
|
<div style="display: flex; flex-direction: column; gap: var(--pz-space-24); max-width: 640px;">
|
|
10
10
|
<section>
|
|
11
11
|
<pz-text variant="h4-bold">API компонента</pz-text>
|
package/dist/app/assets/{PzValidatorXSS.stories-zCaJ6Q__.js → PzValidatorXSS.stories-BwMdWW4N.js}
RENAMED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{r as c,g as z}from"./iframe-
|
|
1
|
+
import{r as c,g as z}from"./iframe-BfW4-zQw.js";import{P as u}from"./PzText-REfIJddB.js";import"./preload-helper-C1FmrZbK.js";import"./_plugin-vue_export-helper-DlAUqK2U.js";class s{static validQuery(t){const i={};return Object.keys(t).forEach(e=>{const a=t[e];Array.isArray(a)?i[e]=a.map(n=>s.validString(n)):i[e]=s.validString(a)}),i}static validString(t){return t==null?"":String(t).replace(/<[^>]*>/gim,"").trim()}}const m=o=>`<script setup lang="ts">
|
|
2
2
|
import { PzValidatorXSS } from "@prozorro/prozorro-ui";
|
|
3
3
|
|
|
4
4
|
const input = "${o.testInput}";
|
|
@@ -16,7 +16,7 @@ const sanitizedQuery = PzValidatorXSS.validQuery(queryParams);
|
|
|
16
16
|
<p>Sanitized string: {{ sanitizedInput }}</p>
|
|
17
17
|
<pre>Sanitized query: {{ JSON.stringify(sanitizedQuery, null, 2) }}</pre>
|
|
18
18
|
</div>
|
|
19
|
-
</template>`,y=[{name:"validString",signature:"PzValidatorXSS.validString(str: string | number): string",description:"Removes HTML tags from a string and trims whitespace. Handles numbers by converting them to strings.",params:"`str`: Input value to sanitize.",example:'PzValidatorXSS.validString("<p>Hello world</p>") // "Hello world"'},{name:"validQuery",signature:"PzValidatorXSS.validQuery(query: PzValidatorXSSQuery): PzValidatorXSSQuery",description:"Deep sanitization for an object (e.g. router query). Recursively cleans arrays and string values.",params:"`query`: Object with string or string array values.",example:"PzValidatorXSS.validQuery({ q: '<u>search</u>', ids: ['<i>1</i>', '2'] })"}],
|
|
19
|
+
</template>`,y=[{name:"validString",signature:"PzValidatorXSS.validString(str: string | number): string",description:"Removes HTML tags from a string and trims whitespace. Handles numbers by converting them to strings.",params:"`str`: Input value to sanitize.",example:'PzValidatorXSS.validString("<p>Hello world</p>") // "Hello world"'},{name:"validQuery",signature:"PzValidatorXSS.validQuery(query: PzValidatorXSSQuery): PzValidatorXSSQuery",description:"Deep sanitization for an object (e.g. router query). Recursively cleans arrays and string values.",params:"`query`: Object with string or string array values.",example:"PzValidatorXSS.validQuery({ q: '<u>search</u>', ids: ['<i>1</i>', '2'] })"}],_={title:"Utilities/PzValidatorXSS",component:s,parameters:{layout:"fullscreen",docs:{description:{component:"Utility class for sanitizing inputs and preventing XSS by removing HTML tags from strings and query objects."}}},argTypes:{testInput:{control:"text",description:"Live test input with HTML tags."}}},r={args:{testInput:"<b>Hello</b> <script>alert('XSS')<\/script> <i>World!</i>"},render:o=>({components:{pzText:u},setup(){const t=c(o.testInput),i=z(()=>s.validString(t.value)),e={keyword:"<b>Prozorro</b>",tags:["<i>Active</i>","<u>Closed</u>"],page:"1"},a=s.validQuery(e);return{input:t,sanitized:i,queryInput:e,sanitizedQuery:a,methodDocs:y}},template:`
|
|
20
20
|
<div class="pz-validator-xss-story">
|
|
21
21
|
<header class="pz-validator-xss-story__header">
|
|
22
22
|
<pzText weight="bold" size="large" tag="h1" class="pz-validator-xss-story__title">PzValidatorXSS Utility</pzText>
|
|
@@ -160,4 +160,4 @@ const sanitizedQuery = PzValidatorXSS.validQuery(queryParams);
|
|
|
160
160
|
}
|
|
161
161
|
}
|
|
162
162
|
}
|
|
163
|
-
}`,...(p=(d=r.parameters)==null?void 0:d.docs)==null?void 0:p.source}}};const
|
|
163
|
+
}`,...(p=(d=r.parameters)==null?void 0:d.docs)==null?void 0:p.source}}};const h=["Documentation"];export{r as Documentation,h as __namedExportsOrder,_ as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
.spacing-foundation{display:grid}.spacing-foundation-board{display:grid;gap:30px;padding:clamp(28px,3vw,42px);border:1px solid color-mix(in srgb,var(--pz-color-grey-30) 82%,transparent);border-radius:32px;background:radial-gradient(circle at top right,color-mix(in srgb,var(--pz-color-blue-50) 8%,transparent),transparent 30%),linear-gradient(180deg,color-mix(in srgb,var(--pz-color-white) 98%,transparent),color-mix(in srgb,var(--pz-color-grey-20) 90%,var(--pz-color-white)));box-shadow:0 24px 80px color-mix(in srgb,var(--pz-color-black-90) 8%,transparent),inset 0 1px color-mix(in srgb,var(--pz-color-white) 98%,transparent)}.spacing-foundation-hero{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(300px,.8fr);gap:20px}.spacing-foundation-hero-copy,.spacing-foundation-hero-note,.spacing-foundation-section,.spacing-foundation-token-card,.spacing-foundation-group-card,.spacing-foundation-preview-card{border:1px solid color-mix(in srgb,var(--pz-color-grey-30) 70%,transparent);border-radius:28px;background:color-mix(in srgb,var(--pz-color-white) 94%,transparent);box-shadow:0 18px 52px color-mix(in srgb,var(--pz-color-black-90) 6%,transparent),inset 0 1px color-mix(in srgb,var(--pz-color-white) 98%,transparent)}.spacing-foundation-hero-copy,.spacing-foundation-hero-note,.spacing-foundation-section{padding:clamp(22px,2vw,30px)}.spacing-foundation-hero-copy,.spacing-foundation-hero-note,.spacing-foundation-section-heading,.spacing-foundation-group-head,.spacing-foundation-token-head{display:grid;gap:8px}.spacing-foundation-kicker,.spacing-foundation-chip{display:inline-flex;align-items:center;justify-content:center;width:fit-content;padding:8px 12px;border-radius:999px;background:color-mix(in srgb,var(--pz-color-blue-10) 92%,var(--pz-color-white));color:var(--pz-color-text-link-hover);font-size:11px;font-weight:700;letter-spacing:.12em;text-transform:uppercase}.spacing-foundation-section{display:grid;gap:18px}.spacing-foundation-token-grid,.spacing-foundation-groups,.spacing-foundation-preview{display:grid;gap:16px}.spacing-foundation-token-grid,.spacing-foundation-groups,.spacing-foundation-preview{grid-template-columns:repeat(3,minmax(0,1fr))}.spacing-foundation-token-card,.spacing-foundation-group-card,.spacing-foundation-preview-card{display:grid;gap:18px;padding:20px}.spacing-foundation-ruler{display:flex;align-items:center;min-height:38px}.spacing-foundation-ruler-bar{display:inline-flex;height:12px;min-width:2px;border-radius:999px;background:linear-gradient(90deg,color-mix(in srgb,var(--pz-color-blue-50) 90%,var(--pz-color-white)),color-mix(in srgb,var(--pz-color-blue-60) 90%,var(--pz-color-white)))}.spacing-foundation-token-meta{display:grid;gap:6px}.spacing-foundation-token-meta code,.spacing-foundation-cell-code code{color:var(--pz-color-text-primary);font-size:13px;line-height:1.6}.spacing-foundation-table{display:grid;grid-template-columns:minmax(200px,260px) minmax(0,1fr);border:1px solid color-mix(in srgb,var(--pz-color-grey-30) 72%,transparent);border-radius:22px;overflow:hidden;background:var(--pz-color-white)}.spacing-foundation-head,.spacing-foundation-cell{padding:16px 18px}.spacing-foundation-head{background:color-mix(in srgb,var(--pz-color-grey-20) 88%,transparent);color:var(--pz-color-text-primary);font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.spacing-foundation-cell{display:flex;align-items:center;border-top:1px solid color-mix(in srgb,var(--pz-color-grey-30) 56%,transparent)}.spacing-foundation-preview-surface,.spacing-foundation-preview-stack,.spacing-foundation-preview-shell{border:1px dashed color-mix(in srgb,var(--pz-color-blue-50) 30%,transparent);border-radius:22px;background:color-mix(in srgb,var(--pz-color-blue-10) 86%,var(--pz-color-white))}.spacing-foundation-preview-fill,.spacing-foundation-preview-float{display:grid;gap:6px;border-radius:18px;background:color-mix(in srgb,var(--pz-color-white) 98%,transparent);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--pz-color-grey-30) 72%,transparent)}.spacing-foundation-preview-fill{padding:16px}.spacing-foundation-preview-shell{display:flex}.spacing-foundation-preview-float{max-width:220px}@media (width <= 1200px){.spacing-foundation-hero,.spacing-foundation-token-grid,.spacing-foundation-groups,.spacing-foundation-preview{grid-template-columns:1fr}}@media (width <= 1024px){.spacing-foundation-table{grid-template-columns:1fr}.spacing-foundation-head{display:none}.spacing-foundation-cell{border-top:none}}@media (width <= 640px){.spacing-foundation-board,.spacing-foundation-hero-copy,.spacing-foundation-hero-note,.spacing-foundation-section,.spacing-foundation-token-card,.spacing-foundation-group-card,.spacing-foundation-preview-card{padding:18px;border-radius:22px}}
|
|
1
|
+
.spacing-foundation{display:grid}.spacing-foundation-board{display:grid;gap:30px;padding:clamp(28px,3vw,42px);border:1px solid color-mix(in srgb,var(--pz-color-grey-30) 82%,transparent);border-radius:32px;background:radial-gradient(circle at top right,color-mix(in srgb,var(--pz-color-blue-50) 8%,transparent),transparent 30%),linear-gradient(180deg,color-mix(in srgb,var(--pz-color-white) 98%,transparent),color-mix(in srgb,var(--pz-color-grey-20) 90%,var(--pz-color-white)));box-shadow:0 24px 80px color-mix(in srgb,var(--pz-color-black-90) 8%,transparent),inset 0 1px color-mix(in srgb,var(--pz-color-white) 98%,transparent)}.spacing-foundation-hero{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(300px,.8fr);gap:20px}.spacing-foundation-hero-copy,.spacing-foundation-hero-note,.spacing-foundation-section,.spacing-foundation-token-card,.spacing-foundation-group-card,.spacing-foundation-preview-card{border:1px solid color-mix(in srgb,var(--pz-color-grey-30) 70%,transparent);border-radius:28px;background:color-mix(in srgb,var(--pz-color-white) 94%,transparent);box-shadow:0 18px 52px color-mix(in srgb,var(--pz-color-black-90) 6%,transparent),inset 0 1px color-mix(in srgb,var(--pz-color-white) 98%,transparent)}.spacing-foundation-hero-copy,.spacing-foundation-hero-note,.spacing-foundation-section{padding:clamp(22px,2vw,30px)}.spacing-foundation-hero-copy,.spacing-foundation-hero-note,.spacing-foundation-section-heading,.spacing-foundation-group-head,.spacing-foundation-token-head{display:grid;gap:8px}.spacing-foundation-kicker,.spacing-foundation-chip{display:inline-flex;align-items:center;justify-content:center;width:fit-content;padding:8px 12px;border-radius:999px;background:color-mix(in srgb,var(--pz-color-blue-10) 92%,var(--pz-color-white));color:var(--pz-color-text-link-hover);font-size:11px;font-weight:700;letter-spacing:.12em;text-transform:uppercase}.spacing-foundation-section{display:grid;gap:18px}.spacing-foundation-token-grid,.spacing-foundation-groups,.spacing-foundation-preview{display:grid;gap:16px}.spacing-foundation-token-grid,.spacing-foundation-groups,.spacing-foundation-preview{grid-template-columns:repeat(3,minmax(0,1fr))}.spacing-foundation-token-card,.spacing-foundation-group-card,.spacing-foundation-preview-card{display:grid;gap:18px;padding:20px}.spacing-foundation-ruler{display:flex;align-items:center;min-height:38px}.spacing-foundation-ruler-bar{display:inline-flex;height:12px;min-width:2px;border-radius:999px;background:linear-gradient(90deg,color-mix(in srgb,var(--pz-color-blue-50) 90%,var(--pz-color-white)),color-mix(in srgb,var(--pz-color-blue-60) 90%,var(--pz-color-white)))}.spacing-foundation-token-meta{display:grid;gap:6px}.spacing-foundation-token-meta code,.spacing-foundation-cell-code code{color:var(--pz-color-text-primary);font-size:13px;line-height:1.6}.spacing-foundation-code{margin:0;padding:20px;overflow:auto;border:1px solid color-mix(in srgb,var(--pz-color-grey-30) 70%,transparent);border-radius:22px;background:linear-gradient(180deg,color-mix(in srgb,var(--pz-color-white) 96%,transparent),color-mix(in srgb,var(--pz-color-grey-20) 90%,var(--pz-color-white)))}.spacing-foundation-code code{color:var(--pz-color-text-primary);font-size:13px;line-height:1.6}.spacing-foundation-bp-table{display:grid;grid-template-columns:minmax(220px,300px) minmax(100px,140px) minmax(0,1fr);border:1px solid color-mix(in srgb,var(--pz-color-grey-30) 72%,transparent);border-radius:22px;overflow:hidden;background:var(--pz-color-white)}.spacing-foundation-table{display:grid;grid-template-columns:minmax(200px,260px) minmax(0,1fr);border:1px solid color-mix(in srgb,var(--pz-color-grey-30) 72%,transparent);border-radius:22px;overflow:hidden;background:var(--pz-color-white)}.spacing-foundation-head,.spacing-foundation-cell{padding:16px 18px}.spacing-foundation-head{background:color-mix(in srgb,var(--pz-color-grey-20) 88%,transparent);color:var(--pz-color-text-primary);font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.spacing-foundation-cell{display:flex;align-items:center;border-top:1px solid color-mix(in srgb,var(--pz-color-grey-30) 56%,transparent)}.spacing-foundation-preview-surface,.spacing-foundation-preview-stack,.spacing-foundation-preview-shell{border:1px dashed color-mix(in srgb,var(--pz-color-blue-50) 30%,transparent);border-radius:22px;background:color-mix(in srgb,var(--pz-color-blue-10) 86%,var(--pz-color-white))}.spacing-foundation-preview-fill,.spacing-foundation-preview-float{display:grid;gap:6px;border-radius:18px;background:color-mix(in srgb,var(--pz-color-white) 98%,transparent);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--pz-color-grey-30) 72%,transparent)}.spacing-foundation-preview-fill{padding:16px}.spacing-foundation-preview-shell{display:flex}.spacing-foundation-preview-float{max-width:220px}@media (width <= 1200px){.spacing-foundation-hero,.spacing-foundation-token-grid,.spacing-foundation-groups,.spacing-foundation-preview{grid-template-columns:1fr}}@media (width <= 1024px){.spacing-foundation-table,.spacing-foundation-bp-table{grid-template-columns:1fr}.spacing-foundation-head{display:none}.spacing-foundation-cell{border-top:none}}@media (width <= 640px){.spacing-foundation-board,.spacing-foundation-hero-copy,.spacing-foundation-hero-note,.spacing-foundation-section,.spacing-foundation-token-card,.spacing-foundation-group-card,.spacing-foundation-preview-card{padding:18px;border-radius:22px}}
|