@globalbrain/sefirot 3.50.0 → 4.0.0-0

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/config/nuxt.d.ts +4 -0
  2. package/config/nuxt.js +31 -0
  3. package/config/vite.d.ts +8 -0
  4. package/config/vite.js +69 -0
  5. package/lib/components/SActionList.vue +0 -1
  6. package/lib/components/SActionListItem.vue +3 -11
  7. package/lib/components/SAlert.vue +8 -13
  8. package/lib/components/SButton.vue +9 -10
  9. package/lib/components/SCardBlock.vue +0 -6
  10. package/lib/components/SControlActionBarClose.vue +1 -1
  11. package/lib/components/SControlActionBarCollapse.vue +2 -2
  12. package/lib/components/SControlInputSearch.vue +2 -2
  13. package/lib/components/SDescAvatar.vue +1 -2
  14. package/lib/components/SDescFile.vue +4 -6
  15. package/lib/components/SDescPill.vue +1 -2
  16. package/lib/components/SDescText.vue +1 -1
  17. package/lib/components/SDropdownSectionDateRange.vue +2 -2
  18. package/lib/components/SDropdownSectionDateRangeDateFromTo.vue +2 -2
  19. package/lib/components/SDropdownSectionDateRangeYear.vue +2 -2
  20. package/lib/components/SDropdownSectionDateRangeYearHalf.vue +2 -2
  21. package/lib/components/SDropdownSectionDateRangeYearQuarter.vue +2 -2
  22. package/lib/components/SDropdownSectionFilter.vue +4 -6
  23. package/lib/components/SIndicator.vue +10 -16
  24. package/lib/components/SInputAddon.vue +6 -8
  25. package/lib/components/SInputBase.vue +6 -8
  26. package/lib/components/SInputCheckbox.vue +7 -11
  27. package/lib/components/SInputCheckboxes.vue +3 -4
  28. package/lib/components/SInputDate.vue +3 -4
  29. package/lib/components/SInputDropdown.vue +10 -13
  30. package/lib/components/SInputDropdownItemAvatar.vue +2 -3
  31. package/lib/components/SInputDropdownItemText.vue +2 -3
  32. package/lib/components/SInputFile.vue +3 -4
  33. package/lib/components/SInputHMS.vue +4 -5
  34. package/lib/components/SInputImage.vue +5 -7
  35. package/lib/components/SInputNumber.vue +10 -11
  36. package/lib/components/SInputRadio.vue +3 -4
  37. package/lib/components/SInputRadios.vue +3 -4
  38. package/lib/components/SInputSegments.vue +3 -4
  39. package/lib/components/SInputSelect.vue +7 -9
  40. package/lib/components/SInputSwitch.vue +3 -4
  41. package/lib/components/SInputSwitches.vue +3 -4
  42. package/lib/components/SInputText.vue +7 -9
  43. package/lib/components/SInputTextarea.vue +3 -4
  44. package/lib/components/SInputYMD.vue +4 -5
  45. package/lib/components/SLink.vue +1 -1
  46. package/lib/components/SLocalNavMenu.vue +3 -4
  47. package/lib/components/SLoginPage.vue +3 -3
  48. package/lib/components/SLoginPagePasswordDialog.vue +4 -4
  49. package/lib/components/SPagination.vue +2 -2
  50. package/lib/components/SPill.vue +1 -5
  51. package/lib/components/SSnackbar.vue +2 -3
  52. package/lib/components/SStep.vue +4 -5
  53. package/lib/components/STable.vue +1 -2
  54. package/lib/components/STableCell.vue +5 -13
  55. package/lib/components/STableCellAvatar.vue +10 -27
  56. package/lib/components/STableCellAvatars.vue +6 -19
  57. package/lib/components/STableCellDay.vue +4 -11
  58. package/lib/components/STableCellNumber.vue +8 -9
  59. package/lib/components/STableCellPill.vue +5 -33
  60. package/lib/components/STableCellPills.vue +4 -14
  61. package/lib/components/STableCellState.vue +3 -3
  62. package/lib/components/STableCellText.vue +22 -50
  63. package/lib/components/STableColumn.vue +4 -6
  64. package/lib/components/STableFooter.vue +4 -5
  65. package/lib/components/STableHeader.vue +2 -19
  66. package/lib/components/STableHeaderMenu.vue +1 -2
  67. package/lib/components/STableHeaderMenuItem.vue +2 -3
  68. package/lib/components/STableItem.vue +1 -1
  69. package/lib/composables/Data.ts +8 -102
  70. package/lib/composables/Error.ts +3 -3
  71. package/lib/composables/Table.ts +17 -22
  72. package/lib/composables/Utils.ts +2 -2
  73. package/lib/composables/Validation.ts +76 -14
  74. package/lib/http/Http.ts +27 -10
  75. package/lib/mixins/Card.ts +0 -27
  76. package/lib/mixins/Fundamental.ts +0 -3
  77. package/lib/support/Day.ts +5 -5
  78. package/lib/support/Utils.ts +35 -14
  79. package/lib/validation/validators/maxLength.ts +2 -2
  80. package/lib/validation/validators/maxValue.ts +2 -2
  81. package/lib/validation/validators/minLength.ts +2 -2
  82. package/lib/validation/validators/minValue.ts +2 -2
  83. package/lib/validation/validators/required.ts +4 -4
  84. package/package.json +40 -40
  85. package/lib/components/SCardFooter.vue +0 -22
  86. package/lib/components/SCardFooterAction.vue +0 -31
  87. package/lib/components/SCardFooterActions.vue +0 -18
  88. package/lib/components/SCardHeader.vue +0 -15
  89. package/lib/components/SCardHeaderAction.vue +0 -28
  90. package/lib/components/SCardHeaderActionClose.vue +0 -27
  91. package/lib/components/SCardHeaderActionCollapse.vue +0 -47
  92. package/lib/components/SCardHeaderActions.vue +0 -13
  93. package/lib/components/SCardHeaderTitle.vue +0 -29
  94. package/lib/components/SIcon.vue +0 -13
  95. package/lib/components/SSheet.vue +0 -87
  96. package/lib/components/SSheetFooter.vue +0 -16
  97. package/lib/components/SSheetFooterAction.vue +0 -34
  98. package/lib/components/SSheetFooterActions.vue +0 -14
  99. package/lib/components/SSheetForm.vue +0 -15
  100. package/lib/components/SSheetMedium.vue +0 -72
  101. package/lib/components/SSheetTitle.vue +0 -13
  102. package/lib/components/STableHeaderActions.vue +0 -20
  103. package/lib/composables/D.ts +0 -21
  104. package/lib/composables/Form.ts +0 -109
  105. package/lib/composables/V.ts +0 -97
  106. package/lib/mixins/Sheet.ts +0 -30
