@iroco/ui 1.0.0-2 → 1.0.0-4

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.
Files changed (54) hide show
  1. package/dist/Alert.stories.svelte +31 -0
  2. package/dist/Alert.stories.svelte.d.ts +37 -0
  3. package/dist/Alert.svelte +60 -7
  4. package/dist/Button.stories.svelte +5 -7
  5. package/dist/Button.stories.svelte.d.ts +6 -3
  6. package/dist/Button.svelte +70 -15
  7. package/dist/DataTable.stories.svelte +33 -0
  8. package/dist/DataTable.stories.svelte.d.ts +29 -0
  9. package/dist/DataTable.svelte +55 -2
  10. package/dist/IconBurger.stories.svelte +32 -0
  11. package/dist/IconBurger.stories.svelte.d.ts +48 -0
  12. package/dist/IconClose.stories.svelte +32 -0
  13. package/dist/IconClose.stories.svelte.d.ts +48 -0
  14. package/dist/IconFloppyDisk.stories.svelte +36 -0
  15. package/dist/IconFloppyDisk.stories.svelte.d.ts +55 -0
  16. package/dist/IconInfo.stories.svelte +34 -0
  17. package/dist/IconInfo.stories.svelte.d.ts +50 -0
  18. package/dist/IconIrocoLogo.stories.svelte +37 -0
  19. package/dist/IconIrocoLogo.stories.svelte.d.ts +57 -0
  20. package/dist/IconMoreSign.stories.svelte +34 -0
  21. package/dist/IconMoreSign.stories.svelte.d.ts +50 -0
  22. package/dist/IconTrashCan.stories.svelte +34 -0
  23. package/dist/IconTrashCan.stories.svelte.d.ts +50 -0
  24. package/dist/IrocoLogo.stories.svelte +37 -0
  25. package/dist/IrocoLogo.stories.svelte.d.ts +50 -0
  26. package/dist/Loader.stories.svelte +23 -0
  27. package/dist/Loader.stories.svelte.d.ts +29 -0
  28. package/dist/NavBar.stories.svelte +38 -0
  29. package/dist/NavBar.stories.svelte.d.ts +37 -0
  30. package/dist/NavBar.svelte +132 -24
  31. package/dist/Navigation.stories.svelte +8 -10
  32. package/dist/Navigation.stories.svelte.d.ts +0 -4
  33. package/dist/Navigation.svelte +57 -4
  34. package/dist/NumberInput.stories.svelte +50 -0
  35. package/dist/NumberInput.stories.svelte.d.ts +77 -0
  36. package/dist/NumberInput.svelte +60 -7
  37. package/dist/RadioButton.stories.svelte +53 -0
  38. package/dist/RadioButton.stories.svelte.d.ts +56 -0
  39. package/dist/RadioButton.svelte +57 -5
  40. package/dist/RadioButton.svelte.d.ts +0 -2
  41. package/dist/TextInput.stories.svelte +75 -0
  42. package/dist/TextInput.stories.svelte.d.ts +111 -0
  43. package/dist/TextInput.svelte +61 -8
  44. package/dist/scss/button.scss +24 -14
  45. package/dist/scss/colors.scss +82 -0
  46. package/dist/scss/fields/_input.scss +11 -15
  47. package/dist/scss/forms.scss +7 -7
  48. package/package.json +3 -2
  49. package/dist/NumberInputSized.svelte +0 -4
  50. package/dist/NumberInputSized.svelte.d.ts +0 -14
  51. package/dist/TopBar.svelte +0 -0
  52. package/dist/TopBar.svelte.d.ts +0 -23
  53. package/dist/scss/check.scss +0 -47
  54. package/dist/scss/iroco.scss +0 -36
@@ -98,6 +98,59 @@ $:
98
98
  color: #f5f5f5;
99
99
  }
100
100
 
