@prozorro/prozorro-ui 0.0.10-beta → 0.0.11-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.
Files changed (153) hide show
  1. package/dist/app/assets/{Color-FRDS63T2-NkJWwZpV.js → Color-FRDS63T2-DeJ6boVB.js} +1 -1
  2. package/dist/app/assets/{Colors.stories-BYTBLsDR.js → Colors.stories-GBcoNXc7.js} +3 -3
  3. package/dist/app/assets/{DocsRenderer-LL677BLK-DT0XE5RB.js → DocsRenderer-LL677BLK-P1omigwk.js} +71 -71
  4. package/dist/app/assets/{Grid.stories-B3nKsUwh.js → Grid.stories-DoLbqWtw.js} +23 -2
  5. package/dist/app/assets/PzAccordion-B8uG5LU8.js +1 -0
  6. package/dist/app/assets/{PzAccordion.stories-cOAYUrCJ.js → PzAccordion.stories-CzEbkA1U.js} +2 -2
  7. package/dist/app/assets/PzAccordionTable.stories-CWSrb6Rz.js +275 -0
  8. package/dist/app/assets/{PzArrayClamp.stories-Btd9xMHi.js → PzArrayClamp.stories-DXt6cxXy.js} +4 -4
  9. package/dist/app/assets/{PzBreadcrumb.stories-D54RjRCg.js → PzBreadcrumb.stories-BYy2AFV5.js} +5 -5
  10. package/dist/app/assets/PzBtn-lJz7FmKO.js +1 -0
  11. package/dist/app/assets/{PzBtn.stories-xnSEsakq.js → PzBtn.stories-u2aA2xzz.js} +2 -2
  12. package/dist/app/assets/PzCheckbox-xcF_sDjQ.js +1 -0
  13. package/dist/app/assets/{PzCheckbox.stories-RN07sGno.js → PzCheckbox.stories-DeiqBONq.js} +4 -4
  14. package/dist/app/assets/{PzCheckboxGroup.stories-KogRihCz.js → PzCheckboxGroup.stories-Dc1lNYrg.js} +3 -3
  15. package/dist/app/assets/PzClamp-0zNrPrFL.css +1 -0
  16. package/dist/app/assets/PzClamp.stories-ChyM4wQP.js +1 -0
  17. package/dist/app/assets/PzCopyToClipboard-DYvP-lFq.css +1 -0
  18. package/dist/app/assets/PzCopyToClipboard.stories-BvTs8-Qo.js +45 -0
  19. package/dist/app/assets/PzDate-DzxkQx_5.css +1 -0
  20. package/dist/app/assets/PzDate.stories-CbNYXli-.js +116 -0
  21. package/dist/app/assets/{PzDomHandler.stories-DAp97pdG.js → PzDomHandler.stories-CNFqxouB.js} +3 -3
  22. package/dist/app/assets/{PzDropdown.stories-eClrzbYq.js → PzDropdown.stories-BIwEAqmm.js} +3 -3
  23. package/dist/app/assets/{PzFileInput.stories-Dg6-KAun.js → PzFileInput.stories-B4xxW_sF.js} +4 -4
  24. package/dist/app/assets/{PzGrid.stories-DLm_q1Lw.js → PzGrid.stories-DIiTYcYP.js} +3 -3
  25. package/dist/app/assets/PzHint-Djl4-X3l.js +1 -0
  26. package/dist/app/assets/{PzHint.stories-C2oiTVIN.js → PzHint.stories-DqZpSfmZ.js} +2 -2
  27. package/dist/app/assets/{PzIcon-DTWQGv5c.js → PzIcon-BNwLASSZ.js} +1 -1
  28. package/dist/app/assets/{PzIcon.stories-CT6OA9PM.js → PzIcon.stories-CPbH32o0.js} +2 -2
  29. package/dist/app/assets/{PzImage.stories-BJL_3ef9.js → PzImage.stories-DaDmEHw0.js} +3 -3
  30. package/dist/app/assets/{PzImageInput.stories-CTksIxMS.js → PzImageInput.stories-CqBH8e63.js} +4 -4
  31. package/dist/app/assets/{PzInfoBlockLayout.stories-BBkiY-o7.js → PzInfoBlockLayout.stories-9CCtPFO-.js} +3 -3
  32. package/dist/app/assets/PzInfoHint-CbH3ypH1.js +1 -0
  33. package/dist/app/assets/{PzInfoHint.stories-6f6FePkY.js → PzInfoHint.stories-jwokRQkS.js} +3 -3
  34. package/dist/app/assets/{PzInput.stories-Bm_5Kj-P.js → PzInput.stories-BINq-o4I.js} +3 -3
  35. package/dist/app/assets/{PzInputDate.stories-Ccqq1p1p.js → PzInputDate.stories-CCdrBEY7.js} +3 -3
  36. package/dist/app/assets/{PzInputNumber.stories-DAQYW2cJ.js → PzInputNumber.stories-I4-WO1id.js} +3 -3
  37. package/dist/app/assets/{PzKeyValue.stories-BrV9VQaC.js → PzKeyValue.stories-DtyWU98t.js} +4 -4
  38. package/dist/app/assets/PzLabel-Coa549nk.js +1 -0
  39. package/dist/app/assets/{PzLabel.stories-DvN_0fOj.js → PzLabel.stories-DMxqqqgC.js} +3 -3
  40. package/dist/app/assets/PzLink-BlhtooDh.js +1 -0
  41. package/dist/app/assets/{PzLink.stories-BnY0IvI7.js → PzLink.stories-Cc_7lCaq.js} +2 -2
  42. package/dist/app/assets/PzListNav-DRMKw6wp.css +1 -0
  43. package/dist/app/assets/PzListNav.stories-BTZ7YDz-.js +37 -0
  44. package/dist/app/assets/PzLoader-J7_Govh3.css +1 -0
  45. package/dist/app/assets/PzLoader.stories-4iPgw47o.js +9 -0
  46. package/dist/app/assets/{PzModal.stories-Bq5YuGJo.js → PzModal.stories-COv27-JY.js} +4 -4
  47. package/dist/app/assets/PzMultiSelect-DeX8aBEQ.css +1 -0
  48. package/dist/app/assets/PzMultiSelect.stories-DqKbYF9e.js +453 -0
  49. package/dist/app/assets/{PzNav.stories-5KiqcPrd.js → PzNav.stories-8SxncW0m.js} +2 -2
  50. package/dist/app/assets/{PzNumberFormat.stories-QyheTXgc.js → PzNumberFormat.stories-CDG6_Sk8.js} +2 -2
  51. package/dist/app/assets/PzPagination-D9MVz0_M.js +1 -0
  52. package/dist/app/assets/PzPagination-k9D0Hxrx.css +1 -0
  53. package/dist/app/assets/{PzPagination-07CphuYh.css → PzPagination-ohvV8gN-.css} +1 -1
  54. package/dist/app/assets/PzPagination.stories-DNvwL2lG.js +83 -0
  55. package/dist/app/assets/{PzPriceFormat.stories-Clj4FRWT.js → PzPriceFormat.stories-C-p8Sb5s.js} +2 -2
  56. package/dist/app/assets/{PzRadioGroup.stories-o8HE47Hq.js → PzRadioGroup.stories-DC2poHLC.js} +3 -3
  57. package/dist/app/assets/{PzRouterLink.stories-Dc_EnCBz.js → PzRouterLink.stories-DzGN2JP5.js} +2 -2
  58. package/dist/app/assets/{PzScrollTo.stories-4BSDyJ2p.js → PzScrollTo.stories-Bx37NsA6.js} +2 -2
  59. package/dist/app/assets/{PzSearchResultItemLayout.stories-QRI-A0Zi.js → PzSearchResultItemLayout.stories-vkVys3LL.js} +3 -3
  60. package/dist/app/assets/PzSelect-BwhRsTZd.css +1 -0
  61. package/dist/app/assets/PzSelect-CrTXtlds.js +1 -0
  62. package/dist/app/assets/PzSelect-Del6HRlD.css +1 -0
  63. package/dist/app/assets/PzSelect.stories-5MWUfKeM.js +292 -0
  64. package/dist/app/assets/PzSkeleton-Fcc0OCQj.js +1 -0
  65. package/dist/app/assets/{PzSkeleton.stories-Djp-bBqZ.js → PzSkeleton.stories-q1l5sP1S.js} +2 -2
  66. package/dist/app/assets/PzStatus-cmEVvisl.js +1 -0
  67. package/dist/app/assets/{PzStatus.stories-BZ2XwRJs.js → PzStatus.stories-CkZ6lYqY.js} +2 -2
  68. package/dist/app/assets/PzTable-wM00v3b7.js +1 -0
  69. package/dist/app/assets/{PzTable.stories-C76ZN_A5.js → PzTable.stories-CGODSdZ2.js} +3 -3
  70. package/dist/app/assets/{PzTabs.stories-DHf6EZU7.js → PzTabs.stories-C5h0sXNa.js} +5 -5
  71. package/dist/app/assets/PzTag-9D_K2A9q.js +1 -0
  72. package/dist/app/assets/{PzTag.stories-BIrmr98f.js → PzTag.stories-E9YuXCey.js} +2 -2
  73. package/dist/app/assets/PzText-LkAZaPCW.js +1 -0
  74. package/dist/app/assets/{PzText.stories-Cr6TBVe6.js → PzText.stories-DICYEnSM.js} +8 -8
  75. package/dist/app/assets/PzTextClamp.stories-BveyeWba.js +149 -0
  76. package/dist/app/assets/{PzTextarea.stories--ghqzz2f.js → PzTextarea.stories-BtHMdHUF.js} +3 -3
  77. package/dist/app/assets/{PzValidatorXSS.stories-zCaJ6Q__.js → PzValidatorXSS.stories-B7ussB1u.js} +3 -3
  78. package/dist/app/assets/{Spacing-B5TnfKCB.css → Spacing-DDiZ9XB6.css} +1 -1
  79. package/dist/app/assets/{Spacing.stories-Dzeg7Tfn.js → Spacing.stories-IeHBLcii.js} +29 -2
  80. package/dist/app/assets/Typography.stories-DigE2FGD.js +47 -0
  81. package/dist/app/assets/{WithTooltip-65CFNBJE-C0efi5Yj.js → WithTooltip-65CFNBJE-CARy1qAy.js} +2 -2
  82. package/dist/app/assets/_plugin-vue_export-helper-DlAUqK2U.js +1 -0
  83. package/dist/app/assets/floating-vue-B4YMiR3n.js +1 -0
  84. package/dist/app/assets/floating-vue-BXOYXd0R.js +1 -0
  85. package/dist/app/assets/{formatter-EIJCOSYU-Noau93iy.js → formatter-EIJCOSYU-AVmvplX0.js} +1 -1
  86. package/dist/app/assets/iframe-4qk0Ss25.css +1 -0
  87. package/dist/app/assets/{iframe-Ckq2fQkL.js → iframe-DbWuH5mz.js} +134 -134
  88. package/dist/app/assets/index-LkANHSb5.js +1 -0
  89. package/dist/app/assets/{syntaxhighlighter-OH4MV7E3-ByOORGJm.js → syntaxhighlighter-OH4MV7E3-DKud-BAu.js} +3 -3
  90. package/dist/app/assets/text-clamp.esm-BLa2P3lJ.js +1 -0
  91. package/dist/app/iframe.html +81 -76
  92. package/dist/app/index.json +1 -1
  93. package/dist/app/project.json +1 -1
  94. package/dist/app/sb-manager/globals-runtime.js +1 -1
  95. package/dist/components/Actions/PzCopyToClipboard/PzCopyToClipboard.vue.d.ts +33 -0
  96. package/dist/components/Actions/PzCopyToClipboard/index.d.ts +2 -0
  97. package/dist/components/Actions/PzCopyToClipboard/types.d.ts +17 -0
  98. package/dist/components/Actions/PzLink/configs.d.ts +1 -1
  99. package/dist/components/Display/PzClamp/PzClamp.vue.d.ts +8 -0
  100. package/dist/components/Display/PzClamp/index.d.ts +2 -0
  101. package/dist/components/Display/PzClamp/types.d.ts +7 -0
  102. package/dist/components/Display/PzDate/PzDate.vue.d.ts +5 -0
  103. package/dist/components/Display/PzDate/index.d.ts +2 -0
  104. package/dist/components/Display/PzDate/types.d.ts +5 -0
  105. package/dist/components/Display/PzLoader/PzLoader.vue.d.ts +7 -0
  106. package/dist/components/Display/PzLoader/index.d.ts +2 -0
  107. package/dist/components/Display/PzLoader/types.d.ts +6 -0
  108. package/dist/components/Form/PzInput/PzInput.vue.d.ts +1 -1
  109. package/dist/components/Form/PzMultiSelect/PzMultiSelect.vue.d.ts +44 -0
  110. package/dist/components/Form/PzMultiSelect/constants.d.ts +1 -0
  111. package/dist/components/Form/PzMultiSelect/index.d.ts +2 -0
  112. package/dist/components/Form/PzMultiSelect/types.d.ts +22 -0
  113. package/dist/components/Form/PzSelect/PzSelect.vue.d.ts +42 -0
  114. package/dist/components/Form/PzSelect/configs.d.ts +1 -0
  115. package/dist/components/Form/PzSelect/constants.d.ts +1 -0
  116. package/dist/components/Form/PzSelect/index.d.ts +2 -0
  117. package/dist/components/Form/PzSelect/types.d.ts +22 -0
  118. package/dist/components/Form/shared/types.d.ts +7 -0
  119. package/dist/components/Navigation/PzListNav/PzListNav.vue.d.ts +15 -0
  120. package/dist/components/Navigation/PzListNav/index.d.ts +4 -0
  121. package/dist/components/Navigation/PzListNav/types.d.ts +9 -0
  122. package/dist/components/Navigation/shared/configs.d.ts +2 -0
  123. package/dist/components/Navigation/shared/constants.d.ts +8 -0
  124. package/dist/components/Popups/PzHint/PzHint.vue.d.ts +1 -1
  125. package/dist/components/Popups/PzInfoHint/PzInfoHint.vue.d.ts +1 -1
  126. package/dist/components/Popups/PzModal/PzModal.vue.d.ts +1 -1
  127. package/dist/components/Text/PzArrayClamp/PzArrayClamp.vue.d.ts +1 -1
  128. package/dist/components/Text/PzTextClamp/PzTextClamp.vue.d.ts +3 -3
  129. package/dist/index.d.ts +7 -0
  130. package/dist/package.json +1 -1
  131. package/dist/prozorro-ui.cjs +15 -15
  132. package/dist/prozorro-ui.js +8605 -7885
  133. package/dist/style.css +1 -1
  134. package/package.json +1 -1
  135. package/src/styles/_spacing.scss +30 -4
  136. package/dist/app/assets/PzAccordion-CTihyZc5.js +0 -1
  137. package/dist/app/assets/PzAccordionTable.stories-CVSn3lrC.js +0 -275
  138. package/dist/app/assets/PzBtn-Bz2NPCiD.js +0 -1
  139. package/dist/app/assets/PzCheckbox-DDIj_TyE.js +0 -1
  140. package/dist/app/assets/PzHint-BhuDfy-l.js +0 -1
  141. package/dist/app/assets/PzInfoHint-C-UyP8PR.js +0 -1
  142. package/dist/app/assets/PzLabel-jmQOAHGo.js +0 -1
  143. package/dist/app/assets/PzLink-CwtmibRx.js +0 -1
  144. package/dist/app/assets/PzPagination.stories-D_qRevIg.js +0 -83
  145. package/dist/app/assets/PzSkeleton-BMyhdGXq.js +0 -1
  146. package/dist/app/assets/PzStatus-rctea0Gb.js +0 -1
  147. package/dist/app/assets/PzTable-CzfehTN7.js +0 -1
  148. package/dist/app/assets/PzTag-DudHfisQ.js +0 -1
  149. package/dist/app/assets/PzText-BOcxbzaG.js +0 -1
  150. package/dist/app/assets/PzTextClamp.stories-CR0IRYLS.js +0 -149
  151. package/dist/app/assets/Typography.stories-GZEYS8Ny.js +0 -47
  152. package/dist/app/assets/floating-vue-D0dcONsr.js +0 -1
  153. package/dist/app/assets/iframe-B97zFSkg.css +0 -1
