@mptw/skylens-ui 1.4.109 → 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 (130) 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 +14 -0
  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/{components → app/components}/SLAlertModal.vue +24 -16
  9. package/{components → app/components}/SLBreadcrumbs.vue +12 -8
  10. package/app/components/SLButton.vue +370 -0
  11. package/{components → app/components}/SLCalendarButton.vue +40 -34
  12. package/{components → app/components}/SLCalendarPopup.vue +79 -53
  13. package/{components → app/components}/SLCard.vue +57 -41
  14. package/{components → app/components}/SLChart.vue +6 -3
  15. package/{components → app/components}/SLCheckbox.vue +92 -49
  16. package/{components → app/components}/SLCircleButton.vue +25 -16
  17. package/{components → app/components}/SLCollapsableBlock.vue +44 -33
  18. package/{components → app/components}/SLCollapsableMulitPillSelect.vue +20 -15
  19. package/{components → app/components}/SLConfirmModal.vue +9 -6
  20. package/{components → app/components}/SLContextMenu.vue +88 -48
  21. package/{components → app/components}/SLDateInput.vue +109 -92
  22. package/{components → app/components}/SLDatePicker.vue +9 -7
  23. package/{components → app/components}/SLDistributor.vue +1 -1
  24. package/{components → app/components}/SLDownloadButton.vue +39 -29
  25. package/{components → app/components}/SLDraggable.vue +2 -2
  26. package/{components → app/components}/SLDropdown.vue +33 -25
  27. package/{components → app/components}/SLDropdownItem.vue +9 -5
  28. package/{components → app/components}/SLElementWithTitle.vue +12 -7
  29. package/{components → app/components}/SLEyeCheckbox.vue +44 -31
  30. package/{components → app/components}/SLFileInput.vue +23 -16
  31. package/{components → app/components}/SLGenderAgeSelect.vue +52 -36
  32. package/{components → app/components}/SLHourRangeInput.vue +45 -32
  33. package/{components → app/components}/SLIOSSwitch.vue +81 -60
  34. package/{components → app/components}/SLIcon.vue +4 -3
  35. package/{components → app/components}/SLIconButton.vue +31 -29
  36. package/{components → app/components}/SLInfoTip.vue +51 -40
  37. package/{components → app/components}/SLInsightSitePage.vue +12 -7
  38. package/{components → app/components}/SLLegend.vue +19 -12
  39. package/app/components/SLLinearProgressBar.vue +22 -0
  40. package/{components → app/components}/SLLink.vue +12 -8
  41. package/{components → app/components}/SLLoading.vue +34 -31
  42. package/{components → app/components}/SLMapChart.vue +5 -4
  43. package/{components → app/components}/SLModal.vue +90 -66
  44. package/{components → app/components}/SLMonthCalendarButton.vue +91 -45
  45. package/{components → app/components}/SLMonthPicker.vue +42 -37
  46. package/{components → app/components}/SLMultiEmailInput.vue +163 -113
  47. package/{components → app/components}/SLMultiSelect.vue +37 -26
  48. package/{components → app/components}/SLNoData.vue +16 -11
  49. package/app/components/SLNotification.vue +155 -0
  50. package/{components → app/components}/SLPageModal.vue +14 -9
  51. package/{components → app/components}/SLPagination.vue +45 -33
  52. package/{components → app/components}/SLPillCheckbox.vue +50 -42
  53. package/{components → app/components}/SLPillLabel.vue +43 -28
  54. package/{components → app/components}/SLPopupMenuButton.vue +26 -17
  55. package/{components → app/components}/SLProfileButton.vue +28 -20
  56. package/{components → app/components}/SLProjectShareItem.vue +30 -17
  57. package/{components → app/components}/SLRadioButton.vue +41 -33
  58. package/{components → app/components}/SLRadioButtonGroup.vue +28 -23
  59. package/app/components/SLRadioGroup.vue +221 -0
  60. package/{components → app/components}/SLRangeInput.vue +53 -38
  61. package/{components → app/components}/SLRegionsMapChart.vue +5 -4
  62. package/{components → app/components}/SLRightSider.vue +50 -40
  63. package/{components → app/components}/SLSearchInput.vue +24 -19
  64. package/{components → app/components}/SLSelect.vue +114 -87
  65. package/{components → app/components}/SLSelectAllToggle.vue +52 -37
  66. package/app/components/SLSidebarNav.vue +487 -0
  67. package/{components → app/components}/SLSidebarNavGroupItem.vue +13 -10
  68. package/{components → app/components}/SLSidebarNavGroupItemSection.vue +240 -179
  69. package/{components → app/components}/SLSidebarNavLinkItem.vue +131 -109
  70. package/{components → app/components}/SLSidebarNavSectionItem.vue +21 -18
  71. package/{components → app/components}/SLSitePage.vue +35 -24
  72. package/{components → app/components}/SLSkyInsightSitePage.vue +13 -8
  73. package/{components → app/components}/SLSortByDropdown.vue +35 -22
  74. package/{components → app/components}/SLSpinIcon.vue +6 -3
  75. package/{components → app/components}/SLStayRangeInput.vue +47 -36
  76. package/{components → app/components}/SLTab.vue +7 -2
  77. package/app/components/SLTable.vue +472 -0
  78. package/{components → app/components}/SLTableTooltip.vue +44 -30
  79. package/app/components/SLTabs.vue +528 -0
  80. package/{components → app/components}/SLTextInput.vue +162 -134
  81. package/{components → app/components}/SLTextarea.vue +40 -29
  82. package/{components → app/components}/SLToast.vue +19 -11
  83. package/{components → app/components}/SLToggleButton.vue +18 -11
  84. package/{components → app/components}/SLTwoLayerMultiSelect.vue +180 -85
  85. package/{components → app/components}/SLTwoLayerSelect.vue +47 -37
  86. package/{components → app/components}/SLTwoLayerSingleSelect.vue +52 -33
  87. package/{components → app/components}/SLWarnModal.vue +9 -7
  88. package/app/interface/commons.ts +7 -0
  89. package/{utils → app/utils}/index.ts +213 -146
  90. package/eslint.config.js +3 -0
  91. package/nuxt.config.ts +17 -14
  92. package/package.json +10 -9
  93. package/skills-lock.json +59 -0
  94. package/tsconfig.json +1 -6
  95. package/.eslintrc.cjs +0 -4
  96. package/app.config.ts +0 -5
  97. package/assets/css/layout.styl +0 -98
  98. package/assets/css/tailwind.css +0 -3
  99. package/components/SLButton.vue +0 -337
  100. package/components/SLLinearProgressBar.vue +0 -35
  101. package/components/SLNotification.vue +0 -151
  102. package/components/SLRadioGroup.vue +0 -209
  103. package/components/SLSidebarNav.vue +0 -427
  104. package/components/SLTable.vue +0 -455
  105. package/components/SLTabs.vue +0 -475
  106. package/interface/commons.ts +0 -7
  107. package/pages/index.vue +0 -15
  108. package/tailwind.config.js +0 -271
  109. /package/{assets → app/assets}/css/fonts/MEShPlus-font-icon.eot +0 -0
  110. /package/{assets → app/assets}/css/fonts/MEShPlus-font-icon.svg +0 -0
  111. /package/{assets → app/assets}/css/fonts/MEShPlus-font-icon.ttf +0 -0
  112. /package/{assets → app/assets}/css/fonts/MEShPlus-font-icon.woff +0 -0
  113. /package/{assets → app/assets}/css/icons.css +0 -0
  114. /package/{assets → app/assets}/images/commons/app-logo-white.png +0 -0
  115. /package/{assets → app/assets}/images/commons/app-logo.png +0 -0
  116. /package/{assets → app/assets}/images/commons/empty-box.png +0 -0
  117. /package/{interface → app/interface}/IDateRange.ts +0 -0
  118. /package/{interface → app/interface}/IHourRange.ts +0 -0
  119. /package/{interface → app/interface}/IInputOption.ts +0 -0
  120. /package/{interface → app/interface}/ILegendItem.ts +0 -0
  121. /package/{interface → app/interface}/IOrganization.ts +0 -0
  122. /package/{interface → app/interface}/IPopupMenuButton.ts +0 -0
  123. /package/{interface → app/interface}/IStayRange.ts +0 -0
  124. /package/{interface → app/interface}/ITableField.ts +0 -0
  125. /package/{interface → app/interface}/IWeb.ts +0 -0
  126. /package/{interface → app/interface}/NavConfigType.ts +0 -0
  127. /package/{models → app/models}/DateRange.ts +0 -0
  128. /package/{plugins → app/plugins}/v-calendar.ts +0 -0
  129. /package/{utils → app/utils}/constants.ts +0 -0
  130. /package/{utils → app/utils}/generateSheet.ts +0 -0
