@j-solution/components 1.9.1 → 1.9.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (60) hide show
  1. package/README.md +6 -6
  2. package/assets/jwms-portal-frontend-BrNxcNUC.css +1 -0
  3. package/assets/styles/j-components.css +1 -1
  4. package/assets/styles/main.css +15 -5
  5. package/assets/styles/themes.css +46 -21
  6. package/components/atoms/JButton.vue.cjs +1 -1
  7. package/components/atoms/JButton.vue.js +1 -1
  8. package/components/atoms/JButton.vue2.cjs.map +1 -1
  9. package/components/atoms/JButton.vue2.js.map +1 -1
  10. package/components/atoms/JGrid.vue.cjs +1 -1
  11. package/components/atoms/JGrid.vue.js +2 -2
  12. package/components/atoms/JGrid.vue2.cjs +1 -1
  13. package/components/atoms/JGrid.vue2.cjs.map +1 -1
  14. package/components/atoms/JGrid.vue2.js +140 -112
  15. package/components/atoms/JGrid.vue2.js.map +1 -1
  16. package/components/atoms/JSplitter.vue.cjs +1 -1
  17. package/components/atoms/JSplitter.vue.js +2 -2
  18. package/components/atoms/JSplitter.vue2.cjs +1 -1
  19. package/components/atoms/JSplitter.vue2.cjs.map +1 -1
  20. package/components/atoms/JSplitter.vue2.js +1 -1
  21. package/components/atoms/JSplitter.vue2.js.map +1 -1
  22. package/components/molecules/JTabs.vue.cjs +1 -1
  23. package/components/molecules/JTabs.vue.js +2 -2
  24. package/components/molecules/JTabs.vue2.cjs +1 -1
  25. package/components/molecules/JTabs.vue2.cjs.map +1 -1
  26. package/components/molecules/JTabs.vue2.js +9 -9
  27. package/components/molecules/JTabs.vue2.js.map +1 -1
  28. package/components/organisms/JDynamicForm.vue.cjs +1 -1
  29. package/components/organisms/JDynamicForm.vue.js +2 -2
  30. package/components/organisms/JDynamicForm.vue2.cjs +1 -1
  31. package/components/organisms/JDynamicForm.vue2.cjs.map +1 -1
  32. package/components/organisms/JDynamicForm.vue2.js +5 -5
  33. package/components/organisms/JDynamicForm.vue2.js.map +1 -1
  34. package/components/organisms/JFilterBar.vue.cjs +1 -1
  35. package/components/organisms/JFilterBar.vue.js +2 -2
  36. package/components/organisms/JFilterBar.vue2.cjs +1 -1
  37. package/components/organisms/JFilterBar.vue2.cjs.map +1 -1
  38. package/components/organisms/JFilterBar.vue2.js +2 -2
  39. package/components/organisms/JFilterBar.vue2.js.map +1 -1
  40. package/components/organisms/JPageContainer.vue.cjs +1 -1
  41. package/components/organisms/JPageContainer.vue.cjs.map +1 -1
  42. package/components/organisms/JPageContainer.vue.js +1 -1
  43. package/components/organisms/JPageContainer.vue.js.map +1 -1
  44. package/components/organisms/JSearchPanel.vue.cjs +1 -1
  45. package/components/organisms/JSearchPanel.vue.js +7 -7
  46. package/components/organisms/JSearchPanel.vue2.cjs +1 -1
  47. package/components/organisms/JSearchPanel.vue2.cjs.map +1 -1
  48. package/components/organisms/JSearchPanel.vue2.js +4 -4
  49. package/components/organisms/JSearchPanel.vue2.js.map +1 -1
  50. package/components/shadcn/index.cjs +1 -1
  51. package/components/shadcn/index.cjs.map +1 -1
  52. package/components/shadcn/index.js +6 -6
  53. package/components/shadcn/index.js.map +1 -1
  54. package/components/shadcn/resizable/ResizableHandle.vue.cjs +1 -1
  55. package/components/shadcn/resizable/ResizableHandle.vue.cjs.map +1 -1
  56. package/components/shadcn/resizable/ResizableHandle.vue.js +3 -3
  57. package/components/shadcn/resizable/ResizableHandle.vue.js.map +1 -1
  58. package/package.json +1 -1
  59. package/types/index.d.ts +87 -6
  60. package/assets/jwms-portal-frontend-Di6lStzZ.css +0 -1
@@ -27,9 +27,9 @@ import q from "../shadcn/Card.vue.js";
27
27
  import G from "../shadcn/CardHeader.vue.js";
28
28
  import H from "../shadcn/CardTitle.vue.js";
29
29
  import K from "../shadcn/CardContent.vue.js";
