duck-dev-lib 0.0.3 → 0.0.5

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.
@@ -1,5 +1,6 @@
1
1
  import * as i0 from '@angular/core';
2
- import { input, computed, Component } from '@angular/core';
2
+ import { input, computed, Component, output, signal } from '@angular/core';
3
+ import { CommonModule } from '@angular/common';
3
4
 
4
5
  var ButtonEnumColor;
5
6
  (function (ButtonEnumColor) {
@@ -170,6 +171,58 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.1", ngImpor
170
171
  args: [{ selector: 'duck-dev-button-glide-over', standalone: true, imports: [], template: "<button\n type=\"button\"\n class=\"rounded-button rounded-button--glide-over\"\n [style]=\"buttonStyle()\"\n>\n<span class=\"button-glide-over__container\">\n <span class=\"button-glide-over__icon is-first\">\n <svg\n class=\"button-glide-over__icon-item\"\n style=\"--index: 3\"\n viewBox=\"0 0 256 256\"\n >\n <path\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n stroke-width=\"24\"\n d=\"M40 128h176M144 56l72 72-72 72\"\n />\n </svg>\n </span>\n\n <span class=\"button-glide-over__text\">{{ textButton() }}</span>\n\n <span class=\"button-glide-over__icon is-last\">\n <svg\n class=\"button-glide-over__icon-item\"\n style=\"--index: 0\"\n viewBox=\"0 0 256 256\"\n >\n <path\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n stroke-width=\"20\"\n d=\"M40 128h176M144 56l72 72-72 72\"\n />\n </svg>\n </span>\n </span>\n\n<span class=\"button-glide-over__background\"></span>\n</button>\n", styles: ["@charset \"UTF-8\";:root{--dd-appear-time: .5s;--dd-gray-0: #ffffff;--dd-gray-100: #f8f5f6;--dd-gray-200: #f2f4f5;--dd-gray-300: #eaeaea;--dd-gray-400: #999999;--dd-gray-500: #252525;--dd-gray-600: #121312;--dd-secondary: #6829ff;--dd-accent-orange: #fe7b20;--dd-orange-active: #e5350f;--dd-accent-pink: #fd6ca9;--dd-accent-yellow: #ffd027;--dd-accent-blue: #3254f3;--dd-base-0: var(--dd-gray-0);--dd-base-100: var(--dd-gray-100);--dd-base-200: var(--dd-gray-200);--dd-base-300: var(--dd-gray-300);--dd-base-400: var(--dd-gray-400);--dd-base-500: var(--dd-gray-500);--dd-base-600: var(--dd-gray-600);--dd-background: var(--dd-gray-200);--dd-base-secondary: var(--dd-secondary);--dd-base-accent-orange: var(--dd-accent-orange);--dd-base-active-orange: var(--dd-orange-active);--dd-base-accent-pink: var(--dd-accent-pink);--dd-base-accent-yellow: var(--dd-accent-yellow);--dd-base-accent-blue: var(--dd-accent-blue)}[ddTheme=dark]{--dd-base-0: var(--dd-gray-600);--dd-base-100: var(--dd-gray-500);--dd-base-200: var(--dd-gray-400);--dd-base-300: var(--dd-gray-300);--dd-base-400: var(--dd-gray-200);--dd-base-500: var(--dd-gray-100);--dd-base-600: var(--dd-gray-0);--dd-background: var(--dd-gray-500)}[ddTheme=violet]{--dd-base-50: var(--dd-magenta-500)}:root{--elastic-ease: linear( 0, .2178 2.1%, 1.1144 8.49%, 1.2959 10.7%, 1.3463 11.81%, 1.3705 12.94%, 1.3726, 1.3643 14.48%, 1.3151 16.2%, 1.0317 21.81%, .941 24.01%, .8912 25.91%, .8694 27.84%, .8698 29.21%, .8824 30.71%, 1.0122 38.33%, 1.0357, 1.046 42.71%, 1.0416 45.7%, .9961 53.26%, .9839 57.54%, .9853 60.71%, 1.0012 68.14%, 1.0056 72.24%, .9981 86.66%, 1 100% );--elastic-ease-out: linear( 0, .5737 7.6%, .8382 11.87%, .9463 14.19%, 1.0292 16.54%, 1.0886 18.97%, 1.1258 21.53%, 1.137 22.97%, 1.1424 24.48%, 1.1423 26.1%, 1.1366 27.86%, 1.1165 31.01%, 1.0507 38.62%, 1.0219 42.57%, .9995 46.99%, .9872 51.63%, .9842 58.77%, 1.0011 81.26%, 1 );--transform-ease: cubic-bezier(.32, .72, 0, 1);--opacity-ease: ease-out}.rounded-button{font-style:normal;font-family:Inter,sans-serif;font-size:18px;font-weight:500;display:inline-flex;align-items:center;justify-content:center;min-width:64px;width:100%;text-wrap:nowrap;background-color:var(--btn-bg-color);color:var(--btn-text-color);padding:var(--btn-padding);border:1px solid var(--btn-border-color);border-radius:69px;cursor:pointer;transition:all .2s ease-in-out,background-color .6s ease-in-out}.rounded-button:hover{background-color:var(--btn-hover-color);box-shadow:0 2px 6px #00000040}.rounded-button:active{background-color:var(--btn-active-color);transform:scale(.98)}.rounded-button:focus{outline:none}.rounded-button:disabled{background-color:var(--nx-base-200)!important;color:var(--nx-base-400)!important;cursor:not-allowed;box-shadow:none!important}.rounded-button:disabled:hover,.rounded-button:disabled:active,.rounded-button:disabled:focus{background-color:var(--nx-base-200)!important;transform:none!important}.rounded-button--blur-lift{position:relative;overflow:hidden;padding:0}.rounded-button--blur-lift:hover{box-shadow:none;background-color:var(--btn-bg-color)}.rounded-button--blur-lift:active{transform:none;background-color:var(--btn-bg-color)}.rounded-button--glide-over{display:grid;place-content:center;position:relative;overflow:hidden;padding:0;background:transparent;border:none;cursor:pointer}.rounded-button--glide-over:hover,.rounded-button--glide-over:active{background:transparent;box-shadow:none}.button-blur-lift__screen-reader-text{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.button-blur-lift__container{position:relative;display:flex;align-items:center;justify-content:center;padding:var(--btn-padding);z-index:1;width:100%;height:100%}.button-blur-lift__text{display:flex;position:relative}.button-blur-lift__letter-outer{display:inline-block;position:relative;transform-style:preserve-3d;perspective:1000px}.button-blur-lift__letter{display:inline-block;transform-origin:center center -.5em;transition:transform .6s cubic-bezier(.32,.72,0,1),filter .6s ease-out,opacity .6s ease-out;will-change:transform,filter,opacity}.button-blur-lift__letter[style*=\"--index: 0\"]{position:relative;filter:blur(0px);opacity:1;transform:rotateX(0)}.button-blur-lift__letter[style*=\"--index: 1\"]{position:absolute;top:0;left:0;filter:blur(2px);opacity:0;transform:rotateX(-90deg)}.button-blur-lift__letter[style*=\"--index: 2\"]{position:absolute;top:0;left:0;filter:blur(4px);opacity:0;transform:rotateX(-180deg)}.button-blur-lift__hover-text{display:flex;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);white-space:nowrap;pointer-events:none}.button-blur-lift__hover-letter-outer{display:inline-block;position:relative;transform-style:preserve-3d;perspective:1000px}.button-blur-lift__hover-letter{display:inline-block;transform-origin:center center .5em;transition:transform .6s cubic-bezier(.32,.72,0,1),filter .6s ease-out,opacity .6s ease-out;will-change:transform,filter,opacity}.button-blur-lift__hover-letter[style*=\"--index: 0\"]{position:relative;filter:blur(4px);opacity:0;transform:rotateX(180deg)}.button-blur-lift__hover-letter[style*=\"--index: 1\"]{position:absolute;top:0;left:0;filter:blur(2px);opacity:0;transform:rotateX(90deg)}.button-blur-lift__hover-letter[style*=\"--index: 2\"]{position:absolute;top:0;left:0;filter:blur(0px);opacity:0;transform:rotateX(0)}.button-blur-lift__background{position:absolute;top:0;left:0;width:100%;height:100%;background:var(--btn-bg-color);transition:background-color .3s ease;border-radius:inherit;z-index:0}.rounded-button--blur-lift:hover .button-blur-lift__letter[style*=\"--index: 0\"]{filter:blur(4px);opacity:0;transform:rotateX(180deg)}.rounded-button--blur-lift:hover .button-blur-lift__letter[style*=\"--index: 1\"]{filter:blur(2px);opacity:0;transform:rotateX(90deg)}.rounded-button--blur-lift:hover .button-blur-lift__letter[style*=\"--index: 2\"]{filter:blur(0px);opacity:0;transform:rotateX(0)}.rounded-button--blur-lift:hover .button-blur-lift__hover-text .button-blur-lift__hover-letter[style*=\"--index: 0\"]{filter:blur(0px);opacity:1;transform:rotateX(0)}.rounded-button--blur-lift:hover .button-blur-lift__hover-text .button-blur-lift__hover-letter[style*=\"--index: 1\"]{filter:blur(2px);opacity:0;transform:rotateX(-90deg)}.rounded-button--blur-lift:hover .button-blur-lift__hover-text .button-blur-lift__hover-letter[style*=\"--index: 2\"]{filter:blur(4px);opacity:0;transform:rotateX(-180deg)}.rounded-button--blur-lift:hover .button-blur-lift__background{background-color:var(--btn-hover-color)}.rounded-button--blur-lift:not(:has(.button-blur-lift__hover-text)):hover .button-blur-lift__letter[style*=\"--index: 0\"]{filter:blur(0px);opacity:1;transform:rotateX(0)}.button-blur-lift__letter-outer[style*=\"--index-outer: 0\"] .button-blur-lift__letter,.button-blur-lift__hover-letter-outer[style*=\"--index-outer: 0\"] .button-blur-lift__hover-letter{transition-delay:0s}.button-blur-lift__letter-outer[style*=\"--index-outer: 1\"] .button-blur-lift__letter,.button-blur-lift__hover-letter-outer[style*=\"--index-outer: 1\"] .button-blur-lift__hover-letter{transition-delay:.03s}.button-blur-lift__letter-outer[style*=\"--index-outer: 2\"] .button-blur-lift__letter,.button-blur-lift__hover-letter-outer[style*=\"--index-outer: 2\"] .button-blur-lift__hover-letter{transition-delay:.06s}.button-blur-lift__letter-outer[style*=\"--index-outer: 3\"] .button-blur-lift__letter,.button-blur-lift__hover-letter-outer[style*=\"--index-outer: 3\"] .button-blur-lift__hover-letter{transition-delay:.09s}.button-blur-lift__letter-outer[style*=\"--index-outer: 4\"] .button-blur-lift__letter,.button-blur-lift__hover-letter-outer[style*=\"--index-outer: 4\"] .button-blur-lift__hover-letter{transition-delay:.12s}.button-blur-lift__letter-outer[style*=\"--index-outer: 5\"] .button-blur-lift__letter,.button-blur-lift__hover-letter-outer[style*=\"--index-outer: 5\"] .button-blur-lift__hover-letter{transition-delay:.15s}.button-blur-lift__letter-outer[style*=\"--index-outer: 6\"] .button-blur-lift__letter,.button-blur-lift__hover-letter-outer[style*=\"--index-outer: 6\"] .button-blur-lift__hover-letter{transition-delay:.18s}.button-blur-lift__letter-outer[style*=\"--index-outer: 7\"] .button-blur-lift__letter,.button-blur-lift__hover-letter-outer[style*=\"--index-outer: 7\"] .button-blur-lift__hover-letter{transition-delay:.21s}.button-blur-lift__letter-outer[style*=\"--index-outer: 8\"] .button-blur-lift__letter,.button-blur-lift__hover-letter-outer[style*=\"--index-outer: 8\"] .button-blur-lift__hover-letter{transition-delay:.24s}.button-blur-lift__letter-outer[style*=\"--index-outer: 9\"] .button-blur-lift__letter,.button-blur-lift__hover-letter-outer[style*=\"--index-outer: 9\"] .button-blur-lift__hover-letter{transition-delay:.27s}.button-blur-lift__letter-outer[style*=\"--index-outer: 10\"] .button-blur-lift__letter,.button-blur-lift__hover-letter-outer[style*=\"--index-outer: 10\"] .button-blur-lift__hover-letter{transition-delay:.3s}.button-blur-lift__letter-outer[style*=\"--index-outer: 11\"] .button-blur-lift__letter,.button-blur-lift__hover-letter-outer[style*=\"--index-outer: 11\"] .button-blur-lift__hover-letter{transition-delay:.33s}.button-blur-lift__letter-outer[style*=\"--index-outer: 12\"] .button-blur-lift__letter,.button-blur-lift__hover-letter-outer[style*=\"--index-outer: 12\"] .button-blur-lift__hover-letter{transition-delay:.36s}.button-blur-lift__letter-outer[style*=\"--index-outer: 13\"] .button-blur-lift__letter,.button-blur-lift__hover-letter-outer[style*=\"--index-outer: 13\"] .button-blur-lift__hover-letter{transition-delay:.39s}.button-blur-lift__letter-outer[style*=\"--index-outer: 14\"] .button-blur-lift__letter,.button-blur-lift__hover-letter-outer[style*=\"--index-outer: 14\"] .button-blur-lift__hover-letter{transition-delay:.42s}.button-blur-lift__letter-outer[style*=\"--index-outer: 15\"] .button-blur-lift__letter,.button-blur-lift__hover-letter-outer[style*=\"--index-outer: 15\"] .button-blur-lift__hover-letter{transition-delay:.45s}.button-blur-lift__letter-outer[style*=\"--index-outer: 16\"] .button-blur-lift__letter,.button-blur-lift__hover-letter-outer[style*=\"--index-outer: 16\"] .button-blur-lift__hover-letter{transition-delay:.48s}.button-blur-lift__letter-outer[style*=\"--index-outer: 17\"] .button-blur-lift__letter,.button-blur-lift__hover-letter-outer[style*=\"--index-outer: 17\"] .button-blur-lift__hover-letter{transition-delay:.51s}.button-blur-lift__letter-outer[style*=\"--index-outer: 18\"] .button-blur-lift__letter,.button-blur-lift__hover-letter-outer[style*=\"--index-outer: 18\"] .button-blur-lift__hover-letter{transition-delay:.54s}.button-blur-lift__letter-outer[style*=\"--index-outer: 19\"] .button-blur-lift__letter,.button-blur-lift__hover-letter-outer[style*=\"--index-outer: 19\"] .button-blur-lift__hover-letter{transition-delay:.57s}.button-blur-lift__letter-outer[style*=\"--index-outer: 20\"] .button-blur-lift__letter,.button-blur-lift__hover-letter-outer[style*=\"--index-outer: 20\"] .button-blur-lift__hover-letter{transition-delay:.6s}.button-blur-lift__letter-outer[style*=\"--index-outer: 21\"] .button-blur-lift__letter,.button-blur-lift__hover-letter-outer[style*=\"--index-outer: 21\"] .button-blur-lift__hover-letter{transition-delay:.63s}.button-blur-lift__letter-outer[style*=\"--index-outer: 22\"] .button-blur-lift__letter,.button-blur-lift__hover-letter-outer[style*=\"--index-outer: 22\"] .button-blur-lift__hover-letter{transition-delay:.66s}.button-blur-lift__letter-outer[style*=\"--index-outer: 23\"] .button-blur-lift__letter,.button-blur-lift__hover-letter-outer[style*=\"--index-outer: 23\"] .button-blur-lift__hover-letter{transition-delay:.69s}.button-blur-lift__letter-outer[style*=\"--index-outer: 24\"] .button-blur-lift__letter,.button-blur-lift__hover-letter-outer[style*=\"--index-outer: 24\"] .button-blur-lift__hover-letter{transition-delay:.72s}.button-blur-lift__letter-outer[style*=\"--index-outer: 25\"] .button-blur-lift__letter,.button-blur-lift__hover-letter-outer[style*=\"--index-outer: 25\"] .button-blur-lift__hover-letter{transition-delay:.75s}.button-blur-lift__letter-outer[style*=\"--index-outer: 26\"] .button-blur-lift__letter,.button-blur-lift__hover-letter-outer[style*=\"--index-outer: 26\"] .button-blur-lift__hover-letter{transition-delay:.78s}.button-blur-lift__letter-outer[style*=\"--index-outer: 27\"] .button-blur-lift__letter,.button-blur-lift__hover-letter-outer[style*=\"--index-outer: 27\"] .button-blur-lift__hover-letter{transition-delay:.81s}.button-blur-lift__letter-outer[style*=\"--index-outer: 28\"] .button-blur-lift__letter,.button-blur-lift__hover-letter-outer[style*=\"--index-outer: 28\"] .button-blur-lift__hover-letter{transition-delay:.84s}.button-blur-lift__letter-outer[style*=\"--index-outer: 29\"] .button-blur-lift__letter,.button-blur-lift__hover-letter-outer[style*=\"--index-outer: 29\"] .button-blur-lift__hover-letter{transition-delay:.87s}.button-blur-lift__letter-outer[style*=\"--index-outer: 30\"] .button-blur-lift__letter,.button-blur-lift__hover-letter-outer[style*=\"--index-outer: 30\"] .button-blur-lift__hover-letter{transition-delay:.9s}.rounded-button--blur-lift:active .button-blur-lift__background{background-color:var(--btn-active-color)}.rounded-button--glide-over{display:inline-grid;place-content:center;position:relative;overflow:hidden;border:none;background:transparent;cursor:pointer;border-radius:9999px;transition:all .4s ease;--opacity-ease: ease-in-out;--transform-ease: cubic-bezier(.19, 1, .22, 1);--elastic-ease: cubic-bezier(.68, -.55, .27, 1.55)}.rounded-button--glide-over:hover,.rounded-button--glide-over:focus{outline:none}.button-glide-over__container{display:flex;align-items:center;justify-content:center;padding:var(--btn-padding);position:relative;z-index:2}.button-glide-over__text{position:relative;z-index:1;transition:transform .6s var(--transform-ease);transform:translate(-.375rem)}.button-glide-over__icon{width:1.25rem;height:1.25rem;flex-shrink:0;display:block;position:relative}.button-glide-over__icon svg{width:100%;height:100%;stroke:currentColor;fill:none}.button-glide-over__icon.is-last{margin-left:.5rem;transition:opacity .5s ease,transform .6s var(--elastic-ease);opacity:1}.button-glide-over__icon.is-first{position:absolute;left:0;top:50%;transform:translateY(-50%) translate(-120%);opacity:0;transition:opacity .6s ease,transform .9s var(--elastic-ease)}.button-glide-over__background{position:absolute;inset:0;border-radius:inherit;background:var(--btn-bg-color);transition:background-color .4s ease;z-index:0}.rounded-button--glide-over:hover .button-glide-over__text{transform:translate(2rem)}.rounded-button--glide-over:hover .button-glide-over__icon.is-first{opacity:1;transform:translateY(-50%) translate(100%)}.rounded-button--glide-over:hover .button-glide-over__icon.is-last{opacity:0;transform:translate(100%)}\n"] }]
171
172
  }], propDecorators: { textButton: [{ type: i0.Input, args: [{ isSignal: true, alias: "textButton", required: true }] }], colorButton: [{ type: i0.Input, args: [{ isSignal: true, alias: "colorButton", required: false }] }], padding: [{ type: i0.Input, args: [{ isSignal: true, alias: "padding", required: false }] }] } });