@@ -143,50 +143,62 @@ export default defineComponent({
143
143
  });
144
144
  </script>
145
145
 
146
- <style lang="stylus">
147
- .pagination
148
- @apply flex items-center justify-end
146
+ <style>
147
+ @reference '~ui/app/assets/css/main.css';
148
+
149
+ .pagination {
150
+ @apply flex items-center justify-end;
151
+ }
149
152
 
150
- &-info
151
- @apply inline-flex items-center mr-4 s('space-x-0.5') text-base text-pgray-2
153
+ .pagination-info {
154
+ @apply inline-flex items-center mr-4 space-x-0.5 text-base text-pgray-2;
155
+ }
152
156
 
153
- .custom-select
154
- @apply s('min-w-[2.3125rem]')
157
+ .pagination-info .custom-select {
158
+ @apply min-w-[2.3125rem];
159
+ }
155
160
 
156
- .form-control
157
- label
158
- @apply text-center
161
+ .pagination-info .custom-select .form-control label {
162
+ @apply text-center;
163
+ }
159
164
 
160
- .icon
161
- @apply hidden
165
+ .pagination-info .custom-select .form-control label .icon {
166
+ @apply hidden;
167
+ }
162
168
 
163
- .select-options
164
- .option-list
165
- .option-button
166
- @apply s('min-w-0') text-center
169
+ .pagination-info .custom-select .select-options .option-list .option-button {
170
+ @apply min-w-0 text-center;
171
+ }
167
172
 
