@globalbrain/sefirot 2.32.0 → 2.34.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 (60) hide show
  1. package/lib/components/SButton.vue +52 -21
  2. package/lib/components/SDropdown.vue +1 -1
  3. package/lib/components/SDropdownSection.vue +1 -1
  4. package/lib/components/SDropdownSectionActions.vue +1 -1
  5. package/lib/components/SDropdownSectionComponent.vue +1 -1
  6. package/lib/components/SDropdownSectionFilter.vue +2 -2
  7. package/lib/components/SDropdownSectionFilterItem.vue +1 -1
  8. package/lib/components/SDropdownSectionMenu.vue +1 -1
  9. package/lib/components/SFragment.vue +16 -0
  10. package/lib/components/SIcon.vue +1 -1
  11. package/lib/components/SInputAddon.vue +1 -1
  12. package/lib/components/SInputBase.vue +3 -3
  13. package/lib/components/SInputCheckbox.vue +2 -2
  14. package/lib/components/SInputCheckboxes.vue +2 -2
  15. package/lib/components/SInputDate.vue +2 -2
  16. package/lib/components/SInputDropdown.vue +4 -4
  17. package/lib/components/SInputFile.vue +3 -3
  18. package/lib/components/SInputHMS.vue +9 -9
  19. package/lib/components/SInputNumber.vue +3 -3
  20. package/lib/components/SInputRadio.vue +3 -3
  21. package/lib/components/SInputRadios.vue +3 -3
  22. package/lib/components/SInputSelect.vue +3 -3
  23. package/lib/components/SInputSwitch.vue +3 -3
  24. package/lib/components/SInputSwitches.vue +3 -3
  25. package/lib/components/SInputText.vue +3 -3
  26. package/lib/components/SInputTextarea.vue +2 -2
  27. package/lib/components/SInputYMD.vue +9 -9
  28. package/lib/components/SMarkdown.vue +1 -1
  29. package/lib/components/SSheetFooterAction.vue +1 -1
  30. package/lib/components/SSnackbar.vue +1 -1
  31. package/lib/components/SStep.vue +2 -2
  32. package/lib/components/SSteps.vue +2 -2
  33. package/lib/components/STable.vue +50 -18
  34. package/lib/components/STableCell.vue +1 -1
  35. package/lib/components/STableCellAvatars.vue +1 -1
  36. package/lib/components/STableCellDay.vue +1 -1
  37. package/lib/components/STableCellPills.vue +1 -1
  38. package/lib/components/STableColumn.vue +1 -1
  39. package/lib/components/STooltip.vue +102 -14
  40. package/lib/composables/Data.ts +1 -1
  41. package/lib/composables/Dropdown.ts +2 -2
  42. package/lib/composables/Flyout.ts +1 -1
  43. package/lib/composables/Grid.ts +11 -11
  44. package/lib/composables/Markdown.ts +2 -2
  45. package/lib/composables/Table.ts +5 -4
  46. package/lib/composables/Tooltip.ts +27 -5
  47. package/lib/composables/Utils.ts +2 -2
  48. package/lib/composables/Validation.ts +5 -5
  49. package/lib/mixins/Sheet.ts +1 -1
  50. package/lib/styles/variables.css +49 -49
  51. package/lib/support/Day.ts +1 -1
  52. package/lib/validation/rules/hms.ts +1 -1
  53. package/lib/validation/rules/requiredHms.ts +1 -1
  54. package/lib/validation/rules/requiredYmd.ts +1 -1
  55. package/lib/validation/rules/ymd.ts +1 -1
  56. package/lib/validation/validators/hms.ts +1 -1
  57. package/lib/validation/validators/requiredHms.ts +1 -1
  58. package/lib/validation/validators/requiredYmd.ts +1 -1
  59. package/lib/validation/validators/ymd.ts +1 -1
  60. package/package.json +5 -5
@@ -1,6 +1,6 @@
1
1
  <script setup lang="ts">
2
2
  import { computed } from 'vue'
3
- import type { Day } from '../support/Day'
3
+ import { type Day } from '../support/Day'
4
4
 
