@360crewing/ui 0.1.3

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 (106) hide show
  1. package/CHANGELOG.md +31 -0
  2. package/LICENSE +21 -0
  3. package/README.md +46 -0
  4. package/dist/components/Avatar.d.ts +20 -0
  5. package/dist/components/Avatar.js +17 -0
  6. package/dist/components/Badge.d.ts +19 -0
  7. package/dist/components/Badge.js +10 -0
  8. package/dist/components/Breadcrumbs.d.ts +19 -0
  9. package/dist/components/Breadcrumbs.js +12 -0
  10. package/dist/components/Button.d.ts +38 -0
  11. package/dist/components/Button.js +50 -0
  12. package/dist/components/Card.d.ts +12 -0
  13. package/dist/components/Card.js +6 -0
  14. package/dist/components/Checkbox.d.ts +14 -0
  15. package/dist/components/Checkbox.js +9 -0
  16. package/dist/components/CheckboxField.d.ts +16 -0
  17. package/dist/components/CheckboxField.js +17 -0
  18. package/dist/components/CollapsibleFields.d.ts +9 -0
  19. package/dist/components/CollapsibleFields.js +8 -0
  20. package/dist/components/ContentLoader.d.ts +8 -0
  21. package/dist/components/ContentLoader.js +14 -0
  22. package/dist/components/Delimeter.d.ts +3 -0
  23. package/dist/components/Delimeter.js +6 -0
  24. package/dist/components/DetailItem.d.ts +8 -0
  25. package/dist/components/DetailItem.js +6 -0
  26. package/dist/components/DropdownButton.d.ts +15 -0
  27. package/dist/components/DropdownButton.js +29 -0
  28. package/dist/components/FileUpload.d.ts +32 -0
  29. package/dist/components/FileUpload.js +75 -0
  30. package/dist/components/FormActionButtons.d.ts +18 -0
  31. package/dist/components/FormActionButtons.js +10 -0
  32. package/dist/components/Icon.d.ts +20 -0
  33. package/dist/components/Icon.js +11 -0
  34. package/dist/components/IconButton.d.ts +14 -0
  35. package/dist/components/IconButton.js +9 -0
  36. package/dist/components/InformationPanel.d.ts +14 -0
  37. package/dist/components/InformationPanel.js +6 -0
  38. package/dist/components/LayoutBlock.d.ts +6 -0
  39. package/dist/components/LayoutBlock.js +5 -0
  40. package/dist/components/Page.d.ts +12 -0
  41. package/dist/components/Page.js +6 -0
  42. package/dist/components/Pagination.d.ts +19 -0
  43. package/dist/components/Pagination.js +35 -0
  44. package/dist/components/Popover.d.ts +27 -0
  45. package/dist/components/Popover.js +130 -0
  46. package/dist/components/SearchInput.d.ts +27 -0
  47. package/dist/components/SearchInput.js +44 -0
  48. package/dist/components/ShadowedBlock.d.ts +9 -0
  49. package/dist/components/ShadowedBlock.js +6 -0
  50. package/dist/components/SidebarMenu.d.ts +27 -0
  51. package/dist/components/SidebarMenu.js +16 -0
  52. package/dist/components/SkeletonLoader.d.ts +4 -0
  53. package/dist/components/SkeletonLoader.js +7 -0
  54. package/dist/components/StatusBadge.d.ts +20 -0
  55. package/dist/components/StatusBadge.js +11 -0
  56. package/dist/components/Table.d.ts +39 -0
  57. package/dist/components/Table.js +24 -0
  58. package/dist/components/Tabs.d.ts +34 -0
  59. package/dist/components/Tabs.js +95 -0
  60. package/dist/components/Tag.d.ts +20 -0
  61. package/dist/components/Tag.js +11 -0
  62. package/dist/components/TextField.d.ts +45 -0
  63. package/dist/components/TextField.js +53 -0
  64. package/dist/components/TextareaField.d.ts +18 -0
  65. package/dist/components/TextareaField.js +11 -0
  66. package/dist/components/Toggle.d.ts +10 -0
  67. package/dist/components/Toggle.js +9 -0
  68. package/dist/components/ToggleField.d.ts +16 -0
  69. package/dist/components/ToggleField.js +17 -0
  70. package/dist/components/Tooltip.d.ts +25 -0
  71. package/dist/components/Tooltip.js +128 -0
  72. package/dist/index.d.ts +64 -0
  73. package/dist/index.js +35 -0
  74. package/dist/styles/Avatar.css +47 -0
  75. package/dist/styles/Badge.css +172 -0
  76. package/dist/styles/Breadcrumbs.css +54 -0
  77. package/dist/styles/Button.css +416 -0
  78. package/dist/styles/Card.css +34 -0
  79. package/dist/styles/Checkbox.css +102 -0
  80. package/dist/styles/CheckboxField.css +75 -0
  81. package/dist/styles/CollapsibleFields.css +53 -0
  82. package/dist/styles/Delimeter.css +7 -0
  83. package/dist/styles/DetailItem.css +18 -0
  84. package/dist/styles/DropdownButton.css +82 -0
  85. package/dist/styles/Error.css +14 -0
  86. package/dist/styles/FileUpload.css +113 -0
  87. package/dist/styles/Icon.css +12 -0
  88. package/dist/styles/IconButton.css +68 -0
  89. package/dist/styles/InformationPanel.css +84 -0
  90. package/dist/styles/Page.css +46 -0
  91. package/dist/styles/Pagination.css +150 -0
  92. package/dist/styles/Popover.css +28 -0
  93. package/dist/styles/ShadowedBlock.css +13 -0
  94. package/dist/styles/SidebarMenu.css +151 -0
  95. package/dist/styles/StatusBadge.css +63 -0
  96. package/dist/styles/Table.css +126 -0
  97. package/dist/styles/Tabs.css +193 -0
  98. package/dist/styles/Tag.css +110 -0
  99. package/dist/styles/TextField.css +276 -0
  100. package/dist/styles/Toggle.css +105 -0
  101. package/dist/styles/ToggleField.css +73 -0
  102. package/dist/styles/Tooltip.css +30 -0
  103. package/dist/styles/tokens.css +361 -0
  104. package/dist/styles/typography.css +169 -0
  105. package/dist/styles.css +33 -0
  106. package/package.json +50 -0
