@hina-ui/vue 1.2.0 → 1.3.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 (99) hide show
  1. package/dist/index.js +880 -347
  2. package/dist/index.js.map +1 -1
  3. package/dist/types/components/alert-dialog/AlertDialog.vue.d.ts +6 -2
  4. package/dist/types/components/alert-dialog/AlertDialog.vue.d.ts.map +1 -1
  5. package/dist/types/components/alert-dialog/alert-dialog.variants.d.ts +5 -0
  6. package/dist/types/components/alert-dialog/alert-dialog.variants.d.ts.map +1 -0
  7. package/dist/types/components/alert-dialog/composables/useAlertDialogConfirm.d.ts +9 -0
  8. package/dist/types/components/alert-dialog/composables/useAlertDialogConfirm.d.ts.map +1 -0
  9. package/dist/types/components/alert-dialog/composables/useConfirmDelay.d.ts +3 -0
  10. package/dist/types/components/alert-dialog/composables/useConfirmDelay.d.ts.map +1 -0
  11. package/dist/types/components/anchor/Anchor.vue.d.ts.map +1 -1
  12. package/dist/types/components/code-block/CodeBlock.vue.d.ts.map +1 -1
  13. package/dist/types/components/code-block/code-block.variants.d.ts +6 -0
  14. package/dist/types/components/code-block/code-block.variants.d.ts.map +1 -0
  15. package/dist/types/components/code-block/composables/useCodeHighlight.d.ts +7 -0
  16. package/dist/types/components/code-block/composables/useCodeHighlight.d.ts.map +1 -0
  17. package/dist/types/components/dialog/Dialog.vue.d.ts.map +1 -1
  18. package/dist/types/components/dialog/ModalContent.vue.d.ts +21 -0
  19. package/dist/types/components/dialog/ModalContent.vue.d.ts.map +1 -0
  20. package/dist/types/components/dropdown-menu/DropdownMenu.vue.d.ts +18 -6
  21. package/dist/types/components/dropdown-menu/DropdownMenu.vue.d.ts.map +1 -1
  22. package/dist/types/components/file-upload/FileUpload.vue.d.ts +1 -1
  23. package/dist/types/components/file-upload/FileUpload.vue.d.ts.map +1 -1
  24. package/dist/types/components/highlight/Highlight.vue.d.ts +2 -0
  25. package/dist/types/components/highlight/Highlight.vue.d.ts.map +1 -1
  26. package/dist/types/components/highlight/composables/useHighlightMotion.d.ts +10 -0
  27. package/dist/types/components/highlight/composables/useHighlightMotion.d.ts.map +1 -0
  28. package/dist/types/components/image/Image.vue.d.ts +5 -2
  29. package/dist/types/components/image/Image.vue.d.ts.map +1 -1
  30. package/dist/types/components/image/composables/useImage.d.ts.map +1 -1
  31. package/dist/types/components/image/image.variants.d.ts +23 -1
  32. package/dist/types/components/image/image.variants.d.ts.map +1 -1
  33. package/dist/types/components/lightbox/LightboxThumbs.vue.d.ts.map +1 -1
  34. package/dist/types/components/lightbox/composables/useLightboxMotion.d.ts.map +1 -1
  35. package/dist/types/components/lightbox/composables/useLightboxPose.d.ts.map +1 -1
  36. package/dist/types/components/lightbox/utils/clip.d.ts +16 -0
  37. package/dist/types/components/lightbox/utils/clip.d.ts.map +1 -0
  38. package/dist/types/components/lightbox/utils/pose.d.ts +2 -2
  39. package/dist/types/components/lightbox/utils/pose.d.ts.map +1 -1
  40. package/dist/types/components/popover/Popover.vue.d.ts +19 -6
  41. package/dist/types/components/popover/Popover.vue.d.ts.map +1 -1
  42. package/dist/types/components/popover/PopoverContent.vue.d.ts +29 -0
  43. package/dist/types/components/popover/PopoverContent.vue.d.ts.map +1 -0
  44. package/dist/types/components/popover/composables/usePopoverCloseFocus.d.ts +2 -0
  45. package/dist/types/components/popover/composables/usePopoverCloseFocus.d.ts.map +1 -0
  46. package/dist/types/components/scroll-area/ScrollArea.vue.d.ts.map +1 -1
  47. package/dist/types/components/scroll-area/composables/useLayerLock.d.ts.map +1 -1
  48. package/dist/types/components/scroll-area/composables/useScrollFocus.d.ts +17 -0
  49. package/dist/types/components/scroll-area/composables/useScrollFocus.d.ts.map +1 -0
  50. package/dist/types/components/segmented-control/SegmentedControl.vue.d.ts.map +1 -1
  51. package/dist/types/components/tabs/TabsTrigger.vue.d.ts.map +1 -1
  52. package/dist/types/index.d.ts +2 -0
  53. package/dist/types/index.d.ts.map +1 -1
  54. package/dist/types/lib/anchored-overlay.d.ts +19 -0
  55. package/dist/types/lib/anchored-overlay.d.ts.map +1 -0
  56. package/dist/types/lib/dialog-focus.d.ts +2 -0
  57. package/dist/types/lib/dialog-focus.d.ts.map +1 -0
  58. package/dist/types/lib/overlay-portal.d.ts +6 -0
  59. package/dist/types/lib/overlay-portal.d.ts.map +1 -0
  60. package/package.json +1 -1
  61. package/src/components/alert-dialog/AlertDialog.vue +31 -40
  62. package/src/components/alert-dialog/alert-dialog.variants.ts +17 -0
  63. package/src/components/alert-dialog/composables/useAlertDialogConfirm.ts +29 -0
  64. package/src/components/alert-dialog/composables/useConfirmDelay.ts +37 -0
  65. package/src/components/anchor/Anchor.vue +1 -0
  66. package/src/components/code-block/CodeBlock.vue +15 -30
  67. package/src/components/code-block/code-block.variants.ts +21 -0
  68. package/src/components/code-block/composables/useCodeHighlight.ts +30 -0
  69. package/src/components/dialog/Dialog.vue +7 -4
  70. package/src/components/dialog/ModalContent.vue +19 -0
  71. package/src/components/dropdown-menu/DropdownMenu.vue +16 -4
  72. package/src/components/highlight/Highlight.vue +5 -4
  73. package/src/components/highlight/composables/useHighlightMotion.ts +22 -0
  74. package/src/components/image/Image.vue +9 -12
  75. package/src/components/image/composables/useImage.ts +6 -3
  76. package/src/components/image/image.variants.ts +13 -1
  77. package/src/components/lightbox/LightboxThumbs.vue +1 -0
  78. package/src/components/lightbox/composables/useLightboxMotion.ts +3 -1
  79. package/src/components/lightbox/composables/useLightboxPose.ts +5 -2
  80. package/src/components/lightbox/utils/clip.ts +117 -0
  81. package/src/components/lightbox/utils/pose.ts +23 -13
  82. package/src/components/popover/Popover.vue +26 -6
  83. package/src/components/popover/PopoverContent.vue +25 -0
  84. package/src/components/popover/composables/usePopoverCloseFocus.ts +17 -0
  85. package/src/components/scroll-area/ScrollArea.vue +7 -5
  86. package/src/components/scroll-area/composables/useLayerLock.ts +8 -9
  87. package/src/components/scroll-area/composables/useScrollFocus.ts +39 -0
  88. package/src/components/scroll-area/composables/useWheelRedirect.ts +1 -1
  89. package/src/components/segmented-control/SegmentedControl.vue +6 -1
  90. package/src/components/skeleton/LICENSE +24 -0
  91. package/src/components/tabs/TabsTrigger.vue +6 -1
  92. package/src/index.ts +2 -0
  93. package/src/lib/anchored-overlay.ts +107 -0
  94. package/src/lib/dialog-focus.ts +13 -0
  95. package/src/lib/overlay-portal.ts +8 -0
  96. package/src/styles/interaction.css +26 -3
  97. package/src/styles/motion.css +14 -2
  98. package/src/styles/semantic.css +5 -1
  99. package/src/styles/typography.css +9 -4
