@anker-in/headless-ui 1.1.17-alpha.1766385794881 → 1.1.17-alpha.1766563773661

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 (59) hide show
  1. package/dist/cjs/biz-components/AnchorNavigation/index.d.ts +13 -2
  2. package/dist/cjs/biz-components/AnchorNavigation/index.js +1 -1
  3. package/dist/cjs/biz-components/AnchorNavigation/index.js.map +3 -3
  4. package/dist/cjs/biz-components/EventSchedule/index.d.ts +75 -6
  5. package/dist/cjs/biz-components/EventSchedule/index.js +1 -1
  6. package/dist/cjs/biz-components/EventSchedule/index.js.map +3 -3
  7. package/dist/cjs/biz-components/HeaderNavigation/index.js +1 -1
  8. package/dist/cjs/biz-components/HeaderNavigation/index.js.map +3 -3
  9. package/dist/cjs/biz-components/PromotionalBar/index.d.ts +17 -10
  10. package/dist/cjs/biz-components/PromotionalBar/index.js +1 -1
  11. package/dist/cjs/biz-components/PromotionalBar/index.js.map +3 -3
  12. package/dist/cjs/biz-components/Title/Countdown.d.ts +11 -0
  13. package/dist/cjs/biz-components/Title/Countdown.js +2 -0
  14. package/dist/cjs/biz-components/Title/Countdown.js.map +7 -0
  15. package/dist/cjs/biz-components/Title/index.js +1 -1
  16. package/dist/cjs/biz-components/Title/index.js.map +3 -3
  17. package/dist/cjs/biz-components/Title/types.d.ts +50 -0
  18. package/dist/cjs/biz-components/Title/types.js +1 -1
  19. package/dist/cjs/biz-components/Title/types.js.map +1 -1
  20. package/dist/cjs/biz-components/index.d.ts +1 -0
  21. package/dist/cjs/biz-components/index.js +1 -1
  22. package/dist/cjs/biz-components/index.js.map +3 -3
  23. package/dist/cjs/stories/anchorNavigation.stories.js +1 -1
  24. package/dist/cjs/stories/anchorNavigation.stories.js.map +3 -3
  25. package/dist/cjs/stories/eventSchedule.stories.js +1 -1
  26. package/dist/cjs/stories/eventSchedule.stories.js.map +3 -3
  27. package/dist/cjs/stories/promotionalBar.stories.js +1 -1
  28. package/dist/cjs/stories/promotionalBar.stories.js.map +3 -3
  29. package/dist/cjs/stories/title.stories.js +2 -0
  30. package/dist/cjs/stories/title.stories.js.map +7 -0
  31. package/dist/esm/biz-components/AnchorNavigation/index.d.ts +13 -2
  32. package/dist/esm/biz-components/AnchorNavigation/index.js +1 -1
  33. package/dist/esm/biz-components/AnchorNavigation/index.js.map +3 -3
  34. package/dist/esm/biz-components/EventSchedule/index.d.ts +75 -6
  35. package/dist/esm/biz-components/EventSchedule/index.js +1 -1
  36. package/dist/esm/biz-components/EventSchedule/index.js.map +3 -3
  37. package/dist/esm/biz-components/HeaderNavigation/index.js +1 -1
  38. package/dist/esm/biz-components/HeaderNavigation/index.js.map +3 -3
  39. package/dist/esm/biz-components/PromotionalBar/index.d.ts +17 -10
  40. package/dist/esm/biz-components/PromotionalBar/index.js +1 -1
  41. package/dist/esm/biz-components/PromotionalBar/index.js.map +3 -3
  42. package/dist/esm/biz-components/Title/Countdown.d.ts +11 -0
  43. package/dist/esm/biz-components/Title/Countdown.js +2 -0
  44. package/dist/esm/biz-components/Title/Countdown.js.map +7 -0
  45. package/dist/esm/biz-components/Title/index.js +1 -1
  46. package/dist/esm/biz-components/Title/index.js.map +3 -3
  47. package/dist/esm/biz-components/Title/types.d.ts +50 -0
  48. package/dist/esm/biz-components/index.d.ts +1 -0
  49. package/dist/esm/biz-components/index.js +1 -1
  50. package/dist/esm/biz-components/index.js.map +2 -2
  51. package/dist/esm/stories/anchorNavigation.stories.js +1 -1
  52. package/dist/esm/stories/anchorNavigation.stories.js.map +3 -3
  53. package/dist/esm/stories/eventSchedule.stories.js +1 -1
  54. package/dist/esm/stories/eventSchedule.stories.js.map +3 -3
  55. package/dist/esm/stories/promotionalBar.stories.js +1 -1
  56. package/dist/esm/stories/promotionalBar.stories.js.map +3 -3
  57. package/dist/esm/stories/title.stories.js +2 -0
  58. package/dist/esm/stories/title.stories.js.map +7 -0
  59. package/package.json +1 -1
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/stories/eventSchedule.stories.tsx"],
4
- "sourcesContent": ["import type { Meta, StoryObj } from '@storybook/react'\nimport React from 'react'\n\nimport EventSchedule, { type EventScheduleData } from '../biz-components/EventSchedule/index.js'\n\n// \u6A21\u62DF\u56FE\u6807\u7EC4\u4EF6\nconst CalendarIcon = () => (\n <svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M15.833 3.333h-11.666c-.92 0-1.667.746-1.667 1.667v11.667c0 .92.746 1.666 1.667 1.666h11.666c.92 0 1.667-.746 1.667-1.666V5c0-.921-.746-1.667-1.667-1.667z\"\n stroke=\"currentColor\"\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n <path\n d=\"M13.333 1.667V5M6.667 1.667V5M2.5 8.333h15\"\n stroke=\"currentColor\"\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n)\n\nconst ClockIcon = () => (\n <svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M10 18.333a8.333 8.333 0 100-16.666 8.333 8.333 0 000 16.666z\"\n stroke=\"currentColor\"\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n <path\n d=\"M10 5v5l3.333 1.667\"\n stroke=\"currentColor\"\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n)\n\nconst GiftIcon = () => (\n <svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M16.667 10v6.667c0 .442-.176.866-.489 1.179-.313.312-.737.488-1.178.488H5c-.442 0-.866-.176-1.179-.488A1.667 1.667 0 013.333 16.667V10\"\n stroke=\"currentColor\"\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n <path\n d=\"M18.333 5.833v4.167H1.667V5.833c0-.442.175-.866.488-1.178.313-.313.737-.489 1.179-.489h13.333c.441 0 .865.176 1.178.489.313.312.489.736.489 1.178zM10 18.333V4.167\"\n stroke=\"currentColor\"\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n <path\n d=\"M10 4.167H6.25A2.083 2.083 0 014.167 2.083c0-1.15.933-2.083 2.083-2.083C8.333 0 10 4.167 10 4.167zM10 4.167h3.75a2.083 2.083 0 002.083-2.084c0-1.15-.933-2.083-2.083-2.083C11.667 0 10 4.167 10 4.167z\"\n stroke=\"currentColor\"\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n)\n\n// \u6A21\u62DF\u4E1A\u52A1\u6570\u636E\nconst mockData: EventScheduleData = {\n scheduleList: [\n {\n title: '\u65E9\u9E1F\u4E13\u5C5E\u798F\u5229',\n date: '2024-12-01',\n active: true,\n backgroundImage: 'https://images.unsplash.com/photo-1549465220-1a8b9238cd48?w=200&h=150&fit=crop',\n items: [\n {\n icon: <CalendarIcon />,\n label: '12\u67081\u65E5 - 12\u670815\u65E5',\n },\n {\n icon: <ClockIcon />,\n label: '\u9650\u65F6\u4F18\u60E0 48 \u5C0F\u65F6',\n },\n {\n icon: <GiftIcon />,\n label: '\u8D2D\u4E70\u5373\u9001\u7CBE\u7F8E\u793C\u54C1',\n },\n ],\n },\n {\n title: '\u5723\u8BDE\u7279\u60E0\u6D3B\u52A8',\n date: '2024-12-16',\n active: false,\n backgroundImage: 'https://images.unsplash.com/photo-1512909006721-3d6018887383?w=200&h=150&fit=crop',\n items: [\n {\n icon: <CalendarIcon />,\n label: '12\u670816\u65E5 - 12\u670831\u65E5',\n },\n {\n icon: <ClockIcon />,\n label: '\u5168\u5929\u5019\u4F18\u60E0',\n },\n {\n icon: <GiftIcon />,\n label: '\u6EE1\u989D\u8D60\u9001\u5723\u8BDE\u793C\u76D2',\n },\n ],\n },\n ],\n}\n\n// \u4E09\u4E2A\u6D3B\u52A8\u7684\u6570\u636E\nconst threeEventsData: EventScheduleData = {\n scheduleList: [\n {\n title: '\u65B0\u5E74\u9884\u70ED\u6D3B\u52A8',\n date: '2024-12-01',\n active: true,\n backgroundImage: 'https://images.unsplash.com/photo-1549465220-1a8b9238cd48?w=200&h=150&fit=crop',\n items: [\n {\n icon: <CalendarIcon />,\n label: '12\u67081\u65E5 - 12\u670810\u65E5',\n },\n {\n icon: <ClockIcon />,\n label: '\u6BCF\u65E5\u4E0A\u534810\u70B9\u5F00\u62A2',\n },\n {\n icon: <GiftIcon />,\n label: '\u524D100\u540D\u9001\u795E\u79D8\u793C\u7269',\n },\n ],\n },\n {\n title: '\u5723\u8BDE\u72C2\u6B22',\n date: '2024-12-11',\n active: false,\n backgroundImage: 'https://images.unsplash.com/photo-1512909006721-3d6018887383?w=200&h=150&fit=crop',\n items: [\n {\n icon: <CalendarIcon />,\n label: '12\u670811\u65E5 - 12\u670825\u65E5',\n },\n {\n icon: <ClockIcon />,\n label: '\u5168\u5929\u4F18\u60E0\u4E0D\u95F4\u65AD',\n },\n {\n icon: <GiftIcon />,\n label: '\u6EE1\u51CF\u6D3B\u52A8\u6700\u9AD8\u7701500',\n },\n ],\n },\n {\n title: '\u8DE8\u5E74\u7279\u60E0',\n date: '2024-12-26',\n active: false,\n backgroundImage: 'https://images.unsplash.com/photo-1467810563316-b5476525c0f9?w=200&h=150&fit=crop',\n items: [\n {\n icon: <CalendarIcon />,\n label: '12\u670826\u65E5 - 1\u67081\u65E5',\n },\n {\n icon: <ClockIcon />,\n label: '\u5012\u8BA1\u65F6\u7279\u60E0',\n },\n {\n icon: <GiftIcon />,\n label: '\u65B0\u5E74\u793C\u5305\u9650\u91CF\u62A2\u8D2D',\n },\n ],\n },\n ],\n}\n\nconst meta = {\n title: 'Biz Components/EventSchedule',\n component: EventSchedule,\n parameters: {\n layout: 'fullscreen',\n docs: {\n description: {\n component: '\u6D3B\u52A8\u65E5\u7A0B\u7EC4\u4EF6 - \u5C55\u793A\u6D3B\u52A8\u65F6\u95F4\u8F74\u548C\u8BE6\u7EC6\u4FE1\u606F\u5361\u7247\uFF0C\u652F\u6301\u591A\u4E2A\u6D3B\u52A8\u540C\u65F6\u5C55\u793A\uFF0C\u5E26\u6709\u6FC0\u6D3B\u72B6\u6001\u6307\u793A',\n },\n },\n },\n tags: ['autodocs'],\n argTypes: {\n data: {\n description: '\u4E1A\u52A1\u6570\u636E\uFF0C\u5305\u542B\u65E5\u7A0B\u5217\u8868',\n control: { type: 'object' },\n },\n className: {\n description: '\u81EA\u5B9A\u4E49\u6837\u5F0F\u7C7B\u540D',\n control: { type: 'text' },\n },\n },\n} satisfies Meta<typeof EventSchedule>\n\nexport default meta\ntype Story = StoryObj<typeof meta>\n\n/**\n * \u9ED8\u8BA4\u5C55\u793A - \u4E24\u4E2A\u6D3B\u52A8\n */\nexport const Default: Story = {\n args: {\n data: mockData,\n },\n}\n\n/**\n * \u4E09\u4E2A\u6D3B\u52A8\u5C55\u793A\n */\nexport const ThreeEvents: Story = {\n args: {\n data: threeEventsData,\n },\n}\n\n/**\n * \u5355\u4E2A\u6D3B\u52A8\n */\nexport const SingleEvent: Story = {\n args: {\n data: {\n scheduleList: [\n {\n title: '\u9650\u65F6\u79D2\u6740\u6D3B\u52A8',\n date: '2024-12-01',\n active: true,\n backgroundImage: 'https://images.unsplash.com/photo-1549465220-1a8b9238cd48?w=200&h=150&fit=crop',\n items: [\n {\n icon: <CalendarIcon />,\n label: '12\u67081\u65E5\u5168\u5929',\n },\n {\n icon: <ClockIcon />,\n label: '\u6BCF\u5C0F\u65F6\u6574\u70B9\u5F00\u62A2',\n },\n {\n icon: <GiftIcon />,\n label: '\u79D2\u6740\u4EF7\u4F4E\u81F33\u6298',\n },\n ],\n },\n ],\n },\n },\n}\n\n/**\n * \u65E0\u80CC\u666F\u56FE\u7247\n */\nexport const WithoutBackgroundImage: Story = {\n args: {\n data: {\n scheduleList: [\n {\n title: '\u590F\u5B63\u6E05\u4ED3\u7279\u5356',\n date: '2024-06-01',\n active: true,\n items: [\n {\n icon: <CalendarIcon />,\n label: '6\u67081\u65E5 - 6\u670830\u65E5',\n },\n {\n icon: <ClockIcon />,\n label: '\u5168\u5929\u5019\u4F18\u60E0',\n },\n {\n icon: <GiftIcon />,\n label: '\u4E70\u4E00\u9001\u4E00',\n },\n ],\n },\n {\n title: '\u65B0\u54C1\u4E0A\u5E02',\n date: '2024-07-01',\n active: false,\n items: [\n {\n icon: <CalendarIcon />,\n label: '7\u67081\u65E5\u8D77',\n },\n {\n icon: <ClockIcon />,\n label: '\u6301\u7EED\u4E00\u4E2A\u6708',\n },\n {\n icon: <GiftIcon />,\n label: '\u65B0\u54C1\u5C1D\u9C9C\u4EF7',\n },\n ],\n },\n ],\n },\n },\n}\n"],
5
- "mappings": "0jBAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,aAAAE,EAAA,gBAAAC,EAAA,gBAAAC,EAAA,2BAAAC,EAAA,YAAAC,IAAA,eAAAC,EAAAP,GAOE,IAAAQ,EAAA,6BANFC,EAAkB,iBAElBC,EAAsD,uDAGtD,MAAMC,EAAe,OACnB,QAAC,OAAI,MAAM,KAAK,OAAO,KAAK,QAAQ,YAAY,KAAK,OAAO,MAAM,6BAChE,oBAAC,QACC,EAAE,6JACF,OAAO,eACP,YAAY,MACZ,cAAc,QACd,eAAe,QACjB,KACA,OAAC,QACC,EAAE,6CACF,OAAO,eACP,YAAY,MACZ,cAAc,QACd,eAAe,QACjB,GACF,EAGIC,EAAY,OAChB,QAAC,OAAI,MAAM,KAAK,OAAO,KAAK,QAAQ,YAAY,KAAK,OAAO,MAAM,6BAChE,oBAAC,QACC,EAAE,gEACF,OAAO,eACP,YAAY,MACZ,cAAc,QACd,eAAe,QACjB,KACA,OAAC,QACC,EAAE,sBACF,OAAO,eACP,YAAY,MACZ,cAAc,QACd,eAAe,QACjB,GACF,EAGIC,EAAW,OACf,QAAC,OAAI,MAAM,KAAK,OAAO,KAAK,QAAQ,YAAY,KAAK,OAAO,MAAM,6BAChE,oBAAC,QACC,EAAE,yIACF,OAAO,eACP,YAAY,MACZ,cAAc,QACd,eAAe,QACjB,KACA,OAAC,QACC,EAAE,qKACF,OAAO,eACP,YAAY,MACZ,cAAc,QACd,eAAe,QACjB,KACA,OAAC,QACC,EAAE,yMACF,OAAO,eACP,YAAY,MACZ,cAAc,QACd,eAAe,QACjB,GACF,EAIIC,EAA8B,CAClC,aAAc,CACZ,CACE,MAAO,uCACP,KAAM,aACN,OAAQ,GACR,gBAAiB,iFACjB,MAAO,CACL,CACE,QAAM,OAACH,EAAA,EAAa,EACpB,MAAO,oCACT,EACA,CACE,QAAM,OAACC,EAAA,EAAU,EACjB,MAAO,0CACT,EACA,CACE,QAAM,OAACC,EAAA,EAAS,EAChB,MAAO,kDACT,CACF,CACF,EACA,CACE,MAAO,uCACP,KAAM,aACN,OAAQ,GACR,gBAAiB,oFACjB,MAAO,CACL,CACE,QAAM,OAACF,EAAA,EAAa,EACpB,MAAO,qCACT,EACA,CACE,QAAM,OAACC,EAAA,EAAU,EACjB,MAAO,gCACT,EACA,CACE,QAAM,OAACC,EAAA,EAAS,EAChB,MAAO,kDACT,CACF,CACF,CACF,CACF,EAGME,EAAqC,CACzC,aAAc,CACZ,CACE,MAAO,uCACP,KAAM,aACN,OAAQ,GACR,gBAAiB,iFACjB,MAAO,CACL,CACE,QAAM,OAACJ,EAAA,EAAa,EACpB,MAAO,oCACT,EACA,CACE,QAAM,OAACC,EAAA,EAAU,EACjB,MAAO,8CACT,EACA,CACE,QAAM,OAACC,EAAA,EAAS,EAChB,MAAO,+CACT,CACF,CACF,EACA,CACE,MAAO,2BACP,KAAM,aACN,OAAQ,GACR,gBAAiB,oFACjB,MAAO,CACL,CACE,QAAM,OAACF,EAAA,EAAa,EACpB,MAAO,qCACT,EACA,CACE,QAAM,OAACC,EAAA,EAAU,EACjB,MAAO,4CACT,EACA,CACE,QAAM,OAACC,EAAA,EAAS,EAChB,MAAO,+CACT,CACF,CACF,EACA,CACE,MAAO,2BACP,KAAM,aACN,OAAQ,GACR,gBAAiB,oFACjB,MAAO,CACL,CACE,QAAM,OAACF,EAAA,EAAa,EACpB,MAAO,mCACT,EACA,CACE,QAAM,OAACC,EAAA,EAAU,EACjB,MAAO,gCACT,EACA,CACE,QAAM,OAACC,EAAA,EAAS,EAChB,MAAO,kDACT,CACF,CACF,CACF,CACF,EAEMG,EAAO,CACX,MAAO,+BACP,UAAW,EAAAC,QACX,WAAY,CACV,OAAQ,aACR,KAAM,CACJ,YAAa,CACX,UAAW,qPACb,CACF,CACF,EACA,KAAM,CAAC,UAAU,EACjB,SAAU,CACR,KAAM,CACJ,YAAa,qEACb,QAAS,CAAE,KAAM,QAAS,CAC5B,EACA,UAAW,CACT,YAAa,6CACb,QAAS,CAAE,KAAM,MAAO,CAC1B,CACF,CACF,EAEA,IAAOX,EAAQU,EAMR,MAAMd,EAAiB,CAC5B,KAAM,CACJ,KAAMY,CACR,CACF,EAKaV,EAAqB,CAChC,KAAM,CACJ,KAAMW,CACR,CACF,EAKaZ,EAAqB,CAChC,KAAM,CACJ,KAAM,CACJ,aAAc,CACZ,CACE,MAAO,uCACP,KAAM,aACN,OAAQ,GACR,gBAAiB,iFACjB,MAAO,CACL,CACE,QAAM,OAACQ,EAAA,EAAa,EACpB,MAAO,6BACT,EACA,CACE,QAAM,OAACC,EAAA,EAAU,EACjB,MAAO,4CACT,EACA,CACE,QAAM,OAACC,EAAA,EAAS,EAChB,MAAO,uCACT,CACF,CACF,CACF,CACF,CACF,CACF,EAKaR,EAAgC,CAC3C,KAAM,CACJ,KAAM,CACJ,aAAc,CACZ,CACE,MAAO,uCACP,KAAM,aACN,OAAQ,GACR,MAAO,CACL,CACE,QAAM,OAACM,EAAA,EAAa,EACpB,MAAO,kCACT,EACA,CACE,QAAM,OAACC,EAAA,EAAU,EACjB,MAAO,gCACT,EACA,CACE,QAAM,OAACC,EAAA,EAAS,EAChB,MAAO,0BACT,CACF,CACF,EACA,CACE,MAAO,2BACP,KAAM,aACN,OAAQ,GACR,MAAO,CACL,CACE,QAAM,OAACF,EAAA,EAAa,EACpB,MAAO,sBACT,EACA,CACE,QAAM,OAACC,EAAA,EAAU,EACjB,MAAO,gCACT,EACA,CACE,QAAM,OAACC,EAAA,EAAS,EAChB,MAAO,gCACT,CACF,CACF,CACF,CACF,CACF,CACF",
6
- "names": ["eventSchedule_stories_exports", "__export", "Default", "SingleEvent", "ThreeEvents", "WithoutBackgroundImage", "eventSchedule_stories_default", "__toCommonJS", "import_jsx_runtime", "import_react", "import_EventSchedule", "CalendarIcon", "ClockIcon", "GiftIcon", "mockData", "threeEventsData", "meta", "EventSchedule"]
4
+ "sourcesContent": ["import type { Meta, StoryObj } from '@storybook/react'\nimport React from 'react'\n\nimport EventSchedule, { type EventScheduleData } from '../biz-components/EventSchedule/index.js'\n\n// \u6A21\u62DF\u56FE\u6807\u7EC4\u4EF6\nconst CalendarIcon = () => (\n <svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M15.833 3.333h-11.666c-.92 0-1.667.746-1.667 1.667v11.667c0 .92.746 1.666 1.667 1.666h11.666c.92 0 1.667-.746 1.667-1.666V5c0-.921-.746-1.667-1.667-1.667z\"\n stroke=\"currentColor\"\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n <path\n d=\"M13.333 1.667V5M6.667 1.667V5M2.5 8.333h15\"\n stroke=\"currentColor\"\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n)\n\nconst ClockIcon = () => (\n <svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M10 18.333a8.333 8.333 0 100-16.666 8.333 8.333 0 000 16.666z\"\n stroke=\"currentColor\"\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n <path\n d=\"M10 5v5l3.333 1.667\"\n stroke=\"currentColor\"\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n)\n\nconst GiftIcon = () => (\n <svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M16.667 10v6.667c0 .442-.176.866-.489 1.179-.313.312-.737.488-1.178.488H5c-.442 0-.866-.176-1.179-.488A1.667 1.667 0 013.333 16.667V10\"\n stroke=\"currentColor\"\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n <path\n d=\"M18.333 5.833v4.167H1.667V5.833c0-.442.175-.866.488-1.178.313-.313.737-.489 1.179-.489h13.333c.441 0 .865.176 1.178.489.313.312.489.736.489 1.178zM10 18.333V4.167\"\n stroke=\"currentColor\"\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n <path\n d=\"M10 4.167H6.25A2.083 2.083 0 014.167 2.083c0-1.15.933-2.083 2.083-2.083C8.333 0 10 4.167 10 4.167zM10 4.167h3.75a2.083 2.083 0 002.083-2.084c0-1.15-.933-2.083-2.083-2.083C11.667 0 10 4.167 10 4.167z\"\n stroke=\"currentColor\"\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n)\n\n// \u6A21\u62DF\u4E1A\u52A1\u6570\u636E\nconst mockData: EventScheduleData = {\n scheduleList: [\n {\n title: '\u65E9\u9E1F\u4E13\u5C5E\u798F\u5229',\n startDate: '2024-12-01',\n endDate: '2024-12-15',\n items: [\n {\n icon: <CalendarIcon />,\n label: '12\u67081\u65E5 - 12\u670815\u65E5',\n },\n {\n icon: <ClockIcon />,\n label: '\u9650\u65F6\u4F18\u60E0 48 \u5C0F\u65F6',\n },\n {\n icon: <GiftIcon />,\n label: '\u8D2D\u4E70\u5373\u9001\u7CBE\u7F8E\u793C\u54C1',\n },\n ],\n },\n {\n title: '\u5723\u8BDE\u7279\u60E0\u6D3B\u52A8',\n startDate: '2024-12-16',\n endDate: '2024-12-31',\n items: [\n {\n icon: <CalendarIcon />,\n label: '12\u670816\u65E5 - 12\u670831\u65E5',\n },\n {\n icon: <ClockIcon />,\n label: '\u5168\u5929\u5019\u4F18\u60E0',\n },\n {\n icon: <GiftIcon />,\n label: '\u6EE1\u989D\u8D60\u9001\u5723\u8BDE\u793C\u76D2',\n },\n ],\n },\n ],\n backgroundImage: {\n active: {\n mobile: 'https://cdn.shopify.com/s/files/1/0501/7678/6607/files/1_2_1.jpg?v=1766391000',\n laptop: 'https://example.com/laptop.jpg',\n desktop:\n 'https://cdn.shopify.com/s/files/1/0501/7678/6607/files/1_2_1_c4d0ec1e-5484-46be-af8c-273935f4ba28.jpg?v=1766398957',\n lgDesktop:\n 'https://cdn.shopify.com/s/files/1/0501/7678/6607/files/1_2_1_44d92293-1f4b-483a-8233-6277b0437e7c.jpg?v=1766391004',\n },\n inactive: {\n mobile: 'https://cdn.shopify.com/s/files/1/0501/7678/6607/files/1_2_2.jpg?v=1766390999',\n laptop: 'https://example.com/laptop.jpg',\n desktop:\n 'https://cdn.shopify.com/s/files/1/0501/7678/6607/files/1_2_2_99fd4944-58ee-4c90-9b0d-b758926386fe.jpg?v=1766398957',\n lgDesktop:\n 'https://cdn.shopify.com/s/files/1/0501/7678/6607/files/1_2_2_844d5e75-a3d2-4f2b-b1a6-cad60c67c871.jpg?v=1766391005',\n },\n },\n}\n\n// \u4E09\u4E2A\u6D3B\u52A8\u7684\u6570\u636E\nconst threeEventsData: EventScheduleData = {\n scheduleList: [\n {\n title: '\u65B0\u5E74\u9884\u70ED\u6D3B\u52A8',\n startDate: '2024-12-01',\n endDate: '2024-12-10',\n items: [\n {\n icon: <CalendarIcon />,\n label: '12\u67081\u65E5 - 12\u670810\u65E5',\n },\n {\n icon: <ClockIcon />,\n label: '\u6BCF\u65E5\u4E0A\u534810\u70B9\u5F00\u62A2',\n },\n {\n icon: <GiftIcon />,\n label: '\u524D100\u540D\u9001\u795E\u79D8\u793C\u7269',\n },\n ],\n },\n {\n title: '\u5723\u8BDE\u72C2\u6B22',\n startDate: '2024-12-11',\n endDate: '2024-12-25',\n items: [\n {\n icon: <CalendarIcon />,\n label: '12\u670811\u65E5 - 12\u670825\u65E5',\n },\n {\n icon: <ClockIcon />,\n label: '\u5168\u5929\u4F18\u60E0\u4E0D\u95F4\u65AD',\n },\n {\n icon: <GiftIcon />,\n label: '\u6EE1\u51CF\u6D3B\u52A8\u6700\u9AD8\u7701500',\n },\n ],\n },\n {\n title: '\u8DE8\u5E74\u7279\u60E0',\n startDate: '2024-12-26',\n endDate: '2025-01-01',\n items: [\n {\n icon: <CalendarIcon />,\n label: '12\u670826\u65E5 - 1\u67081\u65E5',\n },\n {\n icon: <ClockIcon />,\n label: '\u5012\u8BA1\u65F6\u7279\u60E0',\n },\n {\n icon: <GiftIcon />,\n label: '\u65B0\u5E74\u793C\u5305\u9650\u91CF\u62A2\u8D2D',\n },\n ],\n },\n ],\n}\n\nconst meta = {\n title: 'Biz Components/EventSchedule',\n component: EventSchedule,\n parameters: {\n layout: 'fullscreen',\n docs: {\n description: {\n component: '\u6D3B\u52A8\u65E5\u7A0B\u7EC4\u4EF6 - \u5C55\u793A\u6D3B\u52A8\u65F6\u95F4\u8F74\u548C\u8BE6\u7EC6\u4FE1\u606F\u5361\u7247\uFF0C\u652F\u6301\u591A\u4E2A\u6D3B\u52A8\u540C\u65F6\u5C55\u793A\uFF0C\u5E26\u6709\u6FC0\u6D3B\u72B6\u6001\u6307\u793A',\n },\n },\n },\n tags: ['autodocs'],\n argTypes: {\n data: {\n description: '\u4E1A\u52A1\u6570\u636E\uFF0C\u5305\u542B\u65E5\u7A0B\u5217\u8868',\n control: { type: 'object' },\n },\n 'data.showTimeline': {\n description: '\u662F\u5426\u663E\u793A\u65F6\u95F4\u8F74\uFF0C\u9ED8\u8BA4\u4E3A true',\n control: { type: 'boolean' },\n table: {\n defaultValue: { summary: 'true' },\n type: { summary: 'boolean' },\n },\n },\n className: {\n description: '\u81EA\u5B9A\u4E49\u6837\u5F0F\u7C7B\u540D',\n control: { type: 'text' },\n },\n },\n} satisfies Meta<typeof EventSchedule>\n\nexport default meta\ntype Story = StoryObj<typeof meta>\n\n/**\n * \u9ED8\u8BA4\u5C55\u793A - \u4E24\u4E2A\u6D3B\u52A8\n */\nexport const Default: Story = {\n args: {\n data: mockData,\n },\n}\n\n/**\n * \u4E09\u4E2A\u6D3B\u52A8\u5C55\u793A\n */\nexport const ThreeEvents: Story = {\n args: {\n data: threeEventsData,\n },\n}\n\n/**\n * \u5355\u4E2A\u6D3B\u52A8\n */\nexport const SingleEvent: Story = {\n args: {\n data: {\n scheduleList: [\n {\n title: '\u9650\u65F6\u79D2\u6740\u6D3B\u52A8',\n startDate: '2025-12-23',\n endDate: '2025-12-23',\n items: [\n {\n icon: <CalendarIcon />,\n label: '12\u67081\u65E5\u5168\u5929',\n },\n {\n icon: <ClockIcon />,\n label: '\u6BCF\u5C0F\u65F6\u6574\u70B9\u5F00\u62A2',\n },\n {\n icon: <GiftIcon />,\n label: '\u79D2\u6740\u4EF7\u4F4E\u81F33\u6298',\n },\n ],\n },\n ],\n },\n },\n}\n\n/**\n * \u81EA\u52A8\u5224\u65AD\u6FC0\u6D3B\u72B6\u6001 - \u6839\u636E\u5F53\u524D\u65F6\u95F4\u81EA\u52A8\u5224\u65AD\u54EA\u4E2A\u6D3B\u52A8\u662F\u6FC0\u6D3B\u72B6\u6001\n * \u8FD9\u4E2A\u793A\u4F8B\u5C55\u793A\u4E86\u7EC4\u4EF6\u5982\u4F55\u6839\u636E startDate \u548C endDate \u81EA\u52A8\u5224\u65AD\u6D3B\u52A8\u662F\u5426\u6FC0\u6D3B\n */\nexport const AutoActiveStatus: Story = {\n args: {\n data: {\n scheduleList: [\n {\n title: '\u5DF2\u7ED3\u675F\u7684\u6D3B\u52A8',\n startDate: '2024-01-01',\n endDate: '2024-01-31',\n items: [\n {\n icon: <CalendarIcon />,\n label: '1\u67081\u65E5 - 1\u670831\u65E5',\n },\n {\n icon: <ClockIcon />,\n label: '\u5DF2\u7ED3\u675F',\n },\n {\n icon: <GiftIcon />,\n label: '\u611F\u8C22\u53C2\u4E0E',\n },\n ],\n },\n {\n title: '\u8FDB\u884C\u4E2D\u7684\u6D3B\u52A8',\n startDate: '2025-01-01',\n endDate: '2025-12-31',\n items: [\n {\n icon: <CalendarIcon />,\n label: '2025\u5E74\u5168\u5E74',\n },\n {\n icon: <ClockIcon />,\n label: '\u6B63\u5728\u8FDB\u884C\u4E2D',\n },\n {\n icon: <GiftIcon />,\n label: '\u9650\u65F6\u4F18\u60E0',\n },\n ],\n },\n {\n title: '\u5373\u5C06\u5F00\u59CB\u7684\u6D3B\u52A8',\n startDate: '2026-01-01',\n endDate: '2026-12-31',\n items: [\n {\n icon: <CalendarIcon />,\n label: '2026\u5E74\u5F00\u59CB',\n },\n {\n icon: <ClockIcon />,\n label: '\u656C\u8BF7\u671F\u5F85',\n },\n {\n icon: <GiftIcon />,\n label: '\u8D85\u503C\u798F\u5229',\n },\n ],\n },\n ],\n },\n },\n}\n\n/**\n * \u9690\u85CF\u65F6\u95F4\u8F74 - \u4E0D\u663E\u793A\u65F6\u95F4\u8F74\uFF0C\u53EA\u663E\u793A\u6D3B\u52A8\u5361\u7247\n */\nexport const WithoutTimeline: Story = {\n args: {\n data: {\n ...mockData,\n showTimeline: false,\n },\n },\n}\n\n/**\n * \u9690\u85CF\u65F6\u95F4\u8F74 - \u4E09\u4E2A\u6D3B\u52A8\n */\nexport const ThreeEventsWithoutTimeline: Story = {\n args: {\n data: {\n ...threeEventsData,\n showTimeline: false,\n },\n },\n}\n"],
5
+ "mappings": "0jBAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,sBAAAE,EAAA,YAAAC,EAAA,gBAAAC,EAAA,gBAAAC,EAAA,+BAAAC,EAAA,oBAAAC,EAAA,YAAAC,IAAA,eAAAC,EAAAT,GAOE,IAAAU,EAAA,6BANFC,EAAkB,iBAElBC,EAAsD,uDAGtD,MAAMC,EAAe,OACnB,QAAC,OAAI,MAAM,KAAK,OAAO,KAAK,QAAQ,YAAY,KAAK,OAAO,MAAM,6BAChE,oBAAC,QACC,EAAE,6JACF,OAAO,eACP,YAAY,MACZ,cAAc,QACd,eAAe,QACjB,KACA,OAAC,QACC,EAAE,6CACF,OAAO,eACP,YAAY,MACZ,cAAc,QACd,eAAe,QACjB,GACF,EAGIC,EAAY,OAChB,QAAC,OAAI,MAAM,KAAK,OAAO,KAAK,QAAQ,YAAY,KAAK,OAAO,MAAM,6BAChE,oBAAC,QACC,EAAE,gEACF,OAAO,eACP,YAAY,MACZ,cAAc,QACd,eAAe,QACjB,KACA,OAAC,QACC,EAAE,sBACF,OAAO,eACP,YAAY,MACZ,cAAc,QACd,eAAe,QACjB,GACF,EAGIC,EAAW,OACf,QAAC,OAAI,MAAM,KAAK,OAAO,KAAK,QAAQ,YAAY,KAAK,OAAO,MAAM,6BAChE,oBAAC,QACC,EAAE,yIACF,OAAO,eACP,YAAY,MACZ,cAAc,QACd,eAAe,QACjB,KACA,OAAC,QACC,EAAE,qKACF,OAAO,eACP,YAAY,MACZ,cAAc,QACd,eAAe,QACjB,KACA,OAAC,QACC,EAAE,yMACF,OAAO,eACP,YAAY,MACZ,cAAc,QACd,eAAe,QACjB,GACF,EAIIC,EAA8B,CAClC,aAAc,CACZ,CACE,MAAO,uCACP,UAAW,aACX,QAAS,aACT,MAAO,CACL,CACE,QAAM,OAACH,EAAA,EAAa,EACpB,MAAO,oCACT,EACA,CACE,QAAM,OAACC,EAAA,EAAU,EACjB,MAAO,0CACT,EACA,CACE,QAAM,OAACC,EAAA,EAAS,EAChB,MAAO,kDACT,CACF,CACF,EACA,CACE,MAAO,uCACP,UAAW,aACX,QAAS,aACT,MAAO,CACL,CACE,QAAM,OAACF,EAAA,EAAa,EACpB,MAAO,qCACT,EACA,CACE,QAAM,OAACC,EAAA,EAAU,EACjB,MAAO,gCACT,EACA,CACE,QAAM,OAACC,EAAA,EAAS,EAChB,MAAO,kDACT,CACF,CACF,CACF,EACA,gBAAiB,CACf,OAAQ,CACN,OAAQ,gFACR,OAAQ,iCACR,QACE,qHACF,UACE,oHACJ,EACA,SAAU,CACR,OAAQ,gFACR,OAAQ,iCACR,QACE,qHACF,UACE,oHACJ,CACF,CACF,EAGME,EAAqC,CACzC,aAAc,CACZ,CACE,MAAO,uCACP,UAAW,aACX,QAAS,aACT,MAAO,CACL,CACE,QAAM,OAACJ,EAAA,EAAa,EACpB,MAAO,oCACT,EACA,CACE,QAAM,OAACC,EAAA,EAAU,EACjB,MAAO,8CACT,EACA,CACE,QAAM,OAACC,EAAA,EAAS,EAChB,MAAO,+CACT,CACF,CACF,EACA,CACE,MAAO,2BACP,UAAW,aACX,QAAS,aACT,MAAO,CACL,CACE,QAAM,OAACF,EAAA,EAAa,EACpB,MAAO,qCACT,EACA,CACE,QAAM,OAACC,EAAA,EAAU,EACjB,MAAO,4CACT,EACA,CACE,QAAM,OAACC,EAAA,EAAS,EAChB,MAAO,+CACT,CACF,CACF,EACA,CACE,MAAO,2BACP,UAAW,aACX,QAAS,aACT,MAAO,CACL,CACE,QAAM,OAACF,EAAA,EAAa,EACpB,MAAO,mCACT,EACA,CACE,QAAM,OAACC,EAAA,EAAU,EACjB,MAAO,gCACT,EACA,CACE,QAAM,OAACC,EAAA,EAAS,EAChB,MAAO,kDACT,CACF,CACF,CACF,CACF,EAEMG,EAAO,CACX,MAAO,+BACP,UAAW,EAAAC,QACX,WAAY,CACV,OAAQ,aACR,KAAM,CACJ,YAAa,CACX,UAAW,qPACb,CACF,CACF,EACA,KAAM,CAAC,UAAU,EACjB,SAAU,CACR,KAAM,CACJ,YAAa,qEACb,QAAS,CAAE,KAAM,QAAS,CAC5B,EACA,oBAAqB,CACnB,YAAa,0EACb,QAAS,CAAE,KAAM,SAAU,EAC3B,MAAO,CACL,aAAc,CAAE,QAAS,MAAO,EAChC,KAAM,CAAE,QAAS,SAAU,CAC7B,CACF,EACA,UAAW,CACT,YAAa,6CACb,QAAS,CAAE,KAAM,MAAO,CAC1B,CACF,CACF,EAEA,IAAOX,EAAQU,EAMR,MAAMf,EAAiB,CAC5B,KAAM,CACJ,KAAMa,CACR,CACF,EAKaX,EAAqB,CAChC,KAAM,CACJ,KAAMY,CACR,CACF,EAKab,EAAqB,CAChC,KAAM,CACJ,KAAM,CACJ,aAAc,CACZ,CACE,MAAO,uCACP,UAAW,aACX,QAAS,aACT,MAAO,CACL,CACE,QAAM,OAACS,EAAA,EAAa,EACpB,MAAO,6BACT,EACA,CACE,QAAM,OAACC,EAAA,EAAU,EACjB,MAAO,4CACT,EACA,CACE,QAAM,OAACC,EAAA,EAAS,EAChB,MAAO,uCACT,CACF,CACF,CACF,CACF,CACF,CACF,EAMab,EAA0B,CACrC,KAAM,CACJ,KAAM,CACJ,aAAc,CACZ,CACE,MAAO,uCACP,UAAW,aACX,QAAS,aACT,MAAO,CACL,CACE,QAAM,OAACW,EAAA,EAAa,EACpB,MAAO,kCACT,EACA,CACE,QAAM,OAACC,EAAA,EAAU,EACjB,MAAO,oBACT,EACA,CACE,QAAM,OAACC,EAAA,EAAS,EAChB,MAAO,0BACT,CACF,CACF,EACA,CACE,MAAO,uCACP,UAAW,aACX,QAAS,aACT,MAAO,CACL,CACE,QAAM,OAACF,EAAA,EAAa,EACpB,MAAO,wBACT,EACA,CACE,QAAM,OAACC,EAAA,EAAU,EACjB,MAAO,gCACT,EACA,CACE,QAAM,OAACC,EAAA,EAAS,EAChB,MAAO,0BACT,CACF,CACF,EACA,CACE,MAAO,6CACP,UAAW,aACX,QAAS,aACT,MAAO,CACL,CACE,QAAM,OAACF,EAAA,EAAa,EACpB,MAAO,wBACT,EACA,CACE,QAAM,OAACC,EAAA,EAAU,EACjB,MAAO,0BACT,EACA,CACE,QAAM,OAACC,EAAA,EAAS,EAChB,MAAO,0BACT,CACF,CACF,CACF,CACF,CACF,CACF,EAKaR,EAAyB,CACpC,KAAM,CACJ,KAAM,CACJ,GAAGS,EACH,aAAc,EAChB,CACF,CACF,EAKaV,EAAoC,CAC/C,KAAM,CACJ,KAAM,CACJ,GAAGW,EACH,aAAc,EAChB,CACF,CACF",
6
+ "names": ["eventSchedule_stories_exports", "__export", "AutoActiveStatus", "Default", "SingleEvent", "ThreeEvents", "ThreeEventsWithoutTimeline", "WithoutTimeline", "eventSchedule_stories_default", "__toCommonJS", "import_jsx_runtime", "import_react", "import_EventSchedule", "CalendarIcon", "ClockIcon", "GiftIcon", "mockData", "threeEventsData", "meta", "EventSchedule"]
7
7
  }
