@prozorro/prozorro-ui 0.0.5 → 0.0.7-beta
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/app/assets/{Color-FRDS63T2-Bo-vvTV8.js → Color-FRDS63T2-D7DceWd3.js} +1 -1
- package/dist/app/assets/Colors-fhEnNkJK.css +1 -0
- package/dist/app/assets/Colors.stories-oSXYJENR.js +106 -0
- package/dist/app/assets/{DocsRenderer-LL677BLK-DxB60yOs.js → DocsRenderer-LL677BLK-CSnojeph.js} +9 -9
- package/dist/app/assets/Grid-B7NVrFKF.css +1 -0
- package/dist/app/assets/Grid.stories-Bs3kySs1.js +150 -0
- package/dist/app/assets/PzGrid-DES6s5R0.css +1 -0
- package/dist/app/assets/PzGrid.stories-DHYDe1eo.js +174 -0
- package/dist/app/assets/PzIcon-CyZkl7-f.css +1 -0
- package/dist/app/assets/PzIcon.stories-DnSfvny_.js +63 -0
- package/dist/app/assets/PzImage-BNrbMHP9.css +1 -0
- package/dist/app/assets/PzImage.stories-3xf5vq8I.js +57 -0
- package/dist/app/assets/PzText-B1cefxtz.js +1 -0
- package/dist/app/assets/PzText-DsC8c6AJ.css +1 -0
- package/dist/app/assets/PzText.stories-BFfwzgRO.js +133 -0
- package/dist/app/assets/Spacing-B5TnfKCB.css +1 -0
- package/dist/app/assets/Spacing.stories-DhCjLNK2.js +127 -0
- package/dist/app/assets/Typography-Bgal0fkk.css +1 -0
- package/dist/app/assets/Typography.stories-CSj6NWZS.js +47 -0
- package/dist/app/assets/{WithTooltip-65CFNBJE-Ty2foy7t.js → WithTooltip-65CFNBJE-CXtzAlgs.js} +1 -1
- package/dist/app/assets/formatter-EIJCOSYU-BiTxXm4h.js +1 -0
- package/dist/app/assets/{iframe-B_iz38fI.js → iframe-AHEBgGuT.js} +132 -132
- package/dist/app/assets/iframe-C7ls-B1-.css +1 -0
- package/dist/app/assets/{syntaxhighlighter-OH4MV7E3-Can2sBRZ.js → syntaxhighlighter-OH4MV7E3-C5g7sJvt.js} +1 -1
- package/dist/app/favicon.ico +0 -0
- package/dist/app/iframe.html +3 -3
- package/dist/app/index.html +6 -2
- package/dist/app/index.json +1 -1
- package/dist/app/project.json +1 -1
- package/dist/app/sb-addons/storybook-2/manager-bundle.js +3 -0
- package/dist/app/sb-manager/globals-runtime.js +1 -1
- package/dist/components/PzGrid/PzGrid.vue.d.ts +25 -0
- package/dist/components/PzGrid/PzGridItem.vue.d.ts +32 -0
- package/dist/components/PzGrid/configs.d.ts +2 -0
- package/dist/components/PzGrid/index.d.ts +3 -0
- package/dist/components/PzGrid/types.d.ts +26 -0
- package/dist/components/PzIcon/PzIcon.vue.d.ts +7 -0
- package/dist/components/PzIcon/configs.d.ts +2 -0
- package/dist/components/PzIcon/index.d.ts +2 -0
- package/dist/components/PzIcon/types.d.ts +9 -0
- package/dist/components/PzImage/PzImage.vue.d.ts +7 -0
- package/dist/components/PzImage/configs.d.ts +3 -0
- package/dist/components/PzImage/index.d.ts +2 -0
- package/dist/components/PzImage/types.d.ts +10 -0
- package/dist/components/PzText/configs.d.ts +2 -0
- package/dist/components/PzText/types.d.ts +1 -1
- package/dist/favicon.ico +0 -0
- package/dist/index.d.ts +3 -0
- package/dist/package.json +3 -2
- package/dist/prozorro-ui.cjs +1 -1
- package/dist/prozorro-ui.js +141 -16
- package/dist/style.css +1 -1
- package/package.json +3 -2
- package/src/styles/_colors.scss +90 -0
- package/src/styles/_grid.scss +69 -0
- package/src/styles/_reset.scss +2 -2
- package/src/styles/_spacing.scss +56 -0
- package/src/styles/abstract/_mixins.scss +17 -1
- package/src/styles/abstract/_typography.scss +33 -33
- package/src/styles/abstract/_variables.scss +145 -54
- package/src/styles/main.scss +3 -0
- package/src/styles/vendors/_google-material-icons.scss +6 -3
- package/dist/app/assets/PzText-H75Z6Lud.css +0 -1
- package/dist/app/assets/PzText.stories-pNLs8FlM.js +0 -239
- package/dist/app/assets/formatter-EIJCOSYU-oeR5mOii.js +0 -1
- package/dist/app/assets/iframe-CNIwQJJc.css +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.grid-foundation{display:grid}.grid-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)}.grid-foundation-hero{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(300px,.7fr);gap:20px}.grid-foundation-hero-copy,.grid-foundation-hero-note,.grid-foundation-section,.grid-foundation-spec-card,.grid-foundation-demo-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)}.grid-foundation-hero-copy,.grid-foundation-hero-note,.grid-foundation-section{padding:clamp(22px,2vw,30px)}.grid-foundation-hero-copy,.grid-foundation-hero-note,.grid-foundation-section-heading,.grid-foundation-spec-copy,.grid-foundation-demo-header{display:grid;gap:8px}.grid-foundation-kicker,.grid-foundation-chip,.grid-foundation-demo-meta{display:inline-flex;align-items:center;justify-content:center;width:fit-content;padding:8px 12px;border-radius:999px;font-size:11px;font-weight:700;line-height:1.3;letter-spacing:.12em;text-transform:uppercase}.grid-foundation-kicker,.grid-foundation-chip{background:color-mix(in srgb,var(--pz-color-blue-10) 92%,var(--pz-color-white));color:var(--pz-color-text-link-hover)}.grid-foundation-demo-meta{background:color-mix(in srgb,var(--pz-color-grey-20) 92%,var(--pz-color-white));color:var(--pz-color-text-secondary)}.grid-foundation-section{display:grid;gap:18px}.grid-foundation-specs,.grid-foundation-demos{display:grid;gap:16px}.grid-foundation-specs{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-foundation-spec-card,.grid-foundation-demo-card{display:grid;gap:18px;padding:20px}.grid-foundation-spec-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 18px;margin:0}.grid-foundation-spec-list dt{margin:0 0 4px;font-size:11px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--pz-color-text-secondary)}.grid-foundation-spec-list dd{margin:0;font-size:16px;font-weight:700;line-height:1.5;color:var(--pz-color-text-primary)}.grid-foundation-demo-frame{display:grid;gap:var(--demo-gap);padding-inline:var(--demo-margin);width:min(100%,var(--demo-frame));margin-inline:auto}.grid-foundation-demo-mobile{--demo-columns: 4;--demo-gap: 16px;--demo-margin: 16px;--demo-frame: 375px}.grid-foundation-demo-tablet{--demo-columns: 8;--demo-gap: 24px;--demo-margin: 32px;--demo-frame: 768px}.grid-foundation-demo-desktop{--demo-columns: 12;--demo-gap: 24px;--demo-margin: 80px;--demo-frame: 100%}.grid-foundation-demo-frame{grid-template-columns:repeat(var(--demo-columns),minmax(0,1fr))}.grid-foundation-demo-column{display:flex;align-items:center;justify-content:center;min-height:164px;border-radius:16px;background:linear-gradient(180deg,color-mix(in srgb,var(--pz-color-blue-50) 16%,var(--pz-color-white)),color-mix(in srgb,var(--pz-color-blue-50) 8%,var(--pz-color-white)));box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--pz-color-blue-50) 18%,transparent)}.grid-foundation-demo-column span{color:var(--pz-color-text-link-hover);font-size:12px;font-weight:700;letter-spacing:.08em}.grid-foundation-table{display:grid;grid-template-columns:minmax(220px,320px) minmax(120px,160px) 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)}.grid-foundation-head,.grid-foundation-cell{padding:16px 18px}.grid-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}.grid-foundation-cell{display:flex;align-items:center;border-top:1px solid color-mix(in srgb,var(--pz-color-grey-30) 56%,transparent)}.grid-foundation-cell-code code,.grid-foundation-code code{color:var(--pz-color-text-primary);font-size:13px;line-height:1.6}.grid-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)))}@media (width <= 1200px){.grid-foundation-hero,.grid-foundation-specs{grid-template-columns:1fr}}@media (width <= 1024px){.grid-foundation-table{grid-template-columns:1fr}.grid-foundation-head{display:none}.grid-foundation-cell{border-top:none}}@media (width <= 640px){.grid-foundation-board,.grid-foundation-hero-copy,.grid-foundation-hero-note,.grid-foundation-section,.grid-foundation-spec-card,.grid-foundation-demo-card{padding:20px;border-radius:22px}.grid-foundation-spec-list{grid-template-columns:1fr}}
|
|
@@ -0,0 +1,150 @@
|
|
|
1
|
+
import{P as a}from"./PzText-B1cefxtz.js";import"./iframe-AHEBgGuT.js";import"./preload-helper-C1FmrZbK.js";const n=[{title:"Mobile",range:"< 768px",viewport:"375px frame",columns:4,gutter:"16px",margin:"16px",frame:"100%",className:"grid-foundation-demo-mobile"},{title:"Tablet",range:">= 768px",viewport:"768px frame",columns:8,gutter:"24px",margin:"32px",frame:"768px",className:"grid-foundation-demo-tablet"},{title:"Desktop",range:">= 1200px",viewport:"1440px frame",columns:12,gutter:"24px",margin:"80px",frame:"1440px",className:"grid-foundation-demo-desktop"}],d=[{name:".pz-container",type:"Layout",description:"Centered frame with responsive horizontal margins and a max width derived from grid tokens."},{name:".pz-container-fluid",type:"Layout",description:"Full-width container that keeps responsive side padding."},{name:".pz-grid",type:"Layout",description:"Responsive column grid using the active token set for columns and gutter."},{name:".pz-grid-fit",type:"Variant",description:"Auto-fit layout for equal cards when fixed column spans are not needed."},{name:".pz-col-1 ... .pz-col-12",type:"Span",description:"Column span utilities for the current layout context."},{name:".pz-col-md-* / .pz-col-xl-*",type:"Responsive span",description:"Breakpoint overrides for tablet and desktop layout changes."},{name:".pz-start-*",type:"Start",description:"Column start utilities for offset and alignment control."}],s=[{name:"@include pz-container",type:"Mixin",description:"Applies the container width and side padding contract inside component styles."},{name:"@include pz-grid",type:"Mixin",description:"Creates a grid that follows the active token-driven column and gap system."},{name:"@include pz-grid-span($span)",type:"Mixin",description:"Applies a specific column span without reaching for utility classes."}],p={title:"Foundation/Grid",parameters:{prototype:{caption:"Grid system",note:"Responsive layout foundation for containers, columns, spans, and offsets."},docs:{description:{component:"Grid system reference for `@prozorro/prozorro-ui`. The live Figma embed for node `14:221` was unavailable anonymously, so this implementation aligns the grid with the repository breakpoint model and documents the resulting library contract."}}},render:()=>({components:{pzText:a},setup(){return{breakpointSpecs:n,utilityRows:d,mixinRows:s}},template:`
|
|
2
|
+
<div class="grid-foundation">
|
|
3
|
+
<section class="grid-foundation-board">
|
|
4
|
+
<header class="grid-foundation-hero">
|
|
5
|
+
<div class="grid-foundation-hero-copy">
|
|
6
|
+
<span class="grid-foundation-kicker">Grid system</span>
|
|
7
|
+
<pz-text variant="h2-bold">Responsive frame, columns, and span utilities</pz-text>
|
|
8
|
+
<pz-text variant="body-regular">
|
|
9
|
+
The library now exposes a shared container and column grid so layout decisions are not duplicated inside stories and components.
|
|
10
|
+
</pz-text>
|
|
11
|
+
</div>
|
|
12
|
+
|
|
13
|
+
<div class="grid-foundation-hero-note">
|
|
14
|
+
<pz-text variant="small-bold">Implementation note</pz-text>
|
|
15
|
+
<pz-text variant="small-regular">
|
|
16
|
+
Figma node access was blocked in anonymous embed mode, so the published contract follows the repo breakpoint model: mobile, tablet, and desktop token sets.
|
|
17
|
+
</pz-text>
|
|
18
|
+
</div>
|
|
19
|
+
</header>
|
|
20
|
+
|
|
21
|
+
<section class="grid-foundation-section">
|
|
22
|
+
<div class="grid-foundation-section-heading">
|
|
23
|
+
<pz-text variant="h4-bold">Breakpoint contract</pz-text>
|
|
24
|
+
<pz-text variant="small-regular">Active token sets used by the library grid utilities.</pz-text>
|
|
25
|
+
</div>
|
|
26
|
+
|
|
27
|
+
<div class="grid-foundation-specs">
|
|
28
|
+
<article
|
|
29
|
+
v-for="spec in breakpointSpecs"
|
|
30
|
+
:key="spec.title"
|
|
31
|
+
class="grid-foundation-spec-card"
|
|
32
|
+
>
|
|
33
|
+
<div class="grid-foundation-spec-copy">
|
|
34
|
+
<span class="grid-foundation-chip">{{ spec.range }}</span>
|
|
35
|
+
<pz-text variant="h4-semibold">{{ spec.title }}</pz-text>
|
|
36
|
+
</div>
|
|
37
|
+
|
|
38
|
+
<dl class="grid-foundation-spec-list">
|
|
39
|
+
<div>
|
|
40
|
+
<dt>Viewport</dt>
|
|
41
|
+
<dd>{{ spec.viewport }}</dd>
|
|
42
|
+
</div>
|
|
43
|
+
<div>
|
|
44
|
+
<dt>Columns</dt>
|
|
45
|
+
<dd>{{ spec.columns }}</dd>
|
|
46
|
+
</div>
|
|
47
|
+
<div>
|
|
48
|
+
<dt>Gutter</dt>
|
|
49
|
+
<dd>{{ spec.gutter }}</dd>
|
|
50
|
+
</div>
|
|
51
|
+
<div>
|
|
52
|
+
<dt>Margin</dt>
|
|
53
|
+
<dd>{{ spec.margin }}</dd>
|
|
54
|
+
</div>
|
|
55
|
+
<div>
|
|
56
|
+
<dt>Frame</dt>
|
|
57
|
+
<dd>{{ spec.frame }}</dd>
|
|
58
|
+
</div>
|
|
59
|
+
</dl>
|
|
60
|
+
</article>
|
|
61
|
+
</div>
|
|
62
|
+
</section>
|
|
63
|
+
|
|
64
|
+
<section class="grid-foundation-section">
|
|
65
|
+
<div class="grid-foundation-section-heading">
|
|
66
|
+
<pz-text variant="h4-bold">Grid preview</pz-text>
|
|
67
|
+
<pz-text variant="small-regular">Static specimens for each token set.</pz-text>
|
|
68
|
+
</div>
|
|
69
|
+
|
|
70
|
+
<div class="grid-foundation-demos">
|
|
71
|
+
<article
|
|
72
|
+
v-for="spec in breakpointSpecs"
|
|
73
|
+
:key="spec.className"
|
|
74
|
+
class="grid-foundation-demo-card"
|
|
75
|
+
>
|
|
76
|
+
<div class="grid-foundation-demo-header">
|
|
77
|
+
<pz-text variant="body-semibold">{{ spec.title }}</pz-text>
|
|
78
|
+
<span class="grid-foundation-demo-meta">{{ spec.columns }} columns / {{ spec.gutter }} gap</span>
|
|
79
|
+
</div>
|
|
80
|
+
|
|
81
|
+
<div class="grid-foundation-demo-frame" :class="spec.className">
|
|
82
|
+
<div
|
|
83
|
+
v-for="column in spec.columns"
|
|
84
|
+
:key="spec.title + column"
|
|
85
|
+
class="grid-foundation-demo-column"
|
|
86
|
+
>
|
|
87
|
+
<span>{{ column }}</span>
|
|
88
|
+
</div>
|
|
89
|
+
</div>
|
|
90
|
+
</article>
|
|
91
|
+
</div>
|
|
92
|
+
</section>
|
|
93
|
+
|
|
94
|
+
<section class="grid-foundation-section">
|
|
95
|
+
<div class="grid-foundation-section-heading">
|
|
96
|
+
<pz-text variant="h4-bold">Layout utilities</pz-text>
|
|
97
|
+
<pz-text variant="small-regular">Public CSS classes emitted by the library stylesheet.</pz-text>
|
|
98
|
+
</div>
|
|
99
|
+
|
|
100
|
+
<div class="grid-foundation-table">
|
|
101
|
+
<div class="grid-foundation-head">API</div>
|
|
102
|
+
<div class="grid-foundation-head">Kind</div>
|
|
103
|
+
<div class="grid-foundation-head">Description</div>
|
|
104
|
+
|
|
105
|
+
<template v-for="row in utilityRows" :key="row.name">
|
|
106
|
+
<div class="grid-foundation-cell grid-foundation-cell-code"><code>{{ row.name }}</code></div>
|
|
107
|
+
<div class="grid-foundation-cell"><pz-text variant="small-bold">{{ row.type }}</pz-text></div>
|
|
108
|
+
<div class="grid-foundation-cell"><pz-text variant="body-regular">{{ row.description }}</pz-text></div>
|
|
109
|
+
</template>
|
|
110
|
+
</div>
|
|
111
|
+
</section>
|
|
112
|
+
|
|
113
|
+
<section class="grid-foundation-section">
|
|
114
|
+
<div class="grid-foundation-section-heading">
|
|
115
|
+
<pz-text variant="h4-bold">SCSS mixins</pz-text>
|
|
116
|
+
<pz-text variant="small-regular">Component-level API for authors working inside scoped styles.</pz-text>
|
|
117
|
+
</div>
|
|
118
|
+
|
|
119
|
+
<div class="grid-foundation-table">
|
|
120
|
+
<div class="grid-foundation-head">Mixin</div>
|
|
121
|
+
<div class="grid-foundation-head">Kind</div>
|
|
122
|
+
<div class="grid-foundation-head">Description</div>
|
|
123
|
+
|
|
124
|
+
<template v-for="row in mixinRows" :key="row.name">
|
|
125
|
+
<div class="grid-foundation-cell grid-foundation-cell-code"><code>{{ row.name }}</code></div>
|
|
126
|
+
<div class="grid-foundation-cell"><pz-text variant="small-bold">{{ row.type }}</pz-text></div>
|
|
127
|
+
<div class="grid-foundation-cell"><pz-text variant="body-regular">{{ row.description }}</pz-text></div>
|
|
128
|
+
</template>
|
|
129
|
+
</div>
|
|
130
|
+
</section>
|
|
131
|
+
|
|
132
|
+
<section class="grid-foundation-section">
|
|
133
|
+
<div class="grid-foundation-section-heading">
|
|
134
|
+
<pz-text variant="h4-bold">Usage example</pz-text>
|
|
135
|
+
<pz-text variant="small-regular">Default composition pattern for page and card layouts.</pz-text>
|
|
136
|
+
</div>
|
|
137
|
+
|
|
138
|
+
<pre class="grid-foundation-code"><code><section class="pz-container">
|
|
139
|
+
<div class="pz-grid">
|
|
140
|
+
<article class="pz-grid-item pz-col-4 pz-col-md-4 pz-col-xl-3">...</article>
|
|
141
|
+
<article class="pz-grid-item pz-col-4 pz-col-md-4 pz-col-xl-6">...</article>
|
|
142
|
+
<article class="pz-grid-item pz-col-4 pz-col-md-8 pz-col-xl-3">...</article>
|
|
143
|
+
</div>
|
|
144
|
+
</section></code></pre>
|
|
145
|
+
</section>
|
|
146
|
+
</section>
|
|
147
|
+
</div>
|
|
148
|
+
`})},e={name:"Reference"};var t,i,o;e.parameters={...e.parameters,docs:{...(t=e.parameters)==null?void 0:t.docs,source:{originalSource:`{
|
|
149
|
+
name: "Reference"
|
|
150
|
+
}`,...(o=(i=e.parameters)==null?void 0:i.docs)==null?void 0:o.source}}};const m=["Reference"];export{e as Reference,m as __namedExportsOrder,p as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.pz-grid-story{display:grid;gap:22px}.pz-grid-story-board,.pz-grid-story-example{display:grid;gap:18px;padding:clamp(22px,2vw,30px);border:1px solid color-mix(in srgb,var(--pz-color-grey-30) 74%,transparent);border-radius:28px;background:radial-gradient(circle at top right,color-mix(in srgb,var(--pz-color-blue-50) 8%,transparent),transparent 32%),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 18px 60px color-mix(in srgb,var(--pz-color-black-90) 7%,transparent),inset 0 1px color-mix(in srgb,var(--pz-color-white) 98%,transparent)}.pz-grid-story-header,.pz-grid-story-hero,.pz-grid-story-card{display:grid;gap:10px}.pz-grid-story-kicker,.pz-grid-story-chip{display:inline-flex;align-items: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}.pz-grid-story-layout,.pz-grid-story-nested{align-items:stretch}.pz-grid-story-card,.pz-grid-story-nested-card{min-width:0;padding:20px;border:1px solid color-mix(in srgb,var(--pz-color-grey-30) 72%,transparent);border-radius:24px;background:color-mix(in srgb,var(--pz-color-white) 94%,transparent);box-shadow:0 12px 36px color-mix(in srgb,var(--pz-color-black-90) 5%,transparent)}.pz-grid-story-card[data-tone=accent]{background:linear-gradient(180deg,color-mix(in srgb,var(--pz-color-blue-10) 94%,var(--pz-color-white)),color-mix(in srgb,var(--pz-color-blue-50) 8%,var(--pz-color-white)))}.pz-grid-story-card[data-tone=success]{background:linear-gradient(180deg,color-mix(in srgb,var(--pz-color-green-20) 96%,var(--pz-color-white)),color-mix(in srgb,var(--pz-color-green-50) 8%,var(--pz-color-white)))}.pz-grid-story-metric{color:var(--pz-color-text-link-hover);font-size:clamp(28px,5vw,48px);font-weight:700;line-height:1}.pz-grid-story-nested{margin-top:4px}.pz-grid-story-nested-card{display:grid;place-items:center;min-height:96px;color:var(--pz-color-text-link-hover);font-size:14px;font-weight:700}@media (width <= 640px){.pz-grid-story-board,.pz-grid-story-example,.pz-grid-story-card,.pz-grid-story-nested-card{padding:18px;border-radius:22px}}
|
|
@@ -0,0 +1,174 @@
|
|
|
1
|
+
import{P as _}from"./PzText-B1cefxtz.js";import{d as b,e as G,w as v,n as h,f as I,g as C,o as $,r as L}from"./iframe-AHEBgGuT.js";import"./preload-helper-C1FmrZbK.js";const c=[1,2,3,4,5,6,8,12,"full"],T=["div","section","article","main","aside","header","footer","nav","ul","ol"],o=b({name:"PzGrid",__name:"PzGrid",props:{as:{default:"div"},container:{type:Boolean,default:!1},fluid:{type:Boolean,default:!1},grid:{type:Boolean,default:!0},fit:{type:Boolean,default:!1},dense:{type:Boolean,default:!1}},setup(t){const e=t,a=C(()=>[{"pz-container":e.container&&!e.fluid,"pz-container-fluid":e.container&&e.fluid,"pz-grid":e.grid,"pz-grid-fit":e.grid&&e.fit,"pz-grid-dense":e.grid&&e.dense}]);return(n,i)=>($(),G(I(e.as),{class:h(a.value)},{default:v(()=>[L(n.$slots,"default")]),_:3},8,["class"]))}});o.__docgenInfo=Object.assign({displayName:o.name??o.__name},{name:"PzGrid",exportName:"default",displayName:"PzGrid",description:"",tags:{},props:[{name:"as",required:!1,type:{name:"PzGridTag"},defaultValue:{func:!1,value:'"div"'}},{name:"container",required:!1,type:{name:"boolean"},defaultValue:{func:!1,value:"false"}},{name:"fluid",required:!1,type:{name:"boolean"},defaultValue:{func:!1,value:"false"}},{name:"grid",required:!1,type:{name:"boolean"},defaultValue:{func:!1,value:"true"}},{name:"fit",required:!1,type:{name:"boolean"},defaultValue:{func:!1,value:"false"}},{name:"dense",required:!1,type:{name:"boolean"},defaultValue:{func:!1,value:"false"}}],slots:[{name:"default"}],sourceFiles:["/builds/Web-Projects/client-services/prozorro-ui/src/components/PzGrid/PzGrid.vue"]});const u=b({name:"PzGridItem",__name:"PzGridItem",props:{as:{default:"div"},span:{default:void 0},sm:{default:void 0},md:{default:void 0},lg:{default:void 0},xl:{default:void 0},xxl:{default:void 0},start:{default:void 0},startSm:{default:void 0},startMd:{default:void 0},startLg:{default:void 0},startXl:{default:void 0},startXxl:{default:void 0}},setup(t){const e=t,a=(d,s)=>s?s==="full"?`pz-col-${d}full`:`pz-col-${d}${s}`:null,n=(d,s)=>s?`pz-start-${d}${s}`:null,i=C(()=>["pz-grid-item",a("",e.span),a("sm-",e.sm),a("md-",e.md),a("lg-",e.lg),a("xl-",e.xl),a("xxl-",e.xxl),n("",e.start),n("sm-",e.startSm),n("md-",e.startMd),n("lg-",e.startLg),n("xl-",e.startXl),n("xxl-",e.startXxl)]);return(d,s)=>($(),G(I(e.as),{class:h(i.value)},{default:v(()=>[L(d.$slots,"default")]),_:3},8,["class"]))}});u.__docgenInfo=Object.assign({displayName:u.name??u.__name},{name:"PzGridItem",exportName:"default",displayName:"PzGridItem",description:"",tags:{},props:[{name:"as",required:!1,type:{name:"PzGridTag"},defaultValue:{func:!1,value:'"div"'}},{name:"span",required:!1,type:{name:"PzGridColumnSpan"},defaultValue:{func:!1,value:"undefined"}},{name:"sm",required:!1,type:{name:"PzGridColumnSpan"},defaultValue:{func:!1,value:"undefined"}},{name:"md",required:!1,type:{name:"PzGridColumnSpan"},defaultValue:{func:!1,value:"undefined"}},{name:"lg",required:!1,type:{name:"PzGridColumnSpan"},defaultValue:{func:!1,value:"undefined"}},{name:"xl",required:!1,type:{name:"PzGridColumnSpan"},defaultValue:{func:!1,value:"undefined"}},{name:"xxl",required:!1,type:{name:"PzGridColumnSpan"},defaultValue:{func:!1,value:"undefined"}},{name:"start",required:!1,type:{name:"PzGridColumnStart"},defaultValue:{func:!1,value:"undefined"}},{name:"startSm",required:!1,type:{name:"PzGridColumnStart"},defaultValue:{func:!1,value:"undefined"}},{name:"startMd",required:!1,type:{name:"PzGridColumnStart"},defaultValue:{func:!1,value:"undefined"}},{name:"startLg",required:!1,type:{name:"PzGridColumnStart"},defaultValue:{func:!1,value:"undefined"}},{name:"startXl",required:!1,type:{name:"PzGridColumnStart"},defaultValue:{func:!1,value:"undefined"}},{name:"startXxl",required:!1,type:{name:"PzGridColumnStart"},defaultValue:{func:!1,value:"undefined"}}],slots:[{name:"default"}],sourceFiles:["/builds/Web-Projects/client-services/prozorro-ui/src/components/PzGrid/PzGridItem.vue"]});const f={as:"section",container:!0,grid:!0,fit:!1,dense:!1,fluid:!1,heroSpan:4,sidebarSpan:4,metricSpan:2},r={hero:{md:8,xl:7},sidebar:{md:4,xl:5},metric:{md:4,xl:3},nested:{span:4,md:8,xl:6},nestedItem:{span:4,md:4,xl:6}},q=(t,e,a)=>typeof e>"u"?null:typeof e=="boolean"?e===a?null:e?t:`:${t}="false"`:typeof e=="number"?e===a?null:`:${t}="${e}"`:e===a?null:`${t}="${e}"`,l=t=>t.map(([e,a,n])=>q(e,a,n)).filter(e=>!!e).map(e=>` ${e}`).join(`
|
|
2
|
+
`),E=t=>{const e=l([["as",t.as,"div"],["container",t.container,!1],["grid",t.grid,!0],["fluid",t.fluid,!1],["fit",t.fit,!1],["dense",t.dense,!1]]),a=l([["span",t.heroSpan],["md",r.hero.md],["xl",r.hero.xl]]),n=l([["span",t.sidebarSpan],["md",r.sidebar.md],["xl",r.sidebar.xl]]),i=l([["span",t.metricSpan],["md",r.metric.md],["xl",r.metric.xl]]);return`<template>
|
|
3
|
+
<PzGrid
|
|
4
|
+
${e}
|
|
5
|
+
>
|
|
6
|
+
<PzGridItem
|
|
7
|
+
${a}
|
|
8
|
+
>
|
|
9
|
+
<PzText variant="h4-bold">Primary content area</PzText>
|
|
10
|
+
<PzText variant="body-regular">
|
|
11
|
+
PzGrid handles the container and grid contract while PzGridItem controls responsive span mapping.
|
|
12
|
+
</PzText>
|
|
13
|
+
</PzGridItem>
|
|
14
|
+
|
|
15
|
+
<PzGridItem
|
|
16
|
+
${n}
|
|
17
|
+
>
|
|
18
|
+
<PzText variant="h4-semibold">Secondary rail</PzText>
|
|
19
|
+
<PzText variant="body-regular">
|
|
20
|
+
Sidebar content drops below the hero on mobile and returns to a right rail on desktop.
|
|
21
|
+
</PzText>
|
|
22
|
+
</PzGridItem>
|
|
23
|
+
|
|
24
|
+
<PzGridItem
|
|
25
|
+
${i}
|
|
26
|
+
>
|
|
27
|
+
<PzText variant="body-semibold">Mobile columns</PzText>
|
|
28
|
+
</PzGridItem>
|
|
29
|
+
|
|
30
|
+
<PzGridItem
|
|
31
|
+
${i}
|
|
32
|
+
>
|
|
33
|
+
<PzText variant="body-semibold">Desktop columns</PzText>
|
|
34
|
+
</PzGridItem>
|
|
35
|
+
|
|
36
|
+
<PzGridItem
|
|
37
|
+
:span="${r.nested.span}"
|
|
38
|
+
:md="${r.nested.md}"
|
|
39
|
+
:xl="${r.nested.xl}"
|
|
40
|
+
>
|
|
41
|
+
<PzText variant="h4-semibold">Nested grids use the same components.</PzText>
|
|
42
|
+
|
|
43
|
+
<PzGrid>
|
|
44
|
+
<PzGridItem
|
|
45
|
+
:span="${r.nestedItem.span}"
|
|
46
|
+
:md="${r.nestedItem.md}"
|
|
47
|
+
:xl="${r.nestedItem.xl}"
|
|
48
|
+
>
|
|
49
|
+
Nested 1
|
|
50
|
+
</PzGridItem>
|
|
51
|
+
<PzGridItem
|
|
52
|
+
:span="${r.nestedItem.span}"
|
|
53
|
+
:md="${r.nestedItem.md}"
|
|
54
|
+
:xl="${r.nestedItem.xl}"
|
|
55
|
+
>
|
|
56
|
+
Nested 2
|
|
57
|
+
</PzGridItem>
|
|
58
|
+
</PzGrid>
|
|
59
|
+
</PzGridItem>
|
|
60
|
+
</PzGrid>
|
|
61
|
+
</template>`},k={title:"Components/PzGrid",component:o,parameters:{prototype:{caption:"Grid component",note:"Vue wrapper over the shared grid utility contract for container, grid, and responsive item spans."},docs:{description:{component:"Use `PzGrid` and `PzGridItem` when you want component-level layout composition instead of writing the emitted CSS utility classes directly."},source:{transform:(t,e)=>E(e.args??f)}}},args:f,argTypes:{as:{control:"select",options:T},container:{control:"boolean"},grid:{control:"boolean"},fluid:{control:"boolean"},fit:{control:"boolean"},dense:{control:"boolean"},heroSpan:{control:"select",options:c},sidebarSpan:{control:"select",options:c},metricSpan:{control:"select",options:c}},render:t=>({components:{pzGrid:o,pzGridItem:u,pzText:_},setup(){return{args:t,gridStoryExampleLayout:r}},template:`
|
|
62
|
+
<div class="pz-grid-story">
|
|
63
|
+
<pz-grid class="pz-grid-story-board">
|
|
64
|
+
<pz-grid-item
|
|
65
|
+
span="full"
|
|
66
|
+
class="pz-grid-story-header"
|
|
67
|
+
>
|
|
68
|
+
<span class="pz-grid-story-kicker">Component API</span>
|
|
69
|
+
<pz-text variant="h3-bold">Grid composition without manual utility strings</pz-text>
|
|
70
|
+
<pz-text variant="body-regular">
|
|
71
|
+
The wrapper components still use the shared CSS grid contract under the hood, but expose layout decisions as typed props.
|
|
72
|
+
</pz-text>
|
|
73
|
+
</pz-grid-item>
|
|
74
|
+
</pz-grid>
|
|
75
|
+
|
|
76
|
+
<pz-grid
|
|
77
|
+
:as="args.as"
|
|
78
|
+
:container="args.container"
|
|
79
|
+
:grid="args.grid"
|
|
80
|
+
:fluid="args.fluid"
|
|
81
|
+
:fit="args.fit"
|
|
82
|
+
:dense="args.dense"
|
|
83
|
+
class="pz-grid-story-example"
|
|
84
|
+
>
|
|
85
|
+
<pz-grid-item
|
|
86
|
+
:span="args.heroSpan"
|
|
87
|
+
:md="gridStoryExampleLayout.hero.md"
|
|
88
|
+
:xl="gridStoryExampleLayout.hero.xl"
|
|
89
|
+
class="pz-grid-story-card"
|
|
90
|
+
data-tone="accent"
|
|
91
|
+
>
|
|
92
|
+
<span class="pz-grid-story-chip">Hero</span>
|
|
93
|
+
<pz-text variant="h4-bold">Primary content area</pz-text>
|
|
94
|
+
<pz-text variant="body-regular">
|
|
95
|
+
PzGrid handles the container and grid contract while PzGridItem controls responsive span mapping.
|
|
96
|
+
</pz-text>
|
|
97
|
+
</pz-grid-item>
|
|
98
|
+
|
|
99
|
+
<pz-grid-item
|
|
100
|
+
:span="args.sidebarSpan"
|
|
101
|
+
:md="gridStoryExampleLayout.sidebar.md"
|
|
102
|
+
:xl="gridStoryExampleLayout.sidebar.xl"
|
|
103
|
+
class="pz-grid-story-card"
|
|
104
|
+
>
|
|
105
|
+
<span class="pz-grid-story-chip">Sidebar</span>
|
|
106
|
+
<pz-text variant="h4-semibold">Secondary rail</pz-text>
|
|
107
|
+
<pz-text variant="body-regular">
|
|
108
|
+
Sidebar content drops below the hero on mobile and returns to a right rail on desktop.
|
|
109
|
+
</pz-text>
|
|
110
|
+
</pz-grid-item>
|
|
111
|
+
|
|
112
|
+
<pz-grid-item
|
|
113
|
+
:span="args.metricSpan"
|
|
114
|
+
:md="gridStoryExampleLayout.metric.md"
|
|
115
|
+
:xl="gridStoryExampleLayout.metric.xl"
|
|
116
|
+
class="pz-grid-story-card"
|
|
117
|
+
data-tone="success"
|
|
118
|
+
>
|
|
119
|
+
<span class="pz-grid-story-metric">4</span>
|
|
120
|
+
<pz-text variant="body-semibold">Mobile columns</pz-text>
|
|
121
|
+
</pz-grid-item>
|
|
122
|
+
|
|
123
|
+
<pz-grid-item
|
|
124
|
+
:span="args.metricSpan"
|
|
125
|
+
:md="gridStoryExampleLayout.metric.md"
|
|
126
|
+
:xl="gridStoryExampleLayout.metric.xl"
|
|
127
|
+
class="pz-grid-story-card"
|
|
128
|
+
>
|
|
129
|
+
<span class="pz-grid-story-metric">12</span>
|
|
130
|
+
<pz-text variant="body-semibold">Desktop columns</pz-text>
|
|
131
|
+
</pz-grid-item>
|
|
132
|
+
|
|
133
|
+
<pz-grid-item
|
|
134
|
+
:span="gridStoryExampleLayout.nested.span"
|
|
135
|
+
:md="gridStoryExampleLayout.nested.md"
|
|
136
|
+
:xl="gridStoryExampleLayout.nested.xl"
|
|
137
|
+
class="pz-grid-story-card"
|
|
138
|
+
>
|
|
139
|
+
<span class="pz-grid-story-chip">Nested</span>
|
|
140
|
+
<pz-text variant="h4-semibold">Nested grids use the same components.</pz-text>
|
|
141
|
+
|
|
142
|
+
<pz-grid class="pz-grid-story-nested">
|
|
143
|
+
<pz-grid-item
|
|
144
|
+
:span="gridStoryExampleLayout.nestedItem.span"
|
|
145
|
+
:md="gridStoryExampleLayout.nestedItem.md"
|
|
146
|
+
:xl="gridStoryExampleLayout.nestedItem.xl"
|
|
147
|
+
class="pz-grid-story-nested-card"
|
|
148
|
+
>
|
|
149
|
+
Nested 1
|
|
150
|
+
</pz-grid-item>
|
|
151
|
+
<pz-grid-item
|
|
152
|
+
:span="gridStoryExampleLayout.nestedItem.span"
|
|
153
|
+
:md="gridStoryExampleLayout.nestedItem.md"
|
|
154
|
+
:xl="gridStoryExampleLayout.nestedItem.xl"
|
|
155
|
+
class="pz-grid-story-nested-card"
|
|
156
|
+
>
|
|
157
|
+
Nested 2
|
|
158
|
+
</pz-grid-item>
|
|
159
|
+
</pz-grid>
|
|
160
|
+
</pz-grid-item>
|
|
161
|
+
</pz-grid>
|
|
162
|
+
</div>
|
|
163
|
+
`})},p={name:"Component API"},m={name:"Auto Fit",args:{container:!0,fit:!0,heroSpan:4,sidebarSpan:4,metricSpan:4}};var z,g,y;p.parameters={...p.parameters,docs:{...(z=p.parameters)==null?void 0:z.docs,source:{originalSource:`{
|
|
164
|
+
name: "Component API"
|
|
165
|
+
}`,...(y=(g=p.parameters)==null?void 0:g.docs)==null?void 0:y.source}}};var x,P,S;m.parameters={...m.parameters,docs:{...(x=m.parameters)==null?void 0:x.docs,source:{originalSource:`{
|
|
166
|
+
name: "Auto Fit",
|
|
167
|
+
args: {
|
|
168
|
+
container: true,
|
|
169
|
+
fit: true,
|
|
170
|
+
heroSpan: 4,
|
|
171
|
+
sidebarSpan: 4,
|
|
172
|
+
metricSpan: 4
|
|
173
|
+
}
|
|
174
|
+
}`,...(S=(P=m.parameters)==null?void 0:P.docs)==null?void 0:S.source}}};const A=["ComponentApi","FitLayout"];export{p as ComponentApi,m as FitLayout,A as __namedExportsOrder,k as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.pz-icon-story{display:grid;gap:var(--pz-space-24)}.pz-icon-story-preview,.pz-icon-story-gallery{display:grid;gap:var(--pz-space-16);padding:var(--pz-space-24);border:1px solid color-mix(in srgb,var(--pz-color-grey-30) 72%,transparent);border-radius:var(--pz-space-24);background:radial-gradient(circle at top right,color-mix(in srgb,var(--pz-color-blue-50) 8%,transparent),transparent 34%),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 18px 48px color-mix(in srgb,var(--pz-color-black-90) 7%,transparent),inset 0 1px color-mix(in srgb,var(--pz-color-white) 96%,transparent)}.pz-icon-story-header{display:flex;align-items:start;justify-content:space-between;gap:var(--pz-space-16)}.pz-icon-story-eyebrow,.pz-icon-story-chip{display:inline-flex;align-items:center;width:fit-content;padding:var(--pz-space-8) var(--pz-space-16);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}.pz-icon-story-preview-stage{display:grid;place-items:center;min-height:220px;padding:var(--pz-space-24);border:1px dashed color-mix(in srgb,var(--pz-color-grey-40) 70%,transparent);border-radius:var(--pz-space-20);background:linear-gradient(color-mix(in srgb,var(--pz-color-blue-50) 4%,transparent) 1px,transparent 1px),linear-gradient(90deg,color-mix(in srgb,var(--pz-color-blue-50) 4%,transparent) 1px,transparent 1px);background-size:28px 28px}.pz-icon-story-preview-stage .pz-icon{--pz-icon-color: var(--pz-color-icon-primary)}.pz-icon-story-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--pz-space-16)}.pz-icon-story-card{display:grid;gap:var(--pz-space-16);padding:var(--pz-space-20);border:1px solid color-mix(in srgb,var(--pz-color-grey-30) 74%,transparent);border-radius:var(--pz-space-20);background:color-mix(in srgb,var(--pz-color-white) 94%,transparent);box-shadow:0 12px 32px color-mix(in srgb,var(--pz-color-black-90) 5%,transparent)}.pz-icon-story-card[data-tone=primary] .pz-icon{--pz-icon-color: var(--pz-color-icon-primary)}.pz-icon-story-card[data-tone=success] .pz-icon{--pz-icon-color: var(--pz-color-icon-success)}.pz-icon-story-card[data-tone=alert] .pz-icon{--pz-icon-color: var(--pz-color-icon-alert)}.pz-icon-story-card-preview{display:flex;align-items:center;gap:var(--pz-space-16)}.pz-icon-story-card-preview .pz-icon{--pz-icon-size: var(--pz-font-size-24)}.pz-icon-story-code{margin:0;font-size:var(--pz-font-size-12);color:var(--pz-color-text-secondary)}@media (width <= 768px){.pz-icon-story-grid{grid-template-columns:1fr}.pz-icon-story-header{flex-direction:column}}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import{P as d}from"./PzText-B1cefxtz.js";import{d as m,h as u,t as z,i as v,n as f,g as i,o as y}from"./iframe-AHEBgGuT.js";import"./preload-helper-C1FmrZbK.js";const b=["filled","outlined"],g=["12","16","18","20","24","32","44"],I=["role","aria-hidden","aria-label"],n=m({name:"PzIcon",__name:"PzIcon",props:{name:{},variant:{default:"outlined"},size:{default:"16"},label:{default:void 0}},setup(e){const a=e,t=i(()=>({"--pz-icon-size":`var(--pz-font-size-${a.size})`})),c=i(()=>a.label?"img":void 0),p=i(()=>a.label?void 0:"true");return(_,k)=>(y(),u("span",{class:f([{outlined:a.variant==="outlined"},"pz-icon pz-material-icon"]),style:v(t.value),role:c.value,"aria-hidden":p.value,"aria-label":a.label},z(a.name),15,I))}});n.__docgenInfo=Object.assign({displayName:n.name??n.__name},{name:"PzIcon",exportName:"default",displayName:"PzIcon",description:"",tags:{},props:[{name:"name",required:!0,type:{name:"PzIconName"}},{name:"variant",required:!1,type:{name:"PzIconVariant"},defaultValue:{func:!1,value:'"outlined"'}},{name:"size",required:!1,type:{name:"PzIconSize"},defaultValue:{func:!1,value:'"16"'}},{name:"label",required:!1,type:{name:"string"},defaultValue:{func:!1,value:"undefined"}}],sourceFiles:["/builds/Web-Projects/client-services/prozorro-ui/src/components/PzIcon/PzIcon.vue"]});const h=[{name:"info",label:"Informational state",tone:"primary"},{name:"check_circle",label:"Successful outcome",tone:"success"},{name:"warning",label:"Attention required",tone:"alert"}],P=e=>`<template>
|
|
2
|
+
<PzIcon ${[`name="${e.name}"`,e.variant!=="outlined"?`variant="${e.variant}"`:null,e.size!=="16"?`size="${e.size}"`:null,e.label?`label="${e.label}"`:null].filter(t=>!!t).join(" ")} />
|
|
3
|
+
</template>`,x={title:"Components/PzIcon",component:n,parameters:{prototype:{caption:"Icon component",note:"Material icon ligatures wrapped in a small Vue API with token-backed sizing and easy CSS overrides."},docs:{description:{component:"Use `PzIcon` for Material icons in design-system UI. The component keeps the API small, inherits custom classes and styles, and exposes CSS custom properties for size and color overrides. Find available icon names in the [Material Icons catalog](https://fonts.google.com/icons)."},source:{transform:(e,a)=>P(a.args??x.args)}}},args:{name:"account_balance",variant:"outlined",size:"24",label:"Procurement entity"},argTypes:{name:{control:"text",description:"Material icon ligature name."},variant:{control:"inline-radio",options:b,description:"Material icon font family variant."},size:{control:"select",options:g,description:"Token-backed font size for the icon."},label:{control:"text",description:"Accessible label. Leave empty for decorative icons."}},render:e=>({components:{pzIcon:n,pzText:d},setup(){return{args:e,iconReferenceItems:h}},template:`
|
|
4
|
+
<div class="pz-icon-story">
|
|
5
|
+
<section class="pz-icon-story-preview">
|
|
6
|
+
<div class="pz-icon-story-header">
|
|
7
|
+
<div>
|
|
8
|
+
<span class="pz-icon-story-eyebrow">Component API</span>
|
|
9
|
+
<pz-text variant="h4-bold">Token-backed Material icons</pz-text>
|
|
10
|
+
</div>
|
|
11
|
+
<span class="pz-icon-story-chip">{{ args.name }}</span>
|
|
12
|
+
</div>
|
|
13
|
+
|
|
14
|
+
<div class="pz-icon-story-preview-stage">
|
|
15
|
+
<pz-icon
|
|
16
|
+
:name="args.name"
|
|
17
|
+
:variant="args.variant"
|
|
18
|
+
:size="args.size"
|
|
19
|
+
:label="args.label"
|
|
20
|
+
/>
|
|
21
|
+
</div>
|
|
22
|
+
</section>
|
|
23
|
+
|
|
24
|
+
<section class="pz-icon-story-gallery">
|
|
25
|
+
<div class="pz-icon-story-header">
|
|
26
|
+
<div>
|
|
27
|
+
<span class="pz-icon-story-eyebrow">Styling hooks</span>
|
|
28
|
+
<pz-text variant="h4-bold">Class overrides still work cleanly</pz-text>
|
|
29
|
+
<pz-text variant="body-regular">
|
|
30
|
+
Browse icon names in
|
|
31
|
+
<a
|
|
32
|
+
class="pz-text-link"
|
|
33
|
+
href="https://fonts.google.com/icons"
|
|
34
|
+
target="_blank"
|
|
35
|
+
rel="noreferrer"
|
|
36
|
+
>
|
|
37
|
+
Material Icons catalog
|
|
38
|
+
</a>.
|
|
39
|
+
</pz-text>
|
|
40
|
+
</div>
|
|
41
|
+
</div>
|
|
42
|
+
|
|
43
|
+
<div class="pz-icon-story-grid">
|
|
44
|
+
<article
|
|
45
|
+
v-for="item in iconReferenceItems"
|
|
46
|
+
:key="item.name"
|
|
47
|
+
class="pz-icon-story-card"
|
|
48
|
+
:data-tone="item.tone"
|
|
49
|
+
>
|
|
50
|
+
<div class="pz-icon-story-card-preview">
|
|
51
|
+
<pz-icon
|
|
52
|
+
:name="item.name"
|
|
53
|
+
size="24"
|
|
54
|
+
:label="item.label"
|
|
55
|
+
/>
|
|
56
|
+
<pz-text variant="body-semibold">{{ item.label }}</pz-text>
|
|
57
|
+
</div>
|
|
58
|
+
<p class="pz-icon-story-code">.pz-icon { --pz-icon-color: token; --pz-icon-size: token; }</p>
|
|
59
|
+
</article>
|
|
60
|
+
</div>
|
|
61
|
+
</section>
|
|
62
|
+
</div>
|
|
63
|
+
`})},o={};var s,r,l;o.parameters={...o.parameters,docs:{...(s=o.parameters)==null?void 0:s.docs,source:{originalSource:"{}",...(l=(r=o.parameters)==null?void 0:r.docs)==null?void 0:l.source}}};const M=["Playground"];export{o as Playground,M as __namedExportsOrder,x as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.pz-image-story{display:grid;gap:var(--pz-space-24)}.pz-image-story-hero,.pz-image-story-grid article{display:grid;gap:var(--pz-space-16);padding:var(--pz-space-24);border:1px solid color-mix(in srgb,var(--pz-color-grey-30) 72%,transparent);border-radius:var(--pz-space-24);background:radial-gradient(circle at top right,color-mix(in srgb,var(--pz-color-blue-50) 8%,transparent),transparent 34%),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 18px 48px color-mix(in srgb,var(--pz-color-black-90) 7%,transparent),inset 0 1px color-mix(in srgb,var(--pz-color-white) 96%,transparent)}.pz-image-story-header{display:flex;align-items:start;justify-content:space-between;gap:var(--pz-space-16)}.pz-image-story-eyebrow,.pz-image-story-chip{display:inline-flex;align-items:center;width:fit-content;padding:var(--pz-space-8) var(--pz-space-16);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}.pz-image-story-surface{padding:var(--pz-space-24);border:1px dashed color-mix(in srgb,var(--pz-color-grey-40) 70%,transparent);border-radius:var(--pz-space-20);background:linear-gradient(color-mix(in srgb,var(--pz-color-blue-50) 4%,transparent) 1px,transparent 1px),linear-gradient(90deg,color-mix(in srgb,var(--pz-color-blue-50) 4%,transparent) 1px,transparent 1px);background-size:28px 28px}.pz-image-story-surface .pz-image{--pz-image-radius: var(--pz-space-16);--pz-image-background: color-mix(in srgb, var(--pz-color-grey-20) 90%, var(--pz-color-white))}.pz-image-story-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--pz-space-16)}.pz-image-story-crop-frame{display:grid;place-items:center;min-height:240px;overflow:hidden;border-radius:var(--pz-space-16);background:color-mix(in srgb,var(--pz-color-grey-20) 92%,var(--pz-color-white))}.pz-image-story-crop-frame .pz-image{height:100%;--pz-image-radius: var(--pz-space-16)}.pz-image-story-code{margin:0;font-size:var(--pz-font-size-12);color:var(--pz-color-text-secondary)}@media (width <= 768px){.pz-image-story-grid{grid-template-columns:1fr}.pz-image-story-header{flex-direction:column}}.pz-image[data-v-33d59ff0]{display:inline-block;width:100%;max-width:100%;height:auto;object-fit:var(--pz-image-fit, contain);border-radius:var(--pz-image-radius, 0);background:var(--pz-image-background, transparent);box-shadow:var(--pz-image-shadow, none);vertical-align:middle}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import{_ as l,P as p}from"./PzText-B1cefxtz.js";import{d,h as g,i as m,g as u,o as f}from"./iframe-AHEBgGuT.js";import"./preload-helper-C1FmrZbK.js";const z=["contain","cover","fill","none","scale-down"],y=["eager","lazy"],v=["auto","async","sync"],h=["src","alt","loading","decoding"],i=d({name:"PzImage",__name:"PzImage",props:{src:{},alt:{},fit:{default:"contain"},loading:{default:void 0},decoding:{default:"async"}},setup(e){const a=e,o=u(()=>({"--pz-image-fit":a.fit}));return(P,b)=>(f(),g("img",{class:"pz-image",src:a.src,alt:a.alt,loading:a.loading,decoding:a.decoding,style:m(o.value)},null,12,h))}}),s=l(i,[["__scopeId","data-v-33d59ff0"]]);i.__docgenInfo=Object.assign({displayName:i.name??i.__name},{name:"PzImage",exportName:"default",displayName:"PzImage",description:"",tags:{},props:[{name:"src",required:!0,type:{name:"string"}},{name:"alt",required:!0,type:{name:"string"}},{name:"fit",required:!1,type:{name:"PzImageFit"},defaultValue:{func:!1,value:'"contain"'}},{name:"loading",required:!1,type:{name:"PzImageLoading"},defaultValue:{func:!1,value:"undefined"}},{name:"decoding",required:!1,type:{name:"PzImageDecoding"},defaultValue:{func:!1,value:'"async"'}}],sourceFiles:["/builds/Web-Projects/client-services/prozorro-ui/src/components/PzImage/PzImage.vue"]});const I=e=>`<template>
|
|
2
|
+
<PzImage ${[`src="${e.src}"`,`alt="${e.alt}"`,e.fit!=="contain"?`fit="${e.fit}"`:null,e.loading?`loading="${e.loading}"`:null,e.decoding!=="async"?`decoding="${e.decoding}"`:null].filter(o=>!!o).join(" ")} />
|
|
3
|
+
</template>`,_={title:"Components/PzImage",component:s,parameters:{prototype:{caption:"Image component",note:"Minimal image primitive with basic responsive defaults and CSS custom properties for easy visual overrides."},docs:{description:{component:"Use `PzImage` when you want a predictable image primitive with responsive defaults. Styling remains easy to customize through inherited classes, inline styles, and the `--pz-image-*` custom properties."},source:{transform:(e,a)=>I(a.args??_.args)}}},args:{src:"/prozorro_logo.png",alt:"Prozorro logotype",fit:"contain",loading:"lazy",decoding:"async"},argTypes:{src:{control:"text",description:"Image source URL."},alt:{control:"text",description:"Alternative text for the image."},fit:{control:"select",options:z,description:"Object-fit behavior for framed image layouts."},loading:{control:"inline-radio",options:y,description:"Native browser loading hint."},decoding:{control:"inline-radio",options:v,description:"Native image decoding mode."}},render:e=>({components:{pzImage:s,pzText:p},setup(){return{args:e}},template:`
|
|
4
|
+
<div class="pz-image-story">
|
|
5
|
+
<section class="pz-image-story-hero">
|
|
6
|
+
<div class="pz-image-story-header">
|
|
7
|
+
<div>
|
|
8
|
+
<span class="pz-image-story-eyebrow">Component API</span>
|
|
9
|
+
<pz-text variant="h4-bold">Responsive image primitive</pz-text>
|
|
10
|
+
</div>
|
|
11
|
+
<span class="pz-image-story-chip">{{ args.fit }}</span>
|
|
12
|
+
</div>
|
|
13
|
+
|
|
14
|
+
<div class="pz-image-story-surface">
|
|
15
|
+
<pz-image
|
|
16
|
+
:src="args.src"
|
|
17
|
+
:alt="args.alt"
|
|
18
|
+
:fit="args.fit"
|
|
19
|
+
:loading="args.loading"
|
|
20
|
+
:decoding="args.decoding"
|
|
21
|
+
/>
|
|
22
|
+
</div>
|
|
23
|
+
</section>
|
|
24
|
+
|
|
25
|
+
<section class="pz-image-story-grid">
|
|
26
|
+
<article>
|
|
27
|
+
<span class="pz-image-story-eyebrow">Default flow</span>
|
|
28
|
+
<pz-text variant="body-regular">
|
|
29
|
+
The component keeps the image responsive with width 100% and height auto.
|
|
30
|
+
</pz-text>
|
|
31
|
+
<div class="pz-image-story-surface">
|
|
32
|
+
<pz-image
|
|
33
|
+
:src="args.src"
|
|
34
|
+
:alt="args.alt"
|
|
35
|
+
loading="eager"
|
|
36
|
+
/>
|
|
37
|
+
</div>
|
|
38
|
+
<p class="pz-image-story-code">.pz-image { width: 100%; height: auto; }</p>
|
|
39
|
+
</article>
|
|
40
|
+
|
|
41
|
+
<article>
|
|
42
|
+
<span class="pz-image-story-eyebrow">Framed crop</span>
|
|
43
|
+
<pz-text variant="body-regular">
|
|
44
|
+
When a parent sets height, the fit prop maps directly to object-fit.
|
|
45
|
+
</pz-text>
|
|
46
|
+
<div class="pz-image-story-crop-frame">
|
|
47
|
+
<pz-image
|
|
48
|
+
:src="args.src"
|
|
49
|
+
:alt="args.alt"
|
|
50
|
+
:fit="args.fit"
|
|
51
|
+
/>
|
|
52
|
+
</div>
|
|
53
|
+
<p class="pz-image-story-code">.pz-image { --pz-image-radius; --pz-image-background; --pz-image-shadow; }</p>
|
|
54
|
+
</article>
|
|
55
|
+
</section>
|
|
56
|
+
</div>
|
|
57
|
+
`})},t={};var n,r,c;t.parameters={...t.parameters,docs:{...(n=t.parameters)==null?void 0:n.docs,source:{originalSource:"{}",...(c=(r=t.parameters)==null?void 0:r.docs)==null?void 0:c.source}}};const O=["Playground"];export{t as Playground,O as __namedExportsOrder,_ as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{d as l,o as r,e as d,w as p,r as i,n as c,f as u,g as m}from"./iframe-AHEBgGuT.js";const t=l({name:"PzText",__name:"PzText",props:{variant:{},as:{default:void 0}},setup(e){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"},a=e,n=m(()=>a.as??s[a.variant]??"span");return(o,b)=>(r(),d(u(n.value),{class:c(["pz-text",`pz-text--${e.variant}`])},{default:p(()=>[i(o.$slots,"default",{},void 0,!0)]),_:3},8,["class"]))}}),h=(e,s)=>{const a=e.__vccOpts||e;for(const[n,o]of s)a[n]=o;return a},x=h(t,[["__scopeId","data-v-bd3b2150"]]);t.__docgenInfo=Object.assign({displayName:t.name??t.__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/PzText/PzText.vue"]});export{x as P,h as _};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.pz-text[data-v-bd3b2150]{margin:0;padding:0}.pz-text--h1-bold[data-v-bd3b2150]{font-size:var(--pz-font-size-44);font-weight:700;line-height:1.5}@media (max-width: 575.98px){.pz-text--h1-bold[data-v-bd3b2150]{font-size:var(--pz-font-size-24);font-weight:700;line-height:1.5}}.pz-text--h1-regular[data-v-bd3b2150]{font-size:var(--pz-font-size-44);font-weight:400;line-height:1.5}@media (max-width: 575.98px){.pz-text--h1-regular[data-v-bd3b2150]{font-size:var(--pz-font-size-24);font-weight:400;line-height:1.5}}.pz-text--h2-bold[data-v-bd3b2150]{font-size:var(--pz-font-size-32);font-weight:700;line-height:1.5}@media (max-width: 575.98px){.pz-text--h2-bold[data-v-bd3b2150]{font-size:var(--pz-font-size-20);font-weight:700;line-height:1.5}}.pz-text--h3-bold[data-v-bd3b2150]{font-size:var(--pz-font-size-24);font-weight:700;line-height:1.5}@media (max-width: 575.98px){.pz-text--h3-bold[data-v-bd3b2150]{font-size:var(--pz-font-size-18);font-weight:700;line-height:1.5}}.pz-text--h3-regular[data-v-bd3b2150]{font-size:var(--pz-font-size-24);font-weight:400;line-height:1.5}@media (max-width: 575.98px){.pz-text--h3-regular[data-v-bd3b2150]{font-size:var(--pz-font-size-18);font-weight:400;line-height:1.5}}.pz-text--h4-regular[data-v-bd3b2150]{font-size:var(--pz-font-size-18);font-weight:400;line-height:1.5}@media (max-width: 575.98px){.pz-text--h4-regular[data-v-bd3b2150]{font-size:var(--pz-font-size-16);font-weight:400;line-height:1.5}}.pz-text--h4-semibold[data-v-bd3b2150]{font-size:var(--pz-font-size-18);font-weight:600;line-height:1.5}@media (max-width: 575.98px){.pz-text--h4-semibold[data-v-bd3b2150]{font-size:var(--pz-font-size-16);font-weight:600;line-height:1.5}}.pz-text--h4-bold[data-v-bd3b2150]{font-size:var(--pz-font-size-18);font-weight:700;line-height:1.5}@media (max-width: 575.98px){.pz-text--h4-bold[data-v-bd3b2150]{font-size:var(--pz-font-size-16);font-weight:700;line-height:1.5}}.pz-text--subtitle[data-v-bd3b2150]{font-size:var(--pz-font-size-16);font-weight:600;line-height:1.5}.pz-text--body-regular[data-v-bd3b2150]{font-size:var(--pz-font-size-14);font-weight:400;line-height:1.5}.pz-text--body-semibold[data-v-bd3b2150]{font-size:var(--pz-font-size-14);font-weight:600;line-height:1.5}.pz-text--body-bold[data-v-bd3b2150]{font-size:var(--pz-font-size-14);font-weight:700;line-height:1.5}.pz-text--capitalized[data-v-bd3b2150]{font-size:var(--pz-font-size-14);font-weight:400;line-height:1.5;text-transform:uppercase;letter-spacing:.05em}.pz-text--hint[data-v-bd3b2150]{font-size:var(--pz-font-size-14);font-weight:400;line-height:1.5;color:var(--pz-color-text-secondary)}.pz-text--line-through[data-v-bd3b2150]{font-size:var(--pz-font-size-14);font-weight:400;line-height:1.5;text-decoration:line-through}.pz-text--small-regular[data-v-bd3b2150]{font-size:var(--pz-font-size-12);font-weight:400;line-height:1.5}.pz-text--small-semibold[data-v-bd3b2150]{font-size:var(--pz-font-size-12);font-weight:600;line-height:1.5}.pz-text--small-bold[data-v-bd3b2150]{font-size:var(--pz-font-size-12);font-weight:700;line-height:1.5}.pz-text--link[data-v-bd3b2150]{font-size:var(--pz-font-size-14);font-weight:400;line-height:1.5;color:var(--pz-color-text-link);text-decoration:underline;cursor:pointer}.pz-text--link[data-v-bd3b2150]:hover{color:var(--pz-color-text-link-hover)}.pz-text--document[data-v-bd3b2150]{font-size:var(--pz-font-size-14);font-weight:400;line-height:1.5}
|