168
- &-items
169
- @apply inline-flex items-center
173
+ .pagination-items {
174
+ @apply inline-flex items-center;
175
+ }
170
176
 
171
- &-item + &-item
172
- @apply border-l
177
+ .pagination-item + .pagination-item {
178
+ @apply border-l;
179
+ }
173
180
 
174
- &-item
175
- @apply inline-flex items-center justify-center s('min-w-[1.5rem]') s('min-h-[1.5rem]') p-1 border-t border-b border-primary bg-white text-xs text-primary
176
- @apply s('hover:text-primary-600') s('focus:text-primary')
181
+ .pagination-item {
182
+ @apply inline-flex items-center justify-center min-w-[1.5rem] min-h-[1.5rem] p-1 border-t border-b border-primary bg-white text-xs text-primary hover:text-primary-600 focus:text-primary;
183
+ }
177
184
 
178
- &--icon
179
- @apply s('py-1.5')
185
+ .pagination-item.pagination-item--icon {
186
+ @apply py-1.5;
187
+ }
180
188
 
181
- &:first-child
182
- @apply border-l rounded-l-sm
189
+ .pagination-item:first-child {
190
+ @apply border-l rounded-l-sm;
191
+ }
183
192
 
184
- &:last-child
185
- @apply border-r rounded-r-sm
193
+ .pagination-item:last-child {
194
+ @apply border-r rounded-r-sm;
195
+ }
186
196
 
187
- &.active
188
- @apply bg-primary text-white
197
+ .pagination-item.active {
198
+ @apply bg-primary text-white;
199
+ }
189
200
 
190
- &.more
191
- @apply cursor-default s('hover:text-primary-600')
201
+ .pagination-item.more {
202
+ @apply cursor-default hover:text-primary-600;
203
+ }
192
204
  </style>
@@ -16,7 +16,7 @@
16
16
  <script lang="ts">