@@ -214,6 +214,8 @@ export { default as Spoiler } from './components/spoiler/Spoiler.vue';
214
214
  export { default as Skeleton } from './components/skeleton/Skeleton.vue';
215
215
  export { default as Image } from './components/image/Image.vue';
216
216
  export { default as ImageGroup } from './components/image/ImageGroup.vue';
217
+ export { default as Lightbox } from './components/lightbox/Lightbox.vue';
218
+ export type { LightboxItem } from './components/lightbox/types';
217
219
  export { provideImageResolver, useImageResolver } from './components/image/resolver';
218
220
  export type { ImageResolver } from './components/image/resolver';
219
221
  export type { ImageVariants } from './components/image/image.variants';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ import { type Ref } from 'vue';
2
+ import { type DropdownMenuContentEmits } from 'reka-ui';
3
+ export declare function useAnchoredOverlay(props: {
4
+ anchor?: HTMLElement | null;
5
+ modal: boolean;
6
+ }, open: Ref<boolean | undefined>, emit: <K extends keyof DropdownMenuContentEmits>(event: K, ...args: DropdownMenuContentEmits[K]) => void, openAutoFocus?: (event: Event) => void): {
7
+ trigger: (ref: Element | import("vue").ComponentPublicInstance | null) => void;
8
+ reference: import("vue").ComputedRef<HTMLElement>;
9
+ visible: import("vue").WritableComputedRef<boolean, boolean>;
10
+ events: {
11
+ onCloseAutoFocus: (event: Event) => void;
12
+ onInteractOutside: (event: import("reka-ui").PointerDownOutsideEvent | import("reka-ui").FocusOutsideEvent) => void;
13
+ onPointerDownOutside: (event: import("reka-ui").PointerDownOutsideEvent) => void;
14
+ onFocusOutside: (event: import("reka-ui").FocusOutsideEvent) => void;
15
+ onEscapeKeyDown: (event: KeyboardEvent) => void;
16
+ onOpenAutoFocus?: ((event: Event) => void) | undefined;
17
+ };
18
+ };
19
+ //# sourceMappingURL=anchored-overlay.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"anchored-overlay.d.ts","sourceRoot":"","sources":["../../../src/lib/anchored-overlay.ts"],"names":[],"mappings":"AAAA,OAAO,EAAyC,KAAK,GAAG,EAAE,MAAM,KAAK,CAAA;AACrE,OAAO,EAAoB,KAAK,wBAAwB,EAAE,MAAM,SAAS,CAAA;AAEzE,wBAAgB,kBAAkB,CAChC,KAAK,EAAE;IAAE,MAAM,CAAC,EAAE,WAAW,GAAG,IAAI,CAAC;IAAC,KAAK,EAAE,OAAO,CAAA;CAAE,EACtD,IAAI,EAAE,GAAG,CAAC,OAAO,GAAG,SAAS,CAAC,EAC9B,IAAI,EAAE,CAAC,CAAC,SAAS,MAAM,wBAAwB,EAC7C,KAAK,EAAE,CAAC,EACR,GAAG,IAAI,EAAE,wBAAwB,CAAC,CAAC,CAAC,KACjC,IAAI,EACT,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI;;;;;;;;;;;;EAgGvC"}
@@ -0,0 +1,2 @@
1
+ export declare function useDialogCloseFocus(onCloseAutoFocus: (event: Event) => void): (event: Event) => void;
2
+ //# sourceMappingURL=dialog-focus.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dialog-focus.d.ts","sourceRoot":"","sources":["../../../src/lib/dialog-focus.ts"],"names":[],"mappings":"AAEA,wBAAgB,mBAAmB,CAAC,gBAAgB,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,IAGlE,OAAO,KAAK,UAOrB"}
@@ -0,0 +1,6 @@
1
+ import { type ComponentPublicInstance, type Ref } from 'vue';
2
+ export declare function useOverlayPortal(open: Ref<boolean | undefined>): {
3
+ content: import("vue").ShallowRef<ComponentPublicInstance | null, ComponentPublicInstance | null>;
4
+ present: import("vue").ComputedRef<boolean>;
5
+ };
6
+ //# sourceMappingURL=overlay-portal.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"overlay-portal.d.ts","sourceRoot":"","sources":["../../../src/lib/overlay-portal.ts"],"names":[],"mappings":"AAAA,OAAO,EAAwB,KAAK,uBAAuB,EAAE,KAAK,GAAG,EAAE,MAAM,KAAK,CAAA;AAElF,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,GAAG,CAAC,OAAO,GAAG,SAAS,CAAC;;;EAK9D"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hina-ui/vue",
3
- "version": "1.2.0",
3
+ "version": "1.3.1",
4
4
  "description": "An elegant, restrained Vue 3 component library built on Reka UI and Tailwind CSS v4.",