172
173
 
174
+ class DuckDevTab {
175
+ tabs = input([], { ...(ngDevMode ? { debugName: "tabs" } : {}) });
176
+ tabChange = output();
177
+ activeTabIndex = signal(0, { ...(ngDevMode ? { debugName: "activeTabIndex" } : {}) });
178
+ animationDirection = signal('right', { ...(ngDevMode ? { debugName: "animationDirection" } : {}) });
179
+ activeTab = computed(() => this.tabs()[this.activeTabIndex()], { ...(ngDevMode ? { debugName: "activeTab" } : {}) });
180
+ selectTab(index) {
181
+ if (index === this.activeTabIndex()) {
182
+ return;
183
+ }
184
+ this.animationDirection.set(index > this.activeTabIndex() ? 'right' : 'left');
185
+ this.activeTabIndex.set(index);
186
+ this.tabChange.emit(this.tabs()[index]);
187
+ }
188
+ isActive(index) {
189
+ return this.activeTabIndex() === index;
190
+ }
191
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.1", ngImport: i0, type: DuckDevTab, deps: [], target: i0.ɵɵFactoryTarget.Component });
192
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.1", type: DuckDevTab, isStandalone: true, selector: "duck-dev-tab", inputs: { tabs: { classPropertyName: "tabs", publicName: "tabs", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { tabChange: "tabChange" }, ngImport: i0, template: "<div class=\"duck-dev-tab\">\n <div class=\"tab-header\">\n @for (tab of tabs(); track tab.id; let i = $index) {\n <button\n class=\"tab-button\"\n [class.active]=\"isActive(i)\"\n (click)=\"selectTab(i)\"\n type=\"button\"\n >\n {{ tab.label }}\n </button>\n }\n <div\n class=\"tab-indicator\"\n [style.transform]=\"'translateX(' + (activeTabIndex() * 100) + '%)'\"\n [style.width]=\"'calc(100% / ' + tabs().length + ')'\"\n ></div>\n </div>\n\n <div class=\"tab-content-wrapper\">\n <div\n class=\"tab-content\"\n [class.slide-left]=\"animationDirection() === 'left'\"\n [class.slide-right]=\"animationDirection() === 'right'\"\n [attr.data-active-index]=\"activeTabIndex()\"\n >\n <ng-content></ng-content>\n </div>\n </div>\n</div>\n", styles: [".duck-dev-tab{width:100%;display:flex;flex-direction:column}.tab-header{position:relative;display:flex;border-bottom:2px solid #e0e0e0;background:transparent}.tab-button{flex:1;padding:12px 24px;background:transparent;border:none;cursor:pointer;font-size:14px;font-weight:500;color:#666;transition:color .3s ease;position:relative;z-index:1;outline:none}.tab-button:hover{color:#333}.tab-button.active{color:#1976d2}.tab-indicator{position:absolute;bottom:-2px;left:0;height:2px;background:#1976d2;transition:transform .3s cubic-bezier(.4,0,.2,1);z-index:2}.tab-content-wrapper{position:relative;overflow:hidden;padding:20px}.tab-content{animation-duration:.3s;animation-timing-function:cubic-bezier(.4,0,.2,1);animation-fill-mode:both}.tab-content.slide-right{animation-name:slideInRight}.tab-content.slide-left{animation-name:slideInLeft}@keyframes slideInRight{0%{transform:translate(100%);opacity:0}to{transform:translate(0);opacity:1}}@keyframes slideInLeft{0%{transform:translate(-100%);opacity:0}to{transform:translate(0);opacity:1}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }] });
193
+ }
194
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.1", ngImport: i0, type: DuckDevTab, decorators: [{
195
+ type: Component,
196
+ args: [{ selector: 'duck-dev-tab', standalone: true, imports: [CommonModule], template: "<div class=\"duck-dev-tab\">\n <div class=\"tab-header\">\n @for (tab of tabs(); track tab.id; let i = $index) {\n <button\n class=\"tab-button\"\n [class.active]=\"isActive(i)\"\n (click)=\"selectTab(i)\"\n type=\"button\"\n >\n {{ tab.label }}\n </button>\n }\n <div\n class=\"tab-indicator\"\n [style.transform]=\"'translateX(' + (activeTabIndex() * 100) + '%)'\"\n [style.width]=\"'calc(100% / ' + tabs().length + ')'\"\n ></div>\n </div>\n\n <div class=\"tab-content-wrapper\">\n <div\n class=\"tab-content\"\n [class.slide-left]=\"animationDirection() === 'left'\"\n [class.slide-right]=\"animationDirection() === 'right'\"\n [attr.data-active-index]=\"activeTabIndex()\"\n >\n <ng-content></ng-content>\n </div>\n </div>\n</div>\n", styles: [".duck-dev-tab{width:100%;display:flex;flex-direction:column}.tab-header{position:relative;display:flex;border-bottom:2px solid #e0e0e0;background:transparent}.tab-button{flex:1;padding:12px 24px;background:transparent;border:none;cursor:pointer;font-size:14px;font-weight:500;color:#666;transition:color .3s ease;position:relative;z-index:1;outline:none}.tab-button:hover{color:#333}.tab-button.active{color:#1976d2}.tab-indicator{position:absolute;bottom:-2px;left:0;height:2px;background:#1976d2;transition:transform .3s cubic-bezier(.4,0,.2,1);z-index:2}.tab-content-wrapper{position:relative;overflow:hidden;padding:20px}.tab-content{animation-duration:.3s;animation-timing-function:cubic-bezier(.4,0,.2,1);animation-fill-mode:both}.tab-content.slide-right{animation-name:slideInRight}.tab-content.slide-left{animation-name:slideInLeft}@keyframes slideInRight{0%{transform:translate(100%);opacity:0}to{transform:translate(0);opacity:1}}@keyframes slideInLeft{0%{transform:translate(-100%);opacity:0}to{transform:translate(0);opacity:1}}\n"] }]
197
+ }], propDecorators: { tabs: [{ type: i0.Input, args: [{ isSignal: true, alias: "tabs", required: false }] }], tabChange: [{ type: i0.Output, args: ["tabChange"] }] } });
198
+
199
+ class LoaderLoadingBubble {
200
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.1", ngImport: i0, type: LoaderLoadingBubble, deps: [], target: i0.ɵɵFactoryTarget.Component });
201
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.0.1", type: LoaderLoadingBubble, isStandalone: true, selector: "duck-dev-loader-loading-bubble", ngImport: i0, template: "<div class=\"container\">\n <div class=\"main\">\n <span class=\"loader\">Load&nbsp;ng</span>\n </div>\n</div>\n", styles: [":root{--dd-appear-time: .5s;--dd-gray-0: #ffffff;--dd-gray-100: #f8f5f6;--dd-gray-200: #f2f4f5;--dd-gray-300: #eaeaea;--dd-gray-400: #999999;--dd-gray-500: #252525;--dd-gray-600: #121312;--dd-secondary: #6829ff;--dd-accent-orange: #fe7b20;--dd-orange-active: #e5350f;--dd-accent-pink: #fd6ca9;--dd-accent-yellow: #ffd027;--dd-accent-blue: #3254f3;--dd-base-0: var(--dd-gray-0);--dd-base-100: var(--dd-gray-100);--dd-base-200: var(--dd-gray-200);--dd-base-300: var(--dd-gray-300);--dd-base-400: var(--dd-gray-400);--dd-base-500: var(--dd-gray-500);--dd-base-600: var(--dd-gray-600);--dd-background: var(--dd-gray-200);--dd-base-secondary: var(--dd-secondary);--dd-base-accent-orange: var(--dd-accent-orange);--dd-base-active-orange: var(--dd-orange-active);--dd-base-accent-pink: var(--dd-accent-pink);--dd-base-accent-yellow: var(--dd-accent-yellow);--dd-base-accent-blue: var(--dd-accent-blue)}[ddTheme=dark]{--dd-base-0: var(--dd-gray-600);--dd-base-100: var(--dd-gray-500);--dd-base-200: var(--dd-gray-400);--dd-base-300: var(--dd-gray-300);--dd-base-400: var(--dd-gray-200);--dd-base-500: var(--dd-gray-100);--dd-base-600: var(--dd-gray-0);--dd-background: var(--dd-gray-500)}[ddTheme=violet]{--dd-base-50: var(--dd-magenta-500)}.container{display:flex;justify-content:center;align-items:center;width:100%;height:100%}.loader{color:var(--btn-text-color);position:relative;display:inline-block;margin-top:40px;font-family:Arial,Helvetica,sans-serif;font-size:48px;letter-spacing:4px;box-sizing:border-box}.loader:before{content:\"\";position:absolute;right:70px;bottom:10px;height:28px;width:5.15px;background:currentColor;box-sizing:border-box;animation:animloader1 1s linear infinite alternate}.loader:after{content:\"\";width:10px;height:10px;position:absolute;left:125px;top:2px;border-radius:50%;background:var(--dd-accent-orange);box-sizing:border-box;animation:animloader 1s linear infinite alternate}@keyframes animloader{0%{transform:translate(0) scaleX(1)}14%{transform:translate(-12px,-16px) scaleX(1.05)}28%{transform:translate(-27px,-28px) scaleX(1.07)}42%{transform:translate(-46px,-35px) scaleX(1.1)}57%{transform:translate(-70px,-37px) scaleX(1.1)}71%{transform:translate(-94px,-32px) scaleX(1.07)}85%{transform:translate(-111px,-22px) scaleX(1.05)}to{transform:translate(-125px,-9px) scaleX(1)}}@keyframes animloader1{0%{box-shadow:0 -6px,-122.9px -8px}25%,75%{box-shadow:0 0,-122.9px -8px}to{box-shadow:0 0,-122.9px -16px}}\n"] });
202
+ }
203
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.1", ngImport: i0, type: LoaderLoadingBubble, decorators: [{
204
+ type: Component,
205
+ args: [{ selector: 'duck-dev-loader-loading-bubble', imports: [], template: "<div class=\"container\">\n <div class=\"main\">\n <span class=\"loader\">Load&nbsp;ng</span>\n </div>\n</div>\n", styles: [":root{--dd-appear-time: .5s;--dd-gray-0: #ffffff;--dd-gray-100: #f8f5f6;--dd-gray-200: #f2f4f5;--dd-gray-300: #eaeaea;--dd-gray-400: #999999;--dd-gray-500: #252525;--dd-gray-600: #121312;--dd-secondary: #6829ff;--dd-accent-orange: #fe7b20;--dd-orange-active: #e5350f;--dd-accent-pink: #fd6ca9;--dd-accent-yellow: #ffd027;--dd-accent-blue: #3254f3;--dd-base-0: var(--dd-gray-0);--dd-base-100: var(--dd-gray-100);--dd-base-200: var(--dd-gray-200);--dd-base-300: var(--dd-gray-300);--dd-base-400: var(--dd-gray-400);--dd-base-500: var(--dd-gray-500);--dd-base-600: var(--dd-gray-600);--dd-background: var(--dd-gray-200);--dd-base-secondary: var(--dd-secondary);--dd-base-accent-orange: var(--dd-accent-orange);--dd-base-active-orange: var(--dd-orange-active);--dd-base-accent-pink: var(--dd-accent-pink);--dd-base-accent-yellow: var(--dd-accent-yellow);--dd-base-accent-blue: var(--dd-accent-blue)}[ddTheme=dark]{--dd-base-0: var(--dd-gray-600);--dd-base-100: var(--dd-gray-500);--dd-base-200: var(--dd-gray-400);--dd-base-300: var(--dd-gray-300);--dd-base-400: var(--dd-gray-200);--dd-base-500: var(--dd-gray-100);--dd-base-600: var(--dd-gray-0);--dd-background: var(--dd-gray-500)}[ddTheme=violet]{--dd-base-50: var(--dd-magenta-500)}.container{display:flex;justify-content:center;align-items:center;width:100%;height:100%}.loader{color:var(--btn-text-color);position:relative;display:inline-block;margin-top:40px;font-family:Arial,Helvetica,sans-serif;font-size:48px;letter-spacing:4px;box-sizing:border-box}.loader:before{content:\"\";position:absolute;right:70px;bottom:10px;height:28px;width:5.15px;background:currentColor;box-sizing:border-box;animation:animloader1 1s linear infinite alternate}.loader:after{content:\"\";width:10px;height:10px;position:absolute;left:125px;top:2px;border-radius:50%;background:var(--dd-accent-orange);box-sizing:border-box;animation:animloader 1s linear infinite alternate}@keyframes animloader{0%{transform:translate(0) scaleX(1)}14%{transform:translate(-12px,-16px) scaleX(1.05)}28%{transform:translate(-27px,-28px) scaleX(1.07)}42%{transform:translate(-46px,-35px) scaleX(1.1)}57%{transform:translate(-70px,-37px) scaleX(1.1)}71%{transform:translate(-94px,-32px) scaleX(1.07)}85%{transform:translate(-111px,-22px) scaleX(1.05)}to{transform:translate(-125px,-9px) scaleX(1)}}@keyframes animloader1{0%{box-shadow:0 -6px,-122.9px -8px}25%,75%{box-shadow:0 0,-122.9px -8px}to{box-shadow:0 0,-122.9px -16px}}\n"] }]
206
+ }] });
207
+
208
+ class LoaderClassic {
209
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.1", ngImport: i0, type: LoaderClassic, deps: [], target: i0.ɵɵFactoryTarget.Component });
210
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.0.1", type: LoaderClassic, isStandalone: true, selector: "duck-dev-loader-classic", ngImport: i0, template: "<span class=\"loader\"></span>\n", styles: [":root{--dd-appear-time: .5s;--dd-gray-0: #ffffff;--dd-gray-100: #f8f5f6;--dd-gray-200: #f2f4f5;--dd-gray-300: #eaeaea;--dd-gray-400: #999999;--dd-gray-500: #252525;--dd-gray-600: #121312;--dd-secondary: #6829ff;--dd-accent-orange: #fe7b20;--dd-orange-active: #e5350f;--dd-accent-pink: #fd6ca9;--dd-accent-yellow: #ffd027;--dd-accent-blue: #3254f3;--dd-base-0: var(--dd-gray-0);--dd-base-100: var(--dd-gray-100);--dd-base-200: var(--dd-gray-200);--dd-base-300: var(--dd-gray-300);--dd-base-400: var(--dd-gray-400);--dd-base-500: var(--dd-gray-500);--dd-base-600: var(--dd-gray-600);--dd-background: var(--dd-gray-200);--dd-base-secondary: var(--dd-secondary);--dd-base-accent-orange: var(--dd-accent-orange);--dd-base-active-orange: var(--dd-orange-active);--dd-base-accent-pink: var(--dd-accent-pink);--dd-base-accent-yellow: var(--dd-accent-yellow);--dd-base-accent-blue: var(--dd-accent-blue)}[ddTheme=dark]{--dd-base-0: var(--dd-gray-600);--dd-base-100: var(--dd-gray-500);--dd-base-200: var(--dd-gray-400);--dd-base-300: var(--dd-gray-300);--dd-base-400: var(--dd-gray-200);--dd-base-500: var(--dd-gray-100);--dd-base-600: var(--dd-gray-0);--dd-background: var(--dd-gray-500)}[ddTheme=violet]{--dd-base-50: var(--dd-magenta-500)}.loader{width:48px;height:48px;border-radius:50%;display:inline-block;border-top:3px solid var(--dd-base-600);border-right:3px solid transparent;box-sizing:border-box;animation:rotation 1s linear infinite}@keyframes rotation{0%{transform:rotate(0)}to{transform:rotate(360deg)}}\n"] });
211
+ }
212
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.1", ngImport: i0, type: LoaderClassic, decorators: [{
213
+ type: Component,
214
+ args: [{ selector: 'duck-dev-loader-classic', imports: [], template: "<span class=\"loader\"></span>\n", styles: [":root{--dd-appear-time: .5s;--dd-gray-0: #ffffff;--dd-gray-100: #f8f5f6;--dd-gray-200: #f2f4f5;--dd-gray-300: #eaeaea;--dd-gray-400: #999999;--dd-gray-500: #252525;--dd-gray-600: #121312;--dd-secondary: #6829ff;--dd-accent-orange: #fe7b20;--dd-orange-active: #e5350f;--dd-accent-pink: #fd6ca9;--dd-accent-yellow: #ffd027;--dd-accent-blue: #3254f3;--dd-base-0: var(--dd-gray-0);--dd-base-100: var(--dd-gray-100);--dd-base-200: var(--dd-gray-200);--dd-base-300: var(--dd-gray-300);--dd-base-400: var(--dd-gray-400);--dd-base-500: var(--dd-gray-500);--dd-base-600: var(--dd-gray-600);--dd-background: var(--dd-gray-200);--dd-base-secondary: var(--dd-secondary);--dd-base-accent-orange: var(--dd-accent-orange);--dd-base-active-orange: var(--dd-orange-active);--dd-base-accent-pink: var(--dd-accent-pink);--dd-base-accent-yellow: var(--dd-accent-yellow);--dd-base-accent-blue: var(--dd-accent-blue)}[ddTheme=dark]{--dd-base-0: var(--dd-gray-600);--dd-base-100: var(--dd-gray-500);--dd-base-200: var(--dd-gray-400);--dd-base-300: var(--dd-gray-300);--dd-base-400: var(--dd-gray-200);--dd-base-500: var(--dd-gray-100);--dd-base-600: var(--dd-gray-0);--dd-background: var(--dd-gray-500)}[ddTheme=violet]{--dd-base-50: var(--dd-magenta-500)}.loader{width:48px;height:48px;border-radius:50%;display:inline-block;border-top:3px solid var(--dd-base-600);border-right:3px solid transparent;box-sizing:border-box;animation:rotation 1s linear infinite}@keyframes rotation{0%{transform:rotate(0)}to{transform:rotate(360deg)}}\n"] }]
215
+ }] });
216
+
217
+ class LoaderThreeDots {
218
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.1", ngImport: i0, type: LoaderThreeDots, deps: [], target: i0.ɵɵFactoryTarget.Component });
219
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.0.1", type: LoaderThreeDots, isStandalone: true, selector: "duck-dev-loader-three-dots", ngImport: i0, template: "<span class=\"loader\"></span>\n", styles: [":root{--dd-appear-time: .5s;--dd-gray-0: #ffffff;--dd-gray-100: #f8f5f6;--dd-gray-200: #f2f4f5;--dd-gray-300: #eaeaea;--dd-gray-400: #999999;--dd-gray-500: #252525;--dd-gray-600: #121312;--dd-secondary: #6829ff;--dd-accent-orange: #fe7b20;--dd-orange-active: #e5350f;--dd-accent-pink: #fd6ca9;--dd-accent-yellow: #ffd027;--dd-accent-blue: #3254f3;--dd-base-0: var(--dd-gray-0);--dd-base-100: var(--dd-gray-100);--dd-base-200: var(--dd-gray-200);--dd-base-300: var(--dd-gray-300);--dd-base-400: var(--dd-gray-400);--dd-base-500: var(--dd-gray-500);--dd-base-600: var(--dd-gray-600);--dd-background: var(--dd-gray-200);--dd-base-secondary: var(--dd-secondary);--dd-base-accent-orange: var(--dd-accent-orange);--dd-base-active-orange: var(--dd-orange-active);--dd-base-accent-pink: var(--dd-accent-pink);--dd-base-accent-yellow: var(--dd-accent-yellow);--dd-base-accent-blue: var(--dd-accent-blue)}[ddTheme=dark]{--dd-base-0: var(--dd-gray-600);--dd-base-100: var(--dd-gray-500);--dd-base-200: var(--dd-gray-400);--dd-base-300: var(--dd-gray-300);--dd-base-400: var(--dd-gray-200);--dd-base-500: var(--dd-gray-100);--dd-base-600: var(--dd-gray-0);--dd-background: var(--dd-gray-500)}[ddTheme=violet]{--dd-base-50: var(--dd-magenta-500)}.loader,.loader:before,.loader:after{border-radius:50%;width:2.5em;height:2.5em;animation-fill-mode:both;animation:bblFadInOut 1.8s infinite ease-in-out}.loader{color:var(--dd-base-600);font-size:7px;position:relative;text-indent:-9999em;transform:translateZ(0);animation-delay:-.16s}.loader:before,.loader:after{content:\"\";position:absolute;top:0}.loader:before{left:-3.5em;animation-delay:-.32s}.loader:after{left:3.5em}@keyframes bblFadInOut{0%,80%,to{box-shadow:0 2.5em 0 -1.3em}40%{box-shadow:0 2.5em}}\n"] });
220
+ }
221
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.1", ngImport: i0, type: LoaderThreeDots, decorators: [{
222
+ type: Component,
223
+ args: [{ selector: 'duck-dev-loader-three-dots', imports: [], template: "<span class=\"loader\"></span>\n", styles: [":root{--dd-appear-time: .5s;--dd-gray-0: #ffffff;--dd-gray-100: #f8f5f6;--dd-gray-200: #f2f4f5;--dd-gray-300: #eaeaea;--dd-gray-400: #999999;--dd-gray-500: #252525;--dd-gray-600: #121312;--dd-secondary: #6829ff;--dd-accent-orange: #fe7b20;--dd-orange-active: #e5350f;--dd-accent-pink: #fd6ca9;--dd-accent-yellow: #ffd027;--dd-accent-blue: #3254f3;--dd-base-0: var(--dd-gray-0);--dd-base-100: var(--dd-gray-100);--dd-base-200: var(--dd-gray-200);--dd-base-300: var(--dd-gray-300);--dd-base-400: var(--dd-gray-400);--dd-base-500: var(--dd-gray-500);--dd-base-600: var(--dd-gray-600);--dd-background: var(--dd-gray-200);--dd-base-secondary: var(--dd-secondary);--dd-base-accent-orange: var(--dd-accent-orange);--dd-base-active-orange: var(--dd-orange-active);--dd-base-accent-pink: var(--dd-accent-pink);--dd-base-accent-yellow: var(--dd-accent-yellow);--dd-base-accent-blue: var(--dd-accent-blue)}[ddTheme=dark]{--dd-base-0: var(--dd-gray-600);--dd-base-100: var(--dd-gray-500);--dd-base-200: var(--dd-gray-400);--dd-base-300: var(--dd-gray-300);--dd-base-400: var(--dd-gray-200);--dd-base-500: var(--dd-gray-100);--dd-base-600: var(--dd-gray-0);--dd-background: var(--dd-gray-500)}[ddTheme=violet]{--dd-base-50: var(--dd-magenta-500)}.loader,.loader:before,.loader:after{border-radius:50%;width:2.5em;height:2.5em;animation-fill-mode:both;animation:bblFadInOut 1.8s infinite ease-in-out}.loader{color:var(--dd-base-600);font-size:7px;position:relative;text-indent:-9999em;transform:translateZ(0);animation-delay:-.16s}.loader:before,.loader:after{content:\"\";position:absolute;top:0}.loader:before{left:-3.5em;animation-delay:-.32s}.loader:after{left:3.5em}@keyframes bblFadInOut{0%,80%,to{box-shadow:0 2.5em 0 -1.3em}40%{box-shadow:0 2.5em}}\n"] }]
224
+ }] });
225
+
173
226
  /*
174
227
  * Public API Surface of duck-dev-lib
175
228
  */