@@ -0,0 +1,102 @@
1
+ /* =====================================================================
2
+ * DS Checkbox
3
+ * Mirrors Figma `Checkbox` set (sm 16 / md 20 × Default / Checked /
4
+ * Disabled / Error). Tokens consumed: surface-primary, surface-brand,
5
+ * surface-disabled, border-primary, border-brand, border-disabled,
6
+ * border-error, icon-secondary.
7
+ * ===================================================================== */
8
+
9
+ .ds-checkbox {
10
+ display: inline-flex;
11
+ align-items: center;
12
+ gap: var(--space-6);
13
+ cursor: pointer;
14
+ user-select: none;
15
+ line-height: 1;
16
+ }
17
+
18
+ .ds-checkbox--disabled {
19
+ cursor: not-allowed;
20
+ }
21
+
22
+ .ds-checkbox__input {
23
+ appearance: none;
24
+ flex-shrink: 0;
25
+ margin: 0;
26
+ background-color: var(--surface-primary);
27
+ border: 1px solid var(--border-primary);
28
+ border-radius: var(--radius-sm);
29
+ cursor: inherit;
30
+ position: relative;
31
+ transition:
32
+ background-color var(--duration-fast) var(--easing-standard),
33
+ border-color var(--duration-fast) var(--easing-standard);
34
+ }
35
+
36
+ .ds-checkbox--sm .ds-checkbox__input {
37
+ width: 16px;
38
+ height: 16px;
39
+ }
40
+
41
+ .ds-checkbox--md .ds-checkbox__input {
42
+ width: 20px;
43
+ height: 20px;
44
+ }
45
+
46
+ .ds-checkbox__input:hover:not(:disabled):not(:checked) {
47
+ border-color: var(--border-strong);
48
+ }
49
+
50
+ .ds-checkbox__input:focus-visible {
51
+ outline: none;
52
+ box-shadow: var(--shadow-focus-brand);
53
+ }
54
+
55
+ /* Checked — brand fill + white check */
56
+ .ds-checkbox__input:checked {
57
+ background-color: var(--surface-brand);
58
+ border-color: var(--surface-brand);
59
+ }
60
+
61
+ .ds-checkbox__input:checked::after {
62
+ content: "";
63
+ position: absolute;
64
+ inset: 0;
65
+ background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='10' viewBox='0 0 12 10' fill='none'%3E%3Cpath d='M1 5L4 8L11 1' stroke='white' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
66
+ background-repeat: no-repeat;
67
+ background-position: center;
68
+ background-size: 60% auto;
69
+ }
70
+
71
+ /* Disabled */
72
+ .ds-checkbox__input:disabled {
73
+ background-color: var(--surface-disabled);
74
+ border-color: var(--border-disabled);
75
+ cursor: not-allowed;
76
+ }
77
+
78
+ .ds-checkbox__input:disabled:checked {
79
+ background-color: var(--border-disabled);
80
+ border-color: var(--border-disabled);
81
+ }
82
+
83
+ /* Error */
84
+ .ds-checkbox--error .ds-checkbox__input {
85
+ border-color: var(--border-error);
86
+ }
87
+
88
+ .ds-checkbox--error .ds-checkbox__input:focus-visible {
89
+ box-shadow: var(--shadow-focus-error);
90
+ }
91
+
92
+ .ds-checkbox__label {
93
+ font-family: var(--font-family-base);
94
+ font-size: var(--font-size-sm);
95
+ font-weight: var(--font-weight-regular);
96
+ color: var(--text-primary);
97
+ line-height: 1.3;
98
+ }
99
+
100
+ .ds-checkbox--disabled .ds-checkbox__label {
101
+ color: var(--text-disabled);
102
+ }
@@ -0,0 +1,75 @@
1
+ .checkbox-field {
2
+ display: flex;
3
+ gap: 12px;
4
+ height: 24px;
5
+ line-height: 24px;
6
+ align-items: center;
7
+ outline: none;
8
+
9
+ input {
10
+ appearance: none;
11
+ position: relative;
12
+ width: 24px;
13
+ height: 24px;
14
+ border-radius: 4px;
15
+ border: 1px solid var(--stroke-color);
16
+ background-color: white;
17
+ cursor: pointer;
18
+ margin: 0;
19
+ flex-shrink: 0;
20
+ outline: none;
21
+
22
+ &::after {
23
+ content: "";
24
+ position: absolute;
25
+ top: 0;
26
+ left: 0;
27
+ width: 0px;
28
+ height: 0px;
29
+ font-size: 24px;
30
+ overflow: hidden;
31
+ border-radius: 4px;
32
+ line-height: 24px;
33
+ text-align: center;
34
+ /* Inlined (was url("/check.svg")) — root-absolute asset URLs break
35
+ Rspack's build-time CSS resolution; data URI is bundler-agnostic. */
36
+ background-image: url("data:image/svg+xml,%3Csvg width='12' height='10' viewBox='0 0 12 10' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M11.7071 0.794988C12.0976 1.18831 12.0976 1.82601 11.7071 2.21934L4.81653 9.15939C4.36561 9.61355 3.63455 9.61352 3.18366 9.15941L0.292904 6.24802C-0.0976264 5.8547 -0.0976357 5.217 0.292883 4.82367C0.683401 4.43034 1.31657 4.43033 1.7071 4.82365L4.00007 7.13299L10.2929 0.794997C10.6834 0.401671 11.3166 0.401667 11.7071 0.794988Z' fill='white'/%3E%3C/svg%3E");
37
+ background-repeat: no-repeat;
38
+ background-position: center;
39
+ }
40
+
41
+ &:checked::after {
42
+ width: 24px;
43
+ height: 24px;
44
+ background-color: var(--text-brand);
45
+ }
46
+
47
+ &:disabled {
48
+ cursor: not-allowed;
49
+ background-color: var(--deactivate-grey-color);
50
+ }
51
+ }
52
+
53
+ .label {
54
+ font-size: 12px;
55
+ font-weight: 400;
56
+ color: var(--default-black-color);
57
+ white-space: nowrap;
58
+ }
59
+
60
+ &.table-checkbox {
61
+ margin-left: 0;
62
+ justify-content: center;
63
+ width: 100%;
64
+ }
65
+
66
+ @media (max-width: 768px) {
67
+ margin-left: 0 !important;
68
+ }
69
+ }
70
+
71
+ .checkbox-field.error {
72
+ input {
73
+ border-color: red;
74
+ }
75
+ }
@@ -0,0 +1,53 @@
1
+ .collapsible-fields {
2
+ width: 100%;
3
+ margin: 12px 0;
4
+ }
5
+
6
+ .collapsible-toggle {
7
+ display: flex;
8
+ align-items: center;
9
+ gap: 8px;
10
+ background-color: transparent;
11
+ border: none;
12
+ color: var(--text-brand);
13
+ font-size: 12px;
14
+ font-weight: 600;
15
+ cursor: pointer;
16
+ padding: 8px 0;
17
+ width: 100%;
18
+ text-align: left;
19
+
20
+ &:hover {
21
+ opacity: 0.8;
22
+ }
23
+ }
24
+
25
+ .collapsible-toggle .arrow {
26
+ display: inline-block;
27
+ transition: transform 0.2s ease;
28
+ font-size: 10px;
29
+ color: var(--text-brand);
30
+ }
31
+
32
+ .collapsible-toggle .arrow.expanded {
33
+ transform: rotate(90deg);
34
+ }
35
+
36
+ .collapsible-content {
37
+ display: flex;
38
+ flex-direction: column;
39
+ gap: 12px;
40
+ animation: slideDown 0.2s ease;
41
+ padding-top: 10px;
42
+ }
43
+
44
+ @keyframes slideDown {
45
+ from {
46
+ opacity: 0;
47
+ transform: translateY(-8px);
48
+ }
49
+ to {
50
+ opacity: 1;
51
+ transform: translateY(0);
52
+ }
53
+ }
@@ -0,0 +1,7 @@
1
+ .hr {
2
+ width: 100%;
3
+ height: 1px;
4
+ background-color: var(--stroke-color);
5
+ flex-shrink: 0;
6
+ margin: 0 auto;
7
+ }
@@ -0,0 +1,18 @@
1
+ .detail-item {
2
+ width: 100%;
3
+ display: flex;
4
+ align-items: space-between;
5
+
6
+ font-size: 12px;
7
+ line-height: 12px;
8
+ font-weight: 400;
9
+ color: var(--default-black-color);
10
+
11
+ .dots {
12
+ flex: 1;
13
+ border-bottom: 1px dotted #000;
14
+ margin: 0 4px;
15
+ height: 10px;
16
+ opacity: 0.4;
17
+ }
18
+ }
@@ -0,0 +1,82 @@
1
+ .dropdown-button-container {
2
+ position: relative;
3
+ display: inline-flex;
4
+ vertical-align: middle;
5
+
6
+ .button-group {
7
+ display: flex;
8
+ align-items: center;
9
+ width: 100%;
10
+ }
11
+
12
+ .main-button-content {
13
+ flex: 1;
14
+ font-size: 12px;
15
+ font-weight: 600;
16
+ line-height: 12px;
17
+ white-space: nowrap;
18
+ color: var(--text-brand);
19
+ }
20
+
21
+ .dropdown-toggle {
22
+ display: flex;
23
+ align-items: center;
24
+ justify-content: center;
25
+ padding-left: 4px;
26
+ color: inherit;
27
+ border-left: 1px solid rgba(24, 101, 177, 0.2);
28
+ margin-left: 8px;
29
+
30
+ svg {
31
+ display: block;
32
+ }
33
+ }
34
+
35
+ &.disabled {
36
+ opacity: 0.65;
37
+ cursor: not-allowed;
38
+ }
39
+
40
+ /* Specific styles for print-button used as container */
41
+ &.print-button {
42
+ padding: 6px 8px 6px 12px;
43
+ border: 1px solid transparent;
44
+ cursor: pointer;
45
+
46
+ &:hover:not(.disabled) {
47
+ border: 1px solid var(--text-brand);
48
+ }
49
+
50
+ .dropdown-toggle {
51
+ margin-left: 8px;
52
+ padding-left: 8px;
53
+ }
54
+ }
55
+
56
+ .dropdown-menu {
57
+ position: absolute;
58
+ top: 100%;
59
+ right: 0;
60
+ z-index: 9999;
61
+ min-width: 160px;
62
+ margin-top: 4px;
63
+ background-color: #fff;
64
+ border: 1px solid var(--border-color, #dee2e6);
65
+ border-radius: 4px;
66
+ box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
67
+ padding: 4px 0;
68
+ }
69
+
70
+ .dropdown-item {
71
+ padding: 8px 16px;
72
+ font-size: 14px;
73
+ color: var(--default-black-color, #212529);
74
+ cursor: pointer;
75
+ transition: background-color 0.2s;
76
+ white-space: nowrap;
77
+
78
+ &:hover {
79
+ background-color: var(--selection-color, #f8f9fa);
80
+ }
81
+ }
82
+ }
@@ -0,0 +1,14 @@
1
+ .error-border {
2
+ border: 1px solid red !important;
3
+ border-radius: 4px !important;
4
+
5
+ svg {
6
+ fill: red !important;
7
+ }
8
+ }
9
+
10
+ .error-text {
11
+ color: red;
12
+ font-size: 12px;
13
+ font-weight: 500;
14
+ }
@@ -0,0 +1,113 @@
1
+ /* =====================================================================
2
+ * DS FileUpload — drag-and-drop / click upload zone.
3
+ * Sizes mirror Figma "Image upload" frame:
4
+ * lg = Big (~420×340)
5
+ * md = Medium (~320×120)
6
+ * ===================================================================== */
7
+
8
+ .ds-file-upload {
9
+ --ds-file-upload-padding-y: var(--space-24);
10
+ --ds-file-upload-padding-x: var(--space-24);
11
+ --ds-file-upload-min-h: 180px;
12
+ --ds-file-upload-radius: var(--radius-lg);
13
+
14
+ display: flex;
15
+ flex-direction: column;
16
+ align-items: center;
17
+ justify-content: center;
18
+ gap: var(--space-8);
19
+ padding: var(--ds-file-upload-padding-y) var(--ds-file-upload-padding-x);
20
+ min-height: var(--ds-file-upload-min-h);
21
+ background: var(--surface-secondary-light);
22
+ border: 1px dashed var(--border-secondary);
23
+ border-radius: var(--ds-file-upload-radius);
24
+ color: var(--text-secondary);
25
+ font-family: var(--font-family-base);
26
+ font-size: var(--font-size-sm);
27
+ text-align: center;
28
+ cursor: pointer;
29
+ transition:
30
+ background-color var(--duration-fast) var(--easing-standard),
31
+ border-color var(--duration-fast) var(--easing-standard),
32
+ color var(--duration-fast) var(--easing-standard);
33
+ }
34
+
35
+ .ds-file-upload--md {
36
+ --ds-file-upload-padding-y: var(--space-16);
37
+ --ds-file-upload-padding-x: var(--space-16);
38
+ --ds-file-upload-min-h: 96px;
39
+ flex-direction: row;
40
+ text-align: left;
41
+ gap: var(--space-12);
42
+ align-items: center;
43
+ justify-content: flex-start;
44
+ }
45
+
46
+ .ds-file-upload:hover:not(.is-disabled) {
47
+ background: var(--surface-brand-minimal);
48
+ border-color: var(--border-brand);
49
+ color: var(--text-primary);
50
+ }
51
+
52
+ .ds-file-upload.is-dragging:not(.is-disabled) {
53
+ background: var(--surface-brand-minimal);
54
+ border-color: var(--border-brand);
55
+ border-style: solid;
56
+ color: var(--text-brand);
57
+ }
58
+
59
+ .ds-file-upload.is-disabled {
60
+ background: var(--surface-disabled);
61
+ color: var(--text-disabled);
62
+ cursor: not-allowed;
63
+ border-color: var(--border-secondary);
64
+ }
65
+
66
+ .ds-file-upload--error {
67
+ border-color: var(--border-error);
68
+ color: var(--text-error);
69
+ }
70
+ .ds-file-upload--success {
71
+ border-color: var(--border-success);
72
+ color: var(--text-success);
73
+ }
74
+
75
+ .ds-file-upload__input {
76
+ position: absolute;
77
+ width: 1px;
78
+ height: 1px;
79
+ margin: -1px;
80
+ padding: 0;
81
+ overflow: hidden;
82
+ clip: rect(0, 0, 0, 0);
83
+ white-space: nowrap;
84
+ border: 0;
85
+ }
86
+
87
+ .ds-file-upload:focus-within {
88
+ outline: none;
89
+ box-shadow: var(--shadow-focus-brand);
90
+ }
91
+
92
+ .ds-file-upload__icon {
93
+ display: inline-flex;
94
+ align-items: center;
95
+ justify-content: center;
96
+ color: var(--text-secondary);
97
+ }
98
+ .ds-file-upload--md .ds-file-upload__icon { flex: 0 0 auto; }
99
+
100
+ .ds-file-upload__label {
101
+ font-weight: var(--font-weight-medium);
102
+ color: var(--text-primary);
103
+ }
104
+
105
+ .ds-file-upload__help {
106
+ font-size: var(--font-size-xs);
107
+ color: var(--text-secondary);
108
+ }
109
+
110
+ .ds-file-upload--md .ds-file-upload__label,
111
+ .ds-file-upload--md .ds-file-upload__help {
112
+ text-align: left;
113
+ }
@@ -0,0 +1,12 @@
1
+ .crewing-icon {
2
+ display: inline-flex;
3
+ align-items: center;
4
+ justify-content: center;
5
+ line-height: 1;
6
+ }
7
+
8
+ .crewing-icon svg {
9
+ width: 100%;
10
+ height: 100%;
11
+ fill: currentColor;
12
+ }
@@ -0,0 +1,68 @@
1
+ /* =====================================================================
2
+ * DS IconButton
3
+ * Mirrors Figma `IconButton` set (sm 28 / md 36 / lg 44 × Ghost / Filled).
4
+ * ===================================================================== */
5
+
6
+ .ds-icon-button {
7
+ display: inline-flex;
8
+ align-items: center;
9
+ justify-content: center;
10
+ border: 1px solid transparent;
11
+ border-radius: var(--radius-lg);
12
+ cursor: pointer;
13
+ padding: 0;
14
+ color: var(--icon-primary);
15
+ transition:
16
+ background-color var(--duration-fast) var(--easing-standard),
17
+ color var(--duration-fast) var(--easing-standard);
18
+ }
19
+
20
+ .ds-icon-button--sm { width: 28px; height: 28px; }
21
+ .ds-icon-button--md { width: 36px; height: 36px; }
22
+ .ds-icon-button--lg { width: 44px; height: 44px; }
23
+
24
+ .ds-icon-button:focus-visible {
25
+ outline: none;
26
+ box-shadow: var(--shadow-focus-brand);
27
+ }
28
+
29
+ .ds-icon-button:disabled {
30
+ cursor: not-allowed;
31
+ opacity: 0.6;
32
+ }
33
+
34
+ /* Ghost — transparent default, secondary tint on hover. */
35
+ .ds-icon-button--ghost {
36
+ background-color: transparent;
37
+ }
38
+ .ds-icon-button--ghost:hover:not(:disabled) {
39
+ background-color: var(--surface-secondary-light);
40
+ }
41
+ .ds-icon-button--ghost:active:not(:disabled) {
42
+ background-color: var(--surface-secondary);
43
+ }
44
+
45
+ /* Filled — brand background, white icon. */
46
+ .ds-icon-button--filled {
47
+ background-color: var(--surface-brand);
48
+ color: var(--icon-secondary);
49
+ border-color: var(--surface-brand);
50
+ }
51
+ .ds-icon-button--filled:hover:not(:disabled) {
52
+ background-color: var(--surface-brand-light);
53
+ border-color: var(--surface-brand-light);
54
+ }
55
+ .ds-icon-button--filled:active:not(:disabled) {
56
+ background-color: var(--surface-brand-dark);
57
+ border-color: var(--surface-brand-dark);
58
+ }
59
+
60
+ .ds-icon-button > svg {
61
+ width: 1em;
62
+ height: 1em;
63
+ font-size: 18px;
64
+ fill: currentColor;
65
+ }
66
+
67
+ .ds-icon-button--sm > svg { font-size: 14px; }
68
+ .ds-icon-button--lg > svg { font-size: 22px; }
@@ -0,0 +1,84 @@
1
+ .information-panel {
2
+ display: flex;
3
+ align-items: center;
4
+ justify-content: space-between;
5
+ gap: 10px;
6
+ background-color: var(--technical-gray-color);
7
+ min-height: 56px;
8
+ border-radius: 8px;
9
+ padding: 10px;
10
+ width: 100%;
11
+
12
+ .information-items {
13
+ display: flex;
14
+ align-items: center;
15
+ justify-content: flex-start;
16
+ gap: 10px;
17
+ height: 100%;
18
+ flex-wrap: wrap;
19
+ }
20
+
21
+ .information-item {
22
+ display: flex;
23
+ align-items: center;
24
+ background-color: #ffffff;
25
+ height: 100%;
26
+ border-radius: 8px;
27
+ font-size: 12px;
28
+ padding: 8px;
29
+ font-weight: 400;
30
+ white-space: nowrap;
31
+
32
+ .information-item-label {
33
+ color: #666;
34
+ margin-right: 6px;
35
+ }
36
+
37
+ .information-item-value {
38
+ color: #000;
39
+ }
40
+ }
41
+
42
+ .information-actions {
43
+ display: flex;
44
+ flex-direction: row;
45
+ justify-content: flex-end;
46
+ align-items: center;
47
+ gap: 10px;
48
+ height: 100%;
49
+ flex-grow: 1;
50
+
51
+ .button {
52
+ width: auto;
53
+ height: 32px !important;
54
+ border-radius: 20px;
55
+ padding: 8px 16px 8px 16px;
56
+ display: flex;
57
+ align-items: center;
58
+ gap: 6px;
59
+ white-space: nowrap;
60
+
61
+ svg {
62
+ width: 16px;
63
+ height: 16px;
64
+ }
65
+
66
+ &.delete {
67
+ background-color: #18B1AC;
68
+ color: #ffffff;
69
+
70
+ svg,
71
+ svg *,
72
+ path {
73
+ fill: #ffffff !important;
74
+ stroke: #ffffff !important;
75
+ color: #ffffff !important;
76
+ }
77
+ }
78
+
79
+ &.save {
80
+ background-color: var(--text-brand);
81
+ }
82
+ }
83
+ }
84
+ }
@@ -0,0 +1,46 @@
1
+ .crewing-page {
2
+ display: flex;
3
+ flex-direction: column;
4
+ gap: 16px;
5
+ padding: 16px;
6
+ width: 100%;
7
+ box-sizing: border-box;
8
+ }
9
+
10
+ .crewing-page__header {
11
+ display: flex;
12
+ align-items: flex-start;
13
+ justify-content: space-between;
14
+ gap: 16px;
15
+ }
16
+
17
+ .crewing-page__heading {
18
+ display: flex;
19
+ flex-direction: column;
20
+ gap: 4px;
21
+ }
22
+
23
+ .crewing-page__title {
24
+ margin: 0;
25
+ font-size: 20px;
26
+ font-weight: 700;
27
+ color: var(--text-primary, var(--default-black-color));
28
+ }
29
+
30
+ .crewing-page__subtitle {
31
+ font-size: 12px;
32
+ color: var(--text-secondary, var(--deactivate-grey-color));
33
+ }
34
+
35
+ .crewing-page__actions {
36
+ display: flex;
37
+ gap: 8px;
38
+ align-items: center;
39
+ flex-shrink: 0;
40
+ }
41
+
42
+ .crewing-page__content {
43
+ display: flex;
44
+ flex-direction: column;
45
+ gap: 12px;
46
+ }