17
17
  import type { PropType } from "vue";
18
18
  import { isEqual } from "lodash-es";
19
- import { getUID } from "~ui/utils";
19
+ import { getUID } from "~ui/app/utils";
20
20
 
21
21
  export default defineComponent({
22
22
  name: "SLPillCheckbox",
@@ -120,7 +120,7 @@ export default defineComponent({
120
120
  } else {
121
121
  emit(
122
122
  "update:modelValue",
123
- isTargetChecked ? trueValue.value : falseValue.value
123
+ isTargetChecked ? trueValue.value : falseValue.value,
124
124
  );
125
125
  }
126
126
  }
@@ -139,58 +139,66 @@ export default defineComponent({
139
139
  });
140
140
  </script>
141
141
 
142
- <style lang="stylus">
143
- .pill-checkbox
144
- @apply inline-block relative
142
+ <style>
143
+ @reference '~ui/app/assets/css/main.css';
145
144
 
146
- &.pill-checkbox-xs
147
- label
148
- @apply py-px text-xs
145
+ .pill-checkbox {
146
+ @apply inline-block relative;
147
+ }
149
148
 
150
- &.pill-checkbox-third-500
151
- input:checked + label
152
- @apply bg-third-500 border-third-500
149
+ .pill-checkbox.pill-checkbox-xs label {
150
+ @apply py-px text-xs;
151
+ }
153
152
 
154
- &.pill-checkbox-third
155
- input:checked + label
156
- @apply bg-third border-third
153
+ .pill-checkbox.pill-checkbox-third-500 input:checked + label {
154
+ @apply bg-third-500 border-third-500;
155
+ }
157
156
 
158
- &.pill-checkbox-primary
159
- input:checked + label
160
- @apply bg-primary border-primary
157
+ .pill-checkbox.pill-checkbox-third input:checked + label {
158
+ @apply bg-third border-third;
159
+ }
161
160
 
162
- &.pill-checkbox-primary-600
163
- input:checked + label
164
- @apply bg-primary-600 border-primary-600
161
+ .pill-checkbox.pill-checkbox-primary input:checked + label {
162
+ @apply bg-primary border-primary;
163
+ }
165
164
 
166
- &.pill-checkbox-highlight
167
- input:checked + label
168
- @apply bg-highlight border-highlight
165
+ .pill-checkbox.pill-checkbox-primary-600 input:checked + label {
166
+ @apply bg-primary-600 border-primary-600;
167
+ }
169
168
 
170
- &.pill-checkbox-blue-1
171
- input:checked + label
172
- @apply bg-blue-1 border-blue-1
169
+ .pill-checkbox.pill-checkbox-highlight input:checked + label {
170
+ @apply bg-highlight border-highlight;
171
+ }
173
172
 
174
- &.pill-checkbox-secondary-400
175
- input:checked + label
176
- @apply bg-secondary-400 border-secondary-400
173
+ .pill-checkbox.pill-checkbox-blue-1 input:checked + label {
174
+ @apply bg-blue-1 border-blue-1;
175
+ }
177
176
 
178
- input
179
- @apply absolute s('left-1/2') s('top-1/2') transform s('-translate-x-1/2') s('-translate-y-1/2')
177
+ .pill-checkbox.pill-checkbox-secondary-400 input:checked + label {
178
+ @apply bg-secondary-400 border-secondary-400;
179
+ }
180
180
 
181
- label
182
- @apply inline-flex justify-center items-center relative s('px-1.75') s('py-0.75')
183
- @apply bg-white border border-primary-300 rounded-full text-sm s('leading-4.75') text-pgray-2 align-top cursor-pointer
181
+ .pill-checkbox input {
182
+ @apply absolute left-1/2 top-1/2 transform -translate-x-1/2 -translate-y-1/2;
183
+ }
184
184
 
185
- .icon
186
- @apply hidden ml-2
185
+ .pill-checkbox label {
186
+ @apply inline-flex justify-center items-center relative px-1.75 py-0.75 bg-white border border-primary-300 rounded-full text-sm leading-4.75 text-pgray-2 align-top cursor-pointer;
187
+ }
187
188
 
188
- input:checked + label
189
- @apply bg-white border-white text-white font-bold
189
+ .pill-checkbox label .icon {
190
+ @apply hidden ml-2;
191
+ }
190
192
 
191
- .icon
192
- @apply inline-block
193
+ .pill-checkbox input:checked + label {
194
+ @apply bg-white border-white text-white font-bold;
195
+ }
193
196
 
194
- input:disabled + label
195
- @apply bg-white border-pgray-5 text-pgray-4 font-normal cursor-default
197
+ .pill-checkbox input:checked + label .icon {
198
+ @apply inline-block;
199
+ }
200
+
201
+ .pill-checkbox input:disabled + label {
202
+ @apply bg-white border-pgray-5 text-pgray-4 font-normal cursor-default;
203
+ }
196
204
  </style>
@@ -62,44 +62,59 @@ export default defineComponent({
62
62
  });
63
63
  </script>
64
64
 
65
- <style lang="stylus">
66
- .pill-label
67
- @apply inline-flex justify-center items-center relative s('px-1.75') s('py-0.75')
68
- @apply bg-white border border-white rounded-full text-sm s('leading-4.75') text-white font-bold align-top whitespace-nowrap
65
+ <style>
66
+ @reference '~ui/app/assets/css/main.css';
69
67
 
70
- &.pill-label-xs
71
- @apply py-px text-xs
68
+ .pill-label {
69
+ @apply inline-flex justify-center items-center relative px-1.75 py-0.75;
70
+ @apply bg-white border border-white rounded-full text-sm leading-4.75 text-white font-bold align-top whitespace-nowrap;
71
+ }
72
72
 
73
- &.pill-label-sm
74
- @apply py-px text-sm
73
+ .pill-label.pill-label-xs {
74
+ @apply py-px text-xs;
75
+ }
75
76
 
76
- &.pill-label-white
77
- @apply text-pgray-2
77
+ .pill-label.pill-label-sm {
78
+ @apply py-px text-sm;
79
+ }
78
80
 
79
- &.pill-label-third-500
80
- @apply bg-third-500 border-third-500
81
+ .pill-label.pill-label-white {
82
+ @apply text-pgray-2;
83
+ }
81
84
 
82
- &.pill-label-third-600
83
- @apply bg-third-600 border-third-600
85
+ .pill-label.pill-label-third-500 {
86
+ @apply bg-third-500 border-third-500;
87
+ }
84
88
 
85
- &.pill-label-third
86
- @apply bg-third border-third
89
+ .pill-label.pill-label-third-600 {
90
+ @apply bg-third-600 border-third-600;
91
+ }
87
92
 
88
- &.pill-label-primary
89
- @apply bg-primary border-primary
93
+ .pill-label.pill-label-third {
94
+ @apply bg-third border-third;
95
+ }
90
96
 
91
- &.pill-label-primary-600
92
- @apply bg-primary-600 border-primary-600
97
+ .pill-label.pill-label-primary {
98
+ @apply bg-primary border-primary;
99
+ }
93
100
 
94
- &.pill-label-highlight
95
- @apply bg-highlight border-highlight
101
+ .pill-label.pill-label-primary-600 {
102
+ @apply bg-primary-600 border-primary-600;
103
+ }
96
104
 
97
- &.pill-label-blue-1
98
- @apply bg-blue-1 border-blue-1
105
+ .pill-label.pill-label-highlight {
106
+ @apply bg-highlight border-highlight;
107
+ }
99
108
 
100
- &.pill-label-secondary
101
- @apply bg-secondary border-secondary
109
+ .pill-label.pill-label-blue-1 {
110
+ @apply bg-blue-1 border-blue-1;
111
+ }
102
112
 
103
- .icon
104
- @apply inline-block ml-2
113
+ .pill-label.pill-label-secondary {
114
+ @apply bg-secondary border-secondary;
115
+ }
116
+
117
+ .pill-label .icon {
118
+ @apply inline-block ml-2;
119
+ }
105
120
  </style>
@@ -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>