@@ -178,5 +231,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.1", ngImpor
178
231
  * Generated bundle index. Do not edit.
179
232
  */
180
233
 
181
- export { ButtonBlurLift, ButtonEnumColor, ButtonGlideOver };
234
+ export { ButtonBlurLift, ButtonEnumColor, ButtonGlideOver, DuckDevTab, LoaderClassic, LoaderLoadingBubble, LoaderThreeDots };
182
235
  //# sourceMappingURL=duck-dev-lib.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"duck-dev-lib.mjs","sources":["../../../projects/duck-dev-lib/src/lib/shared/enum/button-enum.ts","../../../projects/duck-dev-lib/src/lib/duck-dev-button/button-blur-lift/button-blur-lift.ts","../../../projects/duck-dev-lib/src/lib/duck-dev-button/button-blur-lift/button-blur-lift.html","../../../projects/duck-dev-lib/src/lib/duck-dev-button/button-glide-over/button-glide-over.ts","../../../projects/duck-dev-lib/src/lib/duck-dev-button/button-glide-over/button-glide-over.html","../../../projects/duck-dev-lib/src/public-api.ts","../../../projects/duck-dev-lib/src/duck-dev-lib.ts"],"sourcesContent":["export enum ButtonEnumColor {\n Orange = 'orange',\n Dark = 'dark',\n White = 'white',\n Gray = 'gray',\n Violet = 'violet'\n}\n","import {Component, computed, input} from '@angular/core';\nimport {ButtonEnumColor} from '../../shared';\n\n@Component({\n selector: 'duck-dev-button-blur-lift',\n imports: [],\n templateUrl: './button-blur-lift.html',\n styleUrl: './button-blur-lift.scss',\n})\nexport class ButtonBlurLift {\n public readonly textButton = input.required<string>();\n public readonly colorButton = input<ButtonEnumColor>(ButtonEnumColor.White);\n public readonly padding = input<string | null>(null);\n public readonly hoverText = input<string | null>(null);\n\n protected readonly buttonStyle = computed(() => {\n const color = this.colorButton();\n let bgColor, borderColor, hoverColor, activeColor, textColor, focusShadow;\n\n switch (color) {\n case ButtonEnumColor.Violet:\n bgColor = 'var(--dd-base-secondary)';\n hoverColor = 'var(--dd-base-secondary)';\n activeColor = 'var(--dd-base-secondary)';\n textColor = 'var(--dd-gray-0)';\n focusShadow = '0 0 0 3px rgba(0, 0, 0, 0.1)';\n borderColor = 'var(--dd-base-secondary)';\n break;\n\n case ButtonEnumColor.Orange:\n bgColor = 'var(--dd-base-accent-orange)';\n hoverColor = 'var(--dd-base-active-orange)';\n activeColor = 'var(--dd-base-accent-yellow)';\n textColor = 'var(--dd-gray-0)';\n focusShadow = '0 0 0 3px rgba(0, 0, 0, 0.1)';\n borderColor = 'var(--dd-base-active-orange)';\n break;\n\n case ButtonEnumColor.White:\n bgColor = 'var(--dd-base-0)';\n hoverColor = 'var(--dd-base-100)';\n activeColor = 'var(--dd-base-200)';\n textColor = 'var(--dd-base-600)';\n focusShadow = '0 0 0 3px rgba(0, 0, 0, 0.1)';\n borderColor = 'var(--dd-base-300)';\n break;\n\n case ButtonEnumColor.Gray:\n bgColor = 'var(--dd-base-100)';\n hoverColor = 'var(--dd-base-200)';\n activeColor = 'var(--dd-base-200)';\n textColor = 'var(--dd-base-600)';\n focusShadow = '0 0 0 3px rgba(0, 0, 0, 0.1)';\n borderColor = 'var(--dd-base-400)';\n break;\n\n case ButtonEnumColor.Dark:\n bgColor = 'var(--dd-base-600)';\n hoverColor = 'var(--dd-base-400)';\n activeColor = 'var(--dd-base-300)';\n textColor = 'var(--dd-base-0)';\n focusShadow = '0 0 0 3px rgba(18, 19, 21, 0.3)';\n borderColor = 'var(--dd-base-600)';\n break;\n\n default:\n bgColor = 'var(--dd-base-0)';\n hoverColor = 'var(--dd-base-100)';\n activeColor = 'var(--dd-base-200)';\n textColor = 'var(--dd-base-600)';\n focusShadow = '0 0 0 3px rgba(0, 0, 0, 0.1)';\n borderColor = 'var(--dd-base-300)';\n break;\n }\n\n return {\n '--btn-bg-color': bgColor,\n '--btn-border-color': borderColor,\n '--btn-padding': this.padding() || '10px 24px',\n '--btn-hover-color': hoverColor,\n '--btn-active-color': activeColor,\n '--btn-text-color': textColor,\n '--btn-focus-shadow': focusShadow\n };\n });\n\n protected readonly textLetters = computed(() => {\n return this.textButton()\n .split('')\n .map((char) => (char === ' ' ? '\\u00A0' : char));\n });\n\n protected readonly hoverTextLetters = computed(() => {\n const hover = this.hoverText();\n\n return hover ? hover.split('').map((char) => (char === ' ' ? '\\u00A0' : char)) : [];\n });\n}\n","<button\n type=\"button\"\n class=\"rounded-button rounded-button--blur-lift\"\n [style]=\"buttonStyle()\"\n>\n <span class=\"button-blur-lift__screen-reader-text\">{{ textButton() }}</span>\n <span\n aria-hidden=\"true\"\n class=\"button-blur-lift__container\"\n >\n <span class=\"button-blur-lift__text\">\n @for (letter of textLetters(); track $index) {\n <span\n [style.--index-outer]=\"$index\"\n class=\"button-blur-lift__letter-outer\"\n >\n <span\n [style.--index]=\"2\"\n class=\"button-blur-lift__letter\"\n >\n {{ letter }}\n </span>\n <span\n [style.--index]=\"1\"\n class=\"button-blur-lift__letter\"\n >\n {{ letter }}\n </span>\n <span\n [style.--index]=\"0\"\n class=\"button-blur-lift__letter\"\n >\n {{ letter }}\n </span>\n </span>\n }\n </span>\n\n @if (hoverText()) {\n <div class=\"button-blur-lift__hover-text\">\n @for (letter of hoverTextLetters(); track $index) {\n <span\n [style.--index-outer]=\"$index\"\n class=\"button-blur-lift__hover-letter-outer\"\n >\n <span\n [style.--index]=\"2\"\n class=\"button-blur-lift__hover-letter\"\n >\n {{ letter }}\n </span>\n <span\n [style.--index]=\"1\"\n class=\"button-blur-lift__hover-letter\"\n >\n {{ letter }}\n </span>\n <span\n [style.--index]=\"0\"\n class=\"button-blur-lift__hover-letter\"\n >\n {{ letter }}\n </span>\n </span>\n }\n </div>\n }\n </span>\n <span class=\"button-blur-lift__background\"></span>\n</button>\n","import {Component, computed, input} from '@angular/core';\nimport {ButtonEnumColor} from '../../shared';\n\n@Component({\n selector: 'duck-dev-button-glide-over',\n standalone: true,\n imports: [],\n templateUrl: './button-glide-over.html',\n styleUrl: './button-glide-over.scss',\n})\nexport class ButtonGlideOver {\n public readonly textButton = input.required<string>();\n public readonly colorButton = input<ButtonEnumColor>(ButtonEnumColor.White);\n public readonly padding = input<string | null>(null);\n\n protected readonly buttonStyle = computed(() => {\n const color = this.colorButton();\n let bgColor, borderColor, hoverColor, activeColor, textColor, focusShadow;\n\n switch (color) {\n case ButtonEnumColor.Violet:\n bgColor = 'var(--dd-base-secondary)';\n hoverColor = 'var(--dd-base-secondary)';\n activeColor = 'var(--dd-base-secondary)';\n textColor = 'var(--dd-gray-0)';\n focusShadow = '0 0 0 3px rgba(0, 0, 0, 0.1)';\n borderColor = 'var(--dd-base-secondary)';\n break;\n\n case ButtonEnumColor.Orange:\n bgColor = 'var(--dd-base-accent-orange)';\n hoverColor = 'var(--dd-base-active-orange)';\n activeColor = 'var(--dd-base-accent-yellow)';\n textColor = 'var(--dd-gray-0)';\n focusShadow = '0 0 0 3px rgba(0, 0, 0, 0.1)';\n borderColor = 'var(--dd-base-active-orange)';\n break;\n\n case ButtonEnumColor.White:\n bgColor = 'var(--dd-base-0)';\n hoverColor = 'var(--dd-base-100)';\n activeColor = 'var(--dd-base-200)';\n textColor = 'var(--dd-base-600)';\n focusShadow = '0 0 0 3px rgba(0, 0, 0, 0.1)';\n borderColor = 'var(--dd-base-300)';\n break;\n\n case ButtonEnumColor.Gray:\n bgColor = 'var(--dd-base-100)';\n hoverColor = 'var(--dd-base-200)';\n activeColor = 'var(--dd-base-200)';\n textColor = 'var(--dd-base-600)';\n focusShadow = '0 0 0 3px rgba(0, 0, 0, 0.1)';\n borderColor = 'var(--dd-base-400)';\n break;\n\n case ButtonEnumColor.Dark:\n bgColor = 'var(--dd-base-600)';\n hoverColor = 'var(--dd-base-400)';\n activeColor = 'var(--dd-base-300)';\n textColor = 'var(--dd-base-0)';\n focusShadow = '0 0 0 3px rgba(18, 19, 21, 0.3)';\n borderColor = 'var(--dd-base-600)';\n break;\n\n default:\n bgColor = 'var(--dd-base-0)';\n hoverColor = 'var(--dd-base-100)';\n activeColor = 'var(--dd-base-200)';\n textColor = 'var(--dd-base-600)';\n focusShadow = '0 0 0 3px rgba(0, 0, 0, 0.1)';\n borderColor = 'var(--dd-base-300)';\n break;\n }\n\n return {\n '--btn-bg-color': bgColor,\n '--btn-border-color': borderColor,\n '--btn-padding': this.padding() || '10px 24px',\n '--btn-hover-color': hoverColor,\n '--btn-active-color': activeColor,\n '--btn-text-color': textColor,\n '--btn-focus-shadow': focusShadow\n };\n });\n}\n","<button\n type=\"button\"\n class=\"rounded-button rounded-button--glide-over\"\n [style]=\"buttonStyle()\"\n>\n<span class=\"button-glide-over__container\">\n <span class=\"button-glide-over__icon is-first\">\n <svg\n class=\"button-glide-over__icon-item\"\n style=\"--index: 3\"\n viewBox=\"0 0 256 256\"\n >\n <path\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n stroke-width=\"24\"\n d=\"M40 128h176M144 56l72 72-72 72\"\n />\n </svg>\n </span>\n\n <span class=\"button-glide-over__text\">{{ textButton() }}</span>\n\n <span class=\"button-glide-over__icon is-last\">\n <svg\n class=\"button-glide-over__icon-item\"\n style=\"--index: 0\"\n viewBox=\"0 0 256 256\"\n >\n <path\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n stroke-width=\"20\"\n d=\"M40 128h176M144 56l72 72-72 72\"\n />\n </svg>\n </span>\n </span>\n\n<span class=\"button-glide-over__background\"></span>\n</button>\n","/*\n * Public API Surface of duck-dev-lib\n */\n\nexport * from './lib/duck-dev-button';\nexport * from './lib/shared';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"duck-dev-lib.mjs","sources":["../../../projects/duck-dev-lib/src/lib/shared/enum/button-enum.ts","../../../projects/duck-dev-lib/src/lib/duck-dev-button/button-blur-lift/button-blur-lift.ts","../../../projects/duck-dev-lib/src/lib/duck-dev-button/button-blur-lift/button-blur-lift.html","../../../projects/duck-dev-lib/src/lib/duck-dev-button/button-glide-over/button-glide-over.ts","../../../projects/duck-dev-lib/src/lib/duck-dev-button/button-glide-over/button-glide-over.html","../../../projects/duck-dev-lib/src/lib/duck-dev-tab/duck-dev-tab.ts","../../../projects/duck-dev-lib/src/lib/duck-dev-tab/duck-dev-tab.html","../../../projects/duck-dev-lib/src/lib/duck-dev-loader/loader-text-bubble/loader-loading-bubble.ts","../../../projects/duck-dev-lib/src/lib/duck-dev-loader/loader-text-bubble/loader-loading-bubble.html","../../../projects/duck-dev-lib/src/lib/duck-dev-loader/loader-classic/loader-classic.ts","../../../projects/duck-dev-lib/src/lib/duck-dev-loader/loader-classic/loader-classic.html","../../../projects/duck-dev-lib/src/lib/duck-dev-loader/loader-three-dots/loader-three-dots.ts","../../../projects/duck-dev-lib/src/lib/duck-dev-loader/loader-three-dots/loader-three-dots.html","../../../projects/duck-dev-lib/src/public-api.ts","../../../projects/duck-dev-lib/src/duck-dev-lib.ts"],"sourcesContent":["export enum ButtonEnumColor {\n Orange = 'orange',\n Dark = 'dark',\n White = 'white',\n Gray = 'gray',\n Violet = 'violet'\n}\n","import {Component, computed, input} from '@angular/core';\nimport {ButtonEnumColor} from '../../shared';\n\n@Component({\n selector: 'duck-dev-button-blur-lift',\n imports: [],\n templateUrl: './button-blur-lift.html',\n styleUrl: './button-blur-lift.scss',\n})\nexport class ButtonBlurLift {\n public readonly textButton = input.required<string>();\n public readonly colorButton = input<ButtonEnumColor>(ButtonEnumColor.White);\n public readonly padding = input<string | null>(null);\n public readonly hoverText = input<string | null>(null);\n\n protected readonly buttonStyle = computed(() => {\n const color = this.colorButton();\n let bgColor, borderColor, hoverColor, activeColor, textColor, focusShadow;\n\n switch (color) {\n case ButtonEnumColor.Violet:\n bgColor = 'var(--dd-base-secondary)';\n hoverColor = 'var(--dd-base-secondary)';\n activeColor = 'var(--dd-base-secondary)';\n textColor = 'var(--dd-gray-0)';\n focusShadow = '0 0 0 3px rgba(0, 0, 0, 0.1)';\n borderColor = 'var(--dd-base-secondary)';\n break;\n\n case ButtonEnumColor.Orange:\n bgColor = 'var(--dd-base-accent-orange)';\n hoverColor = 'var(--dd-base-active-orange)';\n activeColor = 'var(--dd-base-accent-yellow)';\n textColor = 'var(--dd-gray-0)';\n focusShadow = '0 0 0 3px rgba(0, 0, 0, 0.1)';\n borderColor = 'var(--dd-base-active-orange)';\n break;\n\n case ButtonEnumColor.White:\n bgColor = 'var(--dd-base-0)';\n hoverColor = 'var(--dd-base-100)';\n activeColor = 'var(--dd-base-200)';\n textColor = 'var(--dd-base-600)';\n focusShadow = '0 0 0 3px rgba(0, 0, 0, 0.1)';\n borderColor = 'var(--dd-base-300)';\n break;\n\n case ButtonEnumColor.Gray:\n bgColor = 'var(--dd-base-100)';\n hoverColor = 'var(--dd-base-200)';\n activeColor = 'var(--dd-base-200)';\n textColor = 'var(--dd-base-600)';\n focusShadow = '0 0 0 3px rgba(0, 0, 0, 0.1)';\n borderColor = 'var(--dd-base-400)';\n break;\n\n case ButtonEnumColor.Dark:\n bgColor = 'var(--dd-base-600)';\n hoverColor = 'var(--dd-base-400)';\n activeColor = 'var(--dd-base-300)';\n textColor = 'var(--dd-base-0)';\n focusShadow = '0 0 0 3px rgba(18, 19, 21, 0.3)';\n borderColor = 'var(--dd-base-600)';\n break;\n\n default:\n bgColor = 'var(--dd-base-0)';\n hoverColor = 'var(--dd-base-100)';\n activeColor = 'var(--dd-base-200)';\n textColor = 'var(--dd-base-600)';\n focusShadow = '0 0 0 3px rgba(0, 0, 0, 0.1)';\n borderColor = 'var(--dd-base-300)';\n break;\n }\n\n return {\n '--btn-bg-color': bgColor,\n '--btn-border-color': borderColor,\n '--btn-padding': this.padding() || '10px 24px',\n '--btn-hover-color': hoverColor,\n '--btn-active-color': activeColor,\n '--btn-text-color': textColor,\n '--btn-focus-shadow': focusShadow\n };\n });\n\n protected readonly textLetters = computed(() => {\n return this.textButton()\n .split('')\n .map((char) => (char === ' ' ? '\\u00A0' : char));\n });\n\n protected readonly hoverTextLetters = computed(() => {\n const hover = this.hoverText();\n\n return hover ? hover.split('').map((char) => (char === ' ' ? '\\u00A0' : char)) : [];\n });\n}\n","<button\n type=\"button\"\n class=\"rounded-button rounded-button--blur-lift\"\n [style]=\"buttonStyle()\"\n>\n <span class=\"button-blur-lift__screen-reader-text\">{{ textButton() }}</span>\n <span\n aria-hidden=\"true\"\n class=\"button-blur-lift__container\"\n >\n <span class=\"button-blur-lift__text\">\n @for (letter of textLetters(); track $index) {\n <span\n [style.--index-outer]=\"$index\"\n class=\"button-blur-lift__letter-outer\"\n >\n <span\n [style.--index]=\"2\"\n class=\"button-blur-lift__letter\"\n >\n {{ letter }}\n </span>\n <span\n [style.--index]=\"1\"\n class=\"button-blur-lift__letter\"\n >\n {{ letter }}\n </span>\n <span\n [style.--index]=\"0\"\n class=\"button-blur-lift__letter\"\n >\n {{ letter }}\n </span>\n </span>\n }\n </span>\n\n @if (hoverText()) {\n <div class=\"button-blur-lift__hover-text\">\n @for (letter of hoverTextLetters(); track $index) {\n <span\n [style.--index-outer]=\"$index\"\n class=\"button-blur-lift__hover-letter-outer\"\n >\n <span\n [style.--index]=\"2\"\n class=\"button-blur-lift__hover-letter\"\n >\n {{ letter }}\n </span>\n <span\n [style.--index]=\"1\"\n class=\"button-blur-lift__hover-letter\"\n >\n {{ letter }}\n </span>\n <span\n [style.--index]=\"0\"\n class=\"button-blur-lift__hover-letter\"\n >\n {{ letter }}\n </span>\n </span>\n }\n </div>\n }\n </span>\n <span class=\"button-blur-lift__background\"></span>\n</button>\n","import {Component, computed, input} from '@angular/core';\nimport {ButtonEnumColor} from '../../shared';\n\n@Component({\n selector: 'duck-dev-button-glide-over',\n standalone: true,\n imports: [],\n templateUrl: './button-glide-over.html',\n styleUrl: './button-glide-over.scss',\n})\nexport class ButtonGlideOver {\n public readonly textButton = input.required<string>();\n public readonly colorButton = input<ButtonEnumColor>(ButtonEnumColor.White);\n public readonly padding = input<string | null>(null);\n\n protected readonly buttonStyle = computed(() => {\n const color = this.colorButton();\n let bgColor, borderColor, hoverColor, activeColor, textColor, focusShadow;\n\n switch (color) {\n case ButtonEnumColor.Violet:\n bgColor = 'var(--dd-base-secondary)';\n hoverColor = 'var(--dd-base-secondary)';\n activeColor = 'var(--dd-base-secondary)';\n textColor = 'var(--dd-gray-0)';\n focusShadow = '0 0 0 3px rgba(0, 0, 0, 0.1)';\n borderColor = 'var(--dd-base-secondary)';\n break;\n\n case ButtonEnumColor.Orange:\n bgColor = 'var(--dd-base-accent-orange)';\n hoverColor = 'var(--dd-base-active-orange)';\n activeColor = 'var(--dd-base-accent-yellow)';\n textColor = 'var(--dd-gray-0)';\n focusShadow = '0 0 0 3px rgba(0, 0, 0, 0.1)';\n borderColor = 'var(--dd-base-active-orange)';\n break;\n\n case ButtonEnumColor.White:\n bgColor = 'var(--dd-base-0)';\n hoverColor = 'var(--dd-base-100)';\n activeColor = 'var(--dd-base-200)';\n textColor = 'var(--dd-base-600)';\n focusShadow = '0 0 0 3px rgba(0, 0, 0, 0.1)';\n borderColor = 'var(--dd-base-300)';\n break;\n\n case ButtonEnumColor.Gray:\n bgColor = 'var(--dd-base-100)';\n hoverColor = 'var(--dd-base-200)';\n activeColor = 'var(--dd-base-200)';\n textColor = 'var(--dd-base-600)';\n focusShadow = '0 0 0 3px rgba(0, 0, 0, 0.1)';\n borderColor = 'var(--dd-base-400)';\n break;\n\n case ButtonEnumColor.Dark:\n bgColor = 'var(--dd-base-600)';\n hoverColor = 'var(--dd-base-400)';\n activeColor = 'var(--dd-base-300)';\n textColor = 'var(--dd-base-0)';\n focusShadow = '0 0 0 3px rgba(18, 19, 21, 0.3)';\n borderColor = 'var(--dd-base-600)';\n break;\n\n default:\n bgColor = 'var(--dd-base-0)';\n hoverColor = 'var(--dd-base-100)';\n activeColor = 'var(--dd-base-200)';\n textColor = 'var(--dd-base-600)';\n focusShadow = '0 0 0 3px rgba(0, 0, 0, 0.1)';\n borderColor = 'var(--dd-base-300)';\n break;\n }\n\n return {\n '--btn-bg-color': bgColor,\n '--btn-border-color': borderColor,\n '--btn-padding': this.padding() || '10px 24px',\n '--btn-hover-color': hoverColor,\n '--btn-active-color': activeColor,\n '--btn-text-color': textColor,\n '--btn-focus-shadow': focusShadow\n };\n });\n}\n","<button\n type=\"button\"\n class=\"rounded-button rounded-button--glide-over\"\n [style]=\"buttonStyle()\"\n>\n<span class=\"button-glide-over__container\">\n <span class=\"button-glide-over__icon is-first\">\n <svg\n class=\"button-glide-over__icon-item\"\n style=\"--index: 3\"\n viewBox=\"0 0 256 256\"\n >\n <path\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n stroke-width=\"24\"\n d=\"M40 128h176M144 56l72 72-72 72\"\n />\n </svg>\n </span>\n\n <span class=\"button-glide-over__text\">{{ textButton() }}</span>\n\n <span class=\"button-glide-over__icon is-last\">\n <svg\n class=\"button-glide-over__icon-item\"\n style=\"--index: 0\"\n viewBox=\"0 0 256 256\"\n >\n <path\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n stroke-width=\"20\"\n d=\"M40 128h176M144 56l72 72-72 72\"\n />\n </svg>\n </span>\n </span>\n\n<span class=\"button-glide-over__background\"></span>\n</button>\n","import { Component, signal, computed, input, output } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nexport interface DuckDevTabItem {\n id: string;\n label: string;\n content?: any;\n}\n\n@Component({\n selector: 'duck-dev-tab',\n standalone: true,\n imports: [CommonModule],\n templateUrl: './duck-dev-tab.html',\n styleUrl: './duck-dev-tab.scss',\n})\nexport class DuckDevTab {\n public tabs = input<DuckDevTabItem[]>([]);\n public tabChange = output<DuckDevTabItem>();\n\n public readonly activeTabIndex = signal<number>(0);\n public readonly animationDirection = signal<'left' | 'right'>('right');\n\n public activeTab = computed(() => this.tabs()[this.activeTabIndex()]);\n\n protected selectTab(index: number): void {\n if (index === this.activeTabIndex()) {\n return;\n }\n\n this.animationDirection.set(index > this.activeTabIndex() ? 'right' : 'left');\n this.activeTabIndex.set(index);\n this.tabChange.emit(this.tabs()[index]);\n }\n\n protected isActive(index: number): boolean {\n return this.activeTabIndex() === index;\n }\n}\n","<div class=\"duck-dev-tab\">\n <div class=\"tab-header\">\n @for (tab of tabs(); track tab.id; let i = $index) {\n <button\n class=\"tab-button\"\n [class.active]=\"isActive(i)\"\n (click)=\"selectTab(i)\"\n type=\"button\"\n >\n {{ tab.label }}\n </button>\n }\n <div\n class=\"tab-indicator\"\n [style.transform]=\"'translateX(' + (activeTabIndex() * 100) + '%)'\"\n [style.width]=\"'calc(100% / ' + tabs().length + ')'\"\n ></div>\n </div>\n\n <div class=\"tab-content-wrapper\">\n <div\n class=\"tab-content\"\n [class.slide-left]=\"animationDirection() === 'left'\"\n [class.slide-right]=\"animationDirection() === 'right'\"\n [attr.data-active-index]=\"activeTabIndex()\"\n >\n <ng-content></ng-content>\n </div>\n </div>\n</div>\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'duck-dev-loader-loading-bubble',\n imports: [],\n templateUrl: './loader-loading-bubble.html',\n styleUrl: './loader-loading-bubble.scss',\n})\nexport class LoaderLoadingBubble {\n\n}\n","<div class=\"container\">\n <div class=\"main\">\n <span class=\"loader\">Load&nbsp;ng</span>\n </div>\n</div>\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'duck-dev-loader-classic',\n imports: [],\n templateUrl: './loader-classic.html',\n styleUrl: './loader-classic.scss',\n})\nexport class LoaderClassic {}\n","<span class=\"loader\"></span>\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'duck-dev-loader-three-dots',\n imports: [],\n templateUrl: './loader-three-dots.html',\n styleUrl: './loader-three-dots.scss',\n})\nexport class LoaderThreeDots {}\n","<span class=\"loader\"></span>\n","/*\n * Public API Surface of duck-dev-lib\n */\nexport * from './lib/duck-dev-button';\nexport * from './lib/duck-dev-tab';\nexport * from './lib/duck-dev-loader';\nexport * from './lib/shared';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "duck-dev-lib",