@@ -1,7 +1,7 @@
1
- import { isNumber, isString } from '../../support/Utils'
1
+ import { isDate, isNumber, isString } from '../../support/Utils'
2
2
 
3
3
  export function minValue(value: unknown, min: number) {
4
- if (isNumber(value) || isString(value) || value instanceof Date) {
4
+ if (isNumber(value) || isString(value) || isDate(value)) {
5
5
  return +value >= min
6
6
  }
7
7
 
@@ -1,4 +1,4 @@
1
- import { isArray, isNullish, isString } from '../../support/Utils'
1
+ import { isDate, isString } from '../../support/Utils'
2
2
 
3
3
  export function required(value: unknown): boolean {
4
4
  if (isString(value)) {
@@ -9,11 +9,11 @@ export function required(value: unknown): boolean {
9
9
  }
10
10
 
11
11
  export function _required(value: unknown): boolean {
12
- if (isArray(value)) {
12
+ if (Array.isArray(value)) {
13
13
  return !!value.length
14
14
  }
15
15
 
16
- if (isNullish(value)) {
16
+ if (value == null) {
17
17
  return false
18
18
  }
19
19
 
@@ -21,7 +21,7 @@ export function _required(value: unknown): boolean {
21
21
  return true
22
22
  }
23
23
 
24
- if (value instanceof Date) {
24
+ if (isDate(value)) {
25
25
  return !Number.isNaN(value.getTime())
26
26
  }
27
27
 
package/package.json CHANGED
@@ -1,7 +1,8 @@
1
1
  {
2
2
  "name": "@globalbrain/sefirot",
3
- "version": "3.50.0",
4
- "packageManager": "pnpm@9.1.1",
3
+ "type": "module",
4
+ "version": "4.0.0-0",
5
+ "packageManager": "pnpm@9.5.0",
5
6
  "description": "Vue Components for Global Brain Design System.",
6
7
  "author": "Kia Ishii <ka.ishii@globalbrains.com>",
7
8
  "license": "MIT",
@@ -18,7 +19,8 @@
18
19
  "vue component"
19
20
  ],
20
21
  "files": [
21
- "lib"
22
+ "lib",
23
+ "config"
22
24
  ],
23
25
  "scripts": {
24
26
  "docs": "pnpm docs:dev",
@@ -40,81 +42,79 @@
40
42
  "release": "release-it"
41
43
  },
42
44
  "peerDependencies": {
43
- "@iconify-icons/ph": "^1.2.5",
44
- "@iconify-icons/ri": "^1.2.10",
45
- "@iconify/vue": "^4.1.2",
45
+ "@iconify-json/ph": "^1.1.13",
46
+ "@iconify-json/ri": "^1.1.21",
46
47
  "@types/body-scroll-lock": "^3.1.2",
47
48
  "@types/lodash-es": "^4.17.12",
48
49
  "@types/markdown-it": "^14.1.1",
49
- "@vue/reactivity": "^3.4.27",
50
- "@vue/runtime-core": "^3.4.27",
50
+ "@vue/reactivity": "^3.4.33",
51
51
  "@vuelidate/core": "^2.0.3",
52
52
  "@vuelidate/validators": "^2.0.4",
53
- "@vueuse/core": "^10.9.0",
53
+ "@vueuse/core": "^10.11.0",
54
54
  "body-scroll-lock": "4.0.0-beta.0",
55
- "dayjs": "^1.11.11",
55
+ "dayjs": "^1.11.12",
56
56
  "fuse.js": "^7.0.0",
57
57
  "lodash-es": "^4.17.21",
58
58
  "markdown-it": "^14.1.0",
59
59
  "normalize.css": "^8.0.1",
60
60
  "pinia": "^2.1.7",
61
- "postcss": "^8.4.38",
62
- "postcss-nested": "^6.0.1",
61
+ "postcss": "^8.4.39",
62
+ "postcss-nested": "^6.2.0",
63
+ "unplugin-icons": "^0.19.0",
63
64
  "v-calendar": "^3.1.2",
64
- "vue": "^3.4.27",
65
- "vue-router": "^4.3.2"
65
+ "vue": "^3.4.33",
66
+ "vue-router": "^4.4.0"
66
67
  },
67
68
  "dependencies": {
68
- "@sentry/browser": "^8.0.0",
69
+ "@sentry/browser": "^8.19.0",
69
70
  "@tanstack/vue-virtual": "3.0.0-beta.62",
70
- "@tinyhttp/content-disposition": "^2.2.0",
71
- "@tinyhttp/cookie": "^2.1.0",
71
+ "@tinyhttp/content-disposition": "^2.2.1",
72
+ "@tinyhttp/cookie": "^2.1.1",
72
73
  "@types/file-saver": "^2.0.7",
73
74
  "@types/qs": "^6.9.15",
74
75
  "file-saver": "^2.0.5",
75
76
  "ofetch": "^1.3.4",
76
- "qs": "^6.12.1"
77
+ "qs": "^6.12.3"
77
78
  },
78
79
  "devDependencies": {
79
80
  "@globalbrain/eslint-config": "^1.6.0",
80
81
  "@histoire/plugin-vue": "0.16.5",
81
- "@iconify-icons/ph": "^1.2.5",
82
- "@iconify-icons/ri": "^1.2.10",
83
- "@iconify/vue": "^4.1.2",
82
+ "@iconify-json/ph": "^1.1.13",
83
+ "@iconify-json/ri": "^1.1.21",
84
84
  "@release-it/conventional-changelog": "^8.0.1",
85
85
  "@types/body-scroll-lock": "^3.1.2",
86
86
  "@types/lodash-es": "^4.17.12",
87
87
  "@types/markdown-it": "^14.1.1",
88
- "@types/node": "^20.12.11",
89
- "@vitejs/plugin-vue": "^5.0.4",
90
- "@vitest/coverage-v8": "^1.6.0",
91
- "@vue/reactivity": "^3.4.27",
92
- "@vue/runtime-core": "^3.4.27",
88
+ "@types/node": "^20.14.11",
89
+ "@vitejs/plugin-vue": "^5.0.5",
90
+ "@vitest/coverage-v8": "^2.0.3",
91
+ "@vue/reactivity": "^3.4.33",
93
92
  "@vue/test-utils": "^2.4.6",
94
93
  "@vuelidate/core": "^2.0.3",
95
94
  "@vuelidate/validators": "^2.0.4",
96
- "@vueuse/core": "^10.9.0",
95
+ "@vueuse/core": "^10.11.0",
97
96
  "body-scroll-lock": "4.0.0-beta.0",
98
- "dayjs": "^1.11.11",
99
- "eslint": "^8.57.0",
97
+ "dayjs": "^1.11.12",
98
+ "eslint": "8.57.0",
100
99
  "fuse.js": "^7.0.0",
101
- "happy-dom": "^14.10.2",
100
+ "happy-dom": "^14.12.3",
102
101
  "histoire": "0.16.5",
103
102
  "lodash-es": "^4.17.21",
104
103
  "markdown-it": "^14.1.0",
105
104
  "normalize.css": "^8.0.1",
106
105
  "pinia": "^2.1.7",
107
- "postcss": "^8.4.38",
108
- "postcss-nested": "^6.0.1",
106
+ "postcss": "^8.4.39",
107
+ "postcss-nested": "^6.2.0",
109
108
  "punycode": "^2.3.1",
110
- "release-it": "^17.2.1",
111
- "typescript": "~5.4.5",
109
+ "release-it": "^17.6.0",
110
+ "typescript": "~5.5.3",
111
+ "unplugin-icons": "npm:@globalbrain/unplugin-icons@^0.19.1",
112
112
  "v-calendar": "^3.1.2",
113
- "vite": "^5.2.11",
114
- "vitepress": "^1.1.4",
115
- "vitest": "^1.6.0",
116
- "vue": "^3.4.27",
117
- "vue-router": "^4.3.2",
118
- "vue-tsc": "^1.8.27"
113
+ "vite": "^5.3.4",
114
+ "vitepress": "^1.3.1",
115
+ "vitest": "^2.0.3",
116
+ "vue": "^3.4.33",
117
+ "vue-router": "^4.4.0",
118
+ "vue-tsc": "^2.0.26"
119
119
  }
120
120
  }
@@ -1,22 +0,0 @@
1
- <script setup lang="ts">
2
- export type Space = 'compact' | 'wide' | 'xwide'
3
-
4
- defineProps<{
5
- space?: Space
6
- }>()
7
- </script>
8
-
9
- <template>
10
- <div class="SCardFooter" :class="[space ?? 'compact']">
11
- <slot />
12
- </div>
13
- </template>
14
-
15
- <style scoped lang="postcss">
16
- .SCardFooter {
17
- display: flex;
18
- align-items: center;
19
- border-radius: 0 0 5px 5px;
20
- background-color: var(--c-bg-elv-3);
21
- }
22
- </style>
@@ -1,31 +0,0 @@
1
- <script setup lang="ts">
2
- import SButton, { type Mode, type Tooltip } from './SButton.vue'
3
-
4
- defineProps<{
5
- mode?: Mode
6
- label?: string
7
- labelMode?: Mode
8
- loading?: boolean
9
- disabled?: boolean
10
- tooltip?: string | Tooltip
11
- }>()
12
-
13
- defineEmits<{
14
- (e: 'click'): void
15
- }>()
16
- </script>
17
-
18
- <template>
19
- <div class="SCardFooterAction">
20
- <SButton
21
- size="medium"
22
- :mode="mode"
23
- :label="label"
24
- :label-mode="labelMode"
25
- :loading="loading"
26
- :disabled="disabled"
27
- :tooltip="tooltip"
28
- @click="$emit('click')"
29
- />
30
- </div>
31
- </template>
@@ -1,18 +0,0 @@
1
- <template>
2
- <div class="SCardFooterActions">
3
- <slot />
4
- </div>
5
- </template>
6
-
7
- <style scoped lang="postcss">
8
- .SCardFooterActions {
9
- display: flex;
10
- justify-content: flex-end;
11
- flex-grow: 1;
12
- gap: 12px;
13
-
14
- .SCardFooter.compact > & { padding: 12px 24px; }
15
- .SCardFooter.wide > & { padding: 16px 32px; }
16
- .SCardFooter.xwide > & { padding: 24px 48px; }
17
- }
18
- </style>
@@ -1,15 +0,0 @@
1
- <template>
2
- <div class="SCardHeader">
3
- <slot />
4
- </div>
5
- </template>
6
-
7
- <style scoped lang="postcss">
8
- .SCardHeader {
9
- display: flex;
10
- align-items: center;
11
- border-radius: 5px 5px 0 0;
12
- height: 48px;
13
- background-color: var(--c-bg-elv-4);
14
- }
15
- </style>
@@ -1,28 +0,0 @@
1
- <script setup lang="ts">
2
- import { type IconifyIcon } from '@iconify/vue/dist/offline'
3
- import SButton, { type Tooltip } from './SButton.vue'
4
-
5
- defineProps<{
6
- icon: IconifyIcon
7
- disabled?: boolean
8
- tooltip?: string | Tooltip
9
- }>()
10
-
11
- defineEmits<{
12
- (e: 'click'): void
13
- }>()
14
- </script>
15
-
16
- <template>
17
- <div class="SCardHeaderAction">
18
- <SButton
19
- type="text"
20
- mode="mute"
21
- size="small"
22
- :icon="icon"
23
- :disabled="disabled"
24
- :tooltip="tooltip"
25
- @click="$emit('click')"
26
- />
27
- </div>
28
- </template>
@@ -1,27 +0,0 @@
1
- <script setup lang="ts">
2
- import IconX from '@iconify-icons/ph/x-bold'
3
- import SButton, { type Tooltip } from './SButton.vue'
4
-
5
- defineProps<{
6
- disabled?: boolean
7
- tooltip?: string | Tooltip
8
- }>()
9
-
10
- defineEmits<{
11
- (e: 'click'): void
12
- }>()
13
- </script>
14
-
15
- <template>
16
- <div class="SCardHeaderActionClose">
17
- <SButton
18
- type="text"
19
- mode="mute"
20
- size="small"
21
- :icon="IconX"
22
- :disabled="disabled"
23
- :tooltip="tooltip"
24
- @click="$emit('click')"
25
- />
26
- </div>
27
- </template>
@@ -1,47 +0,0 @@
1
- <script setup lang="ts">
2
- import IconArrowsInLineVertical from '@iconify-icons/ph/arrows-in-line-vertical-bold'
3
- import IconArrowsOutLineVertical from '@iconify-icons/ph/arrows-out-line-vertical-bold'
4
- import { computed, shallowRef } from 'vue'
5
- import { useCardState } from '../composables/Card'
6
- import SButton, { type Tooltip } from './SButton.vue'
7
-
8
- const props = defineProps<{
9
- collapsed?: boolean
10
- disabled?: boolean
11
- tooltip?: string | Tooltip
12
- }>()
13
-
14
- defineEmits<{
15
- (e: 'click'): void
16
- }>()
17
-
18
- const { isCollapsed, setCollapse, toggleCollapse } = useCardState()
19
-
20
- setCollapse(props.collapsed)
21
-
22
- const el = shallowRef<HTMLElement | null>(null)
23
-
24
- const icon = computed(() => {
25
- return isCollapsed.value
26
- ? IconArrowsOutLineVertical
27
- : IconArrowsInLineVertical
28
- })
29
- </script>
30
-
31
- <template>
32
- <div
33
- class="SCardHeaderActionCollapse"
34
- :class="{ collapsed: isCollapsed }"
35
- ref="el"
36
- >
37
- <SButton
38
- type="text"
39
- mode="mute"
40
- size="small"
41
- :icon="icon"
42
- :disabled="disabled"
43
- :tooltip="tooltip"
44
- @click="toggleCollapse"
45
- />
46
- </div>
47
- </template>
@@ -1,13 +0,0 @@
1
- <template>
2
- <div class="SCardHeaderActions">
3
- <slot />
4
- </div>
5
- </template>
6
-
7
- <style scoped lang="postcss">
8
- .SCardHeaderActions {
9
- display: flex;
10
- justify-content: flex-end;
11
- padding-right: 8px;
12
- }
13
- </style>
@@ -1,29 +0,0 @@
1
- <script setup lang="ts">
2
- export type Mode = 'neutral' | 'info' | 'success' | 'warning' | 'danger'
3
-
4
- defineProps<{
5
- mode?: Mode
6
- }>()
7
- </script>
8
-
9
- <template>
10
- <p class="SCardHeaderTitle" :class="[mode ?? 'neutral']">
11
- <slot />
12
- </p>
13
- </template>
14
-
15
- <style scoped lang="postcss">
16
- .SCardHeaderTitle {
17
- flex-grow: 1;
18
- padding-left: 24px;
19
- line-height: 32px;
20
- font-size: 14px;
21
- font-weight: 600;
22
- }
23
-
24
- .SCardHeaderTitle.neutral { color: var(--c-text-1); }
25
- .SCardHeaderTitle.info { color: var(--c-text-info-1); }
26
- .SCardHeaderTitle.success { color: var(--c-text-success-1); }
27
- .SCardHeaderTitle.warning { color: var(--c-text-warning-1); }
28
- .SCardHeaderTitle.danger { color: var(--c-text-danger-1); }
29
- </style>
@@ -1,13 +0,0 @@
1
- <script setup lang="ts">
2
- import { Icon, type IconifyIcon } from '@iconify/vue/dist/offline'
3
- import { type DefineComponent } from 'vue'
4
-
5
- defineProps<{
6
- icon: IconifyIcon | DefineComponent
7
- }>()
8
- </script>
9
-
10
- <template>
11
- <Icon v-if="typeof icon.body === 'string'" :icon="(icon as IconifyIcon)" />
12
- <component v-else :is="icon" />
13
- </template>
@@ -1,87 +0,0 @@
1
- <script setup lang="ts">
2
- import IconX from '@iconify-icons/ph/x'
3
- import SIcon from './SIcon.vue'
4
- import SMount from './SMount.vue'
5
-
6
- export interface Props {
7
- size?: 'small' | 'medium' | 'large'
8
- closable?: boolean
9
- }
10
-
11
- withDefaults(defineProps<Props>(), {
12
- size: 'medium',
13
- closable: true
14
- })
15
-
16
- defineEmits<{
17
- (e: 'close'): void
18
- }>()
19
- </script>
20
-
21
- <template>
22
- <SMount class="SSheet" :class="[size]">
23
- <button v-if="closable ?? true" class="close" @click="$emit('close')">
24
- <SIcon :icon="IconX" class="icon" />
25
- </button>
26
-
27
- <slot />
28
- </SMount>
29
- </template>
30
-
31
- <style scoped lang="postcss">
32
- .SSheet {
33
- position: relative;
34
- border: 1px solid var(--c-divider);
35
- border-radius: 16px;
36
- background-color: var(--c-bg-elv-1);
37
- transition: opacity 0.25s, transform 0.25s;
38
-
39
- .dark & {
40
- background-color: var(--c-bg-mute-1);
41
- }
42
-
43
- .SModal & {
44
- margin: 96px auto;
45
- box-shadow: var(--shadow-depth-5);
46
-
47
- .dark & {
48
- background-color: var(--c-bg-elv-4);
49
- }
50
- }
51
- }
52
-
53
- .SSheet.small { max-width: 512px; }
54
- .SSheet.medium { max-width: 768px; }
55
- .SSheet.large { max-width: 1024px; }
56
-
57
- .SSheet.mount {
58
- opacity: 0;
59
- transform: translateY(8px);
60
- }
61
-
62
- .close {
63
- position: absolute;
64
- top: 4px;
65
- right: 4px;
66
- display: none;
67
- justify-content: center;
68
- align-items: center;
69
- width: 48px;
70
- height: 48px;
71
- color: var(--c-text-3);
72
- transition: color 0.25s;
73
-
74
- &:hover {
75
- color: var(--c-text-1);
76
- }
77
-
78
- .SModal & {
79
- display: flex;
80
- }
81
- }
82
-
83
- .icon {
84
- width: 24px;
85
- height: 24px;
86
- }
87
- </style>
@@ -1,16 +0,0 @@
1
- <template>
2
- <footer class="SSheetFooter">
3
- <slot />
4
- </footer>
5
- </template>
6
-
7
- <style scoped lang="postcss">
8
- .SSheetFooter {
9
- border-top: 1px solid var(--c-divider);
10
- padding: 0 16px;
11
-
12
- @media (min-width: 512px) {
13
- padding: 0 32px;
14
- }
15
- }
16
- </style>
@@ -1,34 +0,0 @@
1
- <script setup lang="ts">
2
- import SButton, { type Mode, type Type } from './SButton.vue'
3
-
4
- defineProps<{
5
- type?: Type
6
- mode?: Mode
7
- label: string
8
- loading?: boolean
9
- }>()
10
-
11
- defineEmits<{
12
- (e: 'click'): void
13
- }>()
14
- </script>
15
-
16
- <template>
17
- <div class="SSheetFooterAction">
18
- <SButton
19
- size="medium"
20
- :type="type"
21
- :mode="mode"
22
- :label="label"
23
- :loading="loading"
24
- block
25
- @click="$emit('click')"
26
- />
27
- </div>
28
- </template>
29
-
30
- <style scoped lang="postcss">
31
- .SSheetFooterAction {
32
- min-width: 88px;
33
- }
34
- </style>
@@ -1,14 +0,0 @@
1
- <template>
2
- <div class="SSheetFooterActions">
3
- <slot />
4
- </div>
5
- </template>
6
-
7
- <style lang="postcss" scoped>
8
- .SSheetFooterActions {
9
- display: flex;
10
- justify-content: flex-end;
11
- gap: 12px;
12
- padding: 16px 0 15px;
13
- }
14
- </style>
@@ -1,15 +0,0 @@
1
- <template>
2
- <div class="SSheetForm">
3
- <slot />
4
- </div>
5
- </template>
6
-
7
- <style scoped lang="postcss">
8
- .SSheetForm {
9
- padding: 32px;
10
-
11
- .SSheetTitle + & {
12
- padding-top: 16px;
13
- }
14
- }
15
- </style>
@@ -1,72 +0,0 @@
1
- <template>
2
- <div class="SSheetMedium">
3
- <slot />
4
- </div>
5
- </template>
6
-
7
- <style scoped lang="postcss">
8
- .SSheetMedium {
9
- padding: 32px;
10
-
11
- .SSheetTitle + & {
12
- padding-top: 0;
13
- }
14
- }
15
-
16
- .SSheetMedium :deep(p) {
17
- margin-bottom: 16px;
18
- }
19
-
20
- .SSheetMedium :deep(p:first-child) {
21
- margin-top: 0;
22
- }
23
-
24
- .SSheetMedium :deep(p:last-child) {
25
- margin-bottom: 0;
26
- }
27
-
28
- .SSheetMedium :deep(a) {
29
- font-weight: 500;
30
- color: var(--c-text-info-1);
31
- transition: color .25s;
32
-
33
- &:hover {
34
- color: var(--c-text-info-2);
35
- }
36
- }
37
-
38
- .SSheetMedium :deep(ul) {
39
- margin: 16px 0;
40
- }
41
-
42
- .SSheetMedium :deep(ul:last-child) {
43
- margin-bottom: 0;
44
- }
45
-
46
- .SSheetMedium :deep(li) {
47
- position: relative;
48
- padding-left: 20px;
49
- font-size: 16px;
50
- font-weight: 400;
51
- }
52
-
53
- .SSheetMedium :deep(li::before) {
54
- position: absolute;
55
- top: 9px;
56
- left: 4px;
57
- border-radius: 50%;
58
- width: 6px;
59
- height: 6px;
60
- background-color: var(--c-text-3);
61
- content: "";
62
- }
63
-
64
- .SSheetMedium :deep(li + li) {
65
- margin-top: 8px;
66
- }
67
-
68
- .SSheetMedium :deep(li > ul) {
69
- margin: 4px 0 0;
70
- margin-bottom: 16px;
71
- }
72
- </style>