5
5
  "keywords": [
6
6
  "vue",
@@ -1,8 +1,6 @@
1
1
  <script setup lang="ts">
2
- import { ref } from 'vue'
3
2
  import {
4
3
  AlertDialogCancel,
5
- AlertDialogContent,
6
4
  AlertDialogDescription,
7
5
  AlertDialogOverlay,
8
6
  AlertDialogPortal,
@@ -10,13 +8,23 @@
10
8
  AlertDialogTitle,
11
9
  AlertDialogTrigger,
12
10
  } from 'reka-ui'
11
+ import { useOverlayPortal } from '../../lib/overlay-portal'
13
12
  import { cn } from '../../lib/cn'
14
13
  import { useUiLocale } from '../../locale'
14
+ import ModalContent from '../dialog/ModalContent.vue'
15
15
  import Button from '../button/Button.vue'
16
16
  import Card from '../card/Card.vue'
17
17
  import { dialogCard, dialogWrapper } from '../dialog/dialog.variants'
18
18
  import Heading from '../heading/Heading.vue'
19
19
  import Text from '../text/Text.vue'
20
+ import { useAlertDialogConfirm } from './composables/useAlertDialogConfirm'
21
+ import { useConfirmDelay } from './composables/useConfirmDelay'
22
+ import {
23
+ alertDialogHeader,
24
+ alertDialogContent,
25
+ alertDialogActions,
26
+ alertDialogCountdown,
27
+ } from './alert-dialog.variants'
20
28
 
21
29
  defineOptions({ name: 'HnAlertDialog' })
22
30
 
@@ -25,6 +33,7 @@
25
33
  title: string
26
34
  description?: string
27
35
  confirmText?: string
36
+ confirmDelay?: number
28
37
  cancelText?: string
29
38
  tone?: 'accent' | 'danger'
30
39
  size?: 'sm' | 'md'
@@ -32,31 +41,20 @@
32
41
  onConfirm?: () => unknown
33
42
  class?: string
34
43
  }>(),