@@ -1,4 +1,4 @@
1
- import{P as T}from"./PzLink-CwtmibRx.js";import{P}from"./PzTag-DudHfisQ.js";import{P as l}from"./PzText-BOcxbzaG.js";import{P as a,a as i}from"./PzTable-CzfehTN7.js";import"./iframe-Ckq2fQkL.js";import"./preload-helper-C1FmrZbK.js";import"./lodash-CdDiHlzQ.js";import"./_commonjsHelpers-Cpj98o6Y.js";import"./PzInfoHint-C-UyP8PR.js";import"./PzIcon-DTWQGv5c.js";import"./PzHint-BhuDfy-l.js";import"./floating-vue-D0dcONsr.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>
1
+ import{P as T}from"./PzLink-BlhtooDh.js";import{P}from"./PzTag-9D_K2A9q.js";import{P as l}from"./PzText-LkAZaPCW.js";import{P as a,a as i}from"./PzTable-wM00v3b7.js";import"./iframe-DbWuH5mz.js";import"./preload-helper-C1FmrZbK.js";import"./_plugin-vue_export-helper-DlAUqK2U.js";import"./lodash-CdDiHlzQ.js";import"./_commonjsHelpers-Cpj98o6Y.js";import"./PzInfoHint-CbH3ypH1.js";import"./PzIcon-BNwLASSZ.js";import"./PzHint-Djl4-X3l.js";import"./floating-vue-B4YMiR3n.js";import"./floating-vue-BXOYXd0R.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>`,G={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:`
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 J=["Playground","ProcurementWithPrice","PaymentSchedule","CustomSlots"];export{r as CustomSlots,s as PaymentSchedule,n as Playground,o as ProcurementWithPrice,J as __namedExportsOrder,G as default};
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{_ as q,P as T}from"./PzText-BOcxbzaG.js";import{d as F,Y as f,w as Q,Z as Y,T as Z,N as G,$ as J,e as m,l as M,r as X,o as u,a0 as K,h as tt,p as _,F as at,s as st,n as et,f as w,W as nt,g as rt,t as pt,a1 as P}from"./iframe-Ckq2fQkL.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=F({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=X(!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}),Z(()=>o==null?void 0:o(n)),(z,mt)=>G((u(),m("div",it,[M(z.$slots,"default",{},void 0,!0)],512)),[[J,i.value]])}}),h=q(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=F({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:w(["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:w(["pz-tabs__item",{active:a.activeTab===n.name}]),onClick:z=>a.activeTab=n.name||""},pt(n.name),11,zt))),128))]),_("div",bt,[M(s.$slots,"default",{},void 0,!0)])],6))}}),l=q(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>
1
+ import{P as T}from"./PzText-LkAZaPCW.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,z as st,n as et,f as k,h as nt,g as rt,t as pt,a7 as P}from"./iframe-DbWuH5mz.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 k,S,E;b.parameters={...b.parameters,docs:{...(k=b.parameters)==null?void 0:k.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:`{
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,$;c.parameters={...c.parameters,docs:{...(N=c.parameters)==null?void 0:N.docs,source:{originalSource:`{
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
- }`,...($=(W=c.parameters)==null?void 0:W.docs)==null?void 0:$.source}}};var D,I,L;v.parameters={...v.parameters,docs:{...(D=v.parameters)==null?void 0:D.docs,source:{originalSource:`{
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 Tt=["Playground","ThreeTabs","DefaultSkin","ConstrainedWidth","Examples"];export{v as ConstrainedWidth,c as DefaultSkin,y as Examples,b as Playground,d as ThreeTabs,Tt as __namedExportsOrder,yt as default};
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,A as p,C as f,f as u,B as c,o as s,e as n,l as t,D as r,k as d}from"./iframe-DbWuH5mz.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-DTWQGv5c.js";import{P as g}from"./PzText-BOcxbzaG.js";import{P as o}from"./PzTag-DudHfisQ.js";import"./iframe-Ckq2fQkL.js";import"./preload-helper-C1FmrZbK.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?`
1
+ import{_ as c}from"./PzIcon-BNwLASSZ.js";import{P as g}from"./PzText-LkAZaPCW.js";import{P as o}from"./PzTag-9D_K2A9q.js";import"./iframe-DbWuH5mz.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 w=["Playground"];export{e as Playground,w as __namedExportsOrder,z as default};
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,A as r,f as d,B as p,g as i,C as u,o as m,l as c}from"./iframe-DbWuH5mz.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-BOcxbzaG.js";import"./iframe-Ckq2fQkL.js";import"./preload-helper-C1FmrZbK.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(" "),we={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>
1
+ import{P as R}from"./PzText-LkAZaPCW.js";import"./iframe-DbWuH5mz.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"}},d={name:"H4 Semibold",args:{variant:"h4-semibold",content:"Headline Semibold 4"}},i={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:`{
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;d.parameters={...d.parameters,docs:{...(I=d.parameters)==null?void 0:I.docs,source:{originalSource:`{
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=d.parameters)==null?void 0:M.docs)==null?void 0:q.source}}};var G,J,K;i.parameters={...i.parameters,docs:{...(G=i.parameters)==null?void 0:G.docs,source:{originalSource:`{
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=i.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:`{
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,ie,me;v.parameters={...v.parameters,docs:{...(de=v.parameters)==null?void 0:de.docs,source:{originalSource:`{
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=(ie=v.parameters)==null?void 0:ie.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:`{
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 Ae=["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,i as H4Bold,c as H4Regular,d as H4Semibold,v as Hint,h as LineThroughStory,x as LinkStory,B as SmallBold,S as SmallRegular,H as SmallSemibold,m as Subtitle,Ae as __namedExportsOrder,we as default};
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 _,A as k,C as S,u as N,o as u,l as B,e as A,t as E,L as O,f as q,D as R,r as V,w as $}from"./iframe-DbWuH5mz.js";import{P as T}from"./PzText-LkAZaPCW.js";import{y as I}from"./text-clamp.esm-BLa2P3lJ.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(),A("button",{key:0,type:"button",class:q(["pz-text-clamp__toggle",t.btnClass]),"aria-expanded":l,onClick:O(m,["stop"])},E(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,L as P,e as n,q as _,j as T,y as M,f as x,M as b,o as d,N as S,p as B,Q as $,t as u,m as z,g as N,r as l,w as k}from"./iframe-Ckq2fQkL.js";import{_ as C,P as I}from"./PzText-BOcxbzaG.js";import{P as j}from"./PzLabel-jmQOAHGo.js";import"./preload-helper-C1FmrZbK.js";const F={key:0,class:"pz-textarea-wrap"},D=["id","placeholder","disabled","maxlength","required","rows"],L={key:0,class:"pz-textarea-counter"},A=["id"],E={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:r}){const a=e,i=r,o=P(e,"modelValue"),m=N(()=>o.value.length);return(f,t)=>(d(),n("div",{class:x(["pz-textarea",{error:!!a.errorMessage,disabled:a.disabled}])},[_(M(j),{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,D),[[$,o.value]]),a.counted?(d(),n("span",L,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,A)),a.errorMessage?(d(),n("span",E,u(a.errorMessage),1)):z("",!0)]),_:1},8,["label","for","required","disabled"])],2))}}),v=C(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>
1
+ import{d as q,W as P,e as n,y as _,C as T,u as M,f as x,X as b,o as d,Y as S,k as B,$,t as u,D as z,g as k,r,w as C}from"./iframe-DbWuH5mz.js";import{P as N}from"./PzText-LkAZaPCW.js";import{P as I}from"./PzLabel-Coa549nk.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,r)=>O(r.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:I},setup(){const r=l(e.modelValue??""),a=l("Спiльне значення для двох текстових полiв."),i=l(""),o=l(""),m=l("Короткий опис для прикладу лiчильника."),f=l("Текст, який потребує перевiрки."),t=l(`Перший рядок.
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:N},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=l("Просимо детально описати контекст звернення.");return k(()=>e.modelValue,g=>{r.value=g??""}),{args:e,value:r,sharedValue:a,defaultValue:i,requiredValue:o,countedValue:m,errorValue:f,previewValue:t,patternValue:s}},template:`
8
+ Третiй рядок.`),s=r("Просимо детально описати контекст звернення.");return C(()=>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>
@@ -1,4 +1,4 @@
1
- import{r as c,g as z}from"./iframe-Ckq2fQkL.js";import{P as u}from"./PzText-BOcxbzaG.js";import"./preload-helper-C1FmrZbK.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">
1
+ import{r as c,g as z}from"./iframe-DbWuH5mz.js";import{P as u}from"./PzText-LkAZaPCW.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'] })"}],b={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:`
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 _=["Documentation"];export{r as Documentation,_ as __namedExportsOrder,b as default};
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}}
@@ -1,4 +1,4 @@
1
- import{P as n}from"./PzText-BOcxbzaG.js";import"./iframe-Ckq2fQkL.js";import"./preload-helper-C1FmrZbK.js";const p=[{token:"4",value:"4px",variable:"--pz-space-4",utility:"pz-m-4 / pz-p-4",note:"Gap between a title and its supporting text."},{token:"8",value:"8px",variable:"--pz-space-8",utility:"pz-m-8 / pz-p-8",note:"Gap between dependent text rows."},{token:"16",value:"16px",variable:"--pz-space-16",utility:"pz-m-16 / pz-p-16",note:"Spacing for title blocks, table content, and link groups."},{token:"20",value:"20px",variable:"--pz-space-20",utility:"pz-m-20 / pz-p-20",note:"Gap between equal elements."},{token:"24",value:"24px",variable:"--pz-space-24",utility:"pz-m-24 / pz-p-24",note:"Spacing for docs, dividers, and tab padding."},{token:"32",value:"32px",variable:"--pz-space-32",utility:"pz-m-32 / pz-p-32",note:"Inset from content to nested background edges."},{token:"40",value:"40px",variable:"--pz-space-40",utility:"pz-m-40 / pz-p-40",note:"Large inset inside nested content areas."},{token:"44",value:"44px",variable:"--pz-space-44",utility:"pz-m-44 / pz-p-44",note:"Gap between a header and content in cabinet layouts."},{token:"60",value:"60px",variable:"--pz-space-60",utility:"pz-m-60 / pz-p-60",note:"Gap between equal large blocks."}],s=[{title:"Margin utilities",note:"Outer spacing",items:[{name:".pz-m-*",description:"Margin on all sides."},{name:".pz-mt-* / .pz-mr-* / .pz-mb-* / .pz-ml-*",description:"Single-side margin utilities."},{name:".pz-mx-* / .pz-my-*",description:"Inline and block axis margin utilities."},{name:".pz-m-auto / .pz-mx-auto / .pz-my-auto",description:"Auto alignment helpers."}]},{title:"Padding utilities",note:"Inner spacing",items:[{name:".pz-p-*",description:"Padding on all sides."},{name:".pz-pt-* / .pz-pr-* / .pz-pb-* / .pz-pl-*",description:"Single-side padding utilities."},{name:".pz-px-* / .pz-py-*",description:"Inline and block axis padding utilities."}]}],d={title:"Foundation/Spacing",parameters:{prototype:{caption:"Spacing scale",note:"Spacing token and utility reference for margin and padding helpers."},docs:{description:{component:"Spacing foundation for `@prozorro/prozorro-ui`. The utility module emits `pz-m-*` and `pz-p-*` classes backed by the shared `--pz-space-*` token scale aligned with the visible Figma spacing board."}}},render:()=>({components:{pzText:n},setup(){return{spacingTokens:p,utilityGroups:s}},template:`
1
+ import{P as n}from"./PzText-LkAZaPCW.js";import"./iframe-DbWuH5mz.js";import"./preload-helper-C1FmrZbK.js";import"./_plugin-vue_export-helper-DlAUqK2U.js";const p=[{token:"4",value:"4px",variable:"--pz-space-4",utility:"pz-m-4 / pz-p-4",note:"Gap between a title and its supporting text."},{token:"8",value:"8px",variable:"--pz-space-8",utility:"pz-m-8 / pz-p-8",note:"Gap between dependent text rows."},{token:"16",value:"16px",variable:"--pz-space-16",utility:"pz-m-16 / pz-p-16",note:"Spacing for title blocks, table content, and link groups."},{token:"20",value:"20px",variable:"--pz-space-20",utility:"pz-m-20 / pz-p-20",note:"Gap between equal elements."},{token:"24",value:"24px",variable:"--pz-space-24",utility:"pz-m-24 / pz-p-24",note:"Spacing for docs, dividers, and tab padding."},{token:"32",value:"32px",variable:"--pz-space-32",utility:"pz-m-32 / pz-p-32",note:"Inset from content to nested background edges."},{token:"40",value:"40px",variable:"--pz-space-40",utility:"pz-m-40 / pz-p-40",note:"Large inset inside nested content areas."},{token:"44",value:"44px",variable:"--pz-space-44",utility:"pz-m-44 / pz-p-44",note:"Gap between a header and content in cabinet layouts."},{token:"60",value:"60px",variable:"--pz-space-60",utility:"pz-m-60 / pz-p-60",note:"Gap between equal large blocks."}],s=[{title:"Margin utilities",note:"Outer spacing",items:[{name:".pz-m-*",description:"Margin on all sides."},{name:".pz-mt-* / .pz-mr-* / .pz-mb-* / .pz-ml-*",description:"Single-side margin utilities."},{name:".pz-mx-* / .pz-my-*",description:"Inline and block axis margin utilities."},{name:".pz-m-auto / .pz-mx-auto / .pz-my-auto",description:"Auto alignment helpers."}]},{title:"Padding utilities",note:"Inner spacing",items:[{name:".pz-p-*",description:"Padding on all sides."},{name:".pz-pt-* / .pz-pr-* / .pz-pb-* / .pz-pl-*",description:"Single-side padding utilities."},{name:".pz-px-* / .pz-py-*",description:"Inline and block axis padding utilities."}]}],o=[{name:"sm",prefix:".pz-{prop}-sm-{value}",minWidth:"≥ 576px",description:"Small viewports and up."},{name:"md",prefix:".pz-{prop}-md-{value}",minWidth:"≥ 768px",description:"Tablet breakpoint and up."},{name:"lg",prefix:".pz-{prop}-lg-{value}",minWidth:"≥ 1024px",description:"Large viewports and up."},{name:"xl",prefix:".pz-{prop}-xl-{value}",minWidth:"≥ 1200px",description:"Desktop breakpoint and up."},{name:"xxl",prefix:".pz-{prop}-xxl-{value}",minWidth:"≥ 1400px",description:"Wide displays and up."}],u={title:"Foundation/Spacing",parameters:{prototype:{caption:"Spacing scale",note:"Spacing token and utility reference for margin and padding helpers."},docs:{description:{component:"Spacing foundation for `@prozorro/prozorro-ui`. The utility module emits `pz-m-*` and `pz-p-*` classes backed by the shared `--pz-space-*` token scale aligned with the visible Figma spacing board."}}},render:()=>({components:{pzText:n},setup(){return{spacingTokens:p,utilityGroups:s,spacingBreakpoints:o}},template:`
2
2
  <div class="spacing-foundation">
3
3
  <section class="spacing-foundation-board">
4
4
  <header class="spacing-foundation-hero">
@@ -81,6 +81,33 @@ import{P as n}from"./PzText-BOcxbzaG.js";import"./iframe-Ckq2fQkL.js";import"./p
81
81
  </div>
82
82
  </section>
83
83
 
84
+ <section class="spacing-foundation-section">
85
+ <div class="spacing-foundation-section-heading">
86
+ <pz-text variant="h4-bold">Responsive utilities</pz-text>
87
+ <pz-text variant="small-regular">
88
+ Breakpoint-prefixed overrides follow the same mobile-first model as the grid. Classes apply at the given minimum width and cascade upward.
89
+ </pz-text>
90
+ </div>
91
+
92
+ <pre class="spacing-foundation-code"><code>&lt;!-- base spacing, then override at lg and xxl --&gt;
93
+ &lt;div class="pz-p-16 pz-p-lg-24 pz-p-xxl-32"&gt;...&lt;/div&gt;
94
+
95
+ &lt;!-- tighter margin on mobile, looser on desktop --&gt;
96
+ &lt;div class="pz-mb-8 pz-mb-md-16 pz-mb-xl-24"&gt;...&lt;/div&gt;</code></pre>
97
+
98
+ <div class="spacing-foundation-bp-table">
99
+ <div class="spacing-foundation-head">Prefix pattern</div>
100
+ <div class="spacing-foundation-head">Min-width</div>
101
+ <div class="spacing-foundation-head">Description</div>
102
+
103
+ <template v-for="bp in spacingBreakpoints" :key="bp.name">
104
+ <div class="spacing-foundation-cell spacing-foundation-cell-code"><code>{{ bp.prefix }}</code></div>
105
+ <div class="spacing-foundation-cell"><pz-text variant="small-bold">{{ bp.minWidth }}</pz-text></div>
106
+ <div class="spacing-foundation-cell"><pz-text variant="body-regular">{{ bp.description }}</pz-text></div>
107
+ </template>
108
+ </div>
109
+ </section>
110
+
84
111
  <section class="spacing-foundation-section">
85
112
  <div class="spacing-foundation-section-heading">
86
113
  <pz-text variant="h4-bold">Live preview</pz-text>
@@ -124,4 +151,4 @@ import{P as n}from"./PzText-BOcxbzaG.js";import"./iframe-Ckq2fQkL.js";import"./p
124
151
  </div>
125
152
  `})},e={name:"Reference"};var i,a,t;e.parameters={...e.parameters,docs:{...(i=e.parameters)==null?void 0:i.docs,source:{originalSource:`{
126
153
  name: "Reference"
127
- }`,...(t=(a=e.parameters)==null?void 0:a.docs)==null?void 0:t.source}}};const r=["Reference"];export{e as Reference,r as __namedExportsOrder,d as default};
154
+ }`,...(t=(a=e.parameters)==null?void 0:a.docs)==null?void 0:t.source}}};const v=["Reference"];export{e as Reference,v as __namedExportsOrder,u as default};
@@ -0,0 +1,47 @@
1
+ import{P as p}from"./PzText-LkAZaPCW.js";import"./iframe-DbWuH5mz.js";import"./preload-helper-C1FmrZbK.js";import"./_plugin-vue_export-helper-DlAUqK2U.js";const a=[{variant:"h1-bold",label:"Headline Bold 1",spec:"44px / 700 / 1.5"},{variant:"h1-regular",label:"Headline Regular 1",spec:"44px / 400 / 1.5"},{variant:"h2-bold",label:"Headline Bold 2",spec:"32px / 700 / 1.5"},{variant:"h3-bold",label:"Headline Bold 3",spec:"24px / 700 / 1.5"},{variant:"h3-regular",label:"Headline Regular 3",spec:"24px / 400 / 1.5"},{variant:"h4-regular",label:"Headline Regular 4",spec:"18px / 400 / 1.5"},{variant:"h4-semibold",label:"Headline Semibold 4",spec:"18px / 600 / 1.5"},{variant:"h4-bold",label:"Headline Bold 4",spec:"18px / 700 / 1.5"},{variant:"subtitle",label:"Subtitle",spec:"16px / 600 / 1.5"},{variant:"body-regular",label:"Body text regular",spec:"14px / 400 / 1.5"},{variant:"body-semibold",label:"Body text semibold",spec:"14px / 600 / 1.5"},{variant:"body-bold",label:"Body text bold",spec:"14px / 700 / 1.5"},{variant:"capitalized",label:"Capitalized text",spec:"14px / 400 / uppercase"},{variant:"hint",label:"Hint text",spec:"14px / 400 / muted"},{variant:"line-through",label:"Archived value",spec:"14px / 400 / strike"},{variant:"small-regular",label:"Small text regular",spec:"12px / 400 / 1.5"},{variant:"small-semibold",label:"Small text semibold",spec:"12px / 600 / 1.5"},{variant:"small-bold",label:"Small text bold",spec:"12px / 700 / 1.5"},{variant:"link",label:"Review procurement details",spec:"14px / 400 / underline"},{variant:"document",label:"Document text",spec:"14px / 400 / default"}],t=8,r=15,n=[{title:"Headlines",description:"Primary hierarchy for pages, sections and table headers.",items:a.slice(0,t)},{title:"Reading text",description:"Core editorial styles for descriptions, summaries and UI copy.",items:a.slice(t,r)},{title:"Utility styles",description:"Compact text styles for metadata, helpers and document references.",items:a.slice(r)}],x={title:"Foundation/Typography",parameters:{prototype:{caption:"Typography reference",note:"Foundation board for validating hierarchy, weight, and text semantics against the shared design-system scale."},docs:{description:{component:"Typography foundation reference. Use this page to review the full type scale and variant grouping; use `Components/Text/PzText` for the component API."}}},args:{variant:"body-regular",content:"Every procurement notice should stay readable across dense interfaces and long-form content."},render:o=>({components:{pzText:p},setup(){return{args:o,typographyReferenceGroups:n}},template:`
2
+ <div class="pz-text-board">
3
+ <section class="pz-text-board-hero">
4
+ <div class="pz-text-board-hero-copy">
5
+ <span class="pz-text-board-eyebrow">Design system / Typography</span>
6
+ <h1 class="pz-text-board-title">Readable hierarchy for procurement interfaces</h1>
7
+ <p class="pz-text-board-description">
8
+ The board below mirrors a Figma-style specimen page: one live editable preview, followed by grouped text tokens with their size and weight metadata.
9
+ </p>
10
+ </div>
11
+
12
+ <div class="pz-text-board-hero-preview">
13
+ <span class="pz-text-board-chip">Interactive sample</span>
14
+ <pz-text :variant="args.variant" :as="args.as">{{ args.content }}</pz-text>
15
+ </div>
16
+ </section>
17
+
18
+ <section
19
+ v-for="group in typographyReferenceGroups"
20
+ :key="group.title"
21
+ class="pz-text-board-group"
22
+ >
23
+ <header class="pz-text-board-group-header">
24
+ <div>
25
+ <span class="pz-text-board-group-kicker">{{ group.title }}</span>
26
+ <h2 class="pz-text-board-group-title">{{ group.description }}</h2>
27
+ </div>
28
+ </header>
29
+
30
+ <div class="pz-text-board-grid">
31
+ <article
32
+ v-for="sample in group.items"
33
+ :key="sample.variant"
34
+ class="pz-text-board-card"
35
+ >
36
+ <div class="pz-text-board-meta">
37
+ <span class="pz-text-board-variant">{{ sample.variant }}</span>
38
+ <span class="pz-text-board-spec">{{ sample.spec }}</span>
39
+ </div>
40
+ <pz-text :variant="sample.variant">{{ sample.label }}</pz-text>
41
+ </article>
42
+ </div>
43
+ </section>
44
+ </div>
45
+ `})},e={name:"Reference"};var s,l,i;e.parameters={...e.parameters,docs:{...(s=e.parameters)==null?void 0:s.docs,source:{originalSource:`{
46
+ name: "Reference"
47
+ }`,...(i=(l=e.parameters)==null?void 0:l.docs)==null?void 0:i.source}}};const u=["Reference"];export{e as Reference,u as __namedExportsOrder,x as default};