3
- "version": "0.0.3",
3
+ "version": "0.0.5",
4
4
  "peerDependencies": {
5
5
  "@angular/common": "^21.0.0",
6
6
  "@angular/core": "^21.0.0"
@@ -45,4 +45,37 @@ declare class ButtonGlideOver {
45
45
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<ButtonGlideOver, "duck-dev-button-glide-over", never, { "textButton": { "alias": "textButton"; "required": true; "isSignal": true; }; "colorButton": { "alias": "colorButton"; "required": false; "isSignal": true; }; "padding": { "alias": "padding"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
46
46
  }
47
47
 
48
- export { ButtonBlurLift, ButtonEnumColor, ButtonGlideOver };
48
+ interface DuckDevTabItem {
49
+ id: string;
50
+ label: string;
51
+ content?: any;
52
+ }
53
+ declare class DuckDevTab {
54
+ tabs: _angular_core.InputSignal<DuckDevTabItem[]>;
55
+ tabChange: _angular_core.OutputEmitterRef<DuckDevTabItem>;
56
+ readonly activeTabIndex: _angular_core.WritableSignal<number>;
57
+ readonly animationDirection: _angular_core.WritableSignal<"left" | "right">;
58
+ activeTab: _angular_core.Signal<DuckDevTabItem>;
59
+ protected selectTab(index: number): void;
60
+ protected isActive(index: number): boolean;
61
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<DuckDevTab, never>;
62
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<DuckDevTab, "duck-dev-tab", never, { "tabs": { "alias": "tabs"; "required": false; "isSignal": true; }; }, { "tabChange": "tabChange"; }, never, ["*"], true, never>;
63
+ }
64
+
65
+ declare class LoaderLoadingBubble {
66
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<LoaderLoadingBubble, never>;
67
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<LoaderLoadingBubble, "duck-dev-loader-loading-bubble", never, {}, {}, never, never, true, never>;
68
+ }
69
+
70
+ declare class LoaderClassic {
71
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<LoaderClassic, never>;
72
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<LoaderClassic, "duck-dev-loader-classic", never, {}, {}, never, never, true, never>;
73
+ }
74
+
75
+ declare class LoaderThreeDots {
76
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<LoaderThreeDots, never>;
77
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<LoaderThreeDots, "duck-dev-loader-three-dots", never, {}, {}, never, never, true, never>;
78
+ }
79
+
80
+ export { ButtonBlurLift, ButtonEnumColor, ButtonGlideOver, DuckDevTab, LoaderClassic, LoaderLoadingBubble, LoaderThreeDots };
81
+ export type { DuckDevTabItem };