101
+ :root {
102
+ --color-white-op-20: rgba(255, 255, 255, 0.2);
103
+ --color-white-op-30: rgba(255, 255, 255, 0.3);
104
+ --color-black-op-20: rgba(0, 0, 0, 0.2);
105
+ --color-black-op-40: rgba(0, 0, 0, 0.4);
106
+ --color-black-op-60: rgba(0, 0, 0, 0.6);
107
+ --color-dark-blue-op-30: #211d284d;
108
+ /* semantic colors */
109
+ --color-primary-light: #82eec7;
110
+ --color-primary: #00d692;
111
+ --color-primary-bg: #00d69280;
112
+ --color-primary-dark: #00a873;
113
+ --color-secondary-light: #ffffff;
114
+ --color-secondary: #f2ebe3;
115
+ --color-secondary-dark: #a9a29e;
116
+ /* feedback */
117
+ --color-success: #00d692;
118
+ --color-success-bg: #00d69280;
119
+ --color-danger: #ff504d;
120
+ --color-danger-bg: #ff504d80;
121
+ --color-warning: #ffe032;
122
+ --color-warning-bg: #ffe03280;
123
+ /* typography */
124
+ --color-text-light: #ffffff;
125
+ --color-text: #f2ebe3;
126
+ --color-text-op-50: #f2ebe380;
127
+ --color-text-op-60: #f2ebe399;
128
+ --color-text-dark: #464452;
129
+ /* border */
130
+ --color-border: #464452;
131
+ /* body */
132
+ --color-body: #211d28;
133
+ /* forms */
134
+ --form-element-border: var(--color-border);
135
+ --form-element-bg: #f2ebe3;
136
+ --form-text-placeholder: #a9a29e;
137
+ /* buttons */
138
+ --btn-primary-bg: #f2ebe3;
139
+ --btn-primary-border: #18151e;
140
+ --btn-primary-label: #f2ebe3;
141
+ --dark-btn-primary-label: #f2ebe3;
142
+ --dark-btn-primary-bg: #18151e;
143
+ --btn-basic-label: #18151e;
144
+ --btn-basic-bg: #f2ebe3;
145
+ --btn-basic-border: #18151e;
146
+ --btn-disabled-label: var(--color-black-op-60);
147
+ --btn-disabled-bg: #a9a29e;
148
+ --btn-disabled-border: var(--color-black-op-60);
149
+ /* icons */
150
+ --color-icon-primary: #a9a29e;
151
+ --color-icon-secondary: inherit;
152
+ }
153
+
101
154
  .container-wide {
102
155
  width: calc(100% - 20px);
103
156
  max-width: 2360px;
@@ -324,6 +377,59 @@ $:
324
377
  color: #f5f5f5;
325
378
  }
326
379
 