@@ -1,2 +1,2 @@
1
- "use strict";var m=Object.create;var e=Object.defineProperty;var p=Object.getOwnPropertyDescriptor;var c=Object.getOwnPropertyNames;var y=Object.getPrototypeOf,l=Object.prototype.hasOwnProperty;var d=(t,o)=>{for(var a in o)e(t,a,{get:o[a],enumerable:!0})},s=(t,o,a,n)=>{if(o&&typeof o=="object"||typeof o=="function")for(let r of c(o))!l.call(t,r)&&r!==a&&e(t,r,{get:()=>o[r],enumerable:!(n=p(o,r))||n.enumerable});return t};var f=(t,o,a)=>(a=t!=null?m(y(t)):{},s(o||!t||!t.__esModule?e(a,"default",{value:t,enumerable:!0}):a,t)),B=t=>s(e({},"__esModule",{value:!0}),t);var S={};d(S,{Default:()=>D,default:()=>u});module.exports=B(S);var i=f(require("../biz-components/PromotionalBar/index.js"));const P={title:"\u63A8\u5E7F\u680F"},g={title:"Biz Components/PromotionalBar",component:i.default,parameters:{layout:"centered",docs:{description:{component:"\u63A8\u5E7F\u680F - \u63A8\u5E7F\u680F"}}},tags:["autodocs"],argTypes:{data:{description:"\u4E1A\u52A1\u6570\u636E"}},args:{data:P}};var u=g;const D={args:{}};
1
+ "use strict";var r=Object.create;var p=Object.defineProperty;var a=Object.getOwnPropertyDescriptor;var c=Object.getOwnPropertyNames;var f=Object.getPrototypeOf,m=Object.prototype.hasOwnProperty;var u=(o,t)=>{for(var s in t)p(o,s,{get:t[s],enumerable:!0})},n=(o,t,s,i)=>{if(t&&typeof t=="object"||typeof t=="function")for(let e of c(t))!m.call(o,e)&&e!==s&&p(o,e,{get:()=>t[e],enumerable:!(i=a(t,e))||i.enumerable});return o};var d=(o,t,s)=>(s=o!=null?r(f(o)):{},n(t||!o||!o.__esModule?p(s,"default",{value:o,enumerable:!0}):s,o)),h=o=>n(p({},"__esModule",{value:!0}),o);var S={};u(S,{Default:()=>b,FullFeatures:()=>D,ResponsiveBackground:()=>G,WithoutButton:()=>k,default:()=>j});module.exports=h(S);var l=d(require("../biz-components/PromotionalBar/index.js"));const g={contentTitle:"Special Promotion",contentDesc:"Get amazing deals on our best-selling products this season",buttonText:"Shop Now",buttonLink:"#",backgroundImage:{mobile:"https://cdn.shopify.com/s/files/1/0501/7678/6607/files/Group.jpg?v=1765273188",tablet:"https://cdn.shopify.com/s/files/1/0501/7678/6607/files/Group-1.jpg?v=1765273189",laptop:"https://cdn.shopify.com/s/files/1/0501/7678/6607/files/Group-2.jpg?v=1765273189",desktop:"https://cdn.shopify.com/s/files/1/0501/7678/6607/files/Group-3.jpg?v=1765273189",lgDesktop:"https://cdn.shopify.com/s/files/1/0501/7678/6607/files/Group-4.jpg?v=1765273189"}},y={contentTitle:"Exclusive Offer",contentDesc:"Limited time deals with free shipping on orders over $50",buttonText:"Learn More",buttonLink:"#",backgroundImage:{mobile:"https://cdn.shopify.com/s/files/1/0501/7678/6607/files/Group.jpg?v=1765273188",tablet:"https://cdn.shopify.com/s/files/1/0501/7678/6607/files/Group-1.jpg?v=1765273189",laptop:"https://cdn.shopify.com/s/files/1/0501/7678/6607/files/Group-2.jpg?v=1765273189",desktop:"https://cdn.shopify.com/s/files/1/0501/7678/6607/files/Group-3.jpg?v=1765273189",lgDesktop:"https://cdn.shopify.com/s/files/1/0501/7678/6607/files/Group-4.jpg?v=1765273189"}},v={title:"Biz Components/PromotionalBar",component:l.default,parameters:{layout:"fullscreen",docs:{description:{component:"\u63A8\u5E7F\u680F\u7EC4\u4EF6 - \u652F\u6301\u54CD\u5E94\u5F0F\u80CC\u666F\u56FE\u7247\u3001\u6807\u9898\u3001\u63CF\u8FF0\u548C\u884C\u52A8\u6309\u94AE"}}},tags:["autodocs"],argTypes:{data:{description:"\u4E1A\u52A1\u6570\u636E\uFF0C\u5305\u542B\u6807\u9898\u3001\u63CF\u8FF0\u3001\u6309\u94AE\u548C\u80CC\u666F\u56FE\u7247"}},args:{data:g}};var j=v;const b={args:{}},G={args:{data:y}},k={args:{data:{contentTitle:"New Arrivals",contentDesc:"Check out our latest collection of premium products",backgroundImage:{mobile:"https://cdn.shopify.com/s/files/1/0501/7678/6607/files/Group.jpg?v=1765273188",tablet:"https://cdn.shopify.com/s/files/1/0501/7678/6607/files/Group-1.jpg?v=1765273189",laptop:"https://cdn.shopify.com/s/files/1/0501/7678/6607/files/Group-2.jpg?v=1765273189",desktop:"https://cdn.shopify.com/s/files/1/0501/7678/6607/files/Group-3.jpg?v=1765273189",lgDesktop:"https://cdn.shopify.com/s/files/1/0501/7678/6607/files/Group-4.jpg?v=1765273189"}}}},D={args:{data:{contentTitle:"Up to 50% Off",contentDesc:"Enjoy massive discounts on thousands of items. Limited time offer!",buttonText:"Shop Now",buttonLink:"/sale",backgroundImage:{mobile:"https://cdn.shopify.com/s/files/1/0501/7678/6607/files/Group.jpg?v=1765273188",tablet:"https://cdn.shopify.com/s/files/1/0501/7678/6607/files/Group-1.jpg?v=1765273189",laptop:"https://cdn.shopify.com/s/files/1/0501/7678/6607/files/Group-2.jpg?v=1765273189",desktop:"https://cdn.shopify.com/s/files/1/0501/7678/6607/files/Group-3.jpg?v=1765273189",lgDesktop:"https://cdn.shopify.com/s/files/1/0501/7678/6607/files/Group-4.jpg?v=1765273189"}}}};
2
2
  //# sourceMappingURL=promotionalBar.stories.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/stories/promotionalBar.stories.tsx"],
