@mptw/skylens-ui 1.5.0 → 1.5.1

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 (111) hide show
  1. package/AGENTS.md +59 -0
  2. package/CLAUDE.md +36 -0
  3. package/README.md +7 -7
  4. package/app/app.config.ts +11 -2
  5. package/app/app.vue +5 -0
  6. package/app/assets/css/layout.css +134 -0
  7. package/app/assets/css/main.css +189 -0
  8. package/app/components/SLAlertModal.vue +24 -16
  9. package/app/components/SLBreadcrumbs.vue +12 -8
  10. package/app/components/SLButton.vue +196 -163
  11. package/app/components/SLCalendarButton.vue +40 -34
  12. package/app/components/SLCalendarPopup.vue +79 -53
  13. package/app/components/SLCard.vue +57 -41
  14. package/app/components/SLChart.vue +6 -3
  15. package/app/components/SLCheckbox.vue +92 -49
  16. package/app/components/SLCircleButton.vue +25 -16
  17. package/app/components/SLCollapsableBlock.vue +44 -33
  18. package/app/components/SLCollapsableMulitPillSelect.vue +20 -15
  19. package/app/components/SLConfirmModal.vue +9 -6
  20. package/app/components/SLContextMenu.vue +88 -48
  21. package/app/components/SLDateInput.vue +109 -92
  22. package/app/components/SLDatePicker.vue +9 -7
  23. package/app/components/SLDistributor.vue +1 -1
  24. package/app/components/SLDownloadButton.vue +39 -29
  25. package/app/components/SLDraggable.vue +2 -2
  26. package/app/components/SLDropdown.vue +33 -25
  27. package/app/components/SLDropdownItem.vue +9 -5
  28. package/app/components/SLElementWithTitle.vue +12 -7
  29. package/app/components/SLEyeCheckbox.vue +44 -31
  30. package/app/components/SLFileInput.vue +23 -16
  31. package/app/components/SLGenderAgeSelect.vue +52 -36
  32. package/app/components/SLHourRangeInput.vue +45 -32
  33. package/app/components/SLIOSSwitch.vue +81 -60
  34. package/app/components/SLIcon.vue +4 -3
  35. package/app/components/SLIconButton.vue +31 -29
  36. package/app/components/SLInfoTip.vue +51 -40
  37. package/app/components/SLInsightSitePage.vue +12 -7
  38. package/app/components/SLLegend.vue +19 -12
  39. package/app/components/SLLinearProgressBar.vue +7 -20
  40. package/app/components/SLLink.vue +12 -8
  41. package/app/components/SLLoading.vue +34 -31
  42. package/app/components/SLMapChart.vue +5 -4
  43. package/app/components/SLModal.vue +90 -66
  44. package/app/components/SLMonthCalendarButton.vue +91 -45
  45. package/app/components/SLMonthPicker.vue +42 -37
  46. package/app/components/SLMultiEmailInput.vue +163 -113
  47. package/app/components/SLMultiSelect.vue +37 -26
  48. package/app/components/SLNoData.vue +16 -11
  49. package/app/components/SLNotification.vue +133 -129
  50. package/app/components/SLPageModal.vue +14 -9
  51. package/app/components/SLPagination.vue +45 -33
  52. package/app/components/SLPillCheckbox.vue +50 -42
  53. package/app/components/SLPillLabel.vue +43 -28
  54. package/app/components/SLPopupMenuButton.vue +26 -17
  55. package/app/components/SLProfileButton.vue +28 -20
  56. package/app/components/SLProjectShareItem.vue +30 -17
  57. package/app/components/SLRadioButton.vue +41 -33
  58. package/app/components/SLRadioButtonGroup.vue +28 -23
  59. package/app/components/SLRadioGroup.vue +90 -78
  60. package/app/components/SLRangeInput.vue +53 -38
  61. package/app/components/SLRegionsMapChart.vue +5 -4
  62. package/app/components/SLRightSider.vue +50 -40
  63. package/app/components/SLSearchInput.vue +24 -19
  64. package/app/components/SLSelect.vue +114 -87
  65. package/app/components/SLSelectAllToggle.vue +52 -37
  66. package/app/components/SLSidebarNav.vue +253 -193
  67. package/app/components/SLSidebarNavGroupItem.vue +13 -10
  68. package/app/components/SLSidebarNavGroupItemSection.vue +240 -179
  69. package/app/components/SLSidebarNavLinkItem.vue +131 -109
  70. package/app/components/SLSidebarNavSectionItem.vue +21 -18
  71. package/app/components/SLSitePage.vue +35 -24
  72. package/app/components/SLSkyInsightSitePage.vue +13 -8
  73. package/app/components/SLSortByDropdown.vue +35 -22
  74. package/app/components/SLSpinIcon.vue +6 -3
  75. package/app/components/SLStayRangeInput.vue +47 -36
  76. package/app/components/SLTab.vue +7 -2
  77. package/app/components/SLTable.vue +330 -313
  78. package/app/components/SLTableTooltip.vue +44 -30
  79. package/app/components/SLTabs.vue +333 -280
  80. package/app/components/SLTextInput.vue +162 -134
  81. package/app/components/SLTextarea.vue +40 -29
  82. package/app/components/SLToast.vue +19 -11
  83. package/app/components/SLToggleButton.vue +18 -11
  84. package/app/components/SLTwoLayerMultiSelect.vue +180 -85
  85. package/app/components/SLTwoLayerSelect.vue +47 -37
  86. package/app/components/SLTwoLayerSingleSelect.vue +52 -33
  87. package/app/components/SLWarnModal.vue +9 -7
  88. package/app/interface/commons.ts +7 -0
  89. package/app/utils/index.ts +213 -146
  90. package/eslint.config.js +3 -0
  91. package/nuxt.config.ts +17 -14
  92. package/package.json +9 -8
  93. package/skills-lock.json +59 -0
  94. package/tsconfig.json +1 -6
  95. package/.eslintrc.cjs +0 -4
  96. package/app/assets/css/layout.styl +0 -98
  97. package/app/assets/css/tailwind.css +0 -3
  98. package/app/pages/index.vue +0 -15
  99. package/interface/commons.ts +0 -7
  100. package/tailwind.config.js +0 -271
  101. /package/{interface → app/interface}/IDateRange.ts +0 -0
  102. /package/{interface → app/interface}/IHourRange.ts +0 -0
  103. /package/{interface → app/interface}/IInputOption.ts +0 -0
  104. /package/{interface → app/interface}/ILegendItem.ts +0 -0
  105. /package/{interface → app/interface}/IOrganization.ts +0 -0
  106. /package/{interface → app/interface}/IPopupMenuButton.ts +0 -0
  107. /package/{interface → app/interface}/IStayRange.ts +0 -0
  108. /package/{interface → app/interface}/ITableField.ts +0 -0
  109. /package/{interface → app/interface}/IWeb.ts +0 -0
  110. /package/{interface → app/interface}/NavConfigType.ts +0 -0
  111. /package/{models → app/models}/DateRange.ts +0 -0
