{"version":3,"file":"sia-ui.umd.cjs","sources":["../src/components/Button/Button.vue","../src/components/Calendar/Calendar.vue","../src/index.ts"],"sourcesContent":["<template>\r\n  <button\r\n    ref=\"_ref\"\r\n    class=\"sia-button\"\r\n    :class=\"{\r\n      [`sia-button--${type}`]: type,\r\n      [`sia-button--${size}`]: size,\r\n      'is-plain': plain,\r\n      'is-round': round,\r\n      'is-circle': circle,\r\n      'is-disabled': disabled,\r\n      'is-loading': loading\r\n    }\"\r\n    :disabled=\"disabled || loading\"\r\n    :autofocus=\"autofocus\"\r\n    :type=\"nativeType\"\r\n  >\r\n    <!-- <Icon icon=\"spinner\" spin v-if=\"loading\" /> -->\r\n    <!-- <Icon :icon=\"icon\" v-if=\"icon\" /> -->\r\n    <span>\r\n      <slot/>\r\n    </span>\r\n  </button>\r\n</template>\r\n<script setup lang=\"ts\">\r\nimport { ref } from 'vue'\r\nimport type { ButtonProps } from './types'\r\n// import Icon from '../Icon/Icon.vue'\r\n// import { buttonProps } from './types'\r\ndefineOptions({\r\n  name: 'sButton'\r\n})\r\n\r\nwithDefaults(defineProps<ButtonProps>(), {\r\n  nativeType: 'button'\r\n})\r\n\r\nconst _ref = ref<HTMLButtonElement>()\r\n\r\ndefineExpose({\r\n  ref: _ref\r\n})\r\n</script>\r\n\r\n<!-- Add \"scoped\" attribute to limit CSS to this component only -->\r\n<style scoped>\r\n</style>\r\n","\r\n  <template>\r\n     <div class=\"calendar-container\">\r\n    <div class=\"calendar\" ref=\"calendar\" :style=\"{ width: calendarWidth + 'px', height: calendarHeight + 'px' }\">\r\n      <div v-for=\"(week, index) in weeks\" :key=\"index\" class=\"week\" :class=\"{ 'three-cells': isThreeCellsRow(index) }\">\r\n        <div v-for=\"(day, dayIndex) in week\" :key=\"dayIndex\" class=\"day\"\r\n          :class=\"{ \r\n            'highlight': isHighlighted(day), \r\n            'today': isToday(day), \r\n            'past': isPast(day),\r\n            'future': isFuture(day), \r\n            'empty': isEmpty(day), \r\n            'selected': isSelected(day), \r\n            'has-memo': hasMemo(day),\r\n            'highlight-today': isTodayHighlighted && isToday(day)\r\n             }\"\r\n          :style=\"{ ...dayStyle(day), cursor: isEmpty(day) ? 'default' : 'pointer' }\"\r\n          @click=\"selectDay(day)\">\r\n          <div class=\"date\">{{ day }}</div>\r\n          <div class=\"weekday\" v-if=\"!isEmpty(day)\">{{ getWeekday(day) }}</div>\r\n          <input v-if=\"isSelected(day)\" type=\"text\" v-model=\"memos[getMemoKey(day)]\" class=\"memo-input\" placeholder=\"Add memo\" @blur=\"saveMemo()\">\r\n        </div>\r\n      </div>\r\n      <div class=\"controls\">\r\n        <span @click=\"prevYear\" :class=\"{ 'disabled': isPrevYearDisabled }\">«</span>\r\n        <span @click=\"prevMonth\" :class=\"{ 'disabled': isPrevMonthDisabled }\">‹</span>\r\n        <span :style=\"{ color: textColor }\">{{ currentYear }}年{{ months[currentMonth] }}</span>\r\n        <span @click=\"nextMonth\" :class=\"{ 'disabled': isNextMonthDisabled }\">›</span>\r\n        <span @click=\"nextYear\" :class=\"{ 'disabled': isNextYearDisabled }\">»</span>\r\n        <button @click=\"goToToday\">当前日期</button>\r\n      </div>\r\n    </div>\r\n  </div>\r\n  </template>\r\n  <script lang=\"ts\">\r\n  export default {\r\n    name:\"s-calendar\"\r\n  }\r\n  </script>\r\n  <script setup lang=\"ts\">\r\n  import { ref, computed,  onMounted, onUnmounted, defineProps } from 'vue';\r\n  \r\n  const props = defineProps({\r\n    highlightedDates: {\r\n      type: Array,\r\n      default: () => []\r\n    },\r\n    pastColor: {\r\n      type: String,\r\n      default: '#064D44'\r\n    },\r\n    futureColor: {\r\n      type: String,\r\n      default: '#808080'\r\n    },\r\n    emptyColor: {\r\n    type: String,\r\n    default: '#808080'\r\n  },\r\n  range: {\r\n    type: Object,\r\n    default: () => ({ start: null, end: null })\r\n  },\r\n  textColor: {\r\n    type: String,\r\n    default: '#000' // 默认文字颜色为黑色\r\n  },\r\n  });\r\n  \r\n  const currentMonth = ref(new Date().getMonth());\r\n  const currentYear = ref(new Date().getFullYear());\r\n  const today = new Date();\r\n  const todayDate = ref(\"\");\r\n  const months = ['1月', '2月', '3月', '4月', '5月', '6月', '7月', '8月', '9月', '10月', '11月', '12月'];\r\n  const weekdays = ['日', '一', '二', '三', '四', '五', '六'];\r\n  const daysInMonth = computed(() => {\r\n  return new Date(currentYear.value, currentMonth.value + 1, 0).getDate();\r\n});\r\n\r\nconst weeks = computed(() => {\r\n  const weeks = [];\r\n  const weekPatterns = [3, 3, 7, 7, 7, 3, 3];\r\n  let day = 1;\r\n  const firstDayOfMonth = new Date(currentYear.value, currentMonth.value, 1).getDay();\r\n  let date = new Date(currentYear.value, currentMonth.value, day - firstDayOfMonth);\r\n\r\n  // Calculate the range as Date objects for easier comparison\r\n  const rangeStart = props.range.start ? new Date(props.range.start) : new Date('1900-01-01');\r\n  const rangeEnd = props.range.end ? new Date(props.range.end) : new Date('2100-12-31');\r\n\r\n  for (let i = 0; i < weekPatterns.length; i++) {\r\n    const week = [];\r\n    for (let j = 0; j < weekPatterns[i]; j++) {\r\n      if (i === 0 || i === 1 || i === 5 || i === 6) {\r\n        // For the first, second, sixth, and seventh rows, we want to display only three cells\r\n        if (j < 3) {\r\n          if (day <= daysInMonth.value && date >= rangeStart && date <= rangeEnd) {\r\n            week.push(day);\r\n          } else {\r\n            week.push('');\r\n          }\r\n          day++;\r\n        }\r\n      } else {\r\n        // For the third, fourth, and fifth rows, we display all seven cells\r\n        if (day <= daysInMonth.value && date >= rangeStart && date <= rangeEnd) {\r\n          week.push(day);\r\n        } else {\r\n          week.push('');\r\n        }\r\n        day++;\r\n      }\r\n      date.setDate(date.getDate() + 1);\r\n    }\r\n    weeks.push(week);\r\n  }\r\n\r\n  return weeks;\r\n});\r\nconst getWeekday = (day: number | string) => {\r\n  const date = new Date(currentYear.value, currentMonth.value, Number(day));\r\n  return weekdays[date.getDay()];\r\n};\r\nconst isHighlighted = (day: number | string) => {\r\n  return props.highlightedDates.includes(`${currentYear.value}-${String(currentMonth.value + 1).padStart(2, '0')}-${String(day).padStart(2, '0')}`);\r\n};\r\nconst isToday = (day: number | string) => {\r\n  const date = new Date(currentYear.value, currentMonth.value, Number(day));\r\n  const currentDate = new Date();\r\n  return date.getDate() === currentDate.getDate() &&\r\n    date.getMonth() === currentDate.getMonth() &&\r\n    date.getFullYear() === currentDate.getFullYear();\r\n};\r\nconst isTodayHighlighted = ref(false); // 新增响应式引用\r\nconst goToToday = () => {\r\n  currentMonth.value = today.getMonth();\r\n  currentYear.value = today.getFullYear();\r\n  todayDate.value = `${today.getFullYear()}-${today.getMonth() + 1}-${today.getDate()}`;\r\n  // todayDate.value = `${today.getFullYear()}-${today.getMonth() + 1}-${today.getDate()}`;\r\n  isTodayHighlighted.value = true; // 设置标志为true，表示今天的日期应该高亮显示为绿色\r\n};\r\nconst isPast = (day: number | string) => {\r\n  const date = new Date(currentYear.value, currentMonth.value, Number(day));\r\n  return date < today;\r\n};\r\n\r\nconst isFuture = (day: number | string) => {\r\n  const date = new Date(currentYear.value, currentMonth.value, Number(day));\r\n  return date > today;\r\n};\r\n\r\nconst isThreeCellsRow = (index: number) => {\r\n  return [0, 1, 5, 6].includes(index);\r\n};\r\n\r\nconst isEmpty = (day: number | string) => {\r\n  return day === '';\r\n};\r\nconst prevYear = () => {\r\n  currentYear.value--;\r\n};\r\n\r\nconst nextYear = () => {\r\n  currentYear.value++;\r\n};\r\nconst prevMonth = () => {\r\n  if (currentMonth.value === 0) {\r\n    currentMonth.value = 11;\r\n    currentYear.value--;\r\n  } else {\r\n    currentMonth.value--;\r\n  }\r\n};\r\n\r\nconst nextMonth = () => {\r\n  if (currentMonth.value === 11) {\r\n    currentMonth.value = 0;\r\n    currentYear.value++;\r\n  } else {\r\n    currentMonth.value++;\r\n  }\r\n};\r\nconst calendarWidth = ref(globalThis.innerWidth); // 假设日历组件的宽度等于窗口宽度\r\nconst calendarHeight = ref(globalThis.innerHeight);\r\nconst minCellSize = 50;\r\nconst dayStyle = (day: number | string) => {\r\n  const numberOfDaysInRow = 7;\r\n  const cellWidth = calendarWidth.value / numberOfDaysInRow;\r\n  const numberOfRows = weeks.value.length;\r\n  const cellHeight = calendarHeight.value / numberOfRows;\r\n\r\n  let fontSize = '16px';\r\n  if (cellWidth <= minCellSize || cellHeight <= minCellSize) {\r\n    fontSize = '10px';\r\n  } else if (cellWidth < 100 || cellHeight < 100) {\r\n    fontSize = '12px';\r\n  }\r\n\r\n  const baseStyle: Record<string, string> = {\r\n    fontSize: fontSize,\r\n    minWidth: `calc(100% / ${numberOfDaysInRow})`,\r\n    flexBasis: `calc(100% / ${numberOfDaysInRow})`,\r\n    height: `${cellHeight}px`,\r\n    lineHeight: `${cellHeight}px`\r\n  };\r\n\r\n  if (isPast(day) && !isEmpty(day)) {\r\n    baseStyle.backgroundColor = props.pastColor;\r\n  } else if (isFuture(day) && !isEmpty(day)) {\r\n    baseStyle.backgroundColor = props.futureColor;\r\n  } else if (isEmpty(day)) {\r\n    baseStyle.backgroundColor = props.emptyColor;\r\n  }\r\n\r\n  return baseStyle;\r\n};\r\n\r\nconst updateCalendarWidth = () => {\r\n  const calendarContainer = document.querySelector('.calendar-container');\r\n  if (calendarContainer) {\r\n    // 获取容器的宽度，并减去任何必要的边距或填充\r\n    const containerWidth = calendarContainer.clientWidth;\r\n     // 获取容器的高度，并减去任何必要的边距或填充\r\n     const containerHeight = calendarContainer.clientHeight;\r\n    // 假设我们需要减去的总边距是 20px\r\n    const margin = 0;\r\n    calendarWidth.value = containerWidth - margin;\r\n    const marginHeight = 0;\r\n    calendarHeight.value = containerHeight - marginHeight;\r\n  }\r\n};\r\n\r\nconst selectedDay:any = ref(null);\r\nconst memos:any = ref({});\r\n\r\nconst selectDay = (day: number | string) => {\r\n  if (!isEmpty(day)) {\r\n    selectedDay.value = day;\r\n  }\r\n};\r\n\r\nconst saveMemo = () => {\r\n  // Save the memo when the input loses focus\r\n  selectedDay.value = null; // Optionally deselect the day\r\n};\r\n\r\nconst getMemoKey = (day: number | string) => {\r\n  return `${currentYear.value}-${String(currentMonth.value + 1).padStart(2, '0')}-${String(day).padStart(2, '0')}`;\r\n};\r\n\r\nconst hasMemo = (day:string | number) => {\r\n  return !!memos.value[getMemoKey(day)];\r\n};\r\n\r\n// ... (其他方法保持不变)\r\n\r\nconst isPrevYearDisabled = computed(() => {\r\n  const prevYearLastDay = new Date(currentYear.value - 1, 11, 31);\r\n  return prevYearLastDay < new Date(props.range.start);\r\n});\r\n\r\nconst isNextYearDisabled = computed(() => {\r\n  const nextYearFirstDay = new Date(currentYear.value + 1, 0, 1);\r\n  return nextYearFirstDay > new Date(props.range.end);\r\n});\r\nconst isSelected = (day: number | string) => {\r\n  return day === selectedDay.value;\r\n};\r\n\r\n// const selectedMemo = computed(() => {\r\n//   const key = `${currentYear.value}-${currentMonth.value + 1}-${selectedDay.value}`;\r\n//   return memos.value[key] || '';\r\n// });\r\n\r\nconst isPrevMonthDisabled = computed(() => {\r\n  const prevMonthLastDay = new Date(currentYear.value, currentMonth.value, 0);\r\n  return prevMonthLastDay < new Date(props.range.start);\r\n});\r\n\r\n// const isNextMonthDisabled = computed(() => {\r\n//   const nextMonthFirstDay = new Date(currentYear.value, currentMonth.value + 2, 1);\r\n//   return nextMonthFirstDay > new Date(props.range.end);\r\n// });\r\nconst isNextMonthDisabled = computed(() => {\r\n  const nextMonthLastDay = new Date(currentYear.value, currentMonth.value + 1, 1);\r\n  return nextMonthLastDay >= new Date(props.range.end);\r\n});\r\n// watch(selectedDay, (newDay) => {\r\n//   if (newDay !== null) {\r\n//     const key = `${currentYear.value}-${currentMonth.value + 1}-${newDay}`;\r\n//     const memo = prompt('Enter a memo for this date (max 50 characters):', memos.value[key] || '');\r\n//     if (memo !== null && memo.length <= 50) {\r\n//       memos.value[key] = memo;\r\n//     }\r\n//   }\r\n// });\r\n// 在组件挂载时添加事件监听器\r\nif (typeof window !== 'undefined') {\r\n  // 监听窗口大小变化\r\nglobalThis.addEventListener('resize', () => {\r\n  calendarWidth.value = globalThis.innerWidth;\r\n  calendarHeight.value = globalThis.innerHeight;\r\n  \r\n});\r\nonMounted(() => {\r\n  globalThis.addEventListener('resize', updateCalendarWidth);\r\n   updateCalendarWidth(); // 立即调用以设置初始宽度\r\n});\r\n\r\n// 在组件卸载时移除事件监听器\r\nonUnmounted(() => {\r\n  globalThis.removeEventListener('resize', updateCalendarWidth);\r\n});\r\n}\r\n  </script>","/**\r\n * SIA UI - 简化版 (v1.2.2)\r\n * \r\n * 此版本只包含纯净的组件（无外部依赖），用于验证 Playground 功能\r\n * \r\n * 包含的组件：\r\n * - Button: 纯原生按钮组件\r\n * - Calendar: 日历组件\r\n * \r\n * 完整版本请查看 index.ts.backup\r\n */\r\n\r\nimport type { App } from \"vue\";\r\n\r\n// ========== 纯净组件（无外部依赖）==========\r\nimport sButton from \"./components/Button/Button.vue\";\r\nimport sCalendar from \"./components/Calendar/Calendar.vue\";\r\n\r\n// ========== 暂时隐藏的组件（待 Playground 稳定后恢复）==========\r\n/*\r\nimport sStatistics from \"./components/Statistics/Statistics.vue\";\r\nimport sTable from \"./components/Table/Table.vue\";\r\nimport sImgText from \"./components/IconTextGrid/IconTextGrid.vue\";\r\nimport sCircleNum from \"./components/circleNumUnit/circleNumUnit.vue\";\r\nimport sLogin from \"./components/LoginRegister/LoginRegister.vue\"; // 依赖 tsparticles, vue3-slide-verify\r\nimport sStep from \"./components/Step/Step.vue\";\r\nimport sNotification from \"./components/Notification/Notification.vue\";\r\nimport sWorkMonitor from \"./components/workMonitor/workMonitor.vue\";\r\nimport sChartMap from \"./components/ChartMap/ChartMap.vue\"; // 依赖 echarts\r\nimport sChart from \"./components/Charts/Charts.vue\"; // 依赖 echarts\r\nimport sCardList from \"./components/CardList/CardList.vue\";\r\nimport sHeader from \"./components/Header/Header.vue\";\r\nimport sJump from \"./components/JumpAnimation/JumpAnimation.vue\"; // 依赖 gsap\r\nimport sTextScroll from \"./components/TextScroll/TextScroll.vue\";\r\nimport sChatAI from \"./components/ChatGPT/ChatGPT.vue\";\r\nimport sDrawer from \"./components/SiaDrawer/SiaDrawer.vue\";\r\nimport sForm from \"./components/Upload/Upload.vue\";\r\nimport sScreen from \"./components/DataScreen/DataScreen.vue\";\r\nimport sCarousel from \"./components/Carousel/Carousel.vue\";\r\nimport sOfficePreview from \"./components/OfficePreview/OfficePreview.vue\"; // 依赖 @vue-office\r\nimport sFooter from \"./components/websiteFooter/websiteFooter.vue\";\r\nimport sDraggable from \"./components/Draggable/Draggable.vue\"; // 依赖 vue-grid-layout\r\nimport sSticCard from \"./components/StatisticCard/StatisticCard.vue\";\r\nimport sDataCard from \"./components/DataCard/DataCard.vue\";\r\nimport sActivityFeed from \"./components/ActivityFeed/ActivityFeed.vue\";\r\nimport sDashboardGrid from \"./components/DashboardGrid/DashboardGrid.vue\"; // 依赖 vue-grid-layout\r\nimport sBrandShowcase from \"./components/BrandShowcase/BrandShowcase.vue\";\r\nimport sAdminSidebar from \"./components/AdminSidebar/AdminSidebar.vue\";\r\nimport sAnimatedProgress from \"./components/AnimatedProgress/AnimatedProgress.vue\";\r\nimport sBigScreenMetric from \"./components/BigScreenMetric/BigScreenMetric.vue\";\r\nimport sTopDataCards from \"./components/TopDataCards/TopDataCards.vue\";\r\n*/\r\n\r\n// 导入基础样式\r\nimport './styles/index.css'\r\n\r\n// 组件数组（只包含纯净组件）\r\nconst arr = [\r\n    sButton,\r\n    sCalendar\r\n];\r\n\r\n// 安装函数\r\nconst install = (Vue: App) => {\r\n    arr.forEach(component => {\r\n        Vue.component(component.name, component)\r\n    })\r\n};\r\n\r\n// 导出纯净组件\r\nexport {\r\n    sButton,\r\n    sCalendar,\r\n    // 以下组件待恢复\r\n    /*\r\n    sStatistics, \r\n    sTable, \r\n    sImgText,\r\n    sCircleNum,\r\n    sLogin,\r\n    sStep,\r\n    sNotification,\r\n    sWorkMonitor,\r\n    sChartMap,\r\n    sChart,\r\n    sCardList,\r\n    sHeader,\r\n    sJump,\r\n    sTextScroll,\r\n    sChatAI,\r\n    sDrawer,\r\n    sForm,\r\n    sScreen,\r\n    sCarousel,\r\n    sOfficePreview,\r\n    sFooter,\r\n    sDraggable,\r\n    sSticCard,\r\n    sDataCard,\r\n    sActivityFeed,\r\n    sDashboardGrid,\r\n    sBrandShowcase,\r\n    sAdminSidebar,\r\n    sAnimatedProgress,\r\n    sBigScreenMetric,\r\n    sTopDataCards\r\n    */\r\n};\r\n\r\n// 默认导出\r\nexport default {\r\n    install,\r\n    version: '1.2.2'\r\n}\r\n"],"names":["_ref","ref","__expose","_createElementBlock","__props","_createElementVNode","_renderSlot","_ctx","props","currentMonth","currentYear","today","todayDate","months","weekdays","daysInMonth","computed","weeks","weekPatterns","day","firstDayOfMonth","date","rangeStart","rangeEnd","i","week","j","getWeekday","isHighlighted","isToday","currentDate","isTodayHighlighted","goToToday","isPast","isFuture","isThreeCellsRow","index","isEmpty","prevYear","nextYear","prevMonth","nextMonth","calendarWidth","calendarHeight","minCellSize","dayStyle","cellWidth","numberOfRows","cellHeight","fontSize","baseStyle","updateCalendarWidth","calendarContainer","containerWidth","containerHeight","margin","marginHeight","selectedDay","memos","selectDay","saveMemo","getMemoKey","hasMemo","isPrevYearDisabled","isNextYearDisabled","isSelected","isPrevMonthDisabled","isNextMonthDisabled","onMounted","onUnmounted","_openBlock","_hoisted_1","_normalizeStyle","_Fragment","_renderList","_normalizeClass","dayIndex","$event","_hoisted_3","_toDisplayString","_hoisted_4","_hoisted_6","arr","sButton","sCalendar","Vue","component"],"mappings":"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"}