@soybeanjs/ui 0.15.4 → 0.16.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 (131) hide show
  1. package/dist/components/autocomplete/variants.js +1 -1
  2. package/dist/components/calendar/calendar.js +1 -0
  3. package/dist/components/calendar/calendar.vue.d.ts +24 -0
  4. package/dist/components/calendar/index.d.ts +4 -0
  5. package/dist/components/calendar/index.js +1 -0
  6. package/dist/components/calendar/types.d.ts +13 -0
  7. package/dist/components/calendar/variants.js +1 -0
  8. package/dist/components/card/card.js +1 -1
  9. package/dist/components/card/types.d.ts +2 -10
  10. package/dist/components/carousel/carousel.vue.d.ts +12 -1
  11. package/dist/components/carousel/index.d.ts +3 -3
  12. package/dist/components/color-picker/color-picker.vue.d.ts +2 -2
  13. package/dist/components/date-field/date-field.js +1 -0
  14. package/dist/components/date-field/date-field.vue.d.ts +15 -0
  15. package/dist/components/date-field/index.d.ts +4 -0
  16. package/dist/components/date-field/index.js +1 -0
  17. package/dist/components/date-field/types.d.ts +13 -0
  18. package/dist/components/date-field/variants.js +1 -0
  19. package/dist/components/date-picker/date-picker.js +1 -0
  20. package/dist/components/date-picker/date-picker.vue.d.ts +24 -0
  21. package/dist/components/date-picker/index.d.ts +4 -0
  22. package/dist/components/date-picker/index.js +1 -0
  23. package/dist/components/date-picker/types.d.ts +24 -0
  24. package/dist/components/date-picker/variants.js +1 -0
  25. package/dist/components/date-range-field/date-range-field.js +1 -0
  26. package/dist/components/date-range-field/date-range-field.vue.d.ts +29 -0
  27. package/dist/components/date-range-field/index.d.ts +4 -0
  28. package/dist/components/date-range-field/index.js +1 -0
  29. package/dist/components/date-range-field/types.d.ts +31 -0
  30. package/dist/components/date-range-field/variants.js +1 -0
  31. package/dist/components/date-range-picker/date-range-picker.js +1 -0
  32. package/dist/components/date-range-picker/date-range-picker.vue.d.ts +29 -0
  33. package/dist/components/date-range-picker/index.d.ts +4 -0
  34. package/dist/components/date-range-picker/index.js +1 -0
  35. package/dist/components/date-range-picker/types.d.ts +31 -0
  36. package/dist/components/date-range-picker/variants.js +1 -0
  37. package/dist/components/layout/layout-classic.js +1 -1
  38. package/dist/components/month-picker/index.d.ts +4 -0
  39. package/dist/components/month-picker/index.js +1 -0
  40. package/dist/components/month-picker/month-picker.js +1 -0
  41. package/dist/components/month-picker/month-picker.vue.d.ts +24 -0
  42. package/dist/components/month-picker/types.d.ts +44 -0
  43. package/dist/components/month-picker/variants.js +1 -0
  44. package/dist/components/month-range-picker/index.d.ts +4 -0
  45. package/dist/components/month-range-picker/index.js +1 -0
  46. package/dist/components/month-range-picker/month-range-picker.js +1 -0
  47. package/dist/components/month-range-picker/month-range-picker.vue.d.ts +29 -0
  48. package/dist/components/month-range-picker/types.d.ts +47 -0
  49. package/dist/components/month-range-picker/variants.js +1 -0
  50. package/dist/components/range-calendar/index.d.ts +4 -0
  51. package/dist/components/range-calendar/index.js +1 -0
  52. package/dist/components/range-calendar/range-calendar.js +1 -0
  53. package/dist/components/range-calendar/range-calendar.vue.d.ts +25 -0
  54. package/dist/components/range-calendar/types.d.ts +62 -0
  55. package/dist/components/range-calendar/variants.js +1 -0
  56. package/dist/components/time-field/index.d.ts +4 -0
  57. package/dist/components/time-field/index.js +1 -0
  58. package/dist/components/time-field/time-field.js +1 -0
  59. package/dist/components/time-field/time-field.vue.d.ts +22 -0
  60. package/dist/components/time-field/types.d.ts +25 -0
  61. package/dist/components/time-field/variants.js +1 -0
  62. package/dist/components/time-picker/index.d.ts +4 -0
  63. package/dist/components/time-picker/index.js +1 -0
  64. package/dist/components/time-picker/time-picker.js +1 -0
  65. package/dist/components/time-picker/time-picker.vue.d.ts +24 -0
  66. package/dist/components/time-picker/types.d.ts +35 -0
  67. package/dist/components/time-picker/variants.js +1 -0
  68. package/dist/components/time-range-field/index.d.ts +4 -0
  69. package/dist/components/time-range-field/index.js +1 -0
  70. package/dist/components/time-range-field/time-range-field.js +1 -0
  71. package/dist/components/time-range-field/time-range-field.vue.d.ts +28 -0
  72. package/dist/components/time-range-field/types.d.ts +31 -0
  73. package/dist/components/time-range-field/variants.js +1 -0
  74. package/dist/components/time-range-picker/index.d.ts +4 -0
  75. package/dist/components/time-range-picker/index.js +1 -0
  76. package/dist/components/time-range-picker/time-range-picker.js +1 -0
  77. package/dist/components/time-range-picker/time-range-picker.vue.d.ts +28 -0
  78. package/dist/components/time-range-picker/types.d.ts +38 -0
  79. package/dist/components/time-range-picker/variants.js +1 -0
  80. package/dist/components/year-picker/index.d.ts +4 -0
  81. package/dist/components/year-picker/index.js +1 -0
  82. package/dist/components/year-picker/types.d.ts +44 -0
  83. package/dist/components/year-picker/variants.js +1 -0
  84. package/dist/components/year-picker/year-picker.js +1 -0
  85. package/dist/components/year-picker/year-picker.vue.d.ts +24 -0
  86. package/dist/components/year-range-picker/index.d.ts +4 -0
  87. package/dist/components/year-range-picker/index.js +1 -0
  88. package/dist/components/year-range-picker/types.d.ts +48 -0
  89. package/dist/components/year-range-picker/variants.js +1 -0
  90. package/dist/components/year-range-picker/year-range-picker.js +1 -0
  91. package/dist/components/year-range-picker/year-range-picker.vue.d.ts +29 -0
  92. package/dist/constants/components.d.ts +14 -0
  93. package/dist/constants/components.js +1 -1
  94. package/dist/index.d.ts +138 -96
  95. package/dist/index.js +1 -1
  96. package/dist/node_modules/.pnpm/embla-carousel@8.6.0/node_modules/embla-carousel/esm/components/Alignment.d.ts +4 -0
  97. package/dist/node_modules/.pnpm/embla-carousel@8.6.0/node_modules/embla-carousel/esm/components/Animations.d.ts +11 -0
  98. package/dist/node_modules/.pnpm/embla-carousel@8.6.0/node_modules/embla-carousel/esm/components/Axis.d.ts +16 -0
  99. package/dist/node_modules/.pnpm/embla-carousel@8.6.0/node_modules/embla-carousel/esm/components/Counter.d.ts +9 -0
  100. package/dist/node_modules/.pnpm/embla-carousel@8.6.0/node_modules/embla-carousel/esm/components/DragHandler.d.ts +13 -0
  101. package/dist/node_modules/.pnpm/embla-carousel@8.6.0/node_modules/embla-carousel/esm/components/DragTracker.d.ts +4 -0
  102. package/dist/node_modules/.pnpm/embla-carousel@8.6.0/node_modules/embla-carousel/esm/components/EmblaCarousel.d.ts +31 -0
  103. package/dist/node_modules/.pnpm/embla-carousel@8.6.0/node_modules/embla-carousel/esm/components/Engine.d.ts +67 -0
  104. package/dist/node_modules/.pnpm/embla-carousel@8.6.0/node_modules/embla-carousel/esm/components/EventHandler.d.ts +29 -0
  105. package/dist/node_modules/.pnpm/embla-carousel@8.6.0/node_modules/embla-carousel/esm/components/EventStore.d.ts +10 -0
  106. package/dist/node_modules/.pnpm/embla-carousel@8.6.0/node_modules/embla-carousel/esm/components/Limit.d.ts +13 -0
  107. package/dist/node_modules/.pnpm/embla-carousel@8.6.0/node_modules/embla-carousel/esm/components/NodeRects.d.ts +11 -0
  108. package/dist/node_modules/.pnpm/embla-carousel@8.6.0/node_modules/embla-carousel/esm/components/Options.d.ts +43 -0
  109. package/dist/node_modules/.pnpm/embla-carousel@8.6.0/node_modules/embla-carousel/esm/components/OptionsHandler.d.ts +11 -0
  110. package/dist/node_modules/.pnpm/embla-carousel@8.6.0/node_modules/embla-carousel/esm/components/PercentOfView.d.ts +6 -0
  111. package/dist/node_modules/.pnpm/embla-carousel@8.6.0/node_modules/embla-carousel/esm/components/Plugins.d.ts +20 -0
  112. package/dist/node_modules/.pnpm/embla-carousel@8.6.0/node_modules/embla-carousel/esm/components/ResizeHandler.d.ts +11 -0
  113. package/dist/node_modules/.pnpm/embla-carousel@8.6.0/node_modules/embla-carousel/esm/components/ScrollBody.d.ts +14 -0
  114. package/dist/node_modules/.pnpm/embla-carousel@8.6.0/node_modules/embla-carousel/esm/components/ScrollBounds.d.ts +8 -0
  115. package/dist/node_modules/.pnpm/embla-carousel@8.6.0/node_modules/embla-carousel/esm/components/ScrollContain.d.ts +4 -0
  116. package/dist/node_modules/.pnpm/embla-carousel@8.6.0/node_modules/embla-carousel/esm/components/ScrollLooper.d.ts +6 -0
  117. package/dist/node_modules/.pnpm/embla-carousel@8.6.0/node_modules/embla-carousel/esm/components/ScrollProgress.d.ts +6 -0
  118. package/dist/node_modules/.pnpm/embla-carousel@8.6.0/node_modules/embla-carousel/esm/components/ScrollTarget.d.ts +12 -0
  119. package/dist/node_modules/.pnpm/embla-carousel@8.6.0/node_modules/embla-carousel/esm/components/ScrollTo.d.ts +7 -0
  120. package/dist/node_modules/.pnpm/embla-carousel@8.6.0/node_modules/embla-carousel/esm/components/SlideFocus.d.ts +10 -0
  121. package/dist/node_modules/.pnpm/embla-carousel@8.6.0/node_modules/embla-carousel/esm/components/SlideLooper.d.ts +19 -0
  122. package/dist/node_modules/.pnpm/embla-carousel@8.6.0/node_modules/embla-carousel/esm/components/SlideRegistry.d.ts +6 -0
  123. package/dist/node_modules/.pnpm/embla-carousel@8.6.0/node_modules/embla-carousel/esm/components/SlidesHandler.d.ts +11 -0
  124. package/dist/node_modules/.pnpm/embla-carousel@8.6.0/node_modules/embla-carousel/esm/components/SlidesInView.d.ts +9 -0
  125. package/dist/node_modules/.pnpm/embla-carousel@8.6.0/node_modules/embla-carousel/esm/components/SlidesToScroll.d.ts +7 -0
  126. package/dist/node_modules/.pnpm/embla-carousel@8.6.0/node_modules/embla-carousel/esm/components/Translate.d.ts +8 -0
  127. package/dist/node_modules/.pnpm/embla-carousel@8.6.0/node_modules/embla-carousel/esm/components/Vector1d.d.ts +9 -0
  128. package/dist/node_modules/.pnpm/embla-carousel@8.6.0/node_modules/embla-carousel/esm/components/utils.d.ts +4 -0
  129. package/dist/styles.css +99 -27
  130. package/dist/theme/shared.js +1 -1
  131. package/package.json +11 -10