30
- const Q = { class: "flex items-center justify-between" }, W = { class: "flex items-center gap-3 flex-1" }, Z = {
30
+ const Q = { class: "flex items-center justify-between" }, W = { class: "flex items-center gap-2 flex-1" }, Z = {
31
31
  key: 2,
32
- class: "flex flex-wrap items-center gap-2 ml-2"
32
+ class: "flex flex-wrap items-center gap-1.5 ml-1.5"
33
33
  }, ee = ["onClick", "aria-label"], Be = /* @__PURE__ */ L({
34
34
  __name: "JSearchPanel",
35
35
  props: {
@@ -100,7 +100,7 @@ const Q = { class: "flex items-center justify-between" }, W = { class: "flex ite
100
100
  }
101
101
  return (t, l) => (n(), v(i(q), { class: "w-full" }, {
102
102
  default: m(() => [
103
- c(i(G), { class: "pt-4 pb-3 px-6" }, {
103
+ c(i(G), { class: "pt-2.5 pb-2 px-3.5" }, {
104
104
  default: m(() => [
105
105
  d("div", Q, [
106
106
  d("div", W, [
@@ -159,7 +159,7 @@ const Q = { class: "flex items-center justify-between" }, W = { class: "flex ite
159
159
  ]),
160
160
  _: 1
161
161
  }),
162
- R(c(i(K), { class: "px-6 pb-6 pt-0" }, {
162
+ R(c(i(K), { class: "px-3.5 pb-3 pt-0" }, {
163
163
  default: m(() => [
164
164
  c(Y, {
165
165
  ref_key: "dynamicFormRef",
@@ -1 +1 @@
1
- {"version":3,"file":"JSearchPanel.vue2.js","sources":["../../../../src/components/organisms/JSearchPanel.vue"],"sourcesContent":["<template>\n <Card class=\"w-full\">\n <!-- 헤더: 제목, Badge 목록, 초기화 버튼 -->\n <CardHeader class=\"pt-4 pb-3 px-6\">\n <div class=\"flex items-center justify-between\">\n <div class=\"flex items-center gap-3 flex-1\">\n <button\n v-if=\"collapsible\"\n type=\"button\"\n @click=\"isExpanded = !isExpanded\"\n class=\"flex items-center gap-2 font-semibold hover:text-primary transition-colors\"\n >\n <ChevronDown\n :class=\"['h-4 w-4 transition-transform', isExpanded ? 'rotate-0' : '-rotate-90']\"\n />\n {{ title }}\n </button>\n <CardTitle v-else class=\"mb-0\">{{ title }}</CardTitle>\n \n <!-- 조건 Badge 목록 -->\n <div v-if=\"conditionBadges.length > 0\" class=\"flex flex-wrap items-center gap-2 ml-2\">\n <JBadge\n v-for=\"badge in conditionBadges\"\n :key=\"badge.fieldName\"\n variant=\"secondary\"\n size=\"sm\"\n class=\"flex items-center gap-1.5 pr-1\"\n >\n <span>{{ badge.label }}: {{ badge.value }}</span>\n <button\n type=\"button\"\n @click.stop=\"handleFieldReset(badge.fieldName)\"\n class=\"h-4 w-4 rounded-full hover:bg-destructive/20 hover:text-destructive transition-colors flex items-center justify-center\"\n :aria-label=\"`${badge.label} 조건 제거`\"\n >\n <X class=\"h-3 w-3\" />\n </button>\n </JBadge>\n </div>\n </div>\n \n <JButton\n variant=\"outline\"\n size=\"sm\"\n @click.stop=\"handleReset\"\n >\n 초기화\n </JButton>\n </div>\n </CardHeader>\n \n <!-- 폼 내용 -->\n <CardContent v-show=\"isExpanded || !collapsible\" class=\"px-6 pb-6 pt-0\">\n <JDynamicForm\n ref=\"dynamicFormRef\"\n :schema=\"schema\"\n :model-value=\"localModelValue\"\n @update:model-value=\"handleFormValueUpdate\"\n @submit=\"handleSubmit\"\n />\n </CardContent>\n </Card>\n</template>\n\n<script setup lang=\"ts\">\nimport { computed, ref, reactive, watch } from 'vue'\nimport { ChevronDown, X } from 'lucide-vue-next'\nimport { Card, CardHeader, CardTitle, CardContent } from '@/components/shadcn'\nimport { JButton, JBadge } from '@/components/atoms'\nimport JDynamicForm from './JDynamicForm.vue'\nimport type { FormSchema, DynamicFormField } from '@/types/dynamic-form'\nimport type { ComponentPublicInstance } from 'vue'\n\ninterface ConditionBadge {\n fieldName: string\n label: string\n value: string\n}\n\nexport interface JSearchPanelProps {\n /** 패널 제목 */\n title?: string\n /** JDynamicForm에 전달할 FormSchema */\n schema: FormSchema\n /** JDynamicForm의 v-model 값 */\n modelValue?: Record<string, any>\n /** 기본 접힘 상태 */\n defaultCollapsed?: boolean\n /** 접기/펼치기 가능 여부 */\n collapsible?: boolean\n}\n\nconst props = withDefaults(defineProps<JSearchPanelProps>(), {\n title: '조회조건',\n defaultCollapsed: false,\n collapsible: true,\n})\n\nconst emit = defineEmits<{\n 'update:modelValue': [value: Record<string, any>]\n 'submit': [values: Record<string, any>]\n 'reset': []\n}>()\n\nconst dynamicFormRef = ref<ComponentPublicInstance & { reset: () => void } | null>(null)\nconst isExpanded = ref(!props.defaultCollapsed)\n\n// 로컬 modelValue - reactive로 관리하여 양방향 바인딩\nconst localModelValue = reactive<Record<string, any>>(props.modelValue ? { ...props.modelValue } : {})\n\n// 내부 변경인지 외부 변경인지 구분하는 플래그\nlet isInternalUpdate = false\n\n// props.modelValue 변경 시 localModelValue 동기화 (외부 변경)\nwatch(\n () => props.modelValue,\n (newValue) => {\n if (newValue && !isInternalUpdate) {\n // 기존 키 중 새 값에 없는 것은 삭제\n Object.keys(localModelValue).forEach(key => {\n if (!(key in newValue)) {\n delete localModelValue[key]\n }\n })\n // 새 값으로 업데이트\n Object.assign(localModelValue, newValue)\n }\n isInternalUpdate = false\n },\n { deep: true, immediate: true }\n)\n\n// JDynamicForm에서 값이 변경되었을 때 처리\nfunction handleFormValueUpdate(value: Record<string, any>) {\n // JDynamicForm에서 emit된 값을 localModelValue에 반영\n isInternalUpdate = true\n Object.assign(localModelValue, value)\n // 상위로 emit\n emit('update:modelValue', { ...value })\n}\n\n// 모든 필드 가져오기\nconst allFields = computed((): DynamicFormField[] => {\n if (!props.schema) return []\n \n const fields: DynamicFormField[] = []\n if (props.schema.type === 'simple' && props.schema.fields) {\n fields.push(...props.schema.fields)\n } else if (props.schema.type === 'sectioned' && props.schema.sections) {\n props.schema.sections.forEach(section => {\n if (section.fields) fields.push(...section.fields)\n })\n } else if (props.schema.type === 'wizard' && props.schema.steps) {\n props.schema.steps.forEach(step => {\n if (step.fields) fields.push(...step.fields)\n })\n }\n return fields\n})\n\n// 조건 Badge 목록 생성\nconst conditionBadges = computed((): ConditionBadge[] => {\n if (!localModelValue || !props.schema) {\n return []\n }\n\n const badges: ConditionBadge[] = []\n const formState = localModelValue\n\n allFields.value.forEach((field) => {\n const value = formState[field.controlName]\n \n // 빈 값 체크 (빈 문자열, null, undefined, 'ALL', 'SELECT' 제외)\n if (\n value === undefined ||\n value === null ||\n value === '' ||\n value === 'ALL' ||\n value === 'SELECT' ||\n (field.type === 'checkbox' && value === 'N') ||\n (field.type === 'switch' && value === 'N')\n ) {\n return\n }\n\n // 필드 타입에 따라 값 표시\n let displayValue = String(value)\n\n // 콤보/검색콤보인 경우 옵션의 label 찾기\n if ((field.type === 'combo' || field.type === 'searchcombo') && field.options) {\n const option = field.options.find(opt => opt.value === value)\n if (option) {\n displayValue = option.label\n }\n }\n\n // 체크박스/스위치는 'Y'일 때만 표시\n if (field.type === 'checkbox' || field.type === 'switch') {\n if (value === 'Y') {\n badges.push({\n fieldName: field.controlName,\n label: field.label,\n value: field.inlineLabel || field.label\n })\n }\n } else {\n badges.push({\n fieldName: field.controlName,\n label: field.label,\n value: displayValue\n })\n }\n })\n\n return badges\n})\n\n// submit 핸들러\nfunction handleSubmit(values: Record<string, any>) {\n emit('submit', values)\n}\n\n// 전체 초기화 핸들러\nfunction handleReset() {\n if (dynamicFormRef.value) {\n dynamicFormRef.value.reset()\n emit('reset')\n }\n}\n\n// 필드별 초기화 핸들러\nfunction handleFieldReset(fieldName: string) {\n if (!localModelValue || !props.schema) return\n \n const field = allFields.value.find(f => f.controlName === fieldName)\n \n if (field) {\n // 필드 타입에 따라 초기값 설정 - reactive 객체 직접 수정\n if (field.type === 'checkbox' || field.type === 'switch') {\n localModelValue[fieldName] = 'N'\n } else {\n localModelValue[fieldName] = ''\n }\n \n // localModelValue 변경 후 상위로 emit하여 JDynamicForm에도 반영\n isInternalUpdate = true\n emit('update:modelValue', { ...localModelValue })\n }\n}\n</script>\n\n<style scoped>\n/* 필요시 스타일 추가 */\n</style>\n\n"],"names":["props","__props","emit","__emit","dynamicFormRef","ref","isExpanded","localModelValue","reactive","isInternalUpdate","watch","newValue","key","handleFormValueUpdate","value","allFields","computed","fields","section","step","conditionBadges","badges","formState","field","displayValue","option","opt","handleSubmit","values","handleReset","handleFieldReset","fieldName","f","_createBlock","_unref","Card","_createVNode","CardHeader","_createElementVNode","_hoisted_1","_hoisted_2","_createElementBlock","_cache","$event","ChevronDown","_createTextVNode","CardTitle","_openBlock","_hoisted_3","_Fragment","_renderList","badge","JBadge","_toDisplayString","_withModifiers","X","JButton","CardContent","JDynamicForm","_vShow"],"mappings":"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"}
1
+ {"version":3,"file":"JSearchPanel.vue2.js","sources":["../../../../src/components/organisms/JSearchPanel.vue"],"sourcesContent":["<template>\n <Card class=\"w-full\">\n <!-- 헤더: 제목, Badge 목록, 초기화 버튼 -->\n <CardHeader class=\"pt-2.5 pb-2 px-3.5\">\n <div class=\"flex items-center justify-between\">\n <div class=\"flex items-center gap-2 flex-1\">\n <button\n v-if=\"collapsible\"\n type=\"button\"\n @click=\"isExpanded = !isExpanded\"\n class=\"flex items-center gap-2 font-semibold hover:text-primary transition-colors\"\n >\n <ChevronDown\n :class=\"['h-4 w-4 transition-transform', isExpanded ? 'rotate-0' : '-rotate-90']\"\n />\n {{ title }}\n </button>\n <CardTitle v-else class=\"mb-0\">{{ title }}</CardTitle>\n \n <!-- 조건 Badge 목록 -->\n <div v-if=\"conditionBadges.length > 0\" class=\"flex flex-wrap items-center gap-1.5 ml-1.5\">\n <JBadge\n v-for=\"badge in conditionBadges\"\n :key=\"badge.fieldName\"\n variant=\"secondary\"\n size=\"sm\"\n class=\"flex items-center gap-1.5 pr-1\"\n >\n <span>{{ badge.label }}: {{ badge.value }}</span>\n <button\n type=\"button\"\n @click.stop=\"handleFieldReset(badge.fieldName)\"\n class=\"h-4 w-4 rounded-full hover:bg-destructive/20 hover:text-destructive transition-colors flex items-center justify-center\"\n :aria-label=\"`${badge.label} 조건 제거`\"\n >\n <X class=\"h-3 w-3\" />\n </button>\n </JBadge>\n </div>\n </div>\n \n <JButton\n variant=\"outline\"\n size=\"sm\"\n @click.stop=\"handleReset\"\n >\n 초기화\n </JButton>\n </div>\n </CardHeader>\n \n <!-- 폼 내용 -->\n <CardContent v-show=\"isExpanded || !collapsible\" class=\"px-3.5 pb-3 pt-0\">\n <JDynamicForm\n ref=\"dynamicFormRef\"\n :schema=\"schema\"\n :model-value=\"localModelValue\"\n @update:model-value=\"handleFormValueUpdate\"\n @submit=\"handleSubmit\"\n />\n </CardContent>\n </Card>\n</template>\n\n<script setup lang=\"ts\">\nimport { computed, ref, reactive, watch } from 'vue'\nimport { ChevronDown, X } from 'lucide-vue-next'\nimport { Card, CardHeader, CardTitle, CardContent } from '@/components/shadcn'\nimport { JButton, JBadge } from '@/components/atoms'\nimport JDynamicForm from './JDynamicForm.vue'\nimport type { FormSchema, DynamicFormField } from '@/types/dynamic-form'\nimport type { ComponentPublicInstance } from 'vue'\n\ninterface ConditionBadge {\n fieldName: string\n label: string\n value: string\n}\n\nexport interface JSearchPanelProps {\n /** 패널 제목 */\n title?: string\n /** JDynamicForm에 전달할 FormSchema */\n schema: FormSchema\n /** JDynamicForm의 v-model 값 */\n modelValue?: Record<string, any>\n /** 기본 접힘 상태 */\n defaultCollapsed?: boolean\n /** 접기/펼치기 가능 여부 */\n collapsible?: boolean\n}\n\nconst props = withDefaults(defineProps<JSearchPanelProps>(), {\n title: '조회조건',\n defaultCollapsed: false,\n collapsible: true,\n})\n\nconst emit = defineEmits<{\n 'update:modelValue': [value: Record<string, any>]\n 'submit': [values: Record<string, any>]\n 'reset': []\n}>()\n\nconst dynamicFormRef = ref<ComponentPublicInstance & { reset: () => void } | null>(null)\nconst isExpanded = ref(!props.defaultCollapsed)\n\n// 로컬 modelValue - reactive로 관리하여 양방향 바인딩\nconst localModelValue = reactive<Record<string, any>>(props.modelValue ? { ...props.modelValue } : {})\n\n// 내부 변경인지 외부 변경인지 구분하는 플래그\nlet isInternalUpdate = false\n\n// props.modelValue 변경 시 localModelValue 동기화 (외부 변경)\nwatch(\n () => props.modelValue,\n (newValue) => {\n if (newValue && !isInternalUpdate) {\n // 기존 키 중 새 값에 없는 것은 삭제\n Object.keys(localModelValue).forEach(key => {\n if (!(key in newValue)) {\n delete localModelValue[key]\n }\n })\n // 새 값으로 업데이트\n Object.assign(localModelValue, newValue)\n }\n isInternalUpdate = false\n },\n { deep: true, immediate: true }\n)\n\n// JDynamicForm에서 값이 변경되었을 때 처리\nfunction handleFormValueUpdate(value: Record<string, any>) {\n // JDynamicForm에서 emit된 값을 localModelValue에 반영\n isInternalUpdate = true\n Object.assign(localModelValue, value)\n // 상위로 emit\n emit('update:modelValue', { ...value })\n}\n\n// 모든 필드 가져오기\nconst allFields = computed((): DynamicFormField[] => {\n if (!props.schema) return []\n \n const fields: DynamicFormField[] = []\n if (props.schema.type === 'simple' && props.schema.fields) {\n fields.push(...props.schema.fields)\n } else if (props.schema.type === 'sectioned' && props.schema.sections) {\n props.schema.sections.forEach(section => {\n if (section.fields) fields.push(...section.fields)\n })\n } else if (props.schema.type === 'wizard' && props.schema.steps) {\n props.schema.steps.forEach(step => {\n if (step.fields) fields.push(...step.fields)\n })\n }\n return fields\n})\n\n// 조건 Badge 목록 생성\nconst conditionBadges = computed((): ConditionBadge[] => {\n if (!localModelValue || !props.schema) {\n return []\n }\n\n const badges: ConditionBadge[] = []\n const formState = localModelValue\n\n allFields.value.forEach((field) => {\n const value = formState[field.controlName]\n \n // 빈 값 체크 (빈 문자열, null, undefined, 'ALL', 'SELECT' 제외)\n if (\n value === undefined ||\n value === null ||\n value === '' ||\n value === 'ALL' ||\n value === 'SELECT' ||\n (field.type === 'checkbox' && value === 'N') ||\n (field.type === 'switch' && value === 'N')\n ) {\n return\n }\n\n // 필드 타입에 따라 값 표시\n let displayValue = String(value)\n\n // 콤보/검색콤보인 경우 옵션의 label 찾기\n if ((field.type === 'combo' || field.type === 'searchcombo') && field.options) {\n const option = field.options.find(opt => opt.value === value)\n if (option) {\n displayValue = option.label\n }\n }\n\n // 체크박스/스위치는 'Y'일 때만 표시\n if (field.type === 'checkbox' || field.type === 'switch') {\n if (value === 'Y') {\n badges.push({\n fieldName: field.controlName,\n label: field.label,\n value: field.inlineLabel || field.label\n })\n }\n } else {\n badges.push({\n fieldName: field.controlName,\n label: field.label,\n value: displayValue\n })\n }\n })\n\n return badges\n})\n\n// submit 핸들러\nfunction handleSubmit(values: Record<string, any>) {\n emit('submit', values)\n}\n\n// 전체 초기화 핸들러\nfunction handleReset() {\n if (dynamicFormRef.value) {\n dynamicFormRef.value.reset()\n emit('reset')\n }\n}\n\n// 필드별 초기화 핸들러\nfunction handleFieldReset(fieldName: string) {\n if (!localModelValue || !props.schema) return\n \n const field = allFields.value.find(f => f.controlName === fieldName)\n \n if (field) {\n // 필드 타입에 따라 초기값 설정 - reactive 객체 직접 수정\n if (field.type === 'checkbox' || field.type === 'switch') {\n localModelValue[fieldName] = 'N'\n } else {\n localModelValue[fieldName] = ''\n }\n \n // localModelValue 변경 후 상위로 emit하여 JDynamicForm에도 반영\n isInternalUpdate = true\n emit('update:modelValue', { ...localModelValue })\n }\n}\n</script>\n\n<style scoped>\n/* 필요시 스타일 추가 */\n</style>\n"],"names":["props","__props","emit","__emit","dynamicFormRef","ref","isExpanded","localModelValue","reactive","isInternalUpdate","watch","newValue","key","handleFormValueUpdate","value","allFields","computed","fields","section","step","conditionBadges","badges","formState","field","displayValue","option","opt","handleSubmit","values","handleReset","handleFieldReset","fieldName","f","_createBlock","_unref","Card","_createVNode","CardHeader","_createElementVNode","_hoisted_1","_hoisted_2","_createElementBlock","_cache","$event","ChevronDown","_createTextVNode","CardTitle","_openBlock","_hoisted_3","_Fragment","_renderList","badge","JBadge","_toDisplayString","_withModifiers","X","JButton","CardContent","JDynamicForm","_vShow"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("class-variance-authority");require("vue");require("reka-ui");require("@vueuse/core");require("clsx");require("tailwind-merge");require("lucide-vue-next");require("./alert-variants.cjs");require("./avatar-variants.cjs");require("./badge-variants.cjs");require("./button-group-variants.cjs");require("vue-sonner");const r=e.cva("inline-flex items-center justify-center whitespace-nowrap rounded-sm text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50",{variants:{variant:{default:"bg-primary text-primary-foreground hover:bg-primary/90",destructive:"bg-destructive text-destructive-foreground hover:bg-destructive/90",outline:"border border-input bg-background hover:bg-accent hover:text-accent-foreground",secondary:"bg-secondary text-secondary-foreground hover:bg-secondary/80",ghost:"hover:bg-accent hover:text-accent-foreground",link:"text-primary underline-offset-4 hover:underline"},size:{xs:"h-7 rounded-sm px-2 text-xs",sm:"h-8 rounded-sm px-3 text-sm",md:"h-9 px-4 py-2",lg:"h-10 rounded-sm px-6",icon:"h-9 w-9"}},defaultVariants:{variant:"default",size:"sm"}});exports.buttonVariants=r;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("class-variance-authority");require("vue");require("reka-ui");require("@vueuse/core");require("clsx");require("tailwind-merge");require("lucide-vue-next");require("./alert-variants.cjs");require("./avatar-variants.cjs");require("./badge-variants.cjs");require("./button-group-variants.cjs");require("vue-sonner");const r=e.cva("inline-flex items-center justify-center whitespace-nowrap rounded-sm text-xs font-medium ring-offset-background transition-colors duration-150 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50",{variants:{variant:{default:"bg-primary text-primary-foreground hover:bg-primary/90",destructive:"bg-destructive text-destructive-foreground hover:bg-destructive/90",outline:"border border-input bg-background hover:bg-accent hover:text-accent-foreground",secondary:"bg-secondary text-secondary-foreground hover:bg-secondary/80",ghost:"hover:bg-accent hover:text-accent-foreground",link:"text-primary underline-offset-4 hover:underline"},size:{xs:"h-6 rounded-sm px-2 text-xs",sm:"h-7 rounded-sm px-2.5 text-xs",md:"h-8 px-3 text-sm",lg:"h-9 rounded-sm px-4 text-sm",icon:"h-8 w-8"}},defaultVariants:{variant:"default",size:"sm"}});exports.buttonVariants=r;
2
2
  //# sourceMappingURL=index.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs","sources":["../../../../src/components/shadcn/index.ts"],"sourcesContent":["// Button variants\nimport type { VariantProps } from \"class-variance-authority\"\nimport { cva } from \"class-variance-authority\"\n\nexport const buttonVariants = cva(\n \"inline-flex items-center justify-center whitespace-nowrap rounded-sm text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50\",\n {\n variants: {\n variant: {\n default: \"bg-primary text-primary-foreground hover:bg-primary/90\",\n destructive:\n \"bg-destructive text-destructive-foreground hover:bg-destructive/90\",\n outline:\n \"border border-input bg-background hover:bg-accent hover:text-accent-foreground\",\n secondary:\n \"bg-secondary text-secondary-foreground hover:bg-secondary/80\",\n ghost: \"hover:bg-accent hover:text-accent-foreground\",\n link: \"text-primary underline-offset-4 hover:underline\",\n },\n size: {\n xs: \"h-7 rounded-sm px-2 text-xs\",\n sm: \"h-8 rounded-sm px-3 text-sm\",\n md: \"h-9 px-4 py-2\",\n lg: \"h-10 rounded-sm px-6\",\n icon: \"h-9 w-9\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n size: \"sm\",\n },\n },\n)\n\nexport type ButtonVariants = VariantProps<typeof buttonVariants>\n\n// Accordion\nexport { default as Accordion } from \"./Accordion.vue\"\nexport { default as AccordionContent } from \"./AccordionContent.vue\"\nexport { default as AccordionItem } from \"./AccordionItem.vue\"\nexport { default as AccordionTrigger } from \"./AccordionTrigger.vue\"\n\n// Alert\nexport { default as Alert } from \"./Alert.vue\"\nexport { default as AlertDescription } from \"./AlertDescription.vue\"\nexport { default as AlertTitle } from \"./AlertTitle.vue\"\n\n// Avatar\nexport { default as Avatar } from \"./Avatar.vue\"\nexport { default as AvatarFallback } from \"./AvatarFallback.vue\"\nexport { default as AvatarImage } from \"./AvatarImage.vue\"\n\n// Badge\nexport { default as Badge } from \"./Badge.vue\"\n\n// Calendar\nexport { default as Calendar } from \"./Calendar.vue\"\nexport { default as CalendarCell } from \"./CalendarCell.vue\"\nexport { default as CalendarCellTrigger } from \"./CalendarCellTrigger.vue\"\nexport { default as CalendarGrid } from \"./CalendarGrid.vue\"\nexport { default as CalendarGridBody } from \"./CalendarGridBody.vue\"\nexport { default as CalendarGridHead } from \"./CalendarGridHead.vue\"\nexport { default as CalendarGridRow } from \"./CalendarGridRow.vue\"\nexport { default as CalendarHeadCell } from \"./CalendarHeadCell.vue\"\nexport { default as CalendarHeader } from \"./CalendarHeader.vue\"\nexport { default as CalendarHeading } from \"./CalendarHeading.vue\"\nexport { default as CalendarNextButton } from \"./CalendarNextButton.vue\"\nexport { default as CalendarPrevButton } from \"./CalendarPrevButton.vue\"\n\n// Card\nexport { default as Card } from \"./Card.vue\"\nexport { default as CardContent } from \"./CardContent.vue\"\nexport { default as CardDescription } from \"./CardDescription.vue\"\nexport { default as CardFooter } from \"./CardFooter.vue\"\nexport { default as CardHeader } from \"./CardHeader.vue\"\nexport { default as CardTitle } from \"./CardTitle.vue\"\n\n// Checkbox\nexport { default as Checkbox } from \"./Checkbox.vue\"\n\n// Combobox\nexport { default as Combobox } from \"./Combobox.vue\"\nexport { default as ComboboxAnchor } from \"./ComboboxAnchor.vue\"\nexport { default as ComboboxEmpty } from \"./ComboboxEmpty.vue\"\nexport { default as ComboboxGroup } from \"./ComboboxGroup.vue\"\nexport { default as ComboboxInput } from \"./ComboboxInput.vue\"\nexport { default as ComboboxItem } from \"./ComboboxItem.vue\"\nexport { default as ComboboxList } from \"./ComboboxList.vue\"\nexport { default as ComboboxSeparator } from \"./ComboboxSeparator.vue\"\nexport { default as ComboboxTrigger } from \"./ComboboxTrigger.vue\"\n\n// ContextMenu\nexport { default as ContextMenu } from \"./ContextMenu.vue\"\nexport { default as ContextMenuCheckboxItem } from \"./ContextMenuCheckboxItem.vue\"\nexport { default as ContextMenuContent } from \"./ContextMenuContent.vue\"\nexport { default as ContextMenuGroup } from \"./ContextMenuGroup.vue\"\nexport { default as ContextMenuItem } from \"./ContextMenuItem.vue\"\nexport { default as ContextMenuLabel } from \"./ContextMenuLabel.vue\"\nexport { default as ContextMenuPortal } from \"./ContextMenuPortal.vue\"\nexport { default as ContextMenuRadioGroup } from \"./ContextMenuRadioGroup.vue\"\nexport { default as ContextMenuRadioItem } from \"./ContextMenuRadioItem.vue\"\nexport { default as ContextMenuSeparator } from \"./ContextMenuSeparator.vue\"\nexport { default as ContextMenuShortcut } from \"./ContextMenuShortcut.vue\"\nexport { default as ContextMenuSub } from \"./ContextMenuSub.vue\"\nexport { default as ContextMenuSubContent } from \"./ContextMenuSubContent.vue\"\nexport { default as ContextMenuSubTrigger } from \"./ContextMenuSubTrigger.vue\"\nexport { default as ContextMenuTrigger } from \"./ContextMenuTrigger.vue\"\n\n// Dialog\nexport { default as Dialog } from \"./Dialog.vue\"\nexport { default as DialogBody } from \"./DialogBody.vue\"\nexport { default as DialogContent } from \"./DialogContent.vue\"\nexport { default as DialogDescription } from \"./DialogDescription.vue\"\nexport { default as DialogFooter } from \"./DialogFooter.vue\"\nexport { default as DialogHeader } from \"./DialogHeader.vue\"\nexport { default as DialogTitle } from \"./DialogTitle.vue\"\n\n// Field\nexport { default as Field } from \"./Field.vue\"\nexport { default as FieldContent } from \"./FieldContent.vue\"\nexport { default as FieldDescription } from \"./FieldDescription.vue\"\nexport { default as FieldError } from \"./FieldError.vue\"\nexport { default as FieldGroup } from \"./FieldGroup.vue\"\nexport { default as FieldLabel } from \"./FieldLabel.vue\"\nexport { default as FieldLegend } from \"./FieldLegend.vue\"\nexport { default as FieldSeparator } from \"./FieldSeparator.vue\"\nexport { default as FieldSet } from \"./FieldSet.vue\"\nexport { default as FieldTitle } from \"./FieldTitle.vue\"\n\n// ButtonGroup\nexport { default as ButtonGroup } from \"./ButtonGroup.vue\"\nexport { default as ButtonGroupSeparator } from \"./ButtonGroupSeparator.vue\"\nexport { default as ButtonGroupText } from \"./ButtonGroupText.vue\"\n\n// Input\nexport { default as Button } from \"./Button.vue\"\nexport { default as Input } from \"./Input.vue\"\n\n// Kbd\nexport { default as Kbd } from \"./Kbd.vue\"\nexport { default as KbdGroup } from \"./KbdGroup.vue\"\n\n// Label\nexport { default as Label } from \"./Label.vue\"\n\n// Popover\nexport { default as Popover } from \"./Popover.vue\"\nexport { default as PopoverContent } from \"./PopoverContent.vue\"\nexport { default as PopoverTrigger } from \"./PopoverTrigger.vue\"\n\n// Progress\nexport { default as Progress } from \"./Progress.vue\"\n\n// Radio\nexport { default as RadioGroup } from \"./RadioGroup.vue\"\nexport { default as RadioGroupItem } from \"./RadioGroupItem.vue\"\n\n// Select\nexport { default as Select } from \"./Select.vue\"\nexport { default as SelectContent } from \"./SelectContent.vue\"\nexport { default as SelectGroup } from \"./SelectGroup.vue\"\nexport { default as SelectItem } from \"./SelectItem.vue\"\nexport { default as SelectItemText } from \"./SelectItemText.vue\"\nexport { default as SelectLabel } from \"./SelectLabel.vue\"\nexport { default as SelectScrollDownButton } from \"./SelectScrollDownButton.vue\"\nexport { default as SelectScrollUpButton } from \"./SelectScrollUpButton.vue\"\nexport { default as SelectSeparator } from \"./SelectSeparator.vue\"\nexport { default as SelectTrigger } from \"./SelectTrigger.vue\"\nexport { default as SelectValue } from \"./SelectValue.vue\"\n\n// Separator\nexport { default as Separator } from \"./Separator.vue\"\n\n// Spinner\nexport { default as Spinner } from \"./Spinner.vue\"\n\n// Switch\nexport { default as Switch } from \"./Switch.vue\"\n\n// Tabs\nexport { default as Tabs } from \"./Tabs.vue\"\nexport { default as TabsContent } from \"./TabsContent.vue\"\nexport { default as TabsList } from \"./TabsList.vue\"\nexport { default as TabsTrigger } from \"./TabsTrigger.vue\"\n\n// Textarea\nexport { default as Textarea } from \"./Textarea.vue\"\n\n\n// Tooltip\nexport { default as Tooltip } from \"./Tooltip.vue\"\nexport { default as TooltipContent } from \"./TooltipContent.vue\"\nexport { default as TooltipProvider } from \"./TooltipProvider.vue\"\nexport { default as TooltipTrigger } from \"./TooltipTrigger.vue\"\n\n// Toaster\nexport { default as Toaster } from \"./Toaster.vue\""],"names":["buttonVariants","cva"],"mappings":"yZAIO,MAAMA,EAAiBC,EAAAA,IAC5B,yRACA,CACE,SAAU,CACR,QAAS,CACP,QAAS,yDACT,YACE,qEACF,QACE,iFACF,UACE,+DACF,MAAO,+CACP,KAAM,iDAAA,EAER,KAAM,CACJ,GAAI,8BACJ,GAAI,8BACJ,GAAI,gBACJ,GAAI,uBACJ,KAAM,SAAA,CACR,EAEF,gBAAiB,CACf,QAAS,UACT,KAAM,IAAA,CACR,CAEJ"}
1
+ {"version":3,"file":"index.cjs","sources":["../../../../src/components/shadcn/index.ts"],"sourcesContent":["// Button variants\nimport type { VariantProps } from \"class-variance-authority\"\nimport { cva } from \"class-variance-authority\"\n\nexport const buttonVariants = cva(\n \"inline-flex items-center justify-center whitespace-nowrap rounded-sm text-xs font-medium ring-offset-background transition-colors duration-150 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50\",\n {\n variants: {\n variant: {\n default: \"bg-primary text-primary-foreground hover:bg-primary/90\",\n destructive:\n \"bg-destructive text-destructive-foreground hover:bg-destructive/90\",\n outline:\n \"border border-input bg-background hover:bg-accent hover:text-accent-foreground\",\n secondary:\n \"bg-secondary text-secondary-foreground hover:bg-secondary/80\",\n ghost: \"hover:bg-accent hover:text-accent-foreground\",\n link: \"text-primary underline-offset-4 hover:underline\",\n },\n size: {\n xs: \"h-6 rounded-sm px-2 text-xs\",\n sm: \"h-7 rounded-sm px-2.5 text-xs\",\n md: \"h-8 px-3 text-sm\",\n lg: \"h-9 rounded-sm px-4 text-sm\",\n icon: \"h-8 w-8\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n size: \"sm\",\n },\n },\n)\n\nexport type ButtonVariants = VariantProps<typeof buttonVariants>\n\n// Accordion\nexport { default as Accordion } from \"./Accordion.vue\"\nexport { default as AccordionContent } from \"./AccordionContent.vue\"\nexport { default as AccordionItem } from \"./AccordionItem.vue\"\nexport { default as AccordionTrigger } from \"./AccordionTrigger.vue\"\n\n// Alert\nexport { default as Alert } from \"./Alert.vue\"\nexport { default as AlertDescription } from \"./AlertDescription.vue\"\nexport { default as AlertTitle } from \"./AlertTitle.vue\"\n\n// Avatar\nexport { default as Avatar } from \"./Avatar.vue\"\nexport { default as AvatarFallback } from \"./AvatarFallback.vue\"\nexport { default as AvatarImage } from \"./AvatarImage.vue\"\n\n// Badge\nexport { default as Badge } from \"./Badge.vue\"\n\n// Calendar\nexport { default as Calendar } from \"./Calendar.vue\"\nexport { default as CalendarCell } from \"./CalendarCell.vue\"\nexport { default as CalendarCellTrigger } from \"./CalendarCellTrigger.vue\"\nexport { default as CalendarGrid } from \"./CalendarGrid.vue\"\nexport { default as CalendarGridBody } from \"./CalendarGridBody.vue\"\nexport { default as CalendarGridHead } from \"./CalendarGridHead.vue\"\nexport { default as CalendarGridRow } from \"./CalendarGridRow.vue\"\nexport { default as CalendarHeadCell } from \"./CalendarHeadCell.vue\"\nexport { default as CalendarHeader } from \"./CalendarHeader.vue\"\nexport { default as CalendarHeading } from \"./CalendarHeading.vue\"\nexport { default as CalendarNextButton } from \"./CalendarNextButton.vue\"\nexport { default as CalendarPrevButton } from \"./CalendarPrevButton.vue\"\n\n// Card\nexport { default as Card } from \"./Card.vue\"\nexport { default as CardContent } from \"./CardContent.vue\"\nexport { default as CardDescription } from \"./CardDescription.vue\"\nexport { default as CardFooter } from \"./CardFooter.vue\"\nexport { default as CardHeader } from \"./CardHeader.vue\"\nexport { default as CardTitle } from \"./CardTitle.vue\"\n\n// Checkbox\nexport { default as Checkbox } from \"./Checkbox.vue\"\n\n// Combobox\nexport { default as Combobox } from \"./Combobox.vue\"\nexport { default as ComboboxAnchor } from \"./ComboboxAnchor.vue\"\nexport { default as ComboboxEmpty } from \"./ComboboxEmpty.vue\"\nexport { default as ComboboxGroup } from \"./ComboboxGroup.vue\"\nexport { default as ComboboxInput } from \"./ComboboxInput.vue\"\nexport { default as ComboboxItem } from \"./ComboboxItem.vue\"\nexport { default as ComboboxList } from \"./ComboboxList.vue\"\nexport { default as ComboboxSeparator } from \"./ComboboxSeparator.vue\"\nexport { default as ComboboxTrigger } from \"./ComboboxTrigger.vue\"\n\n// ContextMenu\nexport { default as ContextMenu } from \"./ContextMenu.vue\"\nexport { default as ContextMenuCheckboxItem } from \"./ContextMenuCheckboxItem.vue\"\nexport { default as ContextMenuContent } from \"./ContextMenuContent.vue\"\nexport { default as ContextMenuGroup } from \"./ContextMenuGroup.vue\"\nexport { default as ContextMenuItem } from \"./ContextMenuItem.vue\"\nexport { default as ContextMenuLabel } from \"./ContextMenuLabel.vue\"\nexport { default as ContextMenuPortal } from \"./ContextMenuPortal.vue\"\nexport { default as ContextMenuRadioGroup } from \"./ContextMenuRadioGroup.vue\"\nexport { default as ContextMenuRadioItem } from \"./ContextMenuRadioItem.vue\"\nexport { default as ContextMenuSeparator } from \"./ContextMenuSeparator.vue\"\nexport { default as ContextMenuShortcut } from \"./ContextMenuShortcut.vue\"\nexport { default as ContextMenuSub } from \"./ContextMenuSub.vue\"\nexport { default as ContextMenuSubContent } from \"./ContextMenuSubContent.vue\"\nexport { default as ContextMenuSubTrigger } from \"./ContextMenuSubTrigger.vue\"\nexport { default as ContextMenuTrigger } from \"./ContextMenuTrigger.vue\"\n\n// Dialog\nexport { default as Dialog } from \"./Dialog.vue\"\nexport { default as DialogBody } from \"./DialogBody.vue\"\nexport { default as DialogContent } from \"./DialogContent.vue\"\nexport { default as DialogDescription } from \"./DialogDescription.vue\"\nexport { default as DialogFooter } from \"./DialogFooter.vue\"\nexport { default as DialogHeader } from \"./DialogHeader.vue\"\nexport { default as DialogTitle } from \"./DialogTitle.vue\"\n\n// Field\nexport { default as Field } from \"./Field.vue\"\nexport { default as FieldContent } from \"./FieldContent.vue\"\nexport { default as FieldDescription } from \"./FieldDescription.vue\"\nexport { default as FieldError } from \"./FieldError.vue\"\nexport { default as FieldGroup } from \"./FieldGroup.vue\"\nexport { default as FieldLabel } from \"./FieldLabel.vue\"\nexport { default as FieldLegend } from \"./FieldLegend.vue\"\nexport { default as FieldSeparator } from \"./FieldSeparator.vue\"\nexport { default as FieldSet } from \"./FieldSet.vue\"\nexport { default as FieldTitle } from \"./FieldTitle.vue\"\n\n// ButtonGroup\nexport { default as ButtonGroup } from \"./ButtonGroup.vue\"\nexport { default as ButtonGroupSeparator } from \"./ButtonGroupSeparator.vue\"\nexport { default as ButtonGroupText } from \"./ButtonGroupText.vue\"\n\n// Input\nexport { default as Button } from \"./Button.vue\"\nexport { default as Input } from \"./Input.vue\"\n\n// Kbd\nexport { default as Kbd } from \"./Kbd.vue\"\nexport { default as KbdGroup } from \"./KbdGroup.vue\"\n\n// Label\nexport { default as Label } from \"./Label.vue\"\n\n// Popover\nexport { default as Popover } from \"./Popover.vue\"\nexport { default as PopoverContent } from \"./PopoverContent.vue\"\nexport { default as PopoverTrigger } from \"./PopoverTrigger.vue\"\n\n// Progress\nexport { default as Progress } from \"./Progress.vue\"\n\n// Radio\nexport { default as RadioGroup } from \"./RadioGroup.vue\"\nexport { default as RadioGroupItem } from \"./RadioGroupItem.vue\"\n\n// Select\nexport { default as Select } from \"./Select.vue\"\nexport { default as SelectContent } from \"./SelectContent.vue\"\nexport { default as SelectGroup } from \"./SelectGroup.vue\"\nexport { default as SelectItem } from \"./SelectItem.vue\"\nexport { default as SelectItemText } from \"./SelectItemText.vue\"\nexport { default as SelectLabel } from \"./SelectLabel.vue\"\nexport { default as SelectScrollDownButton } from \"./SelectScrollDownButton.vue\"\nexport { default as SelectScrollUpButton } from \"./SelectScrollUpButton.vue\"\nexport { default as SelectSeparator } from \"./SelectSeparator.vue\"\nexport { default as SelectTrigger } from \"./SelectTrigger.vue\"\nexport { default as SelectValue } from \"./SelectValue.vue\"\n\n// Separator\nexport { default as Separator } from \"./Separator.vue\"\n\n// Spinner\nexport { default as Spinner } from \"./Spinner.vue\"\n\n// Switch\nexport { default as Switch } from \"./Switch.vue\"\n\n// Tabs\nexport { default as Tabs } from \"./Tabs.vue\"\nexport { default as TabsContent } from \"./TabsContent.vue\"\nexport { default as TabsList } from \"./TabsList.vue\"\nexport { default as TabsTrigger } from \"./TabsTrigger.vue\"\n\n// Textarea\nexport { default as Textarea } from \"./Textarea.vue\"\n\n\n// Tooltip\nexport { default as Tooltip } from \"./Tooltip.vue\"\nexport { default as TooltipContent } from \"./TooltipContent.vue\"\nexport { default as TooltipProvider } from \"./TooltipProvider.vue\"\nexport { default as TooltipTrigger } from \"./TooltipTrigger.vue\"\n\n// Toaster\nexport { default as Toaster } from \"./Toaster.vue\"\n"],"names":["buttonVariants","cva"],"mappings":"yZAIO,MAAMA,EAAiBC,EAAAA,IAC5B,sSACA,CACE,SAAU,CACR,QAAS,CACP,QAAS,yDACT,YACE,qEACF,QACE,iFACF,UACE,+DACF,MAAO,+CACP,KAAM,iDAAA,EAER,KAAM,CACJ,GAAI,8BACJ,GAAI,gCACJ,GAAI,mBACJ,GAAI,8BACJ,KAAM,SAAA,CACR,EAEF,gBAAiB,CACf,QAAS,UACT,KAAM,IAAA,CACR,CAEJ"}
@@ -11,7 +11,7 @@ import "./badge-variants.js";
11
11
  import "./button-group-variants.js";
12
12
  import "vue-sonner";
13
13
  const g = e(
14
- "inline-flex items-center justify-center whitespace-nowrap rounded-sm text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50",
14
+ "inline-flex items-center justify-center whitespace-nowrap rounded-sm text-xs font-medium ring-offset-background transition-colors duration-150 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50",
15
15
  {
16
16
  variants: {
17
17
  variant: {
@@ -23,11 +23,11 @@ const g = e(
23
23
  link: "text-primary underline-offset-4 hover:underline"
24
24
  },
25
25
  size: {
26
- xs: "h-7 rounded-sm px-2 text-xs",
27
- sm: "h-8 rounded-sm px-3 text-sm",
28
- md: "h-9 px-4 py-2",
29
- lg: "h-10 rounded-sm px-6",
30
- icon: "h-9 w-9"
26
+ xs: "h-6 rounded-sm px-2 text-xs",
27
+ sm: "h-7 rounded-sm px-2.5 text-xs",
28
+ md: "h-8 px-3 text-sm",
29
+ lg: "h-9 rounded-sm px-4 text-sm",
30
+ icon: "h-8 w-8"
31
31
  }
32
32
  },
33
33
  defaultVariants: {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../../src/components/shadcn/index.ts"],"sourcesContent":["// Button variants\nimport type { VariantProps } from \"class-variance-authority\"\nimport { cva } from \"class-variance-authority\"\n\nexport const buttonVariants = cva(\n \"inline-flex items-center justify-center whitespace-nowrap rounded-sm text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50\",\n {\n variants: {\n variant: {\n default: \"bg-primary text-primary-foreground hover:bg-primary/90\",\n destructive:\n \"bg-destructive text-destructive-foreground hover:bg-destructive/90\",\n outline:\n \"border border-input bg-background hover:bg-accent hover:text-accent-foreground\",\n secondary:\n \"bg-secondary text-secondary-foreground hover:bg-secondary/80\",\n ghost: \"hover:bg-accent hover:text-accent-foreground\",\n link: \"text-primary underline-offset-4 hover:underline\",\n },\n size: {\n xs: \"h-7 rounded-sm px-2 text-xs\",\n sm: \"h-8 rounded-sm px-3 text-sm\",\n md: \"h-9 px-4 py-2\",\n lg: \"h-10 rounded-sm px-6\",\n icon: \"h-9 w-9\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n size: \"sm\",\n },\n },\n)\n\nexport type ButtonVariants = VariantProps<typeof buttonVariants>\n\n// Accordion\nexport { default as Accordion } from \"./Accordion.vue\"\nexport { default as AccordionContent } from \"./AccordionContent.vue\"\nexport { default as AccordionItem } from \"./AccordionItem.vue\"\nexport { default as AccordionTrigger } from \"./AccordionTrigger.vue\"\n\n// Alert\nexport { default as Alert } from \"./Alert.vue\"\nexport { default as AlertDescription } from \"./AlertDescription.vue\"\nexport { default as AlertTitle } from \"./AlertTitle.vue\"\n\n// Avatar\nexport { default as Avatar } from \"./Avatar.vue\"\nexport { default as AvatarFallback } from \"./AvatarFallback.vue\"\nexport { default as AvatarImage } from \"./AvatarImage.vue\"\n\n// Badge\nexport { default as Badge } from \"./Badge.vue\"\n\n// Calendar\nexport { default as Calendar } from \"./Calendar.vue\"\nexport { default as CalendarCell } from \"./CalendarCell.vue\"\nexport { default as CalendarCellTrigger } from \"./CalendarCellTrigger.vue\"\nexport { default as CalendarGrid } from \"./CalendarGrid.vue\"\nexport { default as CalendarGridBody } from \"./CalendarGridBody.vue\"\nexport { default as CalendarGridHead } from \"./CalendarGridHead.vue\"\nexport { default as CalendarGridRow } from \"./CalendarGridRow.vue\"\nexport { default as CalendarHeadCell } from \"./CalendarHeadCell.vue\"\nexport { default as CalendarHeader } from \"./CalendarHeader.vue\"\nexport { default as CalendarHeading } from \"./CalendarHeading.vue\"\nexport { default as CalendarNextButton } from \"./CalendarNextButton.vue\"\nexport { default as CalendarPrevButton } from \"./CalendarPrevButton.vue\"\n\n// Card\nexport { default as Card } from \"./Card.vue\"\nexport { default as CardContent } from \"./CardContent.vue\"\nexport { default as CardDescription } from \"./CardDescription.vue\"\nexport { default as CardFooter } from \"./CardFooter.vue\"\nexport { default as CardHeader } from \"./CardHeader.vue\"\nexport { default as CardTitle } from \"./CardTitle.vue\"\n\n// Checkbox\nexport { default as Checkbox } from \"./Checkbox.vue\"\n\n// Combobox\nexport { default as Combobox } from \"./Combobox.vue\"\nexport { default as ComboboxAnchor } from \"./ComboboxAnchor.vue\"\nexport { default as ComboboxEmpty } from \"./ComboboxEmpty.vue\"\nexport { default as ComboboxGroup } from \"./ComboboxGroup.vue\"\nexport { default as ComboboxInput } from \"./ComboboxInput.vue\"\nexport { default as ComboboxItem } from \"./ComboboxItem.vue\"\nexport { default as ComboboxList } from \"./ComboboxList.vue\"\nexport { default as ComboboxSeparator } from \"./ComboboxSeparator.vue\"\nexport { default as ComboboxTrigger } from \"./ComboboxTrigger.vue\"\n\n// ContextMenu\nexport { default as ContextMenu } from \"./ContextMenu.vue\"\nexport { default as ContextMenuCheckboxItem } from \"./ContextMenuCheckboxItem.vue\"\nexport { default as ContextMenuContent } from \"./ContextMenuContent.vue\"\nexport { default as ContextMenuGroup } from \"./ContextMenuGroup.vue\"\nexport { default as ContextMenuItem } from \"./ContextMenuItem.vue\"\nexport { default as ContextMenuLabel } from \"./ContextMenuLabel.vue\"\nexport { default as ContextMenuPortal } from \"./ContextMenuPortal.vue\"\nexport { default as ContextMenuRadioGroup } from \"./ContextMenuRadioGroup.vue\"\nexport { default as ContextMenuRadioItem } from \"./ContextMenuRadioItem.vue\"\nexport { default as ContextMenuSeparator } from \"./ContextMenuSeparator.vue\"\nexport { default as ContextMenuShortcut } from \"./ContextMenuShortcut.vue\"\nexport { default as ContextMenuSub } from \"./ContextMenuSub.vue\"\nexport { default as ContextMenuSubContent } from \"./ContextMenuSubContent.vue\"\nexport { default as ContextMenuSubTrigger } from \"./ContextMenuSubTrigger.vue\"\nexport { default as ContextMenuTrigger } from \"./ContextMenuTrigger.vue\"\n\n// Dialog\nexport { default as Dialog } from \"./Dialog.vue\"\nexport { default as DialogBody } from \"./DialogBody.vue\"\nexport { default as DialogContent } from \"./DialogContent.vue\"\nexport { default as DialogDescription } from \"./DialogDescription.vue\"\nexport { default as DialogFooter } from \"./DialogFooter.vue\"\nexport { default as DialogHeader } from \"./DialogHeader.vue\"\nexport { default as DialogTitle } from \"./DialogTitle.vue\"\n\n// Field\nexport { default as Field } from \"./Field.vue\"\nexport { default as FieldContent } from \"./FieldContent.vue\"\nexport { default as FieldDescription } from \"./FieldDescription.vue\"\nexport { default as FieldError } from \"./FieldError.vue\"\nexport { default as FieldGroup } from \"./FieldGroup.vue\"\nexport { default as FieldLabel } from \"./FieldLabel.vue\"\nexport { default as FieldLegend } from \"./FieldLegend.vue\"\nexport { default as FieldSeparator } from \"./FieldSeparator.vue\"\nexport { default as FieldSet } from \"./FieldSet.vue\"\nexport { default as FieldTitle } from \"./FieldTitle.vue\"\n\n// ButtonGroup\nexport { default as ButtonGroup } from \"./ButtonGroup.vue\"\nexport { default as ButtonGroupSeparator } from \"./ButtonGroupSeparator.vue\"\nexport { default as ButtonGroupText } from \"./ButtonGroupText.vue\"\n\n// Input\nexport { default as Button } from \"./Button.vue\"\nexport { default as Input } from \"./Input.vue\"\n\n// Kbd\nexport { default as Kbd } from \"./Kbd.vue\"\nexport { default as KbdGroup } from \"./KbdGroup.vue\"\n\n// Label\nexport { default as Label } from \"./Label.vue\"\n\n// Popover\nexport { default as Popover } from \"./Popover.vue\"\nexport { default as PopoverContent } from \"./PopoverContent.vue\"\nexport { default as PopoverTrigger } from \"./PopoverTrigger.vue\"\n\n// Progress\nexport { default as Progress } from \"./Progress.vue\"\n\n// Radio\nexport { default as RadioGroup } from \"./RadioGroup.vue\"\nexport { default as RadioGroupItem } from \"./RadioGroupItem.vue\"\n\n// Select\nexport { default as Select } from \"./Select.vue\"\nexport { default as SelectContent } from \"./SelectContent.vue\"\nexport { default as SelectGroup } from \"./SelectGroup.vue\"\nexport { default as SelectItem } from \"./SelectItem.vue\"\nexport { default as SelectItemText } from \"./SelectItemText.vue\"\nexport { default as SelectLabel } from \"./SelectLabel.vue\"\nexport { default as SelectScrollDownButton } from \"./SelectScrollDownButton.vue\"\nexport { default as SelectScrollUpButton } from \"./SelectScrollUpButton.vue\"\nexport { default as SelectSeparator } from \"./SelectSeparator.vue\"\nexport { default as SelectTrigger } from \"./SelectTrigger.vue\"\nexport { default as SelectValue } from \"./SelectValue.vue\"\n\n// Separator\nexport { default as Separator } from \"./Separator.vue\"\n\n// Spinner\nexport { default as Spinner } from \"./Spinner.vue\"\n\n// Switch\nexport { default as Switch } from \"./Switch.vue\"\n\n// Tabs\nexport { default as Tabs } from \"./Tabs.vue\"\nexport { default as TabsContent } from \"./TabsContent.vue\"\nexport { default as TabsList } from \"./TabsList.vue\"\nexport { default as TabsTrigger } from \"./TabsTrigger.vue\"\n\n// Textarea\nexport { default as Textarea } from \"./Textarea.vue\"\n\n\n// Tooltip\nexport { default as Tooltip } from \"./Tooltip.vue\"\nexport { default as TooltipContent } from \"./TooltipContent.vue\"\nexport { default as TooltipProvider } from \"./TooltipProvider.vue\"\nexport { default as TooltipTrigger } from \"./TooltipTrigger.vue\"\n\n// Toaster\nexport { default as Toaster } from \"./Toaster.vue\""],"names":["buttonVariants","cva"],"mappings":";;;;;;;;;;;;AAIO,MAAMA,IAAiBC;AAAA,EAC5B;AAAA,EACA;AAAA,IACE,UAAU;AAAA,MACR,SAAS;AAAA,QACP,SAAS;AAAA,QACT,aACE;AAAA,QACF,SACE;AAAA,QACF,WACE;AAAA,QACF,OAAO;AAAA,QACP,MAAM;AAAA,MAAA;AAAA,MAER,MAAM;AAAA,QACJ,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,MAAM;AAAA,MAAA;AAAA,IACR;AAAA,IAEF,iBAAiB;AAAA,MACf,SAAS;AAAA,MACT,MAAM;AAAA,IAAA;AAAA,EACR;AAEJ;"}
1
+ {"version":3,"file":"index.js","sources":["../../../../src/components/shadcn/index.ts"],"sourcesContent":["// Button variants\nimport type { VariantProps } from \"class-variance-authority\"\nimport { cva } from \"class-variance-authority\"\n\nexport const buttonVariants = cva(\n \"inline-flex items-center justify-center whitespace-nowrap rounded-sm text-xs font-medium ring-offset-background transition-colors duration-150 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50\",\n {\n variants: {\n variant: {\n default: \"bg-primary text-primary-foreground hover:bg-primary/90\",\n destructive:\n \"bg-destructive text-destructive-foreground hover:bg-destructive/90\",\n outline:\n \"border border-input bg-background hover:bg-accent hover:text-accent-foreground\",\n secondary:\n \"bg-secondary text-secondary-foreground hover:bg-secondary/80\",\n ghost: \"hover:bg-accent hover:text-accent-foreground\",\n link: \"text-primary underline-offset-4 hover:underline\",\n },\n size: {\n xs: \"h-6 rounded-sm px-2 text-xs\",\n sm: \"h-7 rounded-sm px-2.5 text-xs\",\n md: \"h-8 px-3 text-sm\",\n lg: \"h-9 rounded-sm px-4 text-sm\",\n icon: \"h-8 w-8\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n size: \"sm\",\n },\n },\n)\n\nexport type ButtonVariants = VariantProps<typeof buttonVariants>\n\n// Accordion\nexport { default as Accordion } from \"./Accordion.vue\"\nexport { default as AccordionContent } from \"./AccordionContent.vue\"\nexport { default as AccordionItem } from \"./AccordionItem.vue\"\nexport { default as AccordionTrigger } from \"./AccordionTrigger.vue\"\n\n// Alert\nexport { default as Alert } from \"./Alert.vue\"\nexport { default as AlertDescription } from \"./AlertDescription.vue\"\nexport { default as AlertTitle } from \"./AlertTitle.vue\"\n\n// Avatar\nexport { default as Avatar } from \"./Avatar.vue\"\nexport { default as AvatarFallback } from \"./AvatarFallback.vue\"\nexport { default as AvatarImage } from \"./AvatarImage.vue\"\n\n// Badge\nexport { default as Badge } from \"./Badge.vue\"\n\n// Calendar\nexport { default as Calendar } from \"./Calendar.vue\"\nexport { default as CalendarCell } from \"./CalendarCell.vue\"\nexport { default as CalendarCellTrigger } from \"./CalendarCellTrigger.vue\"\nexport { default as CalendarGrid } from \"./CalendarGrid.vue\"\nexport { default as CalendarGridBody } from \"./CalendarGridBody.vue\"\nexport { default as CalendarGridHead } from \"./CalendarGridHead.vue\"\nexport { default as CalendarGridRow } from \"./CalendarGridRow.vue\"\nexport { default as CalendarHeadCell } from \"./CalendarHeadCell.vue\"\nexport { default as CalendarHeader } from \"./CalendarHeader.vue\"\nexport { default as CalendarHeading } from \"./CalendarHeading.vue\"\nexport { default as CalendarNextButton } from \"./CalendarNextButton.vue\"\nexport { default as CalendarPrevButton } from \"./CalendarPrevButton.vue\"\n\n// Card\nexport { default as Card } from \"./Card.vue\"\nexport { default as CardContent } from \"./CardContent.vue\"\nexport { default as CardDescription } from \"./CardDescription.vue\"\nexport { default as CardFooter } from \"./CardFooter.vue\"\nexport { default as CardHeader } from \"./CardHeader.vue\"\nexport { default as CardTitle } from \"./CardTitle.vue\"\n\n// Checkbox\nexport { default as Checkbox } from \"./Checkbox.vue\"\n\n// Combobox\nexport { default as Combobox } from \"./Combobox.vue\"\nexport { default as ComboboxAnchor } from \"./ComboboxAnchor.vue\"\nexport { default as ComboboxEmpty } from \"./ComboboxEmpty.vue\"\nexport { default as ComboboxGroup } from \"./ComboboxGroup.vue\"\nexport { default as ComboboxInput } from \"./ComboboxInput.vue\"\nexport { default as ComboboxItem } from \"./ComboboxItem.vue\"\nexport { default as ComboboxList } from \"./ComboboxList.vue\"\nexport { default as ComboboxSeparator } from \"./ComboboxSeparator.vue\"\nexport { default as ComboboxTrigger } from \"./ComboboxTrigger.vue\"\n\n// ContextMenu\nexport { default as ContextMenu } from \"./ContextMenu.vue\"\nexport { default as ContextMenuCheckboxItem } from \"./ContextMenuCheckboxItem.vue\"\nexport { default as ContextMenuContent } from \"./ContextMenuContent.vue\"\nexport { default as ContextMenuGroup } from \"./ContextMenuGroup.vue\"\nexport { default as ContextMenuItem } from \"./ContextMenuItem.vue\"\nexport { default as ContextMenuLabel } from \"./ContextMenuLabel.vue\"\nexport { default as ContextMenuPortal } from \"./ContextMenuPortal.vue\"\nexport { default as ContextMenuRadioGroup } from \"./ContextMenuRadioGroup.vue\"\nexport { default as ContextMenuRadioItem } from \"./ContextMenuRadioItem.vue\"\nexport { default as ContextMenuSeparator } from \"./ContextMenuSeparator.vue\"\nexport { default as ContextMenuShortcut } from \"./ContextMenuShortcut.vue\"\nexport { default as ContextMenuSub } from \"./ContextMenuSub.vue\"\nexport { default as ContextMenuSubContent } from \"./ContextMenuSubContent.vue\"\nexport { default as ContextMenuSubTrigger } from \"./ContextMenuSubTrigger.vue\"\nexport { default as ContextMenuTrigger } from \"./ContextMenuTrigger.vue\"\n\n// Dialog\nexport { default as Dialog } from \"./Dialog.vue\"\nexport { default as DialogBody } from \"./DialogBody.vue\"\nexport { default as DialogContent } from \"./DialogContent.vue\"\nexport { default as DialogDescription } from \"./DialogDescription.vue\"\nexport { default as DialogFooter } from \"./DialogFooter.vue\"\nexport { default as DialogHeader } from \"./DialogHeader.vue\"\nexport { default as DialogTitle } from \"./DialogTitle.vue\"\n\n// Field\nexport { default as Field } from \"./Field.vue\"\nexport { default as FieldContent } from \"./FieldContent.vue\"\nexport { default as FieldDescription } from \"./FieldDescription.vue\"\nexport { default as FieldError } from \"./FieldError.vue\"\nexport { default as FieldGroup } from \"./FieldGroup.vue\"\nexport { default as FieldLabel } from \"./FieldLabel.vue\"\nexport { default as FieldLegend } from \"./FieldLegend.vue\"\nexport { default as FieldSeparator } from \"./FieldSeparator.vue\"\nexport { default as FieldSet } from \"./FieldSet.vue\"\nexport { default as FieldTitle } from \"./FieldTitle.vue\"\n\n// ButtonGroup\nexport { default as ButtonGroup } from \"./ButtonGroup.vue\"\nexport { default as ButtonGroupSeparator } from \"./ButtonGroupSeparator.vue\"\nexport { default as ButtonGroupText } from \"./ButtonGroupText.vue\"\n\n// Input\nexport { default as Button } from \"./Button.vue\"\nexport { default as Input } from \"./Input.vue\"\n\n// Kbd\nexport { default as Kbd } from \"./Kbd.vue\"\nexport { default as KbdGroup } from \"./KbdGroup.vue\"\n\n// Label\nexport { default as Label } from \"./Label.vue\"\n\n// Popover\nexport { default as Popover } from \"./Popover.vue\"\nexport { default as PopoverContent } from \"./PopoverContent.vue\"\nexport { default as PopoverTrigger } from \"./PopoverTrigger.vue\"\n\n// Progress\nexport { default as Progress } from \"./Progress.vue\"\n\n// Radio\nexport { default as RadioGroup } from \"./RadioGroup.vue\"\nexport { default as RadioGroupItem } from \"./RadioGroupItem.vue\"\n\n// Select\nexport { default as Select } from \"./Select.vue\"\nexport { default as SelectContent } from \"./SelectContent.vue\"\nexport { default as SelectGroup } from \"./SelectGroup.vue\"\nexport { default as SelectItem } from \"./SelectItem.vue\"\nexport { default as SelectItemText } from \"./SelectItemText.vue\"\nexport { default as SelectLabel } from \"./SelectLabel.vue\"\nexport { default as SelectScrollDownButton } from \"./SelectScrollDownButton.vue\"\nexport { default as SelectScrollUpButton } from \"./SelectScrollUpButton.vue\"\nexport { default as SelectSeparator } from \"./SelectSeparator.vue\"\nexport { default as SelectTrigger } from \"./SelectTrigger.vue\"\nexport { default as SelectValue } from \"./SelectValue.vue\"\n\n// Separator\nexport { default as Separator } from \"./Separator.vue\"\n\n// Spinner\nexport { default as Spinner } from \"./Spinner.vue\"\n\n// Switch\nexport { default as Switch } from \"./Switch.vue\"\n\n// Tabs\nexport { default as Tabs } from \"./Tabs.vue\"\nexport { default as TabsContent } from \"./TabsContent.vue\"\nexport { default as TabsList } from \"./TabsList.vue\"\nexport { default as TabsTrigger } from \"./TabsTrigger.vue\"\n\n// Textarea\nexport { default as Textarea } from \"./Textarea.vue\"\n\n\n// Tooltip\nexport { default as Tooltip } from \"./Tooltip.vue\"\nexport { default as TooltipContent } from \"./TooltipContent.vue\"\nexport { default as TooltipProvider } from \"./TooltipProvider.vue\"\nexport { default as TooltipTrigger } from \"./TooltipTrigger.vue\"\n\n// Toaster\nexport { default as Toaster } from \"./Toaster.vue\"\n"],"names":["buttonVariants","cva"],"mappings":";;;;;;;;;;;;AAIO,MAAMA,IAAiBC;AAAA,EAC5B;AAAA,EACA;AAAA,IACE,UAAU;AAAA,MACR,SAAS;AAAA,QACP,SAAS;AAAA,QACT,aACE;AAAA,QACF,SACE;AAAA,QACF,WACE;AAAA,QACF,OAAO;AAAA,QACP,MAAM;AAAA,MAAA;AAAA,MAER,MAAM;AAAA,QACJ,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,MAAM;AAAA,MAAA;AAAA,IACR;AAAA,IAEF,iBAAiB;AAAA,MACf,SAAS;AAAA,MACT,MAAM;AAAA,IAAA;AAAA,EACR;AAEJ;"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("vue"),l=require("@vueuse/core"),c=require("lucide-vue-next"),r=require("reka-ui"),d=require("../../../lib/utils.cjs"),u={key:0,class:"z-10 flex h-4 w-3 items-center justify-center rounded-sm border bg-border"},f=e.defineComponent({__name:"ResizableHandle",props:{id:{},hitAreaMargins:{},tabindex:{},disabled:{type:Boolean},nonce:{},asChild:{type:Boolean},as:{},class:{},withHandle:{type:Boolean}},emits:["dragging"],setup(a,{emit:i}){const t=a,n=i,o=l.reactiveOmit(t,"class"),s=r.useForwardPropsEmits(o,n);return(p,v)=>(e.openBlock(),e.createBlock(e.unref(r.SplitterResizeHandle),e.mergeProps(e.unref(s),{class:e.unref(d.cn)("relative flex w-px items-center justify-center bg-border after:absolute after:inset-y-0 after:left-1/2 after:w-1 after:-translate-x-1/2 focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring focus-visible:ring-offset-1 [&[data-orientation=vertical]]:h-px [&[data-orientation=vertical]]:w-full [&[data-orientation=vertical]]:after:left-0 [&[data-orientation=vertical]]:after:h-1 [&[data-orientation=vertical]]:after:w-full [&[data-orientation=vertical]]:after:-translate-y-1/2 [&[data-orientation=vertical]]:after:translate-x-0 [&[data-orientation=vertical]>div]:rotate-90",t.class)}),{default:e.withCtx(()=>[t.withHandle?(e.openBlock(),e.createElementBlock("div",u,[e.createVNode(e.unref(c.GripVertical),{class:"h-2.5 w-2.5"})])):e.createCommentVNode("",!0)]),_:1},16,["class"]))}});exports.default=f;
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("vue"),l=require("@vueuse/core"),c=require("lucide-vue-next"),r=require("reka-ui"),d=require("../../../lib/utils.cjs"),u={key:0,class:"z-10 flex h-3.5 w-2.5 items-center justify-center rounded-[3px] border border-border/70 bg-background/95 shadow-sm"},f=e.defineComponent({__name:"ResizableHandle",props:{id:{},hitAreaMargins:{},tabindex:{},disabled:{type:Boolean},nonce:{},asChild:{type:Boolean},as:{},class:{},withHandle:{type:Boolean}},emits:["dragging"],setup(a,{emit:i}){const t=a,n=i,o=l.reactiveOmit(t,"class"),s=r.useForwardPropsEmits(o,n);return(p,v)=>(e.openBlock(),e.createBlock(e.unref(r.SplitterResizeHandle),e.mergeProps(e.unref(s),{class:e.unref(d.cn)("relative flex w-px items-center justify-center bg-transparent after:absolute after:inset-y-0 after:left-1/2 after:w-1 after:-translate-x-1/2 focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring focus-visible:ring-offset-1 [&[data-orientation=vertical]]:h-px [&[data-orientation=vertical]]:w-full [&[data-orientation=vertical]]:after:left-0 [&[data-orientation=vertical]]:after:h-1 [&[data-orientation=vertical]]:after:w-full [&[data-orientation=vertical]]:after:-translate-y-1/2 [&[data-orientation=vertical]]:after:translate-x-0 [&[data-orientation=vertical]>div]:rotate-90",t.class)}),{default:e.withCtx(()=>[t.withHandle?(e.openBlock(),e.createElementBlock("div",u,[e.createVNode(e.unref(c.GripVertical),{class:"h-2 w-2 text-muted-foreground"})])):e.createCommentVNode("",!0)]),_:1},16,["class"]))}});exports.default=f;
2
2
  //# sourceMappingURL=ResizableHandle.vue.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"ResizableHandle.vue.cjs","sources":["../../../../../src/components/shadcn/resizable/ResizableHandle.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport type { SplitterResizeHandleEmits, SplitterResizeHandleProps } from \"reka-ui\"\nimport type { HTMLAttributes } from \"vue\"\nimport { reactiveOmit } from \"@vueuse/core\"\nimport { GripVertical } from \"lucide-vue-next\"\nimport { SplitterResizeHandle, useForwardPropsEmits } from \"reka-ui\"\nimport { cn } from \"@/lib/utils\"\n\nconst props = defineProps<SplitterResizeHandleProps & { class?: HTMLAttributes[\"class\"], withHandle?: boolean }>()\nconst emits = defineEmits<SplitterResizeHandleEmits>()\n\nconst delegatedProps = reactiveOmit(props, \"class\")\n\nconst forwarded = useForwardPropsEmits(delegatedProps, emits)\n</script>\n\n<template>\n <SplitterResizeHandle v-bind=\"forwarded\" :class=\"cn('relative flex w-px items-center justify-center bg-border after:absolute after:inset-y-0 after:left-1/2 after:w-1 after:-translate-x-1/2 focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring focus-visible:ring-offset-1 [&[data-orientation=vertical]]:h-px [&[data-orientation=vertical]]:w-full [&[data-orientation=vertical]]:after:left-0 [&[data-orientation=vertical]]:after:h-1 [&[data-orientation=vertical]]:after:w-full [&[data-orientation=vertical]]:after:-translate-y-1/2 [&[data-orientation=vertical]]:after:translate-x-0 [&[data-orientation=vertical]>div]:rotate-90', props.class)\">\n <template v-if=\"props.withHandle\">\n <div class=\"z-10 flex h-4 w-3 items-center justify-center rounded-sm border bg-border\">\n <GripVertical class=\"h-2.5 w-2.5\" />\n </div>\n </template>\n </SplitterResizeHandle>\n</template>\n"],"names":["props","__props","emits","__emit","delegatedProps","reactiveOmit","forwarded","useForwardPropsEmits","_createBlock","_unref","SplitterResizeHandle","_mergeProps","cn","_openBlock","_createElementBlock","_hoisted_1","_createVNode","GripVertical"],"mappings":"+iBAQA,MAAMA,EAAQC,EACRC,EAAQC,EAERC,EAAiBC,EAAAA,aAAaL,EAAO,OAAO,EAE5CM,EAAYC,EAAAA,qBAAqBH,EAAgBF,CAAK,8BAI1DM,EAAAA,YAMuBC,EAAAA,MAAAC,EAAAA,oBAAA,EANvBC,EAAAA,WAMuBF,QAAAH,CAAA,EANgB,CAAG,MAAOG,EAAAA,MAAAG,EAAAA,EAAA,EAAE,+kBAAilBZ,EAAM,KAAK,CAAA,sBAC7oB,IAIW,CAJKA,EAAM,YACpBa,EAAAA,UAAA,EAAAC,EAAAA,mBAEM,MAFNC,EAEM,CADJC,EAAAA,YAAoCP,EAAAA,MAAAQ,EAAAA,YAAA,EAAA,CAAtB,MAAM,cAAa,CAAA"}
1
+ {"version":3,"file":"ResizableHandle.vue.cjs","sources":["../../../../../src/components/shadcn/resizable/ResizableHandle.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport type { SplitterResizeHandleEmits, SplitterResizeHandleProps } from \"reka-ui\"\nimport type { HTMLAttributes } from \"vue\"\nimport { reactiveOmit } from \"@vueuse/core\"\nimport { GripVertical } from \"lucide-vue-next\"\nimport { SplitterResizeHandle, useForwardPropsEmits } from \"reka-ui\"\nimport { cn } from \"@/lib/utils\"\n\nconst props = defineProps<SplitterResizeHandleProps & { class?: HTMLAttributes[\"class\"], withHandle?: boolean }>()\nconst emits = defineEmits<SplitterResizeHandleEmits>()\n\nconst delegatedProps = reactiveOmit(props, \"class\")\n\nconst forwarded = useForwardPropsEmits(delegatedProps, emits)\n</script>\n\n<template>\n <SplitterResizeHandle v-bind=\"forwarded\" :class=\"cn('relative flex w-px items-center justify-center bg-transparent after:absolute after:inset-y-0 after:left-1/2 after:w-1 after:-translate-x-1/2 focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring focus-visible:ring-offset-1 [&[data-orientation=vertical]]:h-px [&[data-orientation=vertical]]:w-full [&[data-orientation=vertical]]:after:left-0 [&[data-orientation=vertical]]:after:h-1 [&[data-orientation=vertical]]:after:w-full [&[data-orientation=vertical]]:after:-translate-y-1/2 [&[data-orientation=vertical]]:after:translate-x-0 [&[data-orientation=vertical]>div]:rotate-90', props.class)\">\n <template v-if=\"props.withHandle\">\n <div class=\"z-10 flex h-3.5 w-2.5 items-center justify-center rounded-[3px] border border-border/70 bg-background/95 shadow-sm\">\n <GripVertical class=\"h-2 w-2 text-muted-foreground\" />\n </div>\n </template>\n </SplitterResizeHandle>\n</template>\n"],"names":["props","__props","emits","__emit","delegatedProps","reactiveOmit","forwarded","useForwardPropsEmits","_createBlock","_unref","SplitterResizeHandle","_mergeProps","cn","_openBlock","_createElementBlock","_hoisted_1","_createVNode","GripVertical"],"mappings":"wlBAQA,MAAMA,EAAQC,EACRC,EAAQC,EAERC,EAAiBC,EAAAA,aAAaL,EAAO,OAAO,EAE5CM,EAAYC,EAAAA,qBAAqBH,EAAgBF,CAAK,8BAI1DM,EAAAA,YAMuBC,EAAAA,MAAAC,EAAAA,oBAAA,EANvBC,EAAAA,WAMuBF,QAAAH,CAAA,EANgB,CAAG,MAAOG,EAAAA,MAAAG,EAAAA,EAAA,EAAE,olBAAslBZ,EAAM,KAAK,CAAA,sBAClpB,IAIW,CAJKA,EAAM,YACpBa,EAAAA,UAAA,EAAAC,EAAAA,mBAEM,MAFNC,EAEM,CADJC,EAAAA,YAAsDP,EAAAA,MAAAQ,EAAAA,YAAA,EAAA,CAAxC,MAAM,gCAA+B,CAAA"}
@@ -5,7 +5,7 @@ import { useForwardPropsEmits as g, SplitterResizeHandle as h } from "reka-ui";
5
5
  import { cn as w } from "../../../lib/utils.js";
6
6
  const x = {
7
7
  key: 0,
8
- class: "z-10 flex h-4 w-3 items-center justify-center rounded-sm border bg-border"
8
+ class: "z-10 flex h-3.5 w-2.5 items-center justify-center rounded-[3px] border border-border/70 bg-background/95 shadow-sm"
9
9
  }, P = /* @__PURE__ */ l({
10
10
  __name: "ResizableHandle",
11
11
  props: {
@@ -23,11 +23,11 @@ const x = {
23
23
  setup(r, { emit: i }) {
24
24
  const t = r, o = i, n = v(t, "class"), s = g(n, o);
25
25
  return (_, y) => (a(), c(e(h), d(e(s), {
26
- class: e(w)("relative flex w-px items-center justify-center bg-border after:absolute after:inset-y-0 after:left-1/2 after:w-1 after:-translate-x-1/2 focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring focus-visible:ring-offset-1 [&[data-orientation=vertical]]:h-px [&[data-orientation=vertical]]:w-full [&[data-orientation=vertical]]:after:left-0 [&[data-orientation=vertical]]:after:h-1 [&[data-orientation=vertical]]:after:w-full [&[data-orientation=vertical]]:after:-translate-y-1/2 [&[data-orientation=vertical]]:after:translate-x-0 [&[data-orientation=vertical]>div]:rotate-90", t.class)
26
+ class: e(w)("relative flex w-px items-center justify-center bg-transparent after:absolute after:inset-y-0 after:left-1/2 after:w-1 after:-translate-x-1/2 focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring focus-visible:ring-offset-1 [&[data-orientation=vertical]]:h-px [&[data-orientation=vertical]]:w-full [&[data-orientation=vertical]]:after:left-0 [&[data-orientation=vertical]]:after:h-1 [&[data-orientation=vertical]]:after:w-full [&[data-orientation=vertical]]:after:-translate-y-1/2 [&[data-orientation=vertical]]:after:translate-x-0 [&[data-orientation=vertical]>div]:rotate-90", t.class)
27
27
  }), {
28
28
  default: f(() => [
29
29
  t.withHandle ? (a(), m("div", x, [
30
- u(e(b), { class: "h-2.5 w-2.5" })
30
+ u(e(b), { class: "h-2 w-2 text-muted-foreground" })
31
31
  ])) : p("", !0)
32
32
  ]),
33
33
  _: 1
@@ -1 +1 @@
1
- {"version":3,"file":"ResizableHandle.vue.js","sources":["../../../../../src/components/shadcn/resizable/ResizableHandle.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport type { SplitterResizeHandleEmits, SplitterResizeHandleProps } from \"reka-ui\"\nimport type { HTMLAttributes } from \"vue\"\nimport { reactiveOmit } from \"@vueuse/core\"\nimport { GripVertical } from \"lucide-vue-next\"\nimport { SplitterResizeHandle, useForwardPropsEmits } from \"reka-ui\"\nimport { cn } from \"@/lib/utils\"\n\nconst props = defineProps<SplitterResizeHandleProps & { class?: HTMLAttributes[\"class\"], withHandle?: boolean }>()\nconst emits = defineEmits<SplitterResizeHandleEmits>()\n\nconst delegatedProps = reactiveOmit(props, \"class\")\n\nconst forwarded = useForwardPropsEmits(delegatedProps, emits)\n</script>\n\n<template>\n <SplitterResizeHandle v-bind=\"forwarded\" :class=\"cn('relative flex w-px items-center justify-center bg-border after:absolute after:inset-y-0 after:left-1/2 after:w-1 after:-translate-x-1/2 focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring focus-visible:ring-offset-1 [&[data-orientation=vertical]]:h-px [&[data-orientation=vertical]]:w-full [&[data-orientation=vertical]]:after:left-0 [&[data-orientation=vertical]]:after:h-1 [&[data-orientation=vertical]]:after:w-full [&[data-orientation=vertical]]:after:-translate-y-1/2 [&[data-orientation=vertical]]:after:translate-x-0 [&[data-orientation=vertical]>div]:rotate-90', props.class)\">\n <template v-if=\"props.withHandle\">\n <div class=\"z-10 flex h-4 w-3 items-center justify-center rounded-sm border bg-border\">\n <GripVertical class=\"h-2.5 w-2.5\" />\n </div>\n </template>\n </SplitterResizeHandle>\n</template>\n"],"names":["props","__props","emits","__emit","delegatedProps","reactiveOmit","forwarded","useForwardPropsEmits","_createBlock","_unref","SplitterResizeHandle","_mergeProps","cn","_openBlock","_createElementBlock","_hoisted_1","_createVNode","GripVertical"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAQA,UAAMA,IAAQC,GACRC,IAAQC,GAERC,IAAiBC,EAAaL,GAAO,OAAO,GAE5CM,IAAYC,EAAqBH,GAAgBF,CAAK;2BAI1DM,EAMuBC,EAAAC,CAAA,GANvBC,EAMuBF,EAAAH,CAAA,GANgB;AAAA,MAAG,OAAOG,EAAAG,CAAA,EAAE,glBAAilBZ,EAAM,KAAK;AAAA,IAAA;iBAC7oB,MAIW;AAAA,QAJKA,EAAM,cACpBa,EAAA,GAAAC,EAEM,OAFNC,GAEM;AAAA,UADJC,EAAoCP,EAAAQ,CAAA,GAAA,EAAtB,OAAM,eAAa;AAAA,QAAA;;;;;;"}
1
+ {"version":3,"file":"ResizableHandle.vue.js","sources":["../../../../../src/components/shadcn/resizable/ResizableHandle.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport type { SplitterResizeHandleEmits, SplitterResizeHandleProps } from \"reka-ui\"\nimport type { HTMLAttributes } from \"vue\"\nimport { reactiveOmit } from \"@vueuse/core\"\nimport { GripVertical } from \"lucide-vue-next\"\nimport { SplitterResizeHandle, useForwardPropsEmits } from \"reka-ui\"\nimport { cn } from \"@/lib/utils\"\n\nconst props = defineProps<SplitterResizeHandleProps & { class?: HTMLAttributes[\"class\"], withHandle?: boolean }>()\nconst emits = defineEmits<SplitterResizeHandleEmits>()\n\nconst delegatedProps = reactiveOmit(props, \"class\")\n\nconst forwarded = useForwardPropsEmits(delegatedProps, emits)\n</script>\n\n<template>\n <SplitterResizeHandle v-bind=\"forwarded\" :class=\"cn('relative flex w-px items-center justify-center bg-transparent after:absolute after:inset-y-0 after:left-1/2 after:w-1 after:-translate-x-1/2 focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring focus-visible:ring-offset-1 [&[data-orientation=vertical]]:h-px [&[data-orientation=vertical]]:w-full [&[data-orientation=vertical]]:after:left-0 [&[data-orientation=vertical]]:after:h-1 [&[data-orientation=vertical]]:after:w-full [&[data-orientation=vertical]]:after:-translate-y-1/2 [&[data-orientation=vertical]]:after:translate-x-0 [&[data-orientation=vertical]>div]:rotate-90', props.class)\">\n <template v-if=\"props.withHandle\">\n <div class=\"z-10 flex h-3.5 w-2.5 items-center justify-center rounded-[3px] border border-border/70 bg-background/95 shadow-sm\">\n <GripVertical class=\"h-2 w-2 text-muted-foreground\" />\n </div>\n </template>\n </SplitterResizeHandle>\n</template>\n"],"names":["props","__props","emits","__emit","delegatedProps","reactiveOmit","forwarded","useForwardPropsEmits","_createBlock","_unref","SplitterResizeHandle","_mergeProps","cn","_openBlock","_createElementBlock","_hoisted_1","_createVNode","GripVertical"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAQA,UAAMA,IAAQC,GACRC,IAAQC,GAERC,IAAiBC,EAAaL,GAAO,OAAO,GAE5CM,IAAYC,EAAqBH,GAAgBF,CAAK;2BAI1DM,EAMuBC,EAAAC,CAAA,GANvBC,EAMuBF,EAAAH,CAAA,GANgB;AAAA,MAAG,OAAOG,EAAAG,CAAA,EAAE,qlBAAslBZ,EAAM,KAAK;AAAA,IAAA;iBAClpB,MAIW;AAAA,QAJKA,EAAM,cACpBa,EAAA,GAAAC,EAEM,OAFNC,GAEM;AAAA,UADJC,EAAsDP,EAAAQ,CAAA,GAAA,EAAxC,OAAM,iCAA+B;AAAA,QAAA;;;;;;"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@j-solution/components",
3
3
  "description": "Vue 3 Atomic Design component kit for enterprise dashboards",
4
- "version": "1.9.1",
4
+ "version": "1.9.3",
5
5
  "type": "module",
6
6
  "main": "./index.cjs",
7
7
  "module": "./index.js",
package/types/index.d.ts CHANGED
@@ -619,6 +619,12 @@ declare type __VLS_Props_24 = {
619
619
  checkbox?: boolean;
620
620
  /** 행 번호 표시 여부 (Enterprise) */
621
621
  rowNumbers?: boolean;
622
+ /** 플로팅 필터 표시 여부 */
623
+ floatingFilters?: boolean;
624
+ /** 플로팅 필터 표시 여부 (하위호환 alias) */
625
+ floatingFilter?: boolean;
626
+ /** 행 번호 컬럼 너비(px) */
627
+ rowNumberWidth?: number;
622
628
  /** 행별 액션 버튼 목록 */
623
629
  actionButtons?: ActionButton[];
624
630
  /** 요약 컬럼 표시 여부 */
@@ -1806,6 +1812,9 @@ columnDefs: ColDef[];
1806
1812
  pagination?: boolean;
1807
1813
  checkbox?: boolean;
1808
1814
  rowNumbers?: boolean;
1815
+ floatingFilters?: boolean;
1816
+ floatingFilter?: boolean;
1817
+ rowNumberWidth?: number;
1809
1818
  actionButtons?: ActionButton[];
1810
1819
  summaryColumn?: boolean;
1811
1820
  hiddenColumn?: boolean;
@@ -1848,6 +1857,9 @@ gridReady: (event: GridReadyEvent<any, any>) => any;
1848
1857
  pagination: boolean;
1849
1858
  checkbox: boolean;
1850
1859
  rowNumbers: boolean;
1860
+ floatingFilters: boolean;
1861
+ floatingFilter: boolean;
1862
+ rowNumberWidth: number;
1851
1863
  actionButtons: ActionButton[];
1852
1864
  summaryColumn: boolean;
1853
1865
  hiddenColumn: boolean;
@@ -1866,7 +1878,9 @@ rowGroupPanelShow: "always" | "onlyWhenGrouping" | "never";
1866
1878
  groupDefaultExpanded: number;
1867
1879
  pivotPanelShow: "always" | "onlyWhenPivoting" | "never";
1868
1880
  pivotMode: boolean;
1869
- }, false, {}, {}, GlobalComponents, GlobalDirectives, string, {}, HTMLDivElement, ComponentProvideOptions, {
1881
+ }, false, {}, {}, GlobalComponents, GlobalDirectives, string, {
1882
+ gridContainerRef: HTMLDivElement;
1883
+ }, HTMLDivElement, ComponentProvideOptions, {
1870
1884
  P: {};
1871
1885
  B: {};
1872
1886
  D: {};
@@ -1880,6 +1894,9 @@ columnDefs: ColDef[];
1880
1894
  pagination?: boolean;
1881
1895
  checkbox?: boolean;
1882
1896
  rowNumbers?: boolean;
1897
+ floatingFilters?: boolean;
1898
+ floatingFilter?: boolean;
1899
+ rowNumberWidth?: number;
1883
1900
  actionButtons?: ActionButton[];
1884
1901
  summaryColumn?: boolean;
1885
1902
  hiddenColumn?: boolean;
@@ -1914,6 +1931,9 @@ exportToExcel: () => void;
1914
1931
  pagination: boolean;
1915
1932
  checkbox: boolean;
1916
1933
  rowNumbers: boolean;
1934
+ floatingFilters: boolean;
1935
+ floatingFilter: boolean;
1936
+ rowNumberWidth: number;
1917
1937
  actionButtons: ActionButton[];
1918
1938
  summaryColumn: boolean;
1919
1939
  hiddenColumn: boolean;
@@ -1946,6 +1966,9 @@ columnDefs: ColDef[];
1946
1966
  pagination?: boolean;
1947
1967
  checkbox?: boolean;
1948
1968
  rowNumbers?: boolean;
1969
+ floatingFilters?: boolean;
1970
+ floatingFilter?: boolean;
1971
+ rowNumberWidth?: number;
1949
1972
  actionButtons?: ActionButton[];
1950
1973
  summaryColumn?: boolean;
1951
1974
  hiddenColumn?: boolean;
@@ -1988,6 +2011,9 @@ gridReady: (event: GridReadyEvent<any, any>) => any;
1988
2011
  pagination: boolean;
1989
2012
  checkbox: boolean;
1990
2013
  rowNumbers: boolean;
2014
+ floatingFilters: boolean;
2015
+ floatingFilter: boolean;
2016
+ rowNumberWidth: number;
1991
2017
  actionButtons: ActionButton[];
1992
2018
  summaryColumn: boolean;
1993
2019
  hiddenColumn: boolean;
@@ -2006,7 +2032,9 @@ rowGroupPanelShow: "always" | "onlyWhenGrouping" | "never";
2006
2032
  groupDefaultExpanded: number;
2007
2033
  pivotPanelShow: "always" | "onlyWhenPivoting" | "never";
2008
2034
  pivotMode: boolean;
2009
- }, false, {}, {}, GlobalComponents, GlobalDirectives, string, {}, HTMLDivElement, ComponentProvideOptions, {
2035
+ }, false, {}, {}, GlobalComponents, GlobalDirectives, string, {
2036
+ gridContainerRef: HTMLDivElement;
2037
+ }, HTMLDivElement, ComponentProvideOptions, {
2010
2038
  P: {};
2011
2039
  B: {};
2012
2040
  D: {};
@@ -2020,6 +2048,9 @@ columnDefs: ColDef[];
2020
2048
  pagination?: boolean;
2021
2049
  checkbox?: boolean;
2022
2050
  rowNumbers?: boolean;
2051
+ floatingFilters?: boolean;
2052
+ floatingFilter?: boolean;
2053
+ rowNumberWidth?: number;
2023
2054
  actionButtons?: ActionButton[];
2024
2055
  summaryColumn?: boolean;
2025
2056
  hiddenColumn?: boolean;
@@ -2054,6 +2085,9 @@ exportToExcel: () => void;
2054
2085
  pagination: boolean;
2055
2086
  checkbox: boolean;
2056
2087
  rowNumbers: boolean;
2088
+ floatingFilters: boolean;
2089
+ floatingFilter: boolean;
2090
+ rowNumberWidth: number;
2057
2091
  actionButtons: ActionButton[];
2058
2092
  summaryColumn: boolean;
2059
2093
  hiddenColumn: boolean;
@@ -2080,6 +2114,9 @@ columnDefs: ColDef[];
2080
2114
  pagination?: boolean;
2081
2115
  checkbox?: boolean;
2082
2116
  rowNumbers?: boolean;
2117
+ floatingFilters?: boolean;
2118
+ floatingFilter?: boolean;
2119
+ rowNumberWidth?: number;
2083
2120
  actionButtons?: ActionButton[];
2084
2121
  summaryColumn?: boolean;
2085
2122
  hiddenColumn?: boolean;
@@ -2122,6 +2159,9 @@ gridReady: (event: GridReadyEvent<any, any>) => any;
2122
2159
  pagination: boolean;
2123
2160
  checkbox: boolean;
2124
2161
  rowNumbers: boolean;
2162
+ floatingFilters: boolean;
2163
+ floatingFilter: boolean;
2164
+ rowNumberWidth: number;
2125
2165
  actionButtons: ActionButton[];
2126
2166
  summaryColumn: boolean;
2127
2167
  hiddenColumn: boolean;
@@ -2140,7 +2180,9 @@ rowGroupPanelShow: "always" | "onlyWhenGrouping" | "never";
2140
2180
  groupDefaultExpanded: number;
2141
2181
  pivotPanelShow: "always" | "onlyWhenPivoting" | "never";
2142
2182
  pivotMode: boolean;
2143
- }, false, {}, {}, GlobalComponents, GlobalDirectives, string, {}, HTMLDivElement, ComponentProvideOptions, {
2183
+ }, false, {}, {}, GlobalComponents, GlobalDirectives, string, {
2184
+ gridContainerRef: HTMLDivElement;
2185
+ }, HTMLDivElement, ComponentProvideOptions, {
2144
2186
  P: {};
2145
2187
  B: {};
2146
2188
  D: {};
@@ -2154,6 +2196,9 @@ columnDefs: ColDef[];
2154
2196
  pagination?: boolean;
2155
2197
  checkbox?: boolean;
2156
2198
  rowNumbers?: boolean;
2199
+ floatingFilters?: boolean;
2200
+ floatingFilter?: boolean;
2201
+ rowNumberWidth?: number;
2157
2202
  actionButtons?: ActionButton[];
2158
2203
  summaryColumn?: boolean;
2159
2204
  hiddenColumn?: boolean;
@@ -2188,6 +2233,9 @@ exportToExcel: () => void;
2188
2233
  pagination: boolean;
2189
2234
  checkbox: boolean;
2190
2235
  rowNumbers: boolean;
2236
+ floatingFilters: boolean;
2237
+ floatingFilter: boolean;
2238
+ rowNumberWidth: number;
2191
2239
  actionButtons: ActionButton[];
2192
2240
  summaryColumn: boolean;
2193
2241
  hiddenColumn: boolean;
@@ -2553,6 +2601,9 @@ onGridReady?: ((event: GridReadyEvent<any, any>) => any) | undefined;
2553
2601
  pagination: boolean;
2554
2602
  checkbox: boolean;
2555
2603
  rowNumbers: boolean;
2604
+ floatingFilters: boolean;
2605
+ floatingFilter: boolean;
2606
+ rowNumberWidth: number;
2556
2607
  actionButtons: ActionButton[];
2557
2608
  summaryColumn: boolean;
2558
2609
  hiddenColumn: boolean;
@@ -2571,7 +2622,9 @@ rowGroupPanelShow: "always" | "onlyWhenGrouping" | "never";
2571
2622
  groupDefaultExpanded: number;
2572
2623
  pivotPanelShow: "always" | "onlyWhenPivoting" | "never";
2573
2624
  pivotMode: boolean;
2574
- }, {}, {}, {}, string, ComponentProvideOptions, false, {}, HTMLDivElement>;
2625
+ }, {}, {}, {}, string, ComponentProvideOptions, false, {
2626
+ gridContainerRef: HTMLDivElement;
2627
+ }, HTMLDivElement>;
2575
2628
 
2576
2629
  export declare const JGroupCombo: DefineComponent<__VLS_Props_27, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {
2577
2630
  "update:modelValue": (value: string | number) => any;
@@ -2872,6 +2925,9 @@ columnDefs: ColDef[];
2872
2925
  pagination?: boolean;
2873
2926
  checkbox?: boolean;
2874
2927
  rowNumbers?: boolean;
2928
+ floatingFilters?: boolean;
2929
+ floatingFilter?: boolean;
2930
+ rowNumberWidth?: number;
2875
2931
  actionButtons?: ActionButton[];
2876
2932
  summaryColumn?: boolean;
2877
2933
  hiddenColumn?: boolean;
@@ -2914,6 +2970,9 @@ gridReady: (event: GridReadyEvent<any, any>) => any;
2914
2970
  pagination: boolean;
2915
2971
  checkbox: boolean;
2916
2972
  rowNumbers: boolean;
2973
+ floatingFilters: boolean;
2974
+ floatingFilter: boolean;
2975
+ rowNumberWidth: number;
2917
2976
  actionButtons: ActionButton[];
2918
2977
  summaryColumn: boolean;
2919
2978
  hiddenColumn: boolean;
@@ -2932,7 +2991,9 @@ rowGroupPanelShow: "always" | "onlyWhenGrouping" | "never";
2932
2991
  groupDefaultExpanded: number;
2933
2992
  pivotPanelShow: "always" | "onlyWhenPivoting" | "never";
2934
2993
  pivotMode: boolean;
2935
- }, false, {}, {}, GlobalComponents, GlobalDirectives, string, {}, HTMLDivElement, ComponentProvideOptions, {
2994
+ }, false, {}, {}, GlobalComponents, GlobalDirectives, string, {
2995
+ gridContainerRef: HTMLDivElement;
2996
+ }, HTMLDivElement, ComponentProvideOptions, {
2936
2997
  P: {};
2937
2998
  B: {};
2938
2999
  D: {};
@@ -2946,6 +3007,9 @@ columnDefs: ColDef[];
2946
3007
  pagination?: boolean;
2947
3008
  checkbox?: boolean;
2948
3009
  rowNumbers?: boolean;
3010
+ floatingFilters?: boolean;
3011
+ floatingFilter?: boolean;
3012
+ rowNumberWidth?: number;
2949
3013
  actionButtons?: ActionButton[];
2950
3014
  summaryColumn?: boolean;
2951
3015
  hiddenColumn?: boolean;
@@ -2980,6 +3044,9 @@ exportToExcel: () => void;
2980
3044
  pagination: boolean;
2981
3045
  checkbox: boolean;
2982
3046
  rowNumbers: boolean;
3047
+ floatingFilters: boolean;
3048
+ floatingFilter: boolean;
3049
+ rowNumberWidth: number;
2983
3050
  actionButtons: ActionButton[];
2984
3051
  summaryColumn: boolean;
2985
3052
  hiddenColumn: boolean;
@@ -3006,6 +3073,9 @@ columnDefs: ColDef[];
3006
3073
  pagination?: boolean;
3007
3074
  checkbox?: boolean;
3008
3075
  rowNumbers?: boolean;
3076
+ floatingFilters?: boolean;
3077
+ floatingFilter?: boolean;
3078
+ rowNumberWidth?: number;
3009
3079
  actionButtons?: ActionButton[];
3010
3080
  summaryColumn?: boolean;
3011
3081
  hiddenColumn?: boolean;
@@ -3048,6 +3118,9 @@ gridReady: (event: GridReadyEvent<any, any>) => any;
3048
3118
  pagination: boolean;
3049
3119
  checkbox: boolean;
3050
3120
  rowNumbers: boolean;
3121
+ floatingFilters: boolean;
3122
+ floatingFilter: boolean;
3123
+ rowNumberWidth: number;
3051
3124
  actionButtons: ActionButton[];
3052
3125
  summaryColumn: boolean;
3053
3126
  hiddenColumn: boolean;
@@ -3066,7 +3139,9 @@ rowGroupPanelShow: "always" | "onlyWhenGrouping" | "never";
3066
3139
  groupDefaultExpanded: number;
3067
3140
  pivotPanelShow: "always" | "onlyWhenPivoting" | "never";
3068
3141
  pivotMode: boolean;
3069
- }, false, {}, {}, GlobalComponents, GlobalDirectives, string, {}, HTMLDivElement, ComponentProvideOptions, {
3142
+ }, false, {}, {}, GlobalComponents, GlobalDirectives, string, {
3143
+ gridContainerRef: HTMLDivElement;
3144
+ }, HTMLDivElement, ComponentProvideOptions, {
3070
3145
  P: {};
3071
3146
  B: {};
3072
3147
  D: {};
@@ -3080,6 +3155,9 @@ columnDefs: ColDef[];
3080
3155
  pagination?: boolean;
3081
3156
  checkbox?: boolean;
3082
3157
  rowNumbers?: boolean;
3158
+ floatingFilters?: boolean;
3159
+ floatingFilter?: boolean;
3160
+ rowNumberWidth?: number;
3083
3161
  actionButtons?: ActionButton[];
3084
3162
  summaryColumn?: boolean;
3085
3163
  hiddenColumn?: boolean;
@@ -3114,6 +3192,9 @@ exportToExcel: () => void;
3114
3192
  pagination: boolean;
3115
3193
  checkbox: boolean;
3116
3194
  rowNumbers: boolean;
3195
+ floatingFilters: boolean;
3196
+ floatingFilter: boolean;
3197
+ rowNumberWidth: number;
3117
3198
  actionButtons: ActionButton[];
3118
3199
  summaryColumn: boolean;
3119
3200
  hiddenColumn: boolean;