@soybeanjs/headless 0.19.0 → 0.21.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 (170) hide show
  1. package/README.md +46 -0
  2. package/README.zh-CN.md +46 -0
  3. package/dist/components/alert/alert-compact.vue.d.ts +2 -2
  4. package/dist/components/anchor/anchor-root.vue.d.ts +1 -1
  5. package/dist/components/autocomplete/autocomplete-compact.vue.d.ts +2 -2
  6. package/dist/components/autocomplete/autocomplete-root.js +1 -1
  7. package/dist/components/autocomplete/autocomplete-root.vue.d.ts +4 -4
  8. package/dist/components/backtop/backtop.vue.d.ts +2 -2
  9. package/dist/components/bottom-sheet/bottom-sheet-compact.js +1 -1
  10. package/dist/components/bottom-sheet/bottom-sheet-root-nested.js +1 -1
  11. package/dist/components/bottom-sheet/bottom-sheet-root-nested.vue.d.ts +2 -2
  12. package/dist/components/bottom-sheet/bottom-sheet-root.js +1 -1
  13. package/dist/components/calendar-range/calendar-range-root.vue.d.ts +7 -7
  14. package/dist/components/card/card-root.vue.d.ts +1 -1
  15. package/dist/components/card/types.d.ts +2 -2
  16. package/dist/components/clipboard/clipboard.vue.d.ts +1 -1
  17. package/dist/components/collapsible/collapsible-root.vue.d.ts +1 -1
  18. package/dist/components/color-area/color-area-compact.vue.d.ts +2 -2
  19. package/dist/components/color-area/color-area-root.vue.d.ts +2 -2
  20. package/dist/components/color-field/color-field-root.vue.d.ts +2 -2
  21. package/dist/components/color-picker/color-picker-compact.vue.d.ts +4 -4
  22. package/dist/components/color-picker/color-picker-root.vue.d.ts +2 -2
  23. package/dist/components/color-slider/color-slider-compact.vue.d.ts +2 -2
  24. package/dist/components/color-slider/color-slider-root.vue.d.ts +3 -3
  25. package/dist/components/color-swatch-picker/color-swatch-picker-root.js +1 -1
  26. package/dist/components/color-swatch-picker/types.d.ts +2 -2
  27. package/dist/components/combobox/combobox-compact.vue.d.ts +3 -3
  28. package/dist/components/combobox/combobox-content-impl.js +1 -1
  29. package/dist/components/combobox/combobox-root.js +1 -1
  30. package/dist/components/combobox/combobox-root.vue.d.ts +2 -2
  31. package/dist/components/config-provider/config-provider.js +14 -2
  32. package/dist/components/config-provider/config-provider.vue.d.ts +0 -2
  33. package/dist/components/config-provider/types.d.ts +1 -1
  34. package/dist/components/context-menu/context-menu-checkbox-compact.vue.d.ts +2 -2
  35. package/dist/components/context-menu/context-menu-radio-compact.vue.d.ts +2 -2
  36. package/dist/components/date-field/date-field-root.vue.d.ts +2 -2
  37. package/dist/components/date-picker/date-picker-compact.js +1 -1
  38. package/dist/components/date-picker/date-picker-compact.vue.d.ts +10 -10
  39. package/dist/components/date-range-field/date-range-field-root.vue.d.ts +2 -2
  40. package/dist/components/date-range-picker/date-range-picker-compact.vue.d.ts +9 -9
  41. package/dist/components/dialog/dialog-compact.js +1 -1
  42. package/dist/components/dialog/dialog-compact.vue.d.ts +5 -5
  43. package/dist/components/dialog/dialog-popup-impl.js +1 -1
  44. package/dist/components/dialog/dialog-root.js +1 -1
  45. package/dist/components/dialog/state.js +1 -1
  46. package/dist/components/dialog/types.d.ts +5 -1
  47. package/dist/components/dropdown-menu/dropdown-menu-checkbox-compact.vue.d.ts +2 -2
  48. package/dist/components/dropdown-menu/dropdown-menu-content.vue.d.ts +1 -1
  49. package/dist/components/dropdown-menu/dropdown-menu-radio-compact.vue.d.ts +2 -2
  50. package/dist/components/editable/editable-root.vue.d.ts +1 -1
  51. package/dist/components/editable/types.d.ts +2 -2
  52. package/dist/components/hover-card/hover-card-compact.js +1 -1
  53. package/dist/components/hover-card/hover-card-compact.vue.d.ts +0 -1
  54. package/dist/components/hover-card/hover-card-root.vue.d.ts +1 -1
  55. package/dist/components/hover-card/types.d.ts +2 -2
  56. package/dist/components/input-otp/input-otp-compact.vue.d.ts +4 -4
  57. package/dist/components/input-otp/input-otp-root.vue.d.ts +4 -4
  58. package/dist/components/layout/layout-classic-compact.vue.d.ts +1 -1
  59. package/dist/components/layout/layout-compact.vue.d.ts +1 -1
  60. package/dist/components/layout/layout-root.vue.d.ts +1 -1
  61. package/dist/components/listbox/listbox-root.js +1 -1
  62. package/dist/components/menubar/menubar-compact.vue.d.ts +2 -2
  63. package/dist/components/menubar/menubar-content.js +1 -1
  64. package/dist/components/menubar/menubar-root.js +1 -1
  65. package/dist/components/navigation-menu/context.js +1 -1
  66. package/dist/components/navigation-menu/index.d.ts +3 -3
  67. package/dist/components/navigation-menu/index.js +1 -1
  68. package/dist/components/navigation-menu/navigation-menu-compact.js +1 -1
  69. package/dist/components/navigation-menu/navigation-menu-indicator.js +1 -1
  70. package/dist/components/navigation-menu/navigation-menu-item-slot-compact.js +1 -0
  71. package/dist/components/navigation-menu/navigation-menu-list.js +1 -1
  72. package/dist/components/navigation-menu/navigation-menu-option-compact.js +1 -0
  73. package/dist/components/navigation-menu/navigation-menu-root.js +1 -1
  74. package/dist/components/navigation-menu/navigation-menu-root.vue.d.ts +1 -2
  75. package/dist/components/navigation-menu/navigation-menu-sub-option-compact.js +1 -0
  76. package/dist/components/navigation-menu/navigation-menu-viewport.js +1 -1
  77. package/dist/components/navigation-menu/shared.js +1 -1
  78. package/dist/components/navigation-menu/types.d.ts +93 -54
  79. package/dist/components/page-tabs/page-tabs-compact.vue.d.ts +2 -2
  80. package/dist/components/pagination/pagination-first.js +1 -1
  81. package/dist/components/pagination/pagination-last.js +1 -1
  82. package/dist/components/pagination/pagination-next.js +1 -1
  83. package/dist/components/pagination/pagination-prev.js +1 -1
  84. package/dist/components/pagination/types.d.ts +10 -10
  85. package/dist/components/popconfirm/popconfirm-compact.vue.d.ts +4 -4
  86. package/dist/components/popover/popover-compact.vue.d.ts +1 -1
  87. package/dist/components/popper/popper-positioner.vue.d.ts +1 -1
  88. package/dist/components/progress/state.js +1 -1
  89. package/dist/components/progress/types.d.ts +4 -4
  90. package/dist/components/radio-group/context.d.ts +3 -2
  91. package/dist/components/radio-group/context.js +1 -1
  92. package/dist/components/radio-group/index.d.ts +10 -9
  93. package/dist/components/radio-group/index.js +1 -1
  94. package/dist/components/radio-group/radio-group-card-compact.js +1 -0
  95. package/dist/components/radio-group/radio-group-card-compact.vue.d.ts +21 -0
  96. package/dist/components/radio-group/radio-group-compact.js +1 -1
  97. package/dist/components/radio-group/radio-group-compact.vue.d.ts +4 -5
  98. package/dist/components/radio-group/radio-group-root.vue.d.ts +5 -5
  99. package/dist/components/radio-group/types.d.ts +67 -13
  100. package/dist/components/scroll-area/types.d.ts +2 -2
  101. package/dist/components/select/select-compact.vue.d.ts +2 -2
  102. package/dist/components/select/select-root.vue.d.ts +2 -2
  103. package/dist/components/separator/types.d.ts +2 -2
  104. package/dist/components/slider/types.d.ts +2 -2
  105. package/dist/components/splitter/splitter-panel.vue.d.ts +2 -2
  106. package/dist/components/stepper/types.d.ts +2 -2
  107. package/dist/components/switch/switch-compact.js +1 -1
  108. package/dist/components/switch/switch-root.js +1 -1
  109. package/dist/components/switch/types.d.ts +3 -1
  110. package/dist/components/tabs/tabs-indicator.js +1 -1
  111. package/dist/components/tabs/tabs-root.vue.d.ts +1 -1
  112. package/dist/components/tags-input/tags-input-compact.vue.d.ts +2 -2
  113. package/dist/components/tags-input/tags-input-root.vue.d.ts +2 -2
  114. package/dist/components/time-field/time-field-root.vue.d.ts +1 -1
  115. package/dist/components/time-range-field/time-range-field-root.vue.d.ts +1 -1
  116. package/dist/components/toast/state.js +1 -1
  117. package/dist/components/toast/toaster.vue.d.ts +1 -1
  118. package/dist/components/toolbar/toolbar-link.js +1 -1
  119. package/dist/components/toolbar/toolbar-link.vue.d.ts +1 -2
  120. package/dist/components/toolbar/toolbar-root.js +1 -1
  121. package/dist/components/toolbar/toolbar-separator.js +1 -1
  122. package/dist/components/toolbar/toolbar-toggle-group.js +1 -1
  123. package/dist/components/toolbar/types.d.ts +7 -2
  124. package/dist/components/tooltip/tooltip-compact.vue.d.ts +1 -1
  125. package/dist/components/tooltip/tooltip-root.vue.d.ts +1 -1
  126. package/dist/components/tooltip/types.d.ts +2 -2
  127. package/dist/components/tree-menu/tree-menu-root.vue.d.ts +1 -1
  128. package/dist/constants/components.js +1 -1
  129. package/dist/index.d.ts +135 -134
  130. package/dist/index.js +1 -1
  131. package/dist/locale/index.d.ts +4 -4
  132. package/dist/locale/index.js +1 -1
  133. package/dist/locale/langs/ar.d.ts +6 -0
  134. package/dist/locale/langs/ar.js +1 -0
  135. package/dist/locale/langs/de.d.ts +6 -0
  136. package/dist/locale/langs/de.js +1 -0
  137. package/dist/locale/langs/en.d.ts +3 -3
  138. package/dist/locale/langs/en.js +1 -1
  139. package/dist/locale/langs/es.d.ts +6 -0
  140. package/dist/locale/langs/es.js +1 -0
  141. package/dist/locale/langs/fr.d.ts +6 -0
  142. package/dist/locale/langs/fr.js +1 -0
  143. package/dist/locale/langs/id.d.ts +6 -0
  144. package/dist/locale/langs/id.js +1 -0
  145. package/dist/locale/langs/ja.d.ts +6 -0
  146. package/dist/locale/langs/ja.js +1 -0
  147. package/dist/locale/langs/ko.d.ts +6 -0
  148. package/dist/locale/langs/ko.js +1 -0
  149. package/dist/locale/langs/pt-BR.d.ts +6 -0
  150. package/dist/locale/langs/pt-BR.js +1 -0
  151. package/dist/locale/langs/ru.d.ts +6 -0
  152. package/dist/locale/langs/ru.js +1 -0
  153. package/dist/locale/langs/tr.d.ts +6 -0
  154. package/dist/locale/langs/tr.js +1 -0
  155. package/dist/locale/langs/zh-CN.d.ts +3 -3
  156. package/dist/locale/langs/zh-CN.js +1 -1
  157. package/dist/locale/langs/zh-TW.d.ts +6 -0
  158. package/dist/locale/langs/zh-TW.js +1 -0
  159. package/dist/locale/locales.d.ts +27 -9
  160. package/dist/locale/locales.js +1 -1
  161. package/dist/locale/types.d.ts +8 -1
  162. package/dist/namespaced/index.d.ts +268 -266
  163. package/dist/namespaced/index.js +1 -1
  164. package/dist/types/common.d.ts +2 -1
  165. package/dist/types/index.d.ts +2 -2
  166. package/package.json +5 -5
  167. /package/dist/_virtual/{_@oxc-project_runtime@0.127.0 → _@oxc-project_runtime@0.129.0}/helpers/defineProperty.js +0 -0
  168. /package/dist/_virtual/{_@oxc-project_runtime@0.127.0 → _@oxc-project_runtime@0.129.0}/helpers/toPrimitive.js +0 -0
  169. /package/dist/_virtual/{_@oxc-project_runtime@0.127.0 → _@oxc-project_runtime@0.129.0}/helpers/toPropertyKey.js +0 -0
  170. /package/dist/_virtual/{_@oxc-project_runtime@0.127.0 → _@oxc-project_runtime@0.129.0}/helpers/typeof.js +0 -0