4
- "sourcesContent": ["import type { Meta, StoryObj } from '@storybook/react'\n\nimport PromotionalBar, { type PromotionalBarData } from '../biz-components/PromotionalBar/index.js'\n\n// \u6A21\u62DF\u4E1A\u52A1\u6570\u636E\nconst mockData: PromotionalBarData = {\n title: '\u63A8\u5E7F\u680F',\n // \u6839\u636E\u5B9E\u9645\u4E1A\u52A1\u9700\u6C42\u6DFB\u52A0\u66F4\u591A\u6570\u636E\u5B57\u6BB5\n}\n\nconst meta = {\n title: 'Biz Components/PromotionalBar',\n component: PromotionalBar,\n parameters: {\n layout: 'centered',\n docs: {\n description: {\n component: '\u63A8\u5E7F\u680F - \u63A8\u5E7F\u680F',\n },\n },\n },\n tags: ['autodocs'],\n argTypes: {\n data: {\n description: '\u4E1A\u52A1\u6570\u636E',\n },\n },\n args: {\n data: mockData,\n },\n} satisfies Meta<typeof PromotionalBar>\n\nexport default meta\ntype Story = StoryObj<typeof meta>\n\nexport const Default: Story = {\n args: {},\n}\n"],
5
- "mappings": "0jBAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,aAAAE,EAAA,YAAAC,IAAA,eAAAC,EAAAJ,GAEA,IAAAK,EAAwD,wDAGxD,MAAMC,EAA+B,CACnC,MAAO,oBAET,EAEMC,EAAO,CACX,MAAO,gCACP,UAAW,EAAAC,QACX,WAAY,CACV,OAAQ,WACR,KAAM,CACJ,YAAa,CACX,UAAW,yCACb,CACF,CACF,EACA,KAAM,CAAC,UAAU,EACjB,SAAU,CACR,KAAM,CACJ,YAAa,0BACf,CACF,EACA,KAAM,CACJ,KAAMF,CACR,CACF,EAEA,IAAOH,EAAQI,EAGR,MAAML,EAAiB,CAC5B,KAAM,CAAC,CACT",
6
- "names": ["promotionalBar_stories_exports", "__export", "Default", "promotionalBar_stories_default", "__toCommonJS", "import_PromotionalBar", "mockData", "meta", "PromotionalBar"]
4
+ "sourcesContent": ["import type { Meta, StoryObj } from '@storybook/react'\n\nimport PromotionalBar, { type PromotionalBarData } from '../biz-components/PromotionalBar/index.js'\n\n// \u6A21\u62DF\u4E1A\u52A1\u6570\u636E - \u4F7F\u7528\u5355\u4E00\u80CC\u666F\u56FE\u7247\nconst mockData: PromotionalBarData = {\n contentTitle: 'Special Promotion',\n contentDesc: 'Get amazing deals on our best-selling products this season',\n buttonText: 'Shop Now',\n buttonLink: '#',\n backgroundImage: {\n mobile: 'https://cdn.shopify.com/s/files/1/0501/7678/6607/files/Group.jpg?v=1765273188',\n tablet: 'https://cdn.shopify.com/s/files/1/0501/7678/6607/files/Group-1.jpg?v=1765273189',\n laptop: 'https://cdn.shopify.com/s/files/1/0501/7678/6607/files/Group-2.jpg?v=1765273189',\n desktop: 'https://cdn.shopify.com/s/files/1/0501/7678/6607/files/Group-3.jpg?v=1765273189',\n lgDesktop: 'https://cdn.shopify.com/s/files/1/0501/7678/6607/files/Group-4.jpg?v=1765273189',\n },\n}\n\n// \u4F7F\u7528\u54CD\u5E94\u5F0F\u80CC\u666F\u56FE\u7247\nconst responsiveData: PromotionalBarData = {\n contentTitle: 'Exclusive Offer',\n contentDesc: 'Limited time deals with free shipping on orders over $50',\n buttonText: 'Learn More',\n buttonLink: '#',\n backgroundImage: {\n mobile: 'https://cdn.shopify.com/s/files/1/0501/7678/6607/files/Group.jpg?v=1765273188',\n tablet: 'https://cdn.shopify.com/s/files/1/0501/7678/6607/files/Group-1.jpg?v=1765273189',\n laptop: 'https://cdn.shopify.com/s/files/1/0501/7678/6607/files/Group-2.jpg?v=1765273189',\n desktop: 'https://cdn.shopify.com/s/files/1/0501/7678/6607/files/Group-3.jpg?v=1765273189',\n lgDesktop: 'https://cdn.shopify.com/s/files/1/0501/7678/6607/files/Group-4.jpg?v=1765273189',\n },\n}\n\nconst meta = {\n title: 'Biz Components/PromotionalBar',\n component: PromotionalBar,\n parameters: {\n layout: 'fullscreen',\n docs: {\n description: {\n component: '\u63A8\u5E7F\u680F\u7EC4\u4EF6 - \u652F\u6301\u54CD\u5E94\u5F0F\u80CC\u666F\u56FE\u7247\u3001\u6807\u9898\u3001\u63CF\u8FF0\u548C\u884C\u52A8\u6309\u94AE',\n },\n },\n },\n tags: ['autodocs'],\n argTypes: {\n data: {\n description: '\u4E1A\u52A1\u6570\u636E\uFF0C\u5305\u542B\u6807\u9898\u3001\u63CF\u8FF0\u3001\u6309\u94AE\u548C\u80CC\u666F\u56FE\u7247',\n },\n },\n args: {\n data: mockData,\n },\n} satisfies Meta<typeof PromotionalBar>\n\nexport default meta\ntype Story = StoryObj<typeof meta>\n\n/**\n * \u9ED8\u8BA4\u5C55\u793A - \u4F7F\u7528\u5355\u4E00\u80CC\u666F\u56FE\u7247 URL\n */\nexport const Default: Story = {\n args: {},\n}\n\n/**\n * \u54CD\u5E94\u5F0F\u80CC\u666F\u56FE\u7247 - \u4E0D\u540C\u5C4F\u5E55\u5C3A\u5BF8\u663E\u793A\u4E0D\u540C\u56FE\u7247\n */\nexport const ResponsiveBackground: Story = {\n args: {\n data: responsiveData,\n },\n}\n\n/**\n * \u65E0\u6309\u94AE - \u4EC5\u663E\u793A\u6807\u9898\u548C\u63CF\u8FF0\n */\nexport const WithoutButton: Story = {\n args: {\n data: {\n contentTitle: 'New Arrivals',\n contentDesc: 'Check out our latest collection of premium products',\n backgroundImage: {\n mobile: 'https://cdn.shopify.com/s/files/1/0501/7678/6607/files/Group.jpg?v=1765273188',\n tablet: 'https://cdn.shopify.com/s/files/1/0501/7678/6607/files/Group-1.jpg?v=1765273189',\n laptop: 'https://cdn.shopify.com/s/files/1/0501/7678/6607/files/Group-2.jpg?v=1765273189',\n desktop: 'https://cdn.shopify.com/s/files/1/0501/7678/6607/files/Group-3.jpg?v=1765273189',\n lgDesktop: 'https://cdn.shopify.com/s/files/1/0501/7678/6607/files/Group-4.jpg?v=1765273189',\n },\n },\n },\n}\n\n/**\n * \u5B8C\u6574\u529F\u80FD\u5C55\u793A\n */\nexport const FullFeatures: Story = {\n args: {\n data: {\n contentTitle: 'Up to 50% Off',\n contentDesc: 'Enjoy massive discounts on thousands of items. Limited time offer!',\n buttonText: 'Shop Now',\n buttonLink: '/sale',\n backgroundImage: {\n mobile: 'https://cdn.shopify.com/s/files/1/0501/7678/6607/files/Group.jpg?v=1765273188',\n tablet: 'https://cdn.shopify.com/s/files/1/0501/7678/6607/files/Group-1.jpg?v=1765273189',\n laptop: 'https://cdn.shopify.com/s/files/1/0501/7678/6607/files/Group-2.jpg?v=1765273189',\n desktop: 'https://cdn.shopify.com/s/files/1/0501/7678/6607/files/Group-3.jpg?v=1765273189',\n lgDesktop: 'https://cdn.shopify.com/s/files/1/0501/7678/6607/files/Group-4.jpg?v=1765273189',\n },\n },\n },\n}\n"],
5
+ "mappings": "0jBAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,aAAAE,EAAA,iBAAAC,EAAA,yBAAAC,EAAA,kBAAAC,EAAA,YAAAC,IAAA,eAAAC,EAAAP,GAEA,IAAAQ,EAAwD,wDAGxD,MAAMC,EAA+B,CACnC,aAAc,oBACd,YAAa,6DACb,WAAY,WACZ,WAAY,IACZ,gBAAiB,CACf,OAAQ,gFACR,OAAQ,kFACR,OAAQ,kFACR,QAAS,kFACT,UAAW,iFACb,CACF,EAGMC,EAAqC,CACzC,aAAc,kBACd,YAAa,2DACb,WAAY,aACZ,WAAY,IACZ,gBAAiB,CACf,OAAQ,gFACR,OAAQ,kFACR,OAAQ,kFACR,QAAS,kFACT,UAAW,iFACb,CACF,EAEMC,EAAO,CACX,MAAO,gCACP,UAAW,EAAAC,QACX,WAAY,CACV,OAAQ,aACR,KAAM,CACJ,YAAa,CACX,UAAW,2JACb,CACF,CACF,EACA,KAAM,CAAC,UAAU,EACjB,SAAU,CACR,KAAM,CACJ,YAAa,0HACf,CACF,EACA,KAAM,CACJ,KAAMH,CACR,CACF,EAEA,IAAOH,EAAQK,EAMR,MAAMT,EAAiB,CAC5B,KAAM,CAAC,CACT,EAKaE,EAA8B,CACzC,KAAM,CACJ,KAAMM,CACR,CACF,EAKaL,EAAuB,CAClC,KAAM,CACJ,KAAM,CACJ,aAAc,eACd,YAAa,sDACb,gBAAiB,CACf,OAAQ,gFACR,OAAQ,kFACR,OAAQ,kFACR,QAAS,kFACT,UAAW,iFACb,CACF,CACF,CACF,EAKaF,EAAsB,CACjC,KAAM,CACJ,KAAM,CACJ,aAAc,gBACd,YAAa,qEACb,WAAY,WACZ,WAAY,QACZ,gBAAiB,CACf,OAAQ,gFACR,OAAQ,kFACR,OAAQ,kFACR,QAAS,kFACT,UAAW,iFACb,CACF,CACF,CACF",
6
+ "names": ["promotionalBar_stories_exports", "__export", "Default", "FullFeatures", "ResponsiveBackground", "WithoutButton", "promotionalBar_stories_default", "__toCommonJS", "import_PromotionalBar", "mockData", "responsiveData", "meta", "PromotionalBar"]
7
7
  }
