@yosgo/swap-ui 1.0.141 → 2.0.0-beta.1

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 (113) hide show
  1. package/README.md +50 -36
  2. package/build/index.cjs +3693 -0
  3. package/build/index.cjs.map +1 -0
  4. package/build/index.d.cts +710 -0
  5. package/build/index.d.ts +710 -50
  6. package/build/index.js +3553 -13924
  7. package/build/index.js.map +1 -1
  8. package/package.json +63 -63
  9. package/build/AppBar/AppBar.d.ts +0 -4
  10. package/build/AppBar/AppBar.types.d.ts +0 -2
  11. package/build/AutoComplete/AutoComplete.d.ts +0 -6
  12. package/build/AutoComplete/AutoComplete.types.d.ts +0 -23
  13. package/build/AutoComplete/BankCodes.d.ts +0 -5
  14. package/build/Banner/Banner.d.ts +0 -4
  15. package/build/Banner/Banner.types.d.ts +0 -10
  16. package/build/Breadcrumb/Breadcrumb.d.ts +0 -4
  17. package/build/Breadcrumb/Breadcrumb.types.d.ts +0 -7
  18. package/build/BreadcrumbItem/BreadcrumbItem.d.ts +0 -4
  19. package/build/BreadcrumbItem/BreadcrumbItem.types.d.ts +0 -4
  20. package/build/Button/Button.d.ts +0 -4
  21. package/build/Button/Button.types.d.ts +0 -13
  22. package/build/Card/Card.d.ts +0 -4
  23. package/build/Card/Card.types.d.ts +0 -17
  24. package/build/CheckBox/CheckBox.d.ts +0 -4
  25. package/build/CheckBox/CheckBox.types.d.ts +0 -7
  26. package/build/CheckBox/CheckBoxList.d.ts +0 -4
  27. package/build/CheckBox/CheckBoxList.types.d.ts +0 -9
  28. package/build/CheckBox/RadioButton.d.ts +0 -4
  29. package/build/CheckBox/RadioButton.types.d.ts +0 -7
  30. package/build/CheckBox/RadioList.d.ts +0 -4
  31. package/build/CheckBox/RadioList.types.d.ts +0 -9
  32. package/build/Chip/Chip.d.ts +0 -4
  33. package/build/Chip/Chip.types.d.ts +0 -11
  34. package/build/CircularProgress/CircularProgress.d.ts +0 -4
  35. package/build/CircularProgress/CircularProgress.types.d.ts +0 -5
  36. package/build/Container/Container.d.ts +0 -4
  37. package/build/Container/Container.types.d.ts +0 -7
  38. package/build/DatePicker/DatePicker.d.ts +0 -4
  39. package/build/DatePicker/DatePicker.types.d.ts +0 -14
  40. package/build/Dropdown/Dropdown.d.ts +0 -4
  41. package/build/Dropdown/Dropdown.types.d.ts +0 -9
  42. package/build/IconButton/IconButton.d.ts +0 -4
  43. package/build/IconButton/IconButton.types.d.ts +0 -7
  44. package/build/LandingPage/LandingPage.d.ts +0 -4
  45. package/build/LandingPage/LandingPage.types.d.ts +0 -14
  46. package/build/LandingPage/LandingPageMobile.d.ts +0 -4
  47. package/build/LandingPage/LandingPageMobile.types.d.ts +0 -14
  48. package/build/Link/Link.d.ts +0 -4
  49. package/build/Link/Link.types.d.ts +0 -4
  50. package/build/Menu/Menu.d.ts +0 -4
  51. package/build/Menu/Menu.types.d.ts +0 -3
  52. package/build/Menu/MenuItem.d.ts +0 -4
  53. package/build/Menu/MenuItem.types.d.ts +0 -12
  54. package/build/Menu/Select.d.ts +0 -4
  55. package/build/Menu/Select.types.d.ts +0 -41
  56. package/build/Modal/Modal.d.ts +0 -4
  57. package/build/Modal/Modal.types.d.ts +0 -55
  58. package/build/Pagination/Pagination.d.ts +0 -4
  59. package/build/Pagination/Pagination.types.d.ts +0 -3
  60. package/build/Paper/Paper.d.ts +0 -4
  61. package/build/Paper/Paper.types.d.ts +0 -5
  62. package/build/Progress/Progress.d.ts +0 -4
  63. package/build/Progress/Progress.types.d.ts +0 -8
  64. package/build/SWAPAppBar/SWAPAppBar.d.ts +0 -4
  65. package/build/SWAPAppBar/SWAPAppBar.types.d.ts +0 -19
  66. package/build/SWAPBanner/SWAPBanner.d.ts +0 -4
  67. package/build/SWAPBanner/SWAPBanner.types.d.ts +0 -16
  68. package/build/SWAPCopyField/SWAPCopyField.d.ts +0 -4
  69. package/build/SWAPCopyField/SWAPCopyField.types.d.ts +0 -8
  70. package/build/SWAPDialog/SWAPDialog.d.ts +0 -4
  71. package/build/SWAPDialog/SWAPDialog.types.d.ts +0 -18
  72. package/build/SWAPLogo/SWAPLogo.d.ts +0 -4
  73. package/build/SWAPLogo/SWAPLogo.types.d.ts +0 -10
  74. package/build/SWAPModal/SWAPModal.d.ts +0 -4
  75. package/build/SWAPModal/SWAPModal.types.d.ts +0 -29
  76. package/build/SWAPShare/SWAPShare.d.ts +0 -4
  77. package/build/SWAPShare/SWAPShare.types.d.ts +0 -6
  78. package/build/SWAPSpace/SWAPSpace.d.ts +0 -4
  79. package/build/SWAPSpace/SWAPSpace.types.d.ts +0 -3
  80. package/build/SWAPTaxField/SWAPTaxField.d.ts +0 -24
  81. package/build/SWAPTaxField/SWAPTaxField.types.d.ts +0 -13
  82. package/build/SWAPTheme/SWAPTheme.d.ts +0 -7
  83. package/build/SWAPTheme/SWAPTheme.types.d.ts +0 -166
  84. package/build/Skeleton/Skeleton.d.ts +0 -4
  85. package/build/Skeleton/Skeleton.types.d.ts +0 -3
  86. package/build/Snackbar/Snackbar.d.ts +0 -4
  87. package/build/Snackbar/Snackbar.types.d.ts +0 -20
  88. package/build/Styles/Styles.d.ts +0 -4
  89. package/build/Styles/Styles.types.d.ts +0 -8
  90. package/build/Switch/Switch.d.ts +0 -4
  91. package/build/Switch/Switch.types.d.ts +0 -3
  92. package/build/Tab/SegmentedTab.d.ts +0 -4
  93. package/build/Tab/SegmentedTab.types.d.ts +0 -7
  94. package/build/Tab/SegmentedTabs.d.ts +0 -4
  95. package/build/Tab/SegmentedTabs.types.d.ts +0 -5
  96. package/build/Tab/Tab.d.ts +0 -4
  97. package/build/Tab/Tab.types.d.ts +0 -10
  98. package/build/Tab/TabPanel.d.ts +0 -10
  99. package/build/Tab/Tabs.d.ts +0 -4
  100. package/build/Tab/Tabs.types.d.ts +0 -3
  101. package/build/Table/Table.d.ts +0 -4
  102. package/build/Table/Table.types.d.ts +0 -2
  103. package/build/TaxTextField/TaxTextField.d.ts +0 -24
  104. package/build/TaxTextField/TaxTextField.types.d.ts +0 -26
  105. package/build/TextField/TextField.d.ts +0 -4
  106. package/build/TextField/TextField.types.d.ts +0 -7
  107. package/build/Tooltip/Tooltip.d.ts +0 -4
  108. package/build/Tooltip/Tooltip.types.d.ts +0 -15
  109. package/build/Typography/Typography.d.ts +0 -4
  110. package/build/Typography/Typography.types.d.ts +0 -8
  111. package/build/index.esm.js +0 -13928
  112. package/build/index.esm.js.map +0 -1
  113. package/build/utils/useBreakpoints.d.ts +0 -2
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../node_modules/react-is/cjs/react-is.production.js","../node_modules/react-is/cjs/react-is.development.js","../node_modules/react-is/index.js","../src/index.ts","../src/theme/SWAPThemeProvider.tsx","../src/theme/createSwapTheme.ts","../node_modules/@mui/utils/deepmerge/deepmerge.mjs","../src/theme/tokens.ts","../src/theme/button.styles.ts","../src/theme/typography.styles.ts","../src/components/Typography.tsx","../src/theme/textColor.ts","../src/components/Chip.tsx","../src/utils/cssSize.ts","../src/components/CircularProgress.tsx","../src/components/Tooltip.tsx","../src/components/Container.tsx","../src/components/Paper.tsx","../src/components/Link.tsx","../src/components/IconButton.tsx","../src/components/Breadcrumb.tsx","../src/components/BreadcrumbItem.tsx","../src/components/TextField.tsx","../src/components/CheckBox.tsx","../src/components/RadioButton.tsx","../src/components/Switch.tsx","../src/components/Select.tsx","../src/components/MenuItem.tsx","../src/components/Tab.tsx","../src/components/Tabs.tsx","../src/components/TabPanel.tsx","../src/components/Banner.tsx","../src/components/Card.tsx","../src/components/Progress.tsx","../src/components/Modal.tsx","../node_modules/@mui/icons-material/utils/createSvgIcon.mjs","../node_modules/@mui/icons-material/Close.mjs","../node_modules/@mui/icons-material/CheckCircle.mjs","../node_modules/@mui/icons-material/Warning.mjs","../src/hooks/useBreakpoints.ts","../src/components/Snackbar.tsx","../src/components/RadioList.tsx","../src/components/selectionList.styles.ts","../src/components/CheckBoxList.tsx","../src/components/AutoComplete.tsx","../src/components/Dropdown.tsx","../src/components/SegmentedTab.tsx","../src/components/SegmentedTabs.tsx","../src/components/SWAPLogo.tsx","../src/components/SWAPShare.tsx","../src/components/TaxTextField.tsx","../src/tax/constants.ts","../src/components/DatePicker.tsx"],"sourcesContent":["/**\n * @license React\n * react-is.production.js\n *\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\"use strict\";\nvar REACT_ELEMENT_TYPE = Symbol.for(\"react.transitional.element\"),\n REACT_PORTAL_TYPE = Symbol.for(\"react.portal\"),\n REACT_FRAGMENT_TYPE = Symbol.for(\"react.fragment\"),\n REACT_STRICT_MODE_TYPE = Symbol.for(\"react.strict_mode\"),\n REACT_PROFILER_TYPE = Symbol.for(\"react.profiler\"),\n REACT_CONSUMER_TYPE = Symbol.for(\"react.consumer\"),\n REACT_CONTEXT_TYPE = Symbol.for(\"react.context\"),\n REACT_FORWARD_REF_TYPE = Symbol.for(\"react.forward_ref\"),\n REACT_SUSPENSE_TYPE = Symbol.for(\"react.suspense\"),\n REACT_SUSPENSE_LIST_TYPE = Symbol.for(\"react.suspense_list\"),\n REACT_MEMO_TYPE = Symbol.for(\"react.memo\"),\n REACT_LAZY_TYPE = Symbol.for(\"react.lazy\"),\n REACT_VIEW_TRANSITION_TYPE = Symbol.for(\"react.view_transition\"),\n REACT_CLIENT_REFERENCE = Symbol.for(\"react.client.reference\");\nfunction typeOf(object) {\n if (\"object\" === typeof object && null !== object) {\n var $$typeof = object.$$typeof;\n switch ($$typeof) {\n case REACT_ELEMENT_TYPE:\n switch (((object = object.type), object)) {\n case REACT_FRAGMENT_TYPE:\n case REACT_PROFILER_TYPE:\n case REACT_STRICT_MODE_TYPE:\n case REACT_SUSPENSE_TYPE:\n case REACT_SUSPENSE_LIST_TYPE:\n case REACT_VIEW_TRANSITION_TYPE:\n return object;\n default:\n switch (((object = object && object.$$typeof), object)) {\n case REACT_CONTEXT_TYPE:\n case REACT_FORWARD_REF_TYPE:\n case REACT_LAZY_TYPE:\n case REACT_MEMO_TYPE:\n return object;\n case REACT_CONSUMER_TYPE:\n return object;\n default:\n return $$typeof;\n }\n }\n case REACT_PORTAL_TYPE:\n return $$typeof;\n }\n }\n}\nexports.ContextConsumer = REACT_CONSUMER_TYPE;\nexports.ContextProvider = REACT_CONTEXT_TYPE;\nexports.Element = REACT_ELEMENT_TYPE;\nexports.ForwardRef = REACT_FORWARD_REF_TYPE;\nexports.Fragment = REACT_FRAGMENT_TYPE;\nexports.Lazy = REACT_LAZY_TYPE;\nexports.Memo = REACT_MEMO_TYPE;\nexports.Portal = REACT_PORTAL_TYPE;\nexports.Profiler = REACT_PROFILER_TYPE;\nexports.StrictMode = REACT_STRICT_MODE_TYPE;\nexports.Suspense = REACT_SUSPENSE_TYPE;\nexports.SuspenseList = REACT_SUSPENSE_LIST_TYPE;\nexports.isContextConsumer = function (object) {\n return typeOf(object) === REACT_CONSUMER_TYPE;\n};\nexports.isContextProvider = function (object) {\n return typeOf(object) === REACT_CONTEXT_TYPE;\n};\nexports.isElement = function (object) {\n return (\n \"object\" === typeof object &&\n null !== object &&\n object.$$typeof === REACT_ELEMENT_TYPE\n );\n};\nexports.isForwardRef = function (object) {\n return typeOf(object) === REACT_FORWARD_REF_TYPE;\n};\nexports.isFragment = function (object) {\n return typeOf(object) === REACT_FRAGMENT_TYPE;\n};\nexports.isLazy = function (object) {\n return typeOf(object) === REACT_LAZY_TYPE;\n};\nexports.isMemo = function (object) {\n return typeOf(object) === REACT_MEMO_TYPE;\n};\nexports.isPortal = function (object) {\n return typeOf(object) === REACT_PORTAL_TYPE;\n};\nexports.isProfiler = function (object) {\n return typeOf(object) === REACT_PROFILER_TYPE;\n};\nexports.isStrictMode = function (object) {\n return typeOf(object) === REACT_STRICT_MODE_TYPE;\n};\nexports.isSuspense = function (object) {\n return typeOf(object) === REACT_SUSPENSE_TYPE;\n};\nexports.isSuspenseList = function (object) {\n return typeOf(object) === REACT_SUSPENSE_LIST_TYPE;\n};\nexports.isValidElementType = function (type) {\n return \"string\" === typeof type ||\n \"function\" === typeof type ||\n type === REACT_FRAGMENT_TYPE ||\n type === REACT_PROFILER_TYPE ||\n type === REACT_STRICT_MODE_TYPE ||\n type === REACT_SUSPENSE_TYPE ||\n type === REACT_SUSPENSE_LIST_TYPE ||\n (\"object\" === typeof type &&\n null !== type &&\n (type.$$typeof === REACT_LAZY_TYPE ||\n type.$$typeof === REACT_MEMO_TYPE ||\n type.$$typeof === REACT_CONTEXT_TYPE ||\n type.$$typeof === REACT_CONSUMER_TYPE ||\n type.$$typeof === REACT_FORWARD_REF_TYPE ||\n type.$$typeof === REACT_CLIENT_REFERENCE ||\n void 0 !== type.getModuleId))\n ? !0\n : !1;\n};\nexports.typeOf = typeOf;\n","/**\n * @license React\n * react-is.development.js\n *\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\"use strict\";\n\"production\" !== process.env.NODE_ENV &&\n (function () {\n function typeOf(object) {\n if (\"object\" === typeof object && null !== object) {\n var $$typeof = object.$$typeof;\n switch ($$typeof) {\n case REACT_ELEMENT_TYPE:\n switch (((object = object.type), object)) {\n case REACT_FRAGMENT_TYPE:\n case REACT_PROFILER_TYPE:\n case REACT_STRICT_MODE_TYPE:\n case REACT_SUSPENSE_TYPE:\n case REACT_SUSPENSE_LIST_TYPE:\n case REACT_VIEW_TRANSITION_TYPE:\n return object;\n default:\n switch (((object = object && object.$$typeof), object)) {\n case REACT_CONTEXT_TYPE:\n case REACT_FORWARD_REF_TYPE:\n case REACT_LAZY_TYPE:\n case REACT_MEMO_TYPE:\n return object;\n case REACT_CONSUMER_TYPE:\n return object;\n default:\n return $$typeof;\n }\n }\n case REACT_PORTAL_TYPE:\n return $$typeof;\n }\n }\n }\n var REACT_ELEMENT_TYPE = Symbol.for(\"react.transitional.element\"),\n REACT_PORTAL_TYPE = Symbol.for(\"react.portal\"),\n REACT_FRAGMENT_TYPE = Symbol.for(\"react.fragment\"),\n REACT_STRICT_MODE_TYPE = Symbol.for(\"react.strict_mode\"),\n REACT_PROFILER_TYPE = Symbol.for(\"react.profiler\"),\n REACT_CONSUMER_TYPE = Symbol.for(\"react.consumer\"),\n REACT_CONTEXT_TYPE = Symbol.for(\"react.context\"),\n REACT_FORWARD_REF_TYPE = Symbol.for(\"react.forward_ref\"),\n REACT_SUSPENSE_TYPE = Symbol.for(\"react.suspense\"),\n REACT_SUSPENSE_LIST_TYPE = Symbol.for(\"react.suspense_list\"),\n REACT_MEMO_TYPE = Symbol.for(\"react.memo\"),\n REACT_LAZY_TYPE = Symbol.for(\"react.lazy\"),\n REACT_VIEW_TRANSITION_TYPE = Symbol.for(\"react.view_transition\"),\n REACT_CLIENT_REFERENCE = Symbol.for(\"react.client.reference\");\n exports.ContextConsumer = REACT_CONSUMER_TYPE;\n exports.ContextProvider = REACT_CONTEXT_TYPE;\n exports.Element = REACT_ELEMENT_TYPE;\n exports.ForwardRef = REACT_FORWARD_REF_TYPE;\n exports.Fragment = REACT_FRAGMENT_TYPE;\n exports.Lazy = REACT_LAZY_TYPE;\n exports.Memo = REACT_MEMO_TYPE;\n exports.Portal = REACT_PORTAL_TYPE;\n exports.Profiler = REACT_PROFILER_TYPE;\n exports.StrictMode = REACT_STRICT_MODE_TYPE;\n exports.Suspense = REACT_SUSPENSE_TYPE;\n exports.SuspenseList = REACT_SUSPENSE_LIST_TYPE;\n exports.isContextConsumer = function (object) {\n return typeOf(object) === REACT_CONSUMER_TYPE;\n };\n exports.isContextProvider = function (object) {\n return typeOf(object) === REACT_CONTEXT_TYPE;\n };\n exports.isElement = function (object) {\n return (\n \"object\" === typeof object &&\n null !== object &&\n object.$$typeof === REACT_ELEMENT_TYPE\n );\n };\n exports.isForwardRef = function (object) {\n return typeOf(object) === REACT_FORWARD_REF_TYPE;\n };\n exports.isFragment = function (object) {\n return typeOf(object) === REACT_FRAGMENT_TYPE;\n };\n exports.isLazy = function (object) {\n return typeOf(object) === REACT_LAZY_TYPE;\n };\n exports.isMemo = function (object) {\n return typeOf(object) === REACT_MEMO_TYPE;\n };\n exports.isPortal = function (object) {\n return typeOf(object) === REACT_PORTAL_TYPE;\n };\n exports.isProfiler = function (object) {\n return typeOf(object) === REACT_PROFILER_TYPE;\n };\n exports.isStrictMode = function (object) {\n return typeOf(object) === REACT_STRICT_MODE_TYPE;\n };\n exports.isSuspense = function (object) {\n return typeOf(object) === REACT_SUSPENSE_TYPE;\n };\n exports.isSuspenseList = function (object) {\n return typeOf(object) === REACT_SUSPENSE_LIST_TYPE;\n };\n exports.isValidElementType = function (type) {\n return \"string\" === typeof type ||\n \"function\" === typeof type ||\n type === REACT_FRAGMENT_TYPE ||\n type === REACT_PROFILER_TYPE ||\n type === REACT_STRICT_MODE_TYPE ||\n type === REACT_SUSPENSE_TYPE ||\n type === REACT_SUSPENSE_LIST_TYPE ||\n (\"object\" === typeof type &&\n null !== type &&\n (type.$$typeof === REACT_LAZY_TYPE ||\n type.$$typeof === REACT_MEMO_TYPE ||\n type.$$typeof === REACT_CONTEXT_TYPE ||\n type.$$typeof === REACT_CONSUMER_TYPE ||\n type.$$typeof === REACT_FORWARD_REF_TYPE ||\n type.$$typeof === REACT_CLIENT_REFERENCE ||\n void 0 !== type.getModuleId))\n ? !0\n : !1;\n };\n exports.typeOf = typeOf;\n })();\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}\n","export { SWAPThemeProvider } from \"./theme/SWAPThemeProvider\";\nexport type { SWAPThemeProviderProps } from \"./theme/SWAPThemeProvider\";\nexport { createSwapTheme } from \"./theme/createSwapTheme\";\nexport {\n swapColors,\n swapRadius,\n swapShadows,\n swapBreakpoints,\n swapFontFamily,\n} from \"./theme/tokens\";\nexport type { SwapColors } from \"./theme/tokens\";\n\nexport { default as Typography } from \"./components/Typography\";\nexport type { SwapTypographyProps } from \"./components/Typography\";\nexport { default as Chip } from \"./components/Chip\";\nexport type { ChipProps } from \"./components/Chip.types\";\nexport { default as CircularProgress } from \"./components/CircularProgress\";\nexport type { CircularProgressProps } from \"./components/CircularProgress.types\";\nexport { default as Tooltip } from \"./components/Tooltip\";\nexport type { TooltipProps } from \"./components/Tooltip.types\";\nexport { default as Container } from \"./components/Container\";\nexport type { ContainerProps } from \"./components/Container.types\";\nexport { default as Paper } from \"./components/Paper\";\nexport type { PaperProps } from \"./components/Paper.types\";\nexport { default as Link } from \"./components/Link\";\nexport type { LinkProps } from \"./components/Link.types\";\nexport { default as IconButton } from \"./components/IconButton\";\nexport type { IconButtonProps } from \"./components/IconButton.types\";\nexport { default as Breadcrumb } from \"./components/Breadcrumb\";\nexport type { BreadcrumbProps } from \"./components/Breadcrumb.types\";\nexport { default as BreadcrumbItem } from \"./components/BreadcrumbItem\";\nexport type { BreadcrumbItemProps } from \"./components/BreadcrumbItem.types\";\nexport { default as TextField } from \"./components/TextField\";\nexport type { TextFieldProps } from \"./components/TextField.types\";\nexport { default as CheckBox } from \"./components/CheckBox\";\nexport type { CheckBoxProps } from \"./components/CheckBox.types\";\nexport { default as RadioButton } from \"./components/RadioButton\";\nexport type { RadioButtonProps } from \"./components/RadioButton.types\";\nexport { default as Switch } from \"./components/Switch\";\nexport type { SwitchProps } from \"./components/Switch.types\";\nexport { default as Select } from \"./components/Select\";\nexport type { SelectProps } from \"./components/Select.types\";\nexport { default as MenuItem } from \"./components/MenuItem\";\nexport type { MenuItemProps } from \"./components/MenuItem.types\";\n\nexport { default as Tab } from \"./components/Tab\";\nexport { default as Tabs } from \"./components/Tabs\";\nexport { default as TabPanel } from \"./components/TabPanel\";\nexport type { TabProps, TabsProps, TabPanelProps } from \"./components/Tab.types\";\n\nexport { default as Banner } from \"./components/Banner\";\nexport type { BannerProps } from \"./components/Banner.types\";\nexport { default as Card } from \"./components/Card\";\nexport type { CardProps, CardButtonItem } from \"./components/Card.types\";\nexport { default as Progress } from \"./components/Progress\";\nexport type { ProgressProps } from \"./components/Progress.types\";\nexport { default as Modal } from \"./components/Modal\";\nexport type { ModalProps, ModalButtonItem } from \"./components/Modal.types\";\nexport { default as Snackbar } from \"./components/Snackbar\";\nexport type { SnackbarProps } from \"./components/Snackbar.types\";\nexport { default as RadioList } from \"./components/RadioList\";\nexport { default as CheckBoxList } from \"./components/CheckBoxList\";\nexport type { RadioListProps, CheckBoxListProps } from \"./components/RadioList.types\";\nexport { default as AutoComplete } from \"./components/AutoComplete\";\nexport type { AutoCompleteProps } from \"./components/AutoComplete.types\";\nexport type { AutocompleteCloseReason } from \"./components/AutoComplete\";\nexport { default as Dropdown } from \"./components/Dropdown\";\nexport type { DropdownProps } from \"./components/Dropdown.types\";\nexport { default as SegmentedTab } from \"./components/SegmentedTab\";\nexport { default as SegmentedTabs } from \"./components/SegmentedTabs\";\nexport type { SegmentedTabProps, SegmentedTabsProps } from \"./components/SegmentedTab.types\";\n\nexport { default as SWAPLogo } from \"./components/SWAPLogo\";\nexport type { SWAPLogoProps } from \"./components/SWAPLogo.types\";\nexport { default as SWAPShare } from \"./components/SWAPShare\";\nexport type { SWAPShareProps } from \"./components/SWAPShare.types\";\nexport { default as TaxTextField } from \"./components/TaxTextField\";\nexport type { TaxTextFieldProps } from \"./components/TaxTextField.types\";\nexport { default as DatePicker } from \"./components/DatePicker\";\nexport type { DatePickerProps } from \"./components/DatePicker.types\";\n\nexport {\n SWAPIncomeTypes,\n SWAPExpenseTypes,\n SWAPTaxIncomeLabel,\n SWAPTaxExpenseLabel,\n SWAPTaxDescription,\n} from \"./tax/constants\";\nexport type { IncomeCodeProps, ExpenseCodeProps, TaxFiledValueProps } from \"./components/TaxTextField.types\";\n\nexport { default as useBreakpoints } from \"./hooks/useBreakpoints\";\n\nexport const SWAP_UI_VERSION = \"2.0.0-beta.1\";\n","import * as React from \"react\";\nimport { ThemeProvider, type Theme } from \"@mui/material/styles\";\nimport CssBaseline from \"@mui/material/CssBaseline\";\nimport { createSwapTheme } from \"./createSwapTheme\";\n\nimport \"@fontsource/m-plus-rounded-1c/400.css\";\nimport \"@fontsource/m-plus-rounded-1c/700.css\";\nimport \"@fontsource/noto-sans-tc/400.css\";\nimport \"@fontsource/noto-sans-tc/700.css\";\n\nexport interface SWAPThemeProviderProps {\n theme?: Theme;\n children?: React.ReactNode;\n}\n\nconst defaultTheme = createSwapTheme();\n\nexport const SWAPThemeProvider: React.FC<SWAPThemeProviderProps> = ({ theme, children }) => (\n <ThemeProvider theme={theme ?? defaultTheme}>\n <CssBaseline />\n {children}\n </ThemeProvider>\n);\n","import { createTheme, type Theme, type ThemeOptions } from \"@mui/material/styles\";\nimport { deepmerge } from \"@mui/utils\";\nimport \"./augmentation\";\nimport { swapColors, swapRadius, swapShadows, swapBreakpoints, swapFontFamily } from \"./tokens\";\nimport { buttonRootStyles, buttonVariants } from \"./button.styles\";\nimport { swapTypographyVariants, swapTypographyVariantMapping } from \"./typography.styles\";\n\nconst c = swapColors;\n\nexport function createSwapTheme(options?: ThemeOptions): Theme {\n // 以 deepmerge 先併入 options 再建 theme:cssVariables 模式下 createTheme\n // 的第二參數合併不會覆蓋已生成的色彩方案,故不可用 createTheme(base, options)。\n const base: ThemeOptions = {\n cssVariables: true,\n palette: {\n primary: { main: c.primary.primary400 },\n error: { main: c.danger.danger800 },\n success: { main: c.success.success500 },\n warning: { main: c.secondary.secondary500 },\n swap: c,\n },\n breakpoints: {\n values: {\n xxs: swapBreakpoints.xxs,\n xs: swapBreakpoints.xs,\n sm: swapBreakpoints.sm,\n md: swapBreakpoints.md,\n lg: swapBreakpoints.lg,\n xl: swapBreakpoints.xl,\n xxl: swapBreakpoints.xxl,\n },\n },\n shape: { borderRadius: 8 },\n typography: { fontFamily: swapFontFamily, ...swapTypographyVariants },\n components: {\n MuiTypography: {\n defaultProps: { variantMapping: swapTypographyVariantMapping },\n },\n MuiSkeleton: {\n styleOverrides: {\n root: { backgroundColor: c.black.black400, transform: \"unset\" },\n },\n },\n MuiPagination: {\n defaultProps: { shape: \"rounded\", variant: \"outlined\" },\n },\n MuiPaginationItem: {\n styleOverrides: {\n root: {\n minWidth: 24,\n width: 24,\n height: 24,\n borderRadius: \"5px\",\n borderColor: c.black.black500,\n color: c.black.black800,\n padding: 0,\n margin: \"0px 2px\",\n fontSize: 11,\n fontWeight: 700,\n lineHeight: 1.4,\n transition: \"color 250ms, background-color 250ms\",\n \"&:hover\": {\n borderColor: c.black.black800,\n backgroundColor: c.black.white,\n },\n \"&.Mui-selected\": {\n color: c.black.white,\n backgroundColor: c.primary.primary400,\n border: \"none\",\n boxShadow: swapShadows.s,\n \"&:hover\": { backgroundColor: c.primary.primary400 },\n },\n },\n },\n },\n MuiButton: {\n defaultProps: {\n variant: \"primary\",\n disableElevation: true,\n disableFocusRipple: true,\n },\n styleOverrides: {\n root: { ...buttonRootStyles, variants: buttonVariants },\n },\n },\n MuiCard: {\n styleOverrides: {\n root: { borderRadius: \"18px\", border: \"1px solid rgba(0, 0, 0, 0.13)\" },\n },\n },\n MuiPaper: {\n styleOverrides: {\n root: { border: `1px solid ${c.black.black500}` },\n rounded: { borderRadius: swapRadius.m },\n elevation8: { boxShadow: swapShadows.m },\n },\n },\n MuiOutlinedInput: {\n styleOverrides: { root: { borderRadius: swapRadius.m } },\n },\n MuiFormHelperText: {\n styleOverrides: {\n root: {\n marginTop: 4,\n fontSize: 14,\n color: c.black.black700,\n \"&.Mui-error\": { color: c.danger.danger800 },\n },\n },\n },\n MuiIconButton: {\n styleOverrides: { root: { padding: 0 } },\n },\n },\n };\n return createTheme(deepmerge(base, options ?? {}));\n}\n","import * as React from 'react';\nimport { isValidElementType } from 'react-is';\n\n// https://github.com/sindresorhus/is-plain-obj/blob/main/index.js\nexport function isPlainObject(item) {\n if (typeof item !== 'object' || item === null) {\n return false;\n }\n const prototype = Object.getPrototypeOf(item);\n return (prototype === null || prototype === Object.prototype || Object.getPrototypeOf(prototype) === null) && !(Symbol.toStringTag in item) && !(Symbol.iterator in item);\n}\nfunction deepClone(source) {\n if (/*#__PURE__*/React.isValidElement(source) || isValidElementType(source) || !isPlainObject(source)) {\n return source;\n }\n const output = {};\n Object.keys(source).forEach(key => {\n output[key] = deepClone(source[key]);\n });\n return output;\n}\n\n/**\n * Merge objects deeply.\n * It will shallow copy React elements.\n *\n * If `options.clone` is set to `false` the source object will be merged directly into the target object.\n *\n * @example\n * ```ts\n * deepmerge({ a: { b: 1 }, d: 2 }, { a: { c: 2 }, d: 4 });\n * // => { a: { b: 1, c: 2 }, d: 4 }\n * ````\n *\n * @param target The target object.\n * @param source The source object.\n * @param options The merge options.\n * @param options.clone Set to `false` to merge the source object directly into the target object.\n * @returns The merged object.\n */\nexport default function deepmerge(target, source, options = {\n clone: true\n}) {\n const output = options.clone ? {\n ...target\n } : target;\n if (isPlainObject(target) && isPlainObject(source)) {\n Object.keys(source).forEach(key => {\n if (/*#__PURE__*/React.isValidElement(source[key]) || isValidElementType(source[key])) {\n output[key] = source[key];\n } else if (isPlainObject(source[key]) &&\n // Avoid prototype pollution\n Object.prototype.hasOwnProperty.call(target, key) && isPlainObject(target[key])) {\n // Since `output` is a clone of `target` and we have narrowed `target` in this block we can cast to the same type.\n output[key] = deepmerge(target[key], source[key], options);\n } else if (options.clone) {\n output[key] = isPlainObject(source[key]) ? deepClone(source[key]) : source[key];\n } else {\n output[key] = source[key];\n }\n });\n }\n return output;\n}","export const swapColors = {\n primary: {\n primary50: \"#E6E9F8\",\n primary100: \"#C1C7ED\",\n primary200: \"#97A3E1\",\n primary300: \"#6C7FD5\",\n primary400: \"#4862CC\",\n primary500: \"#1747C2\",\n primary600: \"#0F3FB8\",\n primary700: \"#0035AC\",\n primary800: \"#1F3C8E\",\n primary900: \"#002BA1\",\n primaryA11y: \"#071E60\",\n },\n secondary: {\n secondary50: \"#FEF8E3\",\n secondary100: \"#FCECB7\",\n secondary200: \"#FBDF8A\",\n secondary300: \"#FAD45C\",\n secondary400: \"#F9C93F\",\n secondary500: \"#F8C131\",\n secondary600: \"#F7B52C\",\n secondary700: \"#F6A128\",\n secondary800: \"#F59225\",\n secondary900: \"#F27521\",\n secondaryA11y: \"#E5640C\",\n },\n danger: {\n danger50: \"#FFEBED\",\n danger100: \"#FFCCD0\",\n danger200: \"#F99894\",\n danger300: \"#F26E6A\",\n danger400: \"#FC4A43\",\n danger500: \"#FF3622\",\n danger600: \"#F32A23\",\n danger700: \"#E11C1E\",\n danger800: \"#D40F14\",\n danger900: \"#C60003\",\n dangerA11y: \"#A80003\",\n },\n success: {\n success50: \"#E6F6E8\",\n success100: \"#C3E8C6\",\n success200: \"#9BD9A1\",\n success300: \"#70CB7A\",\n success400: \"#4CC05D\",\n success500: \"#1EB43F\",\n success600: \"#10A535\",\n success700: \"#00932A\",\n success800: \"#00821E\",\n success900: \"#006305\",\n successA11y: \"#015C16\",\n },\n black: {\n white: \"#FFFFFF\",\n black100: \"#F9F9F9\",\n black200: \"#F6F6F6\",\n black300: \"#F2F2F2\",\n black400: \"#ECECEC\",\n black500: \"#CCCCCC\",\n black600: \"#909090\",\n black700: \"#6F6F6F\",\n black800: \"#4B4B4B\",\n black900: \"#2D2D2D\",\n black1000: \"#000000\",\n },\n} as const;\n\nexport const swapRadius = {\n s: \"4px\",\n m: \"8px\",\n l: \"12px\",\n xl: \"20px\",\n} as const;\n\nexport const swapShadows = {\n s: \"0px 2px 4px rgba(0, 0, 0, 0.12)\",\n m: \"0px 4px 12px rgba(0, 0, 0, 0.1)\",\n l: \"0px 6px 24px rgba(0, 0, 0, 0.1)\",\n xl: \"0px 8px 40px rgba(0, 0, 0, 0.12)\",\n} as const;\n\nexport const swapBreakpoints = {\n xxs: 0,\n xs: 375,\n sm: 576,\n md: 768,\n lg: 992,\n xl: 1200,\n xxl: 1400,\n} as const;\n\n// @fontsource 的 font-family 名稱(含空格),與 v1 的 \"MPLUSRounded1c\" 不同\nexport const swapFontFamily = ['\"M PLUS Rounded 1c\"', '\"Noto Sans TC\"', \"sans-serif\"].join(\", \");\n\nexport type SwapColors = typeof swapColors;\n","import { swapColors } from \"./tokens\";\n\nconst c = swapColors;\n\nexport const buttonRootStyles = {\n textTransform: \"unset\" as const,\n borderRadius: \"8px\",\n fontWeight: 700,\n lineHeight: 1.125,\n whiteSpace: \"nowrap\" as const, // v1 將 children 包 nowrap 容器:按鈕文字不換行\n};\n\n// 每個 variant 一組色彩;狀態(hover/active/focus-visible/disabled)以巢狀選擇器表達\nconst variantColor = [\n {\n variant: \"primary\",\n color: c.black.white,\n backgroundColor: c.primary.primary400,\n border: `1px solid ${c.primary.primary600}`,\n hoverBg: c.primary.primary300,\n activeBg: c.primary.primary500,\n focusShadow: \"0px 0px 0px 4px #D7DFF8\",\n },\n {\n variant: \"secondary\",\n color: c.primary.primary400,\n backgroundColor: c.black.white,\n border: `1px solid ${c.primary.primary400}`,\n hoverBg: c.primary.primary50,\n activeBg: c.primary.primary100,\n focusShadow: \"0px 0px 0px 4px #D7DFF8\",\n },\n {\n variant: \"tertiary\",\n color: c.black.black800,\n backgroundColor: c.black.black400,\n border: \"none\",\n hoverBg: c.black.black500,\n activeBg: c.black.black600,\n focusShadow: \"0px 0px 0px 4px rgba(0, 0, 0, 0.1)\",\n },\n {\n variant: \"text\",\n color: c.primary.primary400,\n backgroundColor: c.black.white,\n border: \"none\",\n hoverBg: c.primary.primary50,\n activeBg: c.primary.primary100,\n focusShadow: \"0px 0px 0px 4px #D7DFF8\",\n },\n {\n variant: \"black\",\n color: c.black.black800,\n backgroundColor: c.black.white,\n border: \"none\",\n hoverBg: c.black.black400,\n activeBg: c.black.black500,\n focusShadow: \"0px 0px 0px 4px #CCCCCC\",\n },\n {\n variant: \"danger\",\n color: c.black.white,\n backgroundColor: c.danger.danger800,\n border: `1px solid ${c.danger.dangerA11y}`,\n hoverBg: c.danger.danger600,\n activeBg: c.danger.danger900,\n focusShadow: \"0px 0px 0px 4px #FFCCD0\",\n },\n] as const;\n\nconst sizeStyle = [\n { size: \"small\", height: \"40px\", padding: \"12px 16px\", fontSize: 14 },\n { size: \"medium\", height: \"48px\", padding: \"15px 24px\", fontSize: 16 },\n { size: \"large\", height: \"56px\", padding: \"19px 32px\", fontSize: 16 },\n] as const;\n\nexport const buttonVariants = [\n ...variantColor.map((v) => ({\n props: { variant: v.variant },\n style: {\n color: v.color,\n backgroundColor: v.backgroundColor,\n border: v.border,\n \"&:hover\": { backgroundColor: v.hoverBg },\n \"&:active\": { backgroundColor: v.activeBg },\n \"&:focus-visible\": { boxShadow: v.focusShadow },\n // 只夾透明度:文字色/底色由 root 提供,覆蓋會擋掉 MUI loading 時隱藏文字的機制\n \"&:disabled\": { opacity: 0.4 },\n // loading spinner 顏色跟隨 variant 文字色(否則 MUI 預設灰 rgba(0,0,0,0.26) 幾乎隱形)\n \"& .MuiButton-loadingIndicator\": { color: v.color },\n },\n })),\n ...sizeStyle.map((s) => ({\n props: { size: s.size },\n style: { height: s.height, padding: s.padding, fontSize: s.fontSize },\n })),\n];\n","type VariantStyle = {\n fontSize: string;\n fontWeight: number;\n lineHeight: number;\n letterSpacing: string;\n};\n\n// 「規格表」——以程式生成 32 個 variant,避免手抄 32 段\nconst FONT_SIZE: Record<string, string> = {\n d1: \"4.5rem\", d2: \"4rem\", d3: \"3.5rem\", d4: \"3rem\",\n h1: \"2.5rem\", h2: \"2rem\", h3: \"1.75rem\", h4: \"1.5rem\", h5: \"1.25rem\", h6: \"1.125rem\",\n title: \"1rem\", subtitle: \"0.875rem\",\n body1: \"1rem\", body2: \"0.875rem\",\n caption1: \"0.75rem\", caption2: \"0.75rem\",\n small1: \"0.6875rem\", small2: \"0.6875rem\",\n tiny1: \"0.625rem\", tiny2: \"0.625rem\",\n button_l: \"1rem\", button_s: \"0.875rem\",\n};\n\n// 有 _loose 變體的 base 名(button_l/s 無 _loose)\nconst LOOSE_BASES = [\n \"title\", \"subtitle\", \"body1\", \"body2\",\n \"caption1\", \"caption2\", \"small1\", \"small2\", \"tiny1\", \"tiny2\",\n];\n\nconst WEIGHT_400 = new Set([\"body1\", \"body2\", \"caption2\", \"small2\", \"tiny2\"]); // 其餘皆 700\nconst LH_125 = new Set([\"d1\", \"d2\", \"d3\", \"h1\", \"h2\", \"h3\"]);\nconst LH_1125 = new Set([\"button_l\", \"button_s\"]);\n\nfunction baseName(variant: string): string {\n return variant.endsWith(\"_loose\") ? variant.slice(0, -\"_loose\".length) : variant;\n}\n\nfunction weightOf(variant: string): number {\n return WEIGHT_400.has(baseName(variant)) ? 400 : 700;\n}\n\nfunction lineHeightOf(variant: string): number {\n if (variant.endsWith(\"_loose\")) return 1.6;\n if (LH_125.has(variant)) return 1.25;\n if (LH_1125.has(variant)) return 1.125;\n return 1.4;\n}\n\nconst ALL_VARIANTS: string[] = [\n \"d1\", \"d2\", \"d3\", \"d4\",\n \"h1\", \"h2\", \"h3\", \"h4\", \"h5\", \"h6\",\n ...Object.keys(FONT_SIZE).filter((k) => !/^d\\d|^h\\d/.test(k)),\n ...LOOSE_BASES.map((b) => `${b}_loose`),\n];\n\n// 去重並固定順序\nexport const SWAP_TYPOGRAPHY_VARIANTS: readonly string[] = Array.from(new Set(ALL_VARIANTS));\n\nexport const swapTypographyVariants: Record<string, VariantStyle> = Object.fromEntries(\n SWAP_TYPOGRAPHY_VARIANTS.map((v) => [\n v,\n {\n fontSize: FONT_SIZE[baseName(v)],\n fontWeight: weightOf(v),\n lineHeight: lineHeightOf(v),\n letterSpacing: \"0em\",\n },\n ]),\n);\n\n// variant → HTML 標籤(heading 用語意標籤,display 用 h1,button 用 span,其餘 p)\nexport const swapTypographyVariantMapping: Record<string, string> = Object.fromEntries(\n SWAP_TYPOGRAPHY_VARIANTS.map((v) => {\n if (/^h[1-6]$/.test(v)) return [v, v];\n if (/^d[1-4]$/.test(v)) return [v, \"h1\"];\n if (v.startsWith(\"button\")) return [v, \"span\"];\n return [v, \"p\"];\n }),\n);\n","import * as React from \"react\";\nimport MuiTypography from \"@mui/material/Typography\";\nimport type { TypographyProps as MuiTypographyProps } from \"@mui/material/Typography\";\nimport { resolveSwapTextColor, type SwapTextColor } from \"../theme/textColor\";\n\nexport interface SwapTypographyProps {\n variant?: MuiTypographyProps[\"variant\"];\n color?: SwapTextColor;\n mode?: \"\" | \"dark\";\n children?: React.ReactNode;\n style?: React.CSSProperties;\n}\n\n// React.memo 沿用 v1(排版元件常大量重複渲染)\nconst Typography: React.FC<SwapTypographyProps> = React.memo(function Typography({\n variant = \"body1\",\n color,\n mode,\n children,\n style,\n}) {\n return (\n <MuiTypography variant={variant} sx={{ color: resolveSwapTextColor(color, mode) }} style={style}>\n {children}\n </MuiTypography>\n );\n});\n\nexport default Typography;\n","import { swapColors } from \"./tokens\";\n\nconst c = swapColors;\n\n// 攤平所有色階為單一 token→hex 表(鍵皆唯一:primary50…、secondary…、danger…、success…、white、black100…)\n// Link / IconButton 等元件共用\nexport const swapTokenMap: Record<string, string> = {\n ...c.primary,\n ...c.secondary,\n ...c.danger,\n ...c.success,\n ...c.black,\n};\n\nexport type SwapTextColor = \"primary\" | \"secondary\" | \"tertiary\" | keyof typeof swapTokenMap;\n\nexport function resolveSwapTextColor(color?: string, mode?: \"\" | \"dark\"): string {\n const dark = mode === \"dark\";\n if (color === \"primary\") return dark ? c.black.white : c.black.black1000;\n if (color === \"secondary\") return dark ? c.black.black500 : c.black.black800;\n if (color === \"tertiary\") return dark ? c.black.black600 : c.black.black700;\n if (color && color in swapTokenMap) return swapTokenMap[color];\n return c.black.black1000;\n}\n","import * as React from \"react\";\nimport Box from \"@mui/material/Box\";\nimport { swapColors as c } from \"../theme/tokens\";\nimport type { ChipProps } from \"./Chip.types\";\nimport { cssSize } from \"../utils/cssSize\";\n\nconst SHADE = {\n neutral: { fill: c.black.black300, border: c.black.black500, text: c.black.black800 },\n primary: { fill: c.primary.primary50, border: c.primary.primary800, text: c.primary.primary800 },\n success: { fill: c.success.success50, border: c.success.success800, text: c.success.success800 },\n danger: { fill: c.danger.danger50, border: c.danger.danger800, text: c.danger.danger800 },\n} as const;\n\nconst successIcon = (\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M14 4.66666L6 12.6667L2.33333 9L3.27333 8.06L6 10.78L13.06 3.72666L14 4.66666Z\"\n fill=\"#00821E\"\n />\n </svg>\n);\n\nconst Chip = React.forwardRef<HTMLDivElement, ChipProps>(function Chip(\n { variant = \"primary\", outlined, contained, width, height, label, icon, sx, ...rest },\n ref,\n) {\n const s = SHADE[variant];\n const isOutlined = outlined || !contained;\n const ourStyles = {\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n borderRadius: \"4px\",\n fontSize: \"0.75rem\",\n lineHeight: \"17px\",\n fontWeight: 700,\n width: cssSize(width) ?? \"fit-content\",\n height: cssSize(height) ?? 24,\n padding: isOutlined ? \"0px 8px\" : \"0px 9px\",\n backgroundColor: isOutlined ? c.black.white : s.fill,\n border: isOutlined ? `1px solid ${s.border}` : \"none\",\n color: s.text,\n };\n return (\n <Box ref={ref} sx={[ourStyles, ...(Array.isArray(sx) ? sx : [sx])]} {...rest}>\n <Box component=\"span\" sx={{ marginRight: variant === \"success\" ? \"4px\" : 0 }}>\n {label}\n </Box>\n {variant === \"success\" && !icon ? successIcon : icon}\n </Box>\n );\n});\n\nexport default Chip;\n","/**\n * 尺寸值正規化:純數字字串(\"100\")轉為數字,讓 emotion 自動補 px。\n * 使 100、\"100\"、\"100px\"、\"fit-content\"、\"50%\" 皆為有效輸入。\n */\nexport function cssSize(v: number | string): number | string;\nexport function cssSize(v?: number | string): number | string | undefined;\nexport function cssSize(v?: number | string): number | string | undefined {\n if (typeof v === \"string\" && /^\\d+(\\.\\d+)?$/.test(v.trim())) return Number(v);\n return v;\n}\n","import * as React from \"react\";\nimport MuiCircularProgress from \"@mui/material/CircularProgress\";\nimport { swapColors as c } from \"../theme/tokens\";\nimport type { CircularProgressProps } from \"./CircularProgress.types\";\nimport { cssSize } from \"../utils/cssSize\";\n\nconst CircularProgress = React.forwardRef<HTMLDivElement, CircularProgressProps>(\n function CircularProgress({ dark, size = 20, thickness = 5, style, ...rest }, ref) {\n return (\n <div ref={ref} style={{ position: \"relative\", width: cssSize(size), height: cssSize(size), ...style }} {...rest}>\n <MuiCircularProgress\n variant=\"determinate\"\n value={100}\n size={size}\n thickness={thickness}\n style={{\n position: \"absolute\",\n left: 0,\n top: 0,\n color: dark ? c.black.white : c.black.black500,\n opacity: dark ? 0.4 : 1,\n }}\n />\n <MuiCircularProgress\n variant=\"indeterminate\"\n size={size}\n thickness={thickness}\n style={{\n position: \"absolute\",\n left: 0,\n top: 0,\n color: dark ? c.black.white : c.primary.primary800,\n }}\n />\n </div>\n );\n },\n);\n\nexport default CircularProgress;\n","import * as React from \"react\";\nimport MuiTooltip from \"@mui/material/Tooltip\";\nimport { swapColors as c, swapShadows } from \"../theme/tokens\";\nimport type { TooltipProps } from \"./Tooltip.types\";\nimport { cssSize } from \"../utils/cssSize\";\n\nfunction resolveMargin(p: TooltipProps): string | number {\n if (p.margin) return p.margin;\n if (p.marginTop) return `0px 0px ${p.marginTop}px 0px`;\n if (p.marginBottom) return `${p.marginBottom}px 0px 0px 0px`;\n if (p.marginRight) return `0px 0px 0px ${p.marginRight}px`;\n if (p.marginLeft) return `0px ${p.marginLeft}px 0px 0px`;\n return \"10px 0px\";\n}\n\nconst Tooltip: React.FC<TooltipProps> = (props) => {\n const {\n dark,\n light,\n arrow,\n margin,\n marginTop,\n marginBottom,\n marginRight,\n marginLeft,\n width = 240,\n children,\n childrenStyle,\n slotProps: userSlotProps,\n ...other\n } = props;\n const bg = light ? c.black.white : c.black.black900;\n const fg = light ? c.black.black800 : c.black.white;\n const ourTooltipSx = {\n margin: resolveMargin(props),\n backgroundColor: bg,\n color: fg,\n padding: arrow ? \"7.5px 12px\" : \"12px\",\n boxShadow: swapShadows.m,\n border: light ? `1px solid ${c.black.black500}` : \"none\",\n maxWidth: cssSize(width),\n fontSize: 12,\n lineHeight: 1.4,\n fontWeight: arrow ? 700 : 400,\n };\n // 合併產品端 slotProps:其他 slot 直通,tooltip/arrow 的 sx 以陣列合併(產品端在後、可複寫)\n const us = (userSlotProps ?? {}) as Record<string, { sx?: unknown } | undefined>;\n const asArr = (v: unknown) => (Array.isArray(v) ? v : v ? [v] : []);\n return (\n <MuiTooltip\n {...other}\n arrow={arrow}\n slotProps={{\n ...us,\n tooltip: { ...us.tooltip, sx: [ourTooltipSx, ...asArr(us.tooltip?.sx)] },\n arrow: { ...us.arrow, sx: [{ color: bg }, ...asArr(us.arrow?.sx)] },\n }}\n >\n <span\n style={{\n width: \"fit-content\",\n height: \"fit-content\",\n display: \"inline-flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n ...childrenStyle,\n }}\n >\n {children}\n </span>\n </MuiTooltip>\n );\n};\n\nexport default Tooltip;\n","import * as React from \"react\";\nimport Box from \"@mui/material/Box\";\nimport useMediaQuery from \"@mui/material/useMediaQuery\";\nimport { swapBreakpoints as bp } from \"../theme/tokens\";\nimport type { ContainerProps } from \"./Container.types\";\n\nconst MAXW = { lg: 960, xl: 1140, xxl: 1320 } as const;\nconst PAD = { xxs: \"0px 8px\", xs: \"0px 16px\", sm: \"0px 24px\", md: \"0px 24px\" } as const;\n\nconst Container = React.forwardRef<HTMLDivElement, ContainerProps>(function Container(\n { children, maxWidth, padding, sx, ...rest },\n ref,\n) {\n const upXXL = useMediaQuery(`(min-width:${bp.xxl}px)`);\n const upXL = useMediaQuery(`(min-width:${bp.xl}px)`);\n const upLG = useMediaQuery(`(min-width:${bp.lg}px)`);\n const upMD = useMediaQuery(`(min-width:${bp.md}px)`);\n const upSM = useMediaQuery(`(min-width:${bp.sm}px)`);\n const upXS = useMediaQuery(`(min-width:${bp.xs}px)`);\n\n const resolvedMaxWidth =\n typeof maxWidth === \"number\"\n ? maxWidth\n : maxWidth\n ? MAXW[maxWidth]\n : upXXL ? 1320 : upXL ? 1140 : upLG ? 960 : undefined;\n\n const resolvedPadding =\n typeof padding === \"number\"\n ? padding\n : padding\n ? PAD[padding]\n : upXXL || upXL || upLG\n ? \"0px 0px\"\n : upMD || upSM ? \"0px 24px\" : upXS ? \"0px 16px\" : \"0px 8px\";\n\n const ourStyles = {\n marginLeft: \"auto\",\n marginRight: \"auto\",\n width: \"100%\",\n maxWidth: resolvedMaxWidth,\n padding: resolvedPadding,\n };\n return (\n <Box ref={ref} sx={[ourStyles, ...(Array.isArray(sx) ? sx : [sx])]} {...rest}>\n {children}\n </Box>\n );\n});\n\nexport default Container;\n","import * as React from \"react\";\nimport MuiPaper from \"@mui/material/Paper\";\nimport useMediaQuery from \"@mui/material/useMediaQuery\";\nimport { swapColors as c, swapShadows, swapBreakpoints as bp } from \"../theme/tokens\";\nimport type { PaperProps } from \"./Paper.types\";\nimport { cssSize } from \"../utils/cssSize\";\n\nconst Paper = React.forwardRef<HTMLDivElement, PaperProps>(function Paper(\n { width, height, sx, ...rest },\n ref,\n) {\n const upSM = useMediaQuery(`(min-width:${bp.sm}px)`);\n const upXS = useMediaQuery(`(min-width:${bp.xs}px)`);\n const padding = upSM ? 40 : upXS ? 24 : 16;\n const ourStyles = {\n boxShadow: swapShadows.xl,\n borderRadius: \"12px\",\n border: `1px solid ${c.black.black500}`,\n width: cssSize(width) ?? \"100%\",\n height: cssSize(height) ?? \"100%\",\n padding: `${padding}px`,\n };\n return (\n <MuiPaper\n ref={ref}\n variant=\"outlined\"\n sx={[ourStyles, ...(Array.isArray(sx) ? sx : [sx])]}\n {...rest}\n />\n );\n});\n\nexport default Paper;\n","import * as React from \"react\";\nimport MuiLink from \"@mui/material/Link\";\nimport { swapTokenMap } from \"../theme/textColor\";\nimport { swapColors as c } from \"../theme/tokens\";\nimport type { LinkProps } from \"./Link.types\";\n\nconst Link = React.forwardRef<HTMLAnchorElement, LinkProps>(function Link(\n { color, sx, ...rest },\n ref,\n) {\n const ourStyles = {\n cursor: \"pointer\",\n color: (color && swapTokenMap[color]) || c.black.black1000,\n fontWeight: 700,\n borderRadius: \"4px\",\n lineHeight: 1.4,\n outline: \"none\",\n boxSizing: \"border-box\" as const,\n \"&:focus-visible\": {\n padding: \"8px\",\n border: `1px solid ${c.primary.primary400}`,\n },\n };\n return (\n <MuiLink\n ref={ref}\n underline=\"hover\"\n tabIndex={0}\n sx={[ourStyles, ...(Array.isArray(sx) ? sx : [sx])]}\n {...rest}\n />\n );\n});\n\nexport default Link;\n","import * as React from \"react\";\nimport MuiIconButton from \"@mui/material/IconButton\";\nimport { swapTokenMap } from \"../theme/textColor\";\nimport { swapColors as c } from \"../theme/tokens\";\nimport type { IconButtonProps } from \"./IconButton.types\";\nimport { cssSize } from \"../utils/cssSize\";\n\nconst resolve = (v?: string) => (v ? (swapTokenMap[v] ?? v) : undefined);\n\nconst IconButton = React.forwardRef<HTMLButtonElement, IconButtonProps>(function IconButton(\n { width = 32, height = 32, hoverColor, hoverIconColor, sx, ...rest },\n ref,\n) {\n const hoverBg = resolve(hoverColor) ?? c.black.black400;\n const hoverFill = resolve(hoverIconColor);\n const ourStyles = {\n width: cssSize(width),\n height: cssSize(height),\n borderRadius: \"8px\",\n \"&:hover\": {\n backgroundColor: hoverBg,\n ...(hoverFill ? { \"& svg path\": { fill: hoverFill } } : {}),\n },\n };\n return <MuiIconButton ref={ref} sx={[ourStyles, ...(Array.isArray(sx) ? sx : [sx])]} {...rest} />;\n});\n\nexport default IconButton;\n","import * as React from \"react\";\nimport Menu from \"@mui/material/Menu\";\nimport MenuItem from \"@mui/material/MenuItem\";\nimport Typography from \"./Typography\";\nimport type { BreadcrumbProps } from \"./Breadcrumb.types\";\n\nconst Sep: React.FC<{ children: React.ReactNode }> = ({ children }) => (\n <Typography variant=\"body2\" style={{ margin: \"0 8px\" }}>\n {children}\n </Typography>\n);\n\n// v1 的三點省略圖示(hover 時多一條底線)\nconst dotsPath =\n \"M1.946 16.182C2.45 16.182 2.87 15.79 2.87 15.216C2.87 14.642 2.45 14.222 1.946 14.222C1.442 14.222 1.022 14.642 1.022 15.216C1.022 15.79 1.442 16.182 1.946 16.182ZM5.84248 16.182C6.34648 16.182 6.76648 15.79 6.76648 15.216C6.76648 14.642 6.34648 14.222 5.84248 14.222C5.33848 14.222 4.91848 14.642 4.91848 15.216C4.91848 15.79 5.33848 16.182 5.84248 16.182ZM9.73897 16.182C10.243 16.182 10.663 15.79 10.663 15.216C10.663 14.642 10.243 14.222 9.73897 14.222C9.23497 14.222 8.81497 14.642 8.81497 15.216C8.81497 15.79 9.23497 16.182 9.73897 16.182Z\";\n\nconst ThreeDots: React.FC<{ hover: boolean }> = ({ hover }) => (\n <svg width=\"12\" height=\"20\" viewBox=\"0 0 12 20\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d={dotsPath} fill=\"#4B4B4B\" />\n {hover && <path d=\"M0 18.1H11.685V18.8H0V18.1Z\" fill=\"#4B4B4B\" />}\n </svg>\n);\n\nconst Breadcrumb = React.forwardRef<HTMLDivElement, BreadcrumbProps>(function Breadcrumb(\n { maxItems, separator = \"/\", children, style, ...rest },\n ref,\n) {\n const [anchorEl, setAnchorEl] = React.useState<null | HTMLElement>(null);\n const [hoverDots, setHoverDots] = React.useState(false);\n const items = React.Children.toArray(children);\n const collapsed = !!maxItems && items.length > maxItems;\n const tail = collapsed ? items.slice(items.length - maxItems + 1) : items;\n const hidden = collapsed ? items.slice(1, items.length - maxItems + 1) : [];\n\n const row = (node: React.ReactNode, isLast: boolean, key: React.Key) => (\n <div\n key={key}\n style={{ display: \"flex\", alignItems: \"center\", fontSize: 14, fontWeight: isLast ? 700 : 400 }}\n >\n {node}\n {!isLast && <Sep>{separator}</Sep>}\n </div>\n );\n\n return (\n <div ref={ref} style={{ display: \"flex\", alignItems: \"center\", ...style }} {...rest}>\n {collapsed ? (\n <>\n <div style={{ display: \"flex\", alignItems: \"center\", fontSize: 14 }}>\n {items[0]}\n <Sep>{separator}</Sep>\n <div\n data-testid=\"breadcrumb-ellipsis\"\n onClick={(e) => setAnchorEl(e.currentTarget)}\n onMouseEnter={() => setHoverDots(true)}\n onMouseLeave={() => setHoverDots(false)}\n style={{ cursor: \"pointer\" }}\n >\n <ThreeDots hover={hoverDots} />\n </div>\n <Sep>{separator}</Sep>\n </div>\n {tail.map((node, i) => row(node, i === tail.length - 1, i))}\n </>\n ) : (\n items.map((node, i) => row(node, i === items.length - 1, i))\n )}\n <Menu anchorEl={anchorEl} open={Boolean(anchorEl)} onClose={() => setAnchorEl(null)}>\n {hidden.map((node, i) => {\n const el = node as React.ReactElement<{\n children?: React.ReactNode;\n href?: string;\n target?: string;\n }>;\n return (\n <MenuItem\n key={i}\n onClick={() => {\n const { href, target } = el.props;\n if (href) {\n if (target === \"_blank\") window.open(href);\n else window.location.href = href;\n }\n setAnchorEl(null);\n }}\n >\n {el.props.children}\n </MenuItem>\n );\n })}\n </Menu>\n </div>\n );\n});\n\nexport default Breadcrumb;\n","import * as React from \"react\";\nimport Link from \"./Link\";\nimport type { BreadcrumbItemProps } from \"./BreadcrumbItem.types\";\n\nconst BreadcrumbItem = React.forwardRef<HTMLAnchorElement, BreadcrumbItemProps>(\n function BreadcrumbItem({ last, sx, ...rest }, ref) {\n const ourStyles = {\n fontWeight: last ? 700 : 400,\n ...(last\n ? { cursor: \"unset\", textDecoration: \"none\", \"&:hover\": { textDecoration: \"none\" } }\n : {}),\n };\n return (\n <Link\n ref={ref}\n color={last ? \"black1000\" : \"black800\"}\n sx={[ourStyles, ...(Array.isArray(sx) ? sx : [sx])]}\n {...rest}\n />\n );\n },\n);\n\nexport default BreadcrumbItem;\n","import * as React from \"react\";\nimport MuiTextField from \"@mui/material/TextField\";\nimport { swapColors as c } from \"../theme/tokens\";\nimport type { TextFieldProps } from \"./TextField.types\";\nimport { cssSize } from \"../utils/cssSize\";\n\nconst TextField = React.forwardRef<HTMLDivElement, TextFieldProps>(function TextField(\n { width, height, sx, ...rest },\n ref,\n) {\n // v1 依賴使用端必傳 height、否則欄位高度坍塌(垂直 padding 為 0)。\n // v2 改善:預設 48px(與 Button medium 同高);multiline 維持自動高度。\n const resolvedHeight = cssSize(height) ?? (rest.multiline ? undefined : 48);\n const ourStyles = {\n \"& .MuiFormHelperText-root\": { marginLeft: \"16px\", marginRight: \"16px\" },\n \"& .MuiOutlinedInput-root\": {\n width: cssSize(width),\n height: resolvedHeight,\n padding: \"0px 16px\",\n backgroundColor: \"white\",\n fontSize: 16,\n fontWeight: 400,\n \"& fieldset\": { borderColor: c.black.black500, \"& legend\": { width: \"0.01px\" } },\n \"&.Mui-focused\": {\n boxShadow: \"0px 0px 0px 4px #D7DFF8\",\n \"& fieldset\": { border: `1px solid ${c.primary.primary400} !important` },\n \"&.Mui-error\": {\n boxShadow: \"none\",\n \"& fieldset\": { border: `1px solid ${c.danger.danger800} !important` },\n },\n },\n \"&.Mui-error fieldset\": { border: `1px solid ${c.danger.danger800} !important` },\n },\n \"& .MuiInputBase-input\": {\n padding: 0,\n \"&::placeholder\": { color: c.black.black700, opacity: 1 },\n \"&:-webkit-autofill\": { WebkitBoxShadow: \"0 0 0 100px #FFFFFF inset\" },\n },\n // resting label 垂直置中隨欄位高度自適應(MUI 預設偏移是按 56px 高算的,\n // 48px 下會偏下 ~3.5px;label 行高約 23px)\n ...(typeof resolvedHeight === \"number\"\n ? {\n \"& .MuiInputLabel-root:not(.MuiInputLabel-shrink)\": {\n transform: `translate(14px, ${Math.round((resolvedHeight - 23) / 2)}px)`,\n },\n }\n : {}),\n \"& .MuiInputLabel-root.MuiInputLabel-shrink\": {\n transform: \"translate(14px, -10px)\",\n backgroundColor: \"white\",\n padding: \"0 4px\",\n fontSize: 14,\n fontWeight: 700,\n color: c.black.black800,\n \"&.Mui-focused, &.Mui-error\": { color: c.black.black800 },\n },\n // select 模式(v1 selectRoot)\n \"& .MuiSelect-select\": {\n borderRadius: \"8px\",\n fontWeight: 400,\n minWidth: rest.fullWidth ? \"100%\" : \"unset\",\n display: \"flex\",\n alignItems: \"center\",\n \"&:focus\": { backgroundColor: \"white\", borderRadius: \"8px\" },\n },\n \"& .MuiSelect-icon\": { color: c.black.black700 },\n };\n // v1 select 模式的選單定位(anchorOrigin -9/-16)\n const slotProps = rest.select\n ? {\n ...rest.slotProps,\n select: {\n MenuProps: { anchorOrigin: { vertical: -9 as const, horizontal: -16 as const } },\n ...(rest.slotProps?.select as object | undefined),\n },\n }\n : rest.slotProps;\n return (\n <MuiTextField\n ref={ref}\n variant=\"outlined\"\n sx={[ourStyles, ...(Array.isArray(sx) ? sx : [sx])]}\n {...rest}\n slotProps={slotProps}\n />\n );\n});\n\nexport default TextField;\n","import * as React from \"react\";\nimport MuiCheckbox from \"@mui/material/Checkbox\";\nimport FormControlLabel from \"@mui/material/FormControlLabel\";\nimport Box from \"@mui/material/Box\";\nimport { swapColors as c } from \"../theme/tokens\";\nimport type { CheckBoxProps } from \"./CheckBox.types\";\n\nconst checkSvg = (\n <svg width=\"17\" height=\"16\" viewBox=\"0 0 17 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M1.5 8.5L7 13L15 2\" stroke=\"white\" strokeWidth=\"3\" strokeLinecap=\"round\" />\n </svg>\n);\n\nfunction iconSx(disableHover?: boolean) {\n return {\n position: \"absolute\",\n width: 24,\n height: 24,\n borderRadius: \"4px\",\n backgroundColor: c.black.white,\n border: `1px solid ${c.black.black500}`,\n \"input:hover ~ &\": {\n border: `1px solid ${disableHover ? c.black.black500 : c.black.black1000}`,\n },\n \"input:focus-visible ~ &\": { boxShadow: \"0px 0px 0px 4px #D7DFF8\" },\n \"input:disabled ~ &\": { opacity: 0.4 },\n \"input:disabled:hover ~ &\": { border: `1px solid ${c.black.black500}` },\n } as const;\n}\n\nfunction checkedIconSx(disableHover?: boolean) {\n return {\n position: \"absolute\",\n width: 24,\n height: 24,\n borderRadius: \"4px\",\n display: \"flex\",\n justifyContent: \"center\",\n alignItems: \"center\",\n backgroundColor: c.primary.primary400,\n border: `1px solid ${c.primary.primary600}`,\n \"input:hover ~ &\": {\n border: `1px solid ${disableHover ? c.primary.primary600 : c.primary.primaryA11y}`,\n },\n \"input:focus-visible ~ &\": { boxShadow: \"0px 0px 0px 4px #D7DFF8\" },\n \"input:disabled ~ &\": { opacity: 0.4 },\n \"input:disabled:hover ~ &\": { border: `1px solid ${c.primary.primary600}` },\n } as const;\n}\n\nconst CheckBox = React.forwardRef<HTMLButtonElement, CheckBoxProps>(function CheckBox(\n { disableHover, label, labelPlacement, checkedIcon, icon, sx, ...rest },\n ref,\n) {\n const ourStyles = {\n width: 40,\n height: 40,\n boxShadow: \"none\",\n \"&:hover, &.Mui-checked:hover\": {\n backgroundColor: disableHover ? \"unset\" : c.black.black300,\n },\n };\n return (\n <FormControlLabel\n label={label}\n labelPlacement={labelPlacement}\n style={{ marginRight: 0 }}\n control={\n <MuiCheckbox\n ref={ref}\n disableFocusRipple\n disableTouchRipple\n sx={[ourStyles, ...(Array.isArray(sx) ? sx : [sx])]}\n checkedIcon={\n <Box component=\"span\" sx={checkedIconSx(disableHover)}>\n {checkedIcon ?? checkSvg}\n </Box>\n }\n icon={<Box component=\"span\" sx={iconSx(disableHover)}>{icon ?? null}</Box>}\n {...rest}\n />\n }\n />\n );\n});\n\nexport default CheckBox;\n","import * as React from \"react\";\nimport MuiRadio from \"@mui/material/Radio\";\nimport FormControlLabel from \"@mui/material/FormControlLabel\";\nimport Box from \"@mui/material/Box\";\nimport { swapColors as c } from \"../theme/tokens\";\nimport type { RadioButtonProps } from \"./RadioButton.types\";\n\nconst dotSvg = (\n <svg width=\"10\" height=\"10\" viewBox=\"0 0 10 10\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <circle cx=\"5\" cy=\"5\" r=\"5\" fill=\"white\" />\n </svg>\n);\n\nfunction iconSx(disableHover?: boolean) {\n return {\n position: \"absolute\",\n width: 24,\n height: 24,\n borderRadius: \"100px\",\n backgroundColor: c.black.white,\n border: `1px solid ${c.black.black500}`,\n \"input:hover ~ &\": {\n border: `1px solid ${disableHover ? c.black.black500 : c.black.black1000}`,\n },\n \"input:focus-visible ~ &\": { boxShadow: \"0px 0px 0px 4px #D7DFF8\" },\n \"input:disabled ~ &\": { opacity: 0.4 },\n \"input:disabled:hover ~ &\": { border: `1px solid ${c.black.black500}` },\n } as const;\n}\n\nfunction checkedIconSx(disableHover?: boolean) {\n return {\n position: \"absolute\",\n width: 24,\n height: 24,\n borderRadius: \"100px\",\n display: \"flex\",\n justifyContent: \"center\",\n alignItems: \"center\",\n backgroundColor: c.primary.primary400,\n border: `1px solid ${c.primary.primary600}`,\n \"input:hover ~ &\": {\n border: `1px solid ${disableHover ? c.primary.primary600 : c.primary.primaryA11y}`,\n },\n \"input:focus-visible ~ &\": { boxShadow: \"0px 0px 0px 4px #D7DFF8\" },\n \"input:disabled ~ &\": { opacity: 0.4 },\n \"input:disabled:hover ~ &\": { border: `1px solid ${c.primary.primary600}` },\n } as const;\n}\n\nconst RadioButton = React.forwardRef<HTMLButtonElement, RadioButtonProps>(function RadioButton(\n { disableHover, label, labelPlacement, sx, ...rest },\n ref,\n) {\n const ourStyles = {\n width: 40,\n height: 40,\n boxShadow: \"none\",\n \"&:hover, &.Mui-checked:hover\": {\n backgroundColor: disableHover ? \"unset\" : c.black.black300,\n },\n };\n return (\n <FormControlLabel\n label={label}\n labelPlacement={labelPlacement}\n style={{ marginRight: 0 }}\n control={\n <MuiRadio\n ref={ref}\n disableFocusRipple\n disableTouchRipple\n sx={[ourStyles, ...(Array.isArray(sx) ? sx : [sx])]}\n checkedIcon={<Box component=\"span\" sx={checkedIconSx(disableHover)}>{dotSvg}</Box>}\n icon={<Box component=\"span\" sx={iconSx(disableHover)} />}\n {...rest}\n />\n }\n />\n );\n});\n\nexport default RadioButton;\n","import * as React from \"react\";\nimport MuiSwitch from \"@mui/material/Switch\";\nimport Fade from \"@mui/material/Fade\";\nimport Box from \"@mui/material/Box\";\nimport { swapColors as c } from \"../theme/tokens\";\nimport type { SwitchProps } from \"./Switch.types\";\n\nconst checkSvg = (\n <svg width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M4.5 10.21L1.395 7.105L2.81 5.69L4.5 7.385L9.44 2.44L10.855 3.855L4.5 10.21Z\"\n fill=\"#4862CC\"\n />\n </svg>\n);\n\nconst Switch = React.forwardRef<HTMLButtonElement, SwitchProps>(function Switch(\n { disabled, sx, ...rest },\n ref,\n) {\n const ourStyles = {\n width: 40,\n height: 24,\n padding: 0,\n \"& .MuiSwitch-switchBase\": {\n padding: \"2px\",\n transition:\n \"left 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms, transform 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms\",\n \"&.Mui-checked\": {\n transform: \"translateX(16px)\",\n \"& + .MuiSwitch-track\": {\n border: `1px solid ${c.primary.primary800}`,\n backgroundColor: c.primary.primary400,\n opacity: 1,\n },\n \"&:hover + .MuiSwitch-track\": { backgroundColor: c.primary.primary600 },\n },\n \"&:hover + .MuiSwitch-track\": { backgroundColor: c.black.black800 },\n \"&.Mui-disabled + .MuiSwitch-track\": {\n opacity: 1,\n border: `1px solid ${c.black.black800}`,\n backgroundColor: c.black.black600,\n },\n },\n \"& .MuiSwitch-thumb\": {\n width: 20,\n height: 20,\n backgroundColor: \"white\",\n boxShadow: \"0px 2px 2px rgba(0, 0, 0, 0.15)\",\n },\n \"& .MuiSwitch-track\": {\n borderRadius: \"12px\",\n border: `1px solid ${c.black.black800}`,\n backgroundColor: c.black.black600,\n opacity: 1,\n transition: \"all 200ms ease-out\",\n },\n };\n return (\n <Box\n component=\"span\"\n tabIndex={0}\n sx={{\n display: \"inline-block\",\n width: \"fit-content\",\n borderRadius: \"12px\",\n opacity: disabled ? 0.4 : 1,\n \"&:focus-visible\": {\n boxShadow: disabled ? \"unset\" : \"0px 0px 0px 4px #D7DFF8\",\n outline: \"none\",\n },\n }}\n >\n <MuiSwitch\n ref={ref}\n disabled={disabled}\n disableRipple\n sx={[ourStyles, ...(Array.isArray(sx) ? sx : [sx])]}\n checkedIcon={\n <Box\n sx={{\n width: 20,\n height: 20,\n display: \"flex\",\n justifyContent: \"center\",\n alignItems: \"center\",\n backgroundColor: \"white\",\n borderRadius: \"50%\",\n boxShadow: \"0px 2px 2px rgba(0, 0, 0, 0.15)\",\n }}\n >\n <Fade in timeout={{ enter: 200, exit: 200 }}>\n {checkSvg}\n </Fade>\n </Box>\n }\n {...rest}\n />\n </Box>\n );\n});\n\nexport default Switch;\n","import * as React from \"react\";\nimport MuiSelect from \"@mui/material/Select\";\nimport FormControl from \"@mui/material/FormControl\";\nimport FormHelperText from \"@mui/material/FormHelperText\";\nimport InputLabel from \"@mui/material/InputLabel\";\nimport OutlinedInput from \"@mui/material/OutlinedInput\";\nimport { swapColors as c } from \"../theme/tokens\";\nimport type { SelectProps } from \"./Select.types\";\nimport { cssSize } from \"../utils/cssSize\";\n\nconst Select: React.FC<SelectProps> = ({\n children,\n style,\n value,\n onChange,\n defaultValue,\n error,\n disabled,\n type,\n InputProps,\n autoFocus,\n placeholder,\n fullWidth,\n required,\n helperText,\n width,\n height,\n horizontal = \"left\",\n vertical = \"bottom\",\n open,\n placeholderStyle,\n selectStyle,\n helperTextStyle,\n onClick,\n transformOrigin,\n paddingTop,\n paddingLeft,\n dropdown,\n}) => {\n const hasCustomPadding = Boolean(paddingTop || paddingLeft);\n return (\n <FormControl\n variant=\"outlined\"\n style={style}\n sx={{ width: cssSize(width) ?? \"100%\" }}\n >\n <InputLabel\n style={placeholderStyle}\n sx={{\n \"&.MuiInputLabel-outlined:not(.MuiInputLabel-shrink)\": {\n transform: hasCustomPadding\n ? `translate(${(paddingLeft ?? 0) - 4}px, ${(paddingTop ?? 0) + 2}px) scale(1)`\n : \"translate(12px, 14px) scale(1)\",\n },\n \"&.MuiInputLabel-shrink\": {\n width: \"fit-content\",\n padding: \"0 4px\",\n backgroundColor: \"white\",\n fontSize: 12,\n fontWeight: 700,\n color: c.black.black800,\n \"&.Mui-focused\": { fontWeight: 700, color: c.black.black800 },\n },\n }}\n >\n {placeholder}\n </InputLabel>\n <MuiSelect\n style={selectStyle}\n open={open}\n value={value}\n onChange={onChange}\n label={placeholder}\n defaultValue={defaultValue}\n error={error}\n disabled={disabled}\n type={type}\n autoFocus={autoFocus}\n required={required}\n fullWidth={fullWidth}\n onClick={onClick}\n inputProps={InputProps}\n input={\n <OutlinedInput\n sx={{\n \"& .MuiOutlinedInput-notchedOutline\": { borderColor: c.black.black500 },\n \"&:hover\": {\n borderColor: c.black.black1000,\n \"& svg\": { color: c.black.black1000 },\n },\n \"&.Mui-focused .MuiOutlinedInput-notchedOutline\": {\n borderColor: c.black.black1000,\n borderWidth: 1,\n },\n \"&.Mui-focused svg\": { color: c.black.black1000 },\n }}\n />\n }\n sx={{\n \"& .MuiSelect-select\": {\n height: height ? height - 32 : 16,\n padding: hasCustomPadding\n ? `${paddingTop ?? 12}px ${paddingLeft ?? 16}px`\n : \"12px 16px\",\n display: \"flex\",\n alignItems: \"center\",\n fontSize: dropdown ? 14 : 16,\n fontWeight: dropdown ? 700 : 400,\n border: \"none\",\n color: c.black.black800,\n \"&:focus\": { backgroundColor: \"white\", color: c.black.black1000 },\n \"&:hover\": { backgroundColor: \"white\", color: c.black.black1000 },\n },\n \"& .MuiSelect-icon\": { color: c.black.black800 },\n }}\n MenuProps={{\n transformOrigin,\n anchorOrigin: { vertical, horizontal },\n slotProps: { paper: { sx: { marginTop: \"8px\" } } },\n }}\n >\n {children}\n </MuiSelect>\n <FormHelperText style={helperTextStyle}>{helperText}</FormHelperText>\n </FormControl>\n );\n};\n\nexport default Select;\n","import * as React from \"react\";\nimport MuiMenuItem from \"@mui/material/MenuItem\";\nimport ListItemIcon from \"@mui/material/ListItemIcon\";\nimport { swapColors as c } from \"../theme/tokens\";\nimport type { MenuItemProps } from \"./MenuItem.types\";\nimport { cssSize } from \"../utils/cssSize\";\n\nconst MenuItem = React.forwardRef<HTMLLIElement, MenuItemProps>(function MenuItem(\n {\n children,\n width,\n height,\n hoverBackgroundColor,\n hoverFontColor,\n hoverIconColor,\n rippleColor,\n iconChildren,\n button: _button, // v4 遺留 prop,丟棄避免流入 DOM\n sx,\n ...rest\n },\n ref,\n) {\n const ourStyles = {\n fontSize: 14,\n fontWeight: 700,\n width: cssSize(width),\n minHeight: cssSize(height),\n \"&:focus\": { backgroundColor: \"unset\" },\n \"&:hover\": {\n backgroundColor: hoverBackgroundColor ?? c.primary.primary50,\n color: hoverFontColor ?? c.primary.primary800,\n \"& svg path\": { fill: hoverIconColor ?? c.primary.primary800 },\n },\n \"& span\": { color: rippleColor ?? undefined },\n };\n return (\n <MuiMenuItem ref={ref} sx={[ourStyles, ...(Array.isArray(sx) ? sx : [sx])]} {...rest}>\n {children}\n {iconChildren != null && (\n <ListItemIcon style={{ justifyContent: \"flex-end\" }}>{iconChildren}</ListItemIcon>\n )}\n </MuiMenuItem>\n );\n});\n\nexport default MenuItem;\n","import * as React from \"react\";\nimport MuiTab from \"@mui/material/Tab\";\nimport Box from \"@mui/material/Box\";\nimport { swapColors as c } from \"../theme/tokens\";\nimport type { TabProps } from \"./Tab.types\";\nimport { cssSize } from \"../utils/cssSize\";\n\nconst Tab = React.forwardRef<HTMLDivElement, TabProps>(function Tab(\n { label, selected, width, height, margin, fontSize, noIndicator, animation, sx, ...rest },\n ref,\n) {\n const ourStyles = {\n minWidth: 0,\n minHeight: 0,\n padding: 0,\n margin: margin ?? \"0px 12px\",\n fontWeight: 700,\n fontSize: fontSize ?? 14,\n lineHeight: 1.4,\n opacity: 1,\n color: c.black.black700,\n \"&:hover\": { color: \"#000000\" },\n \"&.Mui-selected\": { color: \"#000000\" },\n };\n return (\n <MuiTab\n ref={ref}\n disableRipple\n sx={[ourStyles, ...(Array.isArray(sx) ? sx : [sx])]}\n label={\n <Box\n sx={{\n width: cssSize(width) ?? 56,\n height: cssSize(height) ?? 56,\n display: \"flex\",\n justifyContent: \"center\",\n alignItems: \"center\",\n position: \"relative\",\n }}\n >\n {label}\n {selected && !noIndicator ? (\n <Box\n sx={{\n height: \"4px\",\n width: \"100%\",\n backgroundColor: c.primary.primary400,\n position: \"absolute\",\n bottom: 0,\n borderRadius: \"100px 100px 0px 0px\",\n ...(animation\n ? {\n animation: \"swap-tab-selected 300ms\",\n \"@keyframes swap-tab-selected\": {\n from: { width: 0 },\n to: { width: \"100%\" },\n },\n }\n : {}),\n }}\n />\n ) : null}\n </Box>\n }\n {...rest}\n />\n );\n});\n\nexport default Tab;\n","import * as React from \"react\";\nimport MuiTabs from \"@mui/material/Tabs\";\nimport type { TabsProps } from \"./Tab.types\";\n\n// 選中指示條由 Tab 自繪,Tabs 本身的 indicator 設為透明\nconst Tabs = React.forwardRef<HTMLDivElement, TabsProps>(function Tabs(\n { children, sx, ...rest },\n ref,\n) {\n const ourStyles = {\n \"& .MuiTabs-indicator\": { backgroundColor: \"transparent\" },\n };\n return (\n <MuiTabs ref={ref} sx={[ourStyles, ...(Array.isArray(sx) ? sx : [sx])]} {...rest}>\n {children}\n </MuiTabs>\n );\n});\n\nexport default Tabs;\n","import * as React from \"react\";\nimport Box from \"@mui/material/Box\";\nimport type { TabPanelProps } from \"./Tab.types\";\n\nconst TabPanel: React.FC<TabPanelProps> = ({ children, value, index, ...rest }) => (\n <div\n role=\"tabpanel\"\n hidden={value !== index}\n id={`scrollable-auto-tabpanel-${index}`}\n aria-labelledby={`scrollable-auto-tab-${index}`}\n {...rest}\n >\n {value === index && <Box>{children}</Box>}\n </div>\n);\n\nexport default TabPanel;\n","import * as React from \"react\";\nimport Box from \"@mui/material/Box\";\nimport { swapColors as c } from \"../theme/tokens\";\nimport { cssSize } from \"../utils/cssSize\";\nimport Typography from \"./Typography\";\nimport type { BannerProps } from \"./Banner.types\";\n\nconst PALETTE = {\n normal: { bg: c.black.black100, border: c.black.black500, iconFill: c.black.black700 },\n info: { bg: c.primary.primary50, border: c.primary.primary200, iconFill: c.primary.primary400 },\n success: { bg: c.success.success50, border: c.success.success400, iconFill: \"#00932A\" },\n warning: { bg: c.secondary.secondary50, border: c.secondary.secondary600, iconFill: \"#E5640C\" },\n error: { bg: c.danger.danger50, border: c.danger.danger300, iconFill: c.danger.danger700 },\n} as const;\n\nconst infoPath =\n \"M13 9H11V7H13V9ZM13 17H11V11H13V17ZM12 2C10.6868 2 9.38642 2.25866 8.17317 2.7612C6.95991 3.26375 5.85752 4.00035 4.92893 4.92893C3.05357 6.8043 2 9.34784 2 12C2 14.6522 3.05357 17.1957 4.92893 19.0711C5.85752 19.9997 6.95991 20.7362 8.17317 21.2388C9.38642 21.7413 10.6868 22 12 22C14.6522 22 17.1957 20.9464 19.0711 19.0711C20.9464 17.1957 22 14.6522 22 12C22 10.6868 21.7413 9.38642 21.2388 8.17317C20.7362 6.95991 19.9997 5.85752 19.0711 4.92893C18.1425 4.00035 17.0401 3.26375 15.8268 2.7612C14.6136 2.25866 13.3132 2 12 2Z\";\nconst successPath =\n \"M12 2C6.5 2 2 6.5 2 12C2 17.5 6.5 22 12 22C17.5 22 22 17.5 22 12C22 6.5 17.5 2 12 2ZM10 17L5 12L6.41 10.59L10 14.17L17.59 6.58L19 8L10 17Z\";\nconst warningPath = \"M13 14H11V9H13V14ZM13 18H11V16H13V18ZM1 21H23L12 2L1 21Z\";\n\nfunction defaultIcon(variant: keyof typeof PALETTE) {\n const path = variant === \"success\" ? successPath : variant === \"warning\" ? warningPath : infoPath;\n return (\n <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d={path} fill={PALETTE[variant].iconFill} />\n </svg>\n );\n}\n\nconst Banner = React.forwardRef<HTMLDivElement, BannerProps>(function Banner(\n { icon, variant = \"info\", width, height, mobile, children, sx, ...rest },\n ref,\n) {\n // v1:內容高度 >60 時改為 flex-start 對齊(mount 時量測)\n const innerRef = React.useRef<HTMLDivElement | null>(null);\n const [alignStart, setAlignStart] = React.useState(false);\n React.useEffect(() => {\n if (innerRef.current && innerRef.current.offsetHeight > 60) setAlignStart(true);\n }, []);\n\n const p = PALETTE[variant];\n const ourStyles = {\n backgroundColor: p.bg,\n border: `1px solid ${p.border}`,\n borderRadius: \"8px\",\n padding: \"12px 16px\",\n width: cssSize(width),\n height: cssSize(height),\n display: \"flex\",\n alignItems: mobile || alignStart ? \"flex-start\" : \"center\",\n };\n return (\n <Box\n ref={(node: HTMLDivElement | null) => {\n innerRef.current = node;\n if (typeof ref === \"function\") ref(node);\n else if (ref) ref.current = node;\n }}\n sx={[ourStyles, ...(Array.isArray(sx) ? sx : [sx])]}\n {...rest}\n >\n <Box sx={{ width: 24, height: 24, marginRight: \"8px\", flexShrink: 0 }}>\n {icon ?? defaultIcon(variant)}\n </Box>\n <Typography variant=\"caption2\">{children}</Typography>\n </Box>\n );\n});\n\nexport default Banner;\n","import * as React from \"react\";\nimport Box from \"@mui/material/Box\";\nimport Button from \"@mui/material/Button\";\nimport Skeleton from \"@mui/material/Skeleton\";\nimport { swapColors as c } from \"../theme/tokens\";\nimport { cssSize } from \"../utils/cssSize\";\nimport type { CardProps } from \"./Card.types\";\n\nconst Card = React.forwardRef<HTMLDivElement, CardProps>(function Card(\n { width, height, children, buttons, bodyStyle, loading, sx, ...rest },\n ref,\n) {\n const ourStyles = {\n width: cssSize(width) ?? 350,\n height: cssSize(height) ?? \"100%\",\n backgroundColor: c.black.white,\n boxSizing: \"border-box\" as const,\n border: `1px solid ${c.black.black500}`,\n borderRadius: \"8px\",\n display: \"flex\",\n flexDirection: \"column\" as const,\n justifyContent: \"space-between\",\n overflow: \"hidden\",\n };\n return (\n <Box ref={ref} sx={[ourStyles, ...(Array.isArray(sx) ? sx : [sx])]} {...rest}>\n <Box sx={{ padding: \"24px\", width: \"100%\", height: \"100%\" }} style={bodyStyle}>\n {!loading ? (\n children\n ) : (\n <Box sx={{ width: \"100%\", height: \"100%\" }}>\n <Skeleton width=\"40%\" height=\"calc((100% - 16px) / 3)\" />\n <Box sx={{ height: \"8px\" }} />\n <Skeleton width=\"100%\" height=\"calc((100% - 16px) / 3)\" />\n <Box sx={{ height: \"8px\" }} />\n <Box\n sx={{\n display: \"flex\",\n justifyContent: \"space-between\",\n width: \"100%\",\n height: \"calc((100% - 16px) / 3)\",\n }}\n >\n <Skeleton width=\"26.4%\" height=\"100%\" />\n <Skeleton width=\"26.4%\" height=\"100%\" />\n </Box>\n </Box>\n )}\n </Box>\n <Box\n sx={{\n width: \"100%\",\n boxShadow: `0px -1px 0px ${c.black.black400}`,\n borderRadius: \"0px 0px 8px 8px\",\n display: \"flex\",\n padding: 0,\n }}\n >\n {!loading ? (\n buttons?.map((b, index) => (\n <Button\n key={index}\n fullWidth\n variant={b.variant ?? \"black\"}\n style={{\n borderRight:\n index + 1 === buttons.length ? undefined : `1px solid ${c.black.black400}`,\n borderRadius: \"0px 0px 0px 0px\",\n ...b.style,\n }}\n onClick={b.onClick}\n disabled={b.disabled}\n loading={b.loading}\n >\n {b.title}\n </Button>\n ))\n ) : (\n <Box sx={{ padding: \"16px 24px\", width: \"100%\", height: 48 }}>\n <Skeleton width=\"100%\" height=\"100%\" />\n </Box>\n )}\n </Box>\n </Box>\n );\n});\n\nexport default Card;\n","import * as React from \"react\";\nimport Box from \"@mui/material/Box\";\nimport { swapColors as c } from \"../theme/tokens\";\nimport { cssSize } from \"../utils/cssSize\";\nimport Typography from \"./Typography\";\nimport type { ProgressProps } from \"./Progress.types\";\n\nconst Progress = React.forwardRef<HTMLDivElement, ProgressProps>(function Progress(\n { width, size, label, step, count, sx, ...rest },\n ref,\n) {\n const circle = cssSize(size) ?? 24;\n const ourStyles = {\n width: cssSize(width) ?? \"100%\",\n display: \"flex\",\n alignItems: \"flex-start\",\n };\n return (\n <Box ref={ref} sx={[ourStyles, ...(Array.isArray(sx) ? sx : [sx])]} {...rest}>\n {Array.from(Array(count).keys()).map((i) => {\n const isCurrent = i === step - 1;\n const isDone = i + 1 < step;\n return (\n <Box\n key={i}\n sx={{ width: \"100%\", display: \"flex\", flexDirection: \"column\", textAlign: \"center\" }}\n >\n <Box sx={{ width: \"100%\", display: \"flex\", alignItems: \"center\" }}>\n {/* 前段連接線 */}\n <Box\n sx={{\n height: \"2px\",\n width: \"calc((100% - 24px)/2)\",\n backgroundColor:\n i !== 0\n ? i + 1 <= step\n ? c.primary.primary800\n : c.black.black500\n : \"transparent\",\n }}\n />\n {/* 步驟圓 */}\n <Box\n sx={{\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n fontSize: 12,\n lineHeight: 1.4,\n fontWeight: 700,\n width: circle,\n height: circle,\n borderRadius: \"50%\",\n boxSizing: \"border-box\",\n backgroundColor: isCurrent ? \"white\" : isDone ? c.primary.primary800 : c.black.black600,\n color: isCurrent ? c.primary.primary800 : \"white\",\n border: isCurrent ? `2px solid ${c.primary.primary800}` : \"none\",\n boxShadow: isCurrent ? \"0px 0px 0px 4px #D7DFF8\" : \"unset\",\n }}\n >\n {i + 1}\n </Box>\n {/* 後段連接線 */}\n <Box\n sx={{\n height: \"2px\",\n width: \"calc((100% - 24px)/2)\",\n backgroundColor:\n i + 1 !== count\n ? i + 1 < step\n ? c.primary.primary800\n : c.black.black500\n : \"transparent\",\n }}\n />\n </Box>\n <Typography\n variant=\"caption1\"\n color={i + 1 === step ? \"black1000\" : \"black700\"}\n style={{ marginTop: 8 }}\n >\n {label ? label[i] : null}\n </Typography>\n </Box>\n );\n })}\n </Box>\n );\n});\n\nexport default Progress;\n","import * as React from \"react\";\nimport MuiModal from \"@mui/material/Modal\";\nimport Paper from \"@mui/material/Paper\";\nimport Divider from \"@mui/material/Divider\";\nimport Slide from \"@mui/material/Slide\";\nimport Box from \"@mui/material/Box\";\nimport CloseIcon from \"@mui/icons-material/Close\";\nimport CheckCircleIcon from \"@mui/icons-material/CheckCircle\";\nimport WarningIcon from \"@mui/icons-material/Warning\";\nimport { swapColors as c, swapShadows } from \"../theme/tokens\";\nimport { swapTokenMap } from \"../theme/textColor\";\nimport { cssSize } from \"../utils/cssSize\";\nimport useBreakpoints from \"../hooks/useBreakpoints\";\nimport Typography from \"./Typography\";\nimport Button from \"@mui/material/Button\";\nimport IconButton from \"./IconButton\";\nimport Tooltip from \"./Tooltip\";\nimport type { ModalProps, ModalButtonItem } from \"./Modal.types\";\n\nconst SIZE_WIDTH = { large: 800, medium: 640, small: 480, extraSmall: 320 } as const;\n\nfunction FooterButton({\n item,\n fullWidth,\n fallbackVariant,\n}: {\n item: ModalButtonItem;\n fullWidth: boolean;\n fallbackVariant: \"primary\" | \"secondary\";\n}) {\n const btn = (\n <Button\n fullWidth={fullWidth}\n variant={item.variant ?? fallbackVariant}\n size=\"small\"\n onClick={item.onClick}\n disabled={item.disabled}\n loading={item.loading}\n style={item.style}\n >\n {item.title}\n </Button>\n );\n return item.tooltip ? <Tooltip {...item.tooltip}>{btn}</Tooltip> : btn;\n}\n\nconst Modal = React.forwardRef<HTMLDivElement, ModalProps>(function Modal(props, ref) {\n const {\n width,\n height,\n open,\n onClose,\n title,\n helpText,\n size,\n headpadding,\n headChildren,\n checked,\n failed,\n icon,\n checkIconColor,\n iconColor,\n children,\n label,\n buttonFullWidth,\n footerDisplayColumn,\n secondaryButton,\n primaryButton,\n mobile,\n fullWidth,\n fullScreen,\n bodyPadding,\n maxWidth,\n disCloseIcon,\n titleStyle,\n bodyStyle,\n onExit,\n bodyMaxHeight,\n multiline,\n disUnderLine,\n footer,\n } = props;\n\n // fullWidth/mobile 時 body 最大高度依視窗計算(四檔公式沿 v1)\n const [clientHeight, setClientHeight] = React.useState(0);\n const [scrollbarWidth, setScrollbarWidth] = React.useState(0);\n React.useEffect(() => {\n if (mobile || fullWidth) {\n if ((helpText || multiline) && !label) setClientHeight(window.innerHeight - 64 - 73 - 64);\n else if (!helpText && label) setClientHeight(window.innerHeight - 64 - 56 - 99);\n else if ((helpText || multiline) && label) setClientHeight(window.innerHeight - 64 - 73 - 99);\n else setClientHeight(window.innerHeight - 64 - 56 - 64);\n }\n }, [fullWidth, mobile, helpText, multiline, label]);\n React.useEffect(() => {\n setScrollbarWidth((window.innerWidth - document.body.clientWidth) / 2);\n }, []);\n\n const matchXS = useBreakpoints(\"xs\");\n const slide = fullWidth || fullScreen;\n const resolvedWidth = fullScreen\n ? \"100vw\"\n : (cssSize(width) ?? (size ? SIZE_WIDTH[size] : \"100%\"));\n const iconSx = {\n \"& path\": { width: 20, height: 20 },\n color:\n (iconColor && swapTokenMap[iconColor]) ||\n (checkIconColor && swapTokenMap[checkIconColor]) ||\n c.black.black700,\n marginRight: \"10px\",\n };\n const headPad = headpadding\n ? headpadding\n : mobile\n ? disCloseIcon && !helpText && !multiline\n ? \"17px 16px\"\n : \"12px 16px\"\n : disCloseIcon && !helpText && !multiline\n ? \"19.5px 24px\"\n : \"16px 24px\";\n const bodyPad = bodyPadding ?? (mobile ? 16 : 24);\n\n const panel = (\n <Paper\n sx={{\n width: resolvedWidth,\n maxWidth: cssSize(maxWidth),\n borderRadius: fullScreen ? 0 : fullWidth ? \"12px 12px 0px 0px\" : \"12px\",\n border: \"unset\",\n boxShadow: fullScreen ? \"unset\" : swapShadows.l,\n display: \"flex\",\n flexDirection: \"column\",\n outline: 0,\n // v1 用 react-spring 做 200ms 淡入+上移;v2 以 CSS keyframes 等效(少一依賴)\n ...(slide\n ? {}\n : {\n animation: open ? \"swap-modal-in 200ms ease-in-out\" : \"none\",\n \"@keyframes swap-modal-in\": {\n from: { opacity: 0, transform: \"translateY(50px)\" },\n to: { opacity: 1, transform: \"translateY(0px)\" },\n },\n }),\n }}\n >\n {/* Head */}\n <Box\n sx={{\n borderRadius: fullScreen ? 0 : \"12px 12px 0px 0px\",\n padding: headPad,\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"space-between\",\n position: \"relative\",\n pointerEvents: onExit ? \"none\" : \"unset\",\n }}\n style={titleStyle}\n >\n {onExit ? (\n <Box\n sx={{\n position: \"absolute\",\n width: \"100%\",\n height: \"100%\",\n background: \"black\",\n top: 0,\n left: 0,\n opacity: 0.5,\n borderRadius: \"12px 12px 0px 0px\",\n zIndex: 10,\n }}\n />\n ) : null}\n {headChildren ?? (\n <Box sx={{ display: \"flex\", alignItems: \"center\", justifyContent: \"center\" }}>\n {icon ?? null}\n {checked ? <CheckCircleIcon sx={iconSx} /> : null}\n {failed ? <WarningIcon sx={iconSx} /> : null}\n <div>\n <Typography variant={!mobile ? \"h6\" : \"title\"}>{title}</Typography>\n {helpText ? (\n <Typography variant=\"body2_loose\" color=\"black800\" style={{ marginTop: 4 }}>\n {helpText}\n </Typography>\n ) : null}\n </div>\n </Box>\n )}\n {disCloseIcon ? null : (\n <IconButton sx={{ marginLeft: \"16px\" }} onClick={() => onClose()} aria-label=\"關閉\">\n <CloseIcon sx={{ color: c.black.black1000, width: 20, height: 20 }} />\n </IconButton>\n )}\n </Box>\n {/* Body */}\n {children ? (\n <>\n <Divider sx={{ backgroundColor: onExit ? \"#6d6d6d\" : \"#DADADA\" }} />\n <Box\n sx={{\n transition: \"all 0.2s ease-in-out\",\n height: fullScreen ? \"calc(100dvh - 146px)\" : (cssSize(height) ?? \"100%\"),\n padding: `${bodyPad}px`,\n position: \"relative\",\n pointerEvents: onExit ? \"none\" : \"unset\",\n maxHeight: fullScreen\n ? \"calc(100dvh - 146px)\"\n : (cssSize(bodyMaxHeight) ?? (fullWidth ? clientHeight : \"unset\")),\n overflowY: !onExit ? \"scroll\" : \"hidden\",\n \"&::-webkit-scrollbar\": { backgroundColor: \"transparent\", width: 5 },\n \"&::-webkit-scrollbar-thumb\": {\n backgroundColor: c.black.black600,\n borderRadius: \"100px\",\n },\n \"&::-webkit-scrollbar-track-piece:start\": { marginTop: \"12px\" },\n \"&::-webkit-scrollbar-track-piece:end\": { marginBottom: \"12px\" },\n }}\n style={bodyStyle}\n >\n {onExit ? (\n <Box\n sx={{\n marginLeft: `${-bodyPad}px`,\n marginTop: `${-bodyPad}px`,\n position:\n bodyMaxHeight || height || (mobile && fullWidth) || fullScreen\n ? \"fixed\"\n : \"absolute\",\n width: resolvedWidth,\n height: fullScreen\n ? \"100dvh\"\n : (cssSize(bodyMaxHeight) ??\n cssSize(height) ??\n (mobile && fullWidth ? clientHeight : \"100%\")),\n background: \"black\",\n opacity: 0.5,\n zIndex: 10,\n }}\n />\n ) : null}\n {children}\n </Box>\n </>\n ) : null}\n {(label || secondaryButton || primaryButton) && !disUnderLine ? <Divider /> : null}\n {/* Footer */}\n <Box\n sx={{\n padding:\n label || secondaryButton || primaryButton\n ? mobile\n ? \"12px 16px\"\n : \"16px 24px\"\n : undefined,\n borderRadius: \"0px 0px 12px 12px\",\n display: \"flex\",\n flexDirection: mobile ? \"column\" : \"row\",\n alignItems: \"center\",\n justifyContent: \"space-between\",\n }}\n >\n {footer ?? (\n <>\n {!buttonFullWidth || !footerDisplayColumn ? (\n <Box\n sx={{\n marginBottom: mobile && label ? \"12px\" : 0,\n fontSize: mobile ? 16 : 18,\n fontWeight: 700,\n lineHeight: 1.4,\n }}\n >\n {label}\n </Box>\n ) : null}\n {secondaryButton || primaryButton ? (\n <Box\n sx={{\n width: buttonFullWidth || footerDisplayColumn || mobile ? \"100%\" : undefined,\n display: \"flex\",\n flexDirection: footerDisplayColumn ? \"column-reverse\" : \"row\",\n alignItems: \"center\",\n }}\n >\n <Box\n sx={{\n width: mobile && !buttonFullWidth && !footerDisplayColumn ? undefined : \"100%\",\n marginRight: !footerDisplayColumn && secondaryButton ? \"8px\" : 0,\n }}\n >\n {secondaryButton ? (\n <FooterButton\n item={secondaryButton}\n fullWidth={Boolean(buttonFullWidth || footerDisplayColumn)}\n fallbackVariant=\"secondary\"\n />\n ) : null}\n </Box>\n <Box sx={{ width: \"100%\", marginBottom: footerDisplayColumn ? \"8px\" : 0 }}>\n {primaryButton ? (\n <FooterButton\n item={primaryButton}\n fullWidth={Boolean(buttonFullWidth || footerDisplayColumn || mobile)}\n fallbackVariant=\"primary\"\n />\n ) : null}\n </Box>\n </Box>\n ) : null}\n </>\n )}\n </Box>\n </Paper>\n );\n\n return (\n <MuiModal\n ref={ref}\n open={open}\n onClose={() => onClose()}\n sx={{\n display: \"flex\",\n alignItems: fullWidth ? \"flex-end\" : \"center\",\n justifyContent: \"center\",\n border: \"unset\",\n margin: fullWidth || fullScreen ? 0 : matchXS ? \"0px 24px\" : \"0px 16px\",\n }}\n slotProps={{\n backdrop: {\n sx: { transition: \"all 0.2s ease-in-out !important\" },\n style: { overflow: \"auto\", WebkitOverflowScrolling: \"touch\" },\n },\n }}\n >\n <Box\n sx={{\n outline: \"none\",\n width: \"100%\",\n display: \"flex\",\n justifyContent: \"center\",\n alignItems: \"center\",\n left: open ? 0 : scrollbarWidth,\n position: \"absolute\",\n ...(fullWidth ? { bottom: 0 } : {}),\n }}\n >\n {slide ? (\n <Slide in={open} direction=\"up\" mountOnEnter unmountOnExit timeout={{ enter: 300, exit: 300 }}>\n {panel}\n </Slide>\n ) : (\n panel\n )}\n </Box>\n </MuiModal>\n );\n});\n\nexport default Modal;\n","'use client';\n\nexport { createSvgIcon as default } from '@mui/material/SvgIcon';","\"use client\";\n\nimport createSvgIcon from \"./utils/createSvgIcon.mjs\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon(/*#__PURE__*/_jsx(\"path\", {\n d: \"M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z\"\n}), 'Close');","\"use client\";\n\nimport createSvgIcon from \"./utils/createSvgIcon.mjs\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon(/*#__PURE__*/_jsx(\"path\", {\n d: \"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2m-2 15-5-5 1.41-1.41L10 14.17l7.59-7.59L19 8z\"\n}), 'CheckCircle');","\"use client\";\n\nimport createSvgIcon from \"./utils/createSvgIcon.mjs\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon(/*#__PURE__*/_jsx(\"path\", {\n d: \"M1 21h22L12 2zm12-3h-2v-2h2zm0-4h-2v-4h2z\"\n}), 'Warning');","import useMediaQuery from \"@mui/material/useMediaQuery\";\nimport { swapBreakpoints } from \"../theme/tokens\";\n\n/**\n * v1 相容的斷點 hook:回傳視窗寬度是否 ≥ 指定斷點。\n * 斷點名對應 xxs 0 / xs 375 / sm 576 / md 768 / lg 992 / xl 1200 / xxl 1400,亦可傳任意 px 數字。\n */\nexport default function useBreakpoints(\n breakpoint?: keyof typeof swapBreakpoints | number,\n): boolean {\n const px = typeof breakpoint === \"number\" ? breakpoint : swapBreakpoints[breakpoint ?? \"xxs\"];\n return useMediaQuery(`(min-width:${px}px)`);\n}\n","import * as React from \"react\";\nimport MuiSnackbar from \"@mui/material/Snackbar\";\nimport Slide, { type SlideProps } from \"@mui/material/Slide\";\nimport Fade from \"@mui/material/Fade\";\nimport Box from \"@mui/material/Box\";\nimport { swapColors as c, swapShadows, swapRadius } from \"../theme/tokens\";\nimport { cssSize } from \"../utils/cssSize\";\nimport IconButton from \"./IconButton\";\nimport type { SnackbarProps } from \"./Snackbar.types\";\n\ntype TransitionProps = Omit<SlideProps, \"direction\">;\nconst TransitionLeft = (p: TransitionProps) => <Slide {...p} direction=\"left\" />;\nconst TransitionRight = (p: TransitionProps) => <Slide {...p} direction=\"right\" />;\nconst TransitionUp = (p: TransitionProps) => <Slide {...p} direction=\"up\" />;\nconst TransitionDown = (p: TransitionProps) => <Slide {...p} direction=\"down\" />;\nconst TransitionFade = (p: TransitionProps) => <Fade {...p} />;\n\nconst iconClose = (\n <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M19 6.41L17.59 5L12 10.59L6.41 5L5 6.41L10.59 12L5 17.59L6.41 19L12 13.41L17.59 19L19 17.59L13.41 12L19 6.41Z\"\n fill=\"white\"\n />\n </svg>\n);\nconst iconChecked = (\n <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M21 7.00003L9 19L3.5 13.5L4.91 12.09L9 16.17L19.59 5.59003L21 7.00003Z\" fill=\"white\" />\n </svg>\n);\nconst iconError = (\n <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M13 13H11V7H13V13ZM13 17H11V15H13V17ZM12 2C10.6868 2 9.38642 2.25866 8.17317 2.7612C6.95991 3.26375 5.85752 4.00035 4.92893 4.92893C3.05357 6.8043 2 9.34784 2 12C2 14.6522 3.05357 17.1957 4.92893 19.0711C5.85752 19.9997 6.95991 20.7362 8.17317 21.2388C9.38642 21.7413 10.6868 22 12 22C14.6522 22 17.1957 20.9464 19.0711 19.0711C20.9464 17.1957 22 14.6522 22 12C22 10.6868 21.7413 9.38642 21.2388 8.17317C20.7362 6.95991 19.9997 5.85752 19.0711 4.92893C18.1425 4.00035 17.0401 3.26375 15.8268 2.7612C14.6136 2.25866 13.3132 2 12 2Z\"\n fill=\"white\"\n />\n </svg>\n);\n\nconst Snackbar: React.FC<SnackbarProps> = ({\n message,\n transitionDirection,\n transitionDuration,\n width,\n height,\n variant,\n action,\n revertButton,\n closeIcon,\n icon,\n checkIcon,\n errorIcon,\n sx,\n ...rest\n}) => {\n const bg =\n variant === \"success\" ? c.success.success800 : variant === \"error\" ? c.danger.danger900 : c.black.black1000;\n const border =\n variant === \"success\"\n ? c.success.successA11y\n : variant === \"error\"\n ? c.danger.dangerA11y\n : c.black.black1000;\n const leadingIcon = checkIcon ? iconChecked : errorIcon ? (icon ?? iconError) : icon;\n const ourStyles = {\n \"@media only screen and (min-width: 600px)\": { width: \"fit-content\", marginRight: \"24px\" },\n \"@media only screen and (max-width: 600px)\": {\n width: \"unset\",\n bottom: 16,\n left: 16,\n right: 16,\n },\n \"& .MuiSnackbarContent-root\": {\n flexWrap: \"nowrap\",\n minWidth: 320,\n maxWidth: 640,\n width: cssSize(width) ?? \"unset\",\n height: cssSize(height) ?? \"unset\",\n boxShadow: swapShadows.l,\n borderRadius: swapRadius.m,\n backgroundColor: bg,\n border: `1px solid ${border}`,\n padding: \"12px 16px\",\n boxSizing: \"border-box\",\n },\n \"& .MuiSnackbarContent-message\": { padding: 0 },\n \"& .MuiSnackbarContent-action\": { padding: 0 },\n };\n return (\n <MuiSnackbar\n {...rest}\n sx={[ourStyles, ...(Array.isArray(sx) ? sx : [sx])]}\n message={\n <Box\n sx={{\n display: \"flex\",\n alignItems: \"center\",\n fontSize: 14,\n fontWeight: 400,\n lineHeight: 1.6,\n color: \"#ffffff\",\n }}\n >\n {leadingIcon ? (\n <>\n {leadingIcon}\n <Box sx={{ width: \"8px\", height: \"100%\" }} />\n </>\n ) : null}\n {message}\n </Box>\n }\n action={\n action ?? (\n <>\n {revertButton ? (\n <Box\n sx={{\n fontSize: 14,\n fontWeight: 700,\n lineHeight: 1.4,\n color: c.secondary.secondary600,\n cursor: \"pointer\",\n whiteSpace: \"nowrap\",\n marginLeft: \"8px\",\n }}\n onClick={revertButton.onClick}\n >\n {revertButton.label ?? \"收回操作\"}\n </Box>\n ) : null}\n {closeIcon ? (\n <IconButton\n hoverColor={\n variant === \"success\"\n ? \"#006818\"\n : variant === \"error\"\n ? \"#A00204\"\n : (closeIcon.hoverColor ?? \"#333333\")\n }\n onClick={closeIcon.onClick}\n sx={{ marginLeft: \"8px\" }}\n >\n {closeIcon.icon ?? iconClose}\n </IconButton>\n ) : null}\n </>\n )\n }\n slots={{\n transition:\n transitionDirection === \"left\"\n ? TransitionLeft\n : transitionDirection === \"right\"\n ? TransitionRight\n : transitionDirection === \"up\"\n ? TransitionUp\n : transitionDirection === \"down\"\n ? TransitionDown\n : TransitionFade,\n ...rest.slots,\n }}\n transitionDuration={transitionDuration}\n />\n );\n};\n\nexport default Snackbar;\n","import * as React from \"react\";\nimport Box from \"@mui/material/Box\";\nimport RadioButton from \"./RadioButton\";\nimport Typography from \"./Typography\";\nimport { selectionListStyles } from \"./selectionList.styles\";\nimport type { RadioListProps } from \"./RadioList.types\";\n\nexport function SelectionListInner({\n control,\n title,\n subtitle,\n multiline,\n line,\n}: {\n control: React.ReactNode;\n title?: React.ReactNode;\n subtitle?: React.ReactNode;\n multiline?: boolean;\n line?: boolean;\n}) {\n // line 模式:直線高度隨 subtitle 內容量測(≥44)\n const ref = React.useRef<HTMLDivElement | null>(null);\n const [lineHeight, setLineHeight] = React.useState(44);\n React.useEffect(() => {\n if (ref.current) setLineHeight(Math.max(ref.current.offsetHeight, 44));\n }, []);\n return (\n <>\n <Box sx={{ display: \"flex\", alignItems: \"center\" }}>\n {control}\n {line ? (\n <Box sx={{ display: \"flex\", alignItems: \"center\", marginLeft: \"4px\" }}>\n <Typography\n variant=\"title\"\n style={{ maxWidth: 56, minWidth: 56, textAlign: \"center\", wordBreak: \"break-word\" }}\n >\n {title}\n </Typography>\n <Box sx={{ height: lineHeight, width: \"1px\", margin: \"0 12px\", backgroundColor: \"#909090\" }} />\n <div ref={ref}>\n <Typography\n variant=\"body2_loose\"\n color=\"black800\"\n style={{ width: \"100%\", wordBreak: \"break-word\" }}\n >\n {subtitle}\n </Typography>\n </div>\n </Box>\n ) : (\n <Box sx={{ display: \"flex\", flexDirection: \"column\" }}>\n <Typography variant=\"title\">{title}</Typography>\n {multiline ? (\n <Typography variant=\"body2_loose\" color=\"black800\">\n {subtitle}\n </Typography>\n ) : null}\n </Box>\n )}\n </Box>\n {!multiline && !line ? (\n <Typography variant=\"body2_loose\" color=\"black800\">\n {subtitle}\n </Typography>\n ) : null}\n </>\n );\n}\n\nconst RadioList = React.forwardRef<HTMLDivElement, RadioListProps>(function RadioList(\n { width, height, title, subtitle, multiline, checked, line, sx, ...rest },\n ref,\n) {\n return (\n <Box\n ref={ref}\n sx={[\n selectionListStyles({ checked, multiline, line, width, height }),\n ...(Array.isArray(sx) ? sx : [sx]),\n ]}\n {...rest}\n >\n <SelectionListInner\n control={<RadioButton disableHover checked={Boolean(checked)} sx={{ marginLeft: \"4px\" }} />}\n title={title}\n subtitle={subtitle}\n multiline={multiline}\n line={line}\n />\n </Box>\n );\n});\n\nexport default RadioList;\n","import { swapColors as c } from \"../theme/tokens\";\nimport { cssSize } from \"../utils/cssSize\";\n\n/** RadioList / CheckBoxList 共用的可選卡片樣式(三模式尺寸沿 v1) */\nexport function selectionListStyles(opts: {\n checked?: boolean;\n multiline?: boolean;\n line?: boolean;\n width?: string | number;\n height?: string | number;\n}) {\n const { checked, multiline, line, width, height } = opts;\n return {\n width: cssSize(width) ?? (multiline ? 240 : line ? 342 : 327),\n height: cssSize(height) ?? (multiline ? 69 : line ? 76 : 54),\n padding: line ? \"16px\" : multiline ? \"12px 16px\" : \"15px 16px\",\n border: checked ? `1px solid ${c.primary.primary400}` : `1px solid ${c.black.black500}`,\n boxSizing: \"border-box\" as const,\n borderRadius: \"8px\",\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"space-between\",\n cursor: \"pointer\",\n backgroundColor: checked ? c.primary.primary50 : \"white\",\n WebkitTapHighlightColor: \"transparent\",\n \"&:hover\": {\n backgroundColor: checked ? c.primary.primary50 : c.black.black100,\n border: checked ? `1px solid ${c.primary.primary400}` : `1px solid ${c.black.black600}`,\n },\n };\n}\n","import * as React from \"react\";\nimport Box from \"@mui/material/Box\";\nimport CheckBox from \"./CheckBox\";\nimport { SelectionListInner } from \"./RadioList\";\nimport { selectionListStyles } from \"./selectionList.styles\";\nimport type { CheckBoxListProps } from \"./RadioList.types\";\n\nconst CheckBoxList = React.forwardRef<HTMLDivElement, CheckBoxListProps>(function CheckBoxList(\n { width, height, title, subtitle, multiline, checked, line, sx, ...rest },\n ref,\n) {\n return (\n <Box\n ref={ref}\n sx={[\n selectionListStyles({ checked, multiline, line, width, height }),\n ...(Array.isArray(sx) ? sx : [sx]),\n ]}\n {...rest}\n >\n <SelectionListInner\n control={<CheckBox disableHover checked={Boolean(checked)} sx={{ marginLeft: \"4px\" }} />}\n title={title}\n subtitle={subtitle}\n multiline={multiline}\n line={line}\n />\n </Box>\n );\n});\n\nexport default CheckBoxList;\n","import * as React from \"react\";\nimport MuiAutocomplete from \"@mui/material/Autocomplete\";\nimport type { AutocompleteCloseReason } from \"@mui/material/Autocomplete\";\nimport InputBase from \"@mui/material/InputBase\";\nimport Popper from \"@mui/material/Popper\";\nimport Box from \"@mui/material/Box\";\nimport { alpha } from \"@mui/material/styles\";\nimport { swapColors as c, swapShadows } from \"../theme/tokens\";\nimport Typography from \"./Typography\";\nimport type { AutoCompleteProps } from \"./AutoComplete.types\";\nimport { cssSize } from \"../utils/cssSize\";\n\nconst checkSvg = (\n <svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M17.4998 5.83345L7.49984 15.8334L2.9165 11.2501L4.0915 10.0751L7.49984 13.4751L16.3248 4.65845L17.4998 5.83345Z\"\n fill=\"#4862CC\"\n />\n </svg>\n);\n\nconst AutoComplete: React.FC<AutoCompleteProps> = (props) => {\n // v1 在 renderInput 內用 useEffect 記錄輸入值(React 違規);v2 改為正常 state 追蹤\n const [inputValue, setInputValue] = React.useState(\"\");\n const {\n open = false,\n helperText,\n value,\n handleNoOptionsValueChange,\n options = [],\n placeholder,\n placement,\n title,\n width,\n anchorEl,\n disableFreeInput,\n renderOption,\n getOptionLabel,\n noOptionsText,\n renderInput,\n optionsMaxHeight,\n anchorOrigin,\n addNewOptionsText,\n ...other\n } = props;\n\n return (\n <div>\n <Popper\n open={open}\n anchorEl={anchorEl}\n placement={placement ?? \"bottom-start\"}\n sx={{\n border: `1px solid ${c.black.black500}`,\n boxShadow: swapShadows.m,\n borderRadius: \"8px\",\n width: cssSize(width) ?? 320,\n zIndex: 1301,\n fontSize: 13,\n color: \"#586069\",\n backgroundColor: \"#fff\",\n marginTop: `${anchorOrigin?.vertical ?? -65}px !important`,\n marginLeft: `${anchorOrigin?.horizontal ?? 0}px !important`,\n boxSizing: \"border-box\",\n }}\n >\n <Box sx={{ padding: \"16px 16px 8px 16px\", fontWeight: 600 }}>\n <Typography variant=\"caption1\" color=\"black800\">\n {title}\n </Typography>\n </Box>\n <MuiAutocomplete\n // listbox 需留在面板內(v1 行為):不 disablePortal 會被 portal 到 body,\n // 跑出外框且與已選面板重疊(使用者回報的兩個問題同根因)\n disablePortal\n {...other}\n open\n options={options}\n renderOption={renderOption}\n getOptionLabel={getOptionLabel}\n onInputChange={(_, v) => setInputValue(v)}\n slotProps={{\n paper: {\n sx: {\n boxShadow: \"none\",\n margin: 0,\n color: \"#586069\",\n fontSize: 13,\n border: \"none\",\n paddingRight: \"5px\",\n },\n },\n listbox: {\n sx: {\n maxHeight: cssSize(optionsMaxHeight),\n \"& .MuiAutocomplete-option\": {\n fontSize: 14,\n fontWeight: 700,\n minHeight: \"auto\",\n alignItems: \"flex-start\",\n padding: \"8px 16px\",\n color: \"#000\",\n '&[aria-selected=\"true\"]': { display: \"none\" },\n \"&.Mui-focused\": {\n backgroundColor: c.primary.primary50,\n color: c.primary.primary800,\n },\n },\n \"&::-webkit-scrollbar\": { backgroundColor: \"transparent\", width: 5 },\n \"&::-webkit-scrollbar-thumb\": {\n backgroundColor: c.black.black600,\n borderRadius: \"100px\",\n },\n \"&::-webkit-scrollbar-track-piece:start\": { marginTop: \"12px\" },\n \"&::-webkit-scrollbar-track-piece:end\": { marginBottom: \"12px\" },\n },\n },\n // popper.js 會寫入 inline 的 absolute/transform,需 !important 拉回文流,\n // 讓清單留在面板內、排在已選面板下方\n popper: {\n sx: {\n position: \"static !important\",\n transform: \"none !important\",\n width: \"100% !important\",\n },\n },\n }}\n noOptionsText={\n disableFreeInput ? (\n \"無此選項\"\n ) : (\n <Box\n sx={{\n fontSize: 14,\n fontWeight: 700,\n lineHeight: 1.4,\n display: \"flex\",\n justifyContent: \"space-between\",\n alignItems: \"center\",\n flexWrap: \"wrap\",\n }}\n >\n {noOptionsText ?? \"無此選項\"}\n <Box\n sx={{\n color: c.primary.primary400,\n cursor: \"pointer\",\n \"&:hover\": { textDecoration: \"underline\" },\n }}\n onMouseDown={() => handleNoOptionsValueChange?.(inputValue)}\n >\n {addNewOptionsText ?? \"使用\"} 「{inputValue}」\n </Box>\n </Box>\n )\n }\n renderInput={\n renderInput ??\n ((params) => (\n <>\n <InputBase\n placeholder={placeholder}\n ref={params.slotProps.input.ref}\n inputProps={params.slotProps.htmlInput}\n autoFocus\n sx={{\n padding: \"0 16px 16px 16px\",\n width: \"100%\",\n borderBottom: \"1px solid #dfe2e5\",\n \"& input\": {\n height: 16,\n borderRadius: \"8px\",\n backgroundColor: c.black.white,\n padding: \"13px 16px\",\n border: \"1px solid #ced4da\",\n fontSize: 14,\n \"&:focus\": {\n boxShadow: `${alpha(c.primary.primary400, 0.25)} 0 0 0 0.2rem`,\n borderColor: c.primary.primary400,\n },\n },\n }}\n />\n {value ? (\n <Box\n sx={{\n minHeight: 52,\n padding: \"16px 16px\",\n display: \"grid\",\n gap: \"10px\",\n alignItems: \"center\",\n gridTemplateColumns: \"auto 20px\",\n backgroundColor: \"transparent\",\n color: c.primary.primary400,\n fontSize: 14,\n fontWeight: 700,\n lineHeight: 1.4,\n boxShadow: \"inset 0px -1px 0px #ECECEC\",\n }}\n >\n {value}\n {checkSvg}\n </Box>\n ) : null}\n </>\n ))\n }\n />\n </Popper>\n </div>\n );\n};\n\nexport type { AutocompleteCloseReason };\n\nexport default AutoComplete;\n","import * as React from \"react\";\nimport MuiSelect from \"@mui/material/Select\";\nimport FormControl from \"@mui/material/FormControl\";\nimport FormHelperText from \"@mui/material/FormHelperText\";\nimport OutlinedInput from \"@mui/material/OutlinedInput\";\nimport { swapColors as c } from \"../theme/tokens\";\nimport type { DropdownProps } from \"./Dropdown.types\";\nimport { cssSize } from \"../utils/cssSize\";\n\nconst Dropdown: React.FC<DropdownProps> = ({\n children,\n formControlStyle,\n inputProps,\n MenuProps,\n helperText,\n width,\n height,\n helperTextStyle,\n sx,\n ...rest\n}) => {\n const large = (height ?? 0) >= 56;\n const ourStyles = {\n \"& .MuiSelect-select\": {\n height: height ? (large ? height - 38 : height - 24) : 16,\n display: \"flex\",\n alignItems: \"center\",\n padding: large ? \"19px 8px 19px 24px\" : \"12px 4px 12px 16px\",\n fontSize: large ? 16 : 14,\n lineHeight: large ? \"18px\" : \"15.75px\",\n fontWeight: 700,\n color: c.black.black800,\n \"&:hover\": { color: c.black.black1000, backgroundColor: \"white\", fontWeight: 700 },\n \"&:focus-visible\": { color: c.black.black1000, backgroundColor: \"white\", fontWeight: 700 },\n },\n \"& .MuiSelect-icon\": { marginTop: \"2px\", width: 20, height: 20, color: c.black.black800 },\n };\n return (\n <FormControl variant=\"outlined\" style={formControlStyle} sx={{ width: cssSize(width) ?? \"100%\" }}>\n <MuiSelect\n {...rest}\n inputProps={inputProps}\n input={\n <OutlinedInput\n sx={{\n \"& .MuiOutlinedInput-notchedOutline\": { borderColor: c.black.black500 },\n \"&:hover\": { borderColor: c.black.black1000, \"& svg\": { color: c.black.black1000 } },\n \"&.Mui-focused .MuiOutlinedInput-notchedOutline\": {\n borderColor: c.black.black1000,\n borderWidth: 1,\n },\n \"&.Mui-focused svg\": { color: c.black.black1000 },\n }}\n />\n }\n sx={[ourStyles, ...(Array.isArray(sx) ? sx : [sx])]}\n MenuProps={{\n slotProps: { paper: { sx: { marginTop: \"8px\" } } },\n ...MenuProps,\n }}\n >\n {children}\n </MuiSelect>\n <FormHelperText style={helperTextStyle}>{helperText}</FormHelperText>\n </FormControl>\n );\n};\n\nexport default Dropdown;\n","import * as React from \"react\";\nimport MuiTab from \"@mui/material/Tab\";\nimport type { SegmentedTabProps } from \"./SegmentedTab.types\";\nimport { cssSize } from \"../utils/cssSize\";\n\nconst SegmentedTab = React.forwardRef<HTMLDivElement, SegmentedTabProps>(function SegmentedTab(\n { width, height, fontSize, flex, sx, ...rest },\n ref,\n) {\n const ourStyles = {\n textTransform: \"unset\" as const,\n padding: \"12px 16px\",\n minWidth: 0,\n minHeight: cssSize(height) ?? 40,\n width: cssSize(width) ?? \"fit-content\",\n fontWeight: 700,\n fontSize: fontSize ?? 14,\n lineHeight: 1.4,\n color: \"#6F6F6F\",\n opacity: 1,\n whiteSpace: \"nowrap\" as const,\n flex,\n \"&:hover\": { color: \"#000000\" },\n // 讓文字墊在 slide 指示層之上\n \"& .MuiTab-wrapper, &\": { position: \"relative\" as const, zIndex: 5 },\n };\n return <MuiTab ref={ref} disableRipple sx={[ourStyles, ...(Array.isArray(sx) ? sx : [sx])]} {...rest} />;\n});\n\nexport default SegmentedTab;\n","import * as React from \"react\";\nimport MuiTabs from \"@mui/material/Tabs\";\nimport { swapColors as c } from \"../theme/tokens\";\nimport type { SegmentedTabsProps } from \"./SegmentedTab.types\";\nimport { cssSize } from \"../utils/cssSize\";\n\nconst SegmentedTabs = React.forwardRef<HTMLDivElement, SegmentedTabsProps>(function SegmentedTabs(\n { children, width, slide, sx, ...rest },\n ref,\n) {\n const innerRef = React.useRef<HTMLDivElement | null>(null);\n\n // scrollable 時確保 selected tab 進入視野(v9 目標瀏覽器原生支援 smooth,不需 polyfill)\n React.useEffect(() => {\n if (innerRef.current && rest.variant === \"scrollable\") {\n const el = innerRef.current.querySelector(\".MuiTab-root.Mui-selected\");\n if (el) {\n setTimeout(() => {\n el.scrollIntoView({ behavior: \"smooth\", block: \"nearest\", inline: \"center\" });\n }, 1000);\n }\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n const ourStyles = {\n width: cssSize(width),\n boxSizing: \"border-box\" as const,\n border: `1px solid ${c.black.black500}`,\n borderRadius: \"9px\",\n padding: \"4px 0\",\n \"& button\": {\n borderRadius: \"8px\",\n margin: \"0 4px\",\n \"&.Mui-selected\": {\n backgroundColor: slide ? \"unset\" : c.primary.primary50,\n color: c.primary.primary500,\n },\n },\n \"& .MuiTabs-indicator\": {\n borderRadius: \"8px\",\n height: slide ? \"100%\" : 0,\n backgroundColor: c.primary.primary50,\n },\n \"& .MuiTabs-scrollButtons\": {\n width: 32,\n overflow: \"hidden\",\n \"&.Mui-disabled\": { width: \"4px\" },\n },\n };\n\n return (\n <MuiTabs\n ref={(node: HTMLDivElement | null) => {\n innerRef.current = node;\n if (typeof ref === \"function\") ref(node);\n else if (ref) ref.current = node;\n }}\n sx={[ourStyles, ...(Array.isArray(sx) ? sx : [sx])]}\n {...rest}\n >\n {children}\n </MuiTabs>\n );\n});\n\nexport default SegmentedTabs;\n","import * as React from \"react\";\nimport Box from \"@mui/material/Box\";\nimport { cssSize } from \"../utils/cssSize\";\nimport type { SWAPLogoProps } from \"./SWAPLogo.types\";\n\nimport logoNormal from \"./assets/SWAP_web logo.svg\";\nimport logoNormalDark from \"./assets/SWAP_web logo-white.svg\";\nimport logoBiz from \"./assets/SWAP BIZ_web logo_test-01.svg\";\nimport logoBizZhTw from \"./assets/Blue - Biz.svg\";\nimport logoBlack from \"./assets/Color=Black.svg\";\nimport logoBlackDark from \"./assets/Color=White.svg\";\nimport logoIcon from \"./assets/Color=Blue.svg\";\nimport logoIconBlack from \"./assets/Color=White_icon.svg\";\n\nfunction pickSrc(p: SWAPLogoProps): string {\n if (p.business) return p.chinese ? logoBizZhTw : logoBiz;\n if (p.black) {\n if (p.iconOnly) return logoIconBlack;\n if (p.dark) return logoBlackDark;\n return logoBlack;\n }\n if (p.iconOnly) return logoIcon;\n if (p.dark) return logoNormalDark;\n return logoNormal;\n}\n\nfunction logoHeight(size: SWAPLogoProps[\"size\"], business?: boolean): string {\n const map = business\n ? { small: \"48px\", middle: \"72px\", large: \"81px\" }\n : { small: \"30px\", middle: \"40px\", large: \"48px\" };\n if (size === \"small\" || size === \"middle\" || size === \"large\") return map[size];\n if (typeof size === \"number\") return `${size}px`;\n if (typeof size === \"string\") return size;\n return business ? \"42px\" : \"100%\";\n}\n\nconst SWAPLogo: React.FC<SWAPLogoProps> = (props) => {\n const { size = \"middle\", width, height } = props;\n return (\n <Box component=\"span\" sx={{ display: \"flex\", alignItems: \"center\" }}>\n <img\n src={pickSrc(props)}\n alt={props.business ? \"SWAP BIZ\" : \"SWAP\"}\n style={{\n height: cssSize(height) ?? logoHeight(size, props.business),\n width: cssSize(width),\n }}\n />\n </Box>\n );\n};\n\nexport default SWAPLogo;\n","import * as React from \"react\";\nimport { useEffect, useState } from \"react\";\nimport Box from \"@mui/material/Box\";\nimport { LineShareButton } from \"react-share\";\n\nimport type { SWAPShareProps } from \"./SWAPShare.types\";\n\nconst SWAPShare: React.FC<SWAPShareProps> = ({\n url,\n size = 36,\n emailSubject = \"\",\n sharedContent = \"\",\n}) => {\n const [sharedUrl, setSharedUrl] = useState(\"\");\n\n useEffect(() => {\n if (url && url.length > 0) {\n setSharedUrl(url);\n } else {\n setSharedUrl(window.location.href);\n }\n }, []);\n\n const handleEmailOnClick = () => {\n /**\n * Relative issue: https://github.com/nygardk/react-share/issues/292\n */\n const email = encodeURI(`mailto:\n ?subject=${emailSubject}&body=${sharedContent}\\n\\n${sharedUrl}`);\n window.location.href = email;\n };\n\n const handleMessengerOnClick = () => {\n /**\n * Relative issue\n * https://github.com/nygardk/react-share/issues/288\n * https://stackoverflow.com/questions/34675419/share-url-in-facebook-messenger-from-web#\n */\n const appId = 549090209290719;\n const mobileDevide = /iPhone|iPad|iPod|Android/i.test(navigator.userAgent);\n const mobile =\n \"fb-messenger://share?link=\" +\n encodeURIComponent(`${sharedUrl}`) +\n `&app_id=` +\n encodeURIComponent(appId);\n\n const desktop = `https://www.facebook.com/dialog/send?link=${encodeURIComponent(\n sharedUrl\n )}&redirect_uri=${encodeURIComponent(sharedUrl)}&app_id=${appId}`;\n window.open(mobileDevide ? mobile : desktop, \"_blank\");\n };\n\n return (\n <Box\n sx={{\n height: 40,\n position: \"relative\",\n display: \"flex\",\n gap: \"8px\",\n \"& .swap_share_icon\": { cursor: \"pointer\", width: 40, height: 40 },\n }}\n >\n {[\n {\n el: (\n <div\n className=\"swap_share_icon\"\n onClick={() => handleMessengerOnClick()}\n >\n <svg\n width=\"40\"\n height=\"40\"\n viewBox=\"0 0 40 40\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M0 10C0 4.47715 4.47715 0 10 0H30C35.5228 0 40 4.47715 40 10V30C40 35.5228 35.5228 40 30 40H10C4.47715 40 0 35.5228 0 30V10Z\"\n fill=\"#ECECEC\"\n />\n <path\n d=\"M19.9999 10C14.3599 10 9.99988 14.13 9.99988 19.7C9.99988 22.61 11.1899 25.14 13.1399 26.87C13.2999 27 13.3999 27.22 13.4099 27.44L13.4599 29.22C13.4999 29.79 14.0699 30.16 14.5899 29.93L16.5699 29.06C16.7399 29 16.9299 28.97 17.0999 29C17.9999 29.27 18.9999 29.4 19.9999 29.4C25.6399 29.4 29.9999 25.27 29.9999 19.7C29.9999 14.13 25.6399 10 19.9999 10ZM25.9999 17.46L23.0699 22.13C22.5999 22.86 21.5999 23.05 20.8999 22.5L18.5599 20.77C18.3499 20.61 18.0499 20.61 17.8399 20.77L14.6799 23.17C14.2599 23.5 13.7099 23 13.9999 22.54L16.9299 17.87C17.3999 17.14 18.3999 16.95 19.0999 17.47L21.4399 19.23C21.6599 19.39 21.9499 19.39 22.1599 19.23L25.3199 16.83C25.7399 16.5 26.2899 17 25.9999 17.46Z\"\n fill=\"#6F6F6F\"\n />\n </svg>\n </div>\n ),\n },\n {\n el: (\n <LineShareButton url={sharedUrl} title={sharedContent}>\n <svg\n width=\"40\"\n height=\"40\"\n viewBox=\"0 0 40 40\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M0 10C0 4.47715 4.47715 0 10 0H30C35.5228 0 40 4.47715 40 10V30C40 35.5228 35.5228 40 30 40H10C4.47715 40 0 35.5228 0 30V10Z\"\n fill=\"#ECECEC\"\n />\n <path\n d=\"M10 20C10 14.4772 14.4772 10 20 10C25.5228 10 30 14.4772 30 20C30 25.5228 25.5228 30 20 30C14.4772 30 10 25.5228 10 20Z\"\n fill=\"#6F6F6F\"\n />\n <path\n d=\"M20.1666 14.667C16.7666 14.667 14 16.8957 14 19.6352C14 22.0912 16.1938 24.148 19.1573 24.5369C19.3581 24.5799 19.6314 24.6683 19.7006 24.8388C19.7628 24.9936 19.7413 25.236 19.7205 25.3924C19.7205 25.3924 19.6481 25.8244 19.6325 25.9164C19.6057 26.0712 19.5086 26.5218 20.1666 26.2464C20.8248 25.9711 23.718 24.1704 25.0118 22.6919C25.9053 21.719 26.3333 20.7316 26.3333 19.6352C26.3333 16.8957 23.5671 14.667 20.1666 14.667Z\"\n fill=\"white\"\n />\n <path\n d=\"M18.4525 18.3335C18.3868 18.3335 18.3334 18.3886 18.3334 18.4564V21.2106C18.3334 21.2785 18.3868 21.3335 18.4525 21.3335H18.881C18.9468 21.3335 19 21.2785 19 21.2106V18.4564C19 18.3886 18.9468 18.3335 18.881 18.3335H18.4525Z\"\n fill=\"#6F6F6F\"\n />\n <path\n d=\"M21.8746 18.3335H21.4235C21.3543 18.3335 21.2982 18.3886 21.2982 18.4564V20.0927L20.014 18.3881C20.011 18.3838 20.0077 18.3797 20.0042 18.3757L20.0034 18.3749C20.0009 18.3722 19.9984 18.3697 19.9958 18.3673C19.9951 18.3666 19.9944 18.366 19.9935 18.3652C19.9914 18.3633 19.9892 18.3615 19.9868 18.3598C19.9859 18.3588 19.9848 18.3581 19.9836 18.3572C19.9814 18.3558 19.9793 18.3542 19.9771 18.3529C19.9759 18.352 19.9746 18.3513 19.9733 18.3507C19.9711 18.3494 19.9688 18.348 19.9666 18.3469C19.9653 18.3463 19.964 18.3456 19.9627 18.3451C19.9603 18.344 19.958 18.3429 19.9555 18.3421C19.9541 18.3416 19.9528 18.3411 19.9515 18.3406C19.949 18.3398 19.9465 18.3389 19.9439 18.3383C19.9426 18.3379 19.9411 18.3376 19.9396 18.3371C19.9372 18.3366 19.9348 18.336 19.9325 18.3356C19.9307 18.3353 19.9289 18.3351 19.9272 18.335C19.925 18.3345 19.9227 18.3343 19.9205 18.3341C19.9184 18.3339 19.9163 18.3339 19.9141 18.3337C19.9125 18.3337 19.9113 18.3335 19.9097 18.3335H19.4586C19.3895 18.3335 19.3333 18.3886 19.3333 18.4564V21.2106C19.3333 21.2785 19.3895 21.3335 19.4586 21.3335H19.9097C19.979 21.3335 20.0351 21.2785 20.0351 21.2106V19.5748L21.3209 21.2815C21.3298 21.2939 21.3408 21.3039 21.3527 21.3119C21.3531 21.3122 21.3536 21.3125 21.354 21.3129C21.3566 21.3145 21.3591 21.316 21.3617 21.3175C21.363 21.3182 21.3641 21.3187 21.3653 21.3193C21.3672 21.3204 21.3693 21.3214 21.3712 21.3222C21.3733 21.3231 21.3752 21.3239 21.3774 21.3248C21.3786 21.3253 21.3799 21.3257 21.3811 21.3261C21.3841 21.3272 21.3868 21.328 21.3896 21.3289C21.3902 21.3289 21.3908 21.3291 21.3914 21.3293C21.4017 21.3319 21.4124 21.3335 21.4235 21.3335H21.8746C21.9439 21.3335 21.9999 21.2785 21.9999 21.2106V18.4564C21.9999 18.3886 21.9439 18.3335 21.8746 18.3335Z\"\n fill=\"#6F6F6F\"\n />\n <path\n d=\"M17.8782 20.6438H16.6837V18.4566C16.6837 18.3886 16.6291 18.3335 16.5618 18.3335H16.1221C16.0547 18.3335 16 18.3886 16 18.4566V21.2103V21.2105C16 21.2436 16.0131 21.2735 16.0341 21.2956C16.0346 21.2962 16.0351 21.2968 16.0358 21.2974C16.0364 21.298 16.037 21.2985 16.0376 21.2991C16.0596 21.3204 16.0891 21.3335 16.1219 21.3335H17.8782C17.9456 21.3335 18 21.2782 18 21.2103V20.7669C18 20.6989 17.9456 20.6438 17.8782 20.6438Z\"\n fill=\"#6F6F6F\"\n />\n <path\n d=\"M24.2115 19.0232C24.2789 19.0232 24.3334 18.9682 24.3334 18.9001V18.4567C24.3334 18.3887 24.2789 18.3335 24.2115 18.3335H22.4554H22.4552C22.4223 18.3335 22.3926 18.3468 22.3706 18.3683C22.3701 18.3688 22.3695 18.3691 22.3692 18.3696C22.3685 18.3703 22.3679 18.3711 22.3673 18.3718C22.3463 18.3938 22.3334 18.4236 22.3334 18.4566V18.4567V21.2104V21.2105C22.3334 21.2436 22.3465 21.2735 22.3675 21.2956C22.368 21.2962 22.3686 21.2969 22.3692 21.2974C22.3697 21.298 22.3704 21.2986 22.371 21.2991C22.3928 21.3203 22.4225 21.3335 22.4552 21.3335H24.2115C24.2789 21.3335 24.3334 21.2782 24.3334 21.2104V20.7669C24.3334 20.6991 24.2789 20.6438 24.2115 20.6438H23.0172V20.1783H24.2115C24.2789 20.1783 24.3334 20.1231 24.3334 20.0552V19.6118C24.3334 19.5438 24.2789 19.4886 24.2115 19.4886H23.0172V19.0232H24.2115Z\"\n fill=\"#6F6F6F\"\n />\n </svg>\n </LineShareButton>\n ),\n },\n {\n el: (\n <div className=\"swap_share_icon\" onClick={handleEmailOnClick}>\n <svg\n width=\"40\"\n height=\"40\"\n viewBox=\"0 0 40 40\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M0 10C0 4.47715 4.47715 0 10 0H30C35.5228 0 40 4.47715 40 10V30C40 35.5228 35.5228 40 30 40H10C4.47715 40 0 35.5228 0 30V10Z\"\n fill=\"#ECECEC\"\n />\n <path\n d=\"M28 16L20 21L12 16V14L20 19L28 14V16ZM28 12H12C10.89 12 10 12.89 10 14V26C10 26.5304 10.2107 27.0391 10.5858 27.4142C10.9609 27.7893 11.4696 28 12 28H28C28.5304 28 29.0391 27.7893 29.4142 27.4142C29.7893 27.0391 30 26.5304 30 26V14C30 12.89 29.1 12 28 12Z\"\n fill=\"#6F6F6F\"\n />\n </svg>\n </div>\n ),\n },\n ].map((item, index) => (\n <div key={`share_btn_${index}`}>{item.el}</div>\n ))}\n </Box>\n );\n};\n\nexport default SWAPShare;\n","import * as React from \"react\";\nimport { useEffect, useState } from \"react\";\nimport AutoComplete from \"./AutoComplete\";\nimport type { AutocompleteCloseReason } from \"./AutoComplete\";\nimport MenuItem from \"./MenuItem\";\nimport TextField from \"./TextField\";\nimport { swapColors as c } from \"../theme/tokens\";\nimport {\n SWAPIncomeTypes,\n SWAPExpenseTypes,\n SWAPTaxIncomeLabel,\n SWAPTaxExpenseLabel,\n SWAPTaxDescription,\n} from \"../tax/constants\";\nimport type { TaxTextFieldProps, ExpenseCodeProps, IncomeCodeProps } from \"./TaxTextField.types\";\n\nconst checkSvg = (\n <svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M17.4998 5.83345L7.49984 15.8334L2.9165 11.2501L4.0915 10.0751L7.49984 13.4751L16.3248 4.65845L17.4998 5.83345Z\"\n fill=\"#4862CC\"\n />\n </svg>\n);\n\nconst headerItemStyle: React.CSSProperties = {\n fontSize: 12,\n fontWeight: 700,\n lineHeight: 1.4,\n color: \"#4b4b4b\",\n opacity: 1,\n backgroundColor: \"white\",\n};\n\nconst TaxTextField: React.FC<TaxTextFieldProps> = ({\n onChange,\n codeValue,\n domainValue,\n domainCodeValue,\n codeError,\n codeHelperText,\n domainError,\n domainHelperText,\n codeOnClick,\n domainOnClick,\n mobile,\n codeFocused,\n domainFocused,\n}) => {\n const [modalIncome, setModalIncome] = useState<IncomeCodeProps | \"\">(\"\");\n const [modalExpense, setModalExpense] = useState<ExpenseCodeProps | \"\">(\"\");\n const [anchorEl, setAnchorEl] = React.useState<null | HTMLElement>(null);\n\n useEffect(() => {\n if (!modalIncome) return;\n onChange?.({\n incomeCode: modalIncome as IncomeCodeProps,\n expenseCode: modalExpense as ExpenseCodeProps,\n incomeLabel: SWAPTaxIncomeLabel(modalIncome as IncomeCodeProps),\n expenseLabel: SWAPTaxExpenseLabel(modalExpense as ExpenseCodeProps),\n taxDescription: SWAPTaxDescription(modalIncome as IncomeCodeProps, modalExpense as ExpenseCodeProps),\n expenseCodeAndLabel: modalExpense\n ? `[${modalExpense}] ${SWAPTaxExpenseLabel(modalExpense as ExpenseCodeProps)}`\n : \"\",\n });\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [modalIncome, modalExpense]);\n\n const handleCodeClick = () => {\n codeOnClick?.();\n setAnchorEl(null);\n };\n const handleDomainClick = (event: React.MouseEvent<HTMLElement>) => {\n setAnchorEl(anchorEl ? null : event.currentTarget);\n if (codeValue) setModalIncome(codeValue);\n domainOnClick?.();\n };\n const handleClose = (_e: unknown, reason: AutocompleteCloseReason) => {\n if (reason === \"toggleInput\") return;\n anchorEl?.focus();\n setAnchorEl(null);\n };\n\n const selectedIcon = (active: boolean) => (active ? checkSvg : null);\n\n return (\n <div\n style={{\n display: \"flex\",\n flexDirection: mobile ? \"column\" : \"row\",\n alignItems: \"flex-start\",\n justifyContent: \"space-between\",\n }}\n >\n {/* 選擇申報類別 */}\n <div style={{ width: \"100%\" }}>\n <TextField\n focused={codeFocused}\n fullWidth\n select\n error={codeError}\n helperText={codeHelperText}\n height={56}\n label=\"選擇申報類別\"\n value={codeValue ?? \"\"}\n onClick={handleCodeClick}\n onChange={(e) => {\n setModalIncome(e.target.value as IncomeCodeProps);\n setModalExpense(\"\");\n }}\n >\n <MenuItem height={36} disabled style={headerItemStyle}>\n 請選擇申報類別\n </MenuItem>\n {SWAPIncomeTypes.map((option, index) => (\n <MenuItem\n height={36}\n key={`case_${index}`}\n value={option.code}\n style={{\n backgroundColor: modalIncome === option.code ? \"white\" : undefined,\n opacity: modalIncome === option.code ? 1 : undefined,\n display: \"flex\",\n justifyContent: \"space-between\",\n flexWrap: \"nowrap\",\n color: modalIncome === option.code ? c.primary.primary400 : undefined,\n }}\n disabled={modalIncome === option.code}\n iconChildren={selectedIcon(modalIncome === option.code)}\n >\n {option.code} {option.label}\n </MenuItem>\n ))}\n </TextField>\n </div>\n {codeValue === \"9A\" || codeValue === \"9B\" ? (\n <div style={{ width: \"100%\", margin: mobile ? \"24px 0 0 0\" : \"0 0 0 8px\" }}>\n {codeValue === \"9B\" ? (\n // 9B:下拉選單\n <TextField\n focused={domainFocused}\n select\n fullWidth\n error={domainError}\n helperText={domainHelperText}\n height={56}\n label=\"輸入執行業務類別\"\n value={domainCodeValue ?? \"\"}\n onClick={handleDomainClick}\n onChange={(e) => {\n setModalExpense(e.target.value as ExpenseCodeProps);\n setAnchorEl(null);\n }}\n >\n <MenuItem height={36} disabled style={headerItemStyle}>\n 選擇執行業務類別\n </MenuItem>\n {SWAPExpenseTypes.filter((i) => i.source === codeValue).map((option, index) => (\n <MenuItem\n height={36}\n key={`case_${index}`}\n value={option.code}\n style={{\n backgroundColor: modalExpense === option.code ? \"white\" : undefined,\n opacity: modalExpense === option.code ? 1 : undefined,\n display: \"flex\",\n justifyContent: \"space-between\",\n flexWrap: \"nowrap\",\n color: modalExpense === option.code ? c.primary.primary400 : undefined,\n }}\n disabled={modalExpense === option.code}\n iconChildren={selectedIcon(modalExpense === option.code)}\n >\n [{option.code}] {option.label}\n </MenuItem>\n ))}\n </TextField>\n ) : (\n // 9A:搜尋式選單\n <>\n <TextField\n focused={domainFocused}\n error={domainError}\n helperText={domainHelperText}\n fullWidth\n label=\"輸入執行業務類別\"\n height={56}\n value={domainValue ?? \"\"}\n onClick={handleDomainClick}\n slotProps={{\n input: {\n readOnly: true,\n endAdornment: (\n <div style={{ width: 24, height: 24 }}>\n <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M7 10L12 15L17 10H7Z\" fill=\"black\" />\n </svg>\n </div>\n ),\n },\n }}\n />\n <AutoComplete\n width={mobile ? \"calc(100% - 32px)\" : \"292px\"}\n optionsMaxHeight={150}\n disableFreeInput\n multiple\n disableCloseOnSelect\n anchorEl={anchorEl}\n open={Boolean(anchorEl)}\n onClose={handleClose}\n onChange={(_, newValue) => {\n const arr = newValue as Array<{ code?: ExpenseCodeProps }>;\n const last = arr[arr.length - 1];\n if (last?.code) setModalExpense(last.code);\n setAnchorEl(null);\n }}\n value={domainValue}\n options={SWAPExpenseTypes.filter((i) => i.source === codeValue)}\n placement=\"bottom-start\"\n placeholder=\"輸入執行業務類別\"\n title=\"選擇執行業務類別\"\n renderOption={(liProps, option) => {\n const o = option as { code: string; label: string };\n const { key, ...rest } = liProps as { key?: React.Key } & React.HTMLAttributes<HTMLLIElement>;\n return (\n <li key={key} {...rest}>\n [{o.code}] {o.label}\n </li>\n );\n }}\n getOptionLabel={(option) => {\n const o = option as { code: string; label: string };\n return o.code + o.label;\n }}\n />\n </>\n )}\n </div>\n ) : null}\n </div>\n );\n};\n\nexport default TaxTextField;\n","// 自 legacy/v1-src/SWAPTaxField/SWAPTaxField.tsx 447–656 行原樣抽出(v1 保留匯出)\nimport type { IncomeCodeProps, ExpenseCodeProps } from \"../components/TaxTextField.types\";\n\nexport const SWAPIncomeTypes: Array<{\n code: IncomeCodeProps;\n label: string;\n}> = [\n {\n code: \"9A\",\n label: \"執行業務所得\",\n },\n {\n code: \"9B\",\n label: \"稿費\",\n },\n {\n code: \"50\",\n label: \"薪資所得\",\n },\n];\nexport const SWAPExpenseTypes: Array<{\n code: ExpenseCodeProps;\n source: IncomeCodeProps;\n label: string;\n expenseRatio: string;\n}> = [\n { label: \"律師\", expenseRatio: \"30%\", code: \"10\", source: \"9A\" },\n { label: \"會計師\", expenseRatio: \"30%\", code: \"11\", source: \"9A\" },\n { label: \"精算師\", expenseRatio: \"20%\", code: \"12\", source: \"9A\" },\n { label: \"地政士\", expenseRatio: \"30%\", code: \"13\", source: \"9A\" },\n { label: \"記帳士\", expenseRatio: \"30%\", code: \"14\", source: \"9A\" },\n { label: \"仲裁人\", expenseRatio: \"15%\", code: \"15\", source: \"9A\" },\n { label: \"民間公證人\", expenseRatio: \"30%\", code: \"16\", source: \"9A\" },\n { label: \"不動產估價師\", expenseRatio: \"35%\", code: \"17\", source: \"9A\" },\n {\n label: \"受委託代辦國有非公用不動產之承租、續租、過戶及繼承等申請者\",\n expenseRatio: \"30%\",\n code: \"18\",\n source: \"9A\",\n },\n {\n label: \"記帳及報稅代理業人\",\n expenseRatio: \"30%\",\n code: \"19\",\n source: \"9A\",\n },\n { label: \"技師\", expenseRatio: \"35%\", code: \"20\", source: \"9A\" },\n { label: \"建築師\", expenseRatio: \"35%\", code: \"21\", source: \"9A\" },\n { label: \"公共安檢人員\", expenseRatio: \"35%\", code: \"22\", source: \"9A\" },\n {\n label: \"未具會計師資格,辦理工商登記等業務者\",\n expenseRatio: \"30%\",\n code: \"23\",\n source: \"9A\",\n },\n { label: \"工匠(工資收入)\", expenseRatio: \"20%\", code: \"24\", source: \"9A\" },\n { label: \"工匠(工料收入)\", expenseRatio: \"62%\", code: \"25\", source: \"9A\" },\n { label: \"引水人\", expenseRatio: \"25%\", code: \"26\", source: \"9A\" },\n {\n label: \"律師配合政府政策辦理法律扶助案件之收入\",\n expenseRatio: \"50%\",\n code: \"27\",\n source: \"9A\",\n },\n { label: \"內科醫師\", expenseRatio: \"40%\", code: \"30\", source: \"9A\" },\n { label: \"外科醫師\", expenseRatio: \"45%\", code: \"31\", source: \"9A\" },\n { label: \"小兒科醫師\", expenseRatio: \"40%\", code: \"32\", source: \"9A\" },\n { label: \"婦產科醫師\", expenseRatio: \"45%\", code: \"33\", source: \"9A\" },\n { label: \"眼科醫師\", expenseRatio: \"40%\", code: \"34\", source: \"9A\" },\n { label: \"耳鼻喉科醫師\", expenseRatio: \"40%\", code: \"35\", source: \"9A\" },\n { label: \"牙科醫師\", expenseRatio: \"40%\", code: \"36\", source: \"9A\" },\n { label: \"精神科醫師\", expenseRatio: \"46%\", code: \"37\", source: \"9A\" },\n { label: \"骨科醫師\", expenseRatio: \"45%\", code: \"38\", source: \"9A\" },\n { label: \"其他科別醫師\", expenseRatio: \"43%\", code: \"39\", source: \"9A\" },\n {\n label: \"助產師(士)\",\n expenseRatio: \"31%\",\n code: \"40\",\n source: \"9A\",\n },\n { label: \"藥師\", expenseRatio: \"20%\", code: \"41\", source: \"9A\" },\n {\n label: \"醫事檢驗師(生)\",\n expenseRatio: \"43%\",\n code: \"42\",\n source: \"9A\",\n },\n { label: \"營養師\", expenseRatio: \"20%\", code: \"45\", source: \"9A\" },\n {\n label: \"醫療機構醫師經核准前往他醫療機構從事醫療業務且不具僱傭關係者\",\n expenseRatio: \"10%\",\n code: \"46\",\n source: \"9A\",\n },\n { label: \"獸醫師\", expenseRatio: \"32%\", code: \"47\", source: \"9A\" },\n { label: \"皮膚科醫師\", expenseRatio: \"40%\", code: \"48\", source: \"9A\" },\n { label: \"家庭醫學科醫師\", expenseRatio: \"40%\", code: \"49\", source: \"9A\" },\n { label: \"中醫師\", expenseRatio: \"20%\", code: \"50\", source: \"9A\" },\n { label: \"語言治療師\", expenseRatio: \"20%\", code: \"51\", source: \"9A\" },\n { label: \"人壽保險醫療檢查\", expenseRatio: \"35%\", code: \"52\", source: \"9A\" },\n { label: \"物理治療師\", expenseRatio: \"43%\", code: \"53\", source: \"9A\" },\n { label: \"職能治療師\", expenseRatio: \"43%\", code: \"54\", source: \"9A\" },\n { label: \"心理師\", expenseRatio: \"20%\", code: \"55\", source: \"9A\" },\n { label: \"牙體技術師\", expenseRatio: \"40%\", code: \"56\", source: \"9A\" },\n {\n label:\n \"西醫師(配合政府政策辦理老人、兒童、婦女、中低收入者、身心障礙者及其他特定對象補助計畫之業務收入)\",\n expenseRatio: \"78%\",\n code: \"57\",\n source: \"9A\",\n },\n {\n label: \"西醫師(自費疫苗注射收入)\",\n expenseRatio: \"78%\",\n code: \"58\",\n source: \"9A\",\n },\n {\n label: \"西醫師(C型肝炎全口服新藥健保給付收入)\",\n expenseRatio: \"96%\",\n code: \"59\",\n source: \"9A\",\n },\n { label: \"書畫家、版畫家\", expenseRatio: \"30%\", code: \"61\", source: \"9A\" },\n { label: \"命理卜卦\", expenseRatio: \"20%\", code: \"62\", source: \"9A\" },\n {\n label:\n \"表演人(演員、歌手、模特兒、節目主持人、舞蹈表演人、相聲表演人、特技表演人、樂器表演人、魔術表演人、其他表演人)\",\n expenseRatio: \"45%\",\n code: \"70\",\n source: \"9A\",\n },\n { label: \"保險經紀人\", expenseRatio: \"26%\", code: \"71\", source: \"9A\" },\n { label: \"節目製作人\", expenseRatio: \"45%\", code: \"72\", source: \"9A\" },\n {\n label: \"公益彩券立即型彩券經銷商\",\n expenseRatio: \"60%\",\n code: \"73\",\n source: \"9A\",\n },\n { label: \"一般經紀人\", expenseRatio: \"20%\", code: \"76\", source: \"9A\" },\n { label: \"其他\", expenseRatio: \"0%\", code: \"90\", source: \"9A\" },\n { label: \"商標代理人\", expenseRatio: \"30%\", code: \"91\", source: \"9A\" },\n { label: \"程式設計師\", expenseRatio: \"20%\", code: \"92\", source: \"9A\" },\n { label: \"專利師及專利代理\", expenseRatio: \"30%\", code: \"93\", source: \"9A\" },\n {\n label: \"未具律師資格,辦理訴訟代理人業務\",\n expenseRatio: \"23%\",\n code: \"94\",\n source: \"9A\",\n },\n {\n label: \"未具建築師資格,辦理建築規劃設計及監造等業務者\",\n expenseRatio: \"35%\",\n code: \"95\",\n source: \"9A\",\n },\n {\n label: \"未具地政士資格,辦理土地登記等業務者\",\n expenseRatio: \"30%\",\n code: \"96\",\n source: \"9A\",\n },\n {\n label: \"受大陸地區人民委託辦理繼承、公法給付或其他事務者\",\n expenseRatio: \"23%\",\n code: \"97\",\n source: \"9A\",\n },\n { label: \"自行出版\", expenseRatio: \"30%\", code: \"99\", source: \"9B\" },\n { label: \"非自行出版\", expenseRatio: \"75%\", code: \"98\", source: \"9B\" },\n];\n\nexport const SWAPTaxIncomeLabel = (incomeCode: IncomeCodeProps) => {\n if (incomeCode) {\n return (\n SWAPIncomeTypes.filter((type) => type.code === incomeCode)[0]?.label || \"\"\n );\n } else {\n return \"\";\n }\n};\n\nexport const SWAPTaxExpenseLabel = (expenseCode: ExpenseCodeProps) => {\n if (expenseCode) {\n return (\n SWAPExpenseTypes.filter((type) => type.code === expenseCode)[0]?.label ||\n \"\"\n );\n } else {\n return \"\";\n }\n};\n\nexport const SWAPTaxDescription = (\n incomeCode: IncomeCodeProps,\n expenseCode: ExpenseCodeProps\n) => {\n let incomeLabel = SWAPTaxIncomeLabel(incomeCode);\n let expenseLabel = SWAPTaxExpenseLabel(expenseCode);\n let taxDescription = `${incomeCode} ${incomeLabel}${\n expenseLabel.length > 0 ? ` - [${expenseCode}] ${expenseLabel}` : \"\"\n }`;\n if (incomeCode && expenseCode) {\n /**執行業務 */\n return taxDescription;\n } else if (incomeCode === \"50\") {\n /**薪資 */\n return `${incomeCode} ${incomeLabel}`;\n } else {\n return \"\";\n }\n};\n","import * as React from \"react\";\nimport dayjs, { type Dayjs } from \"dayjs\";\nimport { LocalizationProvider } from \"@mui/x-date-pickers/LocalizationProvider\";\nimport { AdapterDayjs } from \"@mui/x-date-pickers/AdapterDayjs\";\nimport { DateCalendar } from \"@mui/x-date-pickers/DateCalendar\";\nimport Modal from \"./Modal\";\nimport type { DatePickerProps } from \"./DatePicker.types\";\n\nconst VIEWS = {\n year: [\"year\"] as const,\n month: [\"year\", \"month\"] as const,\n day: [\"year\", \"month\", \"day\"] as const,\n};\n\n/** v1 相容的字串格式:year \"YYYY\"、month \"YYYY-M\"、day \"YYYY-M-D\"(不補零) */\nfunction toV1String(d: Dayjs, format: \"year\" | \"month\" | \"day\"): string {\n if (format === \"year\") return String(d.year());\n if (format === \"month\") return `${d.year()}-${d.month() + 1}`;\n return `${d.year()}-${d.month() + 1}-${d.date()}`;\n}\n\nconst DatePicker: React.FC<DatePickerProps> = ({\n format = \"day\",\n open = false,\n onClose,\n mobile,\n ModalProps,\n min,\n max,\n defaultValue,\n value,\n getValue,\n}) => {\n const parsed = value ? dayjs(value) : defaultValue ? dayjs(defaultValue) : undefined;\n return (\n <Modal\n open={open}\n onClose={() => onClose?.()}\n title=\"選擇日期\"\n width=\"fit-content\"\n bodyPadding={8}\n mobile={mobile}\n {...ModalProps}\n >\n <LocalizationProvider dateAdapter={AdapterDayjs}>\n <DateCalendar\n views={[...VIEWS[format]]}\n openTo={format}\n value={parsed && parsed.isValid() ? parsed : null}\n minDate={min ? dayjs(min) : undefined}\n maxDate={max ? dayjs(max) : undefined}\n onChange={(newValue: Dayjs | null, selectionState) => {\n if (!newValue) return;\n // 到達目標精度才回呼(year/month view 的中間選擇不觸發)\n const finished =\n format === \"day\" ? selectionState === \"finish\" : true;\n const isTargetView =\n format === \"day\" || selectionState === \"finish\";\n if (finished && isTargetView) {\n getValue?.(toV1String(newValue, format));\n onClose?.();\n }\n }}\n />\n </LocalizationProvider>\n </Modal>\n );\n};\n\nexport default DatePicker;\n"],"mappings":"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","names":["exports","exports","exports","module","import_styles","c","import__","CssBaseline","React","c","import_jsx_runtime","Typography","MuiTypography","React","import_jsx_runtime","Chip","Box","React","import_jsx_runtime","CircularProgress","MuiCircularProgress","import_jsx_runtime","MuiTooltip","React","import_Box","import_jsx_runtime","Container","useMediaQuery","Box","React","import_useMediaQuery","import_jsx_runtime","Paper","useMediaQuery","MuiPaper","React","import_jsx_runtime","Link","MuiLink","React","import_jsx_runtime","IconButton","MuiIconButton","React","import_jsx_runtime","Breadcrumb","Menu","MenuItem","React","import_jsx_runtime","BreadcrumbItem","React","import_jsx_runtime","TextField","MuiTextField","React","import_Box","import_jsx_runtime","CheckBox","FormControlLabel","MuiCheckbox","Box","React","import_FormControlLabel","import_Box","import_jsx_runtime","iconSx","checkedIconSx","RadioButton","FormControlLabel","MuiRadio","Box","React","import_Box","import_jsx_runtime","checkSvg","Switch","Box","MuiSwitch","Fade","import_jsx_runtime","FormControl","InputLabel","MuiSelect","OutlinedInput","FormHelperText","React","import_MenuItem","import_jsx_runtime","MenuItem","MuiMenuItem","ListItemIcon","React","import_Box","import_jsx_runtime","Tab","MuiTab","Box","React","import_jsx_runtime","Tabs","MuiTabs","import_Box","import_jsx_runtime","Box","React","import_Box","import_jsx_runtime","Banner","Box","React","import_Box","import_jsx_runtime","Card","Box","Skeleton","Button","React","import_Box","import_jsx_runtime","Progress","Box","React","import_Paper","import_Box","import_jsx_runtime","_jsx","import_jsx_runtime","_jsx","import_jsx_runtime","_jsx","import_useMediaQuery","useMediaQuery","import_Button","import_jsx_runtime","Button","Modal","iconSx","Paper","Box","Divider","MuiModal","Slide","import_Slide","import_Fade","import_Box","import_jsx_runtime","Slide","Fade","MuiSnackbar","Box","React","import_Box","import_jsx_runtime","Box","RadioList","React","import_Box","import_jsx_runtime","CheckBoxList","Box","React","import_Box","import_styles","import_jsx_runtime","checkSvg","Popper","Box","MuiAutocomplete","InputBase","import_Select","import_FormControl","import_FormHelperText","import_OutlinedInput","import_jsx_runtime","FormControl","MuiSelect","OutlinedInput","FormHelperText","React","import_Tab","import_jsx_runtime","SegmentedTab","MuiTab","React","import_Tabs","import_jsx_runtime","SegmentedTabs","MuiTabs","import_Box","import_jsx_runtime","Box","import_Box","import_jsx_runtime","Box","React","import_react","import_jsx_runtime","checkSvg","import_jsx_runtime","dayjs"]}