380
+ :root {
381
+ --color-white-op-20: rgba(255, 255, 255, 0.2);
382
+ --color-white-op-30: rgba(255, 255, 255, 0.3);
383
+ --color-black-op-20: rgba(0, 0, 0, 0.2);
384
+ --color-black-op-40: rgba(0, 0, 0, 0.4);
385
+ --color-black-op-60: rgba(0, 0, 0, 0.6);
386
+ --color-dark-blue-op-30: #211d284d;
387
+ /* semantic colors */
388
+ --color-primary-light: #82eec7;
389
+ --color-primary: #00d692;
390
+ --color-primary-bg: #00d69280;
391
+ --color-primary-dark: #00a873;
392
+ --color-secondary-light: #ffffff;
393
+ --color-secondary: #f2ebe3;
394
+ --color-secondary-dark: #a9a29e;
395
+ /* feedback */
396
+ --color-success: #00d692;
397
+ --color-success-bg: #00d69280;
398
+ --color-danger: #ff504d;
399
+ --color-danger-bg: #ff504d80;
400
+ --color-warning: #ffe032;
401
+ --color-warning-bg: #ffe03280;
402
+ /* typography */
403
+ --color-text-light: #ffffff;
404
+ --color-text: #f2ebe3;
405
+ --color-text-op-50: #f2ebe380;
406
+ --color-text-op-60: #f2ebe399;
407
+ --color-text-dark: #464452;
408
+ /* border */
409
+ --color-border: #464452;
410
+ /* body */
411
+ --color-body: #211d28;
412
+ /* forms */
413
+ --form-element-border: var(--color-border);
414
+ --form-element-bg: #f2ebe3;
415
+ --form-text-placeholder: #a9a29e;
416
+ /* buttons */
417
+ --btn-primary-bg: #f2ebe3;
418
+ --btn-primary-border: #18151e;
419
+ --btn-primary-label: #f2ebe3;
420
+ --dark-btn-primary-label: #f2ebe3;
421
+ --dark-btn-primary-bg: #18151e;
422
+ --btn-basic-label: #18151e;
423
+ --btn-basic-bg: #f2ebe3;
424
+ --btn-basic-border: #18151e;
425
+ --btn-disabled-label: var(--color-black-op-60);
426
+ --btn-disabled-bg: #a9a29e;
427
+ --btn-disabled-border: var(--color-black-op-60);
428
+ /* icons */
429
+ --color-icon-primary: #a9a29e;
430
+ --color-icon-secondary: inherit;
431
+ }
432
+
327
433
  .container-wide {
328
434
  width: calc(100% - 20px);
329
435
  max-width: 2360px;
@@ -510,35 +616,35 @@ $:
510
616
  cursor: pointer;
511
617
  -webkit-touch-callout: none;
512
618
  -webkit-user-select: none;
513
- -khtml-user-select: none;
514
619
  -moz-user-select: none;
515
620
  -ms-user-select: none;
516
621
  user-select: none;
517
622
  border: none;
518
623
  flex-shrink: 0;
519
- margin: 1em 0em;
624
+ margin: 1em 0;
520
625
  position: relative;
521
626
  text-transform: uppercase;
522
627
  border-radius: 0.3em;
523
628
  }
524
629
 
525
630
  .iroco-ui-button--basic {
526
- background: #f2ebe3;
527
- border: 1px solid #18151e;
631
+ color: var(--btn-basic-label);
632
+ background: var(--btn-basic-bg);
633
+ border: 1px solid var(--btn-basic-border);
528
634
  }
529
635
 
530
636
  .iroco-ui-button--dark {
531
- background: #18151e;
532
- color: #f2ebe3;
637
+ background: var(--dark-btn-primary-bg);
638
+ color: var(--dark-btn-primary-label);
533
639
  }
534
640
 
535
641
  .iroco-ui-button--success {
536
- background: #00d692;
537
- color: #18151e;
642
+ background: var(--color-success);
643
+ color: var(--btn-secondary-label);
538
644
  }
539
645
 
540
646
  .iroco-ui-button--danger {
541
- background: #ff504d;
647
+ background: var(--color-danger);
542
648
  }
543
649
 
544
650
  .iroco-ui-button--regular {
@@ -550,23 +656,25 @@ $:
550
656
  }
551
657
 
552
658
  .iroco-ui-button--basic:hover, .iroco-ui-button--success:hover, .iroco-ui-button--danger:hover {
553
- box-shadow: inset 0 0 0 10em rgba(0, 0, 0, 0.2);
659
+ box-shadow: inset 0 0 0 10em var(--color-black-op-20);
554
660
  }
555
661
 
556
662
  .iroco-ui-button--dark:hover {
557
- box-shadow: inset 0 0 0 10em rgba(255, 255, 255, 0.2);
663
+ box-shadow: inset 0 0 0 10em var(--color-white-op-20);
558
664
  }
559
665
 
560
666
  .iroco-ui-button:active {
561
667
  box-shadow: none;
562
668
  }
563
669
 