@@ -0,0 +1,2 @@
1
+ "use strict";var l=Object.create;var a=Object.defineProperty;var d=Object.getOwnPropertyDescriptor;var u=Object.getOwnPropertyNames;var c=Object.getPrototypeOf,h=Object.prototype.hasOwnProperty;var p=(t,e)=>{for(var o in e)a(t,o,{get:e[o],enumerable:!0})},n=(t,e,o,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let s of u(e))!h.call(t,s)&&s!==o&&a(t,s,{get:()=>e[s],enumerable:!(r=d(e,s))||r.enumerable});return t};var f=(t,e,o)=>(o=t!=null?l(c(t)):{},n(e||!t||!t.__esModule?a(o,"default",{value:t,enumerable:!0}):o,t)),g=t=>n(a({},"__esModule",{value:!0}),t);var M={};p(M,{CenterAligned:()=>x,CountdownOnly:()=>D,DarkTheme:()=>k,Default:()=>S,FullFeatures:()=>T,WithCountdown:()=>b,WithSubtitle:()=>w,default:()=>m});module.exports=g(M);var i=f(require("../biz-components/Title/index.js"));const y={title:"Biz Components/Title",component:i.default,parameters:{layout:"padded",docs:{description:{component:"Title \u7EC4\u4EF6 - \u652F\u6301\u6807\u9898\u3001\u526F\u6807\u9898\u3001\u5012\u8BA1\u65F6\u548C\u94FE\u63A5\u6309\u94AE"}}},tags:["autodocs"],argTypes:{as:{control:"select",options:["h1","h2","h3","h4","h5","h6"],description:"\u6807\u9898\u6807\u7B7E"},weight:{control:"select",options:["medium","semibold","bold","extraBold","black"],description:"\u5B57\u91CD"}}};var m=y;const S={args:{data:{title:"Welcome to Our Store",align:"left"}}},w={args:{data:{title:"Exclusive Holiday Benefits",subtitle:"Join us for amazing deals and special offers this season",align:"left"}}},b={args:{data:{title:"Flash Sale Ends Soon",subtitle:"Don't miss out on these limited-time offers",countdown:{targetDate:"2025-12-31T23:59:59",labels:{days:"Day",hours:"Hours",minutes:"Mins",seconds:"Secs"}},align:"left"}}},T={args:{data:{title:"Special Event Starting Soon",subtitle:"Get ready for the biggest sale of the year with exclusive deals",countdown:{targetDate:"2025-12-25T00:00:00",showDays:!0,showHours:!0,showMinutes:!0,showSeconds:!0,labels:{days:"Day",hours:"Hours",minutes:"Mins",seconds:"Secs"}},align:"left",extensions:{textLink:"Learn More",link:"#"}}}},x={args:{data:{title:"Centered Title with Countdown",subtitle:"This layout is perfect for hero sections",countdown:{targetDate:"2026-01-01T00:00:00"},align:"center"}}},k={args:{data:{title:"Dark Theme Title",subtitle:"Perfect for dark backgrounds",countdown:{targetDate:"2025-12-31T23:59:59"},theme:"dark",align:"left",extensions:{textLink:"Shop Now",link:"#"}}},parameters:{backgrounds:{default:"dark"}}},D={args:{data:{title:"Limited Time Offer",countdown:{targetDate:"2025-12-31T23:59:59",showDays:!0,showHours:!0,showMinutes:!0,showSeconds:!1},align:"left"}}};
2
+ //# sourceMappingURL=title.stories.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/stories/title.stories.tsx"],
4
+ "sourcesContent": ["import type { Meta, StoryObj } from '@storybook/react'\nimport Title from '../biz-components/Title/index.js'\n\nconst meta = {\n title: 'Biz Components/Title',\n component: Title,\n parameters: {\n layout: 'padded',\n docs: {\n description: {\n component: 'Title \u7EC4\u4EF6 - \u652F\u6301\u6807\u9898\u3001\u526F\u6807\u9898\u3001\u5012\u8BA1\u65F6\u548C\u94FE\u63A5\u6309\u94AE',\n },\n },\n },\n tags: ['autodocs'],\n argTypes: {\n as: {\n control: 'select',\n options: ['h1', 'h2', 'h3', 'h4', 'h5', 'h6'],\n description: '\u6807\u9898\u6807\u7B7E',\n },\n weight: {\n control: 'select',\n options: ['medium', 'semibold', 'bold', 'extraBold', 'black'],\n description: '\u5B57\u91CD',\n },\n },\n} satisfies Meta<typeof Title>\n\nexport default meta\ntype Story = StoryObj<typeof meta>\n\n/**\n * \u57FA\u7840\u6807\u9898\n */\nexport const Default: Story = {\n args: {\n data: {\n title: 'Welcome to Our Store',\n align: 'left',\n },\n },\n}\n\n/**\n * \u5E26\u526F\u6807\u9898\u7684\u6807\u9898\n */\nexport const WithSubtitle: Story = {\n args: {\n data: {\n title: 'Exclusive Holiday Benefits',\n subtitle: 'Join us for amazing deals and special offers this season',\n align: 'left',\n },\n },\n}\n\n/**\n * \u5E26\u5012\u8BA1\u65F6\u7684\u6807\u9898\n */\nexport const WithCountdown: Story = {\n args: {\n data: {\n title: 'Flash Sale Ends Soon',\n subtitle: \"Don't miss out on these limited-time offers\",\n countdown: {\n targetDate: '2025-12-31T23:59:59',\n labels: {\n days: 'Day',\n hours: 'Hours',\n minutes: 'Mins',\n seconds: 'Secs',\n },\n },\n align: 'left',\n },\n },\n}\n\n/**\n * \u5B8C\u6574\u529F\u80FD\u5C55\u793A - \u6807\u9898 + \u526F\u6807\u9898 + \u5012\u8BA1\u65F6 + \u6309\u94AE\n */\nexport const FullFeatures: Story = {\n args: {\n data: {\n title: 'Special Event Starting Soon',\n subtitle: 'Get ready for the biggest sale of the year with exclusive deals',\n countdown: {\n targetDate: '2025-12-25T00:00:00',\n showDays: true,\n showHours: true,\n showMinutes: true,\n showSeconds: true,\n labels: {\n days: 'Day',\n hours: 'Hours',\n minutes: 'Mins',\n seconds: 'Secs',\n },\n },\n align: 'left',\n extensions: {\n textLink: 'Learn More',\n link: '#',\n },\n },\n },\n}\n\n/**\n * \u5C45\u4E2D\u5BF9\u9F50\n */\nexport const CenterAligned: Story = {\n args: {\n data: {\n title: 'Centered Title with Countdown',\n subtitle: 'This layout is perfect for hero sections',\n countdown: {\n targetDate: '2026-01-01T00:00:00',\n },\n align: 'center',\n },\n },\n}\n\n/**\n * \u6697\u8272\u4E3B\u9898\n */\nexport const DarkTheme: Story = {\n args: {\n data: {\n title: 'Dark Theme Title',\n subtitle: 'Perfect for dark backgrounds',\n countdown: {\n targetDate: '2025-12-31T23:59:59',\n },\n theme: 'dark',\n align: 'left',\n extensions: {\n textLink: 'Shop Now',\n link: '#',\n },\n },\n },\n parameters: {\n backgrounds: { default: 'dark' },\n },\n}\n\n/**\n * \u4EC5\u5012\u8BA1\u65F6\uFF08\u65E0\u526F\u6807\u9898\uFF09\n */\nexport const CountdownOnly: Story = {\n args: {\n data: {\n title: 'Limited Time Offer',\n countdown: {\n targetDate: '2025-12-31T23:59:59',\n showDays: true,\n showHours: true,\n showMinutes: true,\n showSeconds: false, // \u4E0D\u663E\u793A\u79D2\u6570\n },\n align: 'left',\n },\n },\n}\n"],
5
+ "mappings": "0jBAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,mBAAAE,EAAA,kBAAAC,EAAA,cAAAC,EAAA,YAAAC,EAAA,iBAAAC,EAAA,kBAAAC,EAAA,iBAAAC,EAAA,YAAAC,IAAA,eAAAC,EAAAV,GACA,IAAAW,EAAkB,+CAElB,MAAMC,EAAO,CACX,MAAO,uBACP,UAAW,EAAAC,QACX,WAAY,CACV,OAAQ,SACR,KAAM,CACJ,YAAa,CACX,UAAW,6HACb,CACF,CACF,EACA,KAAM,CAAC,UAAU,EACjB,SAAU,CACR,GAAI,CACF,QAAS,SACT,QAAS,CAAC,KAAM,KAAM,KAAM,KAAM,KAAM,IAAI,EAC5C,YAAa,0BACf,EACA,OAAQ,CACN,QAAS,SACT,QAAS,CAAC,SAAU,WAAY,OAAQ,YAAa,OAAO,EAC5D,YAAa,cACf,CACF,CACF,EAEA,IAAOJ,EAAQG,EAMR,MAAMP,EAAiB,CAC5B,KAAM,CACJ,KAAM,CACJ,MAAO,uBACP,MAAO,MACT,CACF,CACF,EAKaG,EAAsB,CACjC,KAAM,CACJ,KAAM,CACJ,MAAO,6BACP,SAAU,2DACV,MAAO,MACT,CACF,CACF,EAKaD,EAAuB,CAClC,KAAM,CACJ,KAAM,CACJ,MAAO,uBACP,SAAU,8CACV,UAAW,CACT,WAAY,sBACZ,OAAQ,CACN,KAAM,MACN,MAAO,QACP,QAAS,OACT,QAAS,MACX,CACF,EACA,MAAO,MACT,CACF,CACF,EAKaD,EAAsB,CACjC,KAAM,CACJ,KAAM,CACJ,MAAO,8BACP,SAAU,kEACV,UAAW,CACT,WAAY,sBACZ,SAAU,GACV,UAAW,GACX,YAAa,GACb,YAAa,GACb,OAAQ,CACN,KAAM,MACN,MAAO,QACP,QAAS,OACT,QAAS,MACX,CACF,EACA,MAAO,OACP,WAAY,CACV,SAAU,aACV,KAAM,GACR,CACF,CACF,CACF,EAKaJ,EAAuB,CAClC,KAAM,CACJ,KAAM,CACJ,MAAO,gCACP,SAAU,2CACV,UAAW,CACT,WAAY,qBACd,EACA,MAAO,QACT,CACF,CACF,EAKaE,EAAmB,CAC9B,KAAM,CACJ,KAAM,CACJ,MAAO,mBACP,SAAU,+BACV,UAAW,CACT,WAAY,qBACd,EACA,MAAO,OACP,MAAO,OACP,WAAY,CACV,SAAU,WACV,KAAM,GACR,CACF,CACF,EACA,WAAY,CACV,YAAa,CAAE,QAAS,MAAO,CACjC,CACF,EAKaD,EAAuB,CAClC,KAAM,CACJ,KAAM,CACJ,MAAO,qBACP,UAAW,CACT,WAAY,sBACZ,SAAU,GACV,UAAW,GACX,YAAa,GACb,YAAa,EACf,EACA,MAAO,MACT,CACF,CACF",
6
+ "names": ["title_stories_exports", "__export", "CenterAligned", "CountdownOnly", "DarkTheme", "Default", "FullFeatures", "WithCountdown", "WithSubtitle", "title_stories_default", "__toCommonJS", "import_Title", "meta", "Title"]
7
+ }
@@ -1,15 +1,26 @@
1
1
  import * as React from 'react';