@@ -1 +1 @@
1
- import{tv as e}from"tailwind-variants";const t=e({slots:{root:`flex w-full flex-col`,anchor:[`group flex w-full items-center rounded-md border border-input bg-background text-foreground shadow-xs transition-all-150`,`outline-none focus-within:ring-3 focus-within:ring-offset-background focus-within:ring-primary/30`,`data-[disabled]:cursor-not-allowed data-[disabled]:opacity-50`],inputRoot:`flex min-w-0 grow items-center gap-2 bg-transparent`,inputControl:`min-w-0 grow border-0 bg-transparent px-0 outline-none placeholder:text-muted-foreground`,inputIcon:`shrink-0 text-muted-foreground`,inputClearable:[`flex shrink-0 items-center justify-center rounded-sm text-muted-foreground opacity-70 outline-none transition-opacity`,`hover:opacity-100 focus-visible:ring-2 focus-visible:ring-ring/50 focus-visible:ring-offset-1`,`disabled:cursor-not-allowed disabled:opacity-40`],trigger:`flex shrink-0 items-center justify-center text-muted-foreground outline-none disabled:cursor-not-allowed`,triggerIcon:`size-1em`,content:[`relative z-50 min-w-[--soybean-popper-anchor-width] overflow-hidden rounded-md border bg-popover text-popover-foreground shadow-md`,`data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95`,`data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95`,`data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2`],viewport:`max-h-80 overflow-y-auto overflow-x-hidden p-1`,empty:`py-6 text-center text-sm text-muted-foreground`,group:`overflow-hidden`,groupLabel:`px-2 py-1.5 text-xs font-medium text-muted-foreground`,item:[`relative flex w-full items-center rounded-sm outline-none select-none`,`data-[highlighted]:bg-accent data-[highlighted]:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50`],itemIcon:`shrink-0 text-muted-foreground`,itemText:`grow truncate text-left`,itemIndicator:`ml-auto shrink-0 text-muted-foreground`,separator:`-mx-1 my-1 h-px bg-border`},variants:{size:{xs:{anchor:`min-h-6 gap-1 px-1.5 text-2xs`,inputRoot:`gap-1`,content:`text-2xs`,viewport:`max-h-70 p-0.75`,groupLabel:`px-1 py-1 text-3xs`,item:`gap-1 px-1 py-1`,separator:`-mx-0.75 my-0.75`},sm:{anchor:`min-h-7 gap-1.5 px-2 text-xs`,inputRoot:`gap-1.5`,content:`text-xs`,viewport:`max-h-75 p-0.875`,groupLabel:`px-1.5 py-1.25 text-2xs`,item:`gap-1.5 px-1.5 py-1.25`,separator:`-mx-0.875 my-0.875`},md:{anchor:`min-h-8 gap-2 px-2.5 text-sm`,inputRoot:`gap-2`,content:`text-sm`,viewport:`max-h-80 p-1`,groupLabel:`px-2 py-1.5 text-xs`,item:`gap-2 px-2 py-1.5`,separator:`-mx-1 my-1`},lg:{anchor:`min-h-9 gap-2.5 px-3 text-base`,inputRoot:`gap-2.5`,content:`text-base`,viewport:`max-h-90 p-1.25`,groupLabel:`px-2.5 py-1.75 text-sm`,item:`gap-2.5 px-2.5 py-1.75`,separator:`-mx-1.25 my-1.25`},xl:{anchor:`min-h-10 gap-3 px-3.5 text-lg`,inputRoot:`gap-3`,content:`text-lg`,viewport:`max-h-100 p-1.5`,groupLabel:`px-3 py-2 text-base`,item:`gap-3 px-3 py-2`,separator:`-mx-1.5 my-1.5`},"2xl":{anchor:`min-h-12 gap-3.5 px-4 text-xl`,inputRoot:`gap-3.5`,content:`text-xl`,viewport:`max-h-115 p-1.75`,groupLabel:`px-3.5 py-2.5 text-lg`,item:`gap-3.5 px-3.5 py-2.5`,separator:`-mx-1.75 my-1.75`}}},defaultVariants:{size:`md`}});export{t as autocompleteVariants};
1
+ import{tv as e}from"tailwind-variants";const t=e({slots:{root:`flex w-full flex-col`,anchor:[`group flex w-full items-center rounded-md border border-input bg-background text-foreground shadow-xs transition-all-150`,`outline-none focus-within:ring-3 focus-within:ring-offset-background focus-within:ring-primary/30`,`data-[disabled]:cursor-not-allowed data-[disabled]:opacity-50`],inputRoot:`flex min-w-0 grow items-center gap-2 bg-transparent`,inputControl:`min-w-0 grow border-0 bg-transparent px-0 outline-none placeholder:text-muted-foreground`,inputIcon:`shrink-0 text-muted-foreground`,inputClearable:[`flex shrink-0 items-center justify-center rounded-sm text-muted-foreground opacity-70 outline-none transition-opacity`,`hover:opacity-100 focus-visible:ring-2 focus-visible:ring-ring/50 focus-visible:ring-offset-1`,`disabled:cursor-not-allowed disabled:opacity-40`],trigger:`flex shrink-0 items-center justify-center text-muted-foreground outline-none disabled:cursor-not-allowed`,triggerIcon:`size-1em`,popup:[`relative z-50 min-w-[--soybean-popper-anchor-width] overflow-hidden rounded-md border bg-popover text-popover-foreground shadow-md`,`data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95`,`data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95`,`data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2`],viewport:`max-h-80 overflow-y-auto overflow-x-hidden p-1`,empty:`py-6 text-center text-sm text-muted-foreground`,group:`overflow-hidden`,groupLabel:`px-2 py-1.5 text-xs font-medium text-muted-foreground`,item:[`relative flex w-full items-center rounded-sm outline-none select-none`,`data-[highlighted]:bg-accent data-[highlighted]:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50`],itemIcon:`shrink-0 text-muted-foreground`,itemText:`grow truncate text-left`,itemIndicator:`ml-auto shrink-0 text-muted-foreground`,separator:`-mx-1 my-1 h-px bg-border`},variants:{size:{xs:{anchor:`min-h-6 gap-1 px-1.5 text-2xs`,inputRoot:`gap-1`,popup:`text-2xs`,viewport:`max-h-70 p-0.75`,groupLabel:`px-1 py-1 text-3xs`,item:`gap-1 px-1 py-1`,separator:`-mx-0.75 my-0.75`},sm:{anchor:`min-h-7 gap-1.5 px-2 text-xs`,inputRoot:`gap-1.5`,popup:`text-xs`,viewport:`max-h-75 p-0.875`,groupLabel:`px-1.5 py-1.25 text-2xs`,item:`gap-1.5 px-1.5 py-1.25`,separator:`-mx-0.875 my-0.875`},md:{anchor:`min-h-8 gap-2 px-2.5 text-sm`,inputRoot:`gap-2`,popup:`text-sm`,viewport:`max-h-80 p-1`,groupLabel:`px-2 py-1.5 text-xs`,item:`gap-2 px-2 py-1.5`,separator:`-mx-1 my-1`},lg:{anchor:`min-h-9 gap-2.5 px-3 text-base`,inputRoot:`gap-2.5`,popup:`text-base`,viewport:`max-h-90 p-1.25`,groupLabel:`px-2.5 py-1.75 text-sm`,item:`gap-2.5 px-2.5 py-1.75`,separator:`-mx-1.25 my-1.25`},xl:{anchor:`min-h-10 gap-3 px-3.5 text-lg`,inputRoot:`gap-3`,popup:`text-lg`,viewport:`max-h-100 p-1.5`,groupLabel:`px-3 py-2 text-base`,item:`gap-3 px-3 py-2`,separator:`-mx-1.5 my-1.5`},"2xl":{anchor:`min-h-12 gap-3.5 px-4 text-xl`,inputRoot:`gap-3.5`,popup:`text-xl`,viewport:`max-h-115 p-1.75`,groupLabel:`px-3.5 py-2.5 text-lg`,item:`gap-3.5 px-3.5 py-2.5`,separator:`-mx-1.75 my-1.75`}}},defaultVariants:{size:`md`}});export{t as autocompleteVariants};
@@ -0,0 +1 @@
1
+ import{mergeBaseVariants as e,mergeSlotVariants as t}from"../../theme/shared.js";import{miniSizeMap as n}from"../../theme/config.js";import"../../theme/index.js";import{buttonVariants as r}from"../button/variants.js";import i from"../icon/icon.js";import a from"../select/select.js";import{calendarVariants as o}from"./variants.js";import{computed as s,createBlock as c,createSlots as l,createTextVNode as u,createVNode as d,defineComponent as f,guardReactiveProps as p,mergeProps as m,normalizeProps as h,openBlock as g,renderSlot as _,toDisplayString as v,toHandlers as y,unref as b,withCtx as x}from"vue";import{useForwardListeners as S,useOmitProps as C}from"@soybeanjs/headless/composables";import{CalendarCompact as w,provideCalendarUi as T}from"@soybeanjs/headless";const E=f({name:`SCalendar`,__name:`calendar`,props:{class:{},size:{},ui:{},headerProps:{},headingProps:{},prevProps:{},nextProps:{},gridProps:{},gridHeadProps:{},gridBodyProps:{},gridRowProps:{},headCellProps:{},cellProps:{},cellTriggerProps:{},defaultValue:{},defaultPlaceholder:{},placeholder:{},pagedNavigation:{type:Boolean},preventDeselect:{type:Boolean},weekStartsOn:{},weekdayFormat:{},calendarLabel:{},fixedWeeks:{type:Boolean},maxValue:{},minValue:{},locale:{},numberOfMonths:{},disabled:{type:Boolean},readonly:{type:Boolean},initialFocus:{type:Boolean},isDateDisabled:{type:Function},isDateUnavailable:{type:Function},dir:{},nextPage:{type:Function},prevPage:{type:Function},modelValue:{},multiple:{},disableDaysOutsideCurrentView:{type:Boolean},asChild:{type:Boolean},as:{}},emits:[`update:modelValue`,`update:placeholder`],setup(f,{emit:E}){let D=f,O=E,k=C(D,[`class`,`size`,`ui`]),A=S(O),j=s(()=>t(e(o({size:D.size}),{prev:r({size:D.size,color:`accent`,variant:`pure`,fitContent:!0}),next:r({size:D.size,color:`accent`,variant:`pure`,fitContent:!0})}),D.ui,{root:D.class})),M=s(()=>n[D.size||`md`]);return T(j),(e,t)=>(g(),c(b(w),m(b(k),y(b(A))),l({prev:x(t=>[_(e.$slots,`prev`,h(p(t)),()=>[d(i,{icon:`lucide:chevron-left`})])]),next:x(t=>[_(e.$slots,`next`,h(p(t)),()=>[d(i,{icon:`lucide:chevron-right`})])]),"head-cell":x(t=>[_(e.$slots,`head-cell`,h(p(t)),()=>[u(v(t.label),1)])]),day:x(t=>[_(e.$slots,`day`,h(p(t)),()=>[u(v(t.dayValue),1)])]),default:x(t=>[_(e.$slots,`default`,h(p(t)))]),_:2},[e.$slots.heading?{name:`heading`,fn:x(t=>[_(e.$slots,`heading`,h(p(t)))]),key:`0`}:{name:`heading`,fn:x(e=>[d(a,{size:M.value,clearable:!1,items:e.monthOptions,"model-value":e.selectedMonth,"trigger-props":{"aria-label":`Select month`},ui:{trigger:`w-fit`},"onUpdate:modelValue":e.onMonthChange},null,8,[`size`,`items`,`model-value`,`onUpdate:modelValue`]),d(a,{size:M.value,clearable:!1,items:e.yearOptions,"model-value":e.selectedYear,"trigger-props":{"aria-label":`Select year`},ui:{popup:`max-h-72`,trigger:`w-fit`},"onUpdate:modelValue":e.onYearChange},null,8,[`size`,`items`,`model-value`,`onUpdate:modelValue`])]),key:`1`}]),1040))}});export{E as default};
@@ -0,0 +1,24 @@
1
+ import { CalendarProps, CalendarSlots } from "./types.js";
2
+ import * as _$vue from "vue";
3
+ import * as _$_soybeanjs_headless0 from "@soybeanjs/headless";
4
+ import * as _$_internationalized_date0 from "@internationalized/date";
5
+
6
+ //#region src/components/calendar/calendar.vue.d.ts
7
+ declare const __VLS_export: <M extends boolean = false>(__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<{
8
+ props: _$vue.PublicProps & __VLS_PrettifyLocal<CalendarProps<M> & {
9
+ "onUpdate:modelValue"?: ((date: _$_soybeanjs_headless0.CalendarModelValue<M>) => any) | undefined;
10
+ "onUpdate:placeholder"?: ((date: _$_internationalized_date0.DateValue) => any) | undefined;
11
+ }> & (typeof globalThis extends {
12
+ __VLS_PROPS_FALLBACK: infer P;
13
+ } ? P : {});
14
+ expose: (exposed: {}) => void;
15
+ attrs: any;
16
+ slots: CalendarSlots<M>;
17
+ emit: ((evt: "update:modelValue", date: _$_soybeanjs_headless0.CalendarModelValue<M>) => void) & ((evt: "update:placeholder", date: _$_internationalized_date0.DateValue) => void);
18
+ }>) => _$vue.VNode & {
19
+ __ctx?: Awaited<typeof __VLS_setup>;
20
+ };
21
+ declare const _default: typeof __VLS_export;
22
+ type __VLS_PrettifyLocal<T> = (T extends any ? { [K in keyof T]: T[K] } : { [K in keyof T as K]: T[K] }) & {};
23
+ //#endregion
24
+ export { _default };
@@ -0,0 +1,4 @@
1
+ import { CalendarEmits, CalendarProps, CalendarSlots } from "./types.js";
2
+ import { _default } from "./calendar.vue.js";
3
+ import { CalendarCellProps, CalendarCellTriggerProps, CalendarGridBodyProps, CalendarGridHeadProps, CalendarGridProps, CalendarGridRowProps, CalendarHeadCellProps, CalendarHeaderProps, CalendarHeadingProps, CalendarHeadingSlotProps, CalendarModelValue, CalendarNextProps, CalendarPrevProps, CalendarRootEmits, CalendarRootProps, CalendarRootSlotProps, CalendarUi, CalendarUiSlot } from "@soybeanjs/headless/calendar";
4
+ export { type CalendarCellProps, type CalendarCellTriggerProps, type CalendarGridBodyProps, type CalendarGridHeadProps, type CalendarGridProps, type CalendarGridRowProps, type CalendarHeadCellProps, type CalendarHeaderProps, type CalendarHeadingProps, type CalendarHeadingSlotProps, type CalendarModelValue, type CalendarNextProps, type CalendarPrevProps, type CalendarRootEmits, type CalendarRootProps, type CalendarRootSlotProps, type CalendarUi, type CalendarUiSlot };
@@ -0,0 +1 @@
1
+ import"./calendar.js";
@@ -0,0 +1,13 @@
1
+ import { ThemeSize } from "../../theme/types.js";
2
+ import { CalendarCompactEmits, CalendarCompactProps, CalendarCompactSlots, CalendarUi, ClassValue } from "@soybeanjs/headless";
3
+
4
+ //#region src/components/calendar/types.d.ts
5
+ interface CalendarProps<M extends boolean = false> extends CalendarCompactProps<M> {
6
+ class?: ClassValue;
7
+ size?: ThemeSize;
8
+ ui?: Partial<CalendarUi>;
9
+ }
10
+ type CalendarEmits<M extends boolean = false> = CalendarCompactEmits<M>;
11
+ type CalendarSlots<M extends boolean = false> = CalendarCompactSlots<M>;
12
+ //#endregion
13
+ export { CalendarEmits, CalendarProps, CalendarSlots };
@@ -0,0 +1 @@
1
+ import{tv as e}from"tailwind-variants";const t=e({slots:{root:`inline-flex flex-col rounded-md border shadow-sm`,header:`flex items-center justify-between`,heading:`flex items-center justify-center font-medium`,prev:``,next:``,grid:`inline-table border-collapse`,gridHead:``,gridBody:``,gridRow:``,headCell:`rounded-md text-center font-normal text-muted-foreground`,cell:[`flex-1 text-center align-middle`,`focus-within:relative focus-within:z-20 [&:has([data-selected])]:rounded-md [&:has([data-selected])]:bg-accent`],cellTrigger:[`inline-flex items-center justify-center w-full h-full rounded-md transition-colors cursor-pointer`,`outline-none focus-visible:ring-3 focus-visible:ring-offset-background focus-visible:ring-ring focus-visible:ring-primary/30`,`data-[selected]:bg-primary data-[selected]:text-primary-foreground data-[selected]:font-medium`,`[&:not([data-selected]):hover]:bg-accent [&:not([data-selected]):hover]:text-accent-foreground`,`data-[disabled]:cursor-not-allowed data-[disabled]:text-muted-foreground data-[disabled]:opacity-50`,`[&[data-today]:not([data-selected])]:bg-accent [&[data-today]:not([data-selected])]:text-accent-foreground`,`data-[unavailable]:line-through data-[outside-view]:text-muted-foreground`]},variants:{size:{xs:{root:`gap-3 text-2xs p-2`,header:`gap-1.5`,gridRow:`mt-1.5`,heading:`gap-1.5`,headCell:`h-6 w-6 text-3xs`,cell:`h-6 w-6`},sm:{root:`gap-3.5 text-xs p-2.5`,header:`gap-2`,gridRow:`mt-1.75`,heading:`gap-2`,headCell:`h-7 w-7 text-2xs`,cell:`h-7 w-7`},md:{root:`gap-4 text-sm p-3`,header:`gap-2.5`,gridRow:`mt-2`,heading:`gap-2.5`,headCell:`h-8 w-8 text-xs`,cell:`h-8 w-8`},lg:{root:`gap-4.5 text-base p-3.5`,header:`gap-3`,gridRow:`mt-2.25`,heading:`gap-3`,headCell:`h-9 w-9 text-sm`,cell:`h-9 w-9`},xl:{root:`gap-5 text-lg p-4`,header:`gap-3.5`,gridRow:`mt-2.5`,heading:`gap-3.5`,headCell:`h-10 w-10 text-base`,cell:`h-10 w-10`},"2xl":{root:`gap-6 text-xl p-5`,header:`gap-4`,gridRow:`mt-3`,heading:`gap-4`,headCell:`h-12 w-12 text-lg`,cell:`h-12 w-12`}}},defaultVariants:{size:`md`}});export{t as calendarVariants};
@@ -1 +1 @@
1
- import{mergeSlotVariants as e}from"../../theme/shared.js";import"../../theme/index.js";import{cardVariants as t}from"./variants.js";import{computed as n,createBlock as r,createCommentVNode as i,createTextVNode as a,createVNode as o,defineComponent as s,guardReactiveProps as c,mergeProps as l,normalizeProps as u,openBlock as d,renderSlot as f,toDisplayString as p,unref as m,useSlots as h,withCtx as g}from"vue";import{useOmitProps as _}from"@soybeanjs/headless/composables";import{CardContent as v,CardDescription as y,CardFooter as b,CardHeader as x,CardRoot as S,CardTitle as C,CardTitleRoot as w,provideCardUi as T}from"@soybeanjs/headless";const E=s({name:`SCard`,__name:`card`,props:{class:{},size:{},ui:{},title:{},description:{},scrollable:{type:Boolean,default:!0},split:{type:Boolean},headerProps:{},contentProps:{},footerProps:{},titleRootProps:{},titleProps:{},descriptionProps:{},defaultOpen:{type:Boolean,default:!0},open:{type:Boolean,default:void 0},disabled:{type:Boolean},unmountOnHide:{type:Boolean},asChild:{type:Boolean},as:{}},setup(s){let E=s,D=_(E,[`class`,`size`,`ui`,`title`,`description`,`scrollable`,`split`,`headerProps`,`contentProps`,`footerProps`,`titleRootProps`,`titleProps`,`descriptionProps`]),O=h(),k=n(()=>!!(O.header||O.title||O.description||O.extra||E.title||E.description));return T(n(()=>e(t({size:E.size,scrollable:E.scrollable,split:E.split}),E.ui,{root:E.class}))),(e,t)=>(d(),r(m(S),u(c(m(D))),{default:g(()=>[k.value?(d(),r(m(x),u(l({key:0},s.headerProps)),{default:g(()=>[f(e.$slots,`header`,{},()=>[o(m(w),u(c(s.titleRootProps)),{default:g(()=>[f(e.$slots,`title-leading`),o(m(C),u(c(s.titleProps)),{default:g(()=>[f(e.$slots,`title`,{},()=>[a(p(s.title),1)])]),_:3},16),f(e.$slots,`title-trailing`)]),_:3},16),f(e.$slots,`extra`),O.description||s.description?(d(),r(m(y),u(l({key:0},s.descriptionProps)),{default:g(()=>[f(e.$slots,`description`,{},()=>[a(p(s.description),1)])]),_:3},16)):i(`v-if`,!0)])]),_:3},16)):i(`v-if`,!0),o(m(v),u(c(s.contentProps)),{default:g(()=>[f(e.$slots,`default`)]),_:3},16),O.footer?(d(),r(m(b),u(l({key:1},s.footerProps)),{default:g(()=>[f(e.$slots,`footer`)]),_:3},16)):i(`v-if`,!0)]),_:3},16))}});export{E as default};
1
+ import{mergeSlotVariants as e}from"../../theme/shared.js";import"../../theme/index.js";import{cardVariants as t}from"./variants.js";import{computed as n,createBlock as r,createSlots as i,defineComponent as a,guardReactiveProps as o,normalizeProps as s,openBlock as c,renderSlot as l,unref as u,useSlots as d,withCtx as f}from"vue";import{useOmitProps as p}from"@soybeanjs/headless/composables";import{CardCompact as m,provideCardUi as h}from"@soybeanjs/headless";const g=a({name:`SCard`,__name:`card`,props:{class:{},size:{},ui:{},scrollable:{type:Boolean,default:!0},split:{type:Boolean},title:{},description:{},headerProps:{},contentProps:{},footerProps:{},titleRootProps:{},titleProps:{},descriptionProps:{},defaultOpen:{type:Boolean,default:!0},open:{type:Boolean,default:void 0},disabled:{type:Boolean},unmountOnHide:{type:Boolean},asChild:{type:Boolean},as:{}},setup(a){let g=a,_=p(g,[`class`,`size`,`ui`,`scrollable`,`split`]),v=d();return h(n(()=>e(t({size:g.size,scrollable:g.scrollable,split:g.split}),g.ui,{root:g.class}))),(e,t)=>(c(),r(u(m),s(o(u(_))),i({default:f(()=>[l(e.$slots,`default`)]),_:2},[v.header?{name:`header`,fn:f(()=>[l(e.$slots,`header`)]),key:`0`}:void 0,v[`title-leading`]?{name:`title-leading`,fn:f(()=>[l(e.$slots,`title-leading`)]),key:`1`}:void 0,v.title?{name:`title`,fn:f(()=>[l(e.$slots,`title`)]),key:`2`}:void 0,v[`title-trailing`]?{name:`title-trailing`,fn:f(()=>[l(e.$slots,`title-trailing`)]),key:`3`}:void 0,v.extra?{name:`extra`,fn:f(()=>[l(e.$slots,`extra`)]),key:`4`}:void 0,v.description?{name:`description`,fn:f(()=>[l(e.$slots,`description`)]),key:`5`}:void 0,v.footer?{name:`footer`,fn:f(()=>[l(e.$slots,`footer`)]),key:`6`}:void 0]),1040))}});export{g as default};
@@ -1,16 +1,14 @@
1
1
  import { ThemeSize } from "../../theme/types.js";