35
- { tone: 'accent', size: 'sm' },
44
+ { tone: 'accent', size: 'sm', confirmDelay: 0 },
36
45
  )
37
- const emit = defineEmits<{ cancel: [] }>()
46
+ const emit = defineEmits<{ cancel: []; error: [error: unknown] }>()
38
47
 
39
48
  const open = defineModel<boolean>('open')
40
- const busy = ref(false)
49
+ const { content, present } = useOverlayPortal(open)
41
50
  const t = useUiLocale()
42
-
43
- function guard(event: Event) {
44
- if (busy.value) event.preventDefault()
45
- }
46
-
47
- async function confirm() {
48
- if (busy.value) return
49
- const result = props.onConfirm?.()
50
- if (result instanceof Promise) {
51
- busy.value = true
52
- try {
53
- await result
54
- } finally {
55
- busy.value = false
56
- }
57
- }
58
- open.value = false
59
- }
51
+ const remaining = useConfirmDelay(open, () => props.confirmDelay)
52
+ const { busy, guard, confirm } = useAlertDialogConfirm(
53
+ props,
54
+ open,
55
+ error => emit('error', error),
56
+ () => remaining.value > 0,
57
+ )
60
58
  </script>
61
59
 
62
60
  <template>
@@ -64,31 +62,23 @@
64
62
  <AlertDialogTrigger v-if="$slots.default" as-child>
65
63
  <slot />
66
64
  </AlertDialogTrigger>
67
- <AlertDialogPortal>
65
+ <AlertDialogPortal v-if="present">
68
66
  <AlertDialogOverlay class="hn-scrim" />
69
- <div
70
- :class="
71
- cn(
72
- 'pointer-events-none fixed inset-0 z-(--hn-z-overlay) grid',
73
- dialogWrapper({ placement: props.placement ?? 'auto' }),
74
- )
75
- "
76
- >
77
- <AlertDialogContent as-child @escape-key-down="guard">
67
+ <div :class="dialogWrapper({ placement: props.placement ?? 'auto' })">
68
+ <ModalContent alert as-child @escape-key-down="guard">
78
69
  <Card
70
+ ref="content"
79
71
  :padded="false"
80
72
  data-hn-alert-dialog
81
73
  :aria-busy="busy || undefined"
82
74
  :class="
83
75
  cn(
84
- 'pointer-events-auto flex w-full flex-col gap-4 shadow-lg outline-none',
85
- 'py-(--hn-panel-p)',
86
76
  dialogCard({ placement: props.placement ?? 'auto', size: props.size }),
87
77
  props.class,
88
78
  )
89
79
  "