564
- .iroco-ui-button.disabled {
565
- background-color: #f5f5f5;
670
+ .iroco-ui-button.disabled, .iroco-ui-button:disabled {
671
+ background-color: var(--btn-disabled-bg);
672
+ color: var(--btn-disabled-label);
673
+ border-color: var(--btn-disabled-border);
566
674
  cursor: default;
567
675
  }
568
676
 
569
- .iroco-ui-button.disabled:hover {
677
+ .iroco-ui-button.disabled:hover, .iroco-ui-button:disabled:hover {
570
678
  box-shadow: none;
571
679
  }
572
680
 
@@ -574,7 +682,7 @@ $:
574
682
  background: none;
575
683
  border: none;
576
684
  font-family: "Arial";
577
- color: #f2ebe3;
685
+ color: var(--color-text);
578
686
  cursor: pointer;
579
687
  }
580
688
 
@@ -606,7 +714,7 @@ $:
606
714
 
607
715
  .nav__sidebar__item {
608
716
  padding: 2em;
609
- border-top: 1px solid #464452;
717
+ border-top: 1px solid var(--color-border);
610
718
  }
611
719
 
612
720
  .nav__sidebar__item:first-child {
@@ -614,8 +722,8 @@ $:
614
722
  }
615
723
 
616
724
  .nav__sidebar .active {
617
- border-top: 1px solid #00d692;
618
- border-bottom: 1px solid #00d692;
725
+ border-top: 1px solid var(--color-primary);
726
+ border-bottom: 1px solid var(--color-primary);
619
727
  }
620
728
 
621
729
  .nav__topbar {
@@ -636,19 +744,19 @@ $:
636
744
  }
637
745
 
638
746
  .nav__topbar .active {
639
- border-bottom: 1px solid #00d692;
747
+ border-bottom: 1px solid var(--color-primary);
640
748
  }
641
749
 
642
750
  .nav__version {
643
751
  margin-top: auto;
644
752
  padding-left: 2em;
645
- color: #464452;
753
+ color: var(--color-text-dark);
646
754
  }
647
755
 
648
756
  @media all and (max-width: 768px) {
649
757
  .nav__sidebar, .nav__topbar {
650
758
  position: fixed;
651
- background-color: #211d28;
759
+ background-color: var(--color-body);
652
760
  top: 0;
653
761
  right: 0;
654
762
  width: 100%;
@@ -673,21 +781,21 @@ $:
673
781
  top: 0;
674
782
  background-color: transparent;
675
783
  border: none;
676
- color: #a9a29e;
784
+ color: var(--color-icon-primary);
677
785
  }
678
786
  .nav__sidebar {
679
787
  top: 0;
680
788
  left: 0;
681
789
  }
682
790
  .nav__sidebar__item:first-child {
683
- border-top: 1px solid #464452;
791
+ border-top: 1px solid var(--color-border);
684
792
  }
685
793
  .nav__topbar {
686
794
  height: 100%;
687
795
  }
688
796
  .nav__topbar__item {
689
797
  padding: 2em;
690
- border-top: 1px solid #464452;
798
+ border-top: 1px solid var(--color-border);
691
799
  }
692
800
  .nav__version {
693
801
  display: none;
@@ -1,6 +1,6 @@
1
1
  <script context="module">
2
2
  import Navigation from './Navigation.svelte';
3
- import { NavigationItem } from './definition';
3
+ import { NavigationItem, NavigationItemType } from './definition';
4
4
 
5
5
  export const meta = {
6
6
  title: 'Navigation',
@@ -21,12 +21,6 @@
21
21
  }
22
22
 
23
23
  },
24
- args: {
25
- navigationItems: [
26
- new NavigationItem('About', `/about`),
27
- new NavigationItem('Foo', `/foo`),
28
- new NavigationItem('Bar', `/bar`)]
29
- }
30
24
  };
31
25
  </script>
32
26
 
@@ -37,9 +31,13 @@
37
31
  <Template let:args>
38
32
  <Navigation {...args}
39
33
  navigationItems={[
40
- new NavigationItem('About', `/about`),
41
- new NavigationItem('Foo', `/foo`),
42
- new NavigationItem('Bar', `/bar`)]}>
34
+ new NavigationItem('About', `/about`),
35
+ new NavigationItem('Foo', `/foo`),
36
+ new NavigationItem('Bar', `/bar`),
37
+ new NavigationItem('Button', `/bar`, NavigationItemType.BUTTON),
38
+ new NavigationItem('Anchor', `/bar`, NavigationItemType.ANCHOR),
39
+ new NavigationItem('Form', `/bar`, NavigationItemType.FORM)
40
+ ]}>
43
41
 
