duck-dev-lib 0.0.36 → 0.0.42

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.
@@ -263,6 +263,28 @@ var buttons = {
263
263
  exampleOrange: "Orange",
264
264
  exampleGray: "Gray",
265
265
  exampleDark: "Dark"
266
+ },
267
+ neobrutal: {
268
+ title: "Neobrutalism Buttons",
269
+ 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.",
270
+ usage: "Usage:",
271
+ inputs: "Input Parameters:",
272
+ inputText: "main button label",
273
+ inputSubtext: "small sticker label for the burst variant",
274
+ inputHelperText: "secondary caption for the slab variant",
275
+ inputTag: "short tag or sequence marker for the tag variant",
276
+ inputColorButton: "color scheme (White, Gray, Dark, Violet, Orange)",
277
+ inputIsDisabled: "disables the button and removes active interaction",
278
+ examples: "Examples:",
279
+ exampleBurstWhite: "Burst / White",
280
+ exampleBurstViolet: "Burst / Violet",
281
+ exampleBurstDark: "Burst / Dark",
282
+ exampleSlabGray: "Slab / Gray",
283
+ exampleSlabOrange: "Slab / Orange",
284
+ exampleSlabDisabled: "Slab / Disabled",
285
+ exampleTagOrange: "Tag / Orange",
286
+ exampleTagViolet: "Tag / Violet",
287
+ exampleTagDark: "Tag / Dark"
266
288
  }
267
289
  };
268
290
  var segmentDoc = {
@@ -325,6 +347,18 @@ var loaders = {
325
347
  inputNone: "Component has no input parameters",
326
348
  inputCss: "Configuration via CSS",
327
349
  examples: "Examples:"
350
+ },
351
+ neobrutal: {
352
+ title: "Neobrutalism Loaders",
353
+ 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.",
354
+ usage: "Usage:",
355
+ inputs: "Input Parameters:",
356
+ inputNone: "Components have no input parameters",
357
+ inputCss: "Colors and scale can be adjusted via CSS if needed",
358
+ examples: "Examples:",
359
+ exampleStamp: "Stamp spinner",
360
+ exampleBars: "Punch bars",
361
+ exampleMarquee: "Ticker pill"
328
362
  }
329
363
  };
330
364
  var tabsComponent = {
@@ -363,6 +397,30 @@ var tabsComponent = {
363
397
  implementation3: "Use signal to store active tab",
364
398
  implementation4: "Handle tabChange event to switch content",
365
399
  implementation5: "Place tab content inside the component using conditional blocks"
400
+ },
401
+ neobrutal: {
402
+ usage: "Neobrutalism variants:",
403
+ examples: "Neobrutalism examples:",
404
+ horizontalTitle: "Horizontal / Neobrutal",
405
+ verticalTitle: "Vertical / Neobrutal",
406
+ kickerRush: "Queue",
407
+ cardRushTitle: "Rush lane is armed",
408
+ cardRushText: "Use the horizontal variant for compact flows, step clusters, or promo panels where the active state needs to hit hard.",
409
+ kickerDrop: "Drop",
410
+ cardDropTitle: "Drop room is live",
411
+ cardDropText: "Each tab behaves like a sticker-card with loud color blocks, offset shadows, and a chunky content frame.",
412
+ kickerReview: "Review",
413
+ cardReviewTitle: "Review desk is locked",
414
+ cardReviewText: "The selected tab leans forward visually, so the navigation reads more like a control strip than a neutral switcher.",
415
+ storyPulseChip: "Pulse",
416
+ storyPulseTitle: "Sidebar tab for signal-heavy layouts",
417
+ storyPulseText: "The vertical neobrutal variant works well in settings pages, dashboards, and side navigation where sections need strong visual separation.",
418
+ storyStackChip: "Stack",
419
+ storyStackTitle: "Chunky, loud, and easy to scan",
420
+ storyStackText: "Large markers, hard shadows, and a moving side indicator keep the active route visible even in denser interfaces.",
421
+ storyBlastChip: "Blast",
422
+ storyBlastTitle: "Built for promo and editorial blocks",
423
+ storyBlastText: "The content area keeps the same brutal geometry, so the tabs and panel feel like one composed interface instead of separate widgets."
366
424
  }
367
425
  };
