@nuralyui/button 0.0.11 → 0.0.13
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/{nr-button.component.d.ts → button.component.d.ts} +28 -2
- package/button.component.d.ts.map +1 -0
- package/button.component.js +240 -0
- package/button.component.js.map +1 -0
- package/{nr-button.style.d.ts → button.style.d.ts} +2 -2
- package/button.style.d.ts.map +1 -0
- package/{nr-button.style.js → button.style.js} +176 -127
- package/button.style.js.map +1 -0
- package/button.style.variables.d.ts +11 -0
- package/button.style.variables.d.ts.map +1 -0
- package/button.style.variables.js +194 -0
- package/button.style.variables.js.map +1 -0
- package/{nr-button.types.d.ts → button.types.d.ts} +9 -2
- package/button.types.d.ts.map +1 -0
- package/button.types.js +2 -0
- package/button.types.js.map +1 -0
- package/demo/{nr-buttons-demo.d.ts → buttons-demo.d.ts} +2 -2
- package/demo/buttons-demo.d.ts.map +1 -0
- package/demo/{nr-buttons-demo.js → buttons-demo.js} +64 -2
- package/demo/buttons-demo.js.map +1 -0
- package/index.d.ts +1 -1
- package/index.d.ts.map +1 -1
- package/index.js +1 -1
- package/index.js.map +1 -1
- package/package.json +1 -1
- package/react.d.ts +1 -1
- package/react.d.ts.map +1 -1
- package/react.js +1 -1
- package/react.js.map +1 -1
- package/test/nr-button_test.d.ts +1 -1
- package/test/nr-button_test.d.ts.map +1 -1
- package/test/nr-button_test.js +2 -2
- package/test/nr-button_test.js.map +1 -1
- package/demo/nr-buttons-demo.d.ts.map +0 -1
- package/demo/nr-buttons-demo.js.map +0 -1
- package/nr-button.component.d.ts.map +0 -1
- package/nr-button.component.js +0 -99
- package/nr-button.component.js.map +0 -1
- package/nr-button.style.d.ts.map +0 -1
- package/nr-button.style.js.map +0 -1
- package/nr-button.types.d.ts.map +0 -1
- package/nr-button.types.js +0 -2
- package/nr-button.types.js.map +0 -1
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { css } from 'lit';
|
|
2
|
+
import { buttonVariables } from './button.style.variables.js';
|
|
2
3
|
/**
|
|
3
4
|
* Button component styles for the Hybrid UI Library
|
|
4
5
|
*
|
|
@@ -81,6 +82,10 @@ const buttonStyles = css `
|
|
|
81
82
|
padding-right: var(--hybrid-button-padding-x,var(--hybrid-button-local-padding-x));
|
|
82
83
|
padding-left: var(--hybrid-button-padding-x,var(--hybrid-button-local-padding-x));
|
|
83
84
|
font-size: var(--hybrid-button-font-size,var(--hybrid-button-local-font-size));
|
|
85
|
+
|
|
86
|
+
/* Positioning for ripple effect */
|
|
87
|
+
position: relative;
|
|
88
|
+
overflow: hidden;
|
|
84
89
|
}
|
|
85
90
|
|
|
86
91
|
/* Icon styling within button - inherits text color and size */
|
|
@@ -359,141 +364,118 @@ const buttonStyles = css `
|
|
|
359
364
|
}
|
|
360
365
|
|
|
361
366
|
/* ========================================
|
|
362
|
-
*
|
|
367
|
+
* NEW BUTTON TYPES
|
|
363
368
|
* ======================================== */
|
|
369
|
+
|
|
370
|
+
/* TEXT BUTTON VARIANT */
|
|
371
|
+
button[data-type='text'] {
|
|
372
|
+
background-color: var(--hybrid-button-text-background-color, var(--hybrid-button-local-text-background-color, transparent));
|
|
373
|
+
color: var(--hybrid-button-text-text-color, var(--hybrid-button-local-text-text-color, #1890ff));
|
|
374
|
+
border: none;
|
|
375
|
+
box-shadow: none;
|
|
376
|
+
}
|
|
377
|
+
|
|
378
|
+
button[data-type='text'] hy-icon {
|
|
379
|
+
--hybrid-icon-color: var(--hybrid-button-text-text-color, var(--hybrid-button-local-text-text-color, #1890ff));
|
|
380
|
+
}
|
|
381
|
+
|
|
382
|
+
button[data-type='text']:hover:not(:disabled) {
|
|
383
|
+
background-color: var(--hybrid-button-text-hover-background-color, var(--hybrid-button-local-text-hover-background-color, rgba(24, 144, 255, 0.06)));
|
|
384
|
+
color: var(--hybrid-button-text-hover-text-color, var(--hybrid-button-local-text-hover-text-color, #40a9ff));
|
|
385
|
+
}
|
|
386
|
+
|
|
387
|
+
button[data-type='text']:hover:not(:disabled) hy-icon {
|
|
388
|
+
--hybrid-icon-color: var(--hybrid-button-text-hover-text-color, var(--hybrid-button-local-text-hover-text-color, #40a9ff));
|
|
389
|
+
}
|
|
390
|
+
|
|
391
|
+
button[data-type='text']:active:not(:disabled) {
|
|
392
|
+
background-color: var(--hybrid-button-text-active-background-color, var(--hybrid-button-local-text-active-background-color, rgba(24, 144, 255, 0.15)));
|
|
393
|
+
color: var(--hybrid-button-text-active-text-color, var(--hybrid-button-local-text-active-text-color, #096dd9));
|
|
394
|
+
}
|
|
395
|
+
|
|
396
|
+
button[data-type='text']:disabled {
|
|
397
|
+
background-color: transparent;
|
|
398
|
+
color: var(--hybrid-button-text-disabled-text-color, var(--hybrid-button-local-text-disabled-text-color, rgba(0, 0, 0, 0.25)));
|
|
399
|
+
border: none;
|
|
400
|
+
}
|
|
401
|
+
|
|
402
|
+
/* LINK BUTTON VARIANT */
|
|
403
|
+
a[data-type='link'], button[data-type='link'] {
|
|
404
|
+
background-color: transparent;
|
|
405
|
+
color: var(--hybrid-button-link-text-color, var(--hybrid-button-local-link-text-color, #1890ff));
|
|
406
|
+
border: none;
|
|
407
|
+
box-shadow: none;
|
|
408
|
+
text-decoration: underline;
|
|
409
|
+
cursor: pointer;
|
|
410
|
+
}
|
|
411
|
+
|
|
412
|
+
a[data-type='link'] hy-icon, button[data-type='link'] hy-icon {
|
|
413
|
+
--hybrid-icon-color: var(--hybrid-button-link-text-color, var(--hybrid-button-local-link-text-color, #1890ff));
|
|
414
|
+
}
|
|
415
|
+
|
|
416
|
+
a[data-type='link']:hover, button[data-type='link']:hover:not(:disabled) {
|
|
417
|
+
color: var(--hybrid-button-link-hover-text-color, var(--hybrid-button-local-link-hover-text-color, #40a9ff));
|
|
418
|
+
}
|
|
419
|
+
|
|
420
|
+
a[data-type='link']:hover hy-icon, button[data-type='link']:hover:not(:disabled) hy-icon {
|
|
421
|
+
--hybrid-icon-color: var(--hybrid-button-link-hover-text-color, var(--hybrid-button-local-link-hover-text-color, #40a9ff));
|
|
422
|
+
}
|
|
423
|
+
|
|
424
|
+
a[data-type='link']:active, button[data-type='link']:active:not(:disabled) {
|
|
425
|
+
color: var(--hybrid-button-link-active-text-color, var(--hybrid-button-local-link-active-text-color, #096dd9));
|
|
426
|
+
}
|
|
427
|
+
|
|
428
|
+
button[data-type='link']:disabled {
|
|
429
|
+
color: var(--hybrid-button-link-disabled-text-color, var(--hybrid-button-local-link-disabled-text-color, rgba(0, 0, 0, 0.25)));
|
|
430
|
+
text-decoration: none;
|
|
431
|
+
cursor: not-allowed;
|
|
432
|
+
}
|
|
433
|
+
|
|
364
434
|
/* ========================================
|
|
365
|
-
*
|
|
435
|
+
* SHAPE VARIANTS
|
|
366
436
|
* ======================================== */
|
|
367
|
-
:host {
|
|
368
|
-
/* ----------------------------------------
|
|
369
|
-
* DEFAULT BUTTON STYLES
|
|
370
|
-
* ---------------------------------------- */
|
|
371
|
-
--hybrid-button-local-border-top: 2px solid #d0d0d0;
|
|
372
|
-
--hybrid-button-local-border-bottom: 2px solid #d0d0d0;
|
|
373
|
-
--hybrid-button-local-border-left: 2px solid #d0d0d0;
|
|
374
|
-
--hybrid-button-local-border-right: 2px solid #d0d0d0;
|
|
375
|
-
--hybrid-button-local-border-top-left-radius: 0px;
|
|
376
|
-
--hybrid-button-local-border-top-right-radius: 0px;
|
|
377
|
-
--hybrid-button-local-border-bottom-left-radius: 0px;
|
|
378
|
-
--hybrid-button-local-border-bottom-right-radius: 0px;
|
|
379
|
-
--hybrid-button-local-background-color: #f9f9f9;
|
|
380
|
-
--hybrid-button-local-text-color: #393939;
|
|
381
|
-
--hybrid-button-local-hover-border-color: #1677ff;
|
|
382
|
-
--hybrid-button-local-hover-color: #1677ff;
|
|
383
|
-
--hybrid-button-local-font-size: 0.9rem;
|
|
384
|
-
--hybrid-button-local-font-weight: normal;
|
|
385
|
-
--hybrid-button-local-text-transform: none;
|
|
386
|
-
--hybrid-button-local-active-border-color: #1661b1;
|
|
387
|
-
--hybrid-button-local-active-color: #184d86;
|
|
388
|
-
--hybrid-button-local-disabled-background-color: #c6c6c6;
|
|
389
|
-
--hybrid-button-local-disabled-text-color: #8d8d8d;
|
|
390
|
-
--hybrid-button-local-disabled-border-color: #bbb;
|
|
391
|
-
--hybrid-button-local-height: auto;
|
|
392
|
-
--hybrid-button-local-width: auto;
|
|
393
|
-
--hybrid-button-local-padding-y: 0.5rem;
|
|
394
|
-
--hybrid-button-local-padding-x: 0.6rem;
|
|
395
|
-
--hybrid-button-local-icon-width: 18px;
|
|
396
|
-
--hybrid-button-local-icon-height: 14px;
|
|
397
|
-
|
|
398
|
-
/* ----------------------------------------
|
|
399
|
-
* PRIMARY BUTTON STYLES
|
|
400
|
-
* ---------------------------------------- */
|
|
401
|
-
/* ----------------------------------------
|
|
402
|
-
* PRIMARY BUTTON STYLES
|
|
403
|
-
* ---------------------------------------- */
|
|
404
|
-
--hybrid-button-local-primary-border-color: #0f62fe;
|
|
405
|
-
--hybrid-button-local-primary-background-color: #0f62fe;
|
|
406
|
-
--hybrid-button-local-primary-text-color: #ffffff;
|
|
407
|
-
--hybrid-button-local-primary-outline: 1px solid white;
|
|
408
|
-
--hybrid-button-local-primary-outline-offset: -3px;
|
|
409
|
-
--hybrid-button-local-primary-hover-background-color: #0353e9;
|
|
410
|
-
--hybrid-button-local-primary-hover-border-color: #0353e9;
|
|
411
|
-
--hybrid-button-local-primary-active-background-color: #0f62fe;
|
|
412
|
-
--hybrid-button-local-primary-active-border-color: #0f62fe;
|
|
413
|
-
--hybrid-button-local-primary-disabled-text-color: #8d8d8d;
|
|
414
|
-
--hybrid-button-local-primary-disabled-background-color: #c6c6c6;
|
|
415
|
-
--hybrid-button-local-primary-disabled-border-color: #c6c6c6;
|
|
416
|
-
--hybrid-button-local-primary-dashed-border-color: #ffffff;
|
|
417
|
-
|
|
418
|
-
/* ----------------------------------------
|
|
419
|
-
* DANGER BUTTON STYLES
|
|
420
|
-
* ---------------------------------------- */
|
|
421
|
-
/* ----------------------------------------
|
|
422
|
-
* DANGER BUTTON STYLES
|
|
423
|
-
* ---------------------------------------- */
|
|
424
|
-
--hybrid-button-local-danger-background-color: #da1e28;
|
|
425
|
-
--hybrid-button-local-danger-text-color: #ffffff;
|
|
426
|
-
--hybrid-button-local-danger-border-color: #da1e28;
|
|
427
|
-
--hybrid-button-local-danger-outline: 1px solid white;
|
|
428
|
-
--hybrid-button-local-danger-outline-offset: -3px;
|
|
429
|
-
--hybrid-button-local-danger-hover-background-color: #ba1b23;
|
|
430
|
-
--hybrid-button-local-danger-hover-border-color: #ba1b23;
|
|
431
|
-
--hybrid-button-local-danger-active-background-color: #da1e28;
|
|
432
|
-
--hybrid-button-local-danger-active-border-color: #0f62fe;
|
|
433
|
-
--hybrid-button-local-danger-disabled-background-color: #c6c6c6;
|
|
434
|
-
--hybrid-button-local-danger-disabled-text-color: #8d8d8d;
|
|
435
|
-
--hybrid-button-local-danger-disabled-border-color: #c6c6c6;
|
|
436
|
-
--hybrid-button-local-danger-dashed-border-color: #ffffff;
|
|
437
437
|
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
|
|
441
|
-
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
--hybrid-button-local-ghost-active-text-color: #054ada;
|
|
449
|
-
--hybrid-button-local-ghost-active-border-color: #0f62fe;
|
|
450
|
-
--hybrid-button-local-ghost-hover-background-color: #e5e5e5;
|
|
451
|
-
--hybrid-button-local-ghost-hover-border-color: #e5e5e5;
|
|
452
|
-
--hybrid-button-local-ghost-hover-text-color: #054ada;
|
|
453
|
-
--hybrid-button-local-ghost-disabled-background-color: #ffffff;
|
|
454
|
-
--hybrid-button-local-ghost-disabled-text-color: #c6c6c6;
|
|
455
|
-
--hybrid-button-local-ghost-disabled-border-color: #ffffff;
|
|
456
|
-
--hybrid-button-local-ghost-dashed-border-color: #c6c6c6;
|
|
438
|
+
/* Circle button shape */
|
|
439
|
+
button[data-shape='circle'], a[data-shape='circle'] {
|
|
440
|
+
border-radius: 50%;
|
|
441
|
+
width: var(--hybrid-button-circle-size, var(--hybrid-button-local-circle-size, 32px));
|
|
442
|
+
height: var(--hybrid-button-circle-size, var(--hybrid-button-local-circle-size, 32px));
|
|
443
|
+
padding: 0;
|
|
444
|
+
display: inline-flex;
|
|
445
|
+
align-items: center;
|
|
446
|
+
justify-content: center;
|
|
447
|
+
}
|
|
457
448
|
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
|
|
449
|
+
button[data-shape='circle'][data-size='small'], a[data-shape='circle'][data-size='small'] {
|
|
450
|
+
width: var(--hybrid-button-circle-size-small, var(--hybrid-button-local-circle-size-small, 24px));
|
|
451
|
+
height: var(--hybrid-button-circle-size-small, var(--hybrid-button-local-circle-size-small, 24px));
|
|
452
|
+
}
|
|
461
453
|
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
|
|
465
|
-
|
|
466
|
-
--hybrid-button-local-secondary-border-color: #393939;
|
|
467
|
-
--hybrid-button-local-secondary-text-color: #ffffff;
|
|
468
|
-
--hybrid-button-local-secondary-outline: 1px solid white;
|
|
469
|
-
--hybrid-button-local-secondary-outline-offset: -3px;
|
|
470
|
-
--hybrid-button-local-secondary-hover-background-color: #4c4c4c;
|
|
471
|
-
--hybrid-button-local-secondary-hover-border-color: #4c4c4c;
|
|
472
|
-
--hybrid-button-local-secondary-active-background-color: #393939;
|
|
473
|
-
--hybrid-button-local-secondary-active-border-color: #0f62fe;
|
|
474
|
-
--hybrid-button-local-secondary-disabled-background-color: #c6c6c6;
|
|
475
|
-
--hybrid-button-local-secondary-disabled-text-color: #8d8d8d;
|
|
476
|
-
--hybrid-button-local-secondary-disabled-border-color: #c6c6c6;
|
|
477
|
-
--hybrid-button-local-secondary-dashed-border-color: #ffffff;
|
|
454
|
+
button[data-shape='circle'][data-size='large'], a[data-shape='circle'][data-size='large'] {
|
|
455
|
+
width: var(--hybrid-button-circle-size-large, var(--hybrid-button-local-circle-size-large, 40px));
|
|
456
|
+
height: var(--hybrid-button-circle-size-large, var(--hybrid-button-local-circle-size-large, 40px));
|
|
457
|
+
}
|
|
478
458
|
|
|
479
|
-
|
|
480
|
-
|
|
481
|
-
|
|
459
|
+
/* Round button shape */
|
|
460
|
+
button[data-shape='round'], a[data-shape='round'] {
|
|
461
|
+
border-radius: var(--hybrid-button-round-border-radius, var(--hybrid-button-local-round-border-radius, 16px));
|
|
462
|
+
}
|
|
482
463
|
|
|
483
|
-
|
|
484
|
-
|
|
485
|
-
|
|
486
|
-
/* Large button sizing */
|
|
487
|
-
--hybrid-large-button-local-padding-y: 0.5rem;
|
|
488
|
-
--hybrid-large-button-local-padding-x: 0.9rem;
|
|
489
|
-
--hybrid-large-button-local-font-size: 1rem;
|
|
464
|
+
/* ========================================
|
|
465
|
+
* BLOCK BUTTON
|
|
466
|
+
* ======================================== */
|
|
490
467
|
|
|
491
|
-
|
|
492
|
-
|
|
493
|
-
|
|
494
|
-
--hybrid-small-button-local-font-size: 0.7rem;
|
|
468
|
+
button[data-block='true'], a[data-block='true'] {
|
|
469
|
+
width: 100%;
|
|
470
|
+
display: block;
|
|
495
471
|
}
|
|
496
472
|
|
|
473
|
+
/* ========================================
|
|
474
|
+
* VARIANT STYLES
|
|
475
|
+
* ======================================== */
|
|
476
|
+
|
|
477
|
+
/* Primary button variant */
|
|
478
|
+
|
|
497
479
|
/* ========================================
|
|
498
480
|
* DARK THEME OVERRIDES
|
|
499
481
|
* ======================================== */
|
|
@@ -565,6 +547,73 @@ const buttonStyles = css `
|
|
|
565
547
|
--hybrid-button-local-danger-disabled-text-color: #8d8d8d;
|
|
566
548
|
--hybrid-button-local-danger-disabled-border-color: #6f6f6f;
|
|
567
549
|
--hybrid-button-local-danger-dashed-border-color: #ffffff;
|
|
550
|
+
|
|
551
|
+
/* Text button dark theme overrides */
|
|
552
|
+
--hybrid-button-local-text-background-color: transparent;
|
|
553
|
+
--hybrid-button-local-text-text-color: #ffffff;
|
|
554
|
+
--hybrid-button-local-text-border-color: transparent;
|
|
555
|
+
--hybrid-button-local-text-hover-background-color: rgba(255, 255, 255, 0.1);
|
|
556
|
+
--hybrid-button-local-text-hover-text-color: #ffffff;
|
|
557
|
+
--hybrid-button-local-text-hover-border-color: transparent;
|
|
558
|
+
--hybrid-button-local-text-active-background-color: rgba(255, 255, 255, 0.15);
|
|
559
|
+
--hybrid-button-local-text-active-text-color: #ffffff;
|
|
560
|
+
--hybrid-button-local-text-active-border-color: transparent;
|
|
561
|
+
--hybrid-button-local-text-disabled-background-color: transparent;
|
|
562
|
+
--hybrid-button-local-text-disabled-text-color: #6f6f6f;
|
|
563
|
+
--hybrid-button-local-text-disabled-border-color: transparent;
|
|
564
|
+
|
|
565
|
+
/* Link button dark theme overrides */
|
|
566
|
+
--hybrid-button-local-link-background-color: transparent;
|
|
567
|
+
--hybrid-button-local-link-text-color: #78a9ff;
|
|
568
|
+
--hybrid-button-local-link-border-color: transparent;
|
|
569
|
+
--hybrid-button-local-link-hover-background-color: transparent;
|
|
570
|
+
--hybrid-button-local-link-hover-text-color: #a6c8ff;
|
|
571
|
+
--hybrid-button-local-link-hover-border-color: transparent;
|
|
572
|
+
--hybrid-button-local-link-active-background-color: transparent;
|
|
573
|
+
--hybrid-button-local-link-active-text-color: #a6c8ff;
|
|
574
|
+
--hybrid-button-local-link-active-border-color: transparent;
|
|
575
|
+
--hybrid-button-local-link-disabled-background-color: transparent;
|
|
576
|
+
--hybrid-button-local-link-disabled-text-color: #6f6f6f;
|
|
577
|
+
--hybrid-button-local-link-disabled-border-color: transparent;
|
|
578
|
+
}
|
|
579
|
+
|
|
580
|
+
/* ========================================
|
|
581
|
+
* RIPPLE EFFECT STYLES
|
|
582
|
+
* ======================================== */
|
|
583
|
+
|
|
584
|
+
/* Ripple effect animation */
|
|
585
|
+
.ripple {
|
|
586
|
+
position: absolute;
|
|
587
|
+
border-radius: 50%;
|
|
588
|
+
background-color: rgba(255, 255, 255, 0.4);
|
|
589
|
+
transform: scale(0);
|
|
590
|
+
animation: ripple-animation 0.6s linear;
|
|
591
|
+
pointer-events: none;
|
|
592
|
+
}
|
|
593
|
+
|
|
594
|
+
/* Darker ripple for light buttons */
|
|
595
|
+
button[data-type='default'] .ripple,
|
|
596
|
+
button[data-type='ghost'] .ripple {
|
|
597
|
+
background-color: rgba(0, 0, 0, 0.1);
|
|
598
|
+
}
|
|
599
|
+
|
|
600
|
+
/* Lighter ripple for dark buttons */
|
|
601
|
+
button[data-type='primary'] .ripple,
|
|
602
|
+
button[data-type='danger'] .ripple {
|
|
603
|
+
background-color: rgba(255, 255, 255, 0.3);
|
|
604
|
+
}
|
|
605
|
+
|
|
606
|
+
/* Ripple animation keyframes */
|
|
607
|
+
@keyframes ripple-animation {
|
|
608
|
+
to {
|
|
609
|
+
transform: scale(4);
|
|
610
|
+
opacity: 0;
|
|
611
|
+
}
|
|
612
|
+
}
|
|
613
|
+
|
|
614
|
+
/* Disable ripple when component is disabled */
|
|
615
|
+
button:disabled .ripple {
|
|
616
|
+
display: none;
|
|
568
617
|
}
|
|
569
618
|
`;
|
|
570
619
|
/**
|
|
@@ -572,7 +621,7 @@ const buttonStyles = css `
|
|
|
572
621
|
*
|
|
573
622
|
* @description
|
|
574
623
|
* This export provides the complete styling system for the button component,
|
|
575
|
-
* including all variants, states, sizes, and
|
|
624
|
+
* including all variants, states, sizes, theme support, and CSS custom properties.
|
|
576
625
|
*
|
|
577
626
|
* @usage
|
|
578
627
|
* Import and use in the component's styles property:
|
|
@@ -584,5 +633,5 @@ const buttonStyles = css `
|
|
|
584
633
|
* })
|
|
585
634
|
* ```
|
|
586
635
|
*/
|
|
587
|
-
export const styles = [buttonStyles];
|
|
588
|
-
//# sourceMappingURL=
|
|
636
|
+
export const styles = [buttonStyles, buttonVariables];
|
|
637
|
+
//# sourceMappingURL=button.style.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"button.style.js","sourceRoot":"","sources":["../../../src/components/button/button.style.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAC1B,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAE9D;;;;;;;;;;;;;;GAcG;AACH,MAAM,YAAY,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAwlBvB,CAAC;AAEF;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,CAAC,MAAM,MAAM,GAAG,CAAC,YAAY,EAAE,eAAe,CAAC,CAAC","sourcesContent":["import { css } from 'lit';\nimport { buttonVariables } from './button.style.variables.js';\n\n/**\n * Button component styles for the Hybrid UI Library\n * \n * This file contains all the styling for the nr-button component, including:\n * - Base button styles with CSS custom properties for theming\n * - Multiple button variants (primary, secondary, ghost, danger)\n * - Size variations (small, large)\n * - State styles (hover, active, disabled, loading)\n * - Dark theme support\n * - Icon positioning and styling\n * - Responsive design considerations\n * \n * The styling system uses CSS custom properties with fallbacks to allow\n * for both global and local customization of button appearance.\n */\nconst buttonStyles = css`\n /* Container for button content and icon positioning */\n #container {\n display: flex;\n justify-content: center;\n align-items: center;\n width: 100%;\n height: 100%;\n }\n\n /* Icon positioned to the right of text when iconPosition='right' */\n :host([iconPosition='right']) #container {\n flex-direction: row-reverse;\n }\n\n /* Icon styling within button */\n hy-icon {\n display: flex;\n justify-content: center;\n align-items: center;\n padding: 2px;\n }\n\n /* \n * Base button element styles\n * Uses CSS custom properties with fallbacks for comprehensive theming support\n * Properties follow the pattern: --hybrid-button-{property}, --hybrid-button-local-{property}\n */\n\n /* \n * Base button element styles\n * Uses CSS custom properties with fallbacks for comprehensive theming support\n * Properties follow the pattern: --hybrid-button-{property}, --hybrid-button-local-{property}\n */\n button {\n /* Dimensions */\n height: var(--hybrid-button-height,var(--hybrid-button-local-height));\n width: var(--hybrid-button-width,var(--hybrid-button-local-width));\n \n /* Border properties - individual sides for granular control */\n border-left: var(--hybrid-button-border-left,var(--hybrid-button-local-border-left));\n border-right: var(--hybrid-button-border-right,var(--hybrid-button-local-border-right));\n border-top: var(--hybrid-button-border-top,var(--hybrid-button-local-border-top));\n border-bottom: var(--hybrid-button-border-bottom,var(--hybrid-button-local-border-bottom));\n \n /* Border radius - individual corners for design flexibility */\n border-top-left-radius:var(--hybrid-button-border-top-left-radius,var(--hybrid-button-local-border-top-left-radius)) ;\n border-top-right-radius: var(--hybrid-button-border-top-right-radius,var(--hybrid-button-local-border-top-right-radius));\n border-bottom-left-radius: var(--hybrid-button-border-bottom-left-radius,var(--hybrid-button-local-border-bottom-left-radius));\n border-bottom-right-radius: var(--hybrid-button-border-bottom-right-radius,var(--hybrid-button-local-border-bottom-right-radius));\n \n /* Colors */\n background-color: var(--hybrid-button-background-color,var(--hybrid-button-local-background-color));\n color: var(--hybrid-button-text-color,var(--hybrid-button-local-text-color));\n \n /* Typography */\n font-size: var(--hybrid-button-font-size,var(--hybrid-button-local-font-size));\n font-weight: var(--hybrid-button-font-weight,var(--hybrid-button-local-font-weight));\n text-transform: var(--hybrid-button-text-transform,var(--hybrid-button-local-text-transform));\n \n /* Spacing */\n padding-top: var(--hybrid-button-padding-y,var(--hybrid-button-local-padding-y));\n margin-top: var(--hybrid-button-margin-y,var(--hybrid-button-local-margin-y));\n padding-bottom: var(--hybrid-button-padding-y,var(--hybrid-button-local-padding-y));\n padding-right: var(--hybrid-button-padding-x,var(--hybrid-button-local-padding-x));\n padding-left: var(--hybrid-button-padding-x,var(--hybrid-button-local-padding-x));\n font-size: var(--hybrid-button-font-size,var(--hybrid-button-local-font-size));\n\n /* Positioning for ripple effect */\n position: relative;\n overflow: hidden;\n }\n \n /* Icon styling within button - inherits text color and size */\n button hy-icon {\n --hybrid-icon-color: var(--hybrid-button-text-color,var(--hybrid-button-local-text-color));\n --hybrid-icon-width: var(--hybrid-button-icon-width,var(--hybrid-button-local-icon-width));\n --hybrid-icon-height: var(--hybrid-button-icon-height,var(--hybrid-button-local-icon-height));\n }\n\n /* \n * Hover state styles\n * Applied when button is hovered but not disabled\n */\n\n /* \n * Hover state styles\n * Applied when button is hovered but not disabled\n */\n button:hover:not(:disabled) {\n cursor: pointer;\n border-color: var(--hybrid-button-hover-border-color,var(--hybrid-button-local-hover-border-color));\n background-color: var(--hybrid-button-hover-background-color,var(--hybrid-button-local-hover-background-color));\n color: var(--hybrid-button-hover-color,var(--hybrid-button-local-hover-color));\n }\n \n /* Icon color on hover */\n button:hover:not(:disabled) hy-icon {\n --hybrid-icon-color: var(--hybrid-button-hover-color,var(--hybrid-button-local-hover-color));\n }\n\n /* \n * Active state styles\n * Applied when button is being clicked/pressed but not disabled\n */\n button:active:not(:disabled) {\n outline: none;\n border-color: var(--hybrid-button-active-border-color,var(--hybrid-button-local-active-border-color));\n color: var(--hybrid-button-active-color,var(--hybrid-button-local-active-color));\n }\n \n /* Icon color on active state */\n button:active:not(:disabled) hy-icon {\n --hybrid-icon-color: var(--hybrid-button-active-color,var(--hybrid-button-local-active-color));\n }\n\n /* \n * Disabled state styles\n * Applied when button is disabled - removes interactivity and applies muted colors\n */\n\n /* \n * Disabled state styles\n * Applied when button is disabled - removes interactivity and applies muted colors\n */\n button:disabled {\n cursor: auto;\n background-color: var(--hybrid-button-disabled-background-color,var(--hybrid-button-local-disabled-background-color));\n color: var(--hybrid-button-disabled-text-color,var(--hybrid-button-local-disabled-text-color));\n border-color: var(--hybrid-button-disabled-border-color,var(--hybrid-button-local-disabled-border-color));\n }\n\n /* ========================================\n * SIZE VARIATIONS\n * ======================================== */\n\n /* Small button size variant */\n\n /* Small button size variant */\n button[data-size='small'] {\n padding-top: var(--hybrid-small-button-padding-y,var(--hybrid-small-button-local-padding-y));\n padding-bottom: var(--hybrid-small-button-padding-y,var(--hybrid-small-button-local-padding-y));\n padding-right: var(--hybrid-small-button-padding-x,var(--hybrid-small-button-local-padding-x));\n padding-left: var(--hybrid-small-button-padding-x,var(--hybrid-small-button-local-padding-x));\n font-size: var(--hybrid-small-button-font-size,var(--hybrid-small-button-local-font-size));\n }\n\n /* Large button size variant */\n button[data-size='large'] {\n padding-top: var(--hybrid-large-button-padding-y,var(--hybrid-large-button-local-padding-y));\n padding-bottom: var(--hybrid-large-button-padding-y,var(--hybrid-large-button-local-padding-y));\n padding-right: var(--hybrid-large-button-padding-x,var(--hybrid-large-button-local-padding-x));\n padding-left: var(--hybrid-large-button-padding-x,var(--hybrid-large-button-local-padding-x));\n font-size: var(--hybrid-large-button-font-size,var(--hybrid-large-button-local-font-size));\n }\n\n /* ========================================\n * BUTTON STATES\n * ======================================== */\n\n /* Loading state - reduces opacity to indicate processing */\n button[data-state='loading'] {\n opacity: 0.5;\n }\n\n /* ========================================\n * BUTTON TYPE VARIANTS\n * ======================================== */\n\n /* DANGER BUTTON VARIANT */\n /* DANGER BUTTON VARIANT */\n \n /* Danger button base styles and icon */\n button[data-type='danger'] hy-icon {\n --hybrid-icon-color: var(--hybrid-button-danger-text-color,var(--hybrid-button-local-danger-text-color));\n }\n button[data-type='danger'] {\n border-color: var(--hybrid-button-danger-border-color,var(--hybrid-button-local-danger-border-color));\n background-color: var(--hybrid-button-danger-background-color,var(--hybrid-button-local-danger-background-color));\n color: var(--hybrid-button-danger-text-color,var(--hybrid-button-local-danger-text-color));\n }\n \n /* Danger button with dashed border variant */\n button[data-type='danger'].button-dashed {\n border-color: var(--hybrid-button-danger-dashed-border-color,var(--hybrid-button-local-danger-dashed-border-color));\n }\n \n /* Danger button disabled state */\n button[data-type='danger']:disabled {\n border-color: var(--hybrid-button-danger-disabled-border-color,var(--hybrid-button-local-danger-disabled-border-color));\n background-color: var(--hybrid-button-danger-disabled-background-color,var(--hybrid-button-local-danger-disabled-background-color));\n color: var(--hybrid-button-danger-disabled-text-color,var(--hybrid-button-local-danger-disabled-text-color));\n }\n\n /* Danger button hover state */\n button[data-type='danger']:hover:not(:disabled) {\n background-color: var(--hybrid-button-danger-hover-background-color,var(--hybrid-button-local-danger-hover-background-color));\n border-color: var(--hybrid-button-danger-hover-border-color,var(--hybrid-button-local-danger-hover-border-color));\n color: var(--hybrid-button-danger-text-color,var(--hybrid-button-local-danger-text-color));\n }\n button[data-type='danger']:hover:not(:disabled) hy-icon {\n --hybrid-icon-color: var(--hybrid-button-danger-text-color,var(--hybrid-button-local-danger-text-color));\n }\n\n /* Danger button active state */\n button[data-type='danger']:active:not(:disabled) {\n background-color: var(--hybrid-button-danger-active-background-color,var(--hybrid-button-local-danger-active-background-color));\n border-color: var(--hybrid-button-danger-active-border-color,var(--hybrid-button-local-danger-active-border-color));\n outline: var(--hybrid-button-danger-outline,var(--hybrid-button-local-danger-outline));\n outline-offset: var(--hybrid-button-danger-outline-offset,var(--hybrid-button-local-danger-outline-offset));\n }\n\n /* PRIMARY BUTTON VARIANT */\n /* PRIMARY BUTTON VARIANT */\n \n /* Primary button base styles and icon */\n button[data-type='primary'] hy-icon {\n --hybrid-icon-color: var(--hybrid-button-primary-text-color,var(--hybrid-button-local-primary-text-color));\n }\n button[data-type='primary'] {\n border-color: var(--hybrid-button-primary-border-color,var(--hybrid-button-local-primary-border-color));\n background-color: var(--hybrid-button-primary-background-color,var(--hybrid-button-local-primary-background-color));\n color: var(--hybrid-button-primary-text-color,var(--hybrid-button-local-primary-text-color));\n }\n \n /* Primary button with dashed border variant */\n button[data-type='primary'].button-dashed {\n border-color: var(--hybrid-button-primary-dashed-border-color,var(--hybrid-button-local-primary-dashed-border-color));\n }\n\n /* Primary button disabled state */\n button[data-type='primary']:disabled {\n border-color: var(--hybrid-button-primary-disabled-border-color,var(--hybrid-button-local-primary-disabled-border-color));\n background-color: var(--hybrid-button-primary-disabled-background-color,var(--hybrid-button-local-primary-disabled-background-color));\n color: var(--hybrid-button-primary-disabled-text-color,var(--hybrid-button-local-primary-disabled-text-color));\n }\n\n /* Primary button hover state */\n button[data-type='primary']:hover:not(:disabled) {\n background-color: var(--hybrid-button-primary-hover-background-color,var(--hybrid-button-local-primary-hover-background-color));\n border-color: var(--hybrid-button-primary-hover-border-color,var(--hybrid-button-local-primary-hover-border-color));\n color: var(--hybrid-button-primary-text-color,var(--hybrid-button-local-primary-text-color));\n }\n button[data-type='primary']:hover:not(:disabled) hy-icon {\n --hybrid-icon-color: var(--hybrid-button-primary-text-color,var(--hybrid-button-local-primary-text-color));\n }\n \n /* Primary button active state */\n button[data-type='primary']:active:not(:disabled) {\n border-color: var(--hybrid-button-primary-active-border-color,var(--hybrid-button-local-primary-active-border-color));\n background-color: var(--hybrid-button-primary-active-background-color,var(--hybrid-button-local-primary-active-background-color));\n outline: var(--hybrid-button-primary-outline,var(--hybrid-button-local-primary-outline));\n outline-offset: var(--hybrid-button-primary-outline-offset,var(--hybrid-button-local-primary-outline-offset));\n }\n\n /* GHOST BUTTON VARIANT */\n /* GHOST BUTTON VARIANT */\n \n /* Ghost button base styles and icon */\n button[data-type='ghost'] hy-icon {\n --hybrid-icon-color: var(--hybrid-button-ghost-text-color,var(--hybrid-button-local-ghost-text-color));\n }\n button[data-type='ghost'] {\n background-color: var(--hybrid-button-ghost-background-color,var(--hybrid-button-local-ghost-background-color));\n color: var(--hybrid-button-ghost-text-color,var(--hybrid-button-local-ghost-text-color));\n border-color: var(--hybrid-button-ghost-border-color,var(--hybrid-button-local-ghost-border-color));\n }\n \n /* Ghost button with dashed border variant */\n button[data-type='ghost'].button-dashed {\n border-color: var(--hybrid-button-ghost-dashed-border-color,var(--hybrid-button-local-ghost-dashed-border-color));\n }\n \n /* Ghost button disabled state */\n button[data-type='ghost']:disabled {\n background-color: var(--hybrid-button-ghost-disabled-background-color,var(--hybrid-button-local-ghost-disabled-background-color));\n color: var(--hybrid-button-ghost-disabled-text-color,var(--hybrid-button-local-ghost-disabled-text-color));\n border-color: var(--hybrid-button-ghost-disabled-border-color,var(--hybrid-button-local-ghost-disabled-border-color));\n }\n\n /* Ghost button hover state */\n button[data-type='ghost']:hover:not(:disabled) {\n background-color: var(--hybrid-button-ghost-hover-background-color,var(--hybrid-button-local-ghost-hover-background-color));\n color: var(--hybrid-button-ghost-hover-text-color,var(--hybrid-button-local-ghost-hover-text-color));\n border-color: var(--hybrid-button-local-ghost-hover-border-color,var(--hybrid-button-local-ghost-hover-border-color));\n }\n button[data-type='ghost']:hover:not(:disabled) hy-icon {\n --hybrid-icon-color: var(--hybrid-button-ghost-hover-text-color,var(--hybrid-button-local-ghost-hover-text-color));\n }\n \n /* Ghost button active state */\n button[data-type='ghost']:active:not(:disabled) {\n background-color: var(--hybrid-button-ghost-active-background-color,var(--hybrid-button-local-ghost-active-background-color));\n border-color: var(--hybrid-button-ghost-active-border-color,var(--hybrid-button-local-ghost-active-border-color));\n }\n\n /* SECONDARY BUTTON VARIANT */\n /* SECONDARY BUTTON VARIANT */\n \n /* Secondary button base styles and icon */\n button[data-type='secondary'] hy-icon {\n --hybrid-icon-color: var(--hybrid-button-secondary-text-color,var(--hybrid-button-local-secondary-text-color));\n }\n button[data-type='secondary'] {\n background-color: var(--hybrid-button-secondary-background-color,var(--hybrid-button-local-secondary-background-color));\n color: var(--hybrid-button-secondary-text-color,var(--hybrid-button-local-secondary-text-color));\n border-color: var(--hybrid-button-secondary-border-color,var(--hybrid-button-local-secondary-border-color));\n }\n \n /* Secondary button with dashed border variant */\n button[data-type='secondary'].button-dashed {\n border-color: var(--hybrid-button-secondary-dashed-border-color,var(--hybrid-button-local-secondary-dashed-border-color));\n }\n \n /* Secondary button disabled state */\n button[data-type='secondary']:disabled {\n background-color: var(--hybrid-button-secondary-disabled-background-color,var(--hybrid-button-local-secondary-disabled-background-color));\n color: var(--hybrid-button-secondary-disabled-text-color,var(--hybrid-button-local-secondary-disabled-text-color));\n border-color: var(--hybrid-button-secondary-disabled-border-color,var(--hybrid-button-local-secondary-disabled-border-color));\n }\n \n /* Secondary button hover state */\n button[data-type='secondary']:hover:not(:disabled) {\n background-color: var(--hybrid-button-secondary-hover-background-color,var(--hybrid-button-local-secondary-hover-background-color));\n color: var(--hybrid-button-secondary-text-color,var(--hybrid-button-local-secondary-text-color));\n border-color: var(--hybrid-button-secondary-hover-border-color,var(--hybrid-button-local-secondary-hover-border-color));\n }\n button[data-type='secondary']:hover:not(:disabled) hy-icon {\n --hybrid-icon-color: var(--hybrid-button-secondary-text-color,var(--hybrid-button-local-secondary-text-color));\n }\n\n /* Secondary button active state */\n button[data-type='secondary']:active:not(:disabled) {\n background-color: var(--hybrid-button-secondary-active-background-color,var(--hybrid-button-local-secondary-active-background-color));\n border-color: var(--hybrid-button-secondary-active-border-color,var(--hybrid-button-local-secondary-active-border-color));\n outline: var(--hybrid-button-secondary-outline,var(--hybrid-button-local-secondary-outline));\n outline-offset: var(--hybrid-button-secondary-outline-offset,var(--hybrid-button-local-secondary-outline-offset));\n }\n\n /* ========================================\n * UTILITY CLASSES\n * ======================================== */\n\n /* Dashed border style modifier */\n .button-dashed {\n border-style: dashed;\n }\n\n /* ========================================\n * NEW BUTTON TYPES\n * ======================================== */\n\n /* TEXT BUTTON VARIANT */\n button[data-type='text'] {\n background-color: var(--hybrid-button-text-background-color, var(--hybrid-button-local-text-background-color, transparent));\n color: var(--hybrid-button-text-text-color, var(--hybrid-button-local-text-text-color, #1890ff));\n border: none;\n box-shadow: none;\n }\n\n button[data-type='text'] hy-icon {\n --hybrid-icon-color: var(--hybrid-button-text-text-color, var(--hybrid-button-local-text-text-color, #1890ff));\n }\n\n button[data-type='text']:hover:not(:disabled) {\n background-color: var(--hybrid-button-text-hover-background-color, var(--hybrid-button-local-text-hover-background-color, rgba(24, 144, 255, 0.06)));\n color: var(--hybrid-button-text-hover-text-color, var(--hybrid-button-local-text-hover-text-color, #40a9ff));\n }\n\n button[data-type='text']:hover:not(:disabled) hy-icon {\n --hybrid-icon-color: var(--hybrid-button-text-hover-text-color, var(--hybrid-button-local-text-hover-text-color, #40a9ff));\n }\n\n button[data-type='text']:active:not(:disabled) {\n background-color: var(--hybrid-button-text-active-background-color, var(--hybrid-button-local-text-active-background-color, rgba(24, 144, 255, 0.15)));\n color: var(--hybrid-button-text-active-text-color, var(--hybrid-button-local-text-active-text-color, #096dd9));\n }\n\n button[data-type='text']:disabled {\n background-color: transparent;\n color: var(--hybrid-button-text-disabled-text-color, var(--hybrid-button-local-text-disabled-text-color, rgba(0, 0, 0, 0.25)));\n border: none;\n }\n\n /* LINK BUTTON VARIANT */\n a[data-type='link'], button[data-type='link'] {\n background-color: transparent;\n color: var(--hybrid-button-link-text-color, var(--hybrid-button-local-link-text-color, #1890ff));\n border: none;\n box-shadow: none;\n text-decoration: underline;\n cursor: pointer;\n }\n\n a[data-type='link'] hy-icon, button[data-type='link'] hy-icon {\n --hybrid-icon-color: var(--hybrid-button-link-text-color, var(--hybrid-button-local-link-text-color, #1890ff));\n }\n\n a[data-type='link']:hover, button[data-type='link']:hover:not(:disabled) {\n color: var(--hybrid-button-link-hover-text-color, var(--hybrid-button-local-link-hover-text-color, #40a9ff));\n }\n\n a[data-type='link']:hover hy-icon, button[data-type='link']:hover:not(:disabled) hy-icon {\n --hybrid-icon-color: var(--hybrid-button-link-hover-text-color, var(--hybrid-button-local-link-hover-text-color, #40a9ff));\n }\n\n a[data-type='link']:active, button[data-type='link']:active:not(:disabled) {\n color: var(--hybrid-button-link-active-text-color, var(--hybrid-button-local-link-active-text-color, #096dd9));\n }\n\n button[data-type='link']:disabled {\n color: var(--hybrid-button-link-disabled-text-color, var(--hybrid-button-local-link-disabled-text-color, rgba(0, 0, 0, 0.25)));\n text-decoration: none;\n cursor: not-allowed;\n }\n\n /* ========================================\n * SHAPE VARIANTS\n * ======================================== */\n\n /* Circle button shape */\n button[data-shape='circle'], a[data-shape='circle'] {\n border-radius: 50%;\n width: var(--hybrid-button-circle-size, var(--hybrid-button-local-circle-size, 32px));\n height: var(--hybrid-button-circle-size, var(--hybrid-button-local-circle-size, 32px));\n padding: 0;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n }\n\n button[data-shape='circle'][data-size='small'], a[data-shape='circle'][data-size='small'] {\n width: var(--hybrid-button-circle-size-small, var(--hybrid-button-local-circle-size-small, 24px));\n height: var(--hybrid-button-circle-size-small, var(--hybrid-button-local-circle-size-small, 24px));\n }\n\n button[data-shape='circle'][data-size='large'], a[data-shape='circle'][data-size='large'] {\n width: var(--hybrid-button-circle-size-large, var(--hybrid-button-local-circle-size-large, 40px));\n height: var(--hybrid-button-circle-size-large, var(--hybrid-button-local-circle-size-large, 40px));\n }\n\n /* Round button shape */\n button[data-shape='round'], a[data-shape='round'] {\n border-radius: var(--hybrid-button-round-border-radius, var(--hybrid-button-local-round-border-radius, 16px));\n }\n\n /* ========================================\n * BLOCK BUTTON\n * ======================================== */\n\n button[data-block='true'], a[data-block='true'] {\n width: 100%;\n display: block;\n }\n\n /* ========================================\n * VARIANT STYLES\n * ======================================== */\n\n /* Primary button variant */\n\n /* ========================================\n * DARK THEME OVERRIDES\n * ======================================== */\n \n /**\n * Dark theme styles using data-theme attribute on button element\n * These override the light theme defaults when data-theme=\"dark\" is applied\n */\n /**\n * Dark theme styles using data-theme attribute on button element\n * These override the light theme defaults when data-theme=\"dark\" is applied\n */\n button[data-theme=\"dark\"] {\n /* Default button dark theme overrides */\n --hybrid-button-local-background-color: #000000;\n --hybrid-button-local-text-color: #ffffff;\n --hybrid-button-local-hover-border-color: #6f6f6f;\n --hybrid-button-local-hover-color: #6f6f6f;\n --hybrid-button-local-active-border-color: #c6c6c6;\n --hybrid-button-local-active-color: #c6c6c6;\n --hybrid-button-local-disabled-background-color: #c6c6c6;\n\n /* Primary button dark theme overrides */\n --hybrid-button-local-primary-outline: 1px solid black;\n --hybrid-button-local-primary-outline-offset: -3px;\n --hybrid-button-local-primary-active-border-color: #ffffff;\n --hybrid-button-local-primary-disabled-text-color: #c6c6c6;\n --hybrid-button-local-primary-disabled-background-color: #8d8d8d;\n --hybrid-button-local-primary-disabled-border-color: #8d8d8d;\n\n /* Secondary button dark theme overrides */\n --hybrid-button-local-secondary-background-color: #6f6f6f;\n --hybrid-button-local-secondary-border-color: #6f6f6f;\n --hybrid-button-local-secondary-text-color: #ffffff;\n --hybrid-button-local-secondary-active-border-color: #ffffff;\n --hybrid-button-local-secondary-active-background-color: #6f6f6f;\n --hybrid-button-local-secondary-outline: 1px solid black;\n --hybrid-button-local-secondary-outline-offset: -3px;\n --hybrid-button-local-secondary-hover-background-color: #606060;\n --hybrid-button-local-secondary-hover-border-color: #606060;\n --hybrid-button-local-secondary-disabled-background-color: #6f6f6f;\n --hybrid-button-local-secondary-disabled-text-color: #8d8d8d;\n --hybrid-button-local-secondary-disabled-border-color: #6f6f6f;\n --hybrid-button-local-secondary-dashed-border-color: #ffffff;\n\n /* Ghost button dark theme overrides */\n --hybrid-button-local-ghost-background-color: transparent;\n --hybrid-button-local-ghost-text-color: #78a9ff;\n --hybrid-button-local-ghost-border-color: transparent;\n --hybrid-button-local-ghost-active-background-color: transparent;\n --hybrid-button-local-ghost-active-text-color: #a6c8ff;\n --hybrid-button-local-ghost-active-border-color: #ffffff;\n --hybrid-button-local-ghost-hover-background-color: #4c4c4c;\n --hybrid-button-local-ghost-hover-border-color: #4c4c4c;\n --hybrid-button-local-ghost-hover-text-color: #a6c8ff;\n --hybrid-button-local-ghost-disabled-background-color: transparent;\n --hybrid-button-local-ghost-disabled-text-color: #6f6f6f;\n --hybrid-button-local-ghost-disabled-border-color: transparent;\n --hybrid-button-local-ghost-dashed-border-color: #c6c6c6;\n\n /* Danger button dark theme overrides */\n --hybrid-button-local-danger-outline: 1px solid #000000;\n --hybrid-button-local-danger-outline-offset: -3px;\n --hybrid-button-local-danger-hover-background-color: #ba1b23;\n --hybrid-button-local-danger-hover-border-color: #ba1b23;\n --hybrid-button-local-danger-active-background-color: #da1e28;\n --hybrid-button-local-danger-active-border-color: #ffffff;\n --hybrid-button-local-danger-disabled-background-color: #6f6f6f;\n --hybrid-button-local-danger-disabled-text-color: #8d8d8d;\n --hybrid-button-local-danger-disabled-border-color: #6f6f6f;\n --hybrid-button-local-danger-dashed-border-color: #ffffff;\n\n /* Text button dark theme overrides */\n --hybrid-button-local-text-background-color: transparent;\n --hybrid-button-local-text-text-color: #ffffff;\n --hybrid-button-local-text-border-color: transparent;\n --hybrid-button-local-text-hover-background-color: rgba(255, 255, 255, 0.1);\n --hybrid-button-local-text-hover-text-color: #ffffff;\n --hybrid-button-local-text-hover-border-color: transparent;\n --hybrid-button-local-text-active-background-color: rgba(255, 255, 255, 0.15);\n --hybrid-button-local-text-active-text-color: #ffffff;\n --hybrid-button-local-text-active-border-color: transparent;\n --hybrid-button-local-text-disabled-background-color: transparent;\n --hybrid-button-local-text-disabled-text-color: #6f6f6f;\n --hybrid-button-local-text-disabled-border-color: transparent;\n\n /* Link button dark theme overrides */\n --hybrid-button-local-link-background-color: transparent;\n --hybrid-button-local-link-text-color: #78a9ff;\n --hybrid-button-local-link-border-color: transparent;\n --hybrid-button-local-link-hover-background-color: transparent;\n --hybrid-button-local-link-hover-text-color: #a6c8ff;\n --hybrid-button-local-link-hover-border-color: transparent;\n --hybrid-button-local-link-active-background-color: transparent;\n --hybrid-button-local-link-active-text-color: #a6c8ff;\n --hybrid-button-local-link-active-border-color: transparent;\n --hybrid-button-local-link-disabled-background-color: transparent;\n --hybrid-button-local-link-disabled-text-color: #6f6f6f;\n --hybrid-button-local-link-disabled-border-color: transparent;\n }\n\n /* ========================================\n * RIPPLE EFFECT STYLES\n * ======================================== */\n\n /* Ripple effect animation */\n .ripple {\n position: absolute;\n border-radius: 50%;\n background-color: rgba(255, 255, 255, 0.4);\n transform: scale(0);\n animation: ripple-animation 0.6s linear;\n pointer-events: none;\n }\n\n /* Darker ripple for light buttons */\n button[data-type='default'] .ripple,\n button[data-type='ghost'] .ripple {\n background-color: rgba(0, 0, 0, 0.1);\n }\n\n /* Lighter ripple for dark buttons */\n button[data-type='primary'] .ripple,\n button[data-type='danger'] .ripple {\n background-color: rgba(255, 255, 255, 0.3);\n }\n\n /* Ripple animation keyframes */\n @keyframes ripple-animation {\n to {\n transform: scale(4);\n opacity: 0;\n }\n }\n\n /* Disable ripple when component is disabled */\n button:disabled .ripple {\n display: none;\n }\n`;\n\n/**\n * Exported styles for the nr-button component\n * \n * @description\n * This export provides the complete styling system for the button component,\n * including all variants, states, sizes, theme support, and CSS custom properties.\n * \n * @usage\n * Import and use in the component's styles property:\n * ```typescript\n * import { styles } from './nr-button.style.ts';\n * \n * @Component({\n * styles: styles\n * })\n * ```\n */\nexport const styles = [buttonStyles, buttonVariables];\n"]}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Button component CSS custom properties (design tokens)
|
|
3
|
+
*
|
|
4
|
+
* This file contains all the CSS custom properties used by the nr-button component,
|
|
5
|
+
* organized by functionality and including both light and dark theme variants.
|
|
6
|
+
*
|
|
7
|
+
* The styling system uses CSS custom properties with fallbacks to allow
|
|
8
|
+
* for both global and local customization of button appearance.
|
|
9
|
+
*/
|
|
10
|
+
export declare const buttonVariables: import("lit").CSSResult;
|
|
11
|
+
//# sourceMappingURL=button.style.variables.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"button.style.variables.d.ts","sourceRoot":"","sources":["../../../src/components/button/button.style.variables.ts"],"names":[],"mappings":"AAEA;;;;;;;;GAQG;AACH,eAAO,MAAM,eAAe,yBAsL3B,CAAC"}
|
|
@@ -0,0 +1,194 @@
|
|
|
1
|
+
import { css } from 'lit';
|
|
2
|
+
/**
|
|
3
|
+
* Button component CSS custom properties (design tokens)
|
|
4
|
+
*
|
|
5
|
+
* This file contains all the CSS custom properties used by the nr-button component,
|
|
6
|
+
* organized by functionality and including both light and dark theme variants.
|
|
7
|
+
*
|
|
8
|
+
* The styling system uses CSS custom properties with fallbacks to allow
|
|
9
|
+
* for both global and local customization of button appearance.
|
|
10
|
+
*/
|
|
11
|
+
export const buttonVariables = css `
|
|
12
|
+
:host {
|
|
13
|
+
/* ----------------------------------------
|
|
14
|
+
* DEFAULT BUTTON STYLES
|
|
15
|
+
* ---------------------------------------- */
|
|
16
|
+
--hybrid-button-local-border-top: 2px solid #d0d0d0;
|
|
17
|
+
--hybrid-button-local-border-bottom: 2px solid #d0d0d0;
|
|
18
|
+
--hybrid-button-local-border-left: 2px solid #d0d0d0;
|
|
19
|
+
--hybrid-button-local-border-right: 2px solid #d0d0d0;
|
|
20
|
+
--hybrid-button-local-border-top-left-radius: 0px;
|
|
21
|
+
--hybrid-button-local-border-top-right-radius: 0px;
|
|
22
|
+
--hybrid-button-local-border-bottom-left-radius: 0px;
|
|
23
|
+
--hybrid-button-local-border-bottom-right-radius: 0px;
|
|
24
|
+
--hybrid-button-local-background-color: #f9f9f9;
|
|
25
|
+
--hybrid-button-local-text-color: #393939;
|
|
26
|
+
--hybrid-button-local-hover-border-color: #1677ff;
|
|
27
|
+
--hybrid-button-local-hover-color: #1677ff;
|
|
28
|
+
--hybrid-button-local-font-size: 0.9rem;
|
|
29
|
+
--hybrid-button-local-font-weight: normal;
|
|
30
|
+
--hybrid-button-local-text-transform: none;
|
|
31
|
+
--hybrid-button-local-active-border-color: #1661b1;
|
|
32
|
+
--hybrid-button-local-active-color: #184d86;
|
|
33
|
+
--hybrid-button-local-disabled-background-color: #c6c6c6;
|
|
34
|
+
--hybrid-button-local-disabled-text-color: #8d8d8d;
|
|
35
|
+
--hybrid-button-local-disabled-border-color: #bbb;
|
|
36
|
+
--hybrid-button-local-height: auto;
|
|
37
|
+
--hybrid-button-local-width: auto;
|
|
38
|
+
--hybrid-button-local-padding-y: 0.5rem;
|
|
39
|
+
--hybrid-button-local-padding-x: 0.6rem;
|
|
40
|
+
--hybrid-button-local-icon-width: 18px;
|
|
41
|
+
--hybrid-button-local-icon-height: 14px;
|
|
42
|
+
|
|
43
|
+
/* ----------------------------------------
|
|
44
|
+
* PRIMARY BUTTON STYLES
|
|
45
|
+
* ---------------------------------------- */
|
|
46
|
+
--hybrid-button-local-primary-border-color: #0f62fe;
|
|
47
|
+
--hybrid-button-local-primary-background-color: #0f62fe;
|
|
48
|
+
--hybrid-button-local-primary-text-color: #ffffff;
|
|
49
|
+
--hybrid-button-local-primary-outline: 1px solid white;
|
|
50
|
+
--hybrid-button-local-primary-outline-offset: -3px;
|
|
51
|
+
--hybrid-button-local-primary-hover-background-color: #0353e9;
|
|
52
|
+
--hybrid-button-local-primary-hover-border-color: #0353e9;
|
|
53
|
+
--hybrid-button-local-primary-active-background-color: #0f62fe;
|
|
54
|
+
--hybrid-button-local-primary-active-border-color: #0f62fe;
|
|
55
|
+
--hybrid-button-local-primary-disabled-text-color: #8d8d8d;
|
|
56
|
+
--hybrid-button-local-primary-disabled-background-color: #c6c6c6;
|
|
57
|
+
--hybrid-button-local-primary-disabled-border-color: #c6c6c6;
|
|
58
|
+
--hybrid-button-local-primary-dashed-border-color: #ffffff;
|
|
59
|
+
|
|
60
|
+
/* ----------------------------------------
|
|
61
|
+
* DANGER BUTTON STYLES
|
|
62
|
+
* ---------------------------------------- */
|
|
63
|
+
--hybrid-button-local-danger-background-color: #da1e28;
|
|
64
|
+
--hybrid-button-local-danger-text-color: #ffffff;
|
|
65
|
+
--hybrid-button-local-danger-border-color: #da1e28;
|
|
66
|
+
--hybrid-button-local-danger-outline: 1px solid white;
|
|
67
|
+
--hybrid-button-local-danger-outline-offset: -3px;
|
|
68
|
+
--hybrid-button-local-danger-hover-background-color: #ba1b23;
|
|
69
|
+
--hybrid-button-local-danger-hover-border-color: #ba1b23;
|
|
70
|
+
--hybrid-button-local-danger-active-background-color: #da1e28;
|
|
71
|
+
--hybrid-button-local-danger-active-border-color: #0f62fe;
|
|
72
|
+
--hybrid-button-local-danger-disabled-background-color: #c6c6c6;
|
|
73
|
+
--hybrid-button-local-danger-disabled-text-color: #8d8d8d;
|
|
74
|
+
--hybrid-button-local-danger-disabled-border-color: #c6c6c6;
|
|
75
|
+
--hybrid-button-local-danger-dashed-border-color: #ffffff;
|
|
76
|
+
|
|
77
|
+
/* ----------------------------------------
|
|
78
|
+
* GHOST BUTTON STYLES
|
|
79
|
+
* ---------------------------------------- */
|
|
80
|
+
--hybrid-button-local-ghost-background-color: #ffffff;
|
|
81
|
+
--hybrid-button-local-ghost-text-color: #0f62fe;
|
|
82
|
+
--hybrid-button-local-ghost-border-color: #ffffff;
|
|
83
|
+
--hybrid-button-local-ghost-active-background-color: #ffffff;
|
|
84
|
+
--hybrid-button-local-ghost-active-text-color: #054ada;
|
|
85
|
+
--hybrid-button-local-ghost-active-border-color: #0f62fe;
|
|
86
|
+
--hybrid-button-local-ghost-hover-background-color: #e5e5e5;
|
|
87
|
+
--hybrid-button-local-ghost-hover-border-color: #e5e5e5;
|
|
88
|
+
--hybrid-button-local-ghost-hover-text-color: #054ada;
|
|
89
|
+
--hybrid-button-local-ghost-disabled-background-color: #ffffff;
|
|
90
|
+
--hybrid-button-local-ghost-disabled-text-color: #c6c6c6;
|
|
91
|
+
--hybrid-button-local-ghost-disabled-border-color: #ffffff;
|
|
92
|
+
--hybrid-button-local-ghost-dashed-border-color: #c6c6c6;
|
|
93
|
+
|
|
94
|
+
/* ----------------------------------------
|
|
95
|
+
* SECONDARY BUTTON STYLES
|
|
96
|
+
* ---------------------------------------- */
|
|
97
|
+
--hybrid-button-local-secondary-background-color: #393939;
|
|
98
|
+
--hybrid-button-local-secondary-border-color: #393939;
|
|
99
|
+
--hybrid-button-local-secondary-text-color: #ffffff;
|
|
100
|
+
--hybrid-button-local-secondary-outline: 1px solid white;
|
|
101
|
+
--hybrid-button-local-secondary-outline-offset: -3px;
|
|
102
|
+
--hybrid-button-local-secondary-hover-background-color: #4c4c4c;
|
|
103
|
+
--hybrid-button-local-secondary-hover-border-color: #4c4c4c;
|
|
104
|
+
--hybrid-button-local-secondary-active-background-color: #393939;
|
|
105
|
+
--hybrid-button-local-secondary-active-border-color: #0f62fe;
|
|
106
|
+
--hybrid-button-local-secondary-disabled-background-color: #c6c6c6;
|
|
107
|
+
--hybrid-button-local-secondary-disabled-text-color: #8d8d8d;
|
|
108
|
+
--hybrid-button-local-secondary-disabled-border-color: #c6c6c6;
|
|
109
|
+
--hybrid-button-local-secondary-dashed-border-color: #ffffff;
|
|
110
|
+
|
|
111
|
+
/* ----------------------------------------
|
|
112
|
+
* SIZE VARIANTS
|
|
113
|
+
* ---------------------------------------- */
|
|
114
|
+
/* Large button sizing */
|
|
115
|
+
--hybrid-large-button-local-padding-y: 0.5rem;
|
|
116
|
+
--hybrid-large-button-local-padding-x: 0.9rem;
|
|
117
|
+
--hybrid-large-button-local-font-size: 1rem;
|
|
118
|
+
|
|
119
|
+
/* Small button sizing */
|
|
120
|
+
--hybrid-small-button-local-padding-y: 0.5rem;
|
|
121
|
+
--hybrid-small-button-local-padding-x: 0.4rem;
|
|
122
|
+
--hybrid-small-button-local-font-size: 0.7rem;
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
/* ========================================
|
|
126
|
+
* DARK THEME OVERRIDES
|
|
127
|
+
* ======================================== */
|
|
128
|
+
|
|
129
|
+
/**
|
|
130
|
+
* Dark theme styles using data-theme attribute on button element
|
|
131
|
+
* These override the light theme defaults when data-theme="dark" is applied
|
|
132
|
+
*/
|
|
133
|
+
button[data-theme="dark"] {
|
|
134
|
+
/* Default button dark theme overrides */
|
|
135
|
+
--hybrid-button-local-background-color: #000000;
|
|
136
|
+
--hybrid-button-local-text-color: #ffffff;
|
|
137
|
+
--hybrid-button-local-hover-border-color: #6f6f6f;
|
|
138
|
+
--hybrid-button-local-hover-color: #6f6f6f;
|
|
139
|
+
--hybrid-button-local-active-border-color: #c6c6c6;
|
|
140
|
+
--hybrid-button-local-active-color: #c6c6c6;
|
|
141
|
+
--hybrid-button-local-disabled-background-color: #c6c6c6;
|
|
142
|
+
|
|
143
|
+
/* Primary button dark theme overrides */
|
|
144
|
+
--hybrid-button-local-primary-outline: 1px solid black;
|
|
145
|
+
--hybrid-button-local-primary-outline-offset: -3px;
|
|
146
|
+
--hybrid-button-local-primary-active-border-color: #ffffff;
|
|
147
|
+
--hybrid-button-local-primary-disabled-text-color: #c6c6c6;
|
|
148
|
+
--hybrid-button-local-primary-disabled-background-color: #8d8d8d;
|
|
149
|
+
--hybrid-button-local-primary-disabled-border-color: #8d8d8d;
|
|
150
|
+
|
|
151
|
+
/* Secondary button dark theme overrides */
|
|
152
|
+
--hybrid-button-local-secondary-background-color: #6f6f6f;
|
|
153
|
+
--hybrid-button-local-secondary-border-color: #6f6f6f;
|
|
154
|
+
--hybrid-button-local-secondary-text-color: #ffffff;
|
|
155
|
+
--hybrid-button-local-secondary-active-border-color: #ffffff;
|
|
156
|
+
--hybrid-button-local-secondary-active-background-color: #6f6f6f;
|
|
157
|
+
--hybrid-button-local-secondary-outline: 1px solid black;
|
|
158
|
+
--hybrid-button-local-secondary-outline-offset: -3px;
|
|
159
|
+
--hybrid-button-local-secondary-hover-background-color: #606060;
|
|
160
|
+
--hybrid-button-local-secondary-hover-border-color: #606060;
|
|
161
|
+
--hybrid-button-local-secondary-disabled-background-color: #6f6f6f;
|
|
162
|
+
--hybrid-button-local-secondary-disabled-text-color: #8d8d8d;
|
|
163
|
+
--hybrid-button-local-secondary-disabled-border-color: #6f6f6f;
|
|
164
|
+
--hybrid-button-local-secondary-dashed-border-color: #ffffff;
|
|
165
|
+
|
|
166
|
+
/* Ghost button dark theme overrides */
|
|
167
|
+
--hybrid-button-local-ghost-background-color: transparent;
|
|
168
|
+
--hybrid-button-local-ghost-text-color: #78a9ff;
|
|
169
|
+
--hybrid-button-local-ghost-border-color: transparent;
|
|
170
|
+
--hybrid-button-local-ghost-active-background-color: transparent;
|
|
171
|
+
--hybrid-button-local-ghost-active-text-color: #a6c8ff;
|
|
172
|
+
--hybrid-button-local-ghost-active-border-color: #ffffff;
|
|
173
|
+
--hybrid-button-local-ghost-hover-background-color: #4c4c4c;
|
|
174
|
+
--hybrid-button-local-ghost-hover-border-color: #4c4c4c;
|
|
175
|
+
--hybrid-button-local-ghost-hover-text-color: #a6c8ff;
|
|
176
|
+
--hybrid-button-local-ghost-disabled-background-color: transparent;
|
|
177
|
+
--hybrid-button-local-ghost-disabled-text-color: #6f6f6f;
|
|
178
|
+
--hybrid-button-local-ghost-disabled-border-color: transparent;
|
|
179
|
+
--hybrid-button-local-ghost-dashed-border-color: #c6c6c6;
|
|
180
|
+
|
|
181
|
+
/* Danger button dark theme overrides */
|
|
182
|
+
--hybrid-button-local-danger-outline: 1px solid #000000;
|
|
183
|
+
--hybrid-button-local-danger-outline-offset: -3px;
|
|
184
|
+
--hybrid-button-local-danger-hover-background-color: #ba1b23;
|
|
185
|
+
--hybrid-button-local-danger-hover-border-color: #ba1b23;
|
|
186
|
+
--hybrid-button-local-danger-active-background-color: #da1e28;
|
|
187
|
+
--hybrid-button-local-danger-active-border-color: #ffffff;
|
|
188
|
+
--hybrid-button-local-danger-disabled-background-color: #6f6f6f;
|
|
189
|
+
--hybrid-button-local-danger-disabled-text-color: #8d8d8d;
|
|
190
|
+
--hybrid-button-local-danger-disabled-border-color: #6f6f6f;
|
|
191
|
+
--hybrid-button-local-danger-dashed-border-color: #ffffff;
|
|
192
|
+
}
|
|
193
|
+
`;
|
|
194
|
+
//# sourceMappingURL=button.style.variables.js.map
|