@@ -25,7 +25,7 @@ import type { PropType } from "vue";
25
25
  import { fromEvent } from "rxjs";
26
26
  import { createPopper } from "@popperjs/core";
27
27
  import type { Options as PopperOptions } from "@popperjs/core";
28
- import type IPopupMenuButton from "~ui/interface/IPopupMenuButton";
28
+ import type IPopupMenuButton from "~ui/app/interface/IPopupMenuButton";
29
29
 
30
30
  export default defineComponent({
31
31
  name: "SLPopupMenuButton",
@@ -133,26 +133,35 @@ export default defineComponent({
133
133
  });
134
134
  </script>
135
135
 
136
- <style lang="stylus">
137
- .popup-menu-button
138
- @apply inline-block relative
136
+ <style>
137
+ @reference '~ui/app/assets/css/main.css';
139
138
 
140
- .buttons-popup
141
- @apply z-60 flex-col items-stretch border border-primary-300 rounded bg-white shadow-md hidden
139
+ .popup-menu-button {
140
+ @apply inline-block relative;
141
+ }
142
142
 
143
- &[data-show]
144
- @apply flex
143
+ .buttons-popup {
144
+ @apply z-60 flex-col items-stretch border border-primary-300 rounded bg-white shadow-md hidden;
145
+ }
145
146
 
146
- .menu-button
147
- @apply inline-flex flex-row flex-nowrap items-center justify-center px-2 py-1 space-x-2 text-base text-primary whitespace-nowrap
147
+ .buttons-popup[data-show] {
148
+ @apply flex;
149
+ }
148
150
 
149
- &:first-child
150
- @apply pt-2
151
+ .buttons-popup .menu-button {
152
+ @apply inline-flex flex-row flex-nowrap items-center justify-center px-2 py-1 space-x-2 text-base text-primary whitespace-nowrap;
153
+ }
151
154
 
152
- &:last-child
153
- @apply pb-2
155
+ .buttons-popup .menu-button:first-child {
156
+ @apply pt-2;
157
+ }
154
158
 
155
- .menu-button-splitter
156
- @apply h-px mx-auto my-1 bg-primary-100
157
- width calc(100% - theme("spacing.4"))
159
+ .buttons-popup .menu-button:last-child {
160
+ @apply pb-2;
161
+ }
162
+
163
+ .buttons-popup .menu-button-splitter {
164
+ @apply h-px mx-auto my-1 bg-primary-100;
165
+ width: calc(100% - var(--spacing) * 4);
166
+ }
158
167
  </style>
@@ -38,7 +38,7 @@ export default defineComponent({
38
38
  },
39
39
  gitTag: {
40
40
  type: String,
41
- default: '',
41
+ default: "",
42
42
  },
43
43
  },
44
44
  emits: ["edit", "logout"],
@@ -174,30 +174,38 @@ export default defineComponent({
174
174
  });
175
175
  </script>
176
176
 
177
- <style lang="stylus">
178
- .profile-button
179
- .toggle-button
180
- @apply inline-flex items-center justify-center w-7 h-7 p-0 rounded-full bg-primary-400 text-lg text-white font-bold
181
- @apply s('hover:bg-primary-600') s('active:bg-primary')
177
+ <style>
178
+ @reference '~ui/app/assets/css/main.css';
182
179
 
183
- &.active
184
- @apply bg-primary
180
+ .profile-button .toggle-button {
181
+ @apply inline-flex items-center justify-center w-7 h-7 p-0 rounded-full bg-primary-400 text-lg text-white font-bold hover:bg-primary-600 active:bg-primary;
182
+ }
185
183
 
186
- .profile-nav-popup
187
- @apply z-60 absolute s('min-w-[10.25rem]') p-4 border border-primary bg-primary-50 rounded shadow-popup-lg pointer-events-none invisible
184
+ .profile-button .toggle-button.active {
185
+ @apply bg-primary;
186
+ }
188
187
 
189
- &[data-show]
190
- @apply visible pointer-events-auto
188
+ .profile-nav-popup {
189
+ @apply z-60 absolute min-w-[10.25rem] p-4 border border-primary bg-primary-50 rounded shadow-popup-lg pointer-events-none invisible;
190
+ }
191
191
 
192
- &-body
193
- @apply flex flex-col space-y-2
192
+ .profile-nav-popup[data-show] {
193
+ @apply visible pointer-events-auto;
194
+ }
194
195
 
195
- .profile-nav-item
196
- @apply inline-flex items-center space-x-2 text-base text-primary-600 s('hover:text-primary')
196
+ .profile-nav-popup-body {
197
+ @apply flex flex-col space-y-2;
198
+ }
197
199
 
198
- .profile-nav-divider
199
- @apply w-full h-px bg-primary-600
200
+ .profile-nav-popup .profile-nav-item {
201
+ @apply inline-flex items-center space-x-2 text-base text-primary-600 hover:text-primary;
202
+ }
200
203
 
201
- .app-version
202
- @apply text-xs text-primary-600 text-right
204
+ .profile-nav-popup .profile-nav-divider {
205
+ @apply w-full h-px bg-primary-600;
206
+ }
207
+
208
+ .profile-nav-popup .app-version {
209
+ @apply text-xs text-primary-600 text-right;
210
+ }
203
211
  </style>
@@ -24,7 +24,7 @@
24
24
 
25
25
  <script lang="ts">
26
26
  import type { PropType } from "vue";
27
- import { OrgUserRole } from "~ui/interface/IOrganization";
27
+ import { OrgUserRole } from "~ui/app/interface/IOrganization";
28
28
 
29
29
  export default defineComponent({
30
30
  name: "SLProjectShareItem",
@@ -70,25 +70,38 @@ export default defineComponent({
70
70
  });
71
71
  </script>
72
72
 
73
- <style lang="stylus" scoped>
74
- .project-share-item
75
- @apply flex items-center justify-between space-x-4
73
+ <style scoped>
74
+ @reference '~ui/app/assets/css/main.css';
76
75
 
77
- .item-info
78
- @apply flex-grow text-sm text-pgray-2 truncate
76
+ .project-share-item {
77
+ @apply flex items-center justify-between space-x-4;
78
+ }
79
79
 
80
- .item-actions
81
- @apply flex-grow-0 flex-shrink-0
80
+ .project-share-item .item-info {
81
+ @apply grow text-sm text-pgray-2 truncate;
82
+ }
83
+
84
+ .project-share-item .item-actions {
85
+ @apply grow-0 shrink-0;
86
+ }
82
87
 
83
- :deep(.dropdown-menu)
84
- @apply border-primary-600
85
- .dropdown-list-wrapper
86
- .dropdown-list
87
- @apply s('min-w-[74px]') divide-y divide-primary-100
88
+ .project-share-item .item-actions :deep(.dropdown-menu) {
89
+ @apply border-primary-600;
90
+ }
91
+
92
+ .project-share-item
93
+ .item-actions
94
+ :deep(.dropdown-menu)
95
+ .dropdown-list-wrapper
96
+ .dropdown-list {
97
+ @apply min-w-[74px] divide-y divide-primary-100;
98
+ }
88
99
 
89
- :deep(.dropdown-toggle)
90
- @apply s('py-0.75') border-primary-600 bg-white text-sm
100
+ .project-share-item .item-actions :deep(.dropdown-toggle) {
101
+ @apply py-0.75 border-primary-600 bg-white text-sm;
102
+ }
91
103
 
92
- .dropdown-item
93
- @apply text-center
104
+ .project-share-item .item-actions .dropdown-item {
105
+ @apply text-center;
106
+ }
94
107
  </style>
@@ -18,7 +18,7 @@
18
18
 
19
19
  <script lang="ts">
20
20
  import { isEqual } from "lodash-es";
21
- import { getUID } from "~ui/utils";
21
+ import { getUID } from "~ui/app/utils";
22
22
 
23
23
  export default defineComponent({
24
24
  name: "SLRadioButton",
@@ -42,7 +42,7 @@ export default defineComponent({
42
42
  },
43
43
  desc: {
44
44
  type: String,
45
- default: '',
45
+ default: "",
46
46
  },
47
47
  },
48
48
  emits: ["update:modelValue"],
@@ -67,46 +67,54 @@ export default defineComponent({
67
67
  });
68
68
  </script>
69
69
 
70
- <style lang="stylus">
71
- .radio-button
72
- @apply inline-block relative text-base overflow-hidden
70
+ <style>
71
+ @reference '~ui/app/assets/css/main.css';
73
72
 
74
- input
75
- @apply absolute s('-top-10') s('-left-10')
73
+ .radio-button {
74
+ @apply inline-block relative text-base overflow-hidden;
75
+ }
76
76
 
77
- label
78
- @apply relative inline-flex flex-col items-start space-y-1 cursor-pointer
77
+ .radio-button input {
78
+ @apply absolute -top-10 -left-10;
79
+ }
79
80
 
80
- .radio-button-wrapper
81
- @apply inline-flex items-center text-base text-pgray-3
81
+ .radio-button label {
82
+ @apply relative inline-flex flex-col items-start space-y-1 cursor-pointer;
83
+ }
82
84
 
83
- .icon
84
- @apply hidden
85
+ .radio-button label .radio-button-wrapper {
86
+ @apply inline-flex items-center text-base text-pgray-3;
87
+ }
85
88
 
86
- span
87
- @apply ml-1 text-base text-pgray-2
89
+ .radio-button label .radio-button-wrapper .icon {
90
+ @apply hidden;
91
+ }
88
92
 
89
- .radio-button-desc
90
- @apply pl-5 text-xs text-pgray-2
93
+ .radio-button label .radio-button-wrapper span {
94
+ @apply ml-1 text-base text-pgray-2;
95
+ }
91
96
 
92
- input:not(:checked) + label
93
- .radio-button-wrapper
94
- .icon-circle
95
- @apply inline-block text-primary
97
+ .radio-button label .radio-button-desc {
98
+ @apply pl-5 text-xs text-pgray-2;
99
+ }
96
100
 
97
- input:checked + label
98
- .radio-button-wrapper
99
- .icon-dot-circle
100
- @apply inline-block text-primary
101
+ .radio-button input:not(:checked) + label .radio-button-wrapper .icon-circle {
102
+ @apply inline-block text-primary;
103
+ }
101
104
 
102
- input:disabled + label
103
- .radio-button-wrapper
104
- span
105
- @apply text-pgray-3
105
+ .radio-button input:checked + label .radio-button-wrapper .icon-dot-circle {
106
+ @apply inline-block text-primary;
107
+ }
108
+
109
+ .radio-button input:disabled + label .radio-button-wrapper span {
110
+ @apply text-pgray-3;
111
+ }
106
112
 
107
- .icon-circle
108
- @apply text-pgray-3
113
+ .radio-button input:disabled + label .radio-button-wrapper .icon-circle {
114
+ @apply text-pgray-3;
115
+ }
109
116
 
110
- .icon-dot-circle
111
- @apply text-pgray-3
117
+ .radio-button input:disabled + label .radio-button-wrapper .icon-dot-circle {
118
+ @apply text-pgray-3;
119
+ }
112
120
  </style>
@@ -19,7 +19,7 @@
19
19
 
20
20
  <script lang="ts">
21
21
  import type { PropType } from "vue";
22
- import type IInputOption from "~ui/interface/IInputOption";
22
+ import type IInputOption from "~ui/app/interface/IInputOption";
23
23
 
24
24
  export default defineComponent({
25
25
  name: "SLRadioButtonGroup",
@@ -82,33 +82,38 @@ export default defineComponent({
82
82
  });
83
83
  </script>
84
84
 
85
- <style lang="stylus">
86
- .radio-button-group
87
- .is-invalid
88
- .invalid-feedback
89
- @apply block
85
+ <style>
86
+ @reference '~ui/app/assets/css/main.css';
87
+
88
+ .radio-button-group .is-invalid .invalid-feedback {
89
+ @apply block;
90
+ }
90
91
 
91
- & > label
92
- @apply mb-2 text-base text-pgray-2 align-top
92
+ .radio-button-group > label {
93
+ @apply mb-2 text-base text-pgray-2 align-top;
94
+ }
93
95
 
94
- .form-control
95
- @apply flex flex-col space-y-1
96
+ .radio-button-group .form-control {
97
+ @apply flex flex-col space-y-1;
98
+ }
96
99
 
97
- &.inline
98
- @apply flex flex-row flex-wrap space-x-6 space-y-0
100
+ .radio-button-group .form-control.inline {
101
+ @apply flex flex-row flex-wrap space-x-6 space-y-0;
102
+ }
99
103
 
100
- .invalid-feedback
101
- @apply hidden text-danger text-xs
104
+ .radio-button-group .invalid-feedback {
105
+ @apply hidden text-danger text-xs;
106
+ }
102
107
 
103
- &--lg
104
- .form-control
105
- &.inline
106
- @apply space-x-8
108
+ .radio-button-group--lg .form-control.inline {
109
+ @apply space-x-8;
110
+ }
107
111
 
108
- .radio-button
109
- label
110
- @apply text-sm
112
+ .radio-button-group--lg .form-control .radio-button label {
113
+ @apply text-sm;
114
+ }
111
115
 
112
- span
113
- @apply ml-2 text-sm
116
+ .radio-button-group--lg .form-control .radio-button label span {
117
+ @apply ml-2 text-sm;
118
+ }
114
119
  </style>
@@ -16,8 +16,8 @@ SLElementWithTitle(:title='disabled ? disabledHint : ""')
16
16
 
17
17
  <script lang="ts">
18
18
  import type { PropType } from "vue";
19
- import { getUID } from "~ui/utils";
20
- import type IInputOption from "~ui/interface/IInputOption";
19
+ import { getUID } from "~ui/app/utils";
20
+ import type IInputOption from "~ui/app/interface/IInputOption";
21
21
 
22
22
  export default defineComponent({
23
23
  name: "SLRadioGroup",
@@ -104,106 +104,118 @@ export default defineComponent({
104
104
  });
105
105
  </script>
106
106
 
107
- <style lang="stylus">
108
- .radio-group
109
- @apply inline-flex s('p-0.5') bg-primary-100 border border-primary-200 rounded
107
+ <style>
108
+ @reference '~ui/app/assets/css/main.css';
110
109
 
111
- &.radio-group--sm
112
- .radio
113
- label
114
- @apply px-2 s('py-1.5')
110
+ .radio-group {
111
+ @apply inline-flex p-0.5 bg-primary-100 border border-primary-200 rounded;
112
+ }
115
113
 
116
- &.radio-group--xs
117
- .radio
118
- label
119
- @apply px-4 s('py-0.5') text-sm
114
+ .radio-group.radio-group--sm .radio label {
115
+ @apply px-2 py-1.5;
116
+ }
120
117
 
121
- &.radio-group--xxs
122
- @apply s('p-0.75')
118
+ .radio-group.radio-group--xs .radio label {
119
+ @apply px-4 py-0.5 text-sm;
120
+ }
123
121
 
124
- .radio
125
- label
126
- @apply px-2 s('py-0.75') text-sm
122
+ .radio-group.radio-group--xxs {
123
+ @apply p-0.75;
124
+ }
127
125
 
128
- &.radio-group--3xs
129
- @apply s('p-0.75')
126
+ .radio-group.radio-group--xxs .radio label {
127
+ @apply px-2 py-0.75 text-sm;
128
+ }
130
129
 
131
- .radio
132
- label
133
- @apply px-2 py-px text-sm
130
+ .radio-group.radio-group--3xs {
131
+ @apply p-0.75;
132
+ }
134
133
 
135
- &.radio-group--third-600
136
- @apply bg-third-600 border-third-500
134
+ .radio-group.radio-group--3xs .radio label {
135
+ @apply px-2 py-px text-sm;
136
+ }
137
137
 
138
- .radio
139
- label
140
- @apply bg-third-600 text-white
138
+ .radio-group.radio-group--third-600 {
139
+ @apply bg-third-600 border-third-500;
140
+ }
141
141
 
142
- input:checked + .element-with-title
143
- label
144
- @apply text-third
142
+ .radio-group.radio-group--third-600 .radio label {
143
+ @apply bg-third-600 text-white;
144
+ }
145
145
 
146
- &.radio-group--edit
147
- @apply bg-edit border-primary
146
+ .radio-group.radio-group--third-600 .radio input:checked + .element-with-title label {
147
+ @apply text-third;
148
+ }
148
149
 
149
- &.color-invert
150
- @apply bg-card-lightpr-bg border-primary-300
150
+ .radio-group.radio-group--edit {
151
+ @apply bg-edit border-primary;
152
+ }
151
153
 
152
- .radio
153
- label
154
- @apply bg-card-lightpr-bg text-primary-600
154
+ .radio-group.radio-group--edit.color-invert {
155
+ @apply bg-card-lightpr-bg border-primary-300;
156
+ }
155
157
 
156
- input:checked + .element-with-title
157
- label
158
- @apply bg-edit text-white
158
+ .radio-group.radio-group--edit.color-invert .radio label {
159
+ @apply bg-card-lightpr-bg text-primary-600;
160
+ }
159
161
 
160
- .radio
161
- label
162
- @apply bg-edit text-white
162
+ .radio-group.radio-group--edit.color-invert .radio input:checked + .element-with-title label {
163
+ @apply bg-edit text-white;
164
+ }
163
165
 
164
- input:checked + .element-with-title
165
- label
166
- @apply text-primary
166
+ .radio-group.radio-group--edit .radio label {
167
+ @apply bg-edit text-white;
168
+ }
167
169
 
168
- &.radio-group--insight-title
169
- @apply bg-primary-100 border-primary-100
170
+ .radio-group.radio-group--edit .radio input:checked + .element-with-title label {
171
+ @apply text-primary;
172
+ }
170
173
 
171
- &.color-invert
172
- @apply bg-card-lightpr-bg border-primary-300
174
+ .radio-group.radio-group--insight-title {
175
+ @apply bg-primary-100 border-primary-100;
176
+ }
173
177
 
174
- .radio
175
- label
176
- @apply bg-card-lightpr-bg text-primary-600
178
+ .radio-group.radio-group--insight-title.color-invert {
179
+ @apply bg-card-lightpr-bg border-primary-300;
180
+ }
177
181
 
178
- input:checked + .element-with-title
179
- label
180
- @apply bg-edit text-white
182
+ .radio-group.radio-group--insight-title.color-invert .radio label {
183
+ @apply bg-card-lightpr-bg text-primary-600;
184
+ }
181
185
 
182
- .radio
183
- label
184
- @apply bg-primary-100 text-primary
186
+ .radio-group.radio-group--insight-title.color-invert .radio input:checked + .element-with-title label {
187
+ @apply bg-edit text-white;
188
+ }
185
189
 
186
- input:checked + .element-with-title
187
- label
188
- @apply bg-insight-title text-white
190
+ .radio-group.radio-group--insight-title .radio label {
191
+ @apply bg-primary-100 text-primary;
192
+ }
189
193
 
190
- &.disabled
191
- @apply bg-pgray-6 border-pgray-6
194
+ .radio-group.radio-group--insight-title .radio input:checked + .element-with-title label {
195
+ @apply bg-insight-title text-white;
196
+ }
192
197
 
193
- .radio
194
- @apply relative inline-flex
198
+ .radio-group.disabled {
199
+ @apply bg-pgray-6 border-pgray-6;
200
+ }
195
201
 
196
- input
197
- @apply absolute s('left-1/2') s('top-1/2') transform s('-translate-x-1/2') s('-translate-y-1/2')
202
+ .radio-group .radio {
203
+ @apply relative inline-flex;
204
+ }
198
205
 
199
- label
200
- @apply inline-flex justify-center items-center relative px-3 s('py-1.25') bg-primary-100 rounded text-base leading-normal text-primary-600 cursor-pointer transition
206
+ .radio-group .radio input {
207
+ @apply absolute left-1/2 top-1/2 transform -translate-x-1/2 -translate-y-1/2;
208
+ }
201
209
 
202
- input:checked + .element-with-title
203
- label
204
- @apply bg-white text-primary shadow
210
+ .radio-group .radio label {
211
+ @apply inline-flex justify-center items-center relative px-3 py-1.25 bg-primary-100 rounded text-base leading-[1.3125] text-primary-600 cursor-pointer transition;
212
+ }
205
213
 
206
- input:disabled + .element-with-title
207
- label
208
- @apply bg-pgray-6 text-pgray-4 cursor-default
209
- </style>
214
+ .radio-group .radio input:checked + .element-with-title label {
215
+ @apply bg-white text-primary shadow-default;
216
+ }
217
+
218
+ .radio-group .radio input:disabled + .element-with-title label {
219
+ @apply bg-pgray-6 text-pgray-4 cursor-default;
220
+ }
221
+ </style>
@@ -163,47 +163,62 @@ export default defineComponent({
163
163
  });
164
164
  </script>
165
165
 
166
- <style lang="stylus">
167
- .range-input
168
- &.inline
169
- @apply flex
166
+ <style>
167
+ @reference '~ui/app/assets/css/main.css';
170
168
 
171
- & > label
172
- @apply flex-grow-0 flex-shrink-0 mb-0 mr-2 py-2 border-t border-b border-transparent
169
+ .range-input.inline {
170
+ @apply flex;
171
+ }
173
172
 
174
- .form-control
175
- @apply flex-grow
176
-
177
- &.disabled, &.readonly
178
- .input-group
179
- .input-range-group
180
- .range-input-accept-values
181
- @apply text-pgray-4
182
-
183
- input[type=text]
184
- @apply border-primary-600 bg-primary-100
185
-
186
- & > label
187
- @apply mb-2 text-base leading-normal text-pgray-2
188
-
189
- .is-invalid
190
- .invalid-feedback
191
- @apply block
173
+ .range-input.inline > label {
174
+ @apply grow-0 shrink-0 mb-0 mr-2 py-2 border-t border-b border-transparent;
175
+ }
192
176
 
177
+ .range-input.inline .form-control {
178
+ @apply grow;
179
+ }
193
180
 
181
+ .range-input.disabled
194
182
  .input-group
195
- @apply flex flex-nowrap text-base leading-normal space-x-4
196
-
197
- .input-range-group
198
- @apply flex-grow
199
-
200
- .range-input-accept-values
201
- @apply flex justify-between mb-1 text-sm text-pgray-3
202
-
203
- input[type=text]
204
- @apply flex-grow-0 flex-shrink-0 w-11 bg-white border border-primary-600 rounded text-base text-center text-pgray-2
205
- @apply s('focus:outline-none')
206
-
207
- .invalid-feedback
208
- @apply hidden text-danger text-xs
183
+ .input-range-group
184
+ .range-input-accept-values,
185
+ .range-input.readonly
186
+ .input-group
187
+ .input-range-group
188
+ .range-input-accept-values {
189
+ @apply text-pgray-4;
190
+ }
191
+
192
+ .range-input.disabled .input-group input[type="text"],
193
+ .range-input.readonly .input-group input[type="text"] {
194
+ @apply border-primary-600 bg-primary-100;
195
+ }
196
+
197
+ .range-input > label {
198
+ @apply mb-2 text-base leading-[1.3125] text-pgray-2;
199
+ }
200
+
201
+ .range-input .is-invalid .invalid-feedback {
202
+ @apply block;
203
+ }
204
+
205
+ .range-input .input-group {
206
+ @apply flex flex-nowrap text-base leading-[1.3125] space-x-4;
207
+ }
208
+
209
+ .range-input .input-group .input-range-group {
210
+ @apply grow;
211
+ }
212
+
213
+ .range-input .input-group .input-range-group .range-input-accept-values {
214
+ @apply flex justify-between mb-1 text-sm text-pgray-3;
215
+ }
216
+
217
+ .range-input .input-group input[type="text"] {
218
+ @apply grow-0 shrink-0 w-11 bg-white border border-primary-600 rounded text-base text-center text-pgray-2 focus:outline-none;
219
+ }
220
+
221
+ .range-input .invalid-feedback {
222
+ @apply hidden text-danger text-xs;
223
+ }
209
224
  </style>