44
42
  </Navigation>
45
43
  </Template>
@@ -32,9 +32,6 @@ export namespace meta {
32
32
  export { control_3 as control };
33
33
  }
34
34
  }
35
- export namespace args {
36
- let navigationItems: NavigationItem[];
37
- }
38
35
  }
39
36
  /** @typedef {typeof __propDef.props} NavigationProps */
40
37
  /** @typedef {typeof __propDef.events} NavigationEvents */
@@ -49,7 +46,6 @@ export type NavigationProps = typeof __propDef.props;
49
46
  export type NavigationEvents = typeof __propDef.events;
50
47
  export type NavigationSlots = typeof __propDef.slots;
51
48
  import Navigation from './Navigation.svelte';
52
- import { NavigationItem } from './definition';
53
49
  import { SvelteComponent } from "svelte";
54
50
  declare const __propDef: {
55
51
  props: {
@@ -94,6 +94,59 @@ let showMenu = false;
94
94
  color: #f5f5f5;
95
95
  }
96
96
 
97
+ :root {
98
+ --color-white-op-20: rgba(255, 255, 255, 0.2);
99
+ --color-white-op-30: rgba(255, 255, 255, 0.3);
100
+ --color-black-op-20: rgba(0, 0, 0, 0.2);
101
+ --color-black-op-40: rgba(0, 0, 0, 0.4);
102
+ --color-black-op-60: rgba(0, 0, 0, 0.6);
103
+ --color-dark-blue-op-30: #211d284d;
104
+ /* semantic colors */
105
+ --color-primary-light: #82eec7;
106
+ --color-primary: #00d692;
107
+ --color-primary-bg: #00d69280;
108
+ --color-primary-dark: #00a873;
109
+ --color-secondary-light: #ffffff;
110
+ --color-secondary: #f2ebe3;
111
+ --color-secondary-dark: #a9a29e;
112
+ /* feedback */
113
+ --color-success: #00d692;
114
+ --color-success-bg: #00d69280;
115
+ --color-danger: #ff504d;
116
+ --color-danger-bg: #ff504d80;
117
+ --color-warning: #ffe032;
118
+ --color-warning-bg: #ffe03280;
119
+ /* typography */
120
+ --color-text-light: #ffffff;
121
+ --color-text: #f2ebe3;
122
+ --color-text-op-50: #f2ebe380;
123
+ --color-text-op-60: #f2ebe399;
124
+ --color-text-dark: #464452;
125
+ /* border */
126
+ --color-border: #464452;
127
+ /* body */
128
+ --color-body: #211d28;
129
+ /* forms */
130
+ --form-element-border: var(--color-border);
131
+ --form-element-bg: #f2ebe3;
132
+ --form-text-placeholder: #a9a29e;
133
+ /* buttons */
134
+ --btn-primary-bg: #f2ebe3;
135
+ --btn-primary-border: #18151e;
136
+ --btn-primary-label: #f2ebe3;
137
+ --dark-btn-primary-label: #f2ebe3;
138
+ --dark-btn-primary-bg: #18151e;
139
+ --btn-basic-label: #18151e;
140
+ --btn-basic-bg: #f2ebe3;
141
+ --btn-basic-border: #18151e;
142
+ --btn-disabled-label: var(--color-black-op-60);
143
+ --btn-disabled-bg: #a9a29e;
144
+ --btn-disabled-border: var(--color-black-op-60);
145
+ /* icons */
146
+ --color-icon-primary: #a9a29e;
147
+ --color-icon-secondary: inherit;
148
+ }
149
+
97
150
  .container-wide {
98
151
  width: calc(100% - 20px);
99
152
  max-width: 2360px;
@@ -301,7 +354,7 @@ let showMenu = false;
301
354
  @media all and (max-width: 768px) {
302
355
  .navigation {
303
356
  display: none;
304
- color: #f2ebe3;
357
+ color: var(--color-text);
305
358
  }
306
359
  .navigation--mobile {
307
360
  display: flex;
@@ -311,7 +364,7 @@ let showMenu = false;
311
364
  top: 0;
312
365
  z-index: 1;
313
366
  width: 100%;
314
- border-bottom: 1px solid #464452;
367
+ border-bottom: 1px solid var(--color-border);
315
368
  }
316
369
  .navigation--mobile h1 {
317
370
  font-size: 2em;
@@ -319,7 +372,7 @@ let showMenu = false;
319
372
  .navigation--mobile__button {
320
373
  background-color: transparent;
321
374
  border: none;
322
- color: #464452;
375
+ color: var(--color-icon-primary);
323
376
  }
324
377
  .navigation--mobile__title-container {
325
378
  display: flex;
@@ -331,5 +384,5 @@ let showMenu = false;
331
384
  }
332
385
 
333
386
  .navigation__title-link, .navigation-mobile__title-link {
334
- color: white;
387
+ color: var(--color-text-light);
335
388
  }</style>
@@ -0,0 +1,50 @@
1
+ <script context="module">
2
+
3
+ import { NumberInput } from './index';
4
+
5
+ export const meta = {
6
+ title: 'Iroco-UI/Form/NumberInput',
7
+ component: NumberInput,
8
+ argTypes: {
9
+ id: {
10
+ control: { type: 'text' }
11
+ },
12
+ label: {
13
+ control: { type: 'text' }
14
+ },
15
+ placeholder: {
16
+ control: { type: 'text' }
17
+ },
18
+ error: {
19
+ control: { type: 'text' }
20
+ },
21
+ value: {
22
+ control: { type: 'number' }
23
+ },
24
+ min: {
25
+ control: { type: 'number' }
26
+ },
27
+ max: {
28
+ control: { type: 'number' }
29
+ }
30
+
31
+ }
32
+ };
33
+ </script>
34
+
35
+ <script>
36
+ import { Story, Template } from '@storybook/addon-svelte-csf';
37
+ </script>
38
+
39
+ <Template let:args>
40
+ <form class="iroco-ui-form">
41
+ <NumberInput {...args}>
42
+ </NumberInput>
43
+ </form>
44
+ </Template>
45
+
46
+ <Story name="Default"></Story>
47
+ <Story name="Label" args={{ label: 'Label' }} />
48
+ <Story name="Error" args={{ error: 'An error message' }} />
49
+ <Story name="Placeholder" args={{ placeholder: 'A placeholder' }} />
50
+ <Story name="Min / Max" args={{ min: 0,max:10,value: 5 }} />
@@ -0,0 +1,77 @@
1
+ export namespace meta {
2
+ export let title: string;
3
+ export { NumberInput as component };
4
+ export namespace argTypes {
5
+ namespace id {
6
+ namespace control {
7
+ let type: string;
8
+ }
9
+ }
10
+ namespace label {
11
+ export namespace control_1 {
12
+ let type_1: string;
13
+ export { type_1 as type };
14
+ }
15
+ export { control_1 as control };
16
+ }
17
+ namespace placeholder {
18
+ export namespace control_2 {
19
+ let type_2: string;
20
+ export { type_2 as type };
21
+ }
22
+ export { control_2 as control };
23
+ }
24
+ namespace error {
25
+ export namespace control_3 {
26
+ let type_3: string;
27
+ export { type_3 as type };
28
+ }
29
+ export { control_3 as control };
30
+ }
31
+ namespace value {
32
+ export namespace control_4 {
33
+ let type_4: string;
34
+ export { type_4 as type };
35
+ }
36
+ export { control_4 as control };
37
+ }
38
+ namespace min {
39
+ export namespace control_5 {
40
+ let type_5: string;
41
+ export { type_5 as type };
42
+ }
43
+ export { control_5 as control };
44
+ }
45
+ namespace max {
46
+ export namespace control_6 {
47
+ let type_6: string;
48
+ export { type_6 as type };
49
+ }
50
+ export { control_6 as control };
51
+ }
52
+ }
53
+ }
54
+ /** @typedef {typeof __propDef.props} NumberInputProps */
55
+ /** @typedef {typeof __propDef.events} NumberInputEvents */
56
+ /** @typedef {typeof __propDef.slots} NumberInputSlots */
57
+ export default class NumberInput extends SvelteComponent<{
58
+ [x: string]: never;
59
+ }, {
60
+ [evt: string]: CustomEvent<any>;
61
+ }, {}> {
62
+ }
63
+ export type NumberInputProps = typeof __propDef.props;
64
+ export type NumberInputEvents = typeof __propDef.events;
65
+ export type NumberInputSlots = typeof __propDef.slots;
66
+ import { NumberInput } from './index';
67
+ import { SvelteComponent } from "svelte";
68
+ declare const __propDef: {
69
+ props: {
70
+ [x: string]: never;
71
+ };
72
+ events: {
73
+ [evt: string]: CustomEvent<any>;
74
+ };
75
+ slots: {};
76
+ };
77
+ export {};
@@ -61,6 +61,59 @@ export let max;
61
61
  color: #f5f5f5;
62
62
  }
63
63
 
64
+ :root {
65
+ --color-white-op-20: rgba(255, 255, 255, 0.2);
66
+ --color-white-op-30: rgba(255, 255, 255, 0.3);
67
+ --color-black-op-20: rgba(0, 0, 0, 0.2);
68
+ --color-black-op-40: rgba(0, 0, 0, 0.4);
69
+ --color-black-op-60: rgba(0, 0, 0, 0.6);
70
+ --color-dark-blue-op-30: #211d284d;
71
+ /* semantic colors */
72
+ --color-primary-light: #82eec7;
73
+ --color-primary: #00d692;
74
+ --color-primary-bg: #00d69280;
75
+ --color-primary-dark: #00a873;
76
+ --color-secondary-light: #ffffff;
77
+ --color-secondary: #f2ebe3;
78
+ --color-secondary-dark: #a9a29e;
79
+ /* feedback */
80
+ --color-success: #00d692;
81
+ --color-success-bg: #00d69280;
82
+ --color-danger: #ff504d;
83
+ --color-danger-bg: #ff504d80;
84
+ --color-warning: #ffe032;
85
+ --color-warning-bg: #ffe03280;
86
+ /* typography */
87
+ --color-text-light: #ffffff;
88
+ --color-text: #f2ebe3;
89
+ --color-text-op-50: #f2ebe380;
90
+ --color-text-op-60: #f2ebe399;
91
+ --color-text-dark: #464452;
92
+ /* border */
93
+ --color-border: #464452;
94
+ /* body */
95
+ --color-body: #211d28;
96
+ /* forms */
97
+ --form-element-border: var(--color-border);
98
+ --form-element-bg: #f2ebe3;
99
+ --form-text-placeholder: #a9a29e;
100
+ /* buttons */
101
+ --btn-primary-bg: #f2ebe3;
102
+ --btn-primary-border: #18151e;
103
+ --btn-primary-label: #f2ebe3;
104
+ --dark-btn-primary-label: #f2ebe3;
105
+ --dark-btn-primary-bg: #18151e;
106
+ --btn-basic-label: #18151e;
107
+ --btn-basic-bg: #f2ebe3;
108
+ --btn-basic-border: #18151e;
109
+ --btn-disabled-label: var(--color-black-op-60);
110
+ --btn-disabled-bg: #a9a29e;
111
+ --btn-disabled-border: var(--color-black-op-60);
112
+ /* icons */
113
+ --color-icon-primary: #a9a29e;
114
+ --color-icon-secondary: inherit;
115
+ }
116
+
64
117
  .iroco-ui-form input,
65
118
  .iroco-ui-form textarea {
66
119
  outline: none;
@@ -72,9 +125,9 @@ export let max;
72
125
  flex-direction: column;
73
126
  }
74
127
  .iroco-ui-form .iroco-ui-input > input {
75
- color: #f2ebe3;
76
- background: #211d28;
77
- border: 1px solid #211d28;
128
+ color: var(--color-text);
129
+ background: var(--color-body);
130
+ border: 1px solid var(--color-border);
78
131
  padding: 1em 1.5em;
79
132
  text-overflow: ellipsis;
80
133
  white-space: nowrap;
@@ -82,16 +135,16 @@ export let max;
82
135
  border-radius: 0.5em;
83
136
  }
84
137
  .iroco-ui-form .iroco-ui-input > input::placeholder {
85
- color: rgba(242, 235, 227, 0.5);
138
+ color: var(--color-text-op-50);
86
139
  }
87
140
  .iroco-ui-form .iroco-ui-input > input.error {
88
- border-color: #ff504d;
141
+ border-color: var(--color-danger);
89
142
  }
90
143
  .iroco-ui-form .iroco-ui-input > input.readonlyInput {
91
144
  cursor: not-allowed;
92
145
  }
93
146
  .iroco-ui-form .iroco-ui-label {
94
- color: rgba(242, 235, 227, 0.6);
147
+ color: var(--color-text-op-60);
95
148
  font-weight: bold;
96
149
  padding-bottom: 10px;
97
150
  display: inline-block;
@@ -107,5 +160,5 @@ export let max;
107
160
  }
108
161
  .iroco-ui-form p.error {
109
162
  margin: 0;
110
- color: #ff504d;
163
+ color: var(--color-danger);
111
164
  }</style>
@@ -0,0 +1,53 @@
1
+ <script context="module">
2
+
3
+ import { RadioButton } from './index';
4
+
5
+ export const meta = {
6
+ title: 'Iroco-UI/Form/RadioButton',
7
+ component: RadioButton,
8
+ argTypes: {
9
+ value: {
10
+ control: { type: 'string' }
11
+ },
12
+ group: {
13
+ control: { type: 'string' }
14
+ },
15
+ name: {
16
+ control: { type: 'string' }
17
+ },
18
+ checked: {
19
+ control: { type: 'boolean' }
20
+ }
21
+
22
+ }
23
+ };
24
+ </script>
25
+
26
+ <script>
27
+ import { Story, Template } from '@storybook/addon-svelte-csf';
28
+
29
+ let group = 'bar';
30
+ </script>
31
+
32
+ <Template let:args>
33
+ <form class="iroco-ui-form">
34
+ <RadioButton bind:group={group}
35
+ name="name-hello"
36
+ value="hello" {...args}>
37
+ Hello
38
+ </RadioButton>
39
+ <RadioButton bind:group={group}
40
+ name="name-foo"
41
+ value="foo" >
42
+ Foo
43
+ </RadioButton>
44
+ <RadioButton bind:group={group}
45
+ name="name-bar"
46
+ value="bar" >
47
+ Bar
48
+ </RadioButton>
49
+ </form>
50
+ Selected group : {group}
51
+ </Template>
52
+
53
+ <Story name="Default"></Story>