368
426
  var svgComponent = {
@@ -383,52 +441,66 @@ var svgComponent = {
383
441
  copied: "Copied!"
384
442
  };
385
443
  var inputComponent = {
386
- title: "Input Field Component",
387
- inputField: {
388
- title: "Input Field Component",
389
- description: "Universal form input component that supports text inputs, textareas, and checkboxes with built-in validation and error handling.",
390
- usage: "Usage",
391
- usageText1: "Import InputFieldComponent into your component.",
392
- usageText2: "Create a FormGroup with FormBuilder and define form controls.",
393
- usageText3: "Pass the form, control name, and optional parameters to the component.",
394
- required: "required",
395
- optional: "optional",
396
- inputs: "Inputs",
397
- inputForm: "FormGroup instance that contains the form controls",
398
- inputControlName: "Name of the form control to bind to",
399
- inputLabel: "Label text displayed above the input field (default: '')",
400
- inputPlaceholder: "Placeholder text for the input (default: '')",
401
- inputType: "HTML input type (text, email, password, number, etc.) (default: 'text')",
402
- inputFormInputType: "Type of form field to render (default: 'input')",
403
- typeInput: "Standard input field",
404
- typeTextarea: "Multi-line textarea",
405
- typeCheckbox: "Checkbox with custom styling",
406
- inputErrorMessage: "Error message to display when validation fails (default: '')",
407
- features: "Features",
408
- feature1: "Support for three types of form inputs: input, textarea, checkbox",
409
- feature2: "Automatic validation state visualization (error class on invalid and touched)",
410
- feature3: "Custom error messages display",
411
- feature4: "Integration with Angular Reactive Forms",
412
- feature5: "Custom styled checkbox with SVG checkmark",
413
- feature6: "Flexible configuration through input signals",
414
- feature7: "Support for ng-content projection for checkbox labels",
415
- api: "API",
416
- apiForm: "Required FormGroup that manages the form state",
417
- apiControlName: "Required string identifier for the form control",
418
- apiLabel: "Optional label text for the field",
419
- apiPlaceholder: "Optional placeholder text",
420
- apiType: "Optional HTML input type attribute",
421
- apiFormInputType: "Optional type selector for rendering different input types",
422
- apiErrorMessage: "Optional error message displayed when field is invalid",
423
- implementation: "Implementation Details",
424
- implementation1: "Component uses Angular signal-based inputs for better performance",
425
- implementation2: "Supports formControlName binding for reactive forms integration",
426
- implementation3: "Error styling is automatically applied when control is invalid and touched",
427
- implementation4: "Checkbox type includes custom SVG-based visual design",
428
- implementation5: "All input types maintain consistent styling through shared CSS classes",
429
- implementation6: "Error messages are conditionally displayed based on errorMessage input",
430
- example: "Usage Example",
431
- exampleComponent: "Component with Form Example"
444
+ title: "Duck Dev Input",
445
+ eyebrow: "Form System",
446
+ 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.",
447
+ heroPointType: "Field types",
448
+ heroPointTypeValue: "text, email, password, textarea, select, checkbox",
449
+ heroPointIntegration: "Integration",
450
+ heroPointIntegrationValue: "Angular Reactive Forms + signal inputs",
451
+ heroPointUseCase: "Best for",
452
+ heroPointUseCaseValue: "Profile forms, signup flows, feedback forms, and settings screens",
453
+ overviewTitle: "What the component covers",
454
+ overviewDescription: "One API handles several input scenarios and keeps styling aligned, so pages do not drift into mixed field patterns.",
455
+ featuresTitle: "Key capabilities",
456
+ feature1: "Unified wrapper for standard input, multi-line text, select list, and checkbox.",
457
+ feature2: "Error state is applied automatically when the control becomes invalid and touched.",
458
+ feature3: "Validation messaging stays in the parent form because the error text is passed in.",
459
+ feature4: "The new `select` mode supports a placeholder and a typed options list via `options`.",
460
+ feature5: "Checkbox uses `ng-content`, so consent copy or rich label content stays flexible.",
461
+ examplesTitle: "Quick scenarios",
462
+ exampleText: "Text field",
463
+ exampleTextCaption: "Use it for names, email, password, and any single-line value.",
464
+ exampleSelect: "New select",
465
+ exampleSelectCaption: "Useful for roles, categories, statuses, and other bounded value sets.",
466
+ exampleTextarea: "Textarea",
467
+ exampleTextareaCaption: "Fits descriptions, notes, and free-form text.",
468
+ apiTitle: "API",
469
+ apiForm: "required `FormGroup` instance used by the field",
470
+ apiControlName: "form control name inside the provided form",
471
+ apiLabel: "label rendered above the field; usually omitted for checkbox",
472
+ apiPlaceholder: "placeholder for input, textarea, and select",
473
+ apiType: "HTML type for the standard input: `text`, `email`, `password`, etc.",
474
+ apiFormInputType: "render mode: `input | textarea | select | checkbox`",
475
+ apiOptions: "options for `select` mode in the `{ value, label, disabled? }` shape",
476
+ apiErrorMessage: "error text displayed under the field",
477
+ showcaseTitle: "Demo form",
478
+ showcaseDescription: "Live example showing all input variants inside one form.",
479
+ showcaseText: "Name",
480
+ showcaseSelect: "Role",
481
+ showcaseTextarea: "About",
482
+ showcaseCheckbox: "Consent",
483
+ showcaseValue: "Current value",
484
+ codeTitle: "Integration example",
485
+ codeTemplate: "Template",
486
+ codeLogic: "Component logic",
487
+ demo: {
488
+ fullName: "Full name",
489
+ fullNamePlaceholder: "Jane Cooper",
490
+ email: "Work email",
491
+ emailPlaceholder: "jane@duckdev.dev",
492
+ role: "Role",
493
+ rolePlaceholder: "Choose a role",
494
+ bio: "Short bio",
495
+ bioPlaceholder: "For example: building an internal design system for the product",
496
+ agreement: "I agree to data processing and product update communication",
497
+ errors: {
498
+ required: "This field is required",
499
+ email: "Enter a valid email",
500
+ minlength: "Minimum 3 characters",
501
+ requiredTrue: "You need to confirm consent",
502
+ invalid: "Check the field value"
503
+ }
432
504
  }
433
505
  };
434
506
  var badgeDoc = {
@@ -536,6 +608,48 @@ var cardDoc = {
536
608
  orange: "Orange",
537
609
  gray: "Gray",
538
610
  dark: "Dark"
611
+ },
612
+ minimal: {
613
+ title: "Card Minimal",
614
+ description: "A restrained modern card with a thin accent line, soft border and clean spacing. Suitable for notes, statuses and compact content blocks.",
615
+ usage: "Usage:",
616
+ inputs: "Inputs:",
617
+ examples: "Examples:",
618
+ examplesDesc: {
619
+ "default": "<small>System note</small><h3>Quiet by design</h3><p>Minimal surface with editorial spacing and a restrained visual rhythm.</p>",
620
+ violet: "<small>Release</small><h3>Focused update</h3><p>Soft accent for important product notes without turning the block into a banner.</p>",
621
+ orange: "<small>Highlight</small><h3>Warm emphasis</h3><p>Draws attention to short announcements, recommendations or curated content.</p>",
622
+ gray: "<small>Status</small><h3>Calm neutral state</h3><p>Works well for helper text, metadata and secondary descriptions in dense layouts.</p>",
623
+ dark: "<small>Premium</small><h3>Inverted contrast</h3><p>A stronger presentation for dashboards, summaries and high-priority contextual cards.</p>"
624
+ }
625
+ },
626
+ outline: {
627
+ title: "Card Outline",
628
+ 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.",
629
+ usage: "Usage:",
630
+ inputs: "Inputs:",
631
+ examples: "Examples:",
632
+ examplesDesc: {
633
+ "default": "<small>Editorial</small><h3>Quiet framing</h3><p>Balanced composition for product copy, descriptions and calm premium presentation.</p>",
634
+ violet: "<small>Feature</small><h3>Framed focus</h3><p>Elegant highlight for new functionality without visual noise or aggressive contrast.</p>",
635
+ orange: "<small>Curated</small><h3>Warm recommendation</h3><p>Designed for selected content, callouts and guidance where tone matters.</p>",
636
+ gray: "<small>Reference</small><h3>Measured neutral</h3><p>Useful for documentation notes, specs and secondary contextual information.</p>",
637
+ dark: "<small>Signature</small><h3>Dark edition</h3><p>Sharper and more premium look for summaries, hero snippets and dashboard insights.</p>"
638
+ }
639
+ },
640
+ signal: {
641
+ title: "Card Signal",
642
+ 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.",
643
+ usage: "Usage:",
644
+ inputs: "Inputs:",
645
+ examples: "Examples:",
646
+ examplesDesc: {
647
+ "default": "<small>Overview</small><h3>Structured message</h3><p>Clear hierarchy for concise updates, metrics or contextual notices in interfaces.</p>",
648
+ violet: "<small>Deploy</small><h3>Release checkpoint</h3><p>Technical enough for product updates while still keeping the layout polished and controlled.</p>",
649
+ orange: "<small>Attention</small><h3>Operational focus</h3><p>Useful for warnings, event streams and active system messages that need visual presence.</p>",
650
+ gray: "<small>Log</small><h3>Background context</h3><p>Subtle enough for secondary information, version notes and passive feed items.</p>",
651
+ dark: "<small>Console</small><h3>High-priority signal</h3><p>Best for stronger status communication, compact dashboards and dense information panels.</p>"
652
+ }
539
653
  }
540
654
  };
541
655
  var modalDoc = {
@@ -586,4 +700,4 @@ var en = {
586
700
  };
587
701
 
588
702
  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-CvMpinpr.mjs.map
703
+ //# sourceMappingURL=duck-dev-lib-en-Cr4fDFwj.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"duck-dev-lib-ru-JQ83ztjM.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"duck-dev-lib-en-Cr4fDFwj.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -229,6 +229,28 @@ var buttons = {
229
229
  exampleOrange: "Оранжевая",
230
230
  exampleGray: "Серая",
231
231
  exampleDark: "Тёмная"
232
+ },
233
+ neobrutal: {
234
+ title: "Neobrutalism Buttons",
235
+ description: "Три агрессивных варианта кнопок с толстыми границами, контрастными тенями и нарочито грубой геометрией. Подходят для hero-блоков, CTA и акцентных действий, где интерфейс должен выглядеть дерзко.",
236
+ usage: "Использование:",
237
+ inputs: "Входные параметры:",
238
+ inputText: "основной текст кнопки",
239
+ inputSubtext: "маленький ярлык для burst-варианта",
240
+ inputHelperText: "вторичная подпись для slab-варианта",
241
+ inputTag: "короткий тег или номер для tag-варианта",
242
+ inputColorButton: "цветовая схема (White, Gray, Dark, Violet, Orange)",
243
+ inputIsDisabled: "отключает кнопку и гасит интерактивные эффекты",
244
+ examples: "Примеры:",
245
+ exampleBurstWhite: "Burst / White",
246
+ exampleBurstViolet: "Burst / Violet",
247
+ exampleBurstDark: "Burst / Dark",
248
+ exampleSlabGray: "Slab / Gray",
249
+ exampleSlabOrange: "Slab / Orange",
250
+ exampleSlabDisabled: "Slab / Disabled",
251
+ exampleTagOrange: "Tag / Orange",
252
+ exampleTagViolet: "Tag / Violet",
253
+ exampleTagDark: "Tag / Dark"
232
254
  }
233
255
  };
234
256
  var segmentDoc = {
@@ -291,6 +313,18 @@ var loaders = {
291
313
  inputNone: "Компонент не имеет входных параметров",
292
314
  inputCss: "Настройка через CSS",
293
315
  examples: "Примеры:"
316
+ },
317
+ neobrutal: {
318
+ title: "Neobrutalism Loaders",
319
+ description: "Три нарочито дерзких загрузчика с толстыми границами, жёсткими тенями, стикерной геометрией и аркадной анимацией. Подходят для промо-экранов, дашбордов и пустых состояний, где индикатор загрузки должен быть частью визуального языка, а не нейтральной заглушкой.",
320
+ usage: "Использование:",
321
+ inputs: "Входные параметры:",
322
+ inputNone: "Компоненты не имеют входных параметров",
323
+ inputCss: "Цвета и масштаб при необходимости можно переопределить через CSS",
324
+ examples: "Примеры:",
325
+ exampleStamp: "Stamp spinner",
326
+ exampleBars: "Punch bars",
327
+ exampleMarquee: "Ticker pill"
294
328
  }
295
329
  };
296
330
  var tabsComponent = {
@@ -329,6 +363,30 @@ var tabsComponent = {
329
363
  implementation3: "Используйте signal для хранения активной вкладки",
330
364
  implementation4: "Обработайте событие tabChange для переключения контента",
331
365
  implementation5: "Разместите контент вкладок внутри компонента используя условные блоки"
366
+ },
367
+ neobrutal: {
368
+ usage: "Neobrutalism варианты:",
369
+ examples: "Neobrutalism примеры:",
370
+ horizontalTitle: "Горизонтальный / Neobrutal",
371
+ verticalTitle: "Вертикальный / Neobrutal",
372
+ kickerRush: "Queue",
373
+ cardRushTitle: "Rush lane включён",
374
+ cardRushText: "Горизонтальный вариант подходит для компактных сценариев, шагов, промо-панелей и любых блоков, где активное состояние должно считываться мгновенно.",
375
+ kickerDrop: "Drop",
376
+ cardDropTitle: "Drop room открыт",
377
+ cardDropText: "Каждая вкладка выглядит как стикер-карточка с плотными цветовыми плоскостями, смещёнными тенями и тяжёлой рамкой вокруг контента.",
378
+ kickerReview: "Review",
379
+ cardReviewTitle: "Review desk зафиксирован",
380
+ cardReviewText: "Активная вкладка намеренно выдвигается вперёд, поэтому навигация ощущается не нейтральным переключателем, а выразительной control strip-панелью.",
381
+ storyPulseChip: "Pulse",
382
+ storyPulseTitle: "Боковые tabs для интерфейсов с сильной навигацией",
383
+ storyPulseText: "Вертикальный neobrutal-вариант хорошо ложится в settings-экраны, дашборды и сайдбары, где секции должны жёстко отделяться визуально.",
384
+ storyStackChip: "Stack",
385
+ storyStackTitle: "Крупно, громко и легко сканируется",
386
+ storyStackText: "Большие маркеры, жёсткие тени и движущийся боковой индикатор помогают быстро увидеть активный раздел даже в плотной раскладке.",
387
+ storyBlastChip: "Blast",
388
+ storyBlastTitle: "Подходит для промо и editorial-блоков",
389
+ storyBlastText: "Контентная зона повторяет ту же brutal-геометрию, поэтому tabs и панель воспринимаются как единый собранный интерфейс, а не как две разные сущности."
332
390
  }
333
391
  };
334
392
  var svgComponent = {
@@ -349,52 +407,66 @@ var svgComponent = {
349
407
  copied: "Скопировано!"
350
408
  };
351
409
  var inputComponent = {
352
- title: "Компонент поля ввода",
353
- inputField: {
354
- title: "Компонент поля ввода",
355
- description: "Универсальный компонент формы, поддерживающий текстовые поля, текстовые области и чекбоксы с встроенной валидацией и обработкой ошибок.",
356
- usage: "Использование",
357
- usageText1: "Импортируйте InputFieldComponent в свой компонент.",
358
- usageText2: "Создайте FormGroup с помощью FormBuilder и определите form controls.",
359
- usageText3: "Передайте форму, имя контроля и дополнительные параметры в компонент.",
360
- required: "обязательный",
361
- optional: "необязательный",
362
- inputs: "Входные параметры",
363
- inputForm: "Экземпляр FormGroup, содержащий элементы формы",
364
- inputControlName: "Имя form control для привязки",
365
- inputLabel: "Текст метки, отображаемый над полем ввода (по умолчанию: '')",
366
- inputPlaceholder: "Текст placeholder для поля ввода (по умолчанию: '')",
367
- inputType: "HTML-тип поля (text, email, password, number и т. д.) (по умолчанию: 'text')",
368
- inputFormInputType: "Тип элемента формы для отображения (по умолчанию: 'input')",
369
- typeInput: "Стандартное поле ввода",
370
- typeTextarea: "Многострочная текстовая область",
371
- typeCheckbox: "Чекбокс с пользовательским стилем",
372
- inputErrorMessage: "Сообщение об ошибке, отображаемое при неуспешной валидации (по умолчанию: '')",
373
- features: "Особенности",
374
- feature1: "Поддержка трёх типов элементов формы: input, textarea, checkbox",
375
- feature2: "Автоматическая визуализация состояния валидации (класс ошибки при invalid и touched)",
376
- feature3: "Отображение пользовательских сообщений об ошибках",
377
- feature4: "Интеграция с Angular Reactive Forms",
378
- feature5: "Пользовательский стиль для чекбокса с SVG-галочкой",
379
- feature6: "Гибкая конфигурация через input signals",
380
- feature7: "Поддержка ng-content для вставки кастомных меток чекбокса",
381
- api: "API",
382
- apiForm: "Обязательный FormGroup, управляющий состоянием формы",
383
- apiControlName: "Обязательное строковое имя элемента формы",
384
- apiLabel: "Необязательный текст метки",
385
- apiPlaceholder: "Необязательный placeholder",
386
- apiType: "Необязательный атрибут HTML-типа",
387
- apiFormInputType: "Необязательный тип отображаемого элемента",
388
- apiErrorMessage: "Необязательное сообщение об ошибке, отображаемое при недействительном поле",
389
- implementation: "Детали реализации",
390
- implementation1: "Компонент использует основанные на сигналах Angular inputs для улучшенной производительности",
391
- implementation2: "Поддерживает привязку formControlName для интеграции с реактивными формами",
392
- implementation3: "Стилизация ошибок применяется автоматически, если control недействителен и был затронут",
393
- implementation4: "Тип checkbox включает SVG-дизайн",
394
- implementation5: "Все типы полей имеют единый стиль благодаря общим CSS-классам",
395
- implementation6: "Сообщения об ошибках отображаются при условии наличия errorMessage",
396
- example: "Пример использования",
397
- exampleComponent: "Компонент с примером формы"
410
+ title: "Duck Dev Input",
411
+ eyebrow: "Form System",
412
+ description: "Единый компонент для `input`, `textarea`, `select` и `checkbox`. Подходит для форм, фильтров и onboarding-сценариев, где важно сохранить одинаковый визуальный язык и простую интеграцию с Reactive Forms.",
413
+ heroPointType: "Типы полей",
414
+ heroPointTypeValue: "text, email, password, textarea, select, checkbox",
415
+ heroPointIntegration: "Интеграция",
416
+ heroPointIntegrationValue: "Angular Reactive Forms + signal inputs",
417
+ heroPointUseCase: "Когда использовать",
418
+ heroPointUseCaseValue: "Формы профиля, регистрации, обратной связи и настроек",
419
+ overviewTitle: "Что умеет компонент",
420
+ overviewDescription: "Один API закрывает несколько сценариев ввода и держит стили под контролем, чтобы на странице не смешивались разные паттерны полей.",
421
+ featuresTitle: "Ключевые возможности",
422
+ feature1: "Единая обвязка для стандартного поля, многострочного текста, списка выбора и чекбокса.",
423
+ feature2: "Состояние ошибки отображается автоматически, если control стал invalid и touched.",
424
+ feature3: "Сообщение об ошибке передается извне, поэтому правила валидации остаются в родительской форме.",
425
+ feature4: "Новый режим `select` поддерживает placeholder и список опций через `options`.",
426
+ feature5: "Чекбокс использует `ng-content`, поэтому текст согласия или подписи можно оформить свободно.",
427
+ examplesTitle: "Быстрые сценарии",
428
+ exampleText: "Текстовое поле",
429
+ exampleTextCaption: "Подходит для имени, почты, пароля и любых однострочных значений.",
430
+ exampleSelect: "Новый select",
431
+ exampleSelectCaption: "Используется для ролей, категорий, статусов и других ограниченных наборов значений.",
432
+ exampleTextarea: "Textarea",
433
+ exampleTextareaCaption: "Удобен для описаний, заметок и свободного текста.",
434
+ apiTitle: "API",
435
+ apiForm: "обязательный `FormGroup`, к которому привязывается поле",
436
+ apiControlName: "имя form control внутри переданной формы",
437
+ apiLabel: "подпись над полем; для checkbox обычно оставляют пустой",
438
+ apiPlaceholder: "placeholder для input, textarea и select",
439
+ apiType: "HTML-тип для стандартного input: `text`, `email`, `password` и т.д.",
440
+ apiFormInputType: "режим рендера: `input | textarea | select | checkbox`",
441
+ apiOptions: "список опций для режима `select` в формате `{ value, label, disabled? }`",
442
+ apiErrorMessage: "текст ошибки, который показывается под полем",
443
+ showcaseTitle: "Демо-форма",
444
+ showcaseDescription: "Живой пример использования всех вариантов компонента в одной форме.",
445
+ showcaseText: "Имя",
446
+ showcaseSelect: "Роль",
447
+ showcaseTextarea: "О себе",
448
+ showcaseCheckbox: "Согласие",
449
+ showcaseValue: "Текущее значение",
450
+ codeTitle: "Пример подключения",
451
+ codeTemplate: "Шаблон",
452
+ codeLogic: "Логика компонента",
453
+ demo: {
454
+ fullName: "Полное имя",
455
+ fullNamePlaceholder: "Иван Петров",
456
+ email: "Рабочая почта",
457
+ emailPlaceholder: "ivan@duckdev.dev",
458
+ role: "Роль",
459
+ rolePlaceholder: "Выберите роль",
460
+ bio: "Коротко о проекте",
461
+ bioPlaceholder: "Например: делаем внутреннюю дизайн-систему для продукта",
462
+ agreement: "Я соглашаюсь на обработку данных и получение обновлений по продукту",
463
+ errors: {
464
+ required: "Поле обязательно для заполнения",
465
+ email: "Введите корректный email",
466
+ minlength: "Минимум 3 символа",
467
+ requiredTrue: "Нужно подтвердить согласие",
468
+ invalid: "Проверьте значение поля"
469
+ }
398
470
  }
399
471
  };
400
472
  var badgeDoc = {
@@ -502,6 +574,48 @@ var cardDoc = {
502
574
  orange: "Orange",
503
575
  gray: "Gray",
504
576
  dark: "Dark"
577
+ },
578
+ minimal: {
579
+ title: "Минималистичная карточка",
580
+ description: "Сдержанная современная карточка с тонкой акцентной линией, мягкой рамкой и аккуратными отступами. Подходит для заметок, статусов и компактных смысловых блоков.",
581
+ usage: "Использование:",
582
+ inputs: "Входные параметры:",
583
+ examples: "Примеры:",
584
+ examplesDesc: {
585
+ "default": "<small>System note</small><h3>Тихий акцент</h3><p>Минимальная поверхность с аккуратным ритмом, чистыми отступами и ощущением дорогого интерфейса.</p>",
586
+ violet: "<small>Release</small><h3>Сфокусированное обновление</h3><p>Мягкий акцент для важных заметок о продукте, который не превращает блок в баннер.</p>",
587
+ orange: "<small>Highlight</small><h3>Тёплый фокус</h3><p>Подходит для коротких анонсов, рекомендаций и контента, который нужно деликатно выделить.</p>",
588
+ gray: "<small>Status</small><h3>Спокойный нейтральный тон</h3><p>Хорошо работает для вспомогательного текста, метаданных и вторичных описаний в плотных интерфейсах.</p>",
589
+ dark: "<small>Premium</small><h3>Инвертированный контраст</h3><p>Более выразительная подача для дашбордов, summary-блоков и приоритетных карточек.</p>"
590
+ }
591
+ },
592
+ outline: {
593
+ title: "Карточка с рамкой",
594
+ description: "Более собранная и дорогая карточка с тонкой внутренней рамкой, чистым акцентом и спокойной премиальной подачей. Подходит для продуктовых заметок, editorial-блоков и выделенных описаний.",
595
+ usage: "Использование:",
596
+ inputs: "Входные параметры:",
597
+ examples: "Примеры:",
598
+ examplesDesc: {
599
+ "default": "<small>Editorial</small><h3>Тихая рамка</h3><p>Сбалансированная композиция для продуктового текста, описаний и спокойной премиальной подачи.</p>",
600
+ violet: "<small>Feature</small><h3>Фокус в рамке</h3><p>Элегантный акцент для новой функциональности без лишнего шума и агрессивного контраста.</p>",
601
+ orange: "<small>Curated</small><h3>Тёплая рекомендация</h3><p>Подходит для отобранного контента, callout-блоков и подсказок, где важен тон.</p>",
602
+ gray: "<small>Reference</small><h3>Сдержанный нейтрал</h3><p>Удобна для заметок в документации, спецификаций и вторичной контекстной информации.</p>",
603
+ dark: "<small>Signature</small><h3>Тёмная версия</h3><p>Более резкая и премиальная подача для summary-блоков, hero-фрагментов и инсайтов в дашборде.</p>"
604
+ }
605
+ },
606
+ signal: {
607
+ title: "Сигнальная карточка",
608
+ description: "Более техничная современная карточка с сеткой, точной верхней линией и собранным data-driven характером. Подходит для метрик, обновлений и системной коммуникации.",
609
+ usage: "Использование:",
610
+ inputs: "Входные параметры:",
611
+ examples: "Примеры:",
612
+ examplesDesc: {
613
+ "default": "<small>Overview</small><h3>Структурное сообщение</h3><p>Чёткая иерархия для коротких обновлений, метрик и контекстных уведомлений в интерфейсе.</p>",
614
+ violet: "<small>Deploy</small><h3>Точка релиза</h3><p>Достаточно технологична для продуктовых обновлений, но при этом остаётся собранной и аккуратной.</p>",
615
+ orange: "<small>Attention</small><h3>Операционный фокус</h3><p>Подходит для предупреждений, потоков событий и активных системных сообщений, которым нужна заметность.</p>",
616
+ gray: "<small>Log</small><h3>Фоновый контекст</h3><p>Достаточно деликатна для вторичной информации, заметок о версиях и пассивных элементов ленты.</p>",
617
+ dark: "<small>Console</small><h3>Приоритетный сигнал</h3><p>Лучше всего работает для сильных статусных сообщений, компактных дашбордов и плотных инфо-панелей.</p>"
618
+ }
505
619
  }
506
620
  };
507
621
  var modalDoc = {
@@ -551,4 +665,4 @@ var ru = {
551
665
  };
552
666
 
553
667
  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-JQ83ztjM.mjs.map
668
+ //# sourceMappingURL=duck-dev-lib-ru-eYhKbOtN.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"duck-dev-lib-en-CvMpinpr.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"duck-dev-lib-ru-eYhKbOtN.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}