@twreporter/react-typescript-components 0.1.0-beta.5 → 0.1.0-beta.7

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 (174) hide show
  1. package/README.md +11 -1
  2. package/lib/button/components/text-button/index.d.mts +24 -0
  3. package/lib/button/components/text-button/index.d.ts +24 -0
  4. package/lib/button/components/text-button/index.js +202 -0
  5. package/lib/button/components/text-button/index.js.map +1 -0
  6. package/lib/button/components/text-button/index.mjs +8 -0
  7. package/lib/button/components/text-button/index.mjs.map +1 -0
  8. package/lib/button/components/text-button/theme.d.mts +11 -0
  9. package/lib/button/components/text-button/theme.d.ts +11 -0
  10. package/lib/button/components/text-button/theme.js +65 -0
  11. package/lib/button/components/text-button/theme.js.map +1 -0
  12. package/lib/button/components/text-button/theme.mjs +5 -0
  13. package/lib/button/components/text-button/theme.mjs.map +1 -0
  14. package/lib/button/constant.d.mts +11 -0
  15. package/lib/button/constant.d.ts +11 -0
  16. package/lib/button/constant.js +13 -0
  17. package/lib/button/constant.js.map +1 -0
  18. package/lib/button/constant.mjs +3 -0
  19. package/lib/button/constant.mjs.map +1 -0
  20. package/lib/button/enum.d.mts +11 -0
  21. package/lib/button/enum.d.ts +11 -0
  22. package/lib/button/enum.js +19 -0
  23. package/lib/button/enum.js.map +1 -0
  24. package/lib/button/enum.mjs +3 -0
  25. package/lib/button/enum.mjs.map +1 -0
  26. package/lib/button/index.d.mts +26 -0
  27. package/lib/button/index.d.ts +26 -0
  28. package/lib/button/index.js +208 -0
  29. package/lib/button/index.js.map +1 -0
  30. package/lib/button/index.mjs +9 -0
  31. package/lib/button/index.mjs.map +1 -0
  32. package/lib/button/stories/text-button.stories.d.mts +55 -0
  33. package/lib/button/stories/text-button.stories.d.ts +55 -0
  34. package/lib/button/stories/text-button.stories.js +252 -0
  35. package/lib/button/stories/text-button.stories.js.map +1 -0
  36. package/lib/button/stories/text-button.stories.mjs +35 -0
  37. package/lib/button/stories/text-button.stories.mjs.map +1 -0
  38. package/lib/{chunk-3B7LTZRJ.mjs → chunk-6DXA3EX7.mjs} +8 -6
  39. package/lib/chunk-6DXA3EX7.mjs.map +1 -0
  40. package/lib/chunk-7NJDHQ2X.mjs +56 -0
  41. package/lib/chunk-7NJDHQ2X.mjs.map +1 -0
  42. package/lib/chunk-ELECTE3D.mjs +8 -0
  43. package/lib/chunk-ELECTE3D.mjs.map +1 -0
  44. package/lib/chunk-FF422IYY.mjs +38 -0
  45. package/lib/chunk-FF422IYY.mjs.map +1 -0
  46. package/lib/chunk-FVKIUNIP.mjs +58 -0
  47. package/lib/chunk-FVKIUNIP.mjs.map +1 -0
  48. package/lib/chunk-GQWO45DN.mjs +32 -0
  49. package/lib/chunk-GQWO45DN.mjs.map +1 -0
  50. package/lib/chunk-JB4TYHDE.mjs +11 -0
  51. package/lib/chunk-JB4TYHDE.mjs.map +1 -0
  52. package/lib/chunk-JFT6JILC.mjs +12 -0
  53. package/lib/chunk-JFT6JILC.mjs.map +1 -0
  54. package/lib/chunk-QOLETTSG.mjs +28 -0
  55. package/lib/chunk-QOLETTSG.mjs.map +1 -0
  56. package/lib/chunk-U22UKMAJ.mjs +84 -0
  57. package/lib/chunk-U22UKMAJ.mjs.map +1 -0
  58. package/lib/chunk-URJXIWFX.mjs +16 -0
  59. package/lib/chunk-URJXIWFX.mjs.map +1 -0
  60. package/lib/chunk-X2UWIBNH.mjs +16 -0
  61. package/lib/chunk-X2UWIBNH.mjs.map +1 -0
  62. package/lib/chunk-XO7SDD7W.mjs +17 -0
  63. package/lib/chunk-XO7SDD7W.mjs.map +1 -0
  64. package/lib/chunk-ZALXWB2J.mjs +27 -0
  65. package/lib/chunk-ZALXWB2J.mjs.map +1 -0
  66. package/lib/customized-link/external-link.d.mts +7 -0
  67. package/lib/customized-link/external-link.d.ts +7 -0
  68. package/lib/customized-link/external-link.js +18 -0
  69. package/lib/customized-link/external-link.js.map +1 -0
  70. package/lib/customized-link/external-link.mjs +3 -0
  71. package/lib/customized-link/external-link.mjs.map +1 -0
  72. package/lib/customized-link/index.d.mts +11 -0
  73. package/lib/customized-link/index.d.ts +11 -0
  74. package/lib/customized-link/index.js +42 -0
  75. package/lib/customized-link/index.js.map +1 -0
  76. package/lib/customized-link/index.mjs +5 -0
  77. package/lib/customized-link/index.mjs.map +1 -0
  78. package/lib/customized-link/internal-link.d.mts +7 -0
  79. package/lib/customized-link/internal-link.d.ts +7 -0
  80. package/lib/customized-link/internal-link.js +22 -0
  81. package/lib/customized-link/internal-link.js.map +1 -0
  82. package/lib/customized-link/internal-link.mjs +3 -0
  83. package/lib/customized-link/internal-link.mjs.map +1 -0
  84. package/lib/customized-link/type.d.mts +9 -0
  85. package/lib/customized-link/type.d.ts +9 -0
  86. package/lib/customized-link/type.js +4 -0
  87. package/lib/customized-link/type.js.map +1 -0
  88. package/lib/customized-link/type.mjs +3 -0
  89. package/lib/customized-link/type.mjs.map +1 -0
  90. package/lib/storybook/utils/get-enum-arg.d.mts +19 -0
  91. package/lib/storybook/utils/get-enum-arg.d.ts +19 -0
  92. package/lib/storybook/utils/get-enum-arg.js +31 -0
  93. package/lib/storybook/utils/get-enum-arg.js.map +1 -0
  94. package/lib/storybook/utils/get-enum-arg.mjs +3 -0
  95. package/lib/storybook/utils/get-enum-arg.mjs.map +1 -0
  96. package/lib/styles.css +199 -2
  97. package/lib/styles.css.map +1 -1
  98. package/lib/text/heading.d.mts +8 -8
  99. package/lib/text/heading.d.ts +8 -8
  100. package/lib/text/paragraph.d.mts +6 -6
  101. package/lib/text/paragraph.d.ts +6 -6
  102. package/lib/text/stories/heading.stories.d.mts +35 -0
  103. package/lib/text/stories/heading.stories.d.ts +35 -0
  104. package/lib/text/stories/heading.stories.js +131 -0
  105. package/lib/text/stories/heading.stories.js.map +1 -0
  106. package/lib/text/stories/heading.stories.mjs +50 -0
  107. package/lib/text/stories/heading.stories.mjs.map +1 -0
  108. package/lib/text/stories/paragraph.stories.d.mts +33 -0
  109. package/lib/text/stories/paragraph.stories.d.ts +33 -0
  110. package/lib/text/stories/paragraph.stories.js +108 -0
  111. package/lib/text/stories/paragraph.stories.js.map +1 -0
  112. package/lib/text/stories/paragraph.stories.mjs +40 -0
  113. package/lib/text/stories/paragraph.stories.mjs.map +1 -0
  114. package/lib/title-bar/components/title-tab/hook.d.mts +5 -0
  115. package/lib/title-bar/components/title-tab/hook.d.ts +5 -0
  116. package/lib/title-bar/components/title-tab/hook.js +34 -0
  117. package/lib/title-bar/components/title-tab/hook.js.map +1 -0
  118. package/lib/title-bar/components/title-tab/hook.mjs +3 -0
  119. package/lib/title-bar/components/title-tab/hook.mjs.map +1 -0
  120. package/lib/title-bar/components/title-tab/index.d.mts +11 -0
  121. package/lib/title-bar/components/title-tab/index.d.ts +11 -0
  122. package/lib/title-bar/components/title-tab/index.js +367 -0
  123. package/lib/title-bar/components/title-tab/index.js.map +1 -0
  124. package/lib/title-bar/components/title-tab/index.mjs +16 -0
  125. package/lib/title-bar/components/title-tab/index.mjs.map +1 -0
  126. package/lib/title-bar/components/title-tab/tab-item.d.mts +10 -0
  127. package/lib/title-bar/components/title-tab/tab-item.d.ts +10 -0
  128. package/lib/title-bar/components/title-tab/tab-item.js +250 -0
  129. package/lib/title-bar/components/title-tab/tab-item.js.map +1 -0
  130. package/lib/title-bar/components/title-tab/tab-item.mjs +13 -0
  131. package/lib/title-bar/components/title-tab/tab-item.mjs.map +1 -0
  132. package/lib/title-bar/components/title-tab/type.d.mts +8 -0
  133. package/lib/title-bar/components/title-tab/type.d.ts +8 -0
  134. package/lib/title-bar/components/title-tab/type.js +4 -0
  135. package/lib/title-bar/components/title-tab/type.js.map +1 -0
  136. package/lib/title-bar/components/title-tab/type.mjs +3 -0
  137. package/lib/title-bar/components/title-tab/type.mjs.map +1 -0
  138. package/lib/title-bar/components/title1.d.mts +10 -0
  139. package/lib/title-bar/components/title1.d.ts +10 -0
  140. package/lib/title-bar/components/title1.js +123 -0
  141. package/lib/title-bar/components/title1.js.map +1 -0
  142. package/lib/title-bar/components/title1.mjs +6 -0
  143. package/lib/title-bar/components/title1.mjs.map +1 -0
  144. package/lib/title-bar/components/title2.d.mts +3 -3
  145. package/lib/title-bar/components/title2.d.ts +3 -3
  146. package/lib/title-bar/components/title2.js +6 -4
  147. package/lib/title-bar/components/title2.js.map +1 -1
  148. package/lib/title-bar/components/title2.mjs +1 -1
  149. package/lib/title-bar/index.d.mts +15 -2
  150. package/lib/title-bar/index.d.ts +15 -2
  151. package/lib/title-bar/index.js +296 -8
  152. package/lib/title-bar/index.js.map +1 -1
  153. package/lib/title-bar/index.mjs +19 -3
  154. package/lib/title-bar/index.mjs.map +1 -1
  155. package/lib/title-bar/stories/title-tab.stories.d.mts +17 -0
  156. package/lib/title-bar/stories/title-tab.stories.d.ts +17 -0
  157. package/lib/title-bar/stories/title-tab.stories.js +391 -0
  158. package/lib/title-bar/stories/title-tab.stories.js.map +1 -0
  159. package/lib/title-bar/stories/title-tab.stories.mjs +39 -0
  160. package/lib/title-bar/stories/title-tab.stories.mjs.map +1 -0
  161. package/lib/title-bar/stories/title1.stories.d.mts +18 -0
  162. package/lib/title-bar/stories/title1.stories.d.ts +18 -0
  163. package/lib/title-bar/stories/title1.stories.js +155 -0
  164. package/lib/title-bar/stories/title1.stories.js.map +1 -0
  165. package/lib/title-bar/stories/title1.stories.mjs +35 -0
  166. package/lib/title-bar/stories/title1.stories.mjs.map +1 -0
  167. package/lib/title-bar/stories/title2.stories.d.mts +18 -0
  168. package/lib/title-bar/stories/title2.stories.d.ts +18 -0
  169. package/lib/title-bar/stories/title2.stories.js +304 -0
  170. package/lib/title-bar/stories/title2.stories.js.map +1 -0
  171. package/lib/title-bar/stories/title2.stories.mjs +38 -0
  172. package/lib/title-bar/stories/title2.stories.mjs.map +1 -0
  173. package/package.json +12 -5
  174. package/lib/chunk-3B7LTZRJ.mjs.map +0 -1