2
- import { CardContentProps, CardDescriptionProps, CardFooterProps, CardHeaderProps, CardRootProps, CardTitleProps, CardTitleRootProps, CardUi, ClassValue } from "@soybeanjs/headless";
2
+ import { CardCompactProps, CardUi, ClassValue } from "@soybeanjs/headless";
3
3
 
4
4
  //#region src/components/card/types.d.ts
5
- interface CardProps extends CardRootProps {
5
+ interface CardProps extends CardCompactProps {
6
6
  /**
7
7
  * root class
8
8
  */
9
9
  class?: ClassValue;
10
10
  size?: ThemeSize;
11
11
  ui?: Partial<CardUi>;
12
- title?: string;
13
- description?: string;
14
12
  /**
15
13
  * If true, the content will be scrollable when the root has height and content is taller than the root
16
14
  *
@@ -23,12 +21,6 @@ interface CardProps extends CardRootProps {
23
21
  * @default false
24
22
  */
25
23
  split?: boolean;
26
- headerProps?: CardHeaderProps;
27
- contentProps?: CardContentProps;
28
- footerProps?: CardFooterProps;
29
- titleRootProps?: CardTitleRootProps;
30
- titleProps?: CardTitleProps;
31
- descriptionProps?: CardDescriptionProps;
32
24
  }
33
25
  //#endregion
34
26
  export { CardProps };
@@ -1,9 +1,20 @@
1
+ import { EmblaCarouselType } from "../../node_modules/.pnpm/embla-carousel@8.6.0/node_modules/embla-carousel/esm/components/EmblaCarousel.js";
2
+ import { CarouselProps } from "./types.js";
3
+ import * as _$vue from "vue";
4
+ import * as _$_soybeanjs_headless0 from "@soybeanjs/headless";
5
+
1
6
  //#region src/components/carousel/carousel.vue.d.ts
2
7
  declare var __VLS_8: {};
3
8
  type __VLS_Slots = {} & {
4
9
  default?: (props: typeof __VLS_8) => any;
5
10
  };
6
- declare const __VLS_base: any;
11
+ declare const __VLS_base: _$vue.DefineComponent<CarouselProps, {}, {}, {}, {}, _$vue.ComponentOptionsMixin, _$vue.ComponentOptionsMixin, {
12
+ initApi: (api: EmblaCarouselType) => any;
13
+ }, string, _$vue.PublicProps, Readonly<CarouselProps> & Readonly<{
14
+ onInitApi?: ((api: EmblaCarouselType) => any) | undefined;
15
+ }>, {
16
+ orientation: _$_soybeanjs_headless0.DataOrientation;
17
+ }, {}, {}, {}, string, _$vue.ComponentProvideOptions, false, {}, any>;
7
18
  declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
8
19
  declare const _default: typeof __VLS_export;
9
20
  type __VLS_WithSlots<T, S> = T & {
@@ -1,8 +1,8 @@
1
+ import { CarouselEmits, CarouselProps } from "./types.js";
1
2
  import { _default } from "./carousel.vue.js";
2
3
  import { _default as _default$1 } from "./carousel-content.vue.js";
3
4
  import { _default as _default$2 } from "./carousel-item.vue.js";
4
5
  import { _default as _default$3 } from "./carousel-previous.vue.js";
5
6
  import { _default as _default$4 } from "./carousel-next.vue.js";
6
- import { CarouselEmits, CarouselProps } from "./types.js";
7
- import { CarouselApi, CarouselContentProps, CarouselItemProps, CarouselNextProps, CarouselOptions, CarouselPlugins, CarouselPreviousProps, CarouselRootEmits, CarouselRootProps, CarouselUi, CarouselUiSlot } from "@soybeanjs/headless/carousel";
8
- export { type CarouselApi, type CarouselContentProps, type CarouselItemProps, type CarouselNextProps, type CarouselOptions, type CarouselPlugins, type CarouselPreviousProps, type CarouselRootEmits, type CarouselRootProps, type CarouselUi, type CarouselUiSlot };
7
+ import { CarouselApi, CarouselContentProps, CarouselItemProps, CarouselNextProps, CarouselOptions, CarouselPlugin, CarouselPreviousProps, CarouselRootEmits, CarouselRootProps, CarouselUi, CarouselUiSlot } from "@soybeanjs/headless/carousel";
8
+ export { type CarouselApi, type CarouselContentProps, type CarouselItemProps, type CarouselNextProps, type CarouselOptions, type CarouselPlugin, type CarouselPreviousProps, type CarouselRootEmits, type CarouselRootProps, type CarouselUi, type CarouselUiSlot };
@@ -32,10 +32,10 @@ declare const __VLS_base: _$vue.DefineComponent<ColorPickerProps, {}, {}, {}, {}
32
32
  defaultOpen: boolean;
33
33
  modal: boolean;
34
34
  disabled: boolean;
35
- modelValue: string | ColorValue;
36
- defaultValue: string | ColorValue;
37
35
  placement: _$_soybeanjs_headless0.Placement;
38
36
  showArrow: boolean;
37
+ modelValue: string | ColorValue;
38
+ defaultValue: string | ColorValue;
39
39
  format: ColorFormat;
40
40
  defaultFormat: ColorFormat;
41
41
  colorSpace: ColorSpace;
@@ -0,0 +1 @@
1
+ import{mergeSlotVariants as e}from"../../theme/shared.js";import"../../theme/index.js";import{dateFieldVariants as t}from"./variants.js";import{computed as n,createBlock as r,defineComponent as i,mergeProps as a,openBlock as o,toHandlers as s,unref as c}from"vue";import{useForwardListeners as l,useOmitProps as u}from"@soybeanjs/headless/composables";import{DateFieldCompact as d,provideDateFieldUi as f}from"@soybeanjs/headless/date-field";const p=i({name:`SDateField`,__name:`date-field`,props:{class:{},size:{},ui:{},inputProps:{},defaultValue:{},defaultPlaceholder:{},placeholder:{},modelValue:{},hourCycle:{},step:{},granularity:{},hideTimeZone:{type:Boolean},maxValue:{},minValue:{},locale:{},disabled:{type:Boolean},readonly:{type:Boolean},isDateUnavailable:{type:Function},id:{},dir:{},asChild:{type:Boolean},as:{},name:{},required:{type:Boolean}},emits:[`update:modelValue`,`update:placeholder`],setup(i,{emit:p}){let m=i,h=l(p),g=u(m,[`class`,`size`,`ui`]);return f(n(()=>e(t({size:m.size}),m.ui,{root:m.class}))),(e,t)=>(o(),r(c(d),a(c(g),s(c(h))),null,16))}});export{p as default};
@@ -0,0 +1,15 @@
1
+ import { DateFieldProps } from "./types.js";
2
+ import * as _$vue from "vue";
3
+ import * as _$_internationalized_date0 from "@internationalized/date";
4
+
5
+ //#region src/components/date-field/date-field.vue.d.ts
6
+ declare const __VLS_export: _$vue.DefineComponent<DateFieldProps, {}, {}, {}, {}, _$vue.ComponentOptionsMixin, _$vue.ComponentOptionsMixin, {
7
+ "update:modelValue": (date: _$_internationalized_date0.DateValue | undefined) => any;
8
+ "update:placeholder": (date: _$_internationalized_date0.DateValue) => any;
9
+ }, string, _$vue.PublicProps, Readonly<DateFieldProps> & Readonly<{
10
+ "onUpdate:modelValue"?: ((date: _$_internationalized_date0.DateValue | undefined) => any) | undefined;
11
+ "onUpdate:placeholder"?: ((date: _$_internationalized_date0.DateValue) => any) | undefined;
12
+ }>, {}, {}, {}, {}, string, _$vue.ComponentProvideOptions, false, {}, any>;
13
+ declare const _default: typeof __VLS_export;
14
+ //#endregion
15
+ export { _default };
@@ -0,0 +1,4 @@
1
+ import { DateFieldEmits, DateFieldProps } from "./types.js";
2
+ import { _default } from "./date-field.vue.js";
3
+ import { DateFieldInputProps, DateFieldRootEmits, DateFieldRootProps, DateFieldUi as DateFieldUi$1, DateFieldUiSlot } from "@soybeanjs/headless/date-field";
4
+ export { type DateFieldInputProps, type DateFieldRootEmits, type DateFieldRootProps, type DateFieldUi$1 as DateFieldUi, type DateFieldUiSlot };
@@ -0,0 +1 @@
1
+ import"./date-field.js";
@@ -0,0 +1,13 @@
1
+ import { ThemeSize } from "../../theme/types.js";
2
+ import { ClassValue } from "@soybeanjs/headless";
3
+ import { DateFieldCompactEmits, DateFieldCompactProps, DateFieldUi } from "@soybeanjs/headless/date-field";
4
+
5
+ //#region src/components/date-field/types.d.ts
6
+ interface DateFieldProps extends DateFieldCompactProps {
7
+ class?: ClassValue;
8
+ size?: ThemeSize;
9
+ ui?: Partial<DateFieldUi>;
10
+ }
11
+ type DateFieldEmits = DateFieldCompactEmits;
12
+ //#endregion
13
+ export { DateFieldEmits, DateFieldProps };
@@ -0,0 +1 @@
1
+ import{tv as e}from"tailwind-variants";const t=e({slots:{root:[`group inline-flex flex-wrap items-center w-fit rounded-md border border-input bg-background transition-all-150`,`outline-none focus-within:ring-3 focus-within:ring-offset-background focus-within:ring-primary/30`,`data-[disabled]:opacity-60 data-[readonly]:bg-muted/40`,`data-[invalid]:border-destructive data-[invalid]:ring-3 data-[invalid]:ring-destructive/20`],input:[`inline-flex items-center justify-center rounded-sm px-0.5 text-center outline-none`,`tabular-nums leading-none`,`data-[segment=literal]:min-w-0 data-[segment=literal]:px-0 data-[segment=literal]:text-muted-foreground`,`data-[segment=timeZoneName]:min-w-fit data-[segment=timeZoneName]:px-1 data-[segment=timeZoneName]:text-muted-foreground`,`data-[placeholder]:text-muted-foreground`,`focus-visible:bg-accent/60 focus-visible:ring-2 focus-visible:ring-primary/20`,`data-[disabled]:cursor-not-allowed data-[readonly]:cursor-default`]},variants:{size:{xs:{root:`min-h-6 px-1.5 text-2xs`,input:`min-h-4.5 min-w-4.5`},sm:{root:`min-h-7 px-2 text-xs`,input:`min-h-5 min-w-5`},md:{root:`min-h-8 px-2.5 text-sm`,input:`min-h-5.5 min-w-5.5`},lg:{root:`min-h-9 px-3 text-base`,input:`min-h-6 min-w-6`},xl:{root:`min-h-10 px-3.5 text-lg`,input:`min-h-6.5 min-w-6.5`},"2xl":{root:`min-h-12 px-4 text-xl`,input:`min-h-8 min-w-8`}}},defaultVariants:{size:`md`}});export{t as dateFieldVariants};
@@ -0,0 +1 @@
1
+ import{mergeSlotVariants as e}from"../../theme/shared.js";import"../../theme/index.js";import t from"../icon/icon.js";import n from"../calendar/calendar.js";import{datePickerVariants as r}from"./variants.js";import{computed as i,createBlock as a,createElementBlock as o,createVNode as s,defineComponent as c,guardReactiveProps as l,mergeProps as u,normalizeProps as d,openBlock as f,renderSlot as p,toDisplayString as m,toHandlers as h,unref as g,withCtx as _}from"vue";import{useForwardListeners as v,useOmitProps as y}from"@soybeanjs/headless/composables";import{DatePickerPopup as b,DatePickerRoot as x,DatePickerTrigger as S,provideDatePickerUi as C}from"@soybeanjs/headless/date-picker";const w={key:0},T={key:1,class:`text-muted-foreground`},E=c({name:`SDatePicker`,__name:`date-picker`,props:{class:{},size:{},ui:{},triggerProps:{},popupProps:{}},emits:[`update:modelValue`,`update:placeholder`,`update:open`],setup(c,{emit:E}){let D=c,O=v(E),k=y(D,[`class`,`size`,`ui`,`triggerProps`,`popupProps`]);return C(i(()=>e(r({size:D.size}),D.ui,{root:D.class}))),(e,r)=>(f(),a(g(x),u(g(k),h(g(O))),{default:_(i=>[s(g(S),d(l(c.triggerProps)),{default:_(()=>[p(e.$slots,`trigger`,{open:i.open},()=>[s(t,{class:`size-4`,icon:`lucide:calendar`}),i.modelValue?(f(),o(`span`,w,m(i.modelValue.toString()),1)):(f(),o(`span`,T,`Pick a date`))])]),_:2},1040),s(g(b),d(l(c.popupProps)),{default:_(()=>[s(n,{"model-value":i.modelValue,placeholder:g(k).placeholder,locale:g(k).locale,dir:g(k).dir,disabled:g(k).disabled,readonly:g(k).readonly,"min-value":g(k).minValue,"max-value":g(k).maxValue,"is-date-unavailable":g(k).isDateUnavailable,"onUpdate:modelValue":r[0]||=t=>e.$emit(`update:modelValue`,t)},null,8,[`model-value`,`placeholder`,`locale`,`dir`,`disabled`,`readonly`,`min-value`,`max-value`,`is-date-unavailable`])]),_:2},1040),p(e.$slots,`default`,d(l(i)))]),_:3},16))}});export{E as default};
@@ -0,0 +1,24 @@
1
+ import { DatePickerProps, DatePickerSlots } from "./types.js";
2
+ import * as _$vue from "vue";
3
+ import * as _$_internationalized_date0 from "@internationalized/date";
4
+
5
+ //#region src/components/date-picker/date-picker.vue.d.ts
6
+ type __VLS_Slots = DatePickerSlots;
7
+ declare const __VLS_base: _$vue.DefineComponent<DatePickerProps, {}, {}, {}, {}, _$vue.ComponentOptionsMixin, _$vue.ComponentOptionsMixin, {
8
+ "update:open": (open: boolean) => any;
9
+ "update:modelValue": (date: _$_internationalized_date0.DateValue | undefined) => any;
10
+ "update:placeholder": (date: _$_internationalized_date0.DateValue) => any;
11
+ }, string, _$vue.PublicProps, Readonly<DatePickerProps> & Readonly<{
12
+ "onUpdate:open"?: ((open: boolean) => any) | undefined;
13
+ "onUpdate:modelValue"?: ((date: _$_internationalized_date0.DateValue | undefined) => any) | undefined;
14
+ "onUpdate:placeholder"?: ((date: _$_internationalized_date0.DateValue) => any) | undefined;
15
+ }>, {}, {}, {}, {}, string, _$vue.ComponentProvideOptions, false, {}, any>;
16
+ declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
17
+ declare const _default: typeof __VLS_export;
18
+ type __VLS_WithSlots<T, S> = T & {
19
+ new (): {
20
+ $slots: S;
21
+ };
22
+ };
23
+ //#endregion
24
+ export { _default };
@@ -0,0 +1,4 @@
1
+ import { DatePickerEmits, DatePickerProps, DatePickerSlots } from "./types.js";
2
+ import { _default } from "./date-picker.vue.js";
3
+ import { DatePickerPopupProps, DatePickerRootEmits, DatePickerRootProps, DatePickerTriggerProps, DatePickerUi, DatePickerUiSlot } from "@soybeanjs/headless/date-picker";
4
+ export { type DatePickerPopupProps, type DatePickerRootEmits, type DatePickerRootProps, type DatePickerTriggerProps, type DatePickerUi, type DatePickerUiSlot };
@@ -0,0 +1 @@
1
+ import"./date-picker.js";
@@ -0,0 +1,24 @@
1
+ import { ThemeSize } from "../../theme/types.js";
2
+ import { ClassValue, DatePickerPopupProps, DatePickerRootEmits, DatePickerRootProps, DatePickerTriggerProps, DatePickerUi } from "@soybeanjs/headless";
3
+ import { DateValue } from "@internationalized/date";
4
+
5
+ //#region src/components/date-picker/types.d.ts
6
+ interface DatePickerProps extends /* @vue-ignore */DatePickerRootProps {
7
+ class?: ClassValue;
8
+ size?: ThemeSize;
9
+ ui?: Partial<DatePickerUi>;
10
+ triggerProps?: DatePickerTriggerProps;
11
+ popupProps?: DatePickerPopupProps;
12
+ }
13
+ type DatePickerEmits = DatePickerRootEmits;
14
+ interface DatePickerSlots {
15
+ trigger?: (props: {
16
+ open: boolean;
17
+ }) => any;
18
+ default?: (props: {
19
+ modelValue: DateValue | undefined;
20
+ open: boolean;
21
+ }) => any;
22
+ }
23
+ //#endregion
24
+ export { DatePickerEmits, DatePickerProps, DatePickerSlots };
@@ -0,0 +1 @@
1
+ import{tv as e}from"tailwind-variants";const t=e({slots:{root:`inline-flex w-full flex-col gap-2`,trigger:[`inline-flex w-full items-center justify-start gap-2 rounded-md border border-input bg-background px-3 py-0 text-start font-normal shadow-xs transition-[background-color,color,box-shadow]`,`hover:bg-accent/50 hover:text-accent-foreground`,`focus-visible:outline-none focus-visible:ring-3 focus-visible:ring-offset-background focus-visible:ring-primary/30`,`data-[disabled]:opacity-60 data-[disabled]:cursor-not-allowed data-[disabled]:pointer-events-none`,`data-[state=open]:bg-accent/50 data-[state=open]:text-accent-foreground`],popup:[`z-50 overflow-hidden rounded-lg border border-border bg-popover p-0 text-popover-foreground shadow-md`,`data-[state=open]:animate-in data-[state=closed]:animate-out`,`data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0`,`data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95`],input:[`inline-flex min-w-5 items-center justify-center rounded-sm px-0.5 text-center outline-none`,`tabular-nums leading-none`,`data-[segment=literal]:min-w-0 data-[segment=literal]:px-0 data-[segment=literal]:text-muted-foreground`,`data-[segment=timeZoneName]:min-w-fit data-[segment=timeZoneName]:px-1 data-[segment=timeZoneName]:text-muted-foreground`,`data-[placeholder]:text-muted-foreground`,`focus-visible:bg-accent focus-visible:text-accent-foreground focus-visible:ring-2 focus-visible:ring-primary/20`,`data-[disabled]:cursor-not-allowed data-[readonly]:cursor-default`],calendar:``},variants:{size:{xs:{root:`text-2xs`,trigger:`h-6 px-2 text-2xs`,input:`min-h-4.5 min-w-4.5`},sm:{root:`text-xs`,trigger:`h-7 px-2.5 text-xs`,input:`min-h-5 min-w-5`},md:{root:`text-sm`,trigger:`h-8 px-3 text-sm`,input:`min-h-5.5 min-w-5.5`},lg:{root:`text-base`,trigger:`h-9 px-3.5 text-base`,input:`min-h-6 min-w-6`},xl:{root:`text-lg`,trigger:`h-10 px-4 text-lg`,input:`min-h-6.5 min-w-6.5`},"2xl":{root:`text-xl`,trigger:`h-12 px-5 text-xl`,input:`min-h-8 min-w-8`}}},defaultVariants:{size:`md`}});export{t as datePickerVariants};
@@ -0,0 +1 @@
1
+ import{mergeSlotVariants as e}from"../../theme/shared.js";import"../../theme/index.js";import{dateRangeFieldVariants as t}from"./variants.js";import{computed as n,createBlock as r,createSlots as i,createTextVNode as a,defineComponent as o,guardReactiveProps as s,mergeProps as c,normalizeProps as l,openBlock as u,renderSlot as d,toDisplayString as f,toHandlers as p,unref as m,withCtx as h}from"vue";import{useForwardListeners as g,useOmitProps as _}from"@soybeanjs/headless/composables";import{DateRangeFieldCompact as v,provideDateRangeFieldUi as y}from"@soybeanjs/headless/date-range-field";const b=o({name:`SDateRangeField`,__name:`date-range-field`,props:{class:{},size:{},ui:{},inputProps:{},separator:{default:`–`}},emits:[`update:modelValue`,`update:placeholder`,`update:startValue`,`update:endValue`],setup(o,{emit:b}){let x=o,S=g(b),C=_(x,[`class`,`size`,`ui`,`inputProps`,`separator`]);return y(n(()=>e(t({size:x.size}),x.ui,{root:x.class}))),(e,t)=>(u(),r(m(v),c({...m(C),inputProps:o.inputProps,separator:o.separator},p(m(S))),i({separator:h(()=>[d(e.$slots,`separator`,{},()=>[a(f(o.separator),1)])]),_:2},[e.$slots.default?{name:`default`,fn:h(t=>[d(e.$slots,`default`,l(s(t)))]),key:`0`}:void 0]),1040))}});export{b as default};
@@ -0,0 +1,29 @@
1
+ import { DateRangeFieldProps, DateRangeFieldSlots } from "./types.js";
2
+ import * as _$vue from "vue";
3
+ import * as _$_internationalized_date0 from "@internationalized/date";
4
+ import * as _$_soybeanjs_headless_date0 from "@soybeanjs/headless/date";
5
+
6
+ //#region src/components/date-range-field/date-range-field.vue.d.ts
7
+ type __VLS_Slots = DateRangeFieldSlots;
8
+ declare const __VLS_base: _$vue.DefineComponent<DateRangeFieldProps, {}, {}, {}, {}, _$vue.ComponentOptionsMixin, _$vue.ComponentOptionsMixin, {
9
+ "update:modelValue": (range: _$_soybeanjs_headless_date0.DateRange) => any;
10
+ "update:placeholder": (date: _$_internationalized_date0.DateValue) => any;
11
+ "update:startValue": (date: _$_internationalized_date0.DateValue | undefined) => any;
12
+ "update:endValue": (date: _$_internationalized_date0.DateValue | undefined) => any;
13
+ }, string, _$vue.PublicProps, Readonly<DateRangeFieldProps> & Readonly<{
14
+ "onUpdate:modelValue"?: ((range: _$_soybeanjs_headless_date0.DateRange) => any) | undefined;
15
+ "onUpdate:placeholder"?: ((date: _$_internationalized_date0.DateValue) => any) | undefined;
16
+ "onUpdate:startValue"?: ((date: _$_internationalized_date0.DateValue | undefined) => any) | undefined;
17
+ "onUpdate:endValue"?: ((date: _$_internationalized_date0.DateValue | undefined) => any) | undefined;
18
+ }>, {
19
+ separator: string;
20
+ }, {}, {}, {}, string, _$vue.ComponentProvideOptions, false, {}, any>;
21
+ declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
22
+ declare const _default: typeof __VLS_export;
23
+ type __VLS_WithSlots<T, S> = T & {
24
+ new (): {
25
+ $slots: S;
26
+ };
27
+ };
28
+ //#endregion
29
+ export { _default };
@@ -0,0 +1,4 @@
1
+ import { DateRangeFieldEmits, DateRangeFieldProps, DateRangeFieldSlotProps, DateRangeFieldSlots } from "./types.js";
2
+ import { _default } from "./date-range-field.vue.js";
3
+ import { DateRangeFieldInputProps as DateRangeFieldInputProps$1, DateRangeFieldRootEmits as DateRangeFieldRootEmits$1, DateRangeFieldRootProps as DateRangeFieldRootProps$1, DateRangeFieldUi as DateRangeFieldUi$1, DateRangeFieldUiSlot } from "@soybeanjs/headless/date-range-field";
4
+ export { type DateRangeFieldInputProps$1 as DateRangeFieldInputProps, type DateRangeFieldRootEmits$1 as DateRangeFieldRootEmits, type DateRangeFieldRootProps$1 as DateRangeFieldRootProps, type DateRangeFieldUi$1 as DateRangeFieldUi, type DateRangeFieldUiSlot };
@@ -0,0 +1 @@
1
+ import"./date-range-field.js";
@@ -0,0 +1,31 @@
1
+ import { ThemeSize } from "../../theme/types.js";
2
+ import { ClassValue } from "@soybeanjs/headless";
3
+ import { DateRangeFieldInputProps, DateRangeFieldRootEmits, DateRangeFieldRootProps, DateRangeFieldUi } from "@soybeanjs/headless/date-range-field";
4
+
5
+ //#region src/components/date-range-field/types.d.ts
6
+ interface DateRangeFieldSlotProps {
7
+ modelValue: DateRangeFieldRootProps['modelValue'];
8
+ startSegments: {
9
+ part: DateRangeFieldInputProps['part'];
10
+ value: string;
11
+ }[];
12
+ endSegments: {
13
+ part: DateRangeFieldInputProps['part'];
14
+ value: string;
15
+ }[];
16
+ isInvalid: boolean;
17
+ }
18
+ interface DateRangeFieldProps extends /* @vue-ignore */DateRangeFieldRootProps {
19
+ class?: ClassValue;
20
+ size?: ThemeSize;
21
+ ui?: Partial<DateRangeFieldUi>;
22
+ inputProps?: Omit<DateRangeFieldInputProps, 'part' | 'type'>;
23
+ separator?: string;
24
+ }
25
+ type DateRangeFieldEmits = DateRangeFieldRootEmits;
26
+ interface DateRangeFieldSlots {
27
+ default?: (props: DateRangeFieldSlotProps) => any;
28
+ separator?: () => any;
29
+ }
30
+ //#endregion
31
+ export { DateRangeFieldEmits, DateRangeFieldProps, DateRangeFieldSlotProps, DateRangeFieldSlots };
@@ -0,0 +1 @@
1
+ import{tv as e}from"tailwind-variants";const t=e({slots:{root:[`group inline-flex w-full flex-wrap items-center rounded-md border border-input bg-background px-2.5 transition-all-150 gap-1.5`,`focus-within:outline-none focus-within:ring-3 focus-within:ring-offset-background focus-within:ring-primary/30`,`data-[disabled]:opacity-60 data-[readonly]:bg-muted/40`,`data-[invalid]:border-destructive data-[invalid]:ring-3 data-[invalid]:ring-destructive/20`],input:[`inline-flex min-w-5 items-center justify-center rounded-sm px-0.5 text-center outline-none`,`tabular-nums leading-none`,`data-[segment=literal]:min-w-0 data-[segment=literal]:px-0 data-[segment=literal]:text-muted-foreground`,`data-[segment=timeZoneName]:min-w-fit data-[segment=timeZoneName]:px-1 data-[segment=timeZoneName]:text-muted-foreground`,`data-[placeholder]:text-muted-foreground`,`focus-visible:bg-accent/60 focus-visible:ring-2 focus-visible:ring-primary/20`,`data-[disabled]:cursor-not-allowed data-[readonly]:cursor-default`],separator:[`inline-flex items-center justify-center px-1 text-muted-foreground`,`select-none`]},variants:{size:{xs:{root:`min-h-6 px-1.5 text-2xs`,input:`min-h-4.5 min-w-4.5`,separator:`text-2xs`},sm:{root:`min-h-7 px-2 text-xs`,input:`min-h-5 min-w-5`,separator:`text-xs`},md:{root:`min-h-8 px-2.5 text-sm`,input:`min-h-5.5 min-w-5.5`,separator:`text-sm`},lg:{root:`min-h-9 px-3 text-base`,input:`min-h-6 min-w-6`,separator:`text-base`},xl:{root:`min-h-10 px-3.5 text-lg`,input:`min-h-6.5 min-w-6.5`,separator:`text-lg`},"2xl":{root:`min-h-12 px-4 text-xl`,input:`min-h-8 min-w-8`,separator:`text-xl`}}},defaultVariants:{size:`md`}});export{t as dateRangeFieldVariants};
@@ -0,0 +1 @@
1
+ import{mergeSlotVariants as e}from"../../theme/shared.js";import"../../theme/index.js";import t from"../icon/icon.js";import n from"../range-calendar/range-calendar.js";import{dateRangePickerVariants as r}from"./variants.js";import{computed as i,createBlock as a,createElementBlock as o,createVNode as s,defineComponent as c,guardReactiveProps as l,mergeProps as u,normalizeClass as d,normalizeProps as f,openBlock as p,renderSlot as m,toDisplayString as h,toHandlers as g,unref as _,withCtx as v}from"vue";import{useForwardListeners as y,useOmitProps as b}from"@soybeanjs/headless/composables";import{DateRangePickerCompact as x,provideDateRangePickerUi as S}from"@soybeanjs/headless/date-range-picker";const C={key:0},w={key:1,class:`text-muted-foreground`},T=c({name:`SDateRangePicker`,__name:`date-range-picker`,props:{class:{},size:{},ui:{},triggerProps:{},popupProps:{}},emits:[`update:modelValue`,`update:placeholder`,`update:startValue`,`update:endValue`,`update:open`],setup(c,{emit:T}){let E=c,D=y(T),O=b(E,[`class`,`size`,`ui`,`triggerProps`,`popupProps`]),k=i(()=>e(r({size:E.size}),E.ui,{root:E.class}));S(k);let A=e=>{if(e.start&&e.end)return`${e.start.toString()} – ${e.end.toString()}`;if(e.start)return`${e.start.toString()} – ...`};return(e,r)=>(p(),a(_(x),u({..._(O),triggerProps:c.triggerProps,popupProps:c.popupProps},g(_(D))),{trigger:v(n=>[m(e.$slots,`trigger`,f(l(n)),()=>[s(t,{class:`size-4`,icon:`lucide:calendar`}),A(n.modelValue)?(p(),o(`span`,C,h(A(n.modelValue)),1)):(p(),o(`span`,w,`Pick a date range`))])]),calendar:v(t=>[m(e.$slots,`calendar`,f(l(t)),()=>[s(n,{class:d(k.value.calendar),"model-value":t.modelValue,placeholder:t.placeholder,locale:_(O).locale,dir:_(O).dir,disabled:_(O).disabled,readonly:_(O).readonly,"min-value":_(O).minValue,"max-value":_(O).maxValue,"is-date-unavailable":_(O).isDateUnavailable,"data-slot":`calendar`,"onUpdate:modelValue":t.setRange,"onUpdate:placeholder":t.setPlaceholder},null,8,[`class`,`model-value`,`placeholder`,`locale`,`dir`,`disabled`,`readonly`,`min-value`,`max-value`,`is-date-unavailable`,`onUpdate:modelValue`,`onUpdate:placeholder`])])]),default:v(t=>[m(e.$slots,`default`,f(l(t)))]),_:3},16))}});export{T as default};
@@ -0,0 +1,29 @@
1
+ import { DateRangePickerProps, DateRangePickerSlots } from "./types.js";
2
+ import * as _$vue from "vue";
3
+ import * as _$_internationalized_date0 from "@internationalized/date";
4
+ import * as _$_soybeanjs_headless_date0 from "@soybeanjs/headless/date";
5
+
6
+ //#region src/components/date-range-picker/date-range-picker.vue.d.ts
7
+ type __VLS_Slots = DateRangePickerSlots;
8
+ declare const __VLS_base: _$vue.DefineComponent<DateRangePickerProps, {}, {}, {}, {}, _$vue.ComponentOptionsMixin, _$vue.ComponentOptionsMixin, {
9
+ "update:open": (open: boolean) => any;
10
+ "update:modelValue": (range: _$_soybeanjs_headless_date0.DateRange) => any;
11
+ "update:placeholder": (date: _$_internationalized_date0.DateValue) => any;
12
+ "update:startValue": (date: _$_internationalized_date0.DateValue | undefined) => any;
13
+ "update:endValue": (date: _$_internationalized_date0.DateValue | undefined) => any;
14
+ }, string, _$vue.PublicProps, Readonly<DateRangePickerProps> & Readonly<{
15
+ "onUpdate:open"?: ((open: boolean) => any) | undefined;
16
+ "onUpdate:modelValue"?: ((range: _$_soybeanjs_headless_date0.DateRange) => any) | undefined;
17
+ "onUpdate:placeholder"?: ((date: _$_internationalized_date0.DateValue) => any) | undefined;
18
+ "onUpdate:startValue"?: ((date: _$_internationalized_date0.DateValue | undefined) => any) | undefined;
19
+ "onUpdate:endValue"?: ((date: _$_internationalized_date0.DateValue | undefined) => any) | undefined;
20
+ }>, {}, {}, {}, {}, string, _$vue.ComponentProvideOptions, false, {}, any>;
21
+ declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
22
+ declare const _default: typeof __VLS_export;
23
+ type __VLS_WithSlots<T, S> = T & {
24
+ new (): {
25
+ $slots: S;
26
+ };
27
+ };
28
+ //#endregion
29
+ export { _default };
@@ -0,0 +1,4 @@
1
+ import { DateRangePickerEmits, DateRangePickerProps, DateRangePickerSlots } from "./types.js";
2
+ import { _default } from "./date-range-picker.vue.js";
3
+ import { DateRangePickerPopupProps, DateRangePickerRootEmits, DateRangePickerRootProps, DateRangePickerTriggerProps, DateRangePickerUi, DateRangePickerUiSlot } from "@soybeanjs/headless/date-range-picker";
4
+ export { type DateRangePickerPopupProps, type DateRangePickerRootEmits, type DateRangePickerRootProps, type DateRangePickerTriggerProps, type DateRangePickerUi, type DateRangePickerUiSlot };
@@ -0,0 +1 @@
1
+ import"./date-range-picker.js";
@@ -0,0 +1,31 @@
1
+ import { ThemeSize } from "../../theme/types.js";
2
+ import { ClassValue, DateRangePickerPopupProps, DateRangePickerRootEmits, DateRangePickerRootProps, DateRangePickerTriggerProps, DateRangePickerUi } from "@soybeanjs/headless";
3
+ import { DateRange, DateValue } from "@soybeanjs/headless/date";
4
+
5
+ //#region src/components/date-range-picker/types.d.ts
6
+ interface DateRangePickerProps extends /* @vue-ignore */DateRangePickerRootProps {
7
+ class?: ClassValue;
8
+ size?: ThemeSize;
9
+ ui?: Partial<DateRangePickerUi>;
10
+ triggerProps?: DateRangePickerTriggerProps;
11
+ popupProps?: DateRangePickerPopupProps;
12
+ }
13
+ type DateRangePickerEmits = DateRangePickerRootEmits;
14
+ interface DateRangePickerSlots {
15
+ trigger?: (props: {
16
+ open: boolean;
17
+ }) => any;
18
+ default?: (props: {
19
+ modelValue: DateRange;
20
+ open: boolean;
21
+ placeholder: DateValue;
22
+ setPlaceholder: (date: DateValue) => void;
23
+ setRange: (range: DateRange) => void;
24
+ }) => any;
25
+ calendar?: (props: {
26
+ modelValue: DateRange;
27
+ placeholder: DateValue;
28
+ }) => any;
29
+ }
30
+ //#endregion
31
+ export { DateRangePickerEmits, DateRangePickerProps, DateRangePickerSlots };
@@ -0,0 +1 @@
1
+ import{tv as e}from"tailwind-variants";const t=e({slots:{root:`inline-flex w-full flex-col gap-2`,trigger:[`inline-flex w-full items-center justify-start gap-2 rounded-md border border-input bg-background px-3 py-0 text-start font-normal shadow-xs transition-[background-color,color,box-shadow]`,`hover:bg-accent/50 hover:text-accent-foreground`,`focus-visible:outline-none focus-visible:ring-3 focus-visible:ring-offset-background focus-visible:ring-primary/30`,`data-[disabled]:opacity-60 data-[disabled]:cursor-not-allowed data-[disabled]:pointer-events-none`,`data-[state=open]:bg-accent/50 data-[state=open]:text-accent-foreground`],popup:[`z-50 overflow-hidden rounded-lg border border-border bg-popover p-0 text-popover-foreground shadow-md`,`data-[state=open]:animate-in data-[state=closed]:animate-out`,`data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0`,`data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95`],input:[`inline-flex min-w-5 items-center justify-center rounded-sm px-0.5 text-center outline-none`,`tabular-nums leading-none`,`data-[segment=literal]:min-w-0 data-[segment=literal]:px-0 data-[segment=literal]:text-muted-foreground`,`data-[segment=timeZoneName]:min-w-fit data-[segment=timeZoneName]:px-1 data-[segment=timeZoneName]:text-muted-foreground`,`data-[placeholder]:text-muted-foreground`,`focus-visible:bg-accent focus-visible:text-accent-foreground focus-visible:ring-2 focus-visible:ring-primary/20`,`data-[disabled]:cursor-not-allowed data-[readonly]:cursor-default`],calendar:``},variants:{size:{xs:{root:`text-2xs`,trigger:`h-6 px-2 text-2xs`,input:`min-h-4.5 min-w-4.5`},sm:{root:`text-xs`,trigger:`h-7 px-2.5 text-xs`,input:`min-h-5 min-w-5`},md:{root:`text-sm`,trigger:`h-8 px-3 text-sm`,input:`min-h-5.5 min-w-5.5`},lg:{root:`text-base`,trigger:`h-9 px-3.5 text-base`,input:`min-h-6 min-w-6`},xl:{root:`text-lg`,trigger:`h-10 px-4 text-lg`,input:`min-h-6.5 min-w-6.5`},"2xl":{root:`text-xl`,trigger:`h-12 px-5 text-xl`,input:`min-h-8 min-w-8`}}},defaultVariants:{size:`md`}});export{t as dateRangePickerVariants};
@@ -1 +1 @@
1
- import{mergeBaseVariants as e,mergeSlotVariants as t}from"../../theme/shared.js";import{themeSizeMap as n,themeSizeRatio as r}from"../../theme/config.js";import"../../theme/index.js";import{buttonVariants as i}from"../button/variants.js";import{drawerVariants as a}from"../drawer/variants.js";import{layoutClassicVariants as o}from"./variants.js";import{computed as s,createBlock as c,createSlots as l,defineComponent as u,guardReactiveProps as d,mergeProps as f,normalizeProps as p,openBlock as m,renderList as h,renderSlot as g,unref as _,useSlots as v,withCtx as y}from"vue";import{useOmitProps as b}from"@soybeanjs/headless/composables";import{LayoutClassicCompact as x,provideLayoutClassicUi as S}from"@soybeanjs/headless";import{keysOf as C}from"@soybeanjs/utils";const w=u({name:`SLayoutClassic`,__name:`layout-classic`,props:{class:{},size:{default:`md`},ui:{},orientation:{},scrollBehavior:{},scrollId:{},baseZIndex:{},fixedTop:{type:Boolean,default:!0},fullContent:{type:Boolean},sidebarVisible:{type:Boolean,default:!0},headerVisible:{type:Boolean,default:!0},tabVisible:{type:Boolean,default:!0},footerVisible:{type:Boolean,default:!0},fixedFooter:{type:Boolean},stretchFooter:{type:Boolean,default:!0},open:{type:Boolean,default:void 0},defaultOpen:{type:Boolean,default:!0},side:{},sidebarWidth:{},collapsedSidebarWidth:{},isMobile:{type:Boolean},mobileSidebarWidth:{},headerHeight:{},tabHeight:{},footerHeight:{},pxToRem:{},sidebarProps:{},railProps:{},mainProps:{},headerProps:{},tabProps:{},contentProps:{},footerProps:{},mobileProps:{}},emits:[`update:open`],setup(u,{emit:w}){let T=u,E=w,D=v(),O=b(T,[`class`,`size`,`ui`,`pxToRem`]),k=s(()=>C(D).filter(e=>e!==`sidebar`)),A=e=>T.pxToRem?T.pxToRem(e):e*r[T.size]/n.md;return S(s(()=>{let n=o({size:T.size,side:T.side,fullContent:T.fullContent}),r=a({size:T.size,side:T.side}),s=i({size:T.size,color:`accent`,variant:`ghost`,shape:`square`,fitContent:!0});return t(e(n,{mobileDrawer:r.popup(),trigger:s}),T.ui,{root:T.class})})),(e,t)=>(m(),c(_(x),f(_(O),{"px-to-rem":A,"onUpdate:open":t[0]||=e=>E(`update:open`,e)}),l({sidebar:y(t=>[g(e.$slots,`sidebar`,p(d(t)))]),_:2},[h(k.value,t=>({name:t,fn:y(()=>[g(e.$slots,t)])}))]),1040))}});export{w as default};
1
+ import{mergeBaseVariants as e,mergeSlotVariants as t}from"../../theme/shared.js";import{themeSizeMap as n,themeSizeRatio as r}from"../../theme/config.js";import"../../theme/index.js";import{buttonVariants as i}from"../button/variants.js";import{drawerVariants as a}from"../drawer/variants.js";import{layoutClassicVariants as o}from"./variants.js";import{computed as s,createBlock as c,createSlots as l,defineComponent as u,guardReactiveProps as d,mergeProps as f,normalizeProps as p,openBlock as m,renderList as h,renderSlot as g,unref as _,useSlots as v,withCtx as y}from"vue";import{useOmitProps as b}from"@soybeanjs/headless/composables";import{LayoutClassicCompact as x,provideLayoutClassicUi as S}from"@soybeanjs/headless";import{keysOf as C}from"@soybeanjs/utils";const w=u({name:`SLayoutClassic`,__name:`layout-classic`,props:{class:{},size:{default:`md`},ui:{},orientation:{},scrollBehavior:{},scrollId:{},baseZIndex:{},fixedTop:{type:Boolean,default:!0},fixedFooter:{type:Boolean},stretchFooter:{type:Boolean,default:!0},open:{type:Boolean,default:void 0},defaultOpen:{type:Boolean,default:!0},side:{},sidebarVisible:{type:Boolean,default:!0},sidebarWidth:{},collapsedSidebarWidth:{},isMobile:{type:Boolean},mobileSidebarWidth:{},headerVisible:{type:Boolean,default:!0},headerHeight:{},tabVisible:{type:Boolean,default:!0},tabHeight:{},footerVisible:{type:Boolean,default:!0},footerHeight:{},fullContent:{type:Boolean},pxToRem:{},sidebarProps:{},railProps:{},mainProps:{},headerProps:{},tabProps:{},contentProps:{},footerProps:{},mobileProps:{}},emits:[`update:open`],setup(u,{emit:w}){let T=u,E=w,D=v(),O=b(T,[`class`,`size`,`ui`,`pxToRem`]),k=s(()=>C(D).filter(e=>e!==`sidebar`)),A=e=>T.pxToRem?T.pxToRem(e):e*r[T.size]/n.md;return S(s(()=>{let n=o({size:T.size,side:T.side,fullContent:T.fullContent}),r=a({size:T.size,side:T.side}),s=i({size:T.size,color:`accent`,variant:`ghost`,shape:`square`,fitContent:!0});return t(e(n,{mobileDrawer:r.popup(),trigger:s}),T.ui,{root:T.class})})),(e,t)=>(m(),c(_(x),f(_(O),{"px-to-rem":A,"onUpdate:open":t[0]||=e=>E(`update:open`,e)}),l({sidebar:y(t=>[g(e.$slots,`sidebar`,p(d(t)))]),_:2},[h(k.value,t=>({name:t,fn:y(()=>[g(e.$slots,t)])}))]),1040))}});export{w as default};
@@ -0,0 +1,4 @@
1
+ import { MonthPickerEmits, MonthPickerProps, MonthPickerSlots } from "./types.js";
2
+ import { _default } from "./month-picker.vue.js";
3
+ import { MonthPickerPopupProps as MonthPickerPopupProps$1, MonthPickerRootEmits as MonthPickerRootEmits$1, MonthPickerRootProps as MonthPickerRootProps$1, MonthPickerTriggerProps as MonthPickerTriggerProps$1, MonthPickerUi as MonthPickerUi$1, MonthPickerUiSlot } from "@soybeanjs/headless/month-picker";
4
+ export { type MonthPickerPopupProps$1 as MonthPickerPopupProps, type MonthPickerRootEmits$1 as MonthPickerRootEmits, type MonthPickerRootProps$1 as MonthPickerRootProps, type MonthPickerTriggerProps$1 as MonthPickerTriggerProps, type MonthPickerUi$1 as MonthPickerUi, type MonthPickerUiSlot };
@@ -0,0 +1 @@
1
+ import"./month-picker.js";
@@ -0,0 +1 @@
1
+ import{mergeSlotVariants as e}from"../../theme/shared.js";import"../../theme/index.js";import t from"../icon/icon.js";import{monthPickerVariants as n}from"./variants.js";import{computed as r,createBlock as i,createElementBlock as a,createTextVNode as o,createVNode as s,defineComponent as c,guardReactiveProps as l,mergeProps as u,normalizeProps as d,openBlock as f,renderSlot as p,toDisplayString as m,toHandlers as h,unref as g,withCtx as _}from"vue";import{useForwardListeners as v,useOmitProps as y}from"@soybeanjs/headless/composables";import{MonthPickerPopup as b,MonthPickerRoot as x,MonthPickerTrigger as S,provideMonthPickerUi as C}from"@soybeanjs/headless/month-picker";const w={key:0},T={key:1,class:`text-muted-foreground`},E=c({name:`SMonthPicker`,__name:`month-picker`,props:{class:{},size:{},ui:{},triggerProps:{},popupProps:{}},emits:[`update:modelValue`,`update:placeholder`,`update:open`],setup(c,{emit:E}){let D=c,O=v(E),k=y(D,[`class`,`size`,`ui`,`triggerProps`,`popupProps`]);return C(r(()=>e(n({size:D.size}),D.ui,{root:D.class}))),(e,n)=>(f(),i(g(x),u(g(k),h(g(O))),{default:_(n=>[s(g(S),d(l(c.triggerProps)),{default:_(()=>[p(e.$slots,`trigger`,{displayValue:n.displayValue,modelValue:n.modelValue,open:n.open},()=>[s(t,{class:`size-4`,icon:`lucide:calendar-range`}),n.displayValue?(f(),a(`span`,w,m(n.displayValue),1)):(f(),a(`span`,T,`Pick a month`))])]),_:2},1040),s(g(b),d(l(c.popupProps)),{heading:_(t=>[p(e.$slots,`heading`,d(l(t)),()=>[o(m(t.headingValue),1)])]),prev:_(n=>[p(e.$slots,`prev`,d(l(n)),()=>[s(t,{class:`size-4 rtl:rotate-180`,icon:`lucide:chevron-left`})])]),next:_(n=>[p(e.$slots,`next`,d(l(n)),()=>[s(t,{class:`size-4 rtl:rotate-180`,icon:`lucide:chevron-right`})])]),month:_(t=>[p(e.$slots,`month`,d(l(t)),()=>[o(m(t.label),1)])]),_:3},16),p(e.$slots,`default`,d(l(n)))]),_:3},16))}});export{E as default};
@@ -0,0 +1,24 @@
1
+ import { MonthPickerProps, MonthPickerSlots } from "./types.js";
2
+ import * as _$vue from "vue";
3
+ import * as _$_internationalized_date0 from "@internationalized/date";
4
+
5
+ //#region src/components/month-picker/month-picker.vue.d.ts
6
+ type __VLS_Slots = MonthPickerSlots;
7
+ declare const __VLS_base: _$vue.DefineComponent<MonthPickerProps, {}, {}, {}, {}, _$vue.ComponentOptionsMixin, _$vue.ComponentOptionsMixin, {
8
+ "update:open": (open: boolean) => any;
9
+ "update:modelValue": (date: _$_internationalized_date0.DateValue | undefined) => any;
10
+ "update:placeholder": (date: _$_internationalized_date0.DateValue) => any;
11
+ }, string, _$vue.PublicProps, Readonly<MonthPickerProps> & Readonly<{
12
+ "onUpdate:open"?: ((open: boolean) => any) | undefined;
13
+ "onUpdate:modelValue"?: ((date: _$_internationalized_date0.DateValue | undefined) => any) | undefined;
14
+ "onUpdate:placeholder"?: ((date: _$_internationalized_date0.DateValue) => any) | undefined;
15
+ }>, {}, {}, {}, {}, string, _$vue.ComponentProvideOptions, false, {}, any>;
16
+ declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
17
+ declare const _default: typeof __VLS_export;
18
+ type __VLS_WithSlots<T, S> = T & {
19
+ new (): {
20
+ $slots: S;
21
+ };
22
+ };
23
+ //#endregion
24
+ export { _default };
@@ -0,0 +1,44 @@
1
+ import { ThemeSize } from "../../theme/types.js";
2
+ import { ClassValue } from "@soybeanjs/headless";
3
+ import { MonthPickerPopupProps, MonthPickerRootEmits, MonthPickerRootProps, MonthPickerTriggerProps, MonthPickerUi } from "@soybeanjs/headless/month-picker";
4
+ import { DateValue } from "@internationalized/date";
5
+
6
+ //#region src/components/month-picker/types.d.ts
7
+ interface MonthPickerProps extends /* @vue-ignore */MonthPickerRootProps {
8
+ class?: ClassValue;
9
+ size?: ThemeSize;
10
+ ui?: Partial<MonthPickerUi>;
11
+ triggerProps?: MonthPickerTriggerProps;
12
+ popupProps?: MonthPickerPopupProps;
13
+ }
14
+ type MonthPickerEmits = MonthPickerRootEmits;
15
+ interface MonthPickerSlots {
16
+ trigger?: (props: {
17
+ displayValue: string;
18
+ modelValue: DateValue | undefined;
19
+ open: boolean;
20
+ }) => any;
21
+ heading?: (props: {
22
+ headingValue: string;
23
+ }) => any;
24
+ prev?: (props: {
25
+ disabled: boolean;
26
+ }) => any;
27
+ next?: (props: {
28
+ disabled: boolean;
29
+ }) => any;
30
+ month?: (props: {
31
+ date: DateValue;
32
+ label: string;
33
+ disabled: boolean;
34
+ focused: boolean;
35
+ selected: boolean;
36
+ }) => any;
37
+ default?: (props: {
38
+ displayValue: string;
39
+ modelValue: DateValue | undefined;
40
+ open: boolean;
41
+ }) => any;
42
+ }
43
+ //#endregion
44
+ export { MonthPickerEmits, MonthPickerProps, MonthPickerSlots };
@@ -0,0 +1 @@
1
+ import{tv as e}from"tailwind-variants";const t=e({slots:{root:`inline-flex w-full flex-col gap-2`,trigger:[`inline-flex w-full items-center justify-start gap-2 rounded-md border border-input bg-background px-3 py-0 text-start font-normal shadow-xs transition-[background-color,color,box-shadow]`,`hover:bg-accent/50 hover:text-accent-foreground`,`focus-visible:outline-none focus-visible:ring-3 focus-visible:ring-offset-background focus-visible:ring-primary/30`,`data-[disabled]:opacity-60 data-[disabled]:cursor-not-allowed data-[disabled]:pointer-events-none`,`data-[state=open]:bg-accent/50 data-[state=open]:text-accent-foreground`],popup:[`z-50 overflow-hidden rounded-lg border border-border bg-popover p-3 text-popover-foreground shadow-md`,`data-[state=open]:animate-in data-[state=closed]:animate-out`,`data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0`,`data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95`],header:`mb-3 grid grid-cols-[auto_1fr_auto] items-center gap-1`,heading:`font-medium text-foreground text-center`,prev:[`inline-flex size-8 items-center justify-center rounded-md border border-transparent bg-transparent transition-colors`,`hover:bg-accent hover:text-accent-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary/30`,`data-[disabled]:pointer-events-none data-[disabled]:opacity-50`],next:[`inline-flex size-8 items-center justify-center rounded-md border border-transparent bg-transparent transition-colors`,`hover:bg-accent hover:text-accent-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary/30`,`data-[disabled]:pointer-events-none data-[disabled]:opacity-50`],grid:`grid grid-cols-3 gap-1`,cellTrigger:[`inline-flex h-9 cursor-pointer items-center justify-center rounded-md border border-transparent bg-transparent px-3 text-sm font-normal transition-colors`,`hover:bg-accent hover:text-accent-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary/30`,`data-[selected]:bg-primary data-[selected]:text-primary-foreground`,`data-[disabled]:pointer-events-none data-[disabled]:opacity-50`,`data-[focused]:ring-2 data-[focused]:ring-primary/20`]},variants:{size:{xs:{root:`text-2xs`,trigger:`h-6 px-2 text-2xs`,prev:`size-6 text-2xs`,next:`size-6 text-2xs`,cellTrigger:`h-7 px-2 text-2xs`},sm:{root:`text-xs`,trigger:`h-7 px-2.5 text-xs`,prev:`size-7 text-xs`,next:`size-7 text-xs`,cellTrigger:`h-8 px-2.5 text-xs`},md:{root:`text-sm`,trigger:`h-8 px-3 text-sm`,prev:`size-8 text-sm`,next:`size-8 text-sm`,cellTrigger:`h-9 px-3 text-sm`},lg:{root:`text-base`,trigger:`h-9 px-3.5 text-base`,prev:`size-9 text-base`,next:`size-9 text-base`,cellTrigger:`h-10 px-3.5 text-base`},xl:{root:`text-lg`,trigger:`h-10 px-4 text-lg`,prev:`size-10 text-lg`,next:`size-10 text-lg`,cellTrigger:`h-11 px-4 text-lg`},"2xl":{root:`text-xl`,trigger:`h-12 px-5 text-xl`,prev:`size-12 text-xl`,next:`size-12 text-xl`,cellTrigger:`h-12 px-5 text-xl`}}},defaultVariants:{size:`md`}});export{t as monthPickerVariants};
@@ -0,0 +1,4 @@
1
+ import { MonthRangePickerEmits, MonthRangePickerProps, MonthRangePickerSlots } from "./types.js";
2
+ import { _default } from "./month-range-picker.vue.js";
3
+ import { MonthRangePickerPopupProps as MonthRangePickerPopupProps$1, MonthRangePickerRootEmits as MonthRangePickerRootEmits$1, MonthRangePickerRootProps as MonthRangePickerRootProps$1, MonthRangePickerTriggerProps as MonthRangePickerTriggerProps$1, MonthRangePickerUi as MonthRangePickerUi$1, MonthRangePickerUiSlot } from "@soybeanjs/headless/month-range-picker";
4
+ export { type MonthRangePickerPopupProps$1 as MonthRangePickerPopupProps, type MonthRangePickerRootEmits$1 as MonthRangePickerRootEmits, type MonthRangePickerRootProps$1 as MonthRangePickerRootProps, type MonthRangePickerTriggerProps$1 as MonthRangePickerTriggerProps, type MonthRangePickerUi$1 as MonthRangePickerUi, type MonthRangePickerUiSlot };