90
80
  >
91
- <div class="flex min-w-0 flex-col gap-1.5 px-(--hn-panel-p)">
81
+ <div :class="alertDialogHeader()">
92
82
  <AlertDialogTitle as-child>
93
83
  <Heading :level="2" size="lg">{{ props.title }}</Heading>
94
84
  </AlertDialogTitle>
@@ -96,21 +86,22 @@
96
86
  <Text tone="muted">{{ props.description }}</Text>
97
87
  </AlertDialogDescription>
98
88
  </div>
99
- <div v-if="$slots.content" class="px-(--hn-panel-p)">
89
+ <div v-if="$slots.content" :class="alertDialogContent()">
100
90
  <slot name="content" />
101
91
  </div>
102
- <div class="flex justify-end gap-(--hn-inline-gap) px-(--hn-panel-p)">
92
+ <div :class="alertDialogActions()">
103
93
  <AlertDialogCancel as-child>
104
94
  <Button variant="soft" tone="neutral" :disabled="busy" @click="emit('cancel')">
105
95
  {{ props.cancelText ?? t.common.cancel }}
106
96
  </Button>
107
97
  </AlertDialogCancel>
108
- <Button :tone="props.tone" :loading="busy" @click="confirm">
98
+ <Button :tone="props.tone" :loading="busy" :disabled="remaining > 0" @click="confirm">
109
99
  {{ props.confirmText ?? t.common.confirm }}
100
+ <span v-if="remaining > 0" :class="alertDialogCountdown()">({{ remaining }})</span>
110
101
  </Button>
111
102
  </div>
112
103
  </Card>
113
- </AlertDialogContent>
104
+ </ModalContent>
114
105
  </div>
115
106
  </AlertDialogPortal>
116
107
  </AlertDialogRoot>
@@ -0,0 +1,17 @@
1
+ import { tv } from '../../lib/tv'
2
+
3
+ export const alertDialogHeader = tv({
4
+ base: 'flex min-w-0 flex-col gap-1.5 px-(--hn-panel-p)',
5
+ })
6
+
7
+ export const alertDialogContent = tv({
8
+ base: 'px-(--hn-panel-p)',
9
+ })
10
+
11
+ export const alertDialogActions = tv({
12
+ base: 'flex justify-end gap-(--hn-inline-gap) px-(--hn-panel-p)',
13
+ })
14
+
15
+ export const alertDialogCountdown = tv({
16
+ base: 'tabular-nums',
17
+ })
@@ -0,0 +1,29 @@
1
+ import { ref, type Ref } from 'vue'
2
+
3
+ export function useAlertDialogConfirm(
4
+ props: { onConfirm?: () => unknown },
5
+ open: Ref<boolean | undefined>,
6
+ onError: (error: unknown) => void,
7
+ blocked: () => boolean = () => false,
8
+ ) {
9
+ const busy = ref(false)
10
+
11
+ function guard(event: Event) {
12
+ if (busy.value) event.preventDefault()
13
+ }
14
+
15
+ async function confirm() {
16
+ if (!open.value || busy.value || blocked()) return
17
+ busy.value = true
18
+ try {
19
+ await props.onConfirm?.()
20
+ open.value = false
21
+ } catch (error) {
22
+ onError(error)
23
+ } finally {
24
+ busy.value = false
25
+ }
26
+ }
27
+
28
+ return { busy, guard, confirm }
29
+ }
@@ -0,0 +1,37 @@
1
+ import { onMounted, onScopeDispose, ref, watch, type Ref } from 'vue'
2
+
3
+ export function useConfirmDelay(open: Ref<boolean | undefined>, delay: () => number) {
4
+ const remaining = ref(0)
5
+ let mounted = false
6
+ let timer: ReturnType<typeof setTimeout> | undefined
7
+
8
+ function stop() {
9
+ clearTimeout(timer)
10
+ timer = undefined
11
+ }
12
+
13
+ function restart() {
14
+ stop()
15
+ if (!open.value) return
16
+ const seconds = Math.ceil(delay())
17
+ remaining.value = Number.isFinite(seconds) && seconds > 0 ? seconds : 0
18
+ if (!mounted || !remaining.value) return
19
+
20
+ const deadline = performance.now() + remaining.value * 1000
21
+ function tick() {
22
+ const milliseconds = deadline - performance.now()
23
+ remaining.value = Math.max(0, Math.ceil(milliseconds / 1000))
24
+ timer = remaining.value > 0 ? setTimeout(tick, Math.min(1000, milliseconds)) : undefined
25
+ }
26
+ tick()
27
+ }
28
+
29
+ watch([open, delay], restart, { immediate: true, flush: 'sync' })
30
+ onMounted(() => {
31
+ mounted = true
32
+ restart()
33
+ })
34
+ onScopeDispose(stop)
35
+
36
+ return remaining
37
+ }
@@ -43,6 +43,7 @@
43
43
  <Highlight