2
+ import { type VariantProps } from 'class-variance-authority';
3
+ /**
4
+ * 导航项对齐方向样式变体
5
+ */
6
+ declare const anchorNavigationVariants: (props?: ({
7
+ alignment?: "end" | "start" | "center" | null | undefined;
8
+ } & import("class-variance-authority/types").ClassProp) | undefined) => string;
2
9
  /**
3
10
  * AnchorNavigation 业务组件数据接口
4
11
  */
5
12
  export interface AnchorNavigationData {
6
13
  /** 锚点列表 */
7
14
  sectionIds: {
8
- id: string;
15
+ targetId: string;
9
16
  label: string;
10
17
  }[];
18
+ /** 导航项水平对齐方式 */
19
+ alignment?: 'start' | 'center' | 'end';
20
+ /** 主题模式 */
21
+ theme?: 'light' | 'dark';
11
22
  }
12
- export interface AnchorNavigationProps extends React.HTMLAttributes<HTMLDivElement> {
23
+ export interface AnchorNavigationProps extends React.HTMLAttributes<HTMLDivElement>, VariantProps<typeof anchorNavigationVariants> {
13
24
  /** 业务数据 */
14
25
  data: AnchorNavigationData;
15
26
  }
@@ -1,2 +1,2 @@
1
- "use client";import{jsx as r}from"react/jsx-runtime";import*as n from"react";import{cn as l}from"../../helpers/utils.js";import{Container as h}from"../../components/container.js";import g from"./useAnchorPosition.js";const f=n.forwardRef(({className:d,data:a,...b},m)=>{const u=g(a.sectionIds?.map(t=>t.id)||[]),i=n.useRef(null),s=n.useRef([]),p=n.useCallback(t=>{const e=s.current[t];if(e&&i.current){const o=i.current,c=e,v=c.offsetLeft-o.offsetWidth/2+c.offsetWidth/2;o.scrollTo({left:v,behavior:"smooth"})}},[]);return r("div",{ref:m,className:l("sticky top-0 z-10 w-full bg-white",d),...b,children:r(h,{children:r("div",{ref:i,className:"anchor-navigation-content desktop:gap-6 flex items-center gap-4 overflow-x-auto [&::-webkit-scrollbar]:hidden",children:a.sectionIds?.map((t,e)=>r("button",{ref:o=>{o&&(s.current[e]=o)},onClick:()=>{p(e),document.getElementById(t.id)?.scrollIntoView({behavior:"smooth"})},className:l("anchor-navigation-item desktop:py-4 shrink-0 border-b-4 border-b-transparent py-3 text-base font-bold text-[#4A4C56]",{"border-b-brand text-[#080A0F]":u===t.id}),children:t.label},t.id))})})})});f.displayName="AnchorNavigation";var R=f;export{R as default};
1
+ "use client";import{jsx as i}from"react/jsx-runtime";import*as o from"react";import{cn as l}from"../../helpers/utils.js";import{Container as k}from"../../components/container.js";import{cva as m}from"class-variance-authority";import I from"./useAnchorPosition.js";const N=m("anchor-navigation-content desktop:gap-6 flex items-center gap-4 overflow-x-auto [&::-webkit-scrollbar]:hidden",{variants:{alignment:{start:"justify-start",center:"justify-center",end:"justify-end"}},defaultVariants:{alignment:"start"}}),y=m("sticky top-0 z-10 w-full",{variants:{theme:{light:"bg-white",dark:"bg-[#1E2024]"}},defaultVariants:{theme:"light"}}),g=o.forwardRef(({className:h,data:s,...u},b)=>{const{alignment:v="start",theme:f="light"}=s,p=I(s.sectionIds?.map(t=>t.targetId)||[]),c=o.useRef(null),d=o.useRef([]),A=o.useCallback(t=>{const r=d.current[t];if(r&&c.current){const e=c.current,n=r,a=n.offsetLeft-e.offsetWidth/2+n.offsetWidth/2;e.scrollTo({left:a,behavior:"smooth"})}},[]);return i("div",{ref:b,className:l(y({theme:f}),h),...u,children:i(k,{children:i("div",{ref:c,className:l(N({alignment:v})),children:s.sectionIds?.map((t,r)=>{const e=p===t.targetId,n=f==="dark";return i("button",{ref:a=>{a&&(d.current[r]=a)},onClick:()=>{A(r),document.getElementById(t.targetId)?.scrollIntoView({behavior:"smooth"})},className:l("anchor-navigation-item desktop:py-4 shrink-0 border-b-4 border-b-transparent py-3 text-base font-bold",{"text-[#4A4C56]":!n&&!e,"border-b-brand text-[#080A0F]":!n&&e,"text-[#8A8D92]":n&&!e,"border-b-brand text-white":n&&e}),children:t.label},t.targetId)})})})})});g.displayName="AnchorNavigation";var D=g;export{D as default};
2
2
  //# sourceMappingURL=index.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/biz-components/AnchorNavigation/index.tsx"],
4
- "sourcesContent": ["'use client'\n\nimport * as React from 'react'\nimport { cn } from '../../helpers/utils.js'\nimport { Container } from '../../components/container.js'\nimport useAnchorPosition from './useAnchorPosition.js'\n/**\n * AnchorNavigation \u4E1A\u52A1\u7EC4\u4EF6\u6570\u636E\u63A5\u53E3\n */\nexport interface AnchorNavigationData {\n /** \u951A\u70B9\u5217\u8868 */\n sectionIds: {\n id: string\n label: string\n }[]\n}\n\nexport interface AnchorNavigationProps extends React.HTMLAttributes<HTMLDivElement> {\n /** \u4E1A\u52A1\u6570\u636E */\n data: AnchorNavigationData\n}\n\n/**\n * AnchorNavigation - \u951A\u70B9\u5BFC\u822A\n *\n * @description \u951A\u70B9\u5BFC\u822A\n */\nconst AnchorNavigation = React.forwardRef<HTMLDivElement, AnchorNavigationProps>(\n ({ className, data, ...props }, ref) => {\n const activeId = useAnchorPosition(data.sectionIds?.map(item => item.id) || [])\n const containerRef = React.useRef<HTMLDivElement>(null)\n const sectionRefs = React.useRef<HTMLButtonElement[]>([])\n\n const autoScrollToActiveItem = React.useCallback((activeIdIndex: number) => {\n const curRef = sectionRefs.current[activeIdIndex]\n\n if (curRef && containerRef.current) {\n const container = containerRef.current\n const button = curRef\n const scrollLeft = button.offsetLeft - container.offsetWidth / 2 + button.offsetWidth / 2\n\n container.scrollTo({\n left: scrollLeft,\n behavior: 'smooth',\n })\n }\n }, [])\n\n return (\n <div ref={ref} className={cn('sticky top-0 z-10 w-full bg-white', className)} {...props}>\n <Container>\n <div\n ref={containerRef}\n className=\"anchor-navigation-content desktop:gap-6 flex items-center gap-4 overflow-x-auto [&::-webkit-scrollbar]:hidden\"\n >\n {data.sectionIds?.map((item, index) => (\n <button\n key={item.id}\n ref={el => {\n if (el) {\n sectionRefs.current[index] = el\n }\n }}\n onClick={() => {\n autoScrollToActiveItem(index)\n document.getElementById(item.id)?.scrollIntoView({ behavior: 'smooth' })\n }}\n className={cn(\n 'anchor-navigation-item desktop:py-4 shrink-0 border-b-4 border-b-transparent py-3 text-base font-bold text-[#4A4C56]',\n {\n 'border-b-brand text-[#080A0F]': activeId === item.id,\n }\n )}\n >\n {item.label}\n </button>\n ))}\n </div>\n </Container>\n </div>\n )\n }\n)\n\nAnchorNavigation.displayName = 'AnchorNavigation'\nexport default AnchorNavigation\n"],
5
- "mappings": "aAwDc,cAAAA,MAAA,oBAtDd,UAAYC,MAAW,QACvB,OAAS,MAAAC,MAAU,yBACnB,OAAS,aAAAC,MAAiB,gCAC1B,OAAOC,MAAuB,yBAsB9B,MAAMC,EAAmBJ,EAAM,WAC7B,CAAC,CAAE,UAAAK,EAAW,KAAAC,EAAM,GAAGC,CAAM,EAAGC,IAAQ,CACtC,MAAMC,EAAWN,EAAkBG,EAAK,YAAY,IAAII,GAAQA,EAAK,EAAE,GAAK,CAAC,CAAC,EACxEC,EAAeX,EAAM,OAAuB,IAAI,EAChDY,EAAcZ,EAAM,OAA4B,CAAC,CAAC,EAElDa,EAAyBb,EAAM,YAAac,GAA0B,CAC1E,MAAMC,EAASH,EAAY,QAAQE,CAAa,EAEhD,GAAIC,GAAUJ,EAAa,QAAS,CAClC,MAAMK,EAAYL,EAAa,QACzBM,EAASF,EACTG,EAAaD,EAAO,WAAaD,EAAU,YAAc,EAAIC,EAAO,YAAc,EAExFD,EAAU,SAAS,CACjB,KAAME,EACN,SAAU,QACZ,CAAC,CACH,CACF,EAAG,CAAC,CAAC,EAEL,OACEnB,EAAC,OAAI,IAAKS,EAAK,UAAWP,EAAG,oCAAqCI,CAAS,EAAI,GAAGE,EAChF,SAAAR,EAACG,EAAA,CACC,SAAAH,EAAC,OACC,IAAKY,EACL,UAAU,gHAET,SAAAL,EAAK,YAAY,IAAI,CAACI,EAAMS,IAC3BpB,EAAC,UAEC,IAAKqB,GAAM,CACLA,IACFR,EAAY,QAAQO,CAAK,EAAIC,EAEjC,EACA,QAAS,IAAM,CACbP,EAAuBM,CAAK,EAC5B,SAAS,eAAeT,EAAK,EAAE,GAAG,eAAe,CAAE,SAAU,QAAS,CAAC,CACzE,EACA,UAAWT,EACT,uHACA,CACE,gCAAiCQ,IAAaC,EAAK,EACrD,CACF,EAEC,SAAAA,EAAK,OAjBDA,EAAK,EAkBZ,CACD,EACH,EACF,EACF,CAEJ,CACF,EAEAN,EAAiB,YAAc,mBAC/B,IAAOiB,EAAQjB",
6
- "names": ["jsx", "React", "cn", "Container", "useAnchorPosition", "AnchorNavigation", "className", "data", "props", "ref", "activeId", "item", "containerRef", "sectionRefs", "autoScrollToActiveItem", "activeIdIndex", "curRef", "container", "button", "scrollLeft", "index", "el", "AnchorNavigation_default"]
4
+ "sourcesContent": ["'use client'\n\nimport * as React from 'react'\nimport { cn } from '../../helpers/utils.js'\nimport { Container } from '../../components/container.js'\nimport { cva, type VariantProps } from 'class-variance-authority'\nimport useAnchorPosition from './useAnchorPosition.js'\n\n/**\n * \u5BFC\u822A\u9879\u5BF9\u9F50\u65B9\u5411\u6837\u5F0F\u53D8\u4F53\n */\nconst anchorNavigationVariants = cva(\n 'anchor-navigation-content desktop:gap-6 flex items-center gap-4 overflow-x-auto [&::-webkit-scrollbar]:hidden',\n {\n variants: {\n alignment: {\n start: 'justify-start',\n center: 'justify-center',\n end: 'justify-end',\n },\n },\n defaultVariants: {\n alignment: 'start',\n },\n }\n)\n\n/**\n * \u5BB9\u5668\u4E3B\u9898\u6837\u5F0F\u53D8\u4F53\n */\nconst containerVariants = cva('sticky top-0 z-10 w-full', {\n variants: {\n theme: {\n light: 'bg-white',\n dark: 'bg-[#1E2024]',\n },\n },\n defaultVariants: {\n theme: 'light',\n },\n})\n\n/**\n * AnchorNavigation \u4E1A\u52A1\u7EC4\u4EF6\u6570\u636E\u63A5\u53E3\n */\nexport interface AnchorNavigationData {\n /** \u951A\u70B9\u5217\u8868 */\n sectionIds: {\n targetId: string\n label: string\n }[]\n /** \u5BFC\u822A\u9879\u6C34\u5E73\u5BF9\u9F50\u65B9\u5F0F */\n alignment?: 'start' | 'center' | 'end'\n /** \u4E3B\u9898\u6A21\u5F0F */\n theme?: 'light' | 'dark'\n}\n\nexport interface AnchorNavigationProps\n extends React.HTMLAttributes<HTMLDivElement>, VariantProps<typeof anchorNavigationVariants> {\n /** \u4E1A\u52A1\u6570\u636E */\n data: AnchorNavigationData\n}\n\n/**\n * AnchorNavigation - \u951A\u70B9\u5BFC\u822A\n *\n * @description \u951A\u70B9\u5BFC\u822A\n */\nconst AnchorNavigation = React.forwardRef<HTMLDivElement, AnchorNavigationProps>(\n ({ className, data, ...props }, ref) => {\n const { alignment = 'start', theme = 'light' } = data\n const activeId = useAnchorPosition(data.sectionIds?.map(item => item.targetId) || [])\n const containerRef = React.useRef<HTMLDivElement>(null)\n const sectionRefs = React.useRef<HTMLButtonElement[]>([])\n\n const autoScrollToActiveItem = React.useCallback((activeIdIndex: number) => {\n const curRef = sectionRefs.current[activeIdIndex]\n\n if (curRef && containerRef.current) {\n const container = containerRef.current\n const button = curRef\n const scrollLeft = button.offsetLeft - container.offsetWidth / 2 + button.offsetWidth / 2\n\n container.scrollTo({\n left: scrollLeft,\n behavior: 'smooth',\n })\n }\n }, [])\n\n return (\n <div ref={ref} className={cn(containerVariants({ theme }), className)} {...props}>\n <Container>\n <div ref={containerRef} className={cn(anchorNavigationVariants({ alignment }))}>\n {data.sectionIds?.map((item, index) => {\n const isActive = activeId === item.targetId\n const isDark = theme === 'dark'\n\n return (\n <button\n key={item.targetId}\n ref={el => {\n if (el) {\n sectionRefs.current[index] = el\n }\n }}\n onClick={() => {\n autoScrollToActiveItem(index)\n document.getElementById(item.targetId)?.scrollIntoView({ behavior: 'smooth' })\n }}\n className={cn(\n 'anchor-navigation-item desktop:py-4 shrink-0 border-b-4 border-b-transparent py-3 text-base font-bold',\n {\n // Light theme colors\n 'text-[#4A4C56]': !isDark && !isActive,\n 'border-b-brand text-[#080A0F]': !isDark && isActive,\n // Dark theme colors\n 'text-[#8A8D92]': isDark && !isActive,\n 'border-b-brand text-white': isDark && isActive,\n }\n )}\n >\n {item.label}\n </button>\n )\n })}\n </div>\n </Container>\n </div>\n )\n }\n)\n\nAnchorNavigation.displayName = 'AnchorNavigation'\nexport default AnchorNavigation\n"],
5
+ "mappings": "aAmGgB,cAAAA,MAAA,oBAjGhB,UAAYC,MAAW,QACvB,OAAS,MAAAC,MAAU,yBACnB,OAAS,aAAAC,MAAiB,gCAC1B,OAAS,OAAAC,MAA8B,2BACvC,OAAOC,MAAuB,yBAK9B,MAAMC,EAA2BF,EAC/B,gHACA,CACE,SAAU,CACR,UAAW,CACT,MAAO,gBACP,OAAQ,iBACR,IAAK,aACP,CACF,EACA,gBAAiB,CACf,UAAW,OACb,CACF,CACF,EAKMG,EAAoBH,EAAI,2BAA4B,CACxD,SAAU,CACR,MAAO,CACL,MAAO,WACP,KAAM,cACR,CACF,EACA,gBAAiB,CACf,MAAO,OACT,CACF,CAAC,EA4BKI,EAAmBP,EAAM,WAC7B,CAAC,CAAE,UAAAQ,EAAW,KAAAC,EAAM,GAAGC,CAAM,EAAGC,IAAQ,CACtC,KAAM,CAAE,UAAAC,EAAY,QAAS,MAAAC,EAAQ,OAAQ,EAAIJ,EAC3CK,EAAWV,EAAkBK,EAAK,YAAY,IAAIM,GAAQA,EAAK,QAAQ,GAAK,CAAC,CAAC,EAC9EC,EAAehB,EAAM,OAAuB,IAAI,EAChDiB,EAAcjB,EAAM,OAA4B,CAAC,CAAC,EAElDkB,EAAyBlB,EAAM,YAAamB,GAA0B,CAC1E,MAAMC,EAASH,EAAY,QAAQE,CAAa,EAEhD,GAAIC,GAAUJ,EAAa,QAAS,CAClC,MAAMK,EAAYL,EAAa,QACzBM,EAASF,EACTG,EAAaD,EAAO,WAAaD,EAAU,YAAc,EAAIC,EAAO,YAAc,EAExFD,EAAU,SAAS,CACjB,KAAME,EACN,SAAU,QACZ,CAAC,CACH,CACF,EAAG,CAAC,CAAC,EAEL,OACExB,EAAC,OAAI,IAAKY,EAAK,UAAWV,EAAGK,EAAkB,CAAE,MAAAO,CAAM,CAAC,EAAGL,CAAS,EAAI,GAAGE,EACzE,SAAAX,EAACG,EAAA,CACC,SAAAH,EAAC,OAAI,IAAKiB,EAAc,UAAWf,EAAGI,EAAyB,CAAE,UAAAO,CAAU,CAAC,CAAC,EAC1E,SAAAH,EAAK,YAAY,IAAI,CAACM,EAAMS,IAAU,CACrC,MAAMC,EAAWX,IAAaC,EAAK,SAC7BW,EAASb,IAAU,OAEzB,OACEd,EAAC,UAEC,IAAK4B,GAAM,CACLA,IACFV,EAAY,QAAQO,CAAK,EAAIG,EAEjC,EACA,QAAS,IAAM,CACbT,EAAuBM,CAAK,EAC5B,SAAS,eAAeT,EAAK,QAAQ,GAAG,eAAe,CAAE,SAAU,QAAS,CAAC,CAC/E,EACA,UAAWd,EACT,wGACA,CAEE,iBAAkB,CAACyB,GAAU,CAACD,EAC9B,gCAAiC,CAACC,GAAUD,EAE5C,iBAAkBC,GAAU,CAACD,EAC7B,4BAA6BC,GAAUD,CACzC,CACF,EAEC,SAAAV,EAAK,OAtBDA,EAAK,QAuBZ,CAEJ,CAAC,EACH,EACF,EACF,CAEJ,CACF,EAEAR,EAAiB,YAAc,mBAC/B,IAAOqB,EAAQrB",
6
+ "names": ["jsx", "React", "cn", "Container", "cva", "useAnchorPosition", "anchorNavigationVariants", "containerVariants", "AnchorNavigation", "className", "data", "props", "ref", "alignment", "theme", "activeId", "item", "containerRef", "sectionRefs", "autoScrollToActiveItem", "activeIdIndex", "curRef", "container", "button", "scrollLeft", "index", "isActive", "isDark", "el", "AnchorNavigation_default"]
7
7
  }