@@ -0,0 +1,35 @@
1
+ import { getRadioArgFromEnum, getRadioArgFromObject } from '../../chunk-QOLETTSG.mjs';
2
+ import { text_button_default } from '../../chunk-U22UKMAJ.mjs';
3
+ import '../../chunk-FVKIUNIP.mjs';
4
+ import '../../chunk-HQG6Q2EY.mjs';
5
+ import '../../chunk-UM7RNC2Y.mjs';
6
+ import '../../chunk-JB4TYHDE.mjs';
7
+ import '../../chunk-URJXIWFX.mjs';
8
+
9
+ // src/button/stories/text-button.stories.ts
10
+ var meta = {
11
+ title: "Button/TextButton",
12
+ component: text_button_default,
13
+ argTypes: {
14
+ size: getRadioArgFromEnum(text_button_default.Size, text_button_default.Size.S),
15
+ theme: getRadioArgFromObject(text_button_default.THEME, text_button_default.THEME.normal),
16
+ style: getRadioArgFromEnum(text_button_default.Style, text_button_default.Style.DARK)
17
+ }
18
+ };
19
+ var text_button_stories_default = meta;
20
+ var Basic = {
21
+ args: {
22
+ text: "\u6587\u5B57",
23
+ size: text_button_default.Size.S,
24
+ theme: text_button_default.THEME.normal,
25
+ style: text_button_default.Style.DARK,
26
+ active: false,
27
+ disabled: false,
28
+ loading: false
29
+ },
30
+ parameters: { controls: { exclude: ["className"] } }
31
+ };
32
+
33
+ export { Basic, text_button_stories_default as default };
34
+ //# sourceMappingURL=text-button.stories.mjs.map
35
+ //# sourceMappingURL=text-button.stories.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/button/stories/text-button.stories.ts"],"names":[],"mappings":";;;;;;;;;AASA,IAAM,IAAA,GAAO;AAAA,EACX,KAAA,EAAO,mBAAA;AAAA,EACP,SAAA,EAAW,mBAAA;AAAA,EACX,QAAA,EAAU;AAAA,IACR,MAAM,mBAAA,CAAoB,mBAAA,CAAW,IAAA,EAAM,mBAAA,CAAW,KAAK,CAAC,CAAA;AAAA,IAC5D,OAAO,qBAAA,CAAsB,mBAAA,CAAW,KAAA,EAAO,mBAAA,CAAW,MAAM,MAAM,CAAA;AAAA,IACtE,OAAO,mBAAA,CAAoB,mBAAA,CAAW,KAAA,EAAO,mBAAA,CAAW,MAAM,IAAI;AAAA;AAEtE,CAAA;AAEA,IAAO,2BAAA,GAAQ;AAGR,IAAM,KAAA,GAAe;AAAA,EAC1B,IAAA,EAAM;AAAA,IACJ,IAAA,EAAM,cAAA;AAAA,IACN,IAAA,EAAM,oBAAW,IAAA,CAAK,CAAA;AAAA,IACtB,KAAA,EAAO,oBAAW,KAAA,CAAM,MAAA;AAAA,IACxB,KAAA,EAAO,oBAAW,KAAA,CAAM,IAAA;AAAA,IACxB,MAAA,EAAQ,KAAA;AAAA,IACR,QAAA,EAAU,KAAA;AAAA,IACV,OAAA,EAAS;AAAA,GACX;AAAA,EACA,UAAA,EAAY,EAAE,QAAA,EAAU,EAAE,SAAS,CAAC,WAAW,GAAE;AACnD","file":"text-button.stories.mjs","sourcesContent":["import type { Meta, StoryObj } from '@storybook/react-vite'\n// utils\nimport {\n getRadioArgFromObject,\n getRadioArgFromEnum,\n} from '../../storybook/utils/get-enum-arg'\n// components\nimport TextButton from '../components/text-button'\n\nconst meta = {\n title: 'Button/TextButton',\n component: TextButton,\n argTypes: {\n size: getRadioArgFromEnum(TextButton.Size, TextButton.Size.S),\n theme: getRadioArgFromObject(TextButton.THEME, TextButton.THEME.normal),\n style: getRadioArgFromEnum(TextButton.Style, TextButton.Style.DARK),\n },\n} satisfies Meta<typeof TextButton>\n\nexport default meta\ntype Story = StoryObj<typeof meta>\n\nexport const Basic: Story = {\n args: {\n text: '文字',\n size: TextButton.Size.S,\n theme: TextButton.THEME.normal,\n style: TextButton.Style.DARK,\n active: false,\n disabled: false,\n loading: false,\n },\n parameters: { controls: { exclude: ['className'] } },\n}\n"]}
@@ -10,11 +10,13 @@ var Title2 = ({
10
10
  className = ""
11
11
  }) => {
12
12
  return /* @__PURE__ */ jsxs("div", { className: clsx("flex justify-between flex-col", className), children: [
13
- /* @__PURE__ */ jsxs("div", { className: clsx("flex items-baseline gap-[16px]"), children: [
14
- /* @__PURE__ */ jsx(H5, { className: "text-gray-800", text: title }),
15
- subtitle ? /* @__PURE__ */ jsx(P2, { className: "text-gray-600", text: subtitle }) : null
13
+ /* @__PURE__ */ jsxs("div", { className: "flex flex-row justify-between", children: [
14
+ /* @__PURE__ */ jsxs("div", { className: clsx("flex items-baseline gap-[16px]"), children: [
15
+ /* @__PURE__ */ jsx(H5, { className: "text-gray-800", text: title }),
16
+ subtitle ? /* @__PURE__ */ jsx(P2, { className: "text-gray-600", text: subtitle }) : null
17
+ ] }),
18
+ renderButton || null
16
19
  ] }),
17
- renderButton || null,
18
20
  /* @__PURE__ */ jsx(
19
21
  "div",
20
22
  {
@@ -29,5 +31,5 @@ var Title2 = ({
29
31
  var title2_default = Title2;
30
32
 
31
33
  export { title2_default };
32
- //# sourceMappingURL=chunk-3B7LTZRJ.mjs.map
33
- //# sourceMappingURL=chunk-3B7LTZRJ.mjs.map
34
+ //# sourceMappingURL=chunk-6DXA3EX7.mjs.map
35
+ //# sourceMappingURL=chunk-6DXA3EX7.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/title-bar/components/title2.tsx"],"names":[],"mappings":";;;;;AAaA,IAAM,SAAgC,CAAC;AAAA,EACrC,KAAA;AAAA,EACA,QAAA,GAAW,EAAA;AAAA,EACX,YAAA,GAAe,IAAA;AAAA,EACf,SAAA,GAAY;AACd,CAAA,KAAM;AACJ,EAAA,4BACG,KAAA,EAAA,EAAI,SAAA,EAAW,IAAA,CAAK,+BAAA,EAAiC,SAAS,CAAA,EAC7D,QAAA,EAAA;AAAA,oBAAA,IAAA,CAAC,KAAA,EAAA,EAAI,WAAU,+BAAA,EACb,QAAA,EAAA;AAAA,sBAAA,IAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAW,IAAA,CAAK,gCAAgC,CAAA,EACnD,QAAA,EAAA;AAAA,wBAAA,GAAA,CAAC,EAAA,EAAA,EAAG,SAAA,EAAU,eAAA,EAAgB,IAAA,EAAM,KAAA,EAAO,CAAA;AAAA,QAC1C,2BAAW,GAAA,CAAC,EAAA,EAAA,EAAG,WAAU,eAAA,EAAgB,IAAA,EAAM,UAAU,CAAA,GAAK;AAAA,OAAA,EACjE,CAAA;AAAA,MACC,YAAA,IAAgB;AAAA,KAAA,EACnB,CAAA;AAAA,oBACA,GAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACC,SAAA,EAAW,IAAA;AAAA,UACT,qCAAA;AAAA,UACA;AAAA;AACF;AAAA;AACF,GAAA,EACF,CAAA;AAEJ,CAAA;AAEA,IAAO,cAAA,GAAQ","file":"chunk-6DXA3EX7.mjs","sourcesContent":["import clsx from 'clsx'\nimport type React from 'react'\n// components\nimport { H5 } from '../../text/heading'\nimport { P2 } from '../../text/paragraph'\n\ntype Title2Props = {\n title: string\n subtitle?: string\n renderButton?: React.ReactNode\n className?: string\n}\n\nconst Title2: React.FC<Title2Props> = ({\n title,\n subtitle = '',\n renderButton = null,\n className = '',\n}) => {\n return (\n <div className={clsx('flex justify-between flex-col', className)}>\n <div className=\"flex flex-row justify-between\">\n <div className={clsx('flex items-baseline gap-[16px]')}>\n <H5 className=\"text-gray-800\" text={title} />\n {subtitle ? <P2 className=\"text-gray-600\" text={subtitle} /> : null}\n </div>\n {renderButton || null}\n </div>\n <div\n className={clsx(\n 'w-full h-[1px] bg-gray-800 mt-[8px]',\n 'desktop:mt-[16px]'\n )}\n />\n </div>\n )\n}\n\nexport default Title2\n"]}
@@ -0,0 +1,56 @@
1
+ import { useScrollStatus } from './chunk-GQWO45DN.mjs';
2
+ import { tab_item_default } from './chunk-FF422IYY.mjs';
3
+ import { H1 } from './chunk-JHLT5GDV.mjs';
4
+ import clsx from 'clsx';
5
+ import { useState, useEffect, createElement } from 'react';
6
+ import { jsxs, jsx } from 'react/jsx-runtime';
7
+
8
+ var TitleTab = ({
9
+ title,
10
+ tabs = [],
11
+ activeTabIndex = 0
12
+ }) => {
13
+ const [activeIndex, setActiveIndex] = useState(activeTabIndex);
14
+ const [showGradientMask, setShowGradientMask] = useState(false);
15
+ const ref = useScrollStatus(setShowGradientMask);
16
+ useEffect(() => {
17
+ setActiveIndex(activeTabIndex);
18
+ }, [activeTabIndex]);
19
+ return /* @__PURE__ */ jsxs("div", { className: "flex flex-col w-full text-gray-800", children: [
20
+ /* @__PURE__ */ jsx(H1, { text: title }),
21
+ tabs.length > 0 ? /* @__PURE__ */ jsx(
22
+ "div",
23
+ {
24
+ ref,
25
+ className: clsx(
26
+ "flex items-center",
27
+ "overflow-x-scroll scrollbar:!w-0",
28
+ {
29
+ "[mask-image:linear-gradient(to_left,rgba(241,241,241,0),#f1f1f1_48px)] [-webkit-mask-image:linear-gradient(to_left,rgba(241,241,241,0),#f1f1f1_48px)]": showGradientMask
30
+ }
31
+ ),
32
+ children: tabs.map((tab, index) => {
33
+ const tabProps = { ...tab, isActive: index === activeIndex };
34
+ const handleClick = () => {
35
+ setActiveIndex(index);
36
+ };
37
+ return /* @__PURE__ */ createElement(tab_item_default, { ...tabProps, key: `tab-${tab.text}-${index}`, onClick: handleClick });
38
+ })
39
+ }
40
+ ) : null,
41
+ /* @__PURE__ */ jsx(
42
+ "div",
43
+ {
44
+ className: clsx(
45
+ "w-full h-[1px] bg-gray-300 mt-[0px]",
46
+ "desktop:mt-[0px]"
47
+ )
48
+ }
49
+ )
50
+ ] });
51
+ };
52
+ var title_tab_default = TitleTab;
53
+
54
+ export { title_tab_default };
55
+ //# sourceMappingURL=chunk-7NJDHQ2X.mjs.map
56
+ //# sourceMappingURL=chunk-7NJDHQ2X.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/title-bar/components/title-tab/index.tsx"],"names":[],"mappings":";;;;;;;AAeA,IAAM,WAA8B,CAAC;AAAA,EACnC,KAAA;AAAA,EACA,OAAO,EAAC;AAAA,EACR,cAAA,GAAiB;AACnB,CAAA,KAAM;AACJ,EAAA,MAAM,CAAC,WAAA,EAAa,cAAc,CAAA,GAAI,SAAS,cAAc,CAAA;AAC7D,EAAA,MAAM,CAAC,gBAAA,EAAkB,mBAAmB,CAAA,GAAI,SAAS,KAAK,CAAA;AAE9D,EAAA,MAAM,GAAA,GAAM,gBAAgB,mBAAmB,CAAA;AAE/C,EAAA,SAAA,CAAU,MAAM;AACd,IAAA,cAAA,CAAe,cAAc,CAAA;AAAA,EAC/B,CAAA,EAAG,CAAC,cAAc,CAAC,CAAA;AAEnB,EAAA,uBACE,IAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,oCAAA,EACb,QAAA,EAAA;AAAA,oBAAA,GAAA,CAAC,EAAA,EAAA,EAAG,MAAM,KAAA,EAAO,CAAA;AAAA,IAChB,IAAA,CAAK,SAAS,CAAA,mBACb,GAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACC,GAAA;AAAA,QACA,SAAA,EAAW,IAAA;AAAA,UACT,mBAAA;AAAA,UACA,kCAAA;AAAA,UACA;AAAA,YACE,uJAAA,EACE;AAAA;AACJ,SACF;AAAA,QAEC,QAAA,EAAA,IAAA,CAAK,GAAA,CAAI,CAAC,GAAA,EAAK,KAAA,KAAU;AACxB,UAAA,MAAM,WAAW,EAAE,GAAG,GAAA,EAAK,QAAA,EAAU,UAAU,WAAA,EAAY;AAC3D,UAAA,MAAM,cAAc,MAAM;AACxB,YAAA,cAAA,CAAe,KAAK,CAAA;AAAA,UACtB,CAAA;AACA,UAAA,uBACE,aAAA,CAAC,gBAAA,EAAA,EAAS,GAAG,QAAA,EAAU,GAAA,EAAK,CAAA,IAAA,EAAO,GAAA,CAAI,IAAI,CAAA,CAAA,EAAI,KAAK,CAAA,CAAA,EAAI,OAAA,EAAS,WAAA,EAAa,CAAA;AAAA,QAElF,CAAC;AAAA;AAAA,KACH,GACE,IAAA;AAAA,oBACJ,GAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACC,SAAA,EAAW,IAAA;AAAA,UACT,qCAAA;AAAA,UACA;AAAA;AACF;AAAA;AACF,GAAA,EACF,CAAA;AAEJ,CAAA;AAEA,IAAO,iBAAA,GAAQ","file":"chunk-7NJDHQ2X.mjs","sourcesContent":["import clsx from 'clsx'\nimport { type FC, useState, useEffect } from 'react'\n// hook\nimport { useScrollStatus } from './hook'\n// components\nimport TabItem from './tab-item'\nimport { H1 } from '../../../text/heading'\n// type\nimport type { Tab } from './type'\n\ntype TitleTabProps = {\n title: string\n tabs: Tab[]\n activeTabIndex?: number\n}\nconst TitleTab: FC<TitleTabProps> = ({\n title,\n tabs = [],\n activeTabIndex = 0,\n}) => {\n const [activeIndex, setActiveIndex] = useState(activeTabIndex)\n const [showGradientMask, setShowGradientMask] = useState(false)\n\n const ref = useScrollStatus(setShowGradientMask)\n\n useEffect(() => {\n setActiveIndex(activeTabIndex)\n }, [activeTabIndex])\n\n return (\n <div className=\"flex flex-col w-full text-gray-800\">\n <H1 text={title} />\n {tabs.length > 0 ? (\n <div\n ref={ref}\n className={clsx(\n 'flex items-center',\n 'overflow-x-scroll scrollbar:!w-0',\n {\n '[mask-image:linear-gradient(to_left,rgba(241,241,241,0),#f1f1f1_48px)] [-webkit-mask-image:linear-gradient(to_left,rgba(241,241,241,0),#f1f1f1_48px)]':\n showGradientMask,\n }\n )}\n >\n {tabs.map((tab, index) => {\n const tabProps = { ...tab, isActive: index === activeIndex }\n const handleClick = () => {\n setActiveIndex(index)\n }\n return (\n <TabItem {...tabProps} key={`tab-${tab.text}-${index}`} onClick={handleClick} />\n )\n })}\n </div>\n ) : null}\n <div\n className={clsx(\n 'w-full h-[1px] bg-gray-300 mt-[0px]',\n 'desktop:mt-[0px]'\n )}\n />\n </div>\n )\n}\n\nexport default TitleTab\n"]}
@@ -0,0 +1,8 @@
1
+ import { text_button_default } from './chunk-U22UKMAJ.mjs';
2
+
3
+ // src/button/index.ts
4
+ var button_default = { TextButton: text_button_default };
5
+
6
+ export { button_default };
7
+ //# sourceMappingURL=chunk-ELECTE3D.mjs.map
8
+ //# sourceMappingURL=chunk-ELECTE3D.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/button/index.ts"],"names":[],"mappings":";;;AAIA,IAAO,cAAA,GAAQ,EAAE,UAAA,EAAA,mBAAA","file":"chunk-ELECTE3D.mjs","sourcesContent":["import TextButton from './components/text-button'\n\nexport { TextButton }\n\nexport default { TextButton }\n"]}
@@ -0,0 +1,38 @@
1
+ import { text_button_default } from './chunk-U22UKMAJ.mjs';
2
+ import { external_link_default } from './chunk-X2UWIBNH.mjs';
3
+ import { internal_link_default } from './chunk-XO7SDD7W.mjs';
4
+ import clsx from 'clsx';
5
+ import { jsx } from 'react/jsx-runtime';
6
+
7
+ var TabItem = ({
8
+ text,
9
+ link,
10
+ isExternal = false,
11
+ isActive = false,
12
+ onClick,
13
+ className = ""
14
+ }) => {
15
+ const CustomizedLink = isExternal ? external_link_default : internal_link_default;
16
+ return /* @__PURE__ */ jsx(
17
+ "button",
18
+ {
19
+ className: clsx("flex shrink-0 mr-[24px] last:mr-0", className),
20
+ onClick,
21
+ type: "button",
22
+ children: /* @__PURE__ */ jsx(CustomizedLink, { to: link, children: /* @__PURE__ */ jsx(
23
+ text_button_default,
24
+ {
25
+ text,
26
+ active: isActive,
27
+ size: text_button_default.Size.L,
28
+ className: "py-[16px]"
29
+ }
30
+ ) })
31
+ }
32
+ );
33
+ };
34
+ var tab_item_default = TabItem;
35
+
36
+ export { tab_item_default };
37
+ //# sourceMappingURL=chunk-FF422IYY.mjs.map
38
+ //# sourceMappingURL=chunk-FF422IYY.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/title-bar/components/title-tab/tab-item.tsx"],"names":[],"mappings":";;;;;;AAYA,IAAM,UAA4B,CAAC;AAAA,EACjC,IAAA;AAAA,EACA,IAAA;AAAA,EACA,UAAA,GAAa,KAAA;AAAA,EACb,QAAA,GAAW,KAAA;AAAA,EACX,OAAA;AAAA,EACA,SAAA,GAAY;AACd,CAAA,KAAM;AACJ,EAAA,MAAM,cAAA,GAAiB,aAAa,qBAAA,GAAe,qBAAA;AACnD,EAAA,uBACE,GAAA;AAAA,IAAC,QAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAW,IAAA,CAAK,mCAAA,EAAqC,SAAS,CAAA;AAAA,MAC9D,OAAA;AAAA,MACA,IAAA,EAAK,QAAA;AAAA,MAEL,QAAA,kBAAA,GAAA,CAAC,cAAA,EAAA,EAAe,EAAA,EAAI,IAAA,EAClB,QAAA,kBAAA,GAAA;AAAA,QAAC,mBAAA;AAAA,QAAA;AAAA,UACC,IAAA;AAAA,UACA,MAAA,EAAQ,QAAA;AAAA,UACR,IAAA,EAAM,oBAAW,IAAA,CAAK,CAAA;AAAA,UACtB,SAAA,EAAU;AAAA;AAAA,OACZ,EACF;AAAA;AAAA,GACF;AAEJ,CAAA;AAEA,IAAO,gBAAA,GAAQ","file":"chunk-FF422IYY.mjs","sourcesContent":["import clsx from 'clsx'\nimport type { FC } from 'react'\n// type\nimport type { Tab } from './type'\n// component\nimport { ExternalLink, InternalLink } from '../../../customized-link'\nimport { TextButton } from '../../../button'\n\ntype TabItemProps = Tab & {\n onClick: () => void\n className?: string\n}\nconst TabItem: FC<TabItemProps> = ({\n text,\n link,\n isExternal = false,\n isActive = false,\n onClick,\n className = '',\n}) => {\n const CustomizedLink = isExternal ? ExternalLink : InternalLink\n return (\n <button\n className={clsx('flex shrink-0 mr-[24px] last:mr-0', className)}\n onClick={onClick}\n type=\"button\"\n >\n <CustomizedLink to={link}>\n <TextButton\n text={text}\n active={isActive}\n size={TextButton.Size.L}\n className=\"py-[16px]\"\n />\n </CustomizedLink>\n </button>\n )\n}\n\nexport default TabItem\n"]}
@@ -0,0 +1,58 @@
1
+ import { THEME } from './chunk-JB4TYHDE.mjs';
2
+
3
+ // src/button/components/text-button/theme.ts
4
+ var getDisabledContainerTheme = (theme) => {
5
+ return [
6
+ // default theme
7
+ "text-gray-400 hover:text-gray-400",
8
+ // photography & transparent theme
9
+ {
10
+ "text-gray-500 hover:text-gray-500": theme === THEME.photography || theme === THEME.transparent
11
+ }
12
+ ];
13
+ };
14
+ var getActiveContainerTheme = (theme, style) => {
15
+ return [
16
+ // default theme
17
+ {
18
+ "text-gray-800 hover:text-gray-800": style === 2 /* LIGHT */,
19
+ "text-brand-heavy hover:text-brand-heavy": style === 1 /* DARK */,
20
+ "text-brand-dark hover:text-brand-dark": style === 0 /* BRAND */
21
+ },
22
+ // photography theme
23
+ {
24
+ "text-gray-400 hover:text-gray-400": theme === THEME.photography && style === 2 /* LIGHT */,
25
+ "text-supportive-pastel hover:text-supportive-pastel": theme === THEME.photography && style !== 2 /* LIGHT */
26
+ },
27
+ // transparent theme
28
+ {
29
+ "text-gray-black hover:text-gray-black": theme === THEME.transparent && style === 2 /* LIGHT */,
30
+ "text-gray-200 hover:text-gray-200": theme === THEME.transparent && style !== 2 /* LIGHT */
31
+ }
32
+ ];
33
+ };
34
+ var getContainerTheme = (theme, style) => {
35
+ return [
36
+ // default theme
37
+ {
38
+ "text-gray-600 hover:text-gray-800": style === 2 /* LIGHT */,
39
+ "text-gray-800 hover:text-brand-heavy": style === 1 /* DARK */,
40
+ "text-brand-heavy hover:text-brand-dark": style === 0 /* BRAND */
41
+ },
42
+ // photography
43
+ {
44
+ "text-gray-300 hover:text-gray-400": theme === THEME.photography && style === 2 /* LIGHT */,
45
+ "text-gray-white hover:text-supportive-pastel": theme === THEME.photography && style === 1 /* DARK */,
46
+ "text-supportive-faded hover:text-supportive-pastel": theme === THEME.photography && style === 0 /* BRAND */
47
+ },
48
+ // transparent theme
49
+ {
50
+ "text-gray-800 hover:text-gray-black": theme === THEME.transparent && style === 2 /* LIGHT */,
51
+ "text-gray-white hover:text-gray-200": theme === THEME.transparent && style !== 2 /* LIGHT */
52
+ }
53
+ ];
54
+ };
55
+
56
+ export { getActiveContainerTheme, getContainerTheme, getDisabledContainerTheme };
57
+ //# sourceMappingURL=chunk-FVKIUNIP.mjs.map
58
+ //# sourceMappingURL=chunk-FVKIUNIP.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/button/components/text-button/theme.ts"],"names":[],"mappings":";;;AAUO,IAAM,yBAAA,GAAuC,CAAC,KAAA,KAAU;AAC7D,EAAA,OAAO;AAAA;AAAA,IAEL,mCAAA;AAAA;AAAA,IAEA;AAAA,MACE,mCAAA,EAAqC,KAAA,KAAU,KAAA,CAAM,WAAA,IAAe,UAAU,KAAA,CAAM;AAAA;AACtF,GACF;AACF;AAEO,IAAM,uBAAA,GAAqC,CAAC,KAAA,EAAO,KAAA,KAAU;AAClE,EAAA,OAAO;AAAA;AAAA,IAEL;AAAA,MACE,mCAAA,EAAqC,KAAA,KAAA,CAAA;AAAA,MACrC,yCAAA,EAA2C,KAAA,KAAA,CAAA;AAAA,MAC3C,uCAAA,EAAyC,KAAA,KAAA,CAAA;AAAA,KAC3C;AAAA;AAAA,IAEA;AAAA,MACE,mCAAA,EAAqC,KAAA,KAAU,KAAA,CAAM,WAAA,IAAe,KAAA,KAAA,CAAA;AAAA,MACpE,qDAAA,EAAuD,KAAA,KAAU,KAAA,CAAM,WAAA,IAAe,KAAA,KAAA,CAAA;AAAA,KACxF;AAAA;AAAA,IAEA;AAAA,MACE,uCAAA,EAAyC,KAAA,KAAU,KAAA,CAAM,WAAA,IAAe,KAAA,KAAA,CAAA;AAAA,MACxE,mCAAA,EAAqC,KAAA,KAAU,KAAA,CAAM,WAAA,IAAe,KAAA,KAAA,CAAA;AAAA;AACtE,GACF;AACF;AAEO,IAAM,iBAAA,GAA+B,CAAC,KAAA,EAAO,KAAA,KAAU;AAC5D,EAAA,OAAO;AAAA;AAAA,IAEL;AAAA,MACE,mCAAA,EAAqC,KAAA,KAAA,CAAA;AAAA,MACrC,sCAAA,EAAwC,KAAA,KAAA,CAAA;AAAA,MACxC,wCAAA,EAA0C,KAAA,KAAA,CAAA;AAAA,KAC5C;AAAA;AAAA,IAEA;AAAA,MACE,mCAAA,EAAqC,KAAA,KAAU,KAAA,CAAM,WAAA,IAAe,KAAA,KAAA,CAAA;AAAA,MACpE,8CAAA,EAAgD,KAAA,KAAU,KAAA,CAAM,WAAA,IAAe,KAAA,KAAA,CAAA;AAAA,MAC/E,oDAAA,EAAsD,KAAA,KAAU,KAAA,CAAM,WAAA,IAAe,KAAA,KAAA,CAAA;AAAA,KACvF;AAAA;AAAA,IAEA;AAAA,MACE,qCAAA,EAAuC,KAAA,KAAU,KAAA,CAAM,WAAA,IAAe,KAAA,KAAA,CAAA;AAAA,MACtE,qCAAA,EAAuC,KAAA,KAAU,KAAA,CAAM,WAAA,IAAe,KAAA,KAAA,CAAA;AAAA;AACxE,GACF;AACF","file":"chunk-FVKIUNIP.mjs","sourcesContent":["// constants\nimport { THEME } from '../../constant'\n// type\nimport type { Theme } from '../../constant'\nimport type { ClassArray } from 'clsx'\n// enum\nimport { Style } from '../../enum'\n\ntype ThemeFunc = (theme: Theme, style?: Style) => ClassArray\n\nexport const getDisabledContainerTheme: ThemeFunc = (theme) => {\n return [\n // default theme\n 'text-gray-400 hover:text-gray-400',\n // photography & transparent theme\n {\n 'text-gray-500 hover:text-gray-500': theme === THEME.photography || theme === THEME.transparent,\n }\n ]\n}\n\nexport const getActiveContainerTheme: ThemeFunc = (theme, style) => {\n return [\n // default theme\n {\n 'text-gray-800 hover:text-gray-800': style === Style.LIGHT,\n 'text-brand-heavy hover:text-brand-heavy': style === Style.DARK,\n 'text-brand-dark hover:text-brand-dark': style === Style.BRAND,\n },\n // photography theme\n {\n 'text-gray-400 hover:text-gray-400': theme === THEME.photography && style === Style.LIGHT,\n 'text-supportive-pastel hover:text-supportive-pastel': theme === THEME.photography && style !== Style.LIGHT,\n },\n // transparent theme\n {\n 'text-gray-black hover:text-gray-black': theme === THEME.transparent && style === Style.LIGHT,\n 'text-gray-200 hover:text-gray-200': theme === THEME.transparent && style !== Style.LIGHT,\n },\n ]\n}\n\nexport const getContainerTheme: ThemeFunc = (theme, style) => {\n return [\n // default theme\n {\n 'text-gray-600 hover:text-gray-800': style === Style.LIGHT,\n 'text-gray-800 hover:text-brand-heavy': style === Style.DARK,\n 'text-brand-heavy hover:text-brand-dark': style === Style.BRAND,\n },\n // photography\n {\n 'text-gray-300 hover:text-gray-400': theme === THEME.photography && style === Style.LIGHT,\n 'text-gray-white hover:text-supportive-pastel': theme === THEME.photography && style === Style.DARK,\n 'text-supportive-faded hover:text-supportive-pastel': theme === THEME.photography && style === Style.BRAND,\n },\n // transparent theme\n {\n 'text-gray-800 hover:text-gray-black': theme === THEME.transparent && style === Style.LIGHT,\n 'text-gray-white hover:text-gray-200': theme === THEME.transparent && style !== Style.LIGHT,\n },\n ]\n}"]}
@@ -0,0 +1,32 @@
1
+ import { useRef, useEffect } from 'react';
2
+
3
+ // src/title-bar/components/title-tab/hook.ts
4
+ var useScrollStatus = (setShowNext) => {
5
+ const ref = useRef(null);
6
+ useEffect(() => {
7
+ if (!ref.current) return;
8
+ if (ref.current.scrollWidth > ref.current.clientWidth) {
9
+ setShowNext(true);
10
+ }
11
+ }, [setShowNext]);
12
+ useEffect(() => {
13
+ if (!ref.current) return;
14
+ const refEle = ref.current;
15
+ const handleScroll = () => {
16
+ if (refEle.offsetWidth + refEle.scrollLeft >= refEle.scrollWidth) {
17
+ setShowNext(false);
18
+ } else {
19
+ setShowNext(true);
20
+ }
21
+ };
22
+ refEle.addEventListener("scroll", handleScroll);
23
+ return () => {
24
+ refEle.removeEventListener("scroll", handleScroll);
25
+ };
26
+ }, [setShowNext]);
27
+ return ref;
28
+ };
29
+
30
+ export { useScrollStatus };
31
+ //# sourceMappingURL=chunk-GQWO45DN.mjs.map
32
+ //# sourceMappingURL=chunk-GQWO45DN.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/title-bar/components/title-tab/hook.ts"],"names":[],"mappings":";;;AAEO,IAAM,eAAA,GAAkB,CAAC,WAAA,KAAyC;AACvE,EAAA,MAAM,GAAA,GAAM,OAAuB,IAAI,CAAA;AAEvC,EAAA,SAAA,CAAU,MAAM;AACd,IAAA,IAAI,CAAC,IAAI,OAAA,EAAS;AAElB,IAAA,IAAI,GAAA,CAAI,OAAA,CAAQ,WAAA,GAAc,GAAA,CAAI,QAAQ,WAAA,EAAa;AAErD,MAAA,WAAA,CAAY,IAAI,CAAA;AAAA,IAClB;AAAA,EACF,CAAA,EAAG,CAAC,WAAW,CAAC,CAAA;AAEhB,EAAA,SAAA,CAAU,MAAM;AACd,IAAA,IAAI,CAAC,IAAI,OAAA,EAAS;AAElB,IAAA,MAAM,SAAS,GAAA,CAAI,OAAA;AACnB,IAAA,MAAM,eAA8B,MAAM;AACxC,MAAA,IAAI,MAAA,CAAO,WAAA,GAAc,MAAA,CAAO,UAAA,IAAc,OAAO,WAAA,EAAa;AAEhE,QAAA,WAAA,CAAY,KAAK,CAAA;AAAA,MACnB,CAAA,MAAO;AACL,QAAA,WAAA,CAAY,IAAI,CAAA;AAAA,MAClB;AAAA,IACF,CAAA;AAEA,IAAA,MAAA,CAAO,gBAAA,CAAiB,UAAU,YAAY,CAAA;AAE9C,IAAA,OAAO,MAAM;AACX,MAAA,MAAA,CAAO,mBAAA,CAAoB,UAAU,YAAY,CAAA;AAAA,IACnD,CAAA;AAAA,EACF,CAAA,EAAG,CAAC,WAAW,CAAC,CAAA;AAEhB,EAAA,OAAO,GAAA;AACT","file":"chunk-GQWO45DN.mjs","sourcesContent":["import { useRef, useEffect } from 'react'\n\nexport const useScrollStatus = (setShowNext: (show: boolean) => void) => {\n const ref = useRef<HTMLDivElement>(null)\n\n useEffect(() => {\n if (!ref.current) return\n\n if (ref.current.scrollWidth > ref.current.clientWidth) {\n // scrollbar occur\n setShowNext(true)\n }\n }, [setShowNext])\n\n useEffect(() => {\n if (!ref.current) return\n\n const refEle = ref.current\n const handleScroll: EventListener = () => {\n if (refEle.offsetWidth + refEle.scrollLeft >= refEle.scrollWidth) {\n // scroll to end\n setShowNext(false)\n } else {\n setShowNext(true)\n }\n }\n\n refEle.addEventListener('scroll', handleScroll)\n\n return () => {\n refEle.removeEventListener('scroll', handleScroll)\n }\n }, [setShowNext])\n\n return ref\n}\n"]}
@@ -0,0 +1,11 @@
1
+ // src/button/constant.ts
2
+ var THEME = {
3
+ normal: "normal",
4
+ photography: "photography",
5
+ transparent: "transparent",
6
+ index: "index"
7
+ };
8
+
9
+ export { THEME };
10
+ //# sourceMappingURL=chunk-JB4TYHDE.mjs.map
11
+ //# sourceMappingURL=chunk-JB4TYHDE.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/button/constant.ts"],"names":[],"mappings":";AAEO,IAAM,KAAA,GAAQ;AAAA,EACnB,MAAA,EAAQ,QAAA;AAAA,EACR,WAAA,EAAa,aAAA;AAAA,EACb,WAAA,EAAa,aAAA;AAAA,EACb,KAAA,EAAO;AACT","file":"chunk-JB4TYHDE.mjs","sourcesContent":["import type { ValuesOf } from '../types'\n\nexport const THEME = {\n normal: 'normal',\n photography: 'photography',\n transparent: 'transparent',\n index: 'index',\n} as const\n\nexport type Theme = ValuesOf<typeof THEME>\n"]}
@@ -0,0 +1,12 @@
1
+ import { external_link_default } from './chunk-X2UWIBNH.mjs';
2
+ import { internal_link_default } from './chunk-XO7SDD7W.mjs';
3
+
4
+ // src/customized-link/index.ts
5
+ var customized_link_default = {
6
+ ExternalLink: external_link_default,
7
+ InternalLink: internal_link_default
8
+ };
9
+
10
+ export { customized_link_default };
11
+ //# sourceMappingURL=chunk-JFT6JILC.mjs.map
12
+ //# sourceMappingURL=chunk-JFT6JILC.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/customized-link/index.ts"],"names":[],"mappings":";;;;AAKA,IAAO,uBAAA,GAAQ;AAAA,EACb,YAAA,EAAA,qBAAA;AAAA,EACA,YAAA,EAAA;AACF","file":"chunk-JFT6JILC.mjs","sourcesContent":["import ExternalLink from './external-link'\nimport InternalLink from './internal-link'\n\nexport { ExternalLink, InternalLink }\n\nexport default {\n ExternalLink,\n InternalLink,\n}\n"]}
@@ -0,0 +1,28 @@
1
+ // src/storybook/utils/get-enum-arg.ts
2
+ function getRadioArgFromObject(object, defaultValue) {
3
+ return {
4
+ defaultValue,
5
+ options: Object.values(object),
6
+ control: { type: "radio" }
7
+ };
8
+ }
9
+ function getRadioArgFromEnum(enumObject, defaultValue) {
10
+ const keys = Object.keys(enumObject).filter(
11
+ (key) => Number.isNaN(Number(key))
12
+ );
13
+ const mapping = {};
14
+ keys.forEach((key) => {
15
+ mapping[key] = enumObject[key];
16
+ });
17
+ const defaultKey = keys.find((key) => enumObject[key] === defaultValue) || keys[0];
18
+ return {
19
+ defaultValue: enumObject[defaultKey],
20
+ options: keys,
21
+ mapping,
22
+ control: { type: "radio" }
23
+ };
24
+ }
25
+
26
+ export { getRadioArgFromEnum, getRadioArgFromObject };
27
+ //# sourceMappingURL=chunk-QOLETTSG.mjs.map
28
+ //# sourceMappingURL=chunk-QOLETTSG.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/storybook/utils/get-enum-arg.ts"],"names":[],"mappings":";AAMO,SAAS,qBAAA,CACd,QACA,YAAA,EACmB;AACnB,EAAA,OAAO;AAAA,IACL,YAAA;AAAA,IACA,OAAA,EAAS,MAAA,CAAO,MAAA,CAAO,MAAM,CAAA;AAAA,IAC7B,OAAA,EAAS,EAAE,IAAA,EAAM,OAAA;AAAQ,GAC3B;AACF;AASO,SAAS,mBAAA,CACd,YACA,YAAA,EAC0B;AAE1B,EAAA,MAAM,IAAA,GAAO,MAAA,CAAO,IAAA,CAAK,UAAU,CAAA,CAAE,MAAA;AAAA,IAAO,CAAC,GAAA,KAC3C,MAAA,CAAO,KAAA,CAAM,MAAA,CAAO,GAAG,CAAC;AAAA,GAC1B;AAEA,EAAA,MAAM,UAAsC,EAAC;AAC7C,EAAA,IAAA,CAAK,OAAA,CAAQ,CAAC,GAAA,KAAQ;AACpB,IAAA,OAAA,CAAQ,GAAG,CAAA,GAAI,UAAA,CAAW,GAAc,CAAA;AAAA,EAC1C,CAAC,CAAA;AAGD,EAAA,MAAM,UAAA,GACJ,IAAA,CAAK,IAAA,CAAK,CAAC,GAAA,KAAQ,UAAA,CAAW,GAAc,CAAA,KAAM,YAAY,CAAA,IAAK,IAAA,CAAK,CAAC,CAAA;AAE3E,EAAA,OAAO;AAAA,IACL,YAAA,EAAc,WAAW,UAAqB,CAAA;AAAA,IAC9C,OAAA,EAAS,IAAA;AAAA,IACT,OAAA;AAAA,IACA,OAAA,EAAS,EAAE,IAAA,EAAM,OAAA;AAAQ,GAC3B;AACF","file":"chunk-QOLETTSG.mjs","sourcesContent":["type RadioArgObject<T> = {\n defaultValue: T\n options: T[]\n control: { type: 'radio' }\n}\n\nexport function getRadioArgFromObject<T extends string | number>(\n object: Record<string, T>,\n defaultValue: T\n): RadioArgObject<T> {\n return {\n defaultValue,\n options: Object.values(object),\n control: { type: 'radio' },\n }\n}\n\ntype RadioArgEnum<E> = {\n defaultValue: E\n options: string[]\n mapping: Record<string, E>\n control: { type: 'radio' }\n}\n\nexport function getRadioArgFromEnum<E extends Record<string, string | number>>(\n enumObject: E,\n defaultValue: E[keyof E]\n): RadioArgEnum<E[keyof E]> {\n // Only keep \"real\" keys (filter numeric reverse mapping)\n const keys = Object.keys(enumObject).filter((key) =>\n Number.isNaN(Number(key))\n )\n\n const mapping: Record<string, E[keyof E]> = {}\n keys.forEach((key) => {\n mapping[key] = enumObject[key as keyof E]\n })\n\n // Find the key corresponding to the default value\n const defaultKey =\n keys.find((key) => enumObject[key as keyof E] === defaultValue) || keys[0]\n\n return {\n defaultValue: enumObject[defaultKey as keyof E],\n options: keys,\n mapping,\n control: { type: 'radio' },\n }\n}\n"]}
@@ -0,0 +1,84 @@
1
+ import { getDisabledContainerTheme, getActiveContainerTheme, getContainerTheme } from './chunk-FVKIUNIP.mjs';
2
+ import { P2, P1 } from './chunk-HQG6Q2EY.mjs';
3
+ import { THEME } from './chunk-JB4TYHDE.mjs';
4
+ import { Size, Style } from './chunk-URJXIWFX.mjs';
5
+ import { useMemo } from 'react';
6
+ import clsx from 'clsx';
7
+ import { jsx, jsxs } from 'react/jsx-runtime';
8
+
9
+ var TextButton = ({
10
+ text,
11
+ leftIconComponent,
12
+ rightIconComponent,
13
+ size = 0 /* S */,
14
+ theme = THEME.normal,
15
+ style = 1 /* DARK */,
16
+ active = false,
17
+ disabled = false,
18
+ loading = false,
19
+ className = ""
20
+ }) => {
21
+ const TextJSX = useMemo(
22
+ () => size === 0 /* S */ ? /* @__PURE__ */ jsx(P2, { text, weight: P2.Weight.bold }) : /* @__PURE__ */ jsx(P1, { text, weight: P1.Weight.bold }),
23
+ [size, text]
24
+ );
25
+ const themeClass = useMemo(() => {
26
+ const themeFunc = disabled ? getDisabledContainerTheme : active ? getActiveContainerTheme : getContainerTheme;
27
+ return themeFunc(theme, style);
28
+ }, [disabled, active, theme, style]);
29
+ return /* @__PURE__ */ jsx(
30
+ "div",
31
+ {
32
+ className: clsx(
33
+ "flex items-center",
34
+ {
35
+ "cursor-default": disabled,
36
+ "cursor-pointer": !disabled
37
+ },
38
+ themeClass,
39
+ className
40
+ ),
41
+ children: /* @__PURE__ */ jsxs("div", { className: "relative flex justify-center items-center", children: [
42
+ /* @__PURE__ */ jsxs(
43
+ "div",
44
+ {
45
+ className: clsx("flex justify-center items-center", {
46
+ "opacity-0": loading,
47
+ "opacity-100": !loading
48
+ }),
49
+ children: [
50
+ /* @__PURE__ */ jsx("div", { className: "flex items-center mr-[4px]", children: leftIconComponent }),
51
+ TextJSX,
52
+ /* @__PURE__ */ jsx("div", { className: "flex items-center ml-[4px]", children: rightIconComponent })
53
+ ]
54
+ }
55
+ ),
56
+ /* @__PURE__ */ jsx(
57
+ "span",
58
+ {
59
+ className: clsx(
60
+ "inline-block absolute box-border animation-spin",
61
+ "border-2 border-solid border-gray-400 border-t-gray-600 rounded-[50%]",
62
+ {
63
+ "size-[18px]": size === 0 /* S */,
64
+ "size-[24px]": size === 1 /* L */
65
+ },
66
+ {
67
+ "opacity-0": !loading,
68
+ "opacity-100": loading
69
+ }
70
+ )
71
+ }
72
+ )
73
+ ] })
74
+ }
75
+ );
76
+ };
77
+ TextButton.Size = Size;
78
+ TextButton.Style = Style;
79
+ TextButton.THEME = THEME;
80
+ var text_button_default = TextButton;
81
+
82
+ export { text_button_default };
83
+ //# sourceMappingURL=chunk-U22UKMAJ.mjs.map
84
+ //# sourceMappingURL=chunk-U22UKMAJ.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/button/components/text-button/index.tsx"],"names":[],"mappings":";;;;;;;;AAyBA,IAAM,aAIF,CAAC;AAAA,EACH,IAAA;AAAA,EACA,iBAAA;AAAA,EACA,kBAAA;AAAA,EACA,IAAA,GAAA,CAAA;AAAA,EACA,QAAQ,KAAA,CAAM,MAAA;AAAA,EACd,KAAA,GAAA,CAAA;AAAA,EACA,MAAA,GAAS,KAAA;AAAA,EACT,QAAA,GAAW,KAAA;AAAA,EACX,OAAA,GAAU,KAAA;AAAA,EACV,SAAA,GAAY;AACd,CAAA,KAAM;AACJ,EAAA,MAAM,OAAA,GAAU,OAAA;AAAA,IACd,MAAO,IAAA,KAAA,CAAA,2BAAkB,GAAA,CAAC,EAAA,EAAA,EAAG,IAAA,EAAY,QAAQ,EAAA,CAAG,MAAA,CAAO,IAAA,EAAM,CAAA,uBAAM,EAAA,EAAA,EAAG,IAAA,EAAY,MAAA,EAAQ,EAAA,CAAG,OAAO,IAAA,EAAM,CAAA;AAAA,IAC9G,CAAC,MAAM,IAAI;AAAA,GACb;AACA,EAAA,MAAM,UAAA,GAAa,QAAQ,MAAM;AAC/B,IAAA,MAAM,SAAA,GAAY,QAAA,GAAW,yBAAA,GAA6B,MAAA,GAAS,uBAAA,GAA0B,iBAAA;AAC7F,IAAA,OAAO,SAAA,CAAU,OAAO,KAAK,CAAA;AAAA,EAC/B,GAAG,CAAC,QAAA,EAAU,MAAA,EAAQ,KAAA,EAAO,KAAK,CAAC,CAAA;AAEnC,EAAA,uBACE,GAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAW,IAAA;AAAA,QACT,mBAAA;AAAA,QACA;AAAA,UACE,gBAAA,EAAkB,QAAA;AAAA,UAClB,kBAAkB,CAAC;AAAA,SACrB;AAAA,QACA,UAAA;AAAA,QACA;AAAA,OACF;AAAA,MAEA,QAAA,kBAAA,IAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,2CAAA,EACb,QAAA,EAAA;AAAA,wBAAA,IAAA;AAAA,UAAC,KAAA;AAAA,UAAA;AAAA,YACC,SAAA,EAAW,KAAK,kCAAA,EAAoC;AAAA,cAClD,WAAA,EAAa,OAAA;AAAA,cACb,eAAe,CAAC;AAAA,aACjB,CAAA;AAAA,YAED,QAAA,EAAA;AAAA,8BAAA,GAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,4BAAA,EAA8B,QAAA,EAAA,iBAAA,EAAkB,CAAA;AAAA,cAC9D,OAAA;AAAA,8BACD,GAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,4BAAA,EAA8B,QAAA,EAAA,kBAAA,EAAmB;AAAA;AAAA;AAAA,SAClE;AAAA,wBACA,GAAA;AAAA,UAAC,MAAA;AAAA,UAAA;AAAA,YACC,SAAA,EAAW,IAAA;AAAA,cACT,iDAAA;AAAA,cACA,uEAAA;AAAA,cACA;AAAA,gBACE,aAAA,EAAe,IAAA,KAAA,CAAA;AAAA,gBACf,aAAA,EAAe,IAAA,KAAA,CAAA;AAAA,eACjB;AAAA,cACA;AAAA,gBACE,aAAa,CAAC,OAAA;AAAA,gBACd,aAAA,EAAe;AAAA;AACjB;AACF;AAAA;AACF,OAAA,EACF;AAAA;AAAA,GACF;AAEJ,CAAA;AACA,UAAA,CAAW,IAAA,GAAO,IAAA;AAClB,UAAA,CAAW,KAAA,GAAQ,KAAA;AACnB,UAAA,CAAW,KAAA,GAAQ,KAAA;AAEnB,IAAO,mBAAA,GAAQ","file":"chunk-U22UKMAJ.mjs","sourcesContent":["import { type FC, type ReactElement, useMemo } from 'react'\nimport clsx from 'clsx'\n// components\nimport { P1, P2 } from '../../../text/paragraph'\n// enums\nimport { Size, Style } from '../../enum'\n// type\nimport type { Theme } from '../../constant'\n// constants\nimport { THEME } from '../../constant'\n// utils\nimport { getContainerTheme, getActiveContainerTheme, getDisabledContainerTheme } from './theme'\n\ntype TextButtonProps = {\n text: string\n leftIconComponent?: ReactElement\n rightIconComponent?: ReactElement\n size?: Size\n style?: Style\n theme?: Theme\n active?: boolean\n disabled?: boolean\n loading?: boolean\n className?: string\n}\nconst TextButton: FC<TextButtonProps> & {\n Size: typeof Size\n Style: typeof Style\n THEME: typeof THEME\n} = ({\n text,\n leftIconComponent,\n rightIconComponent,\n size = Size.S,\n theme = THEME.normal,\n style = Style.DARK,\n active = false,\n disabled = false,\n loading = false,\n className = '',\n}) => {\n const TextJSX = useMemo(\n () => (size === Size.S ? <P2 text={text} weight={P2.Weight.bold} /> : <P1 text={text} weight={P1.Weight.bold} />),\n [size, text]\n )\n const themeClass = useMemo(() => {\n const themeFunc = disabled ? getDisabledContainerTheme : (active ? getActiveContainerTheme : getContainerTheme)\n return themeFunc(theme, style)\n }, [disabled, active, theme, style])\n\n return (\n <div\n className={clsx(\n 'flex items-center',\n {\n 'cursor-default': disabled,\n 'cursor-pointer': !disabled,\n },\n themeClass,\n className\n )}\n >\n <div className=\"relative flex justify-center items-center\">\n <div\n className={clsx('flex justify-center items-center', {\n 'opacity-0': loading,\n 'opacity-100': !loading,\n })}\n >\n <div className=\"flex items-center mr-[4px]\">{leftIconComponent}</div>\n {TextJSX}\n <div className=\"flex items-center ml-[4px]\">{rightIconComponent}</div>\n </div>\n <span\n className={clsx(\n 'inline-block absolute box-border animation-spin',\n 'border-2 border-solid border-gray-400 border-t-gray-600 rounded-[50%]',\n {\n 'size-[18px]': size === Size.S,\n 'size-[24px]': size === Size.L,\n },\n {\n 'opacity-0': !loading,\n 'opacity-100': loading,\n }\n )}\n />\n </div>\n </div>\n )\n}\nTextButton.Size = Size\nTextButton.Style = Style\nTextButton.THEME = THEME\n\nexport default TextButton\n"]}
@@ -0,0 +1,16 @@
1
+ // src/button/enum.ts
2
+ var Size = /* @__PURE__ */ ((Size2) => {
3
+ Size2[Size2["S"] = 0] = "S";
4
+ Size2[Size2["L"] = 1] = "L";
5
+ return Size2;
6
+ })(Size || {});
7
+ var Style = /* @__PURE__ */ ((Style2) => {
8
+ Style2[Style2["BRAND"] = 0] = "BRAND";
9
+ Style2[Style2["DARK"] = 1] = "DARK";
10
+ Style2[Style2["LIGHT"] = 2] = "LIGHT";
11
+ return Style2;
12
+ })(Style || {});
13
+
14
+ export { Size, Style };
15
+ //# sourceMappingURL=chunk-URJXIWFX.mjs.map
16
+ //# sourceMappingURL=chunk-URJXIWFX.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/button/enum.ts"],"names":["Size","Style"],"mappings":";AAAO,IAAK,IAAA,qBAAAA,KAAAA,KAAL;AACL,EAAAA,KAAAA,CAAAA,KAAAA,CAAA,GAAA,CAAA,GAAA,CAAA,CAAA,GAAA,GAAA;AACA,EAAAA,KAAAA,CAAAA,KAAAA,CAAA,GAAA,CAAA,GAAA,CAAA,CAAA,GAAA,GAAA;AAFU,EAAA,OAAAA,KAAAA;AAAA,CAAA,EAAA,IAAA,IAAA,EAAA;AAKL,IAAK,KAAA,qBAAAC,MAAAA,KAAL;AACL,EAAAA,MAAAA,CAAAA,MAAAA,CAAA,OAAA,CAAA,GAAA,CAAA,CAAA,GAAA,OAAA;AACA,EAAAA,MAAAA,CAAAA,MAAAA,CAAA,MAAA,CAAA,GAAA,CAAA,CAAA,GAAA,MAAA;AACA,EAAAA,MAAAA,CAAAA,MAAAA,CAAA,OAAA,CAAA,GAAA,CAAA,CAAA,GAAA,OAAA;AAHU,EAAA,OAAAA,MAAAA;AAAA,CAAA,EAAA,KAAA,IAAA,EAAA","file":"chunk-URJXIWFX.mjs","sourcesContent":["export enum Size {\n S,\n L,\n}\n\nexport enum Style {\n BRAND,\n DARK,\n LIGHT,\n}\n"]}
@@ -0,0 +1,16 @@
1
+ import { jsx } from 'react/jsx-runtime';
2
+
3
+ // src/customized-link/external-link.tsx
4
+ var ExternalLink = ({
5
+ to,
6
+ target = "_self",
7
+ className = "",
8
+ children
9
+ }) => {
10
+ return /* @__PURE__ */ jsx("a", { href: to, target, className, children });
11
+ };
12
+ var external_link_default = ExternalLink;
13
+
14
+ export { external_link_default };
15
+ //# sourceMappingURL=chunk-X2UWIBNH.mjs.map
16
+ //# sourceMappingURL=chunk-X2UWIBNH.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/customized-link/external-link.tsx"],"names":[],"mappings":";;;AAIA,IAAM,eAAsC,CAAC;AAAA,EAC3C,EAAA;AAAA,EACA,MAAA,GAAS,OAAA;AAAA,EACT,SAAA,GAAY,EAAA;AAAA,EACZ;AACF,CAAA,KAAM;AACJ,EAAA,2BACG,GAAA,EAAA,EAAE,IAAA,EAAM,EAAA,EAAI,MAAA,EAAgB,WAC1B,QAAA,EACH,CAAA;AAEJ,CAAA;AAEA,IAAO,qBAAA,GAAQ","file":"chunk-X2UWIBNH.mjs","sourcesContent":["import type { FC } from 'react'\nimport type { CustomizedLinkProps } from './type'\n\ntype ExternalLinkProps = CustomizedLinkProps\nconst ExternalLink: FC<ExternalLinkProps> = ({\n to,\n target = '_self',\n className = '',\n children,\n}) => {\n return (\n <a href={to} target={target} className={className}>\n {children}\n </a>\n )\n}\n\nexport default ExternalLink\n"]}
@@ -0,0 +1,17 @@
1
+ import Link from 'next/link';
2
+ import { jsx } from 'react/jsx-runtime';
3
+
4
+ // src/customized-link/internal-link.tsx
5
+ var InternalLink = ({
6
+ to,
7
+ target = "_self",
8
+ className = "",
9
+ children
10
+ }) => {
11
+ return /* @__PURE__ */ jsx(Link, { href: to, target, className, children });
12
+ };
13
+ var internal_link_default = InternalLink;
14
+
15
+ export { internal_link_default };
16
+ //# sourceMappingURL=chunk-XO7SDD7W.mjs.map
17
+ //# sourceMappingURL=chunk-XO7SDD7W.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/customized-link/internal-link.tsx"],"names":[],"mappings":";;;;AAOA,IAAM,eAAsC,CAAC;AAAA,EAC3C,EAAA;AAAA,EACA,MAAA,GAAS,OAAA;AAAA,EACT,SAAA,GAAY,EAAA;AAAA,EACZ;AACF,CAAA,KAAM;AACJ,EAAA,2BACG,IAAA,EAAA,EAAK,IAAA,EAAM,EAAA,EAAI,MAAA,EAAgB,WAC7B,QAAA,EACH,CAAA;AAEJ,CAAA;AAEA,IAAO,qBAAA,GAAQ","file":"chunk-XO7SDD7W.mjs","sourcesContent":["'use client'\n\nimport Link from 'next/link'\nimport type { FC } from 'react'\nimport type { CustomizedLinkProps } from './type'\n\ntype InternalLinkProps = CustomizedLinkProps\nconst InternalLink: FC<InternalLinkProps> = ({\n to,\n target = '_self',\n className = '',\n children,\n}) => {\n return (\n <Link href={to} target={target} className={className}>\n {children}\n </Link>\n )\n}\n\nexport default InternalLink\n"]}
@@ -0,0 +1,27 @@
1
+ import { H2 } from './chunk-JHLT5GDV.mjs';
2
+ import { P1 } from './chunk-HQG6Q2EY.mjs';
3
+ import clsx from 'clsx';
4
+ import { jsxs, jsx } from 'react/jsx-runtime';
5
+
6
+ var Title1 = ({ title, subtitle = "", className = "" }) => {
7
+ return /* @__PURE__ */ jsxs("div", { className: clsx("flex justify-between flex-col", className), children: [
8
+ /* @__PURE__ */ jsxs("div", { className: clsx("flex items-baseline gap-[16px]"), children: [
9
+ /* @__PURE__ */ jsx(H2, { className: "text-gray-800", text: title }),
10
+ subtitle ? /* @__PURE__ */ jsx(P1, { className: "text-gray-600", text: subtitle }) : null
11
+ ] }),
12
+ /* @__PURE__ */ jsx(
13
+ "div",
14
+ {
15
+ className: clsx(
16
+ "w-full h-[1px] bg-gray-300 mt-[8px]",
17
+ "desktop:mt-[16px]"
18
+ )
19
+ }
20
+ )
21
+ ] });
22
+ };
23
+ var title1_default = Title1;
24
+
25
+ export { title1_default };
26
+ //# sourceMappingURL=chunk-ZALXWB2J.mjs.map
27
+ //# sourceMappingURL=chunk-ZALXWB2J.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/title-bar/components/title1.tsx"],"names":[],"mappings":";;;;;AAYA,IAAM,MAAA,GAA0B,CAAC,EAAE,KAAA,EAAO,WAAW,EAAA,EAAI,SAAA,GAAY,IAAG,KAAM;AAC5E,EAAA,4BACG,KAAA,EAAA,EAAI,SAAA,EAAW,IAAA,CAAK,+BAAA,EAAiC,SAAS,CAAA,EAC7D,QAAA,EAAA;AAAA,oBAAA,IAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAW,IAAA,CAAK,gCAAgC,CAAA,EACnD,QAAA,EAAA;AAAA,sBAAA,GAAA,CAAC,EAAA,EAAA,EAAG,SAAA,EAAU,eAAA,EAAgB,IAAA,EAAM,KAAA,EAAO,CAAA;AAAA,MAC1C,2BAAW,GAAA,CAAC,EAAA,EAAA,EAAG,WAAU,eAAA,EAAgB,IAAA,EAAM,UAAU,CAAA,GAAK;AAAA,KAAA,EACjE,CAAA;AAAA,oBACA,GAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACC,SAAA,EAAW,IAAA;AAAA,UACT,qCAAA;AAAA,UACA;AAAA;AACF;AAAA;AACF,GAAA,EACF,CAAA;AAEJ,CAAA;AAEA,IAAO,cAAA,GAAQ","file":"chunk-ZALXWB2J.mjs","sourcesContent":["import clsx from 'clsx'\nimport type { FC } from 'react'\n// components\nimport { H2 } from '../../text/heading'\nimport { P1 } from '../../text/paragraph'\n\ntype Title1Props = {\n title: string\n subtitle?: string\n className?: string\n}\n\nconst Title1: FC<Title1Props> = ({ title, subtitle = '', className = '' }) => {\n return (\n <div className={clsx('flex justify-between flex-col', className)}>\n <div className={clsx('flex items-baseline gap-[16px]')}>\n <H2 className=\"text-gray-800\" text={title} />\n {subtitle ? <P1 className=\"text-gray-600\" text={subtitle} /> : null}\n </div>\n <div\n className={clsx(\n 'w-full h-[1px] bg-gray-300 mt-[8px]',\n 'desktop:mt-[16px]'\n )}\n />\n </div>\n )\n}\n\nexport default Title1\n"]}
@@ -0,0 +1,7 @@
1
+ import { FC } from 'react';
2
+ import { CustomizedLinkProps } from './type.mjs';
3
+
4
+ type ExternalLinkProps = CustomizedLinkProps;
5
+ declare const ExternalLink: FC<ExternalLinkProps>;
6
+
7
+ export { ExternalLink as default };
@@ -0,0 +1,7 @@
1
+ import { FC } from 'react';
2
+ import { CustomizedLinkProps } from './type.js';
3
+
4
+ type ExternalLinkProps = CustomizedLinkProps;
5
+ declare const ExternalLink: FC<ExternalLinkProps>;
6
+
7
+ export { ExternalLink as default };
@@ -0,0 +1,18 @@
1
+ 'use strict';
2
+
3
+ var jsxRuntime = require('react/jsx-runtime');
4
+
5
+ // src/customized-link/external-link.tsx
6
+ var ExternalLink = ({
7
+ to,
8
+ target = "_self",
9
+ className = "",
10
+ children
11
+ }) => {
12
+ return /* @__PURE__ */ jsxRuntime.jsx("a", { href: to, target, className, children });
13
+ };
14
+ var external_link_default = ExternalLink;
15
+
16
+ module.exports = external_link_default;
17
+ //# sourceMappingURL=external-link.js.map
18
+ //# sourceMappingURL=external-link.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/customized-link/external-link.tsx"],"names":[],"mappings":";;;;;AAIA,IAAM,eAAsC,CAAC;AAAA,EAC3C,EAAA;AAAA,EACA,MAAA,GAAS,OAAA;AAAA,EACT,SAAA,GAAY,EAAA;AAAA,EACZ;AACF,CAAA,KAAM;AACJ,EAAA,sCACG,GAAA,EAAA,EAAE,IAAA,EAAM,EAAA,EAAI,MAAA,EAAgB,WAC1B,QAAA,EACH,CAAA;AAEJ,CAAA;AAEA,IAAO,qBAAA,GAAQ","file":"external-link.js","sourcesContent":["import type { FC } from 'react'\nimport type { CustomizedLinkProps } from './type'\n\ntype ExternalLinkProps = CustomizedLinkProps\nconst ExternalLink: FC<ExternalLinkProps> = ({\n to,\n target = '_self',\n className = '',\n children,\n}) => {\n return (\n <a href={to} target={target} className={className}>\n {children}\n </a>\n )\n}\n\nexport default ExternalLink\n"]}
@@ -0,0 +1,3 @@
1
+ export { external_link_default as default } from '../chunk-X2UWIBNH.mjs';
2
+ //# sourceMappingURL=external-link.mjs.map
3
+ //# sourceMappingURL=external-link.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"external-link.mjs"}