@underverse-ui/underverse 1.0.68 → 1.0.69

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.
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "package": "@underverse-ui/underverse",
3
- "version": "1.0.68",
3
+ "version": "1.0.69",
4
4
  "sourceEntry": "src/index.ts",
5
5
  "totalExports": 221,
6
6
  "exports": [
package/dist/index.cjs CHANGED
@@ -1732,40 +1732,87 @@ function normalizeLocale(locale, fallback) {
1732
1732
  return fallback;
1733
1733
  }
1734
1734
  var NextIntlBridgeContext = React5.createContext(null);
1735
- function NextIntlAdapter({ children }) {
1736
- const locale = normalizeLocale((0, import_next_intl.useLocale)(), "en");
1737
- const messages = (0, import_next_intl.useMessages)();
1738
- const translatorCache = React5.useMemo(() => /* @__PURE__ */ new Map(), [locale, messages]);
1739
- const translate = React5.useCallback((namespace, key) => {
1735
+ function isMissingIntlContextError(error) {
1736
+ if (!(error instanceof Error)) return false;
1737
+ const message = error.message || "";
1738
+ const stack = error.stack || "";
1739
+ return message.includes("No intl context found.") || !message && stack.includes("use-intl/dist/esm/") && stack.includes("NextIntlAdapterWithContext");
1740
+ }
1741
+ var NextIntlAdapterBoundary = class extends React5.Component {
1742
+ constructor() {
1743
+ super(...arguments);
1744
+ this.state = { error: null };
1745
+ }
1746
+ static getDerivedStateFromError(error) {
1747
+ return { error };
1748
+ }
1749
+ componentDidUpdate(prevProps) {
1750
+ if (this.state.error && prevProps.children !== this.props.children) {
1751
+ this.setState({ error: null });
1752
+ }
1753
+ }
1754
+ render() {
1755
+ if (!this.state.error) {
1756
+ return this.props.children;
1757
+ }
1758
+ if (isMissingIntlContextError(this.state.error)) {
1759
+ return this.props.fallback;
1760
+ }
1761
+ throw this.state.error;
1762
+ }
1763
+ };
1764
+ function NextIntlAdapterProvider({
1765
+ children,
1766
+ locale,
1767
+ messages
1768
+ }) {
1769
+ const normalizedLocale = normalizeLocale(locale, "en");
1770
+ const translatorCache = React5.useMemo(
1771
+ () => /* @__PURE__ */ new Map(),
1772
+ [normalizedLocale, messages]
1773
+ );
1774
+ const translate = React5.useCallback((namespace, key, values) => {
1740
1775
  let translator = translatorCache.get(namespace);
1741
1776
  if (!translator) {
1742
- translator = (0, import_next_intl.createTranslator)({
1743
- locale,
1777
+ const runtimeTranslator = (0, import_next_intl.createTranslator)({
1778
+ locale: normalizedLocale,
1744
1779
  messages,
1745
1780
  namespace,
1746
1781
  onError: () => {
1747
1782
  }
1748
1783
  });
1784
+ translator = (translationKey, translationValues) => runtimeTranslator(translationKey, translationValues);
1749
1785
  translatorCache.set(namespace, translator);
1750
1786
  }
1751
1787
  try {
1752
1788
  return {
1753
- locale,
1754
- translated: translator(key)
1789
+ locale: normalizedLocale,
1790
+ translated: translator(key, values)
1755
1791
  };
1756
1792
  } catch {
1757
1793
  return {
1758
- locale,
1794
+ locale: normalizedLocale,
1759
1795
  translated: null
1760
1796
  };
1761
1797
  }
1762
- }, [locale, messages, translatorCache]);
1798
+ }, [messages, normalizedLocale, translatorCache]);
1763
1799
  const value = React5.useMemo(() => ({
1764
- locale,
1800
+ locale: normalizedLocale,
1765
1801
  translate
1766
- }), [locale, translate]);
1802
+ }), [normalizedLocale, translate]);
1767
1803
  return /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(NextIntlBridgeContext.Provider, { value, children });
1768
1804
  }
1805
+ function NextIntlAdapterWithContext({ children }) {
1806
+ const locale = (0, import_next_intl.useLocale)();
1807
+ const messages = (0, import_next_intl.useMessages)();
1808
+ return /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(NextIntlAdapterProvider, { locale, messages, children });
1809
+ }
1810
+ function NextIntlAdapter({ children, locale, messages }) {
1811
+ if (locale && messages) {
1812
+ return /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(NextIntlAdapterProvider, { locale, messages, children });
1813
+ }
1814
+ return /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(NextIntlAdapterBoundary, { fallback: children, children: /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(NextIntlAdapterWithContext, { children }) });
1815
+ }
1769
1816
  var UnderverseNextIntlProvider = NextIntlAdapter;
1770
1817
  function useNextIntlBridge() {
1771
1818
  return React5.useContext(NextIntlBridgeContext);
@@ -21789,396 +21836,8 @@ var VARIANT_STYLES_ALERT = {
21789
21836
  // ../../lib/i18n/translation-adapter.tsx
21790
21837
  var React64 = __toESM(require("react"), 1);
21791
21838
  var import_jsx_runtime72 = require("react/jsx-runtime");
21792
- var defaultTranslations2 = {
21793
- en: {
21794
- Common: {
21795
- close: "Close",
21796
- closeAlert: "Close alert",
21797
- notifications: "Notifications",
21798
- newNotification: "New",
21799
- readStatus: "Read",
21800
- openLink: "Open link",
21801
- theme: "Theme",
21802
- lightTheme: "Light",
21803
- darkTheme: "Dark",
21804
- systemTheme: "System",
21805
- density: "Density",
21806
- compact: "Compact",
21807
- normal: "Normal",
21808
- comfortable: "Comfortable",
21809
- columns: "Columns"
21810
- },
21811
- ValidationInput: {
21812
- required: "This field is required",
21813
- typeMismatch: "Invalid format",
21814
- pattern: "Invalid pattern",
21815
- tooShort: "Too short",
21816
- tooLong: "Too long",
21817
- rangeUnderflow: "Below minimum",
21818
- rangeOverflow: "Above maximum",
21819
- stepMismatch: "Step mismatch",
21820
- badInput: "Bad input",
21821
- invalid: "Invalid value"
21822
- },
21823
- Loading: {
21824
- loadingPage: "Loading page",
21825
- pleaseWait: "Please wait"
21826
- },
21827
- DatePicker: {
21828
- placeholder: "Select date",
21829
- today: "Today",
21830
- clear: "Clear"
21831
- },
21832
- CalendarTimeline: {
21833
- today: "Today",
21834
- prev: "Previous",
21835
- next: "Next",
21836
- month: "Month",
21837
- week: "Week",
21838
- day: "Day",
21839
- sprint: "Sprint",
21840
- newEvent: "New event",
21841
- createEventTitle: "Create event",
21842
- create: "Create",
21843
- cancel: "Cancel",
21844
- resource: "Resource",
21845
- start: "Start",
21846
- end: "End",
21847
- sprints: "{n} sprints",
21848
- resourcesHeader: "Resources",
21849
- expandGroup: "Expand group",
21850
- collapseGroup: "Collapse group",
21851
- more: "+{n} more",
21852
- deleteConfirm: "Delete?"
21853
- },
21854
- Pagination: {
21855
- navigationLabel: "Pagination navigation",
21856
- showingResults: "Showing {startItem}\u2013{endItem} of {totalItems}",
21857
- firstPage: "First page",
21858
- previousPage: "Previous page",
21859
- previous: "Previous",
21860
- nextPage: "Next page",
21861
- next: "Next",
21862
- lastPage: "Last page",
21863
- pageNumber: "Page {page}",
21864
- itemsPerPage: "Items per page",
21865
- search: "Search",
21866
- noOptions: "No options"
21867
- },
21868
- Form: {
21869
- required: "This field is required"
21870
- },
21871
- OCR: {
21872
- imageUpload: {
21873
- dragDropText: "Drag & drop files here",
21874
- browseFiles: "Browse files",
21875
- supportedFormats: "Supported formats: images"
21876
- }
21877
- }
21878
- },
21879
- vi: {
21880
- Common: {
21881
- close: "\u0110\xF3ng",
21882
- closeAlert: "\u0110\xF3ng c\u1EA3nh b\xE1o",
21883
- notifications: "Th\xF4ng b\xE1o",
21884
- newNotification: "M\u1EDBi",
21885
- readStatus: "\u0110\xE3 \u0111\u1ECDc",
21886
- openLink: "M\u1EDF li\xEAn k\u1EBFt",
21887
- theme: "Ch\u1EE7 \u0111\u1EC1",
21888
- lightTheme: "Giao di\u1EC7n s\xE1ng",
21889
- darkTheme: "Giao di\u1EC7n t\u1ED1i",
21890
- systemTheme: "Theo h\u1EC7 th\u1ED1ng",
21891
- density: "M\u1EADt \u0111\u1ED9",
21892
- compact: "G\u1ECDn",
21893
- normal: "Th\u01B0\u1EDDng",
21894
- comfortable: "Tho\u1EA3i m\xE1i",
21895
- columns: "C\u1ED9t"
21896
- },
21897
- ValidationInput: {
21898
- required: "Tr\u01B0\u1EDDng n\xE0y l\xE0 b\u1EAFt bu\u1ED9c",
21899
- typeMismatch: "\u0110\u1ECBnh d\u1EA1ng kh\xF4ng h\u1EE3p l\u1EC7",
21900
- pattern: "Sai m\u1EABu",
21901
- tooShort: "Qu\xE1 ng\u1EAFn",
21902
- tooLong: "Qu\xE1 d\xE0i",
21903
- rangeUnderflow: "Nh\u1ECF h\u01A1n gi\xE1 tr\u1ECB t\u1ED1i thi\u1EC3u",
21904
- rangeOverflow: "L\u1EDBn h\u01A1n gi\xE1 tr\u1ECB t\u1ED1i \u0111a",
21905
- stepMismatch: "Sai b\u01B0\u1EDBc",
21906
- badInput: "Gi\xE1 tr\u1ECB kh\xF4ng h\u1EE3p l\u1EC7",
21907
- invalid: "Gi\xE1 tr\u1ECB kh\xF4ng h\u1EE3p l\u1EC7"
21908
- },
21909
- Loading: {
21910
- loadingPage: "\u0110ang t\u1EA3i trang",
21911
- pleaseWait: "Vui l\xF2ng ch\u1EDD"
21912
- },
21913
- DatePicker: {
21914
- placeholder: "Ch\u1ECDn ng\xE0y",
21915
- today: "H\xF4m nay",
21916
- clear: "X\xF3a"
21917
- },
21918
- CalendarTimeline: {
21919
- today: "H\xF4m nay",
21920
- prev: "Tr\u01B0\u1EDBc",
21921
- next: "Sau",
21922
- month: "Th\xE1ng",
21923
- week: "Tu\u1EA7n",
21924
- day: "Ng\xE0y",
21925
- sprint: "Sprint",
21926
- newEvent: "Th\xEAm s\u1EF1 ki\u1EC7n",
21927
- createEventTitle: "T\u1EA1o s\u1EF1 ki\u1EC7n",
21928
- create: "T\u1EA1o",
21929
- cancel: "H\u1EE7y",
21930
- resource: "T\xE0i nguy\xEAn",
21931
- start: "B\u1EAFt \u0111\u1EA7u",
21932
- end: "K\u1EBFt th\xFAc",
21933
- sprints: "{n} sprint",
21934
- resourcesHeader: "T\xE0i nguy\xEAn",
21935
- expandGroup: "M\u1EDF nh\xF3m",
21936
- collapseGroup: "Thu g\u1ECDn nh\xF3m",
21937
- more: "+{n} th\xEAm",
21938
- deleteConfirm: "X\xF3a?"
21939
- },
21940
- Pagination: {
21941
- navigationLabel: "\u0110i\u1EC1u h\u01B0\u1EDBng ph\xE2n trang",
21942
- showingResults: "Hi\u1EC3n th\u1ECB {startItem}\u2013{endItem} trong t\u1ED5ng {totalItems}",
21943
- firstPage: "Trang \u0111\u1EA7u",
21944
- previousPage: "Trang tr\u01B0\u1EDBc",
21945
- previous: "Tr\u01B0\u1EDBc",
21946
- nextPage: "Trang sau",
21947
- next: "Sau",
21948
- lastPage: "Trang cu\u1ED1i",
21949
- pageNumber: "Trang {page}",
21950
- itemsPerPage: "S\u1ED1 m\u1EE5c/trang",
21951
- search: "T\xECm ki\u1EBFm",
21952
- noOptions: "Kh\xF4ng c\xF3 l\u1EF1a ch\u1ECDn"
21953
- },
21954
- Form: {
21955
- required: "Tr\u01B0\u1EDDng n\xE0y l\xE0 b\u1EAFt bu\u1ED9c"
21956
- },
21957
- OCR: {
21958
- imageUpload: {
21959
- dragDropText: "K\xE9o & th\u1EA3 \u1EA3nh v\xE0o \u0111\xE2y",
21960
- browseFiles: "Ch\u1ECDn t\u1EC7p",
21961
- supportedFormats: "H\u1ED7 tr\u1EE3 c\xE1c \u0111\u1ECBnh d\u1EA1ng \u1EA3nh"
21962
- }
21963
- }
21964
- },
21965
- ko: {
21966
- Common: {
21967
- close: "\uB2EB\uAE30",
21968
- closeAlert: "\uC54C\uB9BC \uB2EB\uAE30",
21969
- notifications: "\uC54C\uB9BC",
21970
- newNotification: "\uC0C8\uB85C\uC6B4",
21971
- readStatus: "\uC77D\uC74C",
21972
- openLink: "\uB9C1\uD06C \uC5F4\uAE30",
21973
- theme: "\uD14C\uB9C8",
21974
- lightTheme: "\uB77C\uC774\uD2B8",
21975
- darkTheme: "\uB2E4\uD06C",
21976
- systemTheme: "\uC2DC\uC2A4\uD15C",
21977
- density: "\uBC00\uB3C4",
21978
- compact: "\uCEF4\uD329\uD2B8",
21979
- normal: "\uBCF4\uD1B5",
21980
- comfortable: "\uC5EC\uC720",
21981
- columns: "\uC5F4"
21982
- },
21983
- ValidationInput: {
21984
- required: "\uD544\uC218 \uC785\uB825 \uD56D\uBAA9\uC785\uB2C8\uB2E4",
21985
- typeMismatch: "\uD615\uC2DD\uC774 \uC62C\uBC14\uB974\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4",
21986
- pattern: "\uD328\uD134\uC774 \uC77C\uCE58\uD558\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4",
21987
- tooShort: "\uB108\uBB34 \uC9E7\uC2B5\uB2C8\uB2E4",
21988
- tooLong: "\uB108\uBB34 \uAE41\uB2C8\uB2E4",
21989
- rangeUnderflow: "\uCD5C\uC19F\uAC12\uBCF4\uB2E4 \uC791\uC2B5\uB2C8\uB2E4",
21990
- rangeOverflow: "\uCD5C\uB313\uAC12\uC744 \uCD08\uACFC\uD588\uC2B5\uB2C8\uB2E4",
21991
- stepMismatch: "\uB2E8\uACC4\uAC00 \uC77C\uCE58\uD558\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4",
21992
- badInput: "\uC798\uBABB\uB41C \uC785\uB825\uC785\uB2C8\uB2E4",
21993
- invalid: "\uC720\uD6A8\uD558\uC9C0 \uC54A\uC740 \uAC12\uC785\uB2C8\uB2E4"
21994
- },
21995
- Loading: {
21996
- loadingPage: "\uD398\uC774\uC9C0 \uB85C\uB529 \uC911",
21997
- pleaseWait: "\uC7A0\uC2DC\uB9CC \uAE30\uB2E4\uB824 \uC8FC\uC138\uC694"
21998
- },
21999
- DatePicker: {
22000
- placeholder: "\uB0A0\uC9DC \uC120\uD0DD",
22001
- today: "\uC624\uB298",
22002
- clear: "\uC9C0\uC6B0\uAE30"
22003
- },
22004
- CalendarTimeline: {
22005
- today: "\uC624\uB298",
22006
- prev: "\uC774\uC804",
22007
- next: "\uB2E4\uC74C",
22008
- month: "\uC6D4",
22009
- week: "\uC8FC",
22010
- day: "\uC77C",
22011
- sprint: "\uC2A4\uD504\uB9B0\uD2B8",
22012
- newEvent: "\uC0C8 \uC774\uBCA4\uD2B8",
22013
- createEventTitle: "\uC774\uBCA4\uD2B8 \uC0DD\uC131",
22014
- create: "\uC0DD\uC131",
22015
- cancel: "\uCDE8\uC18C",
22016
- resource: "\uB9AC\uC18C\uC2A4",
22017
- start: "\uC2DC\uC791",
22018
- end: "\uC885\uB8CC",
22019
- sprints: "{n} \uC2A4\uD504\uB9B0\uD2B8",
22020
- resourcesHeader: "\uB9AC\uC18C\uC2A4",
22021
- expandGroup: "\uADF8\uB8F9 \uD3BC\uCE58\uAE30",
22022
- collapseGroup: "\uADF8\uB8F9 \uC811\uAE30",
22023
- more: "+{n}\uAC1C \uB354",
22024
- deleteConfirm: "\uC0AD\uC81C\uD558\uC2DC\uACA0\uC2B5\uB2C8\uAE4C?"
22025
- },
22026
- Pagination: {
22027
- navigationLabel: "\uD398\uC774\uC9C0 \uB124\uBE44\uAC8C\uC774\uC158",
22028
- showingResults: "{startItem}\u2013{endItem} / \uCD1D {totalItems}\uAC1C",
22029
- firstPage: "\uCCAB \uD398\uC774\uC9C0",
22030
- previousPage: "\uC774\uC804 \uD398\uC774\uC9C0",
22031
- previous: "\uC774\uC804",
22032
- nextPage: "\uB2E4\uC74C \uD398\uC774\uC9C0",
22033
- next: "\uB2E4\uC74C",
22034
- lastPage: "\uB9C8\uC9C0\uB9C9 \uD398\uC774\uC9C0",
22035
- pageNumber: "{page}\uD398\uC774\uC9C0",
22036
- itemsPerPage: "\uD398\uC774\uC9C0\uB2F9 \uD56D\uBAA9 \uC218",
22037
- search: "\uAC80\uC0C9",
22038
- noOptions: "\uC635\uC158 \uC5C6\uC74C"
22039
- },
22040
- Form: {
22041
- required: "\uD544\uC218 \uC785\uB825 \uD56D\uBAA9\uC785\uB2C8\uB2E4"
22042
- },
22043
- OCR: {
22044
- imageUpload: {
22045
- dragDropText: "\uC5EC\uAE30\uC5D0 \uD30C\uC77C\uC744 \uB4DC\uB798\uADF8 \uC564 \uB4DC\uB86D\uD558\uC138\uC694",
22046
- browseFiles: "\uD30C\uC77C \uCC3E\uC544\uBCF4\uAE30",
22047
- supportedFormats: "\uC9C0\uC6D0 \uD615\uC2DD: \uC774\uBBF8\uC9C0"
22048
- }
22049
- }
22050
- },
22051
- ja: {
22052
- Common: {
22053
- close: "\u9589\u3058\u308B",
22054
- closeAlert: "\u30A2\u30E9\u30FC\u30C8\u3092\u9589\u3058\u308B",
22055
- notifications: "\u901A\u77E5",
22056
- newNotification: "\u65B0\u898F",
22057
- readStatus: "\u65E2\u8AAD",
22058
- openLink: "\u30EA\u30F3\u30AF\u3092\u958B\u304F",
22059
- theme: "\u30C6\u30FC\u30DE",
22060
- lightTheme: "\u30E9\u30A4\u30C8",
22061
- darkTheme: "\u30C0\u30FC\u30AF",
22062
- systemTheme: "\u30B7\u30B9\u30C6\u30E0",
22063
- density: "\u5BC6\u5EA6",
22064
- compact: "\u30B3\u30F3\u30D1\u30AF\u30C8",
22065
- normal: "\u901A\u5E38",
22066
- comfortable: "\u3086\u3063\u305F\u308A",
22067
- columns: "\u5217"
22068
- },
22069
- ValidationInput: {
22070
- required: "\u3053\u306E\u9805\u76EE\u306F\u5FC5\u9808\u3067\u3059",
22071
- typeMismatch: "\u5F62\u5F0F\u304C\u6B63\u3057\u304F\u3042\u308A\u307E\u305B\u3093",
22072
- pattern: "\u30D1\u30BF\u30FC\u30F3\u304C\u4E00\u81F4\u3057\u307E\u305B\u3093",
22073
- tooShort: "\u77ED\u3059\u304E\u307E\u3059",
22074
- tooLong: "\u9577\u3059\u304E\u307E\u3059",
22075
- rangeUnderflow: "\u6700\u5C0F\u5024\u3088\u308A\u5C0F\u3055\u3044\u3067\u3059",
22076
- rangeOverflow: "\u6700\u5927\u5024\u3092\u8D85\u3048\u3066\u3044\u307E\u3059",
22077
- stepMismatch: "\u30B9\u30C6\u30C3\u30D7\u304C\u4E00\u81F4\u3057\u307E\u305B\u3093",
22078
- badInput: "\u5165\u529B\u304C\u7121\u52B9\u3067\u3059",
22079
- invalid: "\u7121\u52B9\u306A\u5024\u3067\u3059"
22080
- },
22081
- Loading: {
22082
- loadingPage: "\u30DA\u30FC\u30B8\u3092\u8AAD\u307F\u8FBC\u307F\u4E2D",
22083
- pleaseWait: "\u3057\u3070\u3089\u304F\u304A\u5F85\u3061\u304F\u3060\u3055\u3044"
22084
- },
22085
- DatePicker: {
22086
- placeholder: "\u65E5\u4ED8\u3092\u9078\u629E",
22087
- today: "\u4ECA\u65E5",
22088
- clear: "\u30AF\u30EA\u30A2"
22089
- },
22090
- CalendarTimeline: {
22091
- today: "\u4ECA\u65E5",
22092
- prev: "\u524D\u3078",
22093
- next: "\u6B21\u3078",
22094
- month: "\u6708",
22095
- week: "\u9031",
22096
- day: "\u65E5",
22097
- sprint: "\u30B9\u30D7\u30EA\u30F3\u30C8",
22098
- newEvent: "\u65B0\u898F\u30A4\u30D9\u30F3\u30C8",
22099
- createEventTitle: "\u30A4\u30D9\u30F3\u30C8\u4F5C\u6210",
22100
- create: "\u4F5C\u6210",
22101
- cancel: "\u30AD\u30E3\u30F3\u30BB\u30EB",
22102
- resource: "\u30EA\u30BD\u30FC\u30B9",
22103
- start: "\u958B\u59CB",
22104
- end: "\u7D42\u4E86",
22105
- sprints: "{n} \u30B9\u30D7\u30EA\u30F3\u30C8",
22106
- resourcesHeader: "\u30EA\u30BD\u30FC\u30B9",
22107
- expandGroup: "\u30B0\u30EB\u30FC\u30D7\u3092\u5C55\u958B",
22108
- collapseGroup: "\u30B0\u30EB\u30FC\u30D7\u3092\u6298\u308A\u305F\u305F\u3080",
22109
- more: "+{n}\u4EF6",
22110
- deleteConfirm: "\u524A\u9664\u3057\u307E\u3059\u304B\uFF1F"
22111
- },
22112
- Pagination: {
22113
- navigationLabel: "\u30DA\u30FC\u30B8\u30CA\u30D3\u30B2\u30FC\u30B7\u30E7\u30F3",
22114
- showingResults: "{startItem}\u2013{endItem} / \u5168{totalItems}\u4EF6",
22115
- firstPage: "\u6700\u521D\u306E\u30DA\u30FC\u30B8",
22116
- previousPage: "\u524D\u306E\u30DA\u30FC\u30B8",
22117
- previous: "\u524D\u3078",
22118
- nextPage: "\u6B21\u306E\u30DA\u30FC\u30B8",
22119
- next: "\u6B21\u3078",
22120
- lastPage: "\u6700\u5F8C\u306E\u30DA\u30FC\u30B8",
22121
- pageNumber: "{page}\u30DA\u30FC\u30B8",
22122
- itemsPerPage: "1\u30DA\u30FC\u30B8\u3042\u305F\u308A\u306E\u9805\u76EE\u6570",
22123
- search: "\u691C\u7D22",
22124
- noOptions: "\u30AA\u30D7\u30B7\u30E7\u30F3\u306A\u3057"
22125
- },
22126
- Form: {
22127
- required: "\u3053\u306E\u9805\u76EE\u306F\u5FC5\u9808\u3067\u3059"
22128
- },
22129
- OCR: {
22130
- imageUpload: {
22131
- dragDropText: "\u3053\u3053\u306B\u30D5\u30A1\u30A4\u30EB\u3092\u30C9\u30E9\u30C3\u30B0\uFF06\u30C9\u30ED\u30C3\u30D7",
22132
- browseFiles: "\u30D5\u30A1\u30A4\u30EB\u3092\u53C2\u7167",
22133
- supportedFormats: "\u5BFE\u5FDC\u5F62\u5F0F\uFF1A\u753B\u50CF"
22134
- }
22135
- }
22136
- }
22137
- };
22138
- function resolveObjectPath2(input, path) {
22139
- const parts = path.split(".");
22140
- let current = input;
22141
- for (const part of parts) {
22142
- if (current && typeof current === "object" && part in current) {
22143
- current = current[part];
22144
- } else {
22145
- return null;
22146
- }
22147
- }
22148
- return current;
22149
- }
22150
- function resolveTranslationValue2(translations, namespace, key) {
22151
- const namespaceValue = resolveObjectPath2(translations, namespace);
22152
- const value = resolveObjectPath2(namespaceValue, key);
22153
- return typeof value === "string" ? value : null;
22154
- }
22155
- var TranslationContext2 = React64.createContext(null);
22156
- var UnderverseProvider = ({ children, locale = "en", translations }) => {
22157
- const t = React64.useCallback(
22158
- (namespace) => {
22159
- return (key) => {
22160
- const mergedTranslations = {
22161
- ...defaultTranslations2[locale],
22162
- ...translations
22163
- };
22164
- return resolveTranslationValue2(mergedTranslations, namespace, key) ?? key;
22165
- };
22166
- },
22167
- [locale, translations]
22168
- );
22169
- return /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(TranslationContext2.Provider, { value: { locale, t }, children });
22170
- };
22171
- var nextIntlAvailable = false;
22172
- var nextIntlUseTranslations = null;
22173
- var nextIntlUseLocale = null;
22174
- try {
22175
- const nextIntl = require("next-intl");
22176
- if (nextIntl && typeof nextIntl.useTranslations === "function") {
22177
- nextIntlAvailable = true;
22178
- nextIntlUseTranslations = nextIntl.useTranslations;
22179
- nextIntlUseLocale = nextIntl.useLocale;
22180
- }
22181
- } catch {
21839
+ function isUnresolvedTranslation2(value, namespace, key) {
21840
+ return value === key || value === `${namespace}.${key}`;
22182
21841
  }
22183
21842
  function interpolate(template, params) {
22184
21843
  if (!params) return template;
@@ -22187,47 +21846,41 @@ function interpolate(template, params) {
22187
21846
  return value !== void 0 ? String(value) : `{${key}}`;
22188
21847
  });
22189
21848
  }
22190
- function getInternalTranslation(namespace, locale) {
22191
- return (key, params) => {
22192
- const localeTranslations = defaultTranslations2[locale] || defaultTranslations2.en;
22193
- const value = resolveTranslationValue2(localeTranslations, namespace, key);
22194
- return typeof value === "string" ? interpolate(value, params) : interpolate(key, params);
21849
+ function toLocaleTranslations(locale, translations) {
21850
+ if (!translations) return void 0;
21851
+ return {
21852
+ [locale]: translations
22195
21853
  };
22196
21854
  }
21855
+ var UnderverseProvider = ({ children, locale = "en", translations }) => {
21856
+ return /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(TranslationProvider, { locale, translations: toLocaleTranslations(locale, translations), children });
21857
+ };
22197
21858
  function useTranslations(namespace) {
22198
- const underverseContext = React64.useContext(TranslationContext2);
22199
- if (underverseContext) {
22200
- return (key, params) => {
22201
- const result = underverseContext.t(namespace)(key);
22202
- return interpolate(result, params);
22203
- };
22204
- }
22205
- if (nextIntlAvailable && nextIntlUseTranslations) {
22206
- try {
22207
- const nextIntlT = nextIntlUseTranslations(namespace);
22208
- return nextIntlT;
22209
- } catch {
21859
+ const nextIntlBridge = useNextIntlBridge();
21860
+ const internalLocale = useUnderverseLocale();
21861
+ const internalT = useUnderverseTranslations(namespace);
21862
+ return React64.useCallback((key, params) => {
21863
+ if (nextIntlBridge) {
21864
+ const nextIntlResult = nextIntlBridge.translate(namespace, key, params);
21865
+ if (nextIntlResult.translated && !isUnresolvedTranslation2(nextIntlResult.translated, namespace, key)) {
21866
+ return nextIntlResult.translated;
21867
+ }
21868
+ const localizedDefault = getUnderverseDefaultTranslation(nextIntlResult.locale, namespace, key);
21869
+ if (localizedDefault !== key) {
21870
+ return interpolate(localizedDefault, params);
21871
+ }
22210
21872
  }
22211
- }
22212
- return getInternalTranslation(namespace, "en");
21873
+ const internalValue = internalT(key);
21874
+ if (internalValue !== key) {
21875
+ return interpolate(internalValue, params);
21876
+ }
21877
+ return interpolate(getUnderverseDefaultTranslation(internalLocale, namespace, key), params);
21878
+ }, [internalLocale, internalT, namespace, nextIntlBridge]);
22213
21879
  }
22214
21880
  function useLocale2() {
22215
- const underverseContext = React64.useContext(TranslationContext2);
22216
- if (underverseContext) {
22217
- return underverseContext.locale;
22218
- }
22219
- if (nextIntlAvailable && nextIntlUseLocale) {
22220
- try {
22221
- const locale = nextIntlUseLocale();
22222
- if (locale === "en" || locale === "vi" || locale === "ko" || locale === "ja") return locale;
22223
- if (locale?.startsWith?.("vi")) return "vi";
22224
- if (locale?.startsWith?.("ko")) return "ko";
22225
- if (locale?.startsWith?.("ja")) return "ja";
22226
- return "en";
22227
- } catch {
22228
- }
22229
- }
22230
- return "en";
21881
+ const nextIntlBridge = useNextIntlBridge();
21882
+ const internalLocale = useUnderverseLocale();
21883
+ return nextIntlBridge?.locale ?? internalLocale;
22231
21884
  }
22232
21885
 
22233
21886
  // src/components/UEditor/UEditor.tsx
@@ -23287,6 +22940,7 @@ function buildUEditorExtensions({
23287
22940
  import_extension_table.Table.configure({
23288
22941
  resizable: true,
23289
22942
  handleWidth: 10,
22943
+ allowTableNodeSelection: true,
23290
22944
  HTMLAttributes: {
23291
22945
  class: "border-collapse w-full my-4"
23292
22946
  }
@@ -25173,8 +24827,24 @@ var UEditor = import_react51.default.forwardRef(({
25173
24827
  "[&_pre]:text-[#d4d4d4]!",
25174
24828
  "[&_pre_code]:bg-transparent!",
25175
24829
  "[&_.tableWrapper]:overflow-x-auto",
24830
+ "[&_.tableWrapper]:select-text",
24831
+ "[&_table]:table-fixed",
24832
+ "[&_table]:overflow-hidden",
24833
+ "[&_table]:select-text",
25176
24834
  "[&_td]:relative",
24835
+ "[&_td]:align-top",
24836
+ "[&_td]:box-border",
24837
+ "[&_td]:select-text",
25177
24838
  "[&_th]:relative",
24839
+ "[&_th]:align-top",
24840
+ "[&_th]:box-border",
24841
+ "[&_th]:select-text",
24842
+ "[&_.selectedCell]:after:content-['']",
24843
+ "[&_.selectedCell]:after:absolute",
24844
+ "[&_.selectedCell]:after:inset-0",
24845
+ "[&_.selectedCell]:after:z-[2]",
24846
+ "[&_.selectedCell]:after:bg-primary/15",
24847
+ "[&_.selectedCell]:after:pointer-events-none",
25178
24848
  "[&_.column-resize-handle]:pointer-events-auto",
25179
24849
  "[&_.column-resize-handle]:cursor-col-resize",
25180
24850
  "[&_.column-resize-handle]:bg-primary/65",