@@ -1,16 +1,37 @@
1
1
  import * as React from 'react';
2
+ export type EventScheduleSemanticName = 'root' | 'timeline' | 'eventScheduleCard';
3
+ /**
4
+ * 响应式背景图片配置
5
+ */
6
+ export interface ResponsiveBackgroundImage {
7
+ /** 移动端图片 (<1024px) */
8
+ mobile?: string;
9
+ /** 笔记本图片 (1025-1440px) */
10
+ laptop?: string;
11
+ /** 桌面图片 (1441-1920px) */
12
+ desktop?: string;
13
+ /** 超大桌面图片 (≥1921px) */
14
+ lgDesktop?: string;
15
+ }
16
+ /**
17
+ * 状态化背景图片配置
18
+ */
19
+ export interface StateBackgroundImage {
20
+ /** 激活状态的背景图片 */
21
+ active: string | ResponsiveBackgroundImage;
22
+ /** 非激活状态的背景图片 */
23
+ inactive: string | ResponsiveBackgroundImage;
24
+ }
2
25
  /**
3
26
  * 活动日程项数据接口
4
27
  */
5
28
  export interface EventScheduleItem {
6
29
  /** 标题 */
7
30
  title: string;
8
- /** 日期 */
9
- date: string;
10
- /** 是否激活状态 */
11
- active: boolean;
12
- /** 背景图片 URL */
13
- backgroundImage?: string;
31
+ /** 开始日期(ISO 8601 格式或任何 dayjs 支持的格式,如 '2024-12-01') */
32
+ startDate: string;
33
+ /** 结束日期(ISO 8601 格式或任何 dayjs 支持的格式,如 '2024-12-31') */
34
+ endDate: string;
14
35
  /** 详细信息列表 */
15
36
  items: {
16
37
  /** 图标 (SVG 字符串或 URL) */
@@ -25,10 +46,58 @@ export interface EventScheduleItem {
25
46
  export interface EventScheduleData {
26
47
  /** 日程列表 */
27
48
  scheduleList: EventScheduleItem[];
49
+ /**
50
+ * 背景图片配置,支持响应式图片和状态化图片
51
+ * 可以传入:
52
+ * 1. 字符串(单一图片URL)
53
+ * 2. ResponsiveBackgroundImage(多尺寸图片)
54
+ * 3. StateBackgroundImage(激活/非激活状态图片)
55
+ *
56
+ * @example
57
+ * // 单一图片
58
+ * backgroundImage: "https://example.com/image.jpg"
59
+ *
60
+ * @example
61
+ * // 响应式图片
62
+ * backgroundImage: {
63
+ * mobile: "https://example.com/mobile.jpg",
64
+ * laptop: "https://example.com/laptop.jpg",
65
+ * desktop: "https://example.com/desktop.jpg",
66
+ * lgDesktop: "https://example.com/lg-desktop.jpg"
67
+ * }
68
+ *
69
+ * @example
70
+ * // 状态化图片(单一URL)
71
+ * backgroundImage: {
72
+ * active: "https://example.com/active.jpg",
73
+ * inactive: "https://example.com/inactive.jpg"
74
+ * }
75
+ *
76
+ * @example
77
+ * // 状态化 + 响应式图片
78
+ * backgroundImage: {
79
+ * active: {
80
+ * mobile: "https://example.com/active-mobile.jpg",
81
+ * laptop: "https://example.com/active-laptop.jpg",
82
+ * desktop: "https://example.com/active-desktop.jpg",
83
+ * lgDesktop: "https://example.com/active-lg-desktop.jpg"
84
+ * },
85
+ * inactive: {
86
+ * mobile: "https://example.com/inactive-mobile.jpg",
87
+ * laptop: "https://example.com/inactive-laptop.jpg",
88
+ * desktop: "https://example.com/inactive-desktop.jpg",
89
+ * lgDesktop: "https://example.com/inactive-lg-desktop.jpg"
90
+ * }
91
+ * }
92
+ */
93
+ backgroundImage?: string | ResponsiveBackgroundImage | StateBackgroundImage;
94
+ /** 是否显示时间轴,默认为 true */
95
+ showTimeline?: boolean;
28
96
  }
29
97
  export interface EventScheduleProps extends React.HTMLAttributes<HTMLDivElement> {
30
98
  /** 业务数据 */
31
99
  data: EventScheduleData;
100
+ classNames?: Partial<Record<EventScheduleSemanticName, string>>;
32
101
  }
33
102
  /**
34
103
  * EventSchedule - 活动日程组件
@@ -1,2 +1,2 @@
1
- "use client";import{jsx as e,jsxs as i}from"react/jsx-runtime";import*as o from"react";import{cn as a}from"../../helpers/index.js";import{Text as m,Picture as r}from"../../components/index.js";import{Swiper as v,SwiperSlide as p}from"swiper/react";const u=({active:t})=>i("div",{className:"relative flex h-2 flex-1 items-center justify-center",children:[e("div",{className:a("h-2 w-full",{"bg-[#F6CD4E]":t,"bg-[#EAEAEC]":!t})}),e("div",{className:"absolute inset-0 flex items-center justify-center",children:e("div",{className:a("size-4 rounded-full border-2 transition-colors",{"border-[#F6CD4E] bg-[#F6CD4E]":t,"border-[#EAEAEC] bg-[#EAEAEC]":!t})})})]}),b=({scheduleList:t})=>e("div",{className:"relative flex h-4 w-full items-center",children:e("div",{className:"flex h-2 w-full items-center gap-4 bg-[#EAEAEC]",children:t.map(l=>e(u,{active:l.active},l.date))})}),f=({item:t})=>i("div",{className:a("rounded-box laptop:h-[160px] relative flex h-[120px] min-w-0 flex-1 flex-col justify-between gap-2 overflow-hidden bg-[#F4E8BC] p-4"),children:[t.backgroundImage&&e("div",{className:"pointer-events-none absolute inset-0 overflow-hidden",children:e(r,{source:t.backgroundImage,alt:"",className:"absolute right-0 top-[9.69%] h-[91.29%] w-auto max-w-none"})}),e("div",{className:"relative z-10",children:e("h2",{className:a("desktop:text-[24px] text-[20px] font-bold leading-[1.2] text-[#080A0F]"),children:t.title})}),e("div",{className:"relative z-10 flex flex-col gap-0.5",children:t.items.map((l,s)=>i("div",{className:"flex items-center gap-2",children:[l.icon&&e("div",{className:"desktop:size-6 size-5 shrink-0",children:e(r,{source:l.icon,alt:"",className:"size-full"})}),e(m,{html:l.label,className:a("desktop:text-[18px] flex-1 text-[14px] font-bold leading-[1.4] text-[#080A0F]")})]},s))})]}),n=o.forwardRef(({className:t,data:l,...s},c)=>e("div",{ref:c,className:a("desktop:px-16 laptop:px-16 tablet:px-8 w-full px-4",t),...s,children:e("div",{className:"flex w-full flex-col gap-4",children:e(v,{spaceBetween:12,slidesPerView:1,className:"w-full",children:l.scheduleList.map(d=>e(p,{children:e(f,{item:d})},d.date))})})}));n.displayName="EventSchedule";var g=n;export{g as default};
1
+ "use client";import{jsx as i,jsxs as o}from"react/jsx-runtime";import*as d from"react";import{cn as l}from"../../helpers/index.js";import{Text as w,Picture as h}from"../../components/index.js";import{Swiper as x,SwiperSlide as S}from"swiper/react";import u from"dayjs";const B=(e,t)=>{const n=u(),a=u(e).startOf("day"),s=u(t).endOf("day");return n.isAfter(a)&&n.isBefore(s)},E=e=>B(e.startDate,e.endDate),N=({active:e,className:t})=>o("div",{className:l("relative my-1 flex h-2 flex-1 items-center justify-center",t),children:[i("div",{className:l("h-2 w-full ",{"bg-[#F6CD4E] rounded-full":e,"bg-[#EAEAEC]":!e})}),i("div",{className:"absolute inset-0 flex items-center justify-center",children:i("div",{className:l("size-4 rounded-full border-2 transition-colors",{"border-[#F6CD4E] bg-[#F6CD4E]":e,"border-[#EAEAEC] bg-[#EAEAEC]":!e})})})]}),k=e=>typeof e=="object"&&("active"in e||"inactive"in e),g=e=>{if(!e)return;if(typeof e=="string")return e;const{mobile:t,laptop:n,desktop:a,lgDesktop:s}=e,r=[];return s&&r.push(s),a&&r.push(`${a} 1920`),n&&r.push(`${n} 1440`),t&&r.push(`${t} 1024`),r.length>0?r.join(", "):void 0},b=(e,t)=>{if(e){if(k(e)){const n=t?e.active:e.inactive;return g(n)}return g(e)}},I=({active:e,item:t,backgroundImage:n,className:a})=>{const s=d.useMemo(()=>b(n,e),[n,e]);return o("div",{className:l("rounded-box laptop:h-[160px] relative flex h-[120px] min-w-0 flex-1 flex-col justify-between gap-2 overflow-hidden",a),children:[i(h,{source:s,alt:"",className:"absolute inset-0 z-10",imgClassName:"h-full object-cover"}),o("div",{className:"relative z-20 size-full p-4",children:[i("h2",{className:l("desktop:text-[24px] text-[20px] font-bold leading-[1.2] text-[#080A0F]"),dangerouslySetInnerHTML:{__html:t.title}}),i("div",{className:"flex flex-col gap-0.5",children:t.items.map((r,c)=>o("div",{className:"flex items-center gap-2",children:[r.icon&&i("div",{className:"desktop:size-6 size-5 shrink-0",children:i("img",{src:r.icon,alt:"",className:"size-full"})}),i(w,{html:r.label,className:l("desktop:text-[18px] flex-1 text-[14px] font-bold leading-[1.4] text-[#080A0F]")})]},c))})]})]})},f=d.forwardRef(({classNames:e={},data:t,...n},a)=>{const s=d.useMemo(()=>t?.scheduleList?.length||2,[t?.scheduleList]),r=d.useMemo(()=>{switch(s){case 2:return{0:{slidesPerView:1.17,spaceBetween:12},768:{slidesPerView:2},1024:{spaceBetween:16},1440:{spaceBetween:16,slidesPerView:2}};case 3:return{0:{slidesPerView:1.17,spaceBetween:12},768:{slidesPerView:2.4},1024:{slidesPerView:s,spaceBetween:16},1440:{spaceBetween:16,slidesPerView:s}};case 4:return{0:{slidesPerView:1.17,spaceBetween:12},768:{slidesPerView:2.4},1024:{slidesPerView:3.2,spaceBetween:16},1440:{slidesPerView:s}};default:return{0:{slidesPerView:1.17,spaceBetween:12},768:{slidesPerView:1},1024:{slidesPerView:s,spaceBetween:16},1440:{slidesPerView:s}}}},[s]),c=t.showTimeline!==!1;return i("div",{ref:a,className:l("desktop:px-16 laptop:px-16 tablet:px-8 w-full overflow-hidden px-4",e?.root),...n,children:i("div",{className:"flex w-full flex-col gap-4",children:i(x,{breakpoints:r,className:"w-full !overflow-visible",children:t.scheduleList.map((p,v)=>{const m=E(p);return o(S,{children:[c&&i(N,{active:m}),i(I,{active:m,className:c?"mt-4":"",item:p,backgroundImage:t.backgroundImage})]},"SwiperSlideItem"+v)})})})})});f.displayName="EventSchedule";var D=f;export{D as default};
2
2
  //# sourceMappingURL=index.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/biz-components/EventSchedule/index.tsx"],
4
- "sourcesContent": ["'use client'\n\nimport * as React from 'react'\nimport { cn } from '../../helpers/index.js'\nimport { Text, Picture } from '../../components/index.js'\nimport { Swiper, SwiperSlide } from 'swiper/react'\n\n/**\n * \u6D3B\u52A8\u65E5\u7A0B\u9879\u6570\u636E\u63A5\u53E3\n */\nexport interface EventScheduleItem {\n /** \u6807\u9898 */\n title: string\n /** \u65E5\u671F */\n date: string\n /** \u662F\u5426\u6FC0\u6D3B\u72B6\u6001 */\n active: boolean\n /** \u80CC\u666F\u56FE\u7247 URL */\n backgroundImage?: string\n /** \u8BE6\u7EC6\u4FE1\u606F\u5217\u8868 */\n items: {\n /** \u56FE\u6807 (SVG \u5B57\u7B26\u4E32\u6216 URL) */\n icon: React.ReactNode\n /** \u6587\u672C\u5185\u5BB9 */\n label: string\n }[]\n}\n\n/**\n * EventSchedule \u4E1A\u52A1\u7EC4\u4EF6\u6570\u636E\u63A5\u53E3\n */\nexport interface EventScheduleData {\n /** \u65E5\u7A0B\u5217\u8868 */\n scheduleList: EventScheduleItem[]\n}\n\nexport interface EventScheduleProps extends React.HTMLAttributes<HTMLDivElement> {\n /** \u4E1A\u52A1\u6570\u636E */\n data: EventScheduleData\n}\n\n/**\n * \u65F6\u95F4\u8F74\u8282\u70B9\u7EC4\u4EF6\n */\nconst TimelineNode = ({ active }: { active: boolean }) => {\n return (\n <div className=\"relative flex h-2 flex-1 items-center justify-center\">\n {/* \u8FDB\u5EA6\u6761 */}\n <div\n className={cn('h-2 w-full', {\n 'bg-[#F6CD4E]': active,\n 'bg-[#EAEAEC]': !active,\n })}\n />\n {/* \u65F6\u95F4\u8282\u70B9 */}\n <div className=\"absolute inset-0 flex items-center justify-center\">\n <div\n className={cn('size-4 rounded-full border-2 transition-colors', {\n 'border-[#F6CD4E] bg-[#F6CD4E]': active,\n 'border-[#EAEAEC] bg-[#EAEAEC]': !active,\n })}\n />\n </div>\n </div>\n )\n}\n\n/**\n * \u65F6\u95F4\u8F74\u7EC4\u4EF6\n */\nconst Timeline = ({ scheduleList }: { scheduleList: EventScheduleItem[] }) => {\n return (\n <div className=\"relative flex h-4 w-full items-center\">\n <div className=\"flex h-2 w-full items-center gap-4 bg-[#EAEAEC]\">\n {scheduleList.map(item => (\n <TimelineNode key={item.date} active={item.active} />\n ))}\n </div>\n </div>\n )\n}\n\n/**\n * \u6D3B\u52A8\u65E5\u7A0B\u5361\u7247\u7EC4\u4EF6\n */\nconst EventScheduleCard = ({ item }: { item: EventScheduleItem }) => {\n return (\n <div\n className={cn(\n 'rounded-box laptop:h-[160px] relative flex h-[120px] min-w-0 flex-1 flex-col justify-between gap-2 overflow-hidden bg-[#F4E8BC] p-4'\n )}\n >\n {/* \u80CC\u666F\u88C5\u9970\u56FE */}\n {item.backgroundImage && (\n <div className=\"pointer-events-none absolute inset-0 overflow-hidden\">\n <Picture\n source={item.backgroundImage}\n alt=\"\"\n className=\"absolute right-0 top-[9.69%] h-[91.29%] w-auto max-w-none\"\n />\n </div>\n )}\n\n {/* \u5185\u5BB9\u533A\u57DF */}\n <div className=\"relative z-10\">\n <h2 className={cn('desktop:text-[24px] text-[20px] font-bold leading-[1.2] text-[#080A0F]')}>{item.title}</h2>\n </div>\n\n {/* \u8BE6\u7EC6\u4FE1\u606F\u5217\u8868 */}\n <div className=\"relative z-10 flex flex-col gap-0.5\">\n {item.items.map((detail, index) => (\n <div key={index} className=\"flex items-center gap-2\">\n {/* \u56FE\u6807 */}\n {detail.icon && (\n <div className=\"desktop:size-6 size-5 shrink-0\">\n <Picture source={detail.icon as string} alt=\"\" className=\"size-full\" />\n </div>\n )}\n {/* \u6587\u672C */}\n <Text\n html={detail.label}\n className={cn('desktop:text-[18px] flex-1 text-[14px] font-bold leading-[1.4] text-[#080A0F]')}\n />\n </div>\n ))}\n </div>\n </div>\n )\n}\n\n/**\n * EventSchedule - \u6D3B\u52A8\u65E5\u7A0B\u7EC4\u4EF6\n *\n * @description \u663E\u793A\u6D3B\u52A8\u65E5\u7A0B\u65F6\u95F4\u8F74\u548C\u6D3B\u52A8\u5361\u7247\u5217\u8868\n */\nconst EventSchedule = React.forwardRef<HTMLDivElement, EventScheduleProps>(({ className, data, ...props }, ref) => {\n return (\n <div ref={ref} className={cn('desktop:px-16 laptop:px-16 tablet:px-8 w-full px-4', className)} {...props}>\n <div className=\"flex w-full flex-col gap-4\">\n {/* \u65F6\u95F4\u8F74 */}\n {/* <Timeline scheduleList={data.scheduleList} /> */}\n <Swiper spaceBetween={12} slidesPerView={1} className=\"w-full\">\n {data.scheduleList.map(item => (\n <SwiperSlide key={item.date}>\n <EventScheduleCard item={item} />\n </SwiperSlide>\n ))}\n </Swiper>\n </div>\n </div>\n )\n})\n\nEventSchedule.displayName = 'EventSchedule'\nexport default EventSchedule\n"],
5
- "mappings": "aA8CI,OAEE,OAAAA,EAFF,QAAAC,MAAA,oBA5CJ,UAAYC,MAAW,QACvB,OAAS,MAAAC,MAAU,yBACnB,OAAS,QAAAC,EAAM,WAAAC,MAAe,4BAC9B,OAAS,UAAAC,EAAQ,eAAAC,MAAmB,eAuCpC,MAAMC,EAAe,CAAC,CAAE,OAAAC,CAAO,IAE3BR,EAAC,OAAI,UAAU,uDAEb,UAAAD,EAAC,OACC,UAAWG,EAAG,aAAc,CAC1B,eAAgBM,EAChB,eAAgB,CAACA,CACnB,CAAC,EACH,EAEAT,EAAC,OAAI,UAAU,oDACb,SAAAA,EAAC,OACC,UAAWG,EAAG,iDAAkD,CAC9D,gCAAiCM,EACjC,gCAAiC,CAACA,CACpC,CAAC,EACH,EACF,GACF,EAOEC,EAAW,CAAC,CAAE,aAAAC,CAAa,IAE7BX,EAAC,OAAI,UAAU,wCACb,SAAAA,EAAC,OAAI,UAAU,kDACZ,SAAAW,EAAa,IAAIC,GAChBZ,EAACQ,EAAA,CAA6B,OAAQI,EAAK,QAAxBA,EAAK,IAA2B,CACpD,EACH,EACF,EAOEC,EAAoB,CAAC,CAAE,KAAAD,CAAK,IAE9BX,EAAC,OACC,UAAWE,EACT,qIACF,EAGC,UAAAS,EAAK,iBACJZ,EAAC,OAAI,UAAU,uDACb,SAAAA,EAACK,EAAA,CACC,OAAQO,EAAK,gBACb,IAAI,GACJ,UAAU,4DACZ,EACF,EAIFZ,EAAC,OAAI,UAAU,gBACb,SAAAA,EAAC,MAAG,UAAWG,EAAG,wEAAwE,EAAI,SAAAS,EAAK,MAAM,EAC3G,EAGAZ,EAAC,OAAI,UAAU,sCACZ,SAAAY,EAAK,MAAM,IAAI,CAACE,EAAQC,IACvBd,EAAC,OAAgB,UAAU,0BAExB,UAAAa,EAAO,MACNd,EAAC,OAAI,UAAU,iCACb,SAAAA,EAACK,EAAA,CAAQ,OAAQS,EAAO,KAAgB,IAAI,GAAG,UAAU,YAAY,EACvE,EAGFd,EAACI,EAAA,CACC,KAAMU,EAAO,MACb,UAAWX,EAAG,+EAA+E,EAC/F,IAXQY,CAYV,CACD,EACH,GACF,EASEC,EAAgBd,EAAM,WAA+C,CAAC,CAAE,UAAAe,EAAW,KAAAC,EAAM,GAAGC,CAAM,EAAGC,IAEvGpB,EAAC,OAAI,IAAKoB,EAAK,UAAWjB,EAAG,qDAAsDc,CAAS,EAAI,GAAGE,EACjG,SAAAnB,EAAC,OAAI,UAAU,6BAGb,SAAAA,EAACM,EAAA,CAAO,aAAc,GAAI,cAAe,EAAG,UAAU,SACnD,SAAAY,EAAK,aAAa,IAAIN,GACrBZ,EAACO,EAAA,CACC,SAAAP,EAACa,EAAA,CAAkB,KAAMD,EAAM,GADfA,EAAK,IAEvB,CACD,EACH,EACF,EACF,CAEH,EAEDI,EAAc,YAAc,gBAC5B,IAAOK,EAAQL",
6
- "names": ["jsx", "jsxs", "React", "cn", "Text", "Picture", "Swiper", "SwiperSlide", "TimelineNode", "active", "Timeline", "scheduleList", "item", "EventScheduleCard", "detail", "index", "EventSchedule", "className", "data", "props", "ref", "EventSchedule_default"]
4
+ "sourcesContent": ["'use client'\n\nimport * as React from 'react'\nimport { cn } from '../../helpers/index.js'\nimport { Text, Picture } from '../../components/index.js'\nimport { Swiper, SwiperSlide } from 'swiper/react'\nimport dayjs from 'dayjs'\n\nexport type EventScheduleSemanticName = 'root' | 'timeline' | 'eventScheduleCard'\n\n/**\n * \u54CD\u5E94\u5F0F\u80CC\u666F\u56FE\u7247\u914D\u7F6E\n */\nexport interface ResponsiveBackgroundImage {\n /** \u79FB\u52A8\u7AEF\u56FE\u7247 (<1024px) */\n mobile?: string\n /** \u7B14\u8BB0\u672C\u56FE\u7247 (1025-1440px) */\n laptop?: string\n /** \u684C\u9762\u56FE\u7247 (1441-1920px) */\n desktop?: string\n /** \u8D85\u5927\u684C\u9762\u56FE\u7247 (\u22651921px) */\n lgDesktop?: string\n}\n\n/**\n * \u72B6\u6001\u5316\u80CC\u666F\u56FE\u7247\u914D\u7F6E\n */\nexport interface StateBackgroundImage {\n /** \u6FC0\u6D3B\u72B6\u6001\u7684\u80CC\u666F\u56FE\u7247 */\n active: string | ResponsiveBackgroundImage\n /** \u975E\u6FC0\u6D3B\u72B6\u6001\u7684\u80CC\u666F\u56FE\u7247 */\n inactive: string | ResponsiveBackgroundImage\n}\n\n/**\n * \u6D3B\u52A8\u65E5\u7A0B\u9879\u6570\u636E\u63A5\u53E3\n */\nexport interface EventScheduleItem {\n /** \u6807\u9898 */\n title: string\n /** \u5F00\u59CB\u65E5\u671F\uFF08ISO 8601 \u683C\u5F0F\u6216\u4EFB\u4F55 dayjs \u652F\u6301\u7684\u683C\u5F0F\uFF0C\u5982 '2024-12-01'\uFF09 */\n startDate: string\n /** \u7ED3\u675F\u65E5\u671F\uFF08ISO 8601 \u683C\u5F0F\u6216\u4EFB\u4F55 dayjs \u652F\u6301\u7684\u683C\u5F0F\uFF0C\u5982 '2024-12-31'\uFF09 */\n endDate: string\n /** \u8BE6\u7EC6\u4FE1\u606F\u5217\u8868 */\n items: {\n /** \u56FE\u6807 (SVG \u5B57\u7B26\u4E32\u6216 URL) */\n icon: React.ReactNode\n /** \u6587\u672C\u5185\u5BB9 */\n label: string\n }[]\n}\n\n/**\n * EventSchedule \u4E1A\u52A1\u7EC4\u4EF6\u6570\u636E\u63A5\u53E3\n */\nexport interface EventScheduleData {\n /** \u65E5\u7A0B\u5217\u8868 */\n scheduleList: EventScheduleItem[]\n /**\n * \u80CC\u666F\u56FE\u7247\u914D\u7F6E\uFF0C\u652F\u6301\u54CD\u5E94\u5F0F\u56FE\u7247\u548C\u72B6\u6001\u5316\u56FE\u7247\n * \u53EF\u4EE5\u4F20\u5165\uFF1A\n * 1. \u5B57\u7B26\u4E32\uFF08\u5355\u4E00\u56FE\u7247URL\uFF09\n * 2. ResponsiveBackgroundImage\uFF08\u591A\u5C3A\u5BF8\u56FE\u7247\uFF09\n * 3. StateBackgroundImage\uFF08\u6FC0\u6D3B/\u975E\u6FC0\u6D3B\u72B6\u6001\u56FE\u7247\uFF09\n *\n * @example\n * // \u5355\u4E00\u56FE\u7247\n * backgroundImage: \"https://example.com/image.jpg\"\n *\n * @example\n * // \u54CD\u5E94\u5F0F\u56FE\u7247\n * backgroundImage: {\n * mobile: \"https://example.com/mobile.jpg\",\n * laptop: \"https://example.com/laptop.jpg\",\n * desktop: \"https://example.com/desktop.jpg\",\n * lgDesktop: \"https://example.com/lg-desktop.jpg\"\n * }\n *\n * @example\n * // \u72B6\u6001\u5316\u56FE\u7247\uFF08\u5355\u4E00URL\uFF09\n * backgroundImage: {\n * active: \"https://example.com/active.jpg\",\n * inactive: \"https://example.com/inactive.jpg\"\n * }\n *\n * @example\n * // \u72B6\u6001\u5316 + \u54CD\u5E94\u5F0F\u56FE\u7247\n * backgroundImage: {\n * active: {\n * mobile: \"https://example.com/active-mobile.jpg\",\n * laptop: \"https://example.com/active-laptop.jpg\",\n * desktop: \"https://example.com/active-desktop.jpg\",\n * lgDesktop: \"https://example.com/active-lg-desktop.jpg\"\n * },\n * inactive: {\n * mobile: \"https://example.com/inactive-mobile.jpg\",\n * laptop: \"https://example.com/inactive-laptop.jpg\",\n * desktop: \"https://example.com/inactive-desktop.jpg\",\n * lgDesktop: \"https://example.com/inactive-lg-desktop.jpg\"\n * }\n * }\n */\n backgroundImage?: string | ResponsiveBackgroundImage | StateBackgroundImage\n /** \u662F\u5426\u663E\u793A\u65F6\u95F4\u8F74\uFF0C\u9ED8\u8BA4\u4E3A true */\n showTimeline?: boolean\n}\n\nexport interface EventScheduleProps extends React.HTMLAttributes<HTMLDivElement> {\n /** \u4E1A\u52A1\u6570\u636E */\n data: EventScheduleData\n classNames?: Partial<Record<EventScheduleSemanticName, string>>\n}\n\n/**\n * \u5224\u65AD\u5F53\u524D\u65F6\u95F4\u662F\u5426\u5728\u6307\u5B9A\u7684\u65F6\u95F4\u533A\u95F4\u5185\n * @param startDate \u5F00\u59CB\u65E5\u671F\n * @param endDate \u7ED3\u675F\u65E5\u671F\n * @returns \u662F\u5426\u5728\u533A\u95F4\u5185\n */\nconst isInTimeRange = (startDate: string, endDate: string): boolean => {\n const now = dayjs()\n const start = dayjs(startDate).startOf('day')\n const end = dayjs(endDate).endOf('day')\n return now.isAfter(start) && now.isBefore(end)\n}\n\n/**\n * \u83B7\u53D6\u6D3B\u52A8\u9879\u7684\u6FC0\u6D3B\u72B6\u6001\n * @param item \u6D3B\u52A8\u9879\n * @returns \u662F\u5426\u6FC0\u6D3B\n */\nconst getItemActiveStatus = (item: EventScheduleItem): boolean => {\n // \u5426\u5219\u6839\u636E\u65F6\u95F4\u533A\u95F4\u81EA\u52A8\u5224\u65AD\n return isInTimeRange(item.startDate, item.endDate)\n}\n\n/**\n * \u65F6\u95F4\u8F74\u8282\u70B9\u7EC4\u4EF6\n */\nconst TimelineNode = ({ active, className }: { active: boolean; className?: string }) => {\n return (\n <div className={cn('relative my-1 flex h-2 flex-1 items-center justify-center', className)}>\n {/* \u8FDB\u5EA6\u6761 */}\n <div\n className={cn('h-2 w-full ', {\n 'bg-[#F6CD4E] rounded-full': active,\n 'bg-[#EAEAEC]': !active,\n })}\n />\n {/* \u65F6\u95F4\u8282\u70B9 */}\n <div className=\"absolute inset-0 flex items-center justify-center\">\n <div\n className={cn('size-4 rounded-full border-2 transition-colors', {\n 'border-[#F6CD4E] bg-[#F6CD4E]': active,\n 'border-[#EAEAEC] bg-[#EAEAEC]': !active,\n })}\n />\n </div>\n </div>\n )\n}\n\n/**\n * \u5224\u65AD\u662F\u5426\u4E3A\u72B6\u6001\u5316\u80CC\u666F\u56FE\u7247\u914D\u7F6E\n * @param obj \u5F85\u68C0\u67E5\u7684\u5BF9\u8C61\n * @returns \u662F\u5426\u4E3AStateBackgroundImage\u7C7B\u578B\n */\nconst isStateBackgroundImage = (\n obj: string | ResponsiveBackgroundImage | StateBackgroundImage\n): obj is StateBackgroundImage => {\n return typeof obj === 'object' && ('active' in obj || 'inactive' in obj)\n}\n\n/**\n * \u5C06\u54CD\u5E94\u5F0F\u80CC\u666F\u56FE\u7247\u5BF9\u8C61\u8F6C\u6362\u4E3APicture\u7EC4\u4EF6\u6240\u9700\u7684\u5B57\u7B26\u4E32\u683C\u5F0F\n * @param backgroundImage \u80CC\u666F\u56FE\u7247\u914D\u7F6E\n * @returns Picture\u7EC4\u4EF6\u53EF\u7528\u7684source\u5B57\u7B26\u4E32\n */\nconst convertResponsiveImageToString = (backgroundImage: string | ResponsiveBackgroundImage): string | undefined => {\n if (!backgroundImage) return undefined\n if (typeof backgroundImage === 'string') return backgroundImage\n\n const { mobile, laptop, desktop, lgDesktop } = backgroundImage\n const parts: string[] = []\n\n // \u9ED8\u8BA4\u56FE\u7247\uFF08\u6700\u5927\u5C3A\u5BF8\uFF09\u653E\u5728\u6700\u524D\u9762\uFF0C\u4E0D\u9700\u8981\u65AD\u70B9\n if (lgDesktop) parts.push(lgDesktop)\n\n // \u6309\u65AD\u70B9\u4ECE\u5927\u5230\u5C0F\u6DFB\u52A0\n if (desktop) parts.push(`${desktop} 1920`)\n if (laptop) parts.push(`${laptop} 1440`)\n if (mobile) parts.push(`${mobile} 1024`)\n\n return parts.length > 0 ? parts.join(', ') : undefined\n}\n\n/**\n * \u6839\u636E\u6FC0\u6D3B\u72B6\u6001\u83B7\u53D6\u5BF9\u5E94\u7684\u80CC\u666F\u56FE\u7247\n * @param backgroundImage \u80CC\u666F\u56FE\u7247\u914D\u7F6E\n * @param isActive \u662F\u5426\u6FC0\u6D3B\u72B6\u6001\n * @returns Picture\u7EC4\u4EF6\u53EF\u7528\u7684source\u5B57\u7B26\u4E32\n */\nconst formatBackgroundImage = (\n backgroundImage: string | ResponsiveBackgroundImage | StateBackgroundImage | undefined,\n isActive: boolean\n): string | undefined => {\n if (!backgroundImage) return undefined\n\n // \u5982\u679C\u662F\u72B6\u6001\u5316\u80CC\u666F\u56FE\u7247\uFF0C\u6839\u636E\u6FC0\u6D3B\u72B6\u6001\u9009\u62E9\u5BF9\u5E94\u7684\u56FE\u7247\n if (isStateBackgroundImage(backgroundImage)) {\n const stateImage = isActive ? backgroundImage.active : backgroundImage.inactive\n return convertResponsiveImageToString(stateImage)\n }\n\n // \u5426\u5219\u76F4\u63A5\u8F6C\u6362\n return convertResponsiveImageToString(backgroundImage)\n}\n\n/**\n * \u6D3B\u52A8\u65E5\u7A0B\u5361\u7247\u7EC4\u4EF6\n */\nconst EventScheduleCard = ({\n active,\n item,\n backgroundImage,\n className,\n}: {\n active: boolean\n item: EventScheduleItem\n backgroundImage: string | ResponsiveBackgroundImage | StateBackgroundImage | undefined\n className?: string\n}) => {\n const pictureSource = React.useMemo(() => {\n return formatBackgroundImage(backgroundImage, active)\n }, [backgroundImage, active])\n\n return (\n <div\n className={cn(\n 'rounded-box laptop:h-[160px] relative flex h-[120px] min-w-0 flex-1 flex-col justify-between gap-2 overflow-hidden',\n className\n )}\n >\n <Picture source={pictureSource} alt=\"\" className=\"absolute inset-0 z-10\" imgClassName=\"h-full object-cover\" />\n {/* \u5185\u5BB9\u533A\u57DF */}\n <div className=\"relative z-20 size-full p-4\">\n <h2\n className={cn('desktop:text-[24px] text-[20px] font-bold leading-[1.2] text-[#080A0F]')}\n dangerouslySetInnerHTML={{ __html: item.title }}\n />\n {/* \u8BE6\u7EC6\u4FE1\u606F\u5217\u8868 */}\n <div className=\"flex flex-col gap-0.5\">\n {item.items.map((detail, index) => (\n <div key={index} className=\"flex items-center gap-2\">\n {/* \u56FE\u6807 */}\n {detail.icon && (\n <div className=\"desktop:size-6 size-5 shrink-0\">\n <img src={detail.icon as string} alt=\"\" className=\"size-full\" />\n </div>\n )}\n {/* \u6587\u672C */}\n <Text\n html={detail.label}\n className={cn('desktop:text-[18px] flex-1 text-[14px] font-bold leading-[1.4] text-[#080A0F]')}\n />\n </div>\n ))}\n </div>\n </div>\n </div>\n )\n}\n\n/**\n * EventSchedule - \u6D3B\u52A8\u65E5\u7A0B\u7EC4\u4EF6\n *\n * @description \u663E\u793A\u6D3B\u52A8\u65E5\u7A0B\u65F6\u95F4\u8F74\u548C\u6D3B\u52A8\u5361\u7247\u5217\u8868\n */\nconst EventSchedule = React.forwardRef<HTMLDivElement, EventScheduleProps>(\n ({ classNames = {}, data, ...props }, ref) => {\n const itemsPerRow = React.useMemo(() => {\n return data?.scheduleList?.length || 2\n }, [data?.scheduleList])\n\n // \u6839\u636E itemsPerRow \u914D\u7F6E\u54CD\u5E94\u5F0F\u65AD\u70B9\n const swiperBreakpoints = React.useMemo(() => {\n switch (itemsPerRow) {\n case 2:\n return {\n 0: {\n slidesPerView: 1.17,\n spaceBetween: 12,\n },\n 768: {\n slidesPerView: 2,\n },\n 1024: {\n spaceBetween: 16,\n },\n 1440: {\n spaceBetween: 16,\n slidesPerView: 2,\n },\n }\n case 3:\n return {\n 0: {\n slidesPerView: 1.17,\n spaceBetween: 12,\n },\n 768: {\n slidesPerView: 2.4,\n },\n 1024: {\n slidesPerView: itemsPerRow,\n spaceBetween: 16,\n },\n 1440: {\n spaceBetween: 16,\n slidesPerView: itemsPerRow,\n },\n }\n case 4:\n return {\n 0: {\n slidesPerView: 1.17,\n spaceBetween: 12,\n },\n 768: {\n slidesPerView: 2.4,\n },\n 1024: {\n slidesPerView: 3.2,\n spaceBetween: 16,\n },\n 1440: {\n slidesPerView: itemsPerRow,\n },\n }\n default:\n return {\n 0: {\n slidesPerView: 1.17,\n spaceBetween: 12,\n },\n 768: {\n slidesPerView: 1,\n },\n 1024: {\n slidesPerView: itemsPerRow,\n spaceBetween: 16,\n },\n 1440: {\n slidesPerView: itemsPerRow,\n },\n }\n }\n }, [itemsPerRow])\n\n const showTimeline = data.showTimeline !== false // \u9ED8\u8BA4\u4E3A true\n\n return (\n <div\n ref={ref}\n className={cn('desktop:px-16 laptop:px-16 tablet:px-8 w-full overflow-hidden px-4', classNames?.root)}\n {...props}\n >\n <div className=\"flex w-full flex-col gap-4\">\n <Swiper breakpoints={swiperBreakpoints} className=\"w-full !overflow-visible\">\n {data.scheduleList.map((item, index) => {\n const isActive = getItemActiveStatus(item)\n return (\n <SwiperSlide key={'SwiperSlideItem' + index}>\n {/* \u65F6\u95F4\u8F74 */}\n {showTimeline && <TimelineNode active={isActive} />}\n <EventScheduleCard\n active={isActive}\n className={showTimeline ? 'mt-4' : ''}\n item={item}\n backgroundImage={data.backgroundImage}\n />\n </SwiperSlide>\n )\n })}\n </Swiper>\n </div>\n </div>\n )\n }\n)\n\nEventSchedule.displayName = 'EventSchedule'\nexport default EventSchedule\n\n// \u5BFC\u51FA\u7C7B\u578B\u4F9B\u5916\u90E8\u4F7F\u7528\n// export type { ResponsiveBackgroundImage, StateBackgroundImage, EventScheduleItem, EventScheduleData, EventScheduleProps }\n"],
5
+ "mappings": "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",
6
+ "names": ["jsx", "jsxs", "React", "cn", "Text", "Picture", "Swiper", "SwiperSlide", "dayjs", "isInTimeRange", "startDate", "endDate", "now", "start", "end", "getItemActiveStatus", "item", "TimelineNode", "active", "className", "isStateBackgroundImage", "obj", "convertResponsiveImageToString", "backgroundImage", "mobile", "laptop", "desktop", "lgDesktop", "parts", "formatBackgroundImage", "isActive", "stateImage", "EventScheduleCard", "pictureSource", "detail", "index", "EventSchedule", "classNames", "data", "props", "ref", "itemsPerRow", "swiperBreakpoints", "showTimeline", "EventSchedule_default"]
7
7
  }