@@ -18,24 +18,24 @@ declare const __VLS_base: _$vue.DefineComponent<InputOtpRootProps, {
18
18
  }, {}, {}, {}, _$vue.ComponentOptionsMixin, _$vue.ComponentOptionsMixin, {
19
19
  input: (value: string) => any;
20
20
  select: (event: Event) => any;
21
- change: (event: Event) => any;
21
+ "update:modelValue": (value: string) => any;
22
22
  blur: (event: FocusEvent) => any;
23
+ change: (event: Event) => any;
23
24
  focus: (event: FocusEvent) => any;
24
25
  mouseleave: (event: MouseEvent) => any;
25
26
  mouseover: (event: MouseEvent) => any;
26
27
  paste: (event: ClipboardEvent) => any;
27
- "update:modelValue": (value: string) => any;
28
28
  complete: (value: string) => any;
29
29
  }, string, _$vue.PublicProps, Readonly<InputOtpRootProps> & Readonly<{
30
30
  onInput?: ((value: string) => any) | undefined;
31
31
  onSelect?: ((event: Event) => any) | undefined;
32
- onChange?: ((event: Event) => any) | undefined;
32
+ "onUpdate:modelValue"?: ((value: string) => any) | undefined;
33
33
  onBlur?: ((event: FocusEvent) => any) | undefined;
34
+ onChange?: ((event: Event) => any) | undefined;
34
35
  onFocus?: ((event: FocusEvent) => any) | undefined;
35
36
  onMouseleave?: ((event: MouseEvent) => any) | undefined;
36
37
  onMouseover?: ((event: MouseEvent) => any) | undefined;
37
38
  onPaste?: ((event: ClipboardEvent) => any) | undefined;
38
- "onUpdate:modelValue"?: ((value: string) => any) | undefined;
39
39
  onComplete?: ((value: string) => any) | undefined;
40
40
  }>, {
41
41
  autocomplete: string;
@@ -10,8 +10,8 @@ declare const __VLS_base: _$vue.DefineComponent<LayoutClassicCompactProps, {}, {
10
10
  "onUpdate:open"?: ((open: boolean) => any) | undefined;
11
11
  }>, {
12
12
  orientation: DataOrientation;
13
- defaultOpen: boolean;
14
13
  open: boolean;
14
+ defaultOpen: boolean;
15
15
  sidebarVisible: boolean;
16
16
  headerVisible: boolean;
17
17
  tabVisible: boolean;
@@ -8,8 +8,8 @@ declare const __VLS_base: _$vue.DefineComponent<LayoutCompactProps, {}, {}, {},
8
8
  }, string, _$vue.PublicProps, Readonly<LayoutCompactProps> & Readonly<{
9
9
  "onUpdate:open"?: ((open: boolean) => any) | undefined;
10
10
  }>, {
11
- defaultOpen: boolean;
12
11
  open: boolean;
12
+ defaultOpen: boolean;
13
13
  sidebarVisible: boolean;
14
14
  headerVisible: boolean;
15
15
  tabVisible: boolean;
@@ -15,8 +15,8 @@ declare const __VLS_base: _$vue.DefineComponent<LayoutRootProps, {}, {}, {}, {},
15
15
  "onUpdate:open"?: ((open: boolean) => any) | undefined;
16
16
  }>, {
17
17
  collapsible: LayoutCollapsible;
18
- defaultOpen: boolean;
19
18
  open: boolean;
19
+ defaultOpen: boolean;
20
20
  side: LayoutSide;
21
21
  variant: LayoutVariant;
22
22
  pxToRem: (px: number) => number;
@@ -1 +1 @@
1
- import{isFormControl as e,transformPropsToContext as t}from"../../shared/vue.js";import"../../shared/index.js";import{useSelection as n}from"../../composables/use-selection.js";import"../../composables/index.js";import{provideListboxRootContext as r,useListboxUi as i}from"./context.js";import a from"../visually-hidden/visually-hidden-input.js";import{computed as o,createBlock as s,createCommentVNode as c,createElementBlock as l,defineComponent as u,nextTick as d,normalizeClass as f,openBlock as p,renderSlot as m,unref as h,watch as g}from"vue";const _=[`data-disabled`,`dir`],v=u({name:`ListboxRoot`,__name:`listbox-root`,props:{orientation:{default:`vertical`},dir:{},disabled:{type:Boolean},highlightOnHover:{type:Boolean},modelValue:{default:void 0},defaultValue:{},multiple:{},clearable:{type:Boolean,default:!0},selectionBehavior:{default:`toggle`},name:{},required:{type:Boolean}},emits:[`update:modelValue`,`highlight`,`entryFocus`,`leave`],setup(u,{expose:v,emit:y}){let b=u,x=y,S=i(`root`),{modelValue:C,isMultiple:w,onModelValueChange:T}=n(b,e=>{x(`update:modelValue`,e)}),{rootElement:E,setRootElement:D,isUserAction:O,highlightedElement:k,highlightSelected:A,highlightFirstItem:j,highlightItem:M,getItems:N}=r({...t(b,[`dir`,`orientation`,`disabled`,`highlightOnHover`,`selectionBehavior`]),modelValue:C,isMultiple:w,onModelValueChange:T,onHighlight(e){x(`highlight`,e)},onEntryFocus(e){x(`entryFocus`,e)},onLeave(e){x(`leave`,e)}}),P=o(()=>e(E.value));return g(C,()=>{O.value||d(()=>{A()})},{immediate:!0,deep:!0}),v({highlightedElement:k,highlightItem:M,highlightFirstItem:j,highlightSelected:A,getItems:N}),(e,t)=>(p(),l(`div`,{ref:h(D),"data-soybean-listbox-root":``,class:f(h(S)),"data-disabled":u.disabled?``:void 0,dir:u.dir,onPointerleave:t[0]||(t[0]=(...t)=>e.onLeave&&e.onLeave(...t)),onFocusout:t[1]||(t[1]=(...t)=>e.onFocusout&&e.onFocusout(...t))},[m(e.$slots,`default`,{modelValue:h(C)}),P.value&&u.name?(p(),s(a,{key:0,name:u.name,value:h(C),disabled:u.disabled,required:u.required},null,8,[`name`,`value`,`disabled`,`required`])):c(`v-if`,!0)],42,_))}});export{v as default};
1
+ import{isFormControl as e,transformPropsToContext as t}from"../../shared/vue.js";import{useDirection as n}from"../config-provider/context.js";import"../../shared/index.js";import{useSelection as r}from"../../composables/use-selection.js";import"../../composables/index.js";import{provideListboxRootContext as i,useListboxUi as a}from"./context.js";import o from"../visually-hidden/visually-hidden-input.js";import{computed as s,createBlock as c,createCommentVNode as l,createElementBlock as u,defineComponent as d,nextTick as f,normalizeClass as p,openBlock as m,renderSlot as h,unref as g,watch as _}from"vue";const v=[`data-disabled`,`dir`],y=d({name:`ListboxRoot`,__name:`listbox-root`,props:{orientation:{default:`vertical`},dir:{},disabled:{type:Boolean},highlightOnHover:{type:Boolean},modelValue:{default:void 0},defaultValue:{},multiple:{},clearable:{type:Boolean,default:!0},selectionBehavior:{default:`toggle`},name:{},required:{type:Boolean}},emits:[`update:modelValue`,`highlight`,`entryFocus`,`leave`],setup(d,{expose:y,emit:b}){let x=d,S=b,C=a(`root`),w=n(()=>x.dir),{modelValue:T,isMultiple:E,onModelValueChange:D}=r(x,e=>{S(`update:modelValue`,e)}),{rootElement:O,setRootElement:k,isUserAction:A,highlightedElement:j,highlightSelected:M,highlightFirstItem:N,highlightItem:P,getItems:F}=i({...t(x,[`orientation`,`disabled`,`highlightOnHover`,`selectionBehavior`]),dir:w,modelValue:T,isMultiple:E,onModelValueChange:D,onHighlight(e){S(`highlight`,e)},onEntryFocus(e){S(`entryFocus`,e)},onLeave(e){S(`leave`,e)}}),I=s(()=>e(O.value));return _(T,()=>{A.value||f(()=>{M()})},{immediate:!0,deep:!0}),y({highlightedElement:j,highlightItem:P,highlightFirstItem:N,highlightSelected:M,getItems:F}),(e,t)=>(m(),u(`div`,{ref:g(k),"data-soybean-listbox-root":``,class:p(g(C)),"data-disabled":d.disabled?``:void 0,dir:g(w),onPointerleave:t[0]||(t[0]=(...t)=>e.onLeave&&e.onLeave(...t)),onFocusout:t[1]||(t[1]=(...t)=>e.onFocusout&&e.onFocusout(...t))},[h(e.$slots,`default`,{modelValue:g(T)}),I.value&&d.name?(m(),c(o,{key:0,name:d.name,value:g(T),disabled:d.disabled,required:d.required},null,8,[`name`,`value`,`disabled`,`required`])):l(`v-if`,!0)],42,v))}});export{y as default};
@@ -8,8 +8,8 @@ import * as _$vue from "vue";
8
8
  declare const __VLS_export: <T extends DefinedValue = DefinedValue>(__VLS_props: NonNullable<Awaited<typeof __VLS_setup>>["props"], __VLS_ctx?: __VLS_PrettifyLocal<Pick<NonNullable<Awaited<typeof __VLS_setup>>, "attrs" | "emit" | "slots">>, __VLS_exposed?: NonNullable<Awaited<typeof __VLS_setup>>["expose"], __VLS_setup?: Promise<{
9
9
  props: _$vue.PublicProps & __VLS_PrettifyLocal<MenubarCompactProps<T> & {
10
10
  onSelect?: ((item: MenuOptionData<T>, event: Event) => any) | undefined;
11
- "onUpdate:open"?: ((value: boolean) => any) | undefined;
12
11
  "onUpdate:modelValue"?: ((value: T) => any) | undefined;
12
+ "onUpdate:open"?: ((value: boolean) => any) | undefined;
13
13
  onEntryFocus?: ((event: Event) => any) | undefined;
14
14
  onEscapeKeyDown?: ((event: KeyboardEvent) => any) | undefined;
15
15
  onPointerDownOutside?: ((event: PointerDownOutsideEvent) => any) | undefined;
@@ -23,7 +23,7 @@ declare const __VLS_export: <T extends DefinedValue = DefinedValue>(__VLS_props:
23
23
  expose: (exposed: {}) => void;
24
24
  attrs: any;
25
25
  slots: MenubarCompactSlots<T>;
26
- emit: ((evt: "select", item: MenuOptionData<T>, event: Event) => void) & ((evt: "update:open", value: boolean) => void) & ((evt: "update:modelValue", value: T) => void) & ((evt: "entryFocus", event: Event) => void) & ((evt: "escapeKeyDown", event: KeyboardEvent) => void) & ((evt: "pointerDownOutside", event: PointerDownOutsideEvent) => void) & ((evt: "focusOutside", event: FocusOutsideEvent) => void) & ((evt: "interactOutside", event: PointerDownOutsideEvent | FocusOutsideEvent) => void) & ((evt: "openAutoFocus", event: Event) => void) & ((evt: "closeAutoFocus", event: Event) => void);
26
+ emit: ((evt: "select", item: MenuOptionData<T>, event: Event) => void) & ((evt: "update:modelValue", value: T) => void) & ((evt: "update:open", value: boolean) => void) & ((evt: "entryFocus", event: Event) => void) & ((evt: "escapeKeyDown", event: KeyboardEvent) => void) & ((evt: "pointerDownOutside", event: PointerDownOutsideEvent) => void) & ((evt: "focusOutside", event: FocusOutsideEvent) => void) & ((evt: "interactOutside", event: PointerDownOutsideEvent | FocusOutsideEvent) => void) & ((evt: "openAutoFocus", event: Event) => void) & ((evt: "closeAutoFocus", event: Event) => void);
27
27
  }>) => _$vue.VNode & {
28
28
  __ctx?: Awaited<typeof __VLS_setup>;
29
29
  };
@@ -1 +1 @@
1
- import{wrapArray as e}from"../../shared/object.js";import"../../shared/index.js";import{useForwardListeners as t}from"../../composables/use-forward-listeners.js";import"../../composables/index.js";import n from"../menu/menu-content.js";import"../menu/index.js";import{useMenubarCollectionContext as r,useMenubarMenuContext as i,useMenubarRootContext as a}from"./context.js";import{isTriggerLink as o}from"./shared.js";import{createBlock as s,defineComponent as c,mergeProps as l,openBlock as u,renderSlot as d,shallowRef as f,toHandlers as p,unref as m,withCtx as h,withKeys as g}from"vue";const _=c({name:`MenubarContent`,__name:`menubar-content`,props:{popupProps:{},placement:{},side:{},sideOffset:{},sideFlip:{type:Boolean},align:{default:`start`},alignOffset:{},alignFlip:{type:Boolean},avoidCollisions:{type:Boolean},collisionBoundary:{},collisionPadding:{},arrowPadding:{},hideShiftedArrow:{type:Boolean},sticky:{},hideWhenDetached:{type:Boolean},positionStrategy:{},updatePositionStrategy:{},disableUpdateOnLayoutShift:{type:Boolean},prioritizePosition:{type:Boolean},reference:{},forceMount:{type:Boolean},loop:{type:Boolean}},emits:[`escapeKeyDown`,`pointerDownOutside`,`focusOutside`,`interactOutside`,`openAutoFocus`,`closeAutoFocus`,`entryFocus`],setup(c,{emit:_}){let v=c,y=t(_),{dir:b,loop:x,modelValue:S,onMenuOpen:C,setTriggerLink:w}=a(`MenubarContent`),{value:T,triggerId:E,contentId:D,triggerElement:O,wasKeyboardTriggerOpen:k}=i(`MenubarContent`),{getOrderedItems:A}=r(`MenubarContent`),j=f(!1),M=e=>{!S.value&&!j.value&&O.value?.focus(),j.value=!1,e.preventDefault()},N=e=>{let t=e.target;A().some(e=>e.element.contains(t))&&e.preventDefault()},P=()=>{j.value=!0},F=e=>{k.value||e.preventDefault()},I=t=>{let n=t.target.hasAttribute(`data-soybean-menubar-sub-trigger`),r=b.value===`rtl`?`ArrowRight`:`ArrowLeft`,i=t.key===r;if(!i&&n)return;let a=A(),s=a.map(e=>e.data.value);i&&s.reverse();let c=s.findIndex(e=>e===T.value),l=(x.value?e(s,c+1):s.slice(c+1))[0],u=a.find(e=>e.data.value===l);!l||!u||(o(u.element)?(w(),u.element.focus()):C(l))};return(e,t)=>(u(),s(m(n),l(v,{id:m(D),"data-soybean-menubar-content":``,"aria-labelledby":m(E)},p(m(y)),{onCloseAutoFocus:M,onFocusOutside:N,onInteractOutside:P,onEntryFocus:F,onKeydown:g(I,[`arrow-right`,`arrow-left`])}),{default:h(()=>[d(e.$slots,`default`)]),_:3},16,[`id`,`aria-labelledby`]))}});export{_ as default};
1
+ import{wrapArray as e}from"../../shared/object.js";import"../../shared/index.js";import{useForwardListeners as t}from"../../composables/use-forward-listeners.js";import"../../composables/index.js";import n from"../menu/menu-content.js";import"../menu/index.js";import{useMenubarCollectionContext as r,useMenubarMenuContext as i,useMenubarRootContext as a}from"./context.js";import{isTriggerLink as o}from"./shared.js";import{createBlock as s,defineComponent as c,mergeProps as l,openBlock as u,renderSlot as d,shallowRef as f,toHandlers as p,unref as m,withCtx as h,withKeys as g}from"vue";const _=c({name:`MenubarContent`,__name:`menubar-content`,props:{popupProps:{},placement:{},side:{},sideOffset:{},sideFlip:{type:Boolean},align:{default:`start`},alignOffset:{},alignFlip:{type:Boolean},avoidCollisions:{type:Boolean},collisionBoundary:{},collisionPadding:{},arrowPadding:{},hideShiftedArrow:{type:Boolean},sticky:{},hideWhenDetached:{type:Boolean},positionStrategy:{},updatePositionStrategy:{},disableUpdateOnLayoutShift:{type:Boolean},prioritizePosition:{type:Boolean},reference:{},forceMount:{type:Boolean},loop:{type:Boolean}},emits:[`escapeKeyDown`,`pointerDownOutside`,`focusOutside`,`interactOutside`,`openAutoFocus`,`closeAutoFocus`,`entryFocus`],setup(c,{emit:_}){let v=c,y=t(_),{dir:b,isLinkTriggerHovered:x,loop:S,modelValue:C,onMenuOpen:w,setTriggerLink:T}=a(`MenubarContent`),{value:E,triggerId:D,contentId:O,triggerElement:k,wasKeyboardTriggerOpen:A}=i(`MenubarContent`),{getOrderedItems:j}=r(`MenubarContent`),M=f(!1),N=e=>{!C.value&&!M.value&&!x.value&&k.value?.focus(),M.value=!1,e.preventDefault()},P=e=>{let t=e.target;j().some(e=>e.element.contains(t))&&e.preventDefault()},F=()=>{M.value=!0},I=e=>{A.value||e.preventDefault()},L=t=>{let n=t.target.hasAttribute(`data-soybean-menubar-sub-trigger`),r=b.value===`rtl`?`ArrowRight`:`ArrowLeft`,i=t.key===r;if(!i&&n)return;let a=j(),s=a.map(e=>e.data.value);i&&s.reverse();let c=s.findIndex(e=>e===E.value),l=(S.value?e(s,c+1):s.slice(c+1))[0],u=a.find(e=>e.data.value===l);!l||!u||(o(u.element)?(T(),u.element.focus()):w(l))};return(e,t)=>(u(),s(m(n),l(v,{id:m(O),"data-soybean-menubar-content":``,"aria-labelledby":m(D)},p(m(y)),{onCloseAutoFocus:N,onFocusOutside:P,onInteractOutside:F,onEntryFocus:I,onKeydown:g(L,[`arrow-right`,`arrow-left`])}),{default:h(()=>[d(e.$slots,`default`)]),_:3},16,[`id`,`aria-labelledby`]))}});export{_ as default};
@@ -1 +1 @@
1
- import{transformPropsToContext as e}from"../../shared/vue.js";import"../../shared/index.js";import{useControllableState as t}from"../../composables/use-controllable-state.js";import{useForwardElement as n}from"../../composables/use-forward-element.js";import{useOmitProps as r}from"../../composables/use-props.js";import"../../composables/index.js";import{Primitive as i}from"../primitive/primitive.js";import"../primitive/index.js";import a from"../roving-focus/roving-focus-group.js";import"../roving-focus/index.js";import{provideMenubarCollectionContext as o,provideMenubarRootContext as s,useMenubarUi as c}from"./context.js";import{computed as l,createBlock as u,createVNode as d,defineComponent as f,mergeProps as p,openBlock as m,renderSlot as h,shallowRef as g,unref as _,withCtx as v}from"vue";const y=f({name:`MenubarRoot`,__name:`menubar-root`,props:{modelValue:{default:void 0},defaultValue:{},dir:{},loop:{type:Boolean,default:!1},asChild:{type:Boolean},as:{}},emits:[`update:modelValue`],setup(f,{emit:y}){let b=f,x=y,S=c(`root`),C=r(b,[`class`,`modelValue`,`defaultValue`,`dir`,`loop`]),w=l(()=>[S.value,b.class]),T=t(()=>b.modelValue,e=>{x(`update:modelValue`,e)},b.defaultValue??``),E=g(null);s({modelValue:T,currentTabStopId:E,...e(b,[`dir`,`loop`])});let{onContainerElementChange:D}=o(),[O,k]=n(D);return(e,t)=>(m(),u(_(a),{"current-tab-stop-id":E.value,"onUpdate:currentTabStopId":t[0]||(t[0]=e=>E.value=e),"as-child":``,orientation:`horizontal`,dir:f.dir,loop:f.loop},{default:v(()=>[d(_(i),p(_(C),{ref:_(k),as:f.as,"as-child":f.asChild,"data-soybean-menubar-root":``,class:w.value,role:`menubar`,dir:f.dir}),{default:v(()=>[h(e.$slots,`default`,{modelValue:_(T)})]),_:3},16,[`as`,`as-child`,`class`,`dir`])]),_:3},8,[`current-tab-stop-id`,`dir`,`loop`]))}});export{y as default};
1
+ import{transformPropsToContext as e}from"../../shared/vue.js";import"../../shared/index.js";import{useControllableState as t}from"../../composables/use-controllable-state.js";import{useForwardElement as n}from"../../composables/use-forward-element.js";import{useOmitProps as r}from"../../composables/use-props.js";import"../../composables/index.js";import{Primitive as i}from"../primitive/primitive.js";import"../primitive/index.js";import a from"../roving-focus/roving-focus-group.js";import"../roving-focus/index.js";import{provideMenubarCollectionContext as o,provideMenubarRootContext as s,useMenubarUi as c}from"./context.js";import{createBlock as l,createVNode as u,defineComponent as d,mergeProps as f,openBlock as p,renderSlot as m,shallowRef as h,unref as g,withCtx as _}from"vue";const v=d({name:`MenubarRoot`,__name:`menubar-root`,props:{modelValue:{default:void 0},defaultValue:{},dir:{},loop:{type:Boolean,default:!1},asChild:{type:Boolean},as:{}},emits:[`update:modelValue`],setup(d,{emit:v}){let y=d,b=v,x=c(`root`),S=r(y,[`class`,`modelValue`,`defaultValue`,`dir`,`loop`]),C=t(()=>y.modelValue,e=>{b(`update:modelValue`,e)},y.defaultValue??``),w=h(null);s({modelValue:C,currentTabStopId:w,...e(y,[`dir`,`loop`])});let{onContainerElementChange:T}=o(),[E,D]=n(T);return(e,t)=>(p(),l(g(a),{"current-tab-stop-id":w.value,"onUpdate:currentTabStopId":t[0]||(t[0]=e=>w.value=e),"as-child":``,orientation:`horizontal`,dir:d.dir,loop:d.loop},{default:_(()=>[u(g(i),f(g(S),{ref:g(D),as:d.as,"as-child":d.asChild,"data-soybean-menubar-root":``,class:g(x),role:`menubar`,dir:d.dir}),{default:_(()=>[m(e.$slots,`default`,{modelValue:g(C)})]),_:3},16,[`as`,`as-child`,`class`,`dir`])]),_:3},8,[`current-tab-stop-id`,`dir`,`loop`]))}});export{v as default};
@@ -1 +1 @@
1
- import{getDisclosureState as e}from"../../shared/value.js";import{useContext as t}from"../../composables/use-context.js";import{useDirection as n}from"../config-provider/context.js";import"../../shared/index.js";import{useCollection as r}from"../../composables/use-collection.js";import{useForwardElement as i}from"../../composables/use-forward-element.js";import{useUiContext as a}from"../../composables/use-ui-context.js";import"../../composables/index.js";import{EVENT_ROOT_CONTENT_DISMISS as o}from"./shared.js";import{computed as s,shallowRef as c}from"vue";import{refAutoReset as l,useDebounceFn as u,useEventListener as d}from"@vueuse/core";const[f,p]=t(`NavigationMenuRoot`,e=>{let{modelValue:t,skipDelayDuration:r,delayDuration:a,disablePointerLeaveClose:f}=e,p=n(e.dir),m=c(),h=e=>{m.value=e},[g,_]=i(),[v,y]=i(),b=c(),x=e=>{b.value=e},S=c(new Set),C=e=>{S.value.add(e)},w=e=>{S.value.delete(e)},T=s(()=>S.value.has(t.value)),E=c(``),D=l(!1,r.value),O=u(e=>{typeof e==`string`&&(E.value=t.value,t.value=e)},s(()=>t.value!==``||D.value?150:a.value)),k=e=>{O(e)},A=()=>{D.value=!0,O(``)},j=e=>{O(e)},M=()=>{f.value||O(``)},N=e=>{E.value=t.value,t.value=e},P=()=>{E.value=t.value,t.value=``};return d(m,o,P),{...e,dir:p,baseId:`soybean-navigation-menu`,rootElement:m,onRootElementChange:h,viewportElement:g,setViewportElement:_,indicatorTrackElement:v,setIndicatorTrackElement:y,activeTriggerElement:b,values:S,addValue:C,removeValue:w,open:T,previousValue:E,onActiveTriggerElementChange:x,onTriggerEnter:k,onTriggerLeave:A,onContentEnter:j,onContentLeave:M,onItemSelect:N,onItemDismiss:P}}),{provideCollectionContext:m,useCollectionContext:h,useCollectionItem:g}=r(`NavigationMenu`),[_,v]=t(`NavigationMenuItem`,t=>{let[n,r]=i(),{modelValue:a,value:o}=t,l=c(),u=e=>{l.value=e},d=c(!1),f=s(()=>a.value===o),p=s(()=>e(f.value));return{...t,triggerElement:l,onTriggerElementChange:u,focusProxyElement:n,setFocusProxyElement:r,wasEscapeCloseRef:d,open:f,dataState:p}}),[y,b]=a(`NavigationMenuUi`);export{m as provideCollectionContext,_ as provideNavigationMenuItemContext,f as provideNavigationMenuRootContext,y as provideNavigationMenuUi,h as useCollectionContext,g as useCollectionItem,v as useNavigationMenuItemContext,p as useNavigationMenuRootContext,b as useNavigationMenuUi};
1
+ import{getDisclosureState as e}from"../../shared/value.js";import{useContext as t}from"../../composables/use-context.js";import"../../shared/index.js";import{useCollection as n}from"../../composables/use-collection.js";import{useForwardElement as r}from"../../composables/use-forward-element.js";import{useUiContext as i}from"../../composables/use-ui-context.js";import"../../composables/index.js";import{EVENT_ROOT_CONTENT_DISMISS as a}from"./shared.js";import{computed as o,shallowRef as s}from"vue";import{refAutoReset as c,useDebounceFn as l,useEventListener as u}from"@vueuse/core";const[d,f]=t(`NavigationMenuRoot`,e=>{let{modelValue:t,skipDelayDuration:n,delayDuration:i,disablePointerLeaveClose:d}=e,f=s(),p=e=>{f.value=e},[m,h]=r(),[g,_]=r(),v=s(),y=e=>{v.value=e},b=s(new Set),x=e=>{b.value.add(e)},S=e=>{b.value.delete(e)},C=o(()=>b.value.has(t.value)),w=s(``),T=c(!1,n.value),E=l(e=>{typeof e==`string`&&(w.value=t.value,t.value=e)},o(()=>t.value!==``||T.value?150:i.value)),D=e=>{E(e)},O=()=>{T.value=!0,E(``)},k=e=>{E(e)},A=()=>{d.value||E(``)},j=e=>{w.value=t.value,t.value=e},M=()=>{w.value=t.value,t.value=``};return u(f,a,M),{...e,baseId:`soybean-navigation-menu`,rootElement:f,onRootElementChange:p,viewportElement:m,setViewportElement:h,indicatorTrackElement:g,setIndicatorTrackElement:_,activeTriggerElement:v,values:b,addValue:x,removeValue:S,open:C,previousValue:w,onActiveTriggerElementChange:y,onTriggerEnter:D,onTriggerLeave:O,onContentEnter:k,onContentLeave:A,onItemSelect:j,onItemDismiss:M}}),{provideCollectionContext:p,useCollectionContext:m,useCollectionItem:h}=n(`NavigationMenu`),[g,_]=t(`NavigationMenuItem`,t=>{let[n,i]=r(),{modelValue:a,value:c}=t,l=s(),u=e=>{l.value=e},d=s(!1),f=o(()=>a.value===c),p=o(()=>e(f.value));return{...t,triggerElement:l,onTriggerElementChange:u,focusProxyElement:n,setFocusProxyElement:i,wasEscapeCloseRef:d,open:f,dataState:p}}),[v,y]=i(`NavigationMenuUi`);export{p as provideCollectionContext,g as provideNavigationMenuItemContext,d as provideNavigationMenuRootContext,v as provideNavigationMenuUi,m as useCollectionContext,h as useCollectionItem,_ as useNavigationMenuItemContext,f as useNavigationMenuRootContext,y as useNavigationMenuUi};
@@ -1,4 +1,5 @@
1
- import { NavigationMenuCompactEmits, NavigationMenuCompactProps, NavigationMenuCompactSlots, NavigationMenuContentEmits, NavigationMenuContentProps, NavigationMenuIndicatorProps, NavigationMenuItemData, NavigationMenuItemProps, NavigationMenuLinkEmits, NavigationMenuLinkProps, NavigationMenuListProps, NavigationMenuRootEmits, NavigationMenuRootProps, NavigationMenuSubEmits, NavigationMenuSubListProps, NavigationMenuSubProps, NavigationMenuTriggerProps, NavigationMenuUi, NavigationMenuUiSlot, NavigationMenuViewportProps } from "./types.js";
1
+ import { NavigationMenuCompactEmits, NavigationMenuCompactProps, NavigationMenuCompactSlots, NavigationMenuContentEmits, NavigationMenuContentProps, NavigationMenuIndicatorProps, NavigationMenuItemProps, NavigationMenuLinkEmits, NavigationMenuLinkProps, NavigationMenuListProps, NavigationMenuOptionData, NavigationMenuRootEmits, NavigationMenuRootProps, NavigationMenuSubEmits, NavigationMenuSubListProps, NavigationMenuSubProps, NavigationMenuTriggerProps, NavigationMenuUi, NavigationMenuUiSlot, NavigationMenuViewportProps } from "./types.js";
2
+ import { _default } from "./navigation-menu-compact.vue.js";
2
3
  import { _default as _default$6 } from "./navigation-menu-root.vue.js";
3
4
  import { _default as _default$5 } from "./navigation-menu-list.vue.js";
4
5
  import { _default as _default$3 } from "./navigation-menu-item.vue.js";
@@ -8,6 +9,5 @@ import { _default as _default$4 } from "./navigation-menu-link.vue.js";
8
9
  import { _default as _default$7 } from "./navigation-menu-sub-list.vue.js";
9
10
  import { _default as _default$9 } from "./navigation-menu-viewport.vue.js";
10
11
  import { _default as _default$2 } from "./navigation-menu-indicator.vue.js";
11
- import { _default } from "./navigation-menu-compact.vue.js";
12
12
  import { provideNavigationMenuUi } from "./context.js";
13
- export { _default as NavigationMenuCompact, type NavigationMenuCompactEmits, type NavigationMenuCompactProps, type NavigationMenuCompactSlots, _default$1 as NavigationMenuContent, type NavigationMenuContentEmits, type NavigationMenuContentProps, _default$2 as NavigationMenuIndicator, type NavigationMenuIndicatorProps, _default$3 as NavigationMenuItem, type NavigationMenuItemData, type NavigationMenuItemProps, _default$4 as NavigationMenuLink, type NavigationMenuLinkEmits, type NavigationMenuLinkProps, _default$5 as NavigationMenuList, type NavigationMenuListProps, _default$6 as NavigationMenuRoot, type NavigationMenuRootEmits, type NavigationMenuRootProps, type NavigationMenuSubEmits, _default$7 as NavigationMenuSubList, type NavigationMenuSubListProps, type NavigationMenuSubProps, _default$8 as NavigationMenuTrigger, type NavigationMenuTriggerProps, type NavigationMenuUi, type NavigationMenuUiSlot, _default$9 as NavigationMenuViewport, type NavigationMenuViewportProps, provideNavigationMenuUi };
13
+ export { _default as NavigationMenuCompact, type NavigationMenuCompactEmits, type NavigationMenuCompactProps, type NavigationMenuCompactSlots, _default$1 as NavigationMenuContent, type NavigationMenuContentEmits, type NavigationMenuContentProps, _default$2 as NavigationMenuIndicator, type NavigationMenuIndicatorProps, _default$3 as NavigationMenuItem, type NavigationMenuItemProps, _default$4 as NavigationMenuLink, type NavigationMenuLinkEmits, type NavigationMenuLinkProps, _default$5 as NavigationMenuList, type NavigationMenuListProps, type NavigationMenuOptionData, _default$6 as NavigationMenuRoot, type NavigationMenuRootEmits, type NavigationMenuRootProps, type NavigationMenuSubEmits, _default$7 as NavigationMenuSubList, type NavigationMenuSubListProps, type NavigationMenuSubProps, _default$8 as NavigationMenuTrigger, type NavigationMenuTriggerProps, type NavigationMenuUi, type NavigationMenuUiSlot, _default$9 as NavigationMenuViewport, type NavigationMenuViewportProps, provideNavigationMenuUi };
@@ -1 +1 @@
1
- import{provideNavigationMenuUi as e}from"./context.js";import t from"./navigation-menu-root.js";import n from"./navigation-menu-list.js";import r from"./navigation-menu-item.js";import i from"./navigation-menu-trigger.js";import a from"./navigation-menu-content.js";import o from"./navigation-menu-link.js";import s from"./navigation-menu-sub-list.js";import c from"./navigation-menu-viewport.js";import l from"./navigation-menu-indicator.js";import u from"./navigation-menu-compact.js";export{u as NavigationMenuCompact,a as NavigationMenuContent,l as NavigationMenuIndicator,r as NavigationMenuItem,o as NavigationMenuLink,n as NavigationMenuList,t as NavigationMenuRoot,s as NavigationMenuSubList,i as NavigationMenuTrigger,c as NavigationMenuViewport,e as provideNavigationMenuUi};
1
+ import{provideNavigationMenuUi as e}from"./context.js";import t from"./navigation-menu-indicator.js";import n from"./navigation-menu-list.js";import r from"./navigation-menu-content.js";import i from"./navigation-menu-item.js";import a from"./navigation-menu-link.js";import o from"./navigation-menu-sub-list.js";import s from"./navigation-menu-trigger.js";import c from"./navigation-menu-root.js";import l from"./navigation-menu-viewport.js";import u from"./navigation-menu-compact.js";export{u as NavigationMenuCompact,r as NavigationMenuContent,t as NavigationMenuIndicator,i as NavigationMenuItem,a as NavigationMenuLink,n as NavigationMenuList,c as NavigationMenuRoot,o as NavigationMenuSubList,s as NavigationMenuTrigger,l as NavigationMenuViewport,e as provideNavigationMenuUi};
@@ -1 +1 @@
1
- import{useOmitProps as e}from"../../composables/use-props.js";import"../../composables/index.js";import t from"../_icon/icon.js";import n from"./navigation-menu-root.js";import r from"./navigation-menu-list.js";import i from"./navigation-menu-item.js";import a from"./navigation-menu-trigger.js";import o from"./navigation-menu-content.js";import s from"./navigation-menu-link.js";import c from"./navigation-menu-sub-list.js";import l from"./navigation-menu-viewport.js";import u from"./navigation-menu-indicator.js";import{Fragment as d,createBlock as f,createCommentVNode as p,createElementBlock as m,createElementVNode as h,createVNode as g,defineComponent as _,guardReactiveProps as v,mergeProps as y,normalizeProps as b,openBlock as x,renderList as S,renderSlot as C,toDisplayString as w,unref as T,withCtx as E}from"vue";const D={key:0},O=_({name:`NavigationMenuCompact`,__name:`navigation-menu-compact`,props:{items:{},itemProps:{},linkProps:{},triggerProps:{},contentProps:{},listProps:{},subListProps:{},subItemProps:{},viewportProps:{},indicatorProps:{},modelValue:{},defaultValue:{},dir:{},orientation:{},delayDuration:{},skipDelayDuration:{},disableClickTrigger:{type:Boolean},disableHoverTrigger:{type:Boolean},disablePointerLeaveClose:{type:Boolean},unmountOnHide:{type:Boolean}},emits:[`update:modelValue`,`select`,`escapeKeyDown`,`pointerDownOutside`,`focusOutside`,`interactOutside`],setup(_,{emit:O}){let k=_,A=O,j=e(k,[`items`,`itemProps`,`linkProps`,`triggerProps`,`contentProps`,`listProps`,`subListProps`,`subItemProps`,`viewportProps`,`indicatorProps`]);function M(e){return!!(e.to||e.href)}function N(e){return M(e)?{...k.linkProps,disabled:e.disabled,to:e.to,href:e.href,target:e.target,external:e.external}:{}}function P(e){return!!e.children?.length}return(e,O)=>(x(),f(n,y(T(j),{"onUpdate:modelValue":O[7]||(O[7]=e=>A(`update:modelValue`,e))}),{default:E(()=>[g(r,b(v(_.listProps)),{default:E(()=>[(x(!0),m(d,null,S(_.items,n=>(x(),f(i,y({key:n.value},{ref_for:!0},_.itemProps,{value:n.value}),{default:E(()=>[p(` Simple link item (no children) `),P(n)?(x(),m(d,{key:1},[p(` Item with children (trigger + content) `),g(a,y({ref_for:!0},_.triggerProps,{disabled:n.disabled,"as-child":M(n)}),{default:E(()=>[M(n)?(x(),f(s,y({key:0,ref_for:!0},N(n),{onSelect:O[1]||(O[1]=e=>A(`select`,e))}),{default:E(()=>[C(e.$slots,`item`,{item:n,isTrigger:!0},()=>[C(e.$slots,`item-leading`,{item:n}),h(`span`,null,w(n.label),1),C(e.$slots,`item-trailing`,{item:n}),C(e.$slots,`item-trigger-icon`,{item:n},()=>[g(t,{icon:`lucide:chevron-down`,"aria-hidden":!0})])])]),_:2},1040)):C(e.$slots,`item`,{key:1,item:n,isTrigger:!0},()=>[C(e.$slots,`item-leading`,{item:n}),h(`span`,null,w(n.label),1),C(e.$slots,`item-trailing`,{item:n}),C(e.$slots,`item-trigger-icon`,{item:n},()=>[g(t,{icon:`lucide:chevron-down`,"aria-hidden":!0})])])]),_:2},1040,[`disabled`,`as-child`]),g(o,y({ref_for:!0},_.contentProps,{onFocusOutside:O[3]||(O[3]=e=>A(`focusOutside`,e)),onInteractOutside:O[4]||(O[4]=e=>A(`interactOutside`,e)),onPointerDownOutside:O[5]||(O[5]=e=>A(`pointerDownOutside`,e)),onEscapeKeyDown:O[6]||(O[6]=e=>A(`escapeKeyDown`,e))}),{default:E(()=>[C(e.$slots,`item-children`,{item:n},()=>[g(c,y({ref_for:!0},_.subListProps),{default:E(()=>[(x(!0),m(d,null,S(n.children,t=>(x(),f(i,y({key:t.value},{ref_for:!0},_.subItemProps,{value:t.value}),{default:E(()=>[g(s,y({ref_for:!0},N(t),{onSelect:O[2]||(O[2]=e=>A(`select`,e))}),{default:E(()=>[C(e.$slots,`item`,{item:t},()=>[C(e.$slots,`item-leading`,{item:t}),h(`span`,null,w(t.label),1),t.description?(x(),m(`span`,D,w(t.description),1)):p(`v-if`,!0),C(e.$slots,`item-trailing`,{item:t})])]),_:2},1040)]),_:2},1040,[`value`]))),128))]),_:2},1040)])]),_:2},1040)],64)):(x(),f(s,y({key:0,ref_for:!0},N(n),{onSelect:O[0]||(O[0]=e=>A(`select`,e))}),{default:E(({isHref:r})=>[C(e.$slots,`item`,{item:n},()=>[C(e.$slots,`item-leading`,{item:n}),h(`span`,null,w(n.label),1),C(e.$slots,`item-trailing`,{item:n}),r?C(e.$slots,`item-link-icon`,{key:0,item:n},()=>[g(t,{icon:`lucide:arrow-up-right`,"aria-hidden":!0})]):p(`v-if`,!0)])]),_:2},1040))]),_:2},1040,[`value`]))),128))]),_:3},16),g(u,b(v(_.indicatorProps)),{default:E(()=>[C(e.$slots,`indicator`,{},()=>[O[8]||(O[8]=h(`div`,null,null,-1))])]),_:3},16),g(l,b(v(_.viewportProps)),null,16)]),_:3},16))}});export{O as default};
1
+ import{e}from"../../node_modules/.pnpm/@soybeanjs_utils@0.1.1/node_modules/@soybeanjs/utils/dist/index.js";import{useForwardListeners as t}from"../../composables/use-forward-listeners.js";import{useOmitProps as n,usePickProps as r}from"../../composables/use-props.js";import"../../composables/index.js";import i from"../arrow/arrow.js";import{useNavigationMenuUi as a}from"./context.js";import o from"./navigation-menu-indicator.js";import s from"./navigation-menu-list.js";import c from"./navigation-menu-option-compact.js";import l from"./navigation-menu-root.js";import u from"./navigation-menu-viewport.js";import{Fragment as d,computed as f,createBlock as p,createElementBlock as m,createSlots as h,createVNode as g,defineComponent as _,guardReactiveProps as v,mergeProps as y,normalizeClass as b,normalizeProps as x,openBlock as S,renderList as C,renderSlot as w,toHandlers as T,unref as E,useSlots as D,withCtx as O}from"vue";const k=_({name:`NavigationMenuCompact`,__name:`navigation-menu-compact`,props:{items:{},modelValue:{},defaultValue:{},dir:{},orientation:{},delayDuration:{},skipDelayDuration:{},disableClickTrigger:{type:Boolean},disableHoverTrigger:{type:Boolean},disablePointerLeaveClose:{type:Boolean},unmountOnHide:{type:Boolean},itemProps:{},linkProps:{},triggerProps:{},contentProps:{},viewportProps:{},indicatorProps:{},listProps:{},subListProps:{},subItemProps:{}},emits:[`update:modelValue`,`escapeKeyDown`,`pointerDownOutside`,`focusOutside`,`interactOutside`,`select`],setup(_,{emit:k}){let A=_,j=k,M=D(),N=[`itemProps`,`linkProps`,`triggerProps`,`contentProps`,`viewportProps`,`indicatorProps`,`listProps`,`subListProps`,`subItemProps`],P=n(A,[`items`,...N]),F=r(A,[...N]),I=t(j),L=f(()=>e(M)),R=a();return(e,t)=>(S(),p(l,y(E(P),{"onUpdate:modelValue":t[0]||(t[0]=e=>j(`update:modelValue`,e))}),{default:O(()=>[g(s,x(v(_.listProps)),{default:O(()=>[(S(!0),m(d,null,C(_.items,t=>(S(),p(c,y({key:t.value},{ref_for:!0},E(F),{item:t},T(E(I))),h({_:2},[C(L.value,t=>({name:t,fn:O(n=>[w(e.$slots,t,y({ref_for:!0},n))])}))]),1040,[`item`]))),128))]),_:3},16),g(o,x(v(_.indicatorProps)),{default:O(()=>[g(i,{class:b(E(R).arrow)},null,8,[`class`])]),_:1},16),g(u,x(v(_.viewportProps)),null,16)]),_:3},16))}});export{k as default};
@@ -1 +1 @@
1
- import{useForwardElement as e}from"../../composables/use-forward-element.js";import{usePresence as t}from"../../composables/use-presence.js";import"../../composables/index.js";import{navigationMenuIndicatorCssVars as n}from"./shared.js";import{useNavigationMenuRootContext as r,useNavigationMenuUi as i}from"./context.js";import{Teleport as a,computed as o,createBlock as s,createCommentVNode as c,createElementBlock as l,defineComponent as u,mergeProps as d,openBlock as f,renderSlot as p,shallowRef as m,unref as h,useAttrs as g,watchEffect as _}from"vue";import{useResizeObserver as v}from"@vueuse/core";const y=[`data-state`],b=u({name:`NavigationMenuIndicator`,inheritAttrs:!1,__name:`navigation-menu-indicator`,props:{forceMount:{type:Boolean}},setup(u){let b=u,x=g(),{orientation:S,activeTriggerElement:C,modelValue:w,indicatorTrackElement:T}=r(`NavigationMenuIndicator`),[E,D]=e(),O=i(`indicator`),k=o(()=>!!w.value),A=b.forceMount?m(!0):t(E,()=>k.value),j=m(),M=o(()=>{if(!j.value)return{};let{size:e,position:t}=j.value;return{[n.size]:`${e}px`,[n.position]:`${t}px`}}),N=()=>{if(!C.value)return;let{offsetWidth:e,offsetHeight:t,offsetLeft:n,offsetTop:r}=C.value,i=S.value===`horizontal`;j.value={size:i?e:t,position:i?n:r}};return _(()=>{if(!w.value){j.value=void 0;return}N()}),v(C,N),v(T,N),(e,t)=>h(T)?(f(),s(a,{key:0,to:h(T)},[h(A)?(f(),l(`div`,d({key:0},h(x),{ref:h(D),"data-soybean-navigation-menu-indicator":``,class:h(O),"aria-hidden":`true`,"data-state":k.value?`visible`:`hidden`,style:M.value}),[p(e.$slots,`default`)],16,y)):c(`v-if`,!0)],8,[`to`])):c(`v-if`,!0)}});export{b as default};
1
+ import{useForwardElement as e}from"../../composables/use-forward-element.js";import{usePresence as t}from"../../composables/use-presence.js";import"../../composables/index.js";import{getNavigationMenuIndicatorPosition as n,navigationMenuIndicatorCssVars as r}from"./shared.js";import{useNavigationMenuRootContext as i,useNavigationMenuUi as a}from"./context.js";import{Teleport as o,computed as s,createBlock as c,createCommentVNode as l,createElementBlock as u,defineComponent as d,mergeProps as f,openBlock as p,renderSlot as m,shallowRef as h,unref as g,useAttrs as _,watchEffect as v}from"vue";import{useResizeObserver as y}from"@vueuse/core";const b=[`dir`,`data-orientation`,`data-state`],x=d({name:`NavigationMenuIndicator`,inheritAttrs:!1,__name:`navigation-menu-indicator`,props:{forceMount:{type:Boolean}},setup(d){let x=d,S=_(),{dir:C,rootElement:w,orientation:T,activeTriggerElement:E,modelValue:D,indicatorTrackElement:O}=i(`NavigationMenuIndicator`),[k,A]=e(),j=a(`indicator`),M=s(()=>!!D.value),N=x.forceMount?h(!0):t(k,()=>M.value),P=h(),F=s(()=>{if(!P.value)return{};let{size:e,left:t,top:n}=P.value;return{[r.size]:`${e}px`,[r.left]:`${t}px`,[r.top]:`${n}px`}}),I=()=>{!E.value||!O.value||(P.value=n({indicatorTrackElement:O.value,activeTriggerElement:E.value,orientation:T.value,dir:C.value}))},L=s(()=>O.value?.ownerDocument?.body??w.value?.ownerDocument?.body);return v(()=>{if(!D.value){P.value=void 0;return}I()}),y(E,I),y(O,I),(e,t)=>L.value?(p(),c(o,{key:0,to:L.value},[g(N)?(p(),u(`div`,f({key:0},g(S),{ref:g(A),"data-soybean-navigation-menu-indicator":``,class:g(j),"aria-hidden":`true`,dir:g(C),"data-orientation":g(T),"data-state":M.value?`visible`:`hidden`,style:F.value}),[m(e.$slots,`default`)],16,b)):l(`v-if`,!0)],8,[`to`])):l(`v-if`,!0)}});export{x as default};
@@ -0,0 +1 @@
1
+ import e from"../_icon/icon.js";import{useNavigationMenuUi as t}from"./context.js";import{createBlock as n,createCommentVNode as r,defineComponent as i,normalizeClass as a,openBlock as o,renderSlot as s,unref as c}from"vue";const l=i({name:`NavigationMenuItemSlotCompact`,__name:`navigation-menu-item-slot-compact`,props:{icon:{}},setup(i){let l=t();return(t,u)=>s(t.$slots,`item`,{},()=>[s(t.$slots,`item-leading`,{},()=>[i.icon?(o(),n(e,{key:0,icon:i.icon,class:a(c(l).itemIcon)},null,8,[`icon`,`class`])):r(`v-if`,!0)]),s(t.$slots,`default`),s(t.$slots,`link-icon`),s(t.$slots,`item-trailing`),s(t.$slots,`trigger-icon`)])}});export{l as default};
@@ -1 +1 @@
1
- import{useNavigationMenuRootContext as e,useNavigationMenuUi as t}from"./context.js";import{createElementBlock as n,createElementVNode as r,defineComponent as i,mergeProps as a,openBlock as o,renderSlot as s,unref as c,useAttrs as l}from"vue";const u=i({name:`NavigationMenuList`,inheritAttrs:!1,__name:`navigation-menu-list`,setup(i){let u=l(),{setIndicatorTrackElement:d}=e(`NavigationMenuList`),f=t(`list`);return(e,t)=>(o(),n(`div`,{ref:c(d),"data-soybean-navigation-menu-list":``,style:{position:`relative`}},[r(`ul`,a(c(u),{class:c(f)}),[s(e.$slots,`default`)],16)],512))}});export{u as default};
1
+ import{useNavigationMenuRootContext as e,useNavigationMenuUi as t}from"./context.js";import{createElementBlock as n,createElementVNode as r,defineComponent as i,mergeProps as a,openBlock as o,renderSlot as s,unref as c,useAttrs as l}from"vue";const u=i({name:`NavigationMenuList`,inheritAttrs:!1,__name:`navigation-menu-list`,setup(i){let u=l(),{setIndicatorTrackElement:d}=e(`NavigationMenuList`),f=t(`list`);return(e,t)=>(o(),n(`div`,{ref:c(d),"data-soybean-navigation-menu-list":``},[r(`ul`,a(c(u),{class:c(f)}),[s(e.$slots,`default`)],16)],512))}});export{u as default};
@@ -0,0 +1 @@
1
+ import{e}from"../../node_modules/.pnpm/@soybeanjs_utils@0.1.1/node_modules/@soybeanjs/utils/dist/index.js";import{useForwardListeners as t}from"../../composables/use-forward-listeners.js";import"../../composables/index.js";import n from"../_icon/icon.js";import{useCommonSlotNames as r}from"./shared.js";import{useNavigationMenuUi as i}from"./context.js";import a from"./navigation-menu-item-slot-compact.js";import o from"./navigation-menu-sub-option-compact.js";import s from"./navigation-menu-content.js";import c from"./navigation-menu-item.js";import l from"./navigation-menu-link.js";import u from"./navigation-menu-sub-list.js";import d from"./navigation-menu-trigger.js";import{Fragment as f,computed as p,createBlock as m,createElementBlock as h,createElementVNode as g,createSlots as _,createVNode as v,defineComponent as y,guardReactiveProps as b,mergeProps as x,normalizeClass as S,normalizeProps as C,openBlock as w,renderList as T,renderSlot as E,resolveDynamicComponent as D,toDisplayString as O,toHandlers as k,unref as A,useSlots as j,withCtx as M}from"vue";const N=y({name:`NavigationMenuOptionCompact`,__name:`navigation-menu-option-compact`,props:{item:{},itemProps:{},linkProps:{},triggerProps:{},contentProps:{},viewportProps:{},indicatorProps:{},listProps:{},subListProps:{},subItemProps:{}},emits:[`update:modelValue`,`escapeKeyDown`,`pointerDownOutside`,`focusOutside`,`interactOutside`,`select`],setup(y,{emit:N}){let P=y,F=N,I=j(),L=t(F),R=p(()=>e(I)),z=r(I),B=i(),V=p(()=>!!(P.item.to||P.item.href)),H=p(()=>V.value?{...P.linkProps,disabled:P.item.disabled,to:P.item.to,href:P.item.href,target:P.item.target,external:P.item.external}:{});return(e,t)=>(w(),m(c,x(y.itemProps,{value:y.item.value}),{default:M(()=>[y.item.children?.length?(w(),h(f,{key:1},[v(d,x(y.triggerProps,{disabled:y.item.disabled,"as-child":V.value}),{default:M(()=>[(w(),m(D(V.value?l:`template`),x(H.value,{onSelect:t[1]||(t[1]=e=>F(`select`,e))}),{default:M(()=>[v(a,{icon:y.item.icon},_({"trigger-icon":M(()=>[E(e.$slots,`item-trigger-icon`,{item:y.item},()=>[v(n,{icon:`lucide:chevron-down`,class:S(A(B).triggerIcon)},null,8,[`class`])])]),default:M(()=>[g(`span`,null,O(y.item.label),1)]),_:2},[T(A(z),t=>({name:t,fn:M(()=>[E(e.$slots,t,{item:y.item,isTrigger:!0})])}))]),1032,[`icon`])]),_:3},16))]),_:3},16,[`disabled`,`as-child`]),v(s,x(y.contentProps,k(A(L))),{default:M(()=>[v(u,C(b(y.subListProps)),{default:M(()=>[(w(!0),h(f,null,T(y.item.children,n=>(w(),m(o,{key:n.value,"sub-item":n,"sub-item-props":y.subItemProps,onSelect:t[2]||(t[2]=e=>F(`select`,e))},_({"item-children":M(t=>[E(e.$slots,`item-children`,{item:t.item})]),_:2},[T(R.value,t=>({name:t,fn:M(()=>[E(e.$slots,t,{item:n})])}))]),1032,[`sub-item`,`sub-item-props`]))),128))]),_:3},16)]),_:3},16)],64)):(w(),m(l,x({key:0},H.value,{onSelect:t[0]||(t[0]=e=>F(`select`,e))}),{default:M(({isHref:t})=>[v(a,{icon:y.item.icon},_({default:M(()=>[g(`span`,null,O(y.item.label),1)]),_:2},[T(A(z),t=>({name:t,fn:M(()=>[E(e.$slots,t,{item:y.item})])})),t?{name:`link-icon`,fn:M(()=>[E(e.$slots,`item-link-icon`,{item:y.item},()=>[v(n,{icon:`lucide:arrow-up-right`,class:S(A(B).linkIcon)},null,8,[`class`])])]),key:`0`}:void 0]),1032,[`icon`])]),_:3},16))]),_:3},16,[`value`]))}});export{N as default};
@@ -1 +1 @@
1
- import{transformPropsToContext as e}from"../../shared/vue.js";import"../../shared/index.js";import{useControllableState as t}from"../../composables/use-controllable-state.js";import{useForwardElement as n}from"../../composables/use-forward-element.js";import"../../composables/index.js";import{provideCollectionContext as r,provideNavigationMenuRootContext as i,useNavigationMenuUi as a}from"./context.js";import{createElementBlock as o,defineComponent as s,normalizeClass as c,openBlock as l,renderSlot as u,unref as d,watchEffect as f}from"vue";const p=[`data-orientation`,`dir`],m=s({name:`NavigationMenuRoot`,__name:`navigation-menu-root`,props:{modelValue:{},defaultValue:{},dir:{default:`ltr`},orientation:{default:`horizontal`},delayDuration:{default:200},skipDelayDuration:{default:300},disableClickTrigger:{type:Boolean},disableHoverTrigger:{type:Boolean},disablePointerLeaveClose:{type:Boolean},unmountOnHide:{type:Boolean,default:!0}},emits:[`update:modelValue`],setup(s,{emit:m}){let h=s,g=m,_=a(`root`),v=t(()=>h.modelValue,e=>{g(`update:modelValue`,e)},h.defaultValue??``),{onRootElementChange:y,onActiveTriggerElementChange:b}=i({isRoot:!0,modelValue:v,...e(h,[`dir`,`orientation`,`unmountOnHide`,`skipDelayDuration`,`delayDuration`,`disableClickTrigger`,`disableHoverTrigger`,`disablePointerLeaveClose`])}),{onContainerElementChange:x,getOrderedElements:S}=r(),[C,w]=n(e=>{y(e),x(e)});return f(()=>{if(!v.value)return;let e=S().find(e=>e.id.includes(v.value));e&&b(e)}),(e,t)=>(l(),o(`nav`,{ref:d(w),"data-soybean-navigation-menu":``,class:c(d(_)),"data-orientation":s.orientation,dir:s.dir},[u(e.$slots,`default`,{modelValue:d(v)})],10,p))}});export{m as default};
1
+ import{transformPropsToContext as e}from"../../shared/vue.js";import{useDirection as t}from"../config-provider/context.js";import"../../shared/index.js";import{useControllableState as n}from"../../composables/use-controllable-state.js";import{useForwardElement as r}from"../../composables/use-forward-element.js";import"../../composables/index.js";import{provideCollectionContext as i,provideNavigationMenuRootContext as a,useNavigationMenuUi as o}from"./context.js";import{createElementBlock as s,defineComponent as c,normalizeClass as l,openBlock as u,renderSlot as d,unref as f,watchEffect as p}from"vue";const m=[`data-orientation`,`dir`],h=c({name:`NavigationMenuRoot`,__name:`navigation-menu-root`,props:{modelValue:{},defaultValue:{},dir:{},orientation:{default:`horizontal`},delayDuration:{default:200},skipDelayDuration:{default:300},disableClickTrigger:{type:Boolean},disableHoverTrigger:{type:Boolean},disablePointerLeaveClose:{type:Boolean},unmountOnHide:{type:Boolean,default:!0}},emits:[`update:modelValue`],setup(c,{emit:h}){let g=c,_=h,v=o(`root`),y=t(()=>g.dir),b=n(()=>g.modelValue,e=>{_(`update:modelValue`,e)},g.defaultValue??``),{onRootElementChange:x,onActiveTriggerElementChange:S}=a({isRoot:!0,modelValue:b,dir:y,...e(g,[`orientation`,`unmountOnHide`,`skipDelayDuration`,`delayDuration`,`disableClickTrigger`,`disableHoverTrigger`,`disablePointerLeaveClose`])}),{onContainerElementChange:C,getOrderedElements:w}=i(),[T,E]=r(e=>{x(e),C(e)});return p(()=>{if(!b.value)return;let e=w().find(e=>e.id.includes(b.value));e&&S(e)}),(e,t)=>(u(),s(`nav`,{ref:f(E),"data-soybean-navigation-menu":``,class:l(f(v)),"data-orientation":c.orientation,dir:f(y)},[d(e.$slots,`default`,{modelValue:f(b)})],10,m))}});export{h as default};
@@ -1,4 +1,4 @@
1
- import { DataOrientation, Direction } from "../../types/common.js";
1
+ import { DataOrientation } from "../../types/common.js";
2
2
  import { NavigationMenuRootProps } from "./types.js";
3
3
  import * as _$vue from "vue";
4
4
 
@@ -14,7 +14,6 @@ declare const __VLS_base: _$vue.DefineComponent<NavigationMenuRootProps, {}, {},
14
14
  }, string, _$vue.PublicProps, Readonly<NavigationMenuRootProps> & Readonly<{
15
15
  "onUpdate:modelValue"?: ((value: string) => any) | undefined;
16
16
  }>, {
17
- dir: Direction;
18
17
  orientation: DataOrientation;
19
18
  unmountOnHide: boolean;
20
19
  delayDuration: number;
@@ -0,0 +1 @@
1
+ import e from"../_icon/icon.js";import{useCommonSlotNames as t}from"./shared.js";import{useNavigationMenuUi as n}from"./context.js";import r from"./navigation-menu-item-slot-compact.js";import i from"./navigation-menu-item.js";import a from"./navigation-menu-link.js";import"./index.js";import{computed as o,createBlock as s,createCommentVNode as c,createElementVNode as l,createSlots as u,createVNode as d,defineComponent as f,mergeProps as p,normalizeClass as m,openBlock as h,renderList as g,renderSlot as _,resolveDynamicComponent as v,toDisplayString as y,unref as b,useSlots as x,withCtx as S}from"vue";const C=f({name:`NavigationMenuSubOptionCompact`,__name:`navigation-menu-sub-option-compact`,props:{subItem:{},subItemProps:{},linkProps:{}},emits:[`select`],setup(f,{emit:C}){let w=f,T=C,E=t(x()),D=n(),O=o(()=>!!(w.subItem.to||w.subItem.href)),k=o(()=>O.value?{...w.linkProps,disabled:w.subItem.disabled,to:w.subItem.to,href:w.subItem.href,target:w.subItem.target,external:w.subItem.external}:{});return(t,n)=>(h(),s(b(i),p(f.subItemProps,{value:f.subItem.value}),{default:S(()=>[(h(),s(v(O.value?b(a):`div`),p(k.value,{onSelect:n[0]||(n[0]=e=>T(`select`,e))}),{default:S(n=>[d(r,{icon:f.subItem.icon},u({default:S(()=>[l(`div`,{class:m(b(D).subLinkContent)},[l(`span`,{class:m(b(D).subLinkLabel)},y(f.subItem.label),3),l(`p`,{class:m(b(D).subLinkDescription)},y(f.subItem.description),3)],2)]),_:2},[g(b(E),e=>({name:e,fn:S(()=>[_(t.$slots,e,{item:f.subItem})])})),n?.isHref?{name:`link-icon`,fn:S(()=>[_(t.$slots,`item-link-icon`,{item:f.subItem},()=>[d(e,{icon:`lucide:arrow-up-right`,class:m(b(D).linkIcon)},null,8,[`class`])])]),key:`0`}:void 0]),1032,[`icon`])]),_:3},16)),f.subItem.children?.length?_(t.$slots,`item-children`,{key:0,item:f.subItem}):c(`v-if`,!0)]),_:3},16,[`value`]))}});export{C as default};
@@ -1 +1 @@
1
- import{getDisclosureState as e}from"../../shared/value.js";import{isMouseEvent as t}from"../../shared/event.js";import"../../shared/index.js";import{usePresence as n}from"../../composables/use-presence.js";import"../../composables/index.js";import{getNavigationMenuViewportPosition as r,navigationMenuViewportCssVars as i}from"./shared.js";import{useNavigationMenuRootContext as a,useNavigationMenuUi as o}from"./context.js";import{computed as s,createCommentVNode as c,createElementBlock as l,defineComponent as u,nextTick as d,normalizeClass as f,normalizeStyle as p,openBlock as m,renderSlot as h,shallowRef as g,unref as _,watch as v}from"vue";import{useResizeObserver as y}from"@vueuse/core";const b=[`data-state`,`hidden`],x=u({name:`NavigationMenuViewport`,__name:`navigation-menu-viewport`,props:{align:{default:`start`},forceMount:{type:Boolean}},setup(u){let x=u,{isRoot:S,open:C,unmountOnHide:w,rootElement:T,activeTriggerElement:E,modelValue:D,viewportElement:O,setViewportElement:k,onContentEnter:A,onContentLeave:j}=a(`NavigationMenuViewport`),M=o(`viewport`),N=x.forceMount?g(!0):n(O,C),P=s(()=>e(C.value)),F=g(),I=g(),L=s(()=>{let{width:e,height:t}=F.value||{},{left:n,top:r}=I.value||{};return{pointerEvents:!C.value&&S?`none`:void 0,[i.width]:e&&`${e}px`,[i.height]:t&&`${t}px`,[i.left]:n&&`${n}px`,[i.top]:r&&`${r}px`}});function R(){!T.value||!O.value||!E.value||(I.value=r({rootElement:T.value,contentElement:O.value,activeTriggerElement:E.value,align:x.align}))}let z=g(null);function B(){O.value&&requestAnimationFrame(()=>{z.value=O.value?.querySelector(`[data-state=open]`)})}let V=()=>{D.value&&A(D.value)},H=e=>{t(e)&&j()};return y(z,()=>{if(!z.value)return;let{offsetWidth:e,offsetHeight:t}=z.value;F.value={width:e,height:t},R()}),v([O,D,C],()=>{d(()=>{B()})},{immediate:!0}),y([()=>globalThis?.document?.body,T],()=>{R()}),(e,t)=>_(N)?(m(),l(`div`,{key:0,ref:_(k),"data-soybean-navigation-menu-viewport":``,class:f(_(M)),"data-state":P.value,hidden:!_(N),style:p(L.value),onPointerenter:V,onPointerleave:H},[!_(w)||_(N)?h(e.$slots,`default`,{key:0}):c(`v-if`,!0)],46,b)):c(`v-if`,!0)}});export{x as default};
1
+ import{getDisclosureState as e}from"../../shared/value.js";import{isMouseEvent as t}from"../../shared/event.js";import"../../shared/index.js";import{usePresence as n}from"../../composables/use-presence.js";import"../../composables/index.js";import{getNavigationMenuViewportPosition as r,navigationMenuViewportCssVars as i}from"./shared.js";import{useNavigationMenuRootContext as a,useNavigationMenuUi as o}from"./context.js";import{computed as s,createCommentVNode as c,createElementBlock as l,defineComponent as u,nextTick as d,normalizeClass as f,normalizeStyle as p,openBlock as m,renderSlot as h,shallowRef as g,unref as _,watch as v}from"vue";import{useResizeObserver as y}from"@vueuse/core";const b=[`data-state`,`hidden`],x=u({name:`NavigationMenuViewport`,__name:`navigation-menu-viewport`,props:{align:{default:`start`},forceMount:{type:Boolean}},setup(u){let x=u,{dir:S,isRoot:C,open:w,orientation:T,unmountOnHide:E,rootElement:D,modelValue:O,viewportElement:k,setViewportElement:A,onContentEnter:j,onContentLeave:M}=a(`NavigationMenuViewport`),N=o(`viewport`),P=x.forceMount?g(!0):n(k,w),F=s(()=>e(w.value)),I=g(),L=g(),R=s(()=>{let{width:e,height:t}=I.value||{},{left:n,top:r}=L.value||{};return{pointerEvents:!w.value&&C?`none`:void 0,[i.width]:e===void 0?void 0:`${e}px`,[i.height]:t===void 0?void 0:`${t}px`,[i.left]:n===void 0?void 0:`${n}px`,[i.top]:r===void 0?void 0:`${r}px`}});function z(){if(!D.value||!k.value)return;let e=I.value||{width:k.value.offsetWidth,height:k.value.offsetHeight};L.value=r({rootElement:D.value,contentSize:e,orientation:T.value,dir:S.value,align:x.align})}let B=g(null);function V(){k.value&&requestAnimationFrame(()=>{B.value=k.value?.querySelector(`[data-state=open]`)})}let H=()=>{O.value&&j(O.value)},U=e=>{t(e)&&M()};return y(B,()=>{if(!B.value)return;let{offsetWidth:e,offsetHeight:t}=B.value;I.value={width:e,height:t},z()}),v([k,O,w],()=>{d(()=>{V()})},{immediate:!0}),y([()=>globalThis?.document?.body,D],()=>{z()}),(e,t)=>_(P)?(m(),l(`div`,{key:0,ref:_(A),"data-soybean-navigation-menu-viewport":``,class:f(_(N)),"data-state":F.value,hidden:!_(P),style:p(R.value),onPointerenter:H,onPointerleave:U},[!_(E)||_(P)?h(e.$slots,`default`,{key:0}):c(`v-if`,!0)],46,b)):c(`v-if`,!0)}});export{x as default};
@@ -1 +1 @@
1
- const e=`navigationMenu.rootContentDismiss`,t=`navigationMenu.linkSelect`,n={width:`--soybean-navigation-menu-viewport-width`,height:`--soybean-navigation-menu-viewport-height`,left:`--soybean-navigation-menu-viewport-left`,top:`--soybean-navigation-menu-viewport-top`},r={size:`--soybean-navigation-menu-indicator-size`,position:`--soybean-navigation-menu-indicator-position`};function i(e,t){return`${e}-trigger-${t}`}function a(e,t){return`${e}-content-${t}`}function o(e){let{rootElement:t,contentElement:n,activeTriggerElement:r,align:i}=e,a=document.documentElement.offsetWidth,o=document.documentElement.offsetHeight,s=t.getBoundingClientRect(),c=r.getBoundingClientRect(),{offsetWidth:l,offsetHeight:u}=n,d=c.left-s.left,f=c.top-s.top,{left:p,top:m}={start:{left:d,top:f+c.height},center:{left:d-l/2+c.width/2,top:f-u/2+c.height/2},end:{left:d-l+c.width,top:f-u+c.height}}[i];p+s.left<10&&(p=10-s.left);let h=p+s.left+l;h>a-10&&(p-=h-a+10,p<10-s.left&&(p=10-s.left)),m+s.top<10&&(m=10-s.top);let g=m+s.top+u;return g>o-10&&(m-=g-o+10,m<10-s.top&&(m=10-s.top)),p=Math.round(p),m=Math.round(m),{left:p,top:m}}export{e as EVENT_ROOT_CONTENT_DISMISS,t as LINK_SELECT,a as createContentId,i as createTriggerId,o as getNavigationMenuViewportPosition,r as navigationMenuIndicatorCssVars,n as navigationMenuViewportCssVars};
1
+ import{computed as e}from"vue";const t=[`item`,`item-leading`,`item-trailing`],n=`navigationMenu.rootContentDismiss`,r=`navigationMenu.linkSelect`,i={width:`--soybean-navigation-menu-viewport-width`,height:`--soybean-navigation-menu-viewport-height`,left:`--soybean-navigation-menu-viewport-left`,top:`--soybean-navigation-menu-viewport-top`},a={size:`--soybean-navigation-menu-indicator-size`,left:`--soybean-navigation-menu-indicator-left`,top:`--soybean-navigation-menu-indicator-top`};function o(n){return e(()=>Object.keys(n).filter(e=>t.includes(e)))}function s(e,t){return`${e}-trigger-${t}`}function c(e,t){return`${e}-content-${t}`}function l(){let e=globalThis.window?.visualViewport;return{width:e?.width??globalThis.window?.innerWidth??document.documentElement.clientWidth,height:e?.height??globalThis.window?.innerHeight??document.documentElement.clientHeight}}function u(e,t,n,r){let i=r,a=n-r-t;return a<=i||e<i?i:e>a?a:e}function d(e,t,n){if(n!==`rtl`)return e;let{width:r}=l();return r-e-t}function f(e){let{rootElement:t,contentSize:n,orientation:r,dir:i,align:a}=e,o=t.getBoundingClientRect(),{width:s,height:c}=l(),{width:f,height:p}=n,m=i===`rtl`,h={start:{left:m?o.right-f:o.left,top:o.bottom},center:{left:o.left+o.width/2-f/2,top:o.bottom},end:{left:m?o.left:o.right-f,top:o.bottom}},g={start:{left:m?o.left-f:o.right,top:o.top},center:{left:m?o.left-f:o.right,top:o.top+o.height/2-p/2},end:{left:m?o.left-f:o.right,top:o.bottom-p}},{left:_,top:v}=(r===`vertical`?g:h)[a];_=u(_,f,s,10),v=u(v,p,c,10);let y={left:d(_,f,i),top:v};return{left:Math.round(y.left),top:Math.round(y.top)}}function p(e){let{indicatorTrackElement:t,activeTriggerElement:n,orientation:r,dir:i}=e,a=t.getBoundingClientRect(),o=n.getBoundingClientRect(),s=r===`horizontal`,c=i===`rtl`,l=s?o.width:o.height,u={size:l,left:d(s?o.left:c?a.left-l:a.right,l,i),top:s?a.bottom:o.top+o.height/2};return{size:Math.round(u.size),left:Math.round(u.left),top:Math.round(u.top)}}export{n as EVENT_ROOT_CONTENT_DISMISS,r as LINK_SELECT,c as createContentId,s as createTriggerId,p as getNavigationMenuIndicatorPosition,f as getNavigationMenuViewportPosition,a as navigationMenuIndicatorCssVars,i as navigationMenuViewportCssVars,o as useCommonSlotNames};
@@ -2,6 +2,7 @@ import { Align, DataOrientation, Direction, UiClass } from "../../types/common.j
2
2
  import { DismissableLayerEmits, DismissableLayerProps, ForceMountProps } from "../../types/component.js";
3
3
  import { BaseProps } from "../../types/vue.js";
4
4
  import { PrimitiveWithBaseProps } from "../primitive/types.js";
5
+ import { IconValue } from "../_icon/types.js";
5
6
  import { LinkBaseProps, LinkProps } from "../link/types.js";
6
7
  import { ShallowRef } from "vue";
7
8
 
@@ -165,86 +166,124 @@ type NavigationMenuSubEmits = NavigationMenuRootEmits;
165
166
  /**
166
167
  * Available UI slots for the NavigationMenu component.
167
168
  */
168
- type NavigationMenuUiSlot = 'root' | 'trigger' | 'content' | 'list' | 'indicator' | 'viewport' | 'item' | 'link' | 'subList' | 'subItem' | 'subLink';
169
+ type NavigationMenuUiSlot = 'root' | 'trigger' | 'content' | 'list' | 'indicator' | 'viewport' | 'item' | 'itemIcon' | 'link' | 'subList' | 'subItem' | 'subLink' | 'triggerIcon' | 'linkIcon' | 'arrow' | 'subItemContent' | 'subLinkContent' | 'subLinkLabel' | 'subLinkDescription';
169
170
  /**
170
171
  * UI class overrides for the NavigationMenu component.
171
172
  */
172
173
  type NavigationMenuUi = UiClass<NavigationMenuUiSlot>;
173
174
  /**
174
- * Type information for NavigationMenuItemData.
175
+ * Option data for the NavigationMenu component.
175
176
  */
176
- interface NavigationMenuItemData extends LinkBaseProps {
177
- /** The value of the item. */
177
+ interface NavigationMenuOptionData extends LinkBaseProps {
178
+ /** The value of the option. */
178
179
  value: string;
179
- /** The label to display in the item. */
180
+ /** The label to display in the option. */
180
181
  label: string;
181
- /** The description of the item. */
182
+ /** The description of the option. */
182
183
  description?: string;
183
- /** Whether the item is disabled. */
184
+ /**
185
+ * The icon of the option.
186
+ *
187
+ * if it is a string, it will be used as the icon name of the iconify.
188
+ */
189
+ icon?: IconValue;
190
+ /** Whether the option is disabled. */
184
191
  disabled?: boolean;
185
- /** The children of the item. */
186
- children?: NavigationMenuItemData[];
192
+ /** The children of the option. */
193
+ children?: NavigationMenuOptionData[];
187
194
  }
195
+ /**
196
+ * Slots for the NavigationMenuSubOptionCompact component.
197
+ */
198
+ type NavigationMenuSubOptionCompactSlots = {
199
+ item: (props: {
200
+ item: NavigationMenuOptionData;
201
+ isTrigger?: boolean;
202
+ }) => any;
203
+ 'item-leading': (props: {
204
+ item: NavigationMenuOptionData;
205
+ }) => any;
206
+ 'item-trailing': (props: {
207
+ item: NavigationMenuOptionData;
208
+ }) => any;
209
+ 'item-link-icon': (props: {
210
+ item: NavigationMenuOptionData;
211
+ }) => any;
212
+ 'item-children': (props: {
213
+ item: NavigationMenuOptionData;
214
+ }) => any;
215
+ };
188
216
  /**
189
217
  * Properties for the NavigationMenuCompact component.
190
218
  */
191
- interface NavigationMenuCompactProps extends NavigationMenuRootProps {
192
- /** The items to render in the navigation menu. */
193
- items: NavigationMenuItemData[];
194
- /** Properties for each NavigationMenuItem. */
219
+ interface NavigationMenuOptionCompactProps {
220
+ /**
221
+ * Current item data.
222
+ */
223
+ item: NavigationMenuOptionData;
224
+ /**
225
+ * Properties forwarded to the item element.
226
+ */
195
227
  itemProps?: NavigationMenuItemProps;
196
- /** Properties for NavigationMenuLink. */
228
+ /**
229
+ * Properties forwarded to the link element.
230
+ */
197
231
  linkProps?: NavigationMenuLinkProps;
198
- /** Properties for NavigationMenuTrigger. */
232
+ /**
233
+ * Properties forwarded to the trigger element.
234
+ */
199
235
  triggerProps?: NavigationMenuTriggerProps;
200
- /** Properties for NavigationMenuContent. */
236
+ /**
237
+ * Properties forwarded to the content element.
238
+ */
201
239
  contentProps?: NavigationMenuContentProps;
202
- /** Properties for NavigationMenuList. */
240
+ /**
241
+ * Properties forwarded to the viewport element.
242
+ */
243
+ viewportProps?: NavigationMenuViewportProps;
244
+ /**
245
+ * Properties forwarded to the indicator element.
246
+ */
247
+ indicatorProps?: NavigationMenuIndicatorProps;
248
+ /**
249
+ * Properties forwarded to the list element.
250
+ */
203
251
  listProps?: NavigationMenuListProps;
204
- /** Properties for NavigationMenuSubList. */
252
+ /**
253
+ * Properties forwarded to the sub list element.
254
+ */
205
255
  subListProps?: NavigationMenuListProps;
206
- /** Properties for sub-items. */
256
+ /**
257
+ * Properties forwarded to the sub item element.
258
+ */
207
259
  subItemProps?: NavigationMenuItemProps;
208
- /** Properties for NavigationMenuViewport. */
209
- viewportProps?: NavigationMenuViewportProps;
210
- /** Properties for NavigationMenuIndicator. */
211
- indicatorProps?: NavigationMenuIndicatorProps;
212
260
  }
213
261
  /**
214
- * Events for the NavigationMenuCompact component.
262
+ * Events for the NavigationMenuOptionCompact component.
215
263
  */
216
- type NavigationMenuCompactEmits = NavigationMenuRootEmits & NavigationMenuLinkEmits & NavigationMenuContentEmits;
264
+ type NavigationMenuOptionCompactEmits = NavigationMenuSubEmits & NavigationMenuContentEmits & NavigationMenuLinkEmits;
217
265
  /**
218
- * Slots for the NavigationMenuCompact component.
266
+ * Slots for the NavigationMenuOptionCompact component.
219
267
  */
220
- interface NavigationMenuCompactSlots {
221
- /** Slot for rendering the entire item (for top-level items). */
222
- item?: (props: {
223
- item: NavigationMenuItemData;
224
- isTrigger?: boolean;
225
- }) => any;
226
- /** Slot for rendering leading content of an item. */
227
- 'item-leading'?: (props: {
228
- item: NavigationMenuItemData;
229
- }) => any;
230
- /** Slot for rendering trailing content of an item. */
231
- 'item-trailing'?: (props: {
232
- item: NavigationMenuItemData;
268
+ type NavigationMenuOptionCompactSlots = NavigationMenuSubOptionCompactSlots & {
269
+ 'item-trigger-icon': (props: {
270
+ item: NavigationMenuOptionData;
233
271
  }) => any;
234
- /** Slot for rendering trigger icon (chevron down by default). */
235
- 'item-trigger-icon'?: (props: {
236
- item: NavigationMenuItemData;
237
- }) => any;
238
- /** Slot for rendering link icon (arrow up right by default for external links). */
239
- 'item-link-icon'?: (props: {
240
- item: NavigationMenuItemData;
241
- }) => any;
242
- /** Slot for rendering custom children content. */
243
- 'item-children'?: (props: {
244
- item: NavigationMenuItemData;
245
- }) => any;
246
- /** Slot for rendering indicator arrow. */
247
- indicator?: () => any;
272
+ };
273
+ /**
274
+ * Properties for the NavigationMenuCompact component.
275
+ */
276
+ interface NavigationMenuCompactProps extends NavigationMenuRootProps, Omit<NavigationMenuOptionCompactProps, 'item'> {
277
+ /** The items to render in the navigation menu. */
278
+ items: NavigationMenuOptionData[];
248
279
  }
280
+ /**
281
+ * Events for the NavigationMenuCompact component.
282
+ */
283
+ type NavigationMenuCompactEmits = NavigationMenuRootEmits & NavigationMenuOptionCompactEmits;
284
+ /**
285
+ * Slots for the NavigationMenuCompact component.
286
+ */
287
+ type NavigationMenuCompactSlots = NavigationMenuOptionCompactSlots;
249
288
  //#endregion
250
- export { NavigationMenuCompactEmits, NavigationMenuCompactProps, NavigationMenuCompactSlots, NavigationMenuContentEmits, NavigationMenuContentProps, NavigationMenuIndicatorProps, NavigationMenuItemData, NavigationMenuItemProps, NavigationMenuLinkEmits, NavigationMenuLinkProps, NavigationMenuListProps, NavigationMenuRootEmits, NavigationMenuRootProps, NavigationMenuSubEmits, NavigationMenuSubListProps, NavigationMenuSubProps, NavigationMenuTriggerProps, NavigationMenuUi, NavigationMenuUiSlot, NavigationMenuViewportProps };
289
+ export { NavigationMenuCompactEmits, NavigationMenuCompactProps, NavigationMenuCompactSlots, NavigationMenuContentEmits, NavigationMenuContentProps, NavigationMenuIndicatorProps, NavigationMenuItemProps, NavigationMenuLinkEmits, NavigationMenuLinkProps, NavigationMenuListProps, NavigationMenuOptionData, NavigationMenuRootEmits, NavigationMenuRootProps, NavigationMenuSubEmits, NavigationMenuSubListProps, NavigationMenuSubProps, NavigationMenuTriggerProps, NavigationMenuUi, NavigationMenuUiSlot, NavigationMenuViewportProps };
@@ -5,11 +5,11 @@ import * as _$vue from "vue";
5
5
  declare const __VLS_export: <T extends PageTabsOptionData = PageTabsOptionData>(__VLS_props: NonNullable<Awaited<typeof __VLS_setup>>["props"], __VLS_ctx?: __VLS_PrettifyLocal<Pick<NonNullable<Awaited<typeof __VLS_setup>>, "attrs" | "emit" | "slots">>, __VLS_exposed?: NonNullable<Awaited<typeof __VLS_setup>>["expose"], __VLS_setup?: Promise<{
6
6
  props: _$vue.PublicProps & __VLS_PrettifyLocal<PageTabsCompactProps<T> & {
7
7
  onContextmenu?: ((tab: T) => any) | undefined;
8
+ "onUpdate:modelValue"?: ((value: string) => any) | undefined;
8
9
  onClick?: ((tab: T) => any) | undefined;
9
10
  onClose?: ((tab: T) => any) | undefined;
10
- "onUpdate:modelValue"?: ((value: string) => any) | undefined;
11
- "onUpdate:items"?: ((items: T[]) => any) | undefined;
12
11
  onPin?: ((tab: T) => any) | undefined;
12
+ "onUpdate:items"?: ((items: T[]) => any) | undefined;
13
13
  onSelectContextMenu?: ((menu: PageTabsContextMenuOptionData, tab: T) => any) | undefined;
14
14
  }> & (typeof globalThis extends {
15
15
  __VLS_PROPS_FALLBACK: infer P;
@@ -1 +1 @@
1
- import{useLocaleMessages as e}from"../../locale/hooks.js";import"../../locale/index.js";import t from"../button/button.js";import{usePaginationRootContext as n,usePaginationUi as r}from"./context.js";import{computed as i,createBlock as a,createTextVNode as o,defineComponent as s,mergeProps as c,openBlock as l,renderSlot as u,toDisplayString as d,unref as f,withCtx as p}from"vue";const m=s({name:`PaginationFirst`,__name:`pagination-first`,props:{type:{},disabled:{type:Boolean},asChild:{type:Boolean},as:{}},setup(s){let m=s,{page:h,onPageChange:g,disabled:_}=n(`PaginationFirst`),v=r(`first`),y=e(),b=i(()=>_.value||h.value===1),x=()=>{g(1)};return(e,n)=>(l(),a(t,c(m,{"data-soybean-pagination-first":``,class:f(v),disabled:b.value,"aria-label":f(y).pagination.firstPage,onClick:x}),{default:p(()=>[u(e.$slots,`default`,{},()=>[o(d(f(y).pagination.firstPage),1)])]),_:3},16,[`class`,`disabled`,`aria-label`]))}});export{m as default};
1
+ import{useLocaleMessages as e}from"../../locale/hooks.js";import"../../locale/index.js";import t from"../button/button.js";import{usePaginationRootContext as n,usePaginationUi as r}from"./context.js";import{computed as i,createBlock as a,createTextVNode as o,defineComponent as s,mergeProps as c,openBlock as l,renderSlot as u,toDisplayString as d,unref as f,withCtx as p}from"vue";const m=s({name:`PaginationFirst`,__name:`pagination-first`,props:{type:{},disabled:{type:Boolean},asChild:{type:Boolean},as:{}},setup(s){let m=s,{page:h,onPageChange:g,disabled:_}=n(`PaginationFirst`),v=r(`first`),y=e(),b=i(()=>_.value||h.value===1),x=()=>{g(1)};return(e,n)=>(l(),a(t,c(m,{"data-soybean-pagination-first":``,"data-soybean-pagination-action":``,class:f(v),disabled:b.value,"aria-label":f(y).pagination.firstPage,onClick:x}),{default:p(()=>[u(e.$slots,`default`,{},()=>[o(d(f(y).pagination.firstPage),1)])]),_:3},16,[`class`,`disabled`,`aria-label`]))}});export{m as default};
@@ -1 +1 @@
1
- import{useLocaleMessages as e}from"../../locale/hooks.js";import"../../locale/index.js";import t from"../button/button.js";import{usePaginationRootContext as n,usePaginationUi as r}from"./context.js";import{computed as i,createBlock as a,createTextVNode as o,defineComponent as s,mergeProps as c,openBlock as l,renderSlot as u,toDisplayString as d,unref as f,withCtx as p}from"vue";const m=s({name:`PaginationLast`,__name:`pagination-last`,props:{type:{},disabled:{type:Boolean},asChild:{type:Boolean},as:{}},setup(s){let m=s,{page:h,onPageChange:g,pageCount:_,disabled:v}=n(`PaginationLast`),y=r(`last`),b=e(),x=i(()=>v.value||h.value===_.value),S=()=>{g(_.value)};return(e,n)=>(l(),a(t,c(m,{"data-soybean-pagination-last":``,class:f(y),disabled:x.value,"aria-label":f(b).pagination.lastPage,onClick:S}),{default:p(()=>[u(e.$slots,`default`,{},()=>[o(d(f(b).pagination.lastPage),1)])]),_:3},16,[`class`,`disabled`,`aria-label`]))}});export{m as default};
1
+ import{useLocaleMessages as e}from"../../locale/hooks.js";import"../../locale/index.js";import t from"../button/button.js";import{usePaginationRootContext as n,usePaginationUi as r}from"./context.js";import{computed as i,createBlock as a,createTextVNode as o,defineComponent as s,mergeProps as c,openBlock as l,renderSlot as u,toDisplayString as d,unref as f,withCtx as p}from"vue";const m=s({name:`PaginationLast`,__name:`pagination-last`,props:{type:{},disabled:{type:Boolean},asChild:{type:Boolean},as:{}},setup(s){let m=s,{page:h,onPageChange:g,pageCount:_,disabled:v}=n(`PaginationLast`),y=r(`last`),b=e(),x=i(()=>v.value||h.value===_.value),S=()=>{g(_.value)};return(e,n)=>(l(),a(t,c(m,{"data-soybean-pagination-last":``,"data-soybean-pagination-action":``,class:f(y),disabled:x.value,"aria-label":f(b).pagination.lastPage,onClick:S}),{default:p(()=>[u(e.$slots,`default`,{},()=>[o(d(f(b).pagination.lastPage),1)])]),_:3},16,[`class`,`disabled`,`aria-label`]))}});export{m as default};
@@ -1 +1 @@
1
- import{useLocaleMessages as e}from"../../locale/hooks.js";import"../../locale/index.js";import t from"../button/button.js";import{usePaginationRootContext as n,usePaginationUi as r}from"./context.js";import{computed as i,createBlock as a,createTextVNode as o,defineComponent as s,mergeProps as c,openBlock as l,renderSlot as u,toDisplayString as d,unref as f,withCtx as p}from"vue";const m=s({name:`PaginationNext`,__name:`pagination-next`,props:{type:{},disabled:{type:Boolean},asChild:{type:Boolean},as:{}},setup(s){let m=s,{page:h,onPageChange:g,pageCount:_,disabled:v}=n(`PaginationNext`),y=r(`next`),b=e(),x=i(()=>v.value||h.value===_.value),S=()=>{g(h.value+1)};return(e,n)=>(l(),a(t,c(m,{"data-soybean-pagination-next":``,class:f(y),disabled:x.value,"aria-label":f(b).pagination.nextPage,onClick:S}),{default:p(()=>[u(e.$slots,`default`,{},()=>[o(d(f(b).pagination.nextPage),1)])]),_:3},16,[`class`,`disabled`,`aria-label`]))}});export{m as default};
1
+ import{useLocaleMessages as e}from"../../locale/hooks.js";import"../../locale/index.js";import t from"../button/button.js";import{usePaginationRootContext as n,usePaginationUi as r}from"./context.js";import{computed as i,createBlock as a,createTextVNode as o,defineComponent as s,mergeProps as c,openBlock as l,renderSlot as u,toDisplayString as d,unref as f,withCtx as p}from"vue";const m=s({name:`PaginationNext`,__name:`pagination-next`,props:{type:{},disabled:{type:Boolean},asChild:{type:Boolean},as:{}},setup(s){let m=s,{page:h,onPageChange:g,pageCount:_,disabled:v}=n(`PaginationNext`),y=r(`next`),b=e(),x=i(()=>v.value||h.value===_.value),S=()=>{g(h.value+1)};return(e,n)=>(l(),a(t,c(m,{"data-soybean-pagination-next":``,"data-soybean-pagination-action":``,class:f(y),disabled:x.value,"aria-label":f(b).pagination.nextPage,onClick:S}),{default:p(()=>[u(e.$slots,`default`,{},()=>[o(d(f(b).pagination.nextPage),1)])]),_:3},16,[`class`,`disabled`,`aria-label`]))}});export{m as default};
@@ -1 +1 @@
1
- import{useLocaleMessages as e}from"../../locale/hooks.js";import"../../locale/index.js";import t from"../button/button.js";import{usePaginationRootContext as n,usePaginationUi as r}from"./context.js";import{computed as i,createBlock as a,createTextVNode as o,defineComponent as s,mergeProps as c,openBlock as l,renderSlot as u,toDisplayString as d,unref as f,withCtx as p}from"vue";const m=s({name:`PaginationPrev`,__name:`pagination-prev`,props:{type:{},disabled:{type:Boolean},asChild:{type:Boolean},as:{}},setup(s){let m=s,{page:h,onPageChange:g,disabled:_}=n(`PaginationPrev`),v=r(`prev`),y=e(),b=i(()=>_.value||h.value===1),x=()=>{g(h.value-1)};return(e,n)=>(l(),a(t,c(m,{"data-soybean-pagination-prev":``,class:f(v),disabled:b.value,"aria-label":f(y).pagination.prevPage,onClick:x}),{default:p(()=>[u(e.$slots,`default`,{},()=>[o(d(f(y).pagination.prevPage),1)])]),_:3},16,[`class`,`disabled`,`aria-label`]))}});export{m as default};
1
+ import{useLocaleMessages as e}from"../../locale/hooks.js";import"../../locale/index.js";import t from"../button/button.js";import{usePaginationRootContext as n,usePaginationUi as r}from"./context.js";import{computed as i,createBlock as a,createTextVNode as o,defineComponent as s,mergeProps as c,openBlock as l,renderSlot as u,toDisplayString as d,unref as f,withCtx as p}from"vue";const m=s({name:`PaginationPrev`,__name:`pagination-prev`,props:{type:{},disabled:{type:Boolean},asChild:{type:Boolean},as:{}},setup(s){let m=s,{page:h,onPageChange:g,disabled:_}=n(`PaginationPrev`),v=r(`prev`),y=e(),b=i(()=>_.value||h.value===1),x=()=>{g(h.value-1)};return(e,n)=>(l(),a(t,c(m,{"data-soybean-pagination-prev":``,"data-soybean-pagination-action":``,class:f(v),disabled:b.value,"aria-label":f(y).pagination.prevPage,onClick:x}),{default:p(()=>[u(e.$slots,`default`,{},()=>[o(d(f(y).pagination.prevPage),1)])]),_:3},16,[`class`,`disabled`,`aria-label`]))}});export{m as default};
@@ -58,14 +58,6 @@ interface PaginationEllipsisProps extends BaseProps {}
58
58
  * Properties for the PaginationButton component.
59
59
  */
60
60
  interface PaginationButtonProps extends ButtonProps {}
61
- /**
62
- * Available UI slots for the Pagination component.
63
- */
64
- type PaginationUiSlot = 'root' | 'list' | 'listItem' | 'ellipsis' | 'first' | 'prev' | 'next' | 'last';
65
- /**
66
- * UI class overrides for the Pagination component.
67
- */
68
- type PaginationUi = UiClass<PaginationUiSlot>;
69
61
  /**
70
62
  * Type information for PageEllipsis.
71
63
  */
@@ -136,7 +128,7 @@ type PaginationCompactEmits = PaginationRootEmits;
136
128
  /**
137
129
  * Slots for the PaginationCompact component.
138
130
  */
139
- interface PaginationCompactSlots {
131
+ type PaginationCompactSlots = {
140
132
  /**
141
133
  * Custom content for the leading slot.
142
134
  */
@@ -165,6 +157,14 @@ interface PaginationCompactSlots {
165
157
  * Custom content for the ellipsis slot.
166
158
  */
167
159
  ellipsis?: () => any;
168
- }
160
+ };
161
+ /**
162
+ * Available UI slots for the Pagination component.
163
+ */
164
+ type PaginationUiSlot = 'root' | 'list' | 'listItem' | 'ellipsis' | 'first' | 'prev' | 'next' | 'last';
165
+ /**
166
+ * UI class overrides for the Pagination component.
167
+ */
168
+ type PaginationUi = UiClass<PaginationUiSlot>;
169
169
  //#endregion
170
170
  export { Pages, PaginationButtonProps, PaginationCompactEmits, PaginationCompactProps, PaginationCompactSlots, PaginationEllipsisProps, PaginationListItemProps, PaginationListProps, PaginationRootEmits, PaginationRootProps, PaginationUi, PaginationUiSlot };