44
44
  v-if="span"
45
45
  as="li"
46
+ axis="y"
46
47
  role="presentation"
47
48
  :style="{ gridRow: span }"
48
49
  class="bg-accent col-start-1 -ms-px w-0.5 self-stretch justify-self-start rounded-full"
@@ -1,12 +1,17 @@
1
1
  <script setup lang="ts">
2
- import { computed, onMounted, shallowRef, watch } from 'vue'
3
- import type { ThemedToken } from 'shiki/core'
2
+ import { computed } from 'vue'
4
3
  import { cn } from '../../lib/cn'
5
- import { devWarn } from '../../lib/dev'
6
4
  import { useUiLocale } from '../../locale'
7
5
  import CopyButton from '../copy-button/CopyButton.vue'
8
6
  import ScrollArea from '../scroll-area/ScrollArea.vue'
9
- import { tokenize } from './highlighter'
7
+ import { useCodeHighlight } from './composables/useCodeHighlight'
8
+ import {
9
+ codeBlock,
10
+ codeBlockArea,
11
+ codeBlockContent,
12
+ codeBlockActions,
13
+ codeBlockLabel,
14
+ } from './code-block.variants'
10
15
 
11
16
  defineOptions({ name: 'HnCodeBlock' })
12
17
 
@@ -25,38 +30,18 @@
25
30
  const t = useUiLocale()
26
31
  const tag = computed(() => props.label ?? props.lang)
27
32
 
28
- const tokens = shallowRef<ThemedToken[][] | null>(null)
29
-
30
- onMounted(() => {
31
- watch(
32
- () => [props.code, props.lang, props.html] as const,
33
- async ([code, lang, html]) => {
34
- if (html || !lang) {
35
- tokens.value = null
36
- return
37
- }
38
- try {
39
- const result = await tokenize(code, lang)
40
- if (code === props.code && lang === props.lang) tokens.value = result
41
- } catch (error) {
42
- tokens.value = null
43
- devWarn('CodeBlock', `着色管线失败,已退回素文本(lang="${lang}"):${String(error)}`, lang)
44
- }
45
- },
46
- { immediate: true },
47
- )
48
- })
33
+ const tokens = useCodeHighlight(props)
49
34
  </script>
50
35
 
51
36
  <template>
52
- <div :data-lang="props.lang" :class="cn('relative', props.class)">
53
- <ScrollArea direction="horizontal" focusable :label="tag" class="hn-pre">
37
+ <div :data-lang="props.lang" :class="cn(codeBlock(), props.class)">
38
+ <ScrollArea direction="both" focusable :label="tag" :class="codeBlockArea()">
54
39
  <pre
55
- class="m-0"
40
+ :class="codeBlockContent()"
56
41
  ><code v-if="props.html" v-html="props.html"></code><code v-else-if="tokens"><template v-for="(line, i) of tokens" :key="i">{{ i ? '\n' : '' }}<span v-for="(tk, j) of line" :key="j" :style="tk.htmlStyle">{{ tk.content }}</span></template></code><code v-else>{{ code }}</code></pre>
57
42
  </ScrollArea>
58
- <div class="absolute top-2 end-2 flex items-center gap-2">
59
- <span v-if="tag" class="text-faint font-mono text-xs select-none">{{ tag }}</span>
43
+ <div :class="codeBlockActions()">
44
+ <span v-if="tag" :class="codeBlockLabel()">{{ tag }}</span>
60
45
  <CopyButton v-if="copyable" :text="props.code" :label="t.codeblock.copy" />
61
46
  </div>
62
47
  </div>
@@ -0,0 +1,21 @@
1
+ import { tv } from '../../lib/tv'
2
+
3
+ export const codeBlock = tv({
4
+ base: 'relative flex min-h-0 min-w-0 flex-col',
5
+ })
6
+
7
+ export const codeBlockArea = tv({
8
+ base: 'hn-pre min-h-0 grow p-0',
9
+ })
10
+
11
+ export const codeBlockContent = tv({
12
+ base: 'hn-pre-content m-0 w-max min-w-full',
13
+ })
14
+
15
+ export const codeBlockActions = tv({
16
+ base: 'absolute top-2 end-2 flex items-center gap-2',
17
+ })
18
+
19
+ export const codeBlockLabel = tv({
20
+ base: 'text-faint font-mono text-xs select-none',
21
+ })
@@ -0,0 +1,30 @@
1
+ import { onMounted, shallowRef, watch } from 'vue'
2
+ import type { ThemedToken } from 'shiki/core'
3
+ import { devWarn } from '../../../lib/dev'
4
+ import { tokenize } from '../highlighter'
5
+
6
+ export function useCodeHighlight(props: { code: string; lang?: string; html?: string }) {
7
+ const tokens = shallowRef<ThemedToken[][] | null>(null)
8
+
9
+ onMounted(() => {
10
+ watch(
11
+ () => [props.code, props.lang, props.html] as const,
12
+ async ([code, lang, html]) => {
13
+ if (html || !lang) {
14
+ tokens.value = null
15
+ return
16
+ }
17
+ try {
18
+ const result = await tokenize(code, lang)
19
+ if (code === props.code && lang === props.lang) tokens.value = result
20
+ } catch (error) {
21
+ tokens.value = null
22
+ devWarn('CodeBlock', `着色管线失败,已退回素文本(lang="${lang}"):${String(error)}`, lang)
23
+ }
24
+ },
25
+ { immediate: true },
26
+ )
27
+ })
28
+
29
+ return tokens
30
+ }
@@ -4,16 +4,17 @@
4
4
  DialogTrigger,
5
5
  DialogPortal,
6
6
  DialogOverlay,
7
- DialogContent,
8
7
  DialogTitle,
9
8
  DialogDescription,
10
9
  DialogClose,
11
10
  } from 'reka-ui'
11
+ import ModalContent from './ModalContent.vue'
12
12
  import CloseButton from '../close-button/CloseButton.vue'
13
13
  import Card from '../card/Card.vue'
14
14
  import ScrollArea from '../scroll-area/ScrollArea.vue'
15
15
  import Heading from '../heading/Heading.vue'
16
16
  import Text from '../text/Text.vue'
17
+ import { useOverlayPortal } from '../../lib/overlay-portal'
17
18
  import { cn } from '../../lib/cn'
18
19
  import { dialogWrapper, dialogCard, type DialogVariants } from './dialog.variants'
19
20
 
@@ -47,6 +48,7 @@
47
48
  }
48
49
 
49
50
  const open = defineModel<boolean>('open')
51
+ const { content, present } = useOverlayPortal(open)
50
52
 
51
53
  function close() {
52
54
  open.value = false
@@ -58,11 +60,12 @@
58
60
  <DialogTrigger v-if="$slots.default" as-child>
59
61
  <slot />
60
62
  </DialogTrigger>
61
- <DialogPortal>
63
+ <DialogPortal v-if="present">
62
64
  <DialogOverlay class="hn-scrim" />
63
65
  <div :class="dialogWrapper({ placement: props.placement ?? 'auto' })">
64
- <DialogContent as-child @escape-key-down="guard" @interact-outside="guard">
66
+ <ModalContent as-child @escape-key-down="guard" @interact-outside="guard">
65
67
  <Card
68
+ ref="content"
66
69
  v-bind="props.description ? {} : { 'aria-describedby': undefined }"
67
70
  :padded="false"
68
71
  :class="
@@ -127,7 +130,7 @@
127
130
  </div>
128
131
  </template>
129
132
  </Card>
130
- </DialogContent>
133
+ </ModalContent>
131
134
  </div>
132
135
  </DialogPortal>
133
136
  </DialogRoot>
@@ -0,0 +1,19 @@
1
+ <script setup lang="ts">
2
+ import { AlertDialogContent, DialogContent } from 'reka-ui'
3
+ import { useDialogCloseFocus } from '../../lib/dialog-focus'
4
+
5
+ defineOptions({ name: 'HnModalContent' })
6
+
7
+ const props = defineProps<{ alert?: boolean }>()
8
+ const emit = defineEmits<{ closeAutoFocus: [event: Event] }>()
9
+ const closeAutoFocus = useDialogCloseFocus(event => emit('closeAutoFocus', event))
10
+ </script>
11
+
12
+ <template>
13
+ <component
14
+ :is="props.alert ? AlertDialogContent : DialogContent"
15
+ @close-auto-focus="closeAutoFocus"
16
+ >
17
+ <slot />
18
+ </component>
19
+ </template>
@@ -5,24 +5,32 @@
5
5
  DropdownMenuTrigger,
6
6
  DropdownMenuPortal,
7
7
  DropdownMenuContent,
8
+ type DropdownMenuContentEmits,
8
9
  } from 'reka-ui'