5
5
  const props = defineProps<{
6
6
  value?: Day | null
@@ -1,6 +1,6 @@
1
1
  <script setup lang="ts">
2
2
  import { computed } from 'vue'
3
- import type { TableCellPillColor } from '../composables/Table'
3
+ import { type TableCellPillColor } from '../composables/Table'
4
4
  import STableCellPill from './STableCellPill.vue'
5
5
 
6
6
  export interface Pill {
@@ -1,7 +1,7 @@
1
1
  <script setup lang="ts">
2
2
  import IconDotsThree from '@iconify-icons/ph/dots-three'
3
3
  import { computed, nextTick, ref, unref, watch } from 'vue'
4
- import type { DropdownSection } from '../composables/Dropdown'
4
+ import { type DropdownSection } from '../composables/Dropdown'
5
5
  import { useFlyout } from '../composables/Flyout'
6
6
  import { isArray } from '../support/Utils'
7
7
  import SDropdown from './SDropdown.vue'
@@ -1,34 +1,111 @@
1
1
  <script setup lang="ts">
2
- import { computed, shallowRef } from 'vue'
3
- import type { Position } from '../composables/Tooltip'
4
- import { useTooltip } from '../composables/Tooltip'
2
+ import { onKeyStroke } from '@vueuse/core'
3
+ import { computed, ref, shallowRef } from 'vue'
4
+ import { type Position, useTooltip } from '../composables/Tooltip'
5
5
  import SMarkdown from './SMarkdown.vue'
6
6
 
7
- const props = defineProps<{
7
+ const props = withDefaults(defineProps<{
8
8
  tag?: string
9
9
  text?: string
10
10
  position?: Position
11
- }>()
12
-
11
+ display?: 'inline' | 'inline-block' | 'block'
12
+ trigger?: 'hover' | 'focus' | 'both'
13
+ timeout?: number
14
+ tabindex?: number
15
+ }>(), {
16
+ tag: 'span',
17
+ position: 'top',
18
+ trigger: 'hover'
19
+ })
20
+
21
+ const el = shallowRef<HTMLElement | null>(null)
13
22
  const tip = shallowRef<HTMLElement | null>(null)
14
23
  const content = shallowRef<HTMLElement | null>(null)
15
- const classes = computed(() => [props.position ?? 'top'])
24
+
25
+ const rootClasses = computed(() => [
26
+ props.display,
27
+ props.tabindex && (props.tabindex > -1) && 'focusable'
28
+ ])
29
+
30
+ const containerClasses = computed(() => [props.position])
31
+
32
+ const timeoutId = ref<number | null>(null)
33
+
34
+ const tabindex = computed(() => {
35
+ if (props.trigger === 'focus' || props.trigger === 'both') {
36
+ return props.tabindex ?? 0
37
+ }
38
+ return -1
39
+ })
16
40
 
17
41
  const { on, show, hide } = useTooltip(
42
+ el,
18
43
  content,
19
44
  tip,
20
- computed(() => props.position ?? 'top')
45
+ computed(() => props.position),
46
+ timeoutId
21
47
  )
48
+
49
+ onKeyStroke('Escape', (e) => {
50
+ if (on.value && el.value?.matches(':focus-within')) {
51
+ e.preventDefault()
52
+ e.stopPropagation()
53
+ hide()
54
+ }
55
+ })
56
+
57
+ function onMouseEnter() {
58
+ if (props.trigger === 'hover' || props.trigger === 'both') {
59
+ show()
60
+ }
61
+ }
62
+
63
+ function onMouseLeave() {
64
+ if (
65
+ props.trigger === 'hover'
66
+ || (props.trigger === 'both' && !el.value?.matches(':focus-within'))
67
+ ) {
68
+ hide()
69
+ }
70
+ }
71
+
72
+ function onFocus() {
73
+ if (props.trigger === 'focus' || props.trigger === 'both') {
74
+ show()
75
+ if (props.timeout) {
76
+ timeoutId.value = setTimeout(hide, props.timeout) as any
77
+ }
78
+ }
79
+ }
80
+
81
+ function onBlur() {
82
+ if (
83
+ props.trigger === 'focus'
84
+ || (props.trigger === 'both' && !el.value?.matches(':hover'))
85
+ ) {
86
+ hide()
87
+ }
88
+ }
22
89
  </script>
23
90
 
24
91
  <template>
25
- <component :is="tag ?? 'span'" class="STooltip" @mouseenter="show" @mouseleave="hide">
92
+ <component
93
+ ref="el"
94
+ :is="tag"
95
+ class="STooltip"
96
+ :class="rootClasses"
97
+ :tabindex="tabindex"
98
+ @mouseenter="onMouseEnter"
99
+ @mouseleave="onMouseLeave"
100
+ @focusin="onFocus"
101
+ @focusout="onBlur"
102
+ >
26
103
  <span class="content" ref="content">
27
104
  <slot />
28
105
  </span>
29
106
 
30
107
  <transition name="fade">
31
- <span v-show="on" class="container" :class="classes" ref="tip">
108
+ <span v-show="on" class="container" :class="containerClasses" ref="tip">
32
109
  <span v-if="$slots.text" class="tip"><slot name="text" /></span>
33
110
  <SMarkdown v-else-if="text" tag="span" class="tip" :content="text" inline />
34
111
  </span>
@@ -39,6 +116,18 @@ const { on, show, hide } = useTooltip(
39
116
  <style scoped lang="postcss">
40
117
  .STooltip {
41
118
  position: relative;
119
+
120
+ &:focus {
121
+ outline: none;
122
+ }
123
+
124
+ &.focusable {
125
+ cursor: pointer;
126
+ }
127
+
128
+ &.inline { display: inline; }
129
+ &.inline-block { display: inline-block; }
130
+ &.block { display: block; }
42
131
  }
43
132
 
44
133
  .content {
@@ -58,7 +147,7 @@ const { on, show, hide } = useTooltip(
58
147
  &.top .tip { transform: translateY(8px); }
59
148
  &.right .tip { transform: translateX(-8px); }
60
149
  &.bottom .tip { transform: translateY(-8px); }
61
- &.left .tip { transform: translateX(8px); }
150
+ &.left .tip { transform: translateX(8px); }
62
151
  }
63
152
 
64
153
  .container.top {
@@ -91,12 +180,11 @@ const { on, show, hide } = useTooltip(
91
180
  display: block;
92
181
  border: 1px solid var(--tooltip-border-color);
93
182
  border-radius: 6px;
94
- padding: 12px;
183
+ padding: 10px 12px;
95
184
  width: max-content;
96
185
  max-width: var(--tooltip-max-width);
97
- line-height: 18px;
186
+ line-height: 20px;
98
187
  font-size: 12px;
99
- font-weight: 500;
100
188
  color: var(--tooltip-text-color);
101
189
  background-color: var(--tooltip-bg-color);
102
190
  transition: transform 0.25s;
@@ -1,6 +1,6 @@
1
1
  import { watchOnce } from '@vueuse/core'
2
2
  import cloneDeep from 'lodash-es/cloneDeep'
3
- import type { WatchSource } from 'vue'
3
+ import { type WatchSource } from 'vue'
4
4
  import { reactive } from 'vue'
5
5
  import { isNullish, isObject } from '../support/Utils'
6
6
 
@@ -1,6 +1,6 @@
1
- import type { MaybeRef } from '@vueuse/core'
1
+ import { type MaybeRef } from '@vueuse/core'
2
2
  import { useElementBounding, useWindowSize } from '@vueuse/core'
3
- import type { Ref } from 'vue'
3
+ import { type Ref } from 'vue'
4
4
  import { ref, unref } from 'vue'
5
5
 
6
6
  export type DropdownSection =
@@ -1,4 +1,4 @@
1
- import type { Ref } from 'vue'
1
+ import { type Ref } from 'vue'
2
2
  import { ref, watch } from 'vue'
3
3
 
4
4
  export function useFlyout(container?: Ref<any>) {
@@ -1,4 +1,4 @@
1
- import type { Ref } from 'vue'
1
+ import { type Ref } from 'vue'
2
2
  import { onMounted, onUnmounted, ref, watchEffect } from 'vue'
3
3
 
4
4
  export interface Grid {
@@ -13,32 +13,32 @@ export interface UseGridOptions {
13
13
 
14
14
  type CssStyles = Partial<Record<keyof CSSStyleDeclaration, string>>
15
15
 
16
- export function useGrid(options: UseGridOptions): Grid {
16
+ export function useGrid(options: UseGridOptions = {}): Grid {
17
17
  const container: Ref<HTMLElement | null> = ref(null)
18
18
 
19
19
  const spacerClass = options.class ? toClassName(options.class) : 'spacer'
20
20
  const spacerTag = options.tag ?? 'div'
21
21
  const type = options.type ?? 'fit'
22
22
 
23
- const observer = new MutationObserver((_, observer) => {
24
- observer.disconnect()
25
-
26
- adjustSpacer()
27
-
28
- observer.observe(container.value!, { childList: true })
29
- })
23
+ let observer: MutationObserver | null = null
30
24
 
31
25
  watchEffect(() => {
32
- observer.disconnect()
26
+ observer?.disconnect()
33
27
 
34
28
  if (container.value) {
35
29
  adjustSpacer()
36
- observer.observe(container.value, { childList: true })
30
+ observer?.observe(container.value, { childList: true })
37
31
  }
38
32
  })
39
33
 
40
34
  onMounted(() => {
41
35
  window.addEventListener('resize', adjustSpacer)
36
+
37
+ observer = new MutationObserver((_, observer) => {
38
+ observer.disconnect()
39
+ adjustSpacer()
40
+ observer.observe(container.value!, { childList: true })
41
+ })
42
42
  })
43
43
 
44
44
  onUnmounted(() => {
@@ -1,8 +1,8 @@
1
1
  import MarkdownIt from 'markdown-it'
2
- import type { Ref } from 'vue'
2
+ import { type Ref } from 'vue'
3
3
  import { onUnmounted } from 'vue'
4
4
  import { useRouter } from 'vue-router'
5
- import type { LinkAttrs } from './markdown/LinkPlugin'
5
+ import { type LinkAttrs } from './markdown/LinkPlugin'
6
6
  import { isCallbackUrl, isExternalUrl, linkPlugin } from './markdown/LinkPlugin'
7
7
 
8
8
  export type UseMarkdown = (source: string, inline: boolean) => string
@@ -1,7 +1,7 @@
1
- import type { MaybeRef } from '@vueuse/core'
2
- import type { Component } from 'vue'
3
- import type { Day } from '../support/Day'
4
- import type { DropdownSection } from './Dropdown'
1
+ import { type MaybeRef } from '@vueuse/core'
2
+ import { type Component } from 'vue'
3
+ import { type Day } from '../support/Day'
4
+ import { type DropdownSection } from './Dropdown'
5
5
 
6
6
  export interface Table<
7
7
  O extends string = any,
@@ -20,6 +20,7 @@ export interface Table<
20
20
  reset?: MaybeRef<boolean | undefined>
21
21
  borderless?: MaybeRef<boolean>
22
22
  loading?: MaybeRef<boolean | undefined>
23
+ virtualScroll?: MaybeRef<boolean | undefined>
23
24
  onPrev?(): void
24
25
  onNext?(): void
25
26
  onReset?(): void
@@ -1,29 +1,51 @@
1
- import type { Ref } from 'vue'
2
- import { ref } from 'vue'
1
+ import { type Ref, ref } from 'vue'
2
+
3
+ export interface Tooltip {
4
+ on: Ref<boolean>
5
+ show: () => void
6
+ hide: () => void
7
+ }
3
8
 
4
9
  export type Position = 'top' | 'right' | 'bottom' | 'left'
5
10
 
6
11
  const SCREEN_PADDING = 16
7
12
 
13
+ const globalHide = ref<() => void>()
14
+
8
15
  /**
9
16
  * Prevent tooltip going off-screen by adjusting the position depending on
10
17
  * the current window size. This only applies to position `top` and
11
18
  * `bottom` since we only care about left and right of the screen.
12
19
  */
13
20
  export function useTooltip(
21
+ el: Ref<HTMLElement | null>,
14
22
  content: Ref<HTMLElement | null>,
15
23
  tip: Ref<HTMLElement | null>,
16
- position: Ref<Position>
17
- ) {
24
+ position: Ref<Position>,
25
+ timeoutId: Ref<number | null>
26
+ ): Tooltip {
18
27
  const on = ref(false)
19
28
 
20
29
  function show(): void {
30
+ if (on.value) { return }
31
+ globalHide.value?.()
21
32
  setPosition()
22
33
  setTimeout(() => { on.value = true })
34
+ globalHide.value = hide
23
35
  }
24
36
 
25
37
  function hide(): void {
26
- setTimeout(() => { on.value = false })
38
+ if (!on.value) { return }
39
+ setTimeout(() => {
40
+ if (timeoutId.value) {
41
+ clearTimeout(timeoutId.value)
42
+ timeoutId.value = null
43
+ }
44
+ on.value = false
45
+ if (el.value?.matches(':focus-within')) {
46
+ (document.activeElement as HTMLElement)?.blur?.()
47
+ }
48
+ })
27
49
  }
28
50
 
29
51
  function setPosition(): void {
@@ -1,6 +1,6 @@
1
- import type { MaybeComputedRef } from '@vueuse/core'
1
+ import { type MaybeComputedRef } from '@vueuse/core'
2
2
  import { resolveUnref } from '@vueuse/core'
3
- import type { ComputedRef } from 'vue'
3
+ import { type ComputedRef } from 'vue'
4
4
  import { computed } from 'vue'
5
5
 
6
6
  export type WhenCondition<T> = MaybeComputedRef<T>
@@ -1,12 +1,12 @@
1
- import type {
2
- GlobalConfig,
3
- Validation,
4
- ValidationArgs
1
+ import {
2
+ type GlobalConfig,
3
+ type Validation,
4
+ type ValidationArgs
5
5
  } from '@vuelidate/core'
6
6
  import {
7
7
  useVuelidate
8
8
  } from '@vuelidate/core'
9
- import type { Ref, ToRefs } from 'vue'
9
+ import { type Ref, type ToRefs } from 'vue'
10
10
 
11
11
  export type { Validation, ValidationArgs, GlobalConfig }
12
12
 
@@ -1,4 +1,4 @@
1
- import type { App } from 'vue'
1
+ import { type App } from 'vue'
2
2
  import SSheet from '../components/SSheet.vue'
3
3
  import SSheetFooter from '../components/SSheetFooter.vue'
4
4
  import SSheetFooterAction from '../components/SSheetFooterAction.vue'
@@ -7,6 +7,22 @@
7
7
  * -------------------------------------------------------------------------- */
8
8
 
9
9
  :root {
10
+ /**
11
+ * DEPRECATED: These values are no longer used. Equivalent colors are defined
12
+ * directly in theme-aware color definitions.
13
+ */
14
+ --c-white-soft: #fafafa;
15
+ --c-white-mute: #f2f2f2;
16
+ --c-white-elv: #fafafa;
17
+ --c-white-elv-up: #ffffff;
18
+ --c-white-elv-down: #f2f2f2;
19
+ --c-black: #000000;
20
+ --c-black-soft: #171717;
21
+ --c-black-mute: #1c1c1e;
22
+ --c-black-elv: #171717;
23
+ --c-black-elv-up: #1c1c1e;
24
+ --c-black-elv-down: #000000;
25
+
10
26
  --c-white: #ffffff;
11
27
  --c-black: #000000;
12
28
 
@@ -135,22 +151,6 @@
135
151
  --c-danger-bg-lighter: var(--c-danger-lighter);
136
152
  --c-danger-bg-dark: var(--c-danger-dark);
137
153
  --c-danger-bg-darker: var(--c-danger-darker);
138
-
139
- /**
140
- * DEPRECATED: These values are no longer used. Equivalent colors are defined
141
- * directly in theme-aware color definitions.
142
- */
143
- --c-white-soft: #fafafa;
144
- --c-white-mute: #f2f2f2;
145
- --c-white-elv: #fafafa;
146
- --c-white-elv-up: #ffffff;
147
- --c-white-elv-down: #f2f2f2;
148
- --c-black: #000000;
149
- --c-black-soft: #171717;
150
- --c-black-mute: #1c1c1e;
151
- --c-black-elv: #171717;
152
- --c-black-elv-up: #1c1c1e;
153
- --c-black-elv-down: #000000;
154
154
  }
155
155
 
156
156
  /**
@@ -158,6 +158,23 @@
158
158
  * -------------------------------------------------------------------------- */
159
159
 
160
160
  :root {
161
+ /* DEPRECATED: Use `--c-bg-elv-{number}`. */
162
+ --c-bg: var(--c-white);
163
+ --c-bg-soft: var(--c-white-soft);
164
+ --c-bg-mute: var(--c-white-mute);
165
+ --c-bg-elv: var(--c-white-elv);
166
+ --c-bg-elv-up: var(--c-white-elv-up);
167
+ --c-bg-elv-down: var(--c-white-elv-down);
168
+ --c-bg-lift-1: var(--c-white-soft);
169
+ --c-bg-lift-2: var(--c-white-mute);
170
+
171
+ /* DEPRECATED: Use `--c-divider-x`. */
172
+ --c-divider: var(--c-divider-light-1);
173
+ --c-divider-light: var(--c-divider-light-2);
174
+
175
+ /* DEPRECATED: Use `--c-bg-soft`. */
176
+ --c-soft: var(--c-white-soft);
177
+
161
178
  --c-bg-elv-1: #ffffff;
162
179
  --c-bg-elv-2: #f9f9f9;
163
180
  --c-bg-elv-3: #ffffff;
@@ -193,26 +210,26 @@
193
210
  --c-mute-darker: #d1d1d1;
194
211
  --c-mute-dimm-1: #f1f1f1;
195
212
  --c-mute-dimm-2: #e3e3e3;
213
+ }
196
214
 
197
- /* DEPRECATED: Use `--c-bg-elv-{number}`. */
198
- --c-bg: var(--c-white);
199
- --c-bg-soft: var(--c-white-soft);
200
- --c-bg-mute: var(--c-white-mute);
201
- --c-bg-elv: var(--c-white-elv);
202
- --c-bg-elv-up: var(--c-white-elv-up);
203
- --c-bg-elv-down: var(--c-white-elv-down);
204
- --c-bg-lift-1: var(--c-white-soft);
205
- --c-bg-lift-2: var(--c-white-mute);
215
+ .dark {
216
+ /* DEPRECATED: Use `--c-bg-elv-x`. */
217
+ --c-bg-elv: var(--c-black-elv);
218
+ --c-bg-elv-up: var(--c-black-elv-up);
219
+ --c-bg-elv-down: var(--c-black-elv-down);
220
+ --c-bg: var(--c-black);
221
+ --c-bg-soft: var(--c-black-soft);
222
+ --c-bg-mute: var(--c-black-mute);
223
+ --c-bg-lift-1: #222226;
224
+ --c-bg-lift-2: #2c2c2e;
206
225
 
207
- /* DEPRECATED: Use `--c-divider-x`. */
208
- --c-divider: var(--c-divider-light-1);
209
- --c-divider-light: var(--c-divider-light-2);
226
+ /* DEPRECATED: Use `--c-divider-1` and `--c-divider-2` instead. */
227
+ --c-divider: var(--c-divider-dark-1);
228
+ --c-divider-light: var(--c-divider-dark-2);
210
229
 
211
230
  /* DEPRECATED: Use `--c-bg-soft`. */
212
- --c-soft: var(--c-white-soft);
213
- }
231
+ --c-soft: #222226;
214
232
 
215
- .dark {
216
233
  --c-bg-elv-1: #000000;
217
234
  --c-bg-elv-2: #171717;
218
235
  --c-bg-elv-3: #1c1c1e;
@@ -248,23 +265,6 @@
248
265
  --c-mute-darker: #1c1c1e;
249
266
  --c-mute-dimm-1: #222226;
250
267
  --c-mute-dimm-2: #2c2c2e;
251
-
252
- /* DEPRECATED: Use `--c-bg-elv-x`. */
253
- --c-bg-elv: var(--c-black-elv);
254
- --c-bg-elv-up: var(--c-black-elv-up);
255
- --c-bg-elv-down: var(--c-black-elv-down);
256
- --c-bg: var(--c-black);
257
- --c-bg-soft: var(--c-black-soft);
258
- --c-bg-mute: var(--c-black-mute);
259
- --c-bg-lift-1: #222226;
260
- --c-bg-lift-2: #2c2c2e;
261
-
262
- /* DEPRECATED: Use `--c-divider-1` and `--c-divider-2` instead. */
263
- --c-divider: var(--c-divider-dark-1);
264
- --c-divider-light: var(--c-divider-dark-2);
265
-
266
- /* DEPRECATED: Use `--c-bg-soft`. */
267
- --c-soft: #222226;
268
268
  }
269
269
 
270
270
  /**
@@ -658,7 +658,7 @@
658
658
  --tooltip-max-width: 288px;
659
659
  --tooltip-border-color: var(--c-divider-2);
660
660
  --tooltip-text-color: var(--c-text-1);
661
- --tooltip-bg-color: var(--c-bg-elv-3);
661
+ --tooltip-bg-color: var(--c-bg-soft);
662
662
  }
663
663
 
664
664
  /**
@@ -1,4 +1,4 @@
1
- import type { ConfigType, Dayjs } from 'dayjs'
1
+ import { type ConfigType, type Dayjs } from 'dayjs'
2
2
  import dayjs from 'dayjs'
3
3
  import PluginRelativeTime from 'dayjs/plugin/relativeTime'
4
4
  import PluginTimezone from 'dayjs/plugin/timezone'
@@ -1,5 +1,5 @@
1
1
  import { helpers } from '@vuelidate/validators'
2
- import type { Hms } from '../../support/Day'
2
+ import { type Hms } from '../../support/Day'
3
3
  import { hms as baseHms } from '../validators/hms'
4
4
 
5
5
  type HmsType = 'h' | 'm' | 's'
@@ -1,5 +1,5 @@
1
1
  import { helpers } from '@vuelidate/validators'
2
- import type { Hms } from '../../support/Day'
2
+ import { type Hms } from '../../support/Day'
3
3
  import { requiredHms as baseRequiredHms } from '../validators/requiredHms'
4
4
 
5
5
  type HmsType = 'h' | 'm' | 's'
@@ -1,5 +1,5 @@
1
1
  import { helpers } from '@vuelidate/validators'
2
- import type { Ymd } from '../../support/Day'
2
+ import { type Ymd } from '../../support/Day'
3
3
  import { requiredYmd as baseRequiredYmd } from '../validators/requiredYmd'
4
4
 
5
5
  type YmdType = 'y' | 'm' | 'd'
@@ -1,5 +1,5 @@
1
1
  import { helpers } from '@vuelidate/validators'
2
- import type { Ymd } from '../../support/Day'
2
+ import { type Ymd } from '../../support/Day'
3
3
  import { ymd as baseYmd } from '../validators/ymd'
4
4
 
5
5
  type YmdType = 'y' | 'm' | 'd'
@@ -1,4 +1,4 @@
1
- import type { Hms } from '../../support/Day'
1
+ import { type Hms } from '../../support/Day'
2
2
 
3
3
  type HmsType = 'h' | 'm' | 's'
4
4
 
@@ -1,4 +1,4 @@
1
- import type { Hms } from '../../support/Day'
1
+ import { type Hms } from '../../support/Day'
2
2
 
3
3
  type HmsType = 'h' | 'm' | 's'
4
4
 
@@ -1,4 +1,4 @@
1
- import type { Ymd } from '../../support/Day'
1
+ import { type Ymd } from '../../support/Day'
2
2
 
3
3
  type YmdType = 'y' | 'm' | 'd'
4
4
 
@@ -1,5 +1,5 @@
1
1
  import day from 'dayjs'
2
- import type { Ymd } from '../../support/Day'
2
+ import { type Ymd } from '../../support/Day'
3
3
 
4
4
  type YmdType = 'y' | 'm' | 'd'
5
5
 
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@globalbrain/sefirot",
3
- "version": "2.32.0",
4
- "packageManager": "pnpm@7.26.2",
3
+ "version": "2.34.0",
4
+ "packageManager": "pnpm@8.3.1",
5
5
  "description": "Vue Components for Global Brain Design System.",
6
6
  "author": "Kia Ishii <ka.ishii@globalbrains.com>",
7
7
  "license": "MIT",
@@ -47,7 +47,7 @@
47
47
  "dayjs": "^1.11.7"
48
48
  },
49
49
  "devDependencies": {
50
- "@globalbrain/eslint-config": "^1.3.0",
50
+ "@globalbrain/eslint-config": "^1.5.0",
51
51
  "@histoire/plugin-vue": "^0.15.8",
52
52
  "@iconify-icons/ph": "^1.2.3",
53
53
  "@iconify/vue": "^4.0.2",
@@ -65,11 +65,11 @@
65
65
  "chalk": "^4.1.2",
66
66
  "conventional-changelog-cli": "^2.2.2",
67
67
  "enquirer": "^2.3.6",
68
- "eslint": "^8.35.0",
68
+ "eslint": "^8.40.0",
69
69
  "execa": "^5.1.1",
70
70
  "fuse.js": "^6.6.2",
71
+ "happy-dom": "^9.9.2",
71
72
  "histoire": "^0.15.8",
72
- "jsdom": "^21.1.1",
73
73
  "lodash-es": "^4.17.21",
74
74
  "markdown-it": "^13.0.1",
75
75
  "normalize.css": "^8.0.1",