duck-dev-lib 0.0.36 → 0.0.43
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/fesm2022/{duck-dev-lib-en-CvMpinpr.mjs → duck-dev-lib-en-Co6vywqB.mjs} +167 -48
- package/fesm2022/{duck-dev-lib-ru-JQ83ztjM.mjs.map → duck-dev-lib-en-Co6vywqB.mjs.map} +1 -1
- package/fesm2022/{duck-dev-lib-ru-JQ83ztjM.mjs → duck-dev-lib-ru-39r_p4Cd.mjs} +167 -48
- package/fesm2022/{duck-dev-lib-en-CvMpinpr.mjs.map → duck-dev-lib-ru-39r_p4Cd.mjs.map} +1 -1
- package/fesm2022/duck-dev-lib.mjs +1034 -109
- package/fesm2022/duck-dev-lib.mjs.map +1 -1
- package/package.json +1 -1
- package/types/duck-dev-lib.d.ts +260 -9
|
@@ -15,6 +15,10 @@ var tabs = {
|
|
|
15
15
|
tooltip: "Tooltip",
|
|
16
16
|
directives: "Directives"
|
|
17
17
|
};
|
|
18
|
+
var documentationStyleTabs = {
|
|
19
|
+
classic: "Classic",
|
|
20
|
+
neobrutalism: "Neobrutalism"
|
|
21
|
+
};
|
|
18
22
|
var quickStart = {
|
|
19
23
|
title: "Duck Dev UI Library — Colors & Themes",
|
|
20
24
|
intro: "This guide explains how to install the library styles and work with colors and themes. Duck Dev provides a small set of CSS variables (the dd-base palette) and theme switching via an attribute.",
|
|
@@ -263,6 +267,28 @@ var buttons = {
|
|
|
263
267
|
exampleOrange: "Orange",
|
|
264
268
|
exampleGray: "Gray",
|
|
265
269
|
exampleDark: "Dark"
|
|
270
|
+
},
|
|
271
|
+
neobrutal: {
|
|
272
|
+
title: "Neobrutalism Buttons",
|
|
273
|
+
description: "Three loud button variants with thick borders, contrasting shadows, and intentionally rough geometry. Useful for hero sections, CTA areas, and any action that should feel visually dominant.",
|
|
274
|
+
usage: "Usage:",
|
|
275
|
+
inputs: "Input Parameters:",
|
|
276
|
+
inputText: "main button label",
|
|
277
|
+
inputSubtext: "small sticker label for the burst variant",
|
|
278
|
+
inputHelperText: "secondary caption for the slab variant",
|
|
279
|
+
inputTag: "short tag or sequence marker for the tag variant",
|
|
280
|
+
inputColorButton: "color scheme (White, Gray, Dark, Violet, Orange)",
|
|
281
|
+
inputIsDisabled: "disables the button and removes active interaction",
|
|
282
|
+
examples: "Examples:",
|
|
283
|
+
exampleBurstWhite: "Burst / White",
|
|
284
|
+
exampleBurstViolet: "Burst / Violet",
|
|
285
|
+
exampleBurstDark: "Burst / Dark",
|
|
286
|
+
exampleSlabGray: "Slab / Gray",
|
|
287
|
+
exampleSlabOrange: "Slab / Orange",
|
|
288
|
+
exampleSlabDisabled: "Slab / Disabled",
|
|
289
|
+
exampleTagOrange: "Tag / Orange",
|
|
290
|
+
exampleTagViolet: "Tag / Violet",
|
|
291
|
+
exampleTagDark: "Tag / Dark"
|
|
266
292
|
}
|
|
267
293
|
};
|
|
268
294
|
var segmentDoc = {
|
|
@@ -325,6 +351,18 @@ var loaders = {
|
|
|
325
351
|
inputNone: "Component has no input parameters",
|
|
326
352
|
inputCss: "Configuration via CSS",
|
|
327
353
|
examples: "Examples:"
|
|
354
|
+
},
|
|
355
|
+
neobrutal: {
|
|
356
|
+
title: "Neobrutalism Loaders",
|
|
357
|
+
description: "Three loud loading indicators with heavy outlines, hard shadows, sticker-like geometry, and arcade motion. Use them in promo screens, dashboards, or empty states where the loading state should feel intentional rather than invisible.",
|
|
358
|
+
usage: "Usage:",
|
|
359
|
+
inputs: "Input Parameters:",
|
|
360
|
+
inputNone: "Components have no input parameters",
|
|
361
|
+
inputCss: "Colors and scale can be adjusted via CSS if needed",
|
|
362
|
+
examples: "Examples:",
|
|
363
|
+
exampleStamp: "Stamp spinner",
|
|
364
|
+
exampleBars: "Punch bars",
|
|
365
|
+
exampleMarquee: "Ticker pill"
|
|
328
366
|
}
|
|
329
367
|
};
|
|
330
368
|
var tabsComponent = {
|
|
@@ -363,6 +401,30 @@ var tabsComponent = {
|
|
|
363
401
|
implementation3: "Use signal to store active tab",
|
|
364
402
|
implementation4: "Handle tabChange event to switch content",
|
|
365
403
|
implementation5: "Place tab content inside the component using conditional blocks"
|
|
404
|
+
},
|
|
405
|
+
neobrutal: {
|
|
406
|
+
usage: "Neobrutalism variants:",
|
|
407
|
+
examples: "Neobrutalism examples:",
|
|
408
|
+
horizontalTitle: "Horizontal / Neobrutal",
|
|
409
|
+
verticalTitle: "Vertical / Neobrutal",
|
|
410
|
+
kickerRush: "Queue",
|
|
411
|
+
cardRushTitle: "Rush lane is armed",
|
|
412
|
+
cardRushText: "Use the horizontal variant for compact flows, step clusters, or promo panels where the active state needs to hit hard.",
|
|
413
|
+
kickerDrop: "Drop",
|
|
414
|
+
cardDropTitle: "Drop room is live",
|
|
415
|
+
cardDropText: "Each tab behaves like a sticker-card with loud color blocks, offset shadows, and a chunky content frame.",
|
|
416
|
+
kickerReview: "Review",
|
|
417
|
+
cardReviewTitle: "Review desk is locked",
|
|
418
|
+
cardReviewText: "The selected tab leans forward visually, so the navigation reads more like a control strip than a neutral switcher.",
|
|
419
|
+
storyPulseChip: "Pulse",
|
|
420
|
+
storyPulseTitle: "Sidebar tab for signal-heavy layouts",
|
|
421
|
+
storyPulseText: "The vertical neobrutal variant works well in settings pages, dashboards, and side navigation where sections need strong visual separation.",
|
|
422
|
+
storyStackChip: "Stack",
|
|
423
|
+
storyStackTitle: "Chunky, loud, and easy to scan",
|
|
424
|
+
storyStackText: "Large markers, hard shadows, and a moving side indicator keep the active route visible even in denser interfaces.",
|
|
425
|
+
storyBlastChip: "Blast",
|
|
426
|
+
storyBlastTitle: "Built for promo and editorial blocks",
|
|
427
|
+
storyBlastText: "The content area keeps the same brutal geometry, so the tabs and panel feel like one composed interface instead of separate widgets."
|
|
366
428
|
}
|
|
367
429
|
};
|
|
368
430
|
var svgComponent = {
|
|
@@ -383,52 +445,66 @@ var svgComponent = {
|
|
|
383
445
|
copied: "Copied!"
|
|
384
446
|
};
|
|
385
447
|
var inputComponent = {
|
|
386
|
-
title: "
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
448
|
+
title: "Duck Dev Input",
|
|
449
|
+
eyebrow: "Form System",
|
|
450
|
+
description: "A single component for `input`, `textarea`, `select`, and `checkbox`. It fits forms, filters, and onboarding flows where you want a consistent visual language and simple Reactive Forms integration.",
|
|
451
|
+
heroPointType: "Field types",
|
|
452
|
+
heroPointTypeValue: "text, email, password, textarea, select, checkbox",
|
|
453
|
+
heroPointIntegration: "Integration",
|
|
454
|
+
heroPointIntegrationValue: "Angular Reactive Forms + signal inputs",
|
|
455
|
+
heroPointUseCase: "Best for",
|
|
456
|
+
heroPointUseCaseValue: "Profile forms, signup flows, feedback forms, and settings screens",
|
|
457
|
+
overviewTitle: "What the component covers",
|
|
458
|
+
overviewDescription: "One API handles several input scenarios and keeps styling aligned, so pages do not drift into mixed field patterns.",
|
|
459
|
+
featuresTitle: "Key capabilities",
|
|
460
|
+
feature1: "Unified wrapper for standard input, multi-line text, select list, and checkbox.",
|
|
461
|
+
feature2: "Error state is applied automatically when the control becomes invalid and touched.",
|
|
462
|
+
feature3: "Validation messaging stays in the parent form because the error text is passed in.",
|
|
463
|
+
feature4: "The new `select` mode supports a placeholder and a typed options list via `options`.",
|
|
464
|
+
feature5: "Checkbox uses `ng-content`, so consent copy or rich label content stays flexible.",
|
|
465
|
+
examplesTitle: "Quick scenarios",
|
|
466
|
+
exampleText: "Text field",
|
|
467
|
+
exampleTextCaption: "Use it for names, email, password, and any single-line value.",
|
|
468
|
+
exampleSelect: "New select",
|
|
469
|
+
exampleSelectCaption: "Useful for roles, categories, statuses, and other bounded value sets.",
|
|
470
|
+
exampleTextarea: "Textarea",
|
|
471
|
+
exampleTextareaCaption: "Fits descriptions, notes, and free-form text.",
|
|
472
|
+
apiTitle: "API",
|
|
473
|
+
apiForm: "required `FormGroup` instance used by the field",
|
|
474
|
+
apiControlName: "form control name inside the provided form",
|
|
475
|
+
apiLabel: "label rendered above the field; usually omitted for checkbox",
|
|
476
|
+
apiPlaceholder: "placeholder for input, textarea, and select",
|
|
477
|
+
apiType: "HTML type for the standard input: `text`, `email`, `password`, etc.",
|
|
478
|
+
apiFormInputType: "render mode: `input | textarea | select | checkbox`",
|
|
479
|
+
apiOptions: "options for `select` mode in the `{ value, label, disabled? }` shape",
|
|
480
|
+
apiErrorMessage: "error text displayed under the field",
|
|
481
|
+
showcaseTitle: "Demo form",
|
|
482
|
+
showcaseDescription: "Live example showing all input variants inside one form.",
|
|
483
|
+
showcaseText: "Name",
|
|
484
|
+
showcaseSelect: "Role",
|
|
485
|
+
showcaseTextarea: "About",
|
|
486
|
+
showcaseCheckbox: "Consent",
|
|
487
|
+
showcaseValue: "Current value",
|
|
488
|
+
codeTitle: "Integration example",
|
|
489
|
+
codeTemplate: "Template",
|
|
490
|
+
codeLogic: "Component logic",
|
|
491
|
+
demo: {
|
|
492
|
+
fullName: "Full name",
|
|
493
|
+
fullNamePlaceholder: "Jane Cooper",
|
|
494
|
+
email: "Work email",
|
|
495
|
+
emailPlaceholder: "jane@duckdev.dev",
|
|
496
|
+
role: "Role",
|
|
497
|
+
rolePlaceholder: "Choose a role",
|
|
498
|
+
bio: "Short bio",
|
|
499
|
+
bioPlaceholder: "For example: building an internal design system for the product",
|
|
500
|
+
agreement: "I agree to data processing and product update communication",
|
|
501
|
+
errors: {
|
|
502
|
+
required: "This field is required",
|
|
503
|
+
email: "Enter a valid email",
|
|
504
|
+
minlength: "Minimum 3 characters",
|
|
505
|
+
requiredTrue: "You need to confirm consent",
|
|
506
|
+
invalid: "Check the field value"
|
|
507
|
+
}
|
|
432
508
|
}
|
|
433
509
|
};
|
|
434
510
|
var badgeDoc = {
|
|
@@ -536,6 +612,48 @@ var cardDoc = {
|
|
|
536
612
|
orange: "Orange",
|
|
537
613
|
gray: "Gray",
|
|
538
614
|
dark: "Dark"
|
|
615
|
+
},
|
|
616
|
+
minimal: {
|
|
617
|
+
title: "Card Minimal",
|
|
618
|
+
description: "A restrained modern card with a thin accent line, soft border and clean spacing. Suitable for notes, statuses and compact content blocks.",
|
|
619
|
+
usage: "Usage:",
|
|
620
|
+
inputs: "Inputs:",
|
|
621
|
+
examples: "Examples:",
|
|
622
|
+
examplesDesc: {
|
|
623
|
+
"default": "<small>System note</small><h3>Quiet by design</h3><p>Minimal surface with editorial spacing and a restrained visual rhythm.</p>",
|
|
624
|
+
violet: "<small>Release</small><h3>Focused update</h3><p>Soft accent for important product notes without turning the block into a banner.</p>",
|
|
625
|
+
orange: "<small>Highlight</small><h3>Warm emphasis</h3><p>Draws attention to short announcements, recommendations or curated content.</p>",
|
|
626
|
+
gray: "<small>Status</small><h3>Calm neutral state</h3><p>Works well for helper text, metadata and secondary descriptions in dense layouts.</p>",
|
|
627
|
+
dark: "<small>Premium</small><h3>Inverted contrast</h3><p>A stronger presentation for dashboards, summaries and high-priority contextual cards.</p>"
|
|
628
|
+
}
|
|
629
|
+
},
|
|
630
|
+
outline: {
|
|
631
|
+
title: "Card Outline",
|
|
632
|
+
description: "A refined framed card with strong proportions, a clean accent mark and restrained luxury styling. Suitable for product notes, editorial blocks and highlighted descriptions.",
|
|
633
|
+
usage: "Usage:",
|
|
634
|
+
inputs: "Inputs:",
|
|
635
|
+
examples: "Examples:",
|
|
636
|
+
examplesDesc: {
|
|
637
|
+
"default": "<small>Editorial</small><h3>Quiet framing</h3><p>Balanced composition for product copy, descriptions and calm premium presentation.</p>",
|
|
638
|
+
violet: "<small>Feature</small><h3>Framed focus</h3><p>Elegant highlight for new functionality without visual noise or aggressive contrast.</p>",
|
|
639
|
+
orange: "<small>Curated</small><h3>Warm recommendation</h3><p>Designed for selected content, callouts and guidance where tone matters.</p>",
|
|
640
|
+
gray: "<small>Reference</small><h3>Measured neutral</h3><p>Useful for documentation notes, specs and secondary contextual information.</p>",
|
|
641
|
+
dark: "<small>Signature</small><h3>Dark edition</h3><p>Sharper and more premium look for summaries, hero snippets and dashboard insights.</p>"
|
|
642
|
+
}
|
|
643
|
+
},
|
|
644
|
+
signal: {
|
|
645
|
+
title: "Card Signal",
|
|
646
|
+
description: "A more technical modern card with grid texture, precise top line and a controlled data-driven feel. Suitable for metrics, updates and system communication.",
|
|
647
|
+
usage: "Usage:",
|
|
648
|
+
inputs: "Inputs:",
|
|
649
|
+
examples: "Examples:",
|
|
650
|
+
examplesDesc: {
|
|
651
|
+
"default": "<small>Overview</small><h3>Structured message</h3><p>Clear hierarchy for concise updates, metrics or contextual notices in interfaces.</p>",
|
|
652
|
+
violet: "<small>Deploy</small><h3>Release checkpoint</h3><p>Technical enough for product updates while still keeping the layout polished and controlled.</p>",
|
|
653
|
+
orange: "<small>Attention</small><h3>Operational focus</h3><p>Useful for warnings, event streams and active system messages that need visual presence.</p>",
|
|
654
|
+
gray: "<small>Log</small><h3>Background context</h3><p>Subtle enough for secondary information, version notes and passive feed items.</p>",
|
|
655
|
+
dark: "<small>Console</small><h3>High-priority signal</h3><p>Best for stronger status communication, compact dashboards and dense information panels.</p>"
|
|
656
|
+
}
|
|
539
657
|
}
|
|
540
658
|
};
|
|
541
659
|
var modalDoc = {
|
|
@@ -568,6 +686,7 @@ var modalDoc = {
|
|
|
568
686
|
};
|
|
569
687
|
var en = {
|
|
570
688
|
tabs: tabs,
|
|
689
|
+
documentationStyleTabs: documentationStyleTabs,
|
|
571
690
|
quickStart: quickStart,
|
|
572
691
|
tooltipDoc: tooltipDoc,
|
|
573
692
|
notifications: notifications,
|
|
@@ -585,5 +704,5 @@ var en = {
|
|
|
585
704
|
modalDoc: modalDoc
|
|
586
705
|
};
|
|
587
706
|
|
|
588
|
-
export { accordionDoc, badgeDoc, buttons, cardDoc, en as default, directivesDoc, inputComponent, loaders, modalDoc, notifications, quickStart, segmentDoc, slider, svgComponent, tabs, tabsComponent, tooltipDoc };
|
|
589
|
-
//# sourceMappingURL=duck-dev-lib-en-
|
|
707
|
+
export { accordionDoc, badgeDoc, buttons, cardDoc, en as default, directivesDoc, documentationStyleTabs, inputComponent, loaders, modalDoc, notifications, quickStart, segmentDoc, slider, svgComponent, tabs, tabsComponent, tooltipDoc };
|
|
708
|
+
//# sourceMappingURL=duck-dev-lib-en-Co6vywqB.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"duck-dev-lib-
|
|
1
|
+
{"version":3,"file":"duck-dev-lib-en-Co6vywqB.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -15,6 +15,10 @@ var tabs = {
|
|
|
15
15
|
tooltip: "Подсказка",
|
|
16
16
|
directives: "Директивы"
|
|
17
17
|
};
|
|
18
|
+
var documentationStyleTabs = {
|
|
19
|
+
classic: "Классика",
|
|
20
|
+
neobrutalism: "Neobrutalism"
|
|
21
|
+
};
|
|
18
22
|
var quickStart = {
|
|
19
23
|
title: "Duck Dev UI Library — Цвета и темы",
|
|
20
24
|
intro: "Это руководство объясняет, как подключить стили библиотеки и работать с цветами и темами. Duck Dev предоставляет набор CSS‑переменных (палитра dd-base) и переключение тем через атрибут.",
|
|
@@ -229,6 +233,28 @@ var buttons = {
|
|
|
229
233
|
exampleOrange: "Оранжевая",
|
|
230
234
|
exampleGray: "Серая",
|
|
231
235
|
exampleDark: "Тёмная"
|
|
236
|
+
},
|
|
237
|
+
neobrutal: {
|
|
238
|
+
title: "Neobrutalism Buttons",
|
|
239
|
+
description: "Три агрессивных варианта кнопок с толстыми границами, контрастными тенями и нарочито грубой геометрией. Подходят для hero-блоков, CTA и акцентных действий, где интерфейс должен выглядеть дерзко.",
|
|
240
|
+
usage: "Использование:",
|
|
241
|
+
inputs: "Входные параметры:",
|
|
242
|
+
inputText: "основной текст кнопки",
|
|
243
|
+
inputSubtext: "маленький ярлык для burst-варианта",
|
|
244
|
+
inputHelperText: "вторичная подпись для slab-варианта",
|
|
245
|
+
inputTag: "короткий тег или номер для tag-варианта",
|
|
246
|
+
inputColorButton: "цветовая схема (White, Gray, Dark, Violet, Orange)",
|
|
247
|
+
inputIsDisabled: "отключает кнопку и гасит интерактивные эффекты",
|
|
248
|
+
examples: "Примеры:",
|
|
249
|
+
exampleBurstWhite: "Burst / White",
|
|
250
|
+
exampleBurstViolet: "Burst / Violet",
|
|
251
|
+
exampleBurstDark: "Burst / Dark",
|
|
252
|
+
exampleSlabGray: "Slab / Gray",
|
|
253
|
+
exampleSlabOrange: "Slab / Orange",
|
|
254
|
+
exampleSlabDisabled: "Slab / Disabled",
|
|
255
|
+
exampleTagOrange: "Tag / Orange",
|
|
256
|
+
exampleTagViolet: "Tag / Violet",
|
|
257
|
+
exampleTagDark: "Tag / Dark"
|
|
232
258
|
}
|
|
233
259
|
};
|
|
234
260
|
var segmentDoc = {
|
|
@@ -291,6 +317,18 @@ var loaders = {
|
|
|
291
317
|
inputNone: "Компонент не имеет входных параметров",
|
|
292
318
|
inputCss: "Настройка через CSS",
|
|
293
319
|
examples: "Примеры:"
|
|
320
|
+
},
|
|
321
|
+
neobrutal: {
|
|
322
|
+
title: "Neobrutalism Loaders",
|
|
323
|
+
description: "Три нарочито дерзких загрузчика с толстыми границами, жёсткими тенями, стикерной геометрией и аркадной анимацией. Подходят для промо-экранов, дашбордов и пустых состояний, где индикатор загрузки должен быть частью визуального языка, а не нейтральной заглушкой.",
|
|
324
|
+
usage: "Использование:",
|
|
325
|
+
inputs: "Входные параметры:",
|
|
326
|
+
inputNone: "Компоненты не имеют входных параметров",
|
|
327
|
+
inputCss: "Цвета и масштаб при необходимости можно переопределить через CSS",
|
|
328
|
+
examples: "Примеры:",
|
|
329
|
+
exampleStamp: "Stamp spinner",
|
|
330
|
+
exampleBars: "Punch bars",
|
|
331
|
+
exampleMarquee: "Ticker pill"
|
|
294
332
|
}
|
|
295
333
|
};
|
|
296
334
|
var tabsComponent = {
|
|
@@ -329,6 +367,30 @@ var tabsComponent = {
|
|
|
329
367
|
implementation3: "Используйте signal для хранения активной вкладки",
|
|
330
368
|
implementation4: "Обработайте событие tabChange для переключения контента",
|
|
331
369
|
implementation5: "Разместите контент вкладок внутри компонента используя условные блоки"
|
|
370
|
+
},
|
|
371
|
+
neobrutal: {
|
|
372
|
+
usage: "Neobrutalism варианты:",
|
|
373
|
+
examples: "Neobrutalism примеры:",
|
|
374
|
+
horizontalTitle: "Горизонтальный / Neobrutal",
|
|
375
|
+
verticalTitle: "Вертикальный / Neobrutal",
|
|
376
|
+
kickerRush: "Queue",
|
|
377
|
+
cardRushTitle: "Rush lane включён",
|
|
378
|
+
cardRushText: "Горизонтальный вариант подходит для компактных сценариев, шагов, промо-панелей и любых блоков, где активное состояние должно считываться мгновенно.",
|
|
379
|
+
kickerDrop: "Drop",
|
|
380
|
+
cardDropTitle: "Drop room открыт",
|
|
381
|
+
cardDropText: "Каждая вкладка выглядит как стикер-карточка с плотными цветовыми плоскостями, смещёнными тенями и тяжёлой рамкой вокруг контента.",
|
|
382
|
+
kickerReview: "Review",
|
|
383
|
+
cardReviewTitle: "Review desk зафиксирован",
|
|
384
|
+
cardReviewText: "Активная вкладка намеренно выдвигается вперёд, поэтому навигация ощущается не нейтральным переключателем, а выразительной control strip-панелью.",
|
|
385
|
+
storyPulseChip: "Pulse",
|
|
386
|
+
storyPulseTitle: "Боковые tabs для интерфейсов с сильной навигацией",
|
|
387
|
+
storyPulseText: "Вертикальный neobrutal-вариант хорошо ложится в settings-экраны, дашборды и сайдбары, где секции должны жёстко отделяться визуально.",
|
|
388
|
+
storyStackChip: "Stack",
|
|
389
|
+
storyStackTitle: "Крупно, громко и легко сканируется",
|
|
390
|
+
storyStackText: "Большие маркеры, жёсткие тени и движущийся боковой индикатор помогают быстро увидеть активный раздел даже в плотной раскладке.",
|
|
391
|
+
storyBlastChip: "Blast",
|
|
392
|
+
storyBlastTitle: "Подходит для промо и editorial-блоков",
|
|
393
|
+
storyBlastText: "Контентная зона повторяет ту же brutal-геометрию, поэтому tabs и панель воспринимаются как единый собранный интерфейс, а не как две разные сущности."
|
|
332
394
|
}
|
|
333
395
|
};
|
|
334
396
|
var svgComponent = {
|
|
@@ -349,52 +411,66 @@ var svgComponent = {
|
|
|
349
411
|
copied: "Скопировано!"
|
|
350
412
|
};
|
|
351
413
|
var inputComponent = {
|
|
352
|
-
title: "
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
414
|
+
title: "Duck Dev Input",
|
|
415
|
+
eyebrow: "Form System",
|
|
416
|
+
description: "Единый компонент для `input`, `textarea`, `select` и `checkbox`. Подходит для форм, фильтров и onboarding-сценариев, где важно сохранить одинаковый визуальный язык и простую интеграцию с Reactive Forms.",
|
|
417
|
+
heroPointType: "Типы полей",
|
|
418
|
+
heroPointTypeValue: "text, email, password, textarea, select, checkbox",
|
|
419
|
+
heroPointIntegration: "Интеграция",
|
|
420
|
+
heroPointIntegrationValue: "Angular Reactive Forms + signal inputs",
|
|
421
|
+
heroPointUseCase: "Когда использовать",
|
|
422
|
+
heroPointUseCaseValue: "Формы профиля, регистрации, обратной связи и настроек",
|
|
423
|
+
overviewTitle: "Что умеет компонент",
|
|
424
|
+
overviewDescription: "Один API закрывает несколько сценариев ввода и держит стили под контролем, чтобы на странице не смешивались разные паттерны полей.",
|
|
425
|
+
featuresTitle: "Ключевые возможности",
|
|
426
|
+
feature1: "Единая обвязка для стандартного поля, многострочного текста, списка выбора и чекбокса.",
|
|
427
|
+
feature2: "Состояние ошибки отображается автоматически, если control стал invalid и touched.",
|
|
428
|
+
feature3: "Сообщение об ошибке передается извне, поэтому правила валидации остаются в родительской форме.",
|
|
429
|
+
feature4: "Новый режим `select` поддерживает placeholder и список опций через `options`.",
|
|
430
|
+
feature5: "Чекбокс использует `ng-content`, поэтому текст согласия или подписи можно оформить свободно.",
|
|
431
|
+
examplesTitle: "Быстрые сценарии",
|
|
432
|
+
exampleText: "Текстовое поле",
|
|
433
|
+
exampleTextCaption: "Подходит для имени, почты, пароля и любых однострочных значений.",
|
|
434
|
+
exampleSelect: "Новый select",
|
|
435
|
+
exampleSelectCaption: "Используется для ролей, категорий, статусов и других ограниченных наборов значений.",
|
|
436
|
+
exampleTextarea: "Textarea",
|
|
437
|
+
exampleTextareaCaption: "Удобен для описаний, заметок и свободного текста.",
|
|
438
|
+
apiTitle: "API",
|
|
439
|
+
apiForm: "обязательный `FormGroup`, к которому привязывается поле",
|
|
440
|
+
apiControlName: "имя form control внутри переданной формы",
|
|
441
|
+
apiLabel: "подпись над полем; для checkbox обычно оставляют пустой",
|
|
442
|
+
apiPlaceholder: "placeholder для input, textarea и select",
|
|
443
|
+
apiType: "HTML-тип для стандартного input: `text`, `email`, `password` и т.д.",
|
|
444
|
+
apiFormInputType: "режим рендера: `input | textarea | select | checkbox`",
|
|
445
|
+
apiOptions: "список опций для режима `select` в формате `{ value, label, disabled? }`",
|
|
446
|
+
apiErrorMessage: "текст ошибки, который показывается под полем",
|
|
447
|
+
showcaseTitle: "Демо-форма",
|
|
448
|
+
showcaseDescription: "Живой пример использования всех вариантов компонента в одной форме.",
|
|
449
|
+
showcaseText: "Имя",
|
|
450
|
+
showcaseSelect: "Роль",
|
|
451
|
+
showcaseTextarea: "О себе",
|
|
452
|
+
showcaseCheckbox: "Согласие",
|
|
453
|
+
showcaseValue: "Текущее значение",
|
|
454
|
+
codeTitle: "Пример подключения",
|
|
455
|
+
codeTemplate: "Шаблон",
|
|
456
|
+
codeLogic: "Логика компонента",
|
|
457
|
+
demo: {
|
|
458
|
+
fullName: "Полное имя",
|
|
459
|
+
fullNamePlaceholder: "Иван Петров",
|
|
460
|
+
email: "Рабочая почта",
|
|
461
|
+
emailPlaceholder: "ivan@duckdev.dev",
|
|
462
|
+
role: "Роль",
|
|
463
|
+
rolePlaceholder: "Выберите роль",
|
|
464
|
+
bio: "Коротко о проекте",
|
|
465
|
+
bioPlaceholder: "Например: делаем внутреннюю дизайн-систему для продукта",
|
|
466
|
+
agreement: "Я соглашаюсь на обработку данных и получение обновлений по продукту",
|
|
467
|
+
errors: {
|
|
468
|
+
required: "Поле обязательно для заполнения",
|
|
469
|
+
email: "Введите корректный email",
|
|
470
|
+
minlength: "Минимум 3 символа",
|
|
471
|
+
requiredTrue: "Нужно подтвердить согласие",
|
|
472
|
+
invalid: "Проверьте значение поля"
|
|
473
|
+
}
|
|
398
474
|
}
|
|
399
475
|
};
|
|
400
476
|
var badgeDoc = {
|
|
@@ -502,6 +578,48 @@ var cardDoc = {
|
|
|
502
578
|
orange: "Orange",
|
|
503
579
|
gray: "Gray",
|
|
504
580
|
dark: "Dark"
|
|
581
|
+
},
|
|
582
|
+
minimal: {
|
|
583
|
+
title: "Минималистичная карточка",
|
|
584
|
+
description: "Сдержанная современная карточка с тонкой акцентной линией, мягкой рамкой и аккуратными отступами. Подходит для заметок, статусов и компактных смысловых блоков.",
|
|
585
|
+
usage: "Использование:",
|
|
586
|
+
inputs: "Входные параметры:",
|
|
587
|
+
examples: "Примеры:",
|
|
588
|
+
examplesDesc: {
|
|
589
|
+
"default": "<small>System note</small><h3>Тихий акцент</h3><p>Минимальная поверхность с аккуратным ритмом, чистыми отступами и ощущением дорогого интерфейса.</p>",
|
|
590
|
+
violet: "<small>Release</small><h3>Сфокусированное обновление</h3><p>Мягкий акцент для важных заметок о продукте, который не превращает блок в баннер.</p>",
|
|
591
|
+
orange: "<small>Highlight</small><h3>Тёплый фокус</h3><p>Подходит для коротких анонсов, рекомендаций и контента, который нужно деликатно выделить.</p>",
|
|
592
|
+
gray: "<small>Status</small><h3>Спокойный нейтральный тон</h3><p>Хорошо работает для вспомогательного текста, метаданных и вторичных описаний в плотных интерфейсах.</p>",
|
|
593
|
+
dark: "<small>Premium</small><h3>Инвертированный контраст</h3><p>Более выразительная подача для дашбордов, summary-блоков и приоритетных карточек.</p>"
|
|
594
|
+
}
|
|
595
|
+
},
|
|
596
|
+
outline: {
|
|
597
|
+
title: "Карточка с рамкой",
|
|
598
|
+
description: "Более собранная и дорогая карточка с тонкой внутренней рамкой, чистым акцентом и спокойной премиальной подачей. Подходит для продуктовых заметок, editorial-блоков и выделенных описаний.",
|
|
599
|
+
usage: "Использование:",
|
|
600
|
+
inputs: "Входные параметры:",
|
|
601
|
+
examples: "Примеры:",
|
|
602
|
+
examplesDesc: {
|
|
603
|
+
"default": "<small>Editorial</small><h3>Тихая рамка</h3><p>Сбалансированная композиция для продуктового текста, описаний и спокойной премиальной подачи.</p>",
|
|
604
|
+
violet: "<small>Feature</small><h3>Фокус в рамке</h3><p>Элегантный акцент для новой функциональности без лишнего шума и агрессивного контраста.</p>",
|
|
605
|
+
orange: "<small>Curated</small><h3>Тёплая рекомендация</h3><p>Подходит для отобранного контента, callout-блоков и подсказок, где важен тон.</p>",
|
|
606
|
+
gray: "<small>Reference</small><h3>Сдержанный нейтрал</h3><p>Удобна для заметок в документации, спецификаций и вторичной контекстной информации.</p>",
|
|
607
|
+
dark: "<small>Signature</small><h3>Тёмная версия</h3><p>Более резкая и премиальная подача для summary-блоков, hero-фрагментов и инсайтов в дашборде.</p>"
|
|
608
|
+
}
|
|
609
|
+
},
|
|
610
|
+
signal: {
|
|
611
|
+
title: "Сигнальная карточка",
|
|
612
|
+
description: "Более техничная современная карточка с сеткой, точной верхней линией и собранным data-driven характером. Подходит для метрик, обновлений и системной коммуникации.",
|
|
613
|
+
usage: "Использование:",
|
|
614
|
+
inputs: "Входные параметры:",
|
|
615
|
+
examples: "Примеры:",
|
|
616
|
+
examplesDesc: {
|
|
617
|
+
"default": "<small>Overview</small><h3>Структурное сообщение</h3><p>Чёткая иерархия для коротких обновлений, метрик и контекстных уведомлений в интерфейсе.</p>",
|
|
618
|
+
violet: "<small>Deploy</small><h3>Точка релиза</h3><p>Достаточно технологична для продуктовых обновлений, но при этом остаётся собранной и аккуратной.</p>",
|
|
619
|
+
orange: "<small>Attention</small><h3>Операционный фокус</h3><p>Подходит для предупреждений, потоков событий и активных системных сообщений, которым нужна заметность.</p>",
|
|
620
|
+
gray: "<small>Log</small><h3>Фоновый контекст</h3><p>Достаточно деликатна для вторичной информации, заметок о версиях и пассивных элементов ленты.</p>",
|
|
621
|
+
dark: "<small>Console</small><h3>Приоритетный сигнал</h3><p>Лучше всего работает для сильных статусных сообщений, компактных дашбордов и плотных инфо-панелей.</p>"
|
|
622
|
+
}
|
|
505
623
|
}
|
|
506
624
|
};
|
|
507
625
|
var modalDoc = {
|
|
@@ -534,6 +652,7 @@ var modalDoc = {
|
|
|
534
652
|
};
|
|
535
653
|
var ru = {
|
|
536
654
|
tabs: tabs,
|
|
655
|
+
documentationStyleTabs: documentationStyleTabs,
|
|
537
656
|
quickStart: quickStart,
|
|
538
657
|
notifications: notifications,
|
|
539
658
|
slider: slider,
|
|
@@ -550,5 +669,5 @@ var ru = {
|
|
|
550
669
|
modalDoc: modalDoc
|
|
551
670
|
};
|
|
552
671
|
|
|
553
|
-
export { accordionDoc, badgeDoc, buttons, cardDoc, ru as default, directivesDoc, inputComponent, loaders, modalDoc, notifications, quickStart, segmentDoc, slider, svgComponent, tabs, tabsComponent };
|
|
554
|
-
//# sourceMappingURL=duck-dev-lib-ru-
|
|
672
|
+
export { accordionDoc, badgeDoc, buttons, cardDoc, ru as default, directivesDoc, documentationStyleTabs, inputComponent, loaders, modalDoc, notifications, quickStart, segmentDoc, slider, svgComponent, tabs, tabsComponent };
|
|
673
|
+
//# sourceMappingURL=duck-dev-lib-ru-39r_p4Cd.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"duck-dev-lib-
|
|
1
|
+
{"version":3,"file":"duck-dev-lib-ru-39r_p4Cd.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|