10
+ import { useAnchoredOverlay } from '../../lib/anchored-overlay'
9
11
  import Card from '../card/Card.vue'
10
12
  import { cn } from '../../lib/cn'
11
13
 
12
- defineOptions({ name: 'HnDropdownMenu' })
14
+ defineOptions({ name: 'HnDropdownMenu', inheritAttrs: false })
13
15
 
14
16
  const props = withDefaults(
15
17
  defineProps<{
16
18
  label?: string
19
+ anchor?: HTMLElement | null
20
+ modal?: boolean
21
+ dir?: 'ltr' | 'rtl'
17
22
  side?: 'top' | 'right' | 'bottom' | 'left'
18
23
  align?: 'start' | 'center' | 'end'
19
24
  sideOffset?: number
20
25
  class?: string
21
26
  }>(),
22
- { side: 'bottom', align: 'center', sideOffset: 8 },
27
+ { side: 'bottom', align: 'center', sideOffset: 8, modal: true },
23
28
  )
24
29
 
25
30
  const open = defineModel<boolean>('open')
31
+ const emit = defineEmits<DropdownMenuContentEmits>()
32
+ defineSlots<{ default?(): unknown; content?(): unknown }>()
33
+ const { trigger, reference, visible, events } = useAnchoredOverlay(props, open, emit)
26
34
 
27
35
  const pressOrigin = computed(() => {
28
36
  if (props.side === 'left') return 'right'
@@ -34,8 +42,10 @@
34
42
  </script>
35
43
 
36
44
  <template>
37
- <DropdownMenuRoot v-model:open="open" modal>
45
+ <DropdownMenuRoot v-model:open="visible" :modal="props.modal" :dir="props.dir">
38
46
  <DropdownMenuTrigger
47
+ v-if="$slots.default"
48
+ :ref="trigger"
39
49
  as-child
40
50
  class="group/hn-disclosure"
41
51
  :style="{ transformOrigin: pressOrigin }"
@@ -44,8 +54,10 @@
44
54
  </DropdownMenuTrigger>
45
55
  <DropdownMenuPortal>
46
56
  <DropdownMenuContent
57
+ v-if="reference"
58
+ v-bind="{ 'aria-label': props.label, ...$attrs, ...events }"
59
+ :reference="reference"
47
60
  as-child
48
- :aria-label="props.label"
49
61
  :side="props.side"
50
62
  :align="props.align"
51
63
  :side-offset="props.sideOffset"
@@ -1,21 +1,21 @@
1
1
  <script setup lang="ts">
2
- import { computed } from 'vue'
3
2
  import { Motion } from 'motion-v'
4
3
  import { cn } from '../../lib/cn'
5
- import { TRANSITION, prefersReducedMotion } from '../../motion'
4
+ import { useHighlightMotion } from './composables/useHighlightMotion'
6
5
 
7
6
  defineOptions({ name: 'HnHighlight' })
8
7
 
9
8
  const props = withDefaults(
10
9
  defineProps<{
11
10
  id?: string
11
+ axis?: 'x' | 'y' | 'both'
12
12
  as?: 'div' | 'li'
13
13
  class?: string
14
14
  }>(),
15
- { id: undefined, as: 'div' },
15
+ { id: undefined, axis: 'both', as: 'div' },
16
16
  )
17
17
 
18
- const transition = computed(() => (prefersReducedMotion() ? { duration: 0 } : TRANSITION.layout))
18
+ const { transition, transformTemplate } = useHighlightMotion(() => props.axis)
19
19
  </script>
20
20
 
21
21
  <template>
@@ -26,6 +26,7 @@
26
26
  aria-hidden="true"
27
27
  data-hn-highlight
28
28
  :transition="transition"
29
+ :transform-template="transformTemplate"
29
30
  :class="cn('pointer-events-none', props.class)"
30
31
  />
31
32
  </template>