@anvilkit/plugin-asset-manager 0.1.7 → 0.1.9

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 (141) hide show
  1. package/README.md +4 -4
  2. package/dist/adapters/data-url.d.cts +13 -0
  3. package/dist/adapters/data-url.d.cts.map +1 -1
  4. package/dist/adapters/data-url.d.ts +13 -0
  5. package/dist/adapters/data-url.d.ts.map +1 -1
  6. package/dist/adapters/in-memory.d.cts +8 -1
  7. package/dist/adapters/in-memory.d.cts.map +1 -1
  8. package/dist/adapters/in-memory.d.ts +8 -1
  9. package/dist/adapters/in-memory.d.ts.map +1 -1
  10. package/dist/i18n/entry.cjs +75 -0
  11. package/dist/i18n/entry.d.cts +15 -0
  12. package/dist/i18n/entry.d.cts.map +1 -0
  13. package/dist/i18n/entry.d.ts +15 -0
  14. package/dist/i18n/entry.d.ts.map +1 -0
  15. package/dist/i18n/entry.js +29 -0
  16. package/dist/i18n/provider.cjs +49 -0
  17. package/dist/i18n/provider.d.cts +20 -0
  18. package/dist/i18n/provider.d.cts.map +1 -0
  19. package/dist/i18n/provider.d.ts +20 -0
  20. package/dist/i18n/provider.d.ts.map +1 -0
  21. package/dist/i18n/provider.js +11 -0
  22. package/dist/plugin.cjs +3 -1
  23. package/dist/plugin.d.cts.map +1 -1
  24. package/dist/plugin.d.ts.map +1 -1
  25. package/dist/plugin.js +3 -1
  26. package/dist/sources/composite-source.cjs +4 -3
  27. package/dist/sources/composite-source.d.cts.map +1 -1
  28. package/dist/sources/composite-source.d.ts.map +1 -1
  29. package/dist/sources/composite-source.js +4 -3
  30. package/dist/sources/federated-search.cjs +16 -6
  31. package/dist/sources/federated-search.d.cts.map +1 -1
  32. package/dist/sources/federated-search.d.ts.map +1 -1
  33. package/dist/sources/federated-search.js +16 -6
  34. package/dist/sources/unsplash/index.cjs +6 -4
  35. package/dist/sources/unsplash/index.d.cts.map +1 -1
  36. package/dist/sources/unsplash/index.d.ts.map +1 -1
  37. package/dist/sources/unsplash/index.js +6 -4
  38. package/dist/types/types.d.cts +7 -1
  39. package/dist/types/types.d.cts.map +1 -1
  40. package/dist/types/types.d.ts +7 -1
  41. package/dist/types/types.d.ts.map +1 -1
  42. package/dist/ui/AssetBrowser.cjs +175 -134
  43. package/dist/ui/AssetBrowser.d.cts.map +1 -1
  44. package/dist/ui/AssetBrowser.d.ts.map +1 -1
  45. package/dist/ui/AssetBrowser.js +175 -134
  46. package/dist/ui/AssetCommandPalette.cjs +20 -18
  47. package/dist/ui/AssetCommandPalette.d.cts.map +1 -1
  48. package/dist/ui/AssetCommandPalette.d.ts.map +1 -1
  49. package/dist/ui/AssetCommandPalette.js +20 -18
  50. package/dist/ui/AssetManagerUI.cjs +23 -15
  51. package/dist/ui/AssetManagerUI.d.cts.map +1 -1
  52. package/dist/ui/AssetManagerUI.d.ts.map +1 -1
  53. package/dist/ui/AssetManagerUI.js +23 -15
  54. package/dist/ui/DeleteAssetDialog.cjs +5 -3
  55. package/dist/ui/DeleteAssetDialog.d.cts.map +1 -1
  56. package/dist/ui/DeleteAssetDialog.d.ts.map +1 -1
  57. package/dist/ui/DeleteAssetDialog.js +5 -3
  58. package/dist/ui/DeleteFolderDialog.cjs +6 -4
  59. package/dist/ui/DeleteFolderDialog.d.cts.map +1 -1
  60. package/dist/ui/DeleteFolderDialog.d.ts.map +1 -1
  61. package/dist/ui/DeleteFolderDialog.js +6 -4
  62. package/dist/ui/EmptyFolderState.cjs +6 -3
  63. package/dist/ui/EmptyFolderState.d.cts +1 -1
  64. package/dist/ui/EmptyFolderState.d.cts.map +1 -1
  65. package/dist/ui/EmptyFolderState.d.ts +1 -1
  66. package/dist/ui/EmptyFolderState.d.ts.map +1 -1
  67. package/dist/ui/EmptyFolderState.js +6 -3
  68. package/dist/ui/FolderBreadcrumb.cjs +7 -4
  69. package/dist/ui/FolderBreadcrumb.d.cts.map +1 -1
  70. package/dist/ui/FolderBreadcrumb.d.ts.map +1 -1
  71. package/dist/ui/FolderBreadcrumb.js +7 -4
  72. package/dist/ui/FolderNameDialog.cjs +19 -12
  73. package/dist/ui/FolderNameDialog.d.cts.map +1 -1
  74. package/dist/ui/FolderNameDialog.d.ts.map +1 -1
  75. package/dist/ui/FolderNameDialog.js +19 -12
  76. package/dist/ui/FolderTree.cjs +4 -2
  77. package/dist/ui/FolderTree.d.cts.map +1 -1
  78. package/dist/ui/FolderTree.d.ts.map +1 -1
  79. package/dist/ui/FolderTree.js +4 -2
  80. package/dist/ui/MetadataPanel.cjs +16 -13
  81. package/dist/ui/MetadataPanel.d.cts.map +1 -1
  82. package/dist/ui/MetadataPanel.d.ts.map +1 -1
  83. package/dist/ui/MetadataPanel.js +16 -13
  84. package/dist/ui/MoveTargetPicker.cjs +7 -4
  85. package/dist/ui/MoveTargetPicker.d.cts.map +1 -1
  86. package/dist/ui/MoveTargetPicker.d.ts.map +1 -1
  87. package/dist/ui/MoveTargetPicker.js +7 -4
  88. package/dist/ui/ReplaceAssetDialog.cjs +19 -17
  89. package/dist/ui/ReplaceAssetDialog.d.cts.map +1 -1
  90. package/dist/ui/ReplaceAssetDialog.d.ts.map +1 -1
  91. package/dist/ui/ReplaceAssetDialog.js +19 -17
  92. package/dist/ui/UnsplashPanel.cjs +15 -12
  93. package/dist/ui/UnsplashPanel.d.cts.map +1 -1
  94. package/dist/ui/UnsplashPanel.d.ts.map +1 -1
  95. package/dist/ui/UnsplashPanel.js +15 -12
  96. package/dist/ui/UploadButton.cjs +11 -8
  97. package/dist/ui/UploadButton.d.cts.map +1 -1
  98. package/dist/ui/UploadButton.d.ts.map +1 -1
  99. package/dist/ui/UploadButton.js +11 -8
  100. package/dist/ui/index.cjs +4 -0
  101. package/dist/ui/index.d.cts +1 -0
  102. package/dist/ui/index.d.cts.map +1 -1
  103. package/dist/ui/index.d.ts +1 -0
  104. package/dist/ui/index.d.ts.map +1 -1
  105. package/dist/ui/index.js +1 -0
  106. package/dist/utils/data-source.cjs +18 -5
  107. package/dist/utils/data-source.d.cts.map +1 -1
  108. package/dist/utils/data-source.d.ts.map +1 -1
  109. package/dist/utils/data-source.js +19 -6
  110. package/dist/utils/folders.cjs +107 -33
  111. package/dist/utils/folders.d.cts +7 -2
  112. package/dist/utils/folders.d.cts.map +1 -1
  113. package/dist/utils/folders.d.ts +7 -2
  114. package/dist/utils/folders.d.ts.map +1 -1
  115. package/dist/utils/folders.js +107 -33
  116. package/dist/utils/header-action.cjs +1 -1
  117. package/dist/utils/header-action.d.cts.map +1 -1
  118. package/dist/utils/header-action.d.ts.map +1 -1
  119. package/dist/utils/header-action.js +1 -1
  120. package/dist/utils/registry.cjs +23 -12
  121. package/dist/utils/registry.d.cts +16 -8
  122. package/dist/utils/registry.d.cts.map +1 -1
  123. package/dist/utils/registry.d.ts +16 -8
  124. package/dist/utils/registry.d.ts.map +1 -1
  125. package/dist/utils/registry.js +19 -8
  126. package/dist/utils/resolver.cjs +5 -4
  127. package/dist/utils/resolver.d.cts.map +1 -1
  128. package/dist/utils/resolver.d.ts.map +1 -1
  129. package/dist/utils/resolver.js +5 -4
  130. package/dist/utils/studio-asset-source.cjs +8 -2
  131. package/dist/utils/studio-asset-source.js +8 -2
  132. package/dist/version.cjs +1 -1
  133. package/dist/version.d.cts +1 -1
  134. package/dist/version.d.ts +1 -1
  135. package/dist/version.js +1 -1
  136. package/i18n/messages/en.json +99 -0
  137. package/i18n/messages/ja.json +99 -0
  138. package/i18n/messages/ko.json +99 -0
  139. package/i18n/messages/zh.json +99 -0
  140. package/meta/config.json +1 -1
  141. package/package.json +11 -10
@@ -31,15 +31,18 @@ __webpack_require__.r(__webpack_exports__);
31
31
  __webpack_require__.d(__webpack_exports__, {
32
32
  UnsplashPanel: ()=>UnsplashPanel
33
33
  });
34
+ const i18n_namespaceObject = require("@anvilkit/core/i18n");
34
35
  const button_namespaceObject = require("@anvilkit/ui/button");
35
36
  const input_namespaceObject = require("@anvilkit/ui/input");
36
37
  const external_react_namespaceObject = require("react");
37
- function UnsplashPanel({ themes, activeThemeId, onThemeChange, query, onQueryChange, results, status, onPick, onLoadMore, themeLabel = (key)=>key, skeletonCount = 12 }) {
38
+ function UnsplashPanel({ themes, activeThemeId, onThemeChange, query, onQueryChange, results, status, onPick, onLoadMore, themeLabel, skeletonCount = 12 }) {
39
+ const msg = (0, i18n_namespaceObject.useMsg)();
40
+ const resolvedThemeLabel = themeLabel ?? ((key)=>msg(key));
38
41
  if ("disabled" === status) return /*#__PURE__*/ external_react_namespaceObject.createElement("div", {
39
42
  role: "status",
40
43
  "data-testid": "ak-unsplash-disabled",
41
44
  className: "flex flex-col items-center gap-2 p-6 text-center text-sm text-[var(--ak-studio-muted-fg)]"
42
- }, /*#__PURE__*/ external_react_namespaceObject.createElement("p", null, "Connect Unsplash — add an access key via a server proxy."));
45
+ }, /*#__PURE__*/ external_react_namespaceObject.createElement("p", null, msg("assetManager.unsplash.disabled")));
43
46
  return /*#__PURE__*/ external_react_namespaceObject.createElement("div", {
44
47
  "data-testid": "ak-unsplash-panel",
45
48
  className: "flex flex-col gap-2"
@@ -48,14 +51,14 @@ function UnsplashPanel({ themes, activeThemeId, onThemeChange, query, onQueryCha
48
51
  "aria-live": "polite",
49
52
  "data-testid": "ak-unsplash-status",
50
53
  className: "sr-only"
51
- }, "loading" === status ? "Loading photos…" : ""), /*#__PURE__*/ external_react_namespaceObject.createElement(input_namespaceObject.Input, {
54
+ }, "loading" === status ? msg("assetManager.unsplash.loading") : ""), /*#__PURE__*/ external_react_namespaceObject.createElement(input_namespaceObject.Input, {
52
55
  value: query,
53
- placeholder: "Search Unsplash…",
56
+ placeholder: msg("assetManager.unsplash.searchPlaceholder"),
54
57
  "data-testid": "ak-unsplash-search",
55
58
  onChange: (event)=>onQueryChange(event.currentTarget.value)
56
59
  }), themes.length > 0 ? /*#__PURE__*/ external_react_namespaceObject.createElement("div", {
57
60
  role: "group",
58
- "aria-label": "Unsplash themes",
61
+ "aria-label": msg("assetManager.unsplash.themesLabel"),
59
62
  "data-testid": "ak-unsplash-themes",
60
63
  className: "flex flex-wrap gap-1"
61
64
  }, themes.map((theme)=>/*#__PURE__*/ external_react_namespaceObject.createElement(button_namespaceObject.Button, {
@@ -66,15 +69,15 @@ function UnsplashPanel({ themes, activeThemeId, onThemeChange, query, onQueryCha
66
69
  "aria-pressed": theme.id === activeThemeId,
67
70
  "data-theme-id": theme.id,
68
71
  onClick: ()=>onThemeChange(theme.id === activeThemeId ? void 0 : theme.id)
69
- }, themeLabel(theme.label)))) : null, "rateLimited" === status ? /*#__PURE__*/ external_react_namespaceObject.createElement("p", {
72
+ }, resolvedThemeLabel(theme.label)))) : null, "rateLimited" === status ? /*#__PURE__*/ external_react_namespaceObject.createElement("p", {
70
73
  role: "alert",
71
74
  "data-testid": "ak-unsplash-rate-limited",
72
75
  className: "text-sm"
73
- }, "Unsplash rate limit reached — try again shortly.") : null, "error" === status ? /*#__PURE__*/ external_react_namespaceObject.createElement("p", {
76
+ }, msg("assetManager.unsplash.rateLimited")) : null, "error" === status ? /*#__PURE__*/ external_react_namespaceObject.createElement("p", {
74
77
  role: "alert",
75
78
  "data-testid": "ak-unsplash-error",
76
79
  className: "text-sm"
77
- }, "Couldn’t reach Unsplash. Retry.") : null, "loading" === status && 0 === results.length ? /*#__PURE__*/ external_react_namespaceObject.createElement("ul", {
80
+ }, msg("assetManager.unsplash.error")) : null, "loading" === status && 0 === results.length ? /*#__PURE__*/ external_react_namespaceObject.createElement("ul", {
78
81
  "data-testid": "ak-unsplash-skeletons",
79
82
  className: "grid grid-cols-3 gap-2",
80
83
  "aria-hidden": "true"
@@ -86,7 +89,7 @@ function UnsplashPanel({ themes, activeThemeId, onThemeChange, query, onQueryCha
86
89
  }))) : 0 === results.length && "idle" === status ? /*#__PURE__*/ external_react_namespaceObject.createElement("p", {
87
90
  "data-testid": "ak-unsplash-empty",
88
91
  className: "p-4 text-center text-sm"
89
- }, "Search Unsplash to browse photos.") : /*#__PURE__*/ external_react_namespaceObject.createElement("ul", {
92
+ }, msg("assetManager.unsplash.empty")) : /*#__PURE__*/ external_react_namespaceObject.createElement("ul", {
90
93
  "data-testid": "ak-unsplash-results",
91
94
  className: "grid grid-cols-3 gap-2"
92
95
  }, results.map((result)=>/*#__PURE__*/ external_react_namespaceObject.createElement("li", {
@@ -95,12 +98,12 @@ function UnsplashPanel({ themes, activeThemeId, onThemeChange, query, onQueryCha
95
98
  }, /*#__PURE__*/ external_react_namespaceObject.createElement("button", {
96
99
  type: "button",
97
100
  "data-unsplash-id": result.id,
98
- "aria-label": `Insert photo by ${result.photographerName}`,
101
+ "aria-label": msg("assetManager.unsplash.insert").replace("{photographer}", result.photographerName),
99
102
  className: "overflow-hidden rounded",
100
103
  onClick: ()=>void onPick(result.id)
101
104
  }, /*#__PURE__*/ external_react_namespaceObject.createElement("img", {
102
105
  src: result.thumbnailUrl,
103
- alt: `Photo by ${result.photographerName}`,
106
+ alt: "",
104
107
  className: "aspect-square w-full object-cover",
105
108
  loading: "lazy"
106
109
  })), /*#__PURE__*/ external_react_namespaceObject.createElement("p", {
@@ -123,7 +126,7 @@ function UnsplashPanel({ themes, activeThemeId, onThemeChange, query, onQueryCha
123
126
  size: "sm",
124
127
  disabled: "loading" === status,
125
128
  onClick: onLoadMore
126
- }, "Load more")) : null);
129
+ }, msg("assetManager.button.loadMore"))) : null);
127
130
  }
128
131
  exports.UnsplashPanel = __webpack_exports__.UnsplashPanel;
129
132
  for(var __rspack_i in __webpack_exports__)if (-1 === [
@@ -1 +1 @@
1
- {"version":3,"file":"UnsplashPanel.d.cts","sourceRoot":"","sources":["../../src/ui/UnsplashPanel.tsx"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAGzD,sEAAsE;AACtE,MAAM,WAAW,cAAc;IAC9B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;CAC7B;AAED,MAAM,MAAM,mBAAmB,GAC5B,MAAM,GACN,SAAS,GACT,aAAa,GACb,OAAO,GACP,UAAU,CAAC;AAEd,MAAM,WAAW,kBAAkB;IAClC,QAAQ,CAAC,MAAM,EAAE,SAAS,UAAU,EAAE,CAAC;IACvC,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,aAAa,EAAE,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,KAAK,IAAI,CAAC;IAC9D,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,aAAa,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAChD,QAAQ,CAAC,OAAO,EAAE,SAAS,cAAc,EAAE,CAAC;IAC5C,QAAQ,CAAC,MAAM,EAAE,mBAAmB,CAAC;IACrC,qFAAqF;IACrF,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACtD,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,IAAI,CAAC;IACjC,sEAAsE;IACtE,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,CAAC;IAC9C,wDAAwD;IACxD,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;CAChC;AAED,wBAAgB,aAAa,CAAC,EAC7B,MAAM,EACN,aAAa,EACb,aAAa,EACb,KAAK,EACL,aAAa,EACb,OAAO,EACP,MAAM,EACN,MAAM,EACN,UAAU,EACV,UAAyB,EACzB,aAAkB,GAClB,EAAE,kBAAkB,2CAoJpB"}
1
+ {"version":3,"file":"UnsplashPanel.d.cts","sourceRoot":"","sources":["../../src/ui/UnsplashPanel.tsx"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAGzD,sEAAsE;AACtE,MAAM,WAAW,cAAc;IAC9B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;CAC7B;AAED,MAAM,MAAM,mBAAmB,GAC5B,MAAM,GACN,SAAS,GACT,aAAa,GACb,OAAO,GACP,UAAU,CAAC;AAEd,MAAM,WAAW,kBAAkB;IAClC,QAAQ,CAAC,MAAM,EAAE,SAAS,UAAU,EAAE,CAAC;IACvC,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,aAAa,EAAE,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,KAAK,IAAI,CAAC;IAC9D,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,aAAa,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAChD,QAAQ,CAAC,OAAO,EAAE,SAAS,cAAc,EAAE,CAAC;IAC5C,QAAQ,CAAC,MAAM,EAAE,mBAAmB,CAAC;IACrC,qFAAqF;IACrF,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACtD,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,IAAI,CAAC;IACjC,sEAAsE;IACtE,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,CAAC;IAC9C,wDAAwD;IACxD,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;CAChC;AAED,wBAAgB,aAAa,CAAC,EAC7B,MAAM,EACN,aAAa,EACb,aAAa,EACb,KAAK,EACL,aAAa,EACb,OAAO,EACP,MAAM,EACN,MAAM,EACN,UAAU,EACV,UAAU,EACV,aAAkB,GAClB,EAAE,kBAAkB,2CA8JpB"}
@@ -1 +1 @@
1
- {"version":3,"file":"UnsplashPanel.d.ts","sourceRoot":"","sources":["../../src/ui/UnsplashPanel.tsx"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAGzD,sEAAsE;AACtE,MAAM,WAAW,cAAc;IAC9B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;CAC7B;AAED,MAAM,MAAM,mBAAmB,GAC5B,MAAM,GACN,SAAS,GACT,aAAa,GACb,OAAO,GACP,UAAU,CAAC;AAEd,MAAM,WAAW,kBAAkB;IAClC,QAAQ,CAAC,MAAM,EAAE,SAAS,UAAU,EAAE,CAAC;IACvC,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,aAAa,EAAE,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,KAAK,IAAI,CAAC;IAC9D,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,aAAa,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAChD,QAAQ,CAAC,OAAO,EAAE,SAAS,cAAc,EAAE,CAAC;IAC5C,QAAQ,CAAC,MAAM,EAAE,mBAAmB,CAAC;IACrC,qFAAqF;IACrF,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACtD,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,IAAI,CAAC;IACjC,sEAAsE;IACtE,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,CAAC;IAC9C,wDAAwD;IACxD,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;CAChC;AAED,wBAAgB,aAAa,CAAC,EAC7B,MAAM,EACN,aAAa,EACb,aAAa,EACb,KAAK,EACL,aAAa,EACb,OAAO,EACP,MAAM,EACN,MAAM,EACN,UAAU,EACV,UAAyB,EACzB,aAAkB,GAClB,EAAE,kBAAkB,2CAoJpB"}
1
+ {"version":3,"file":"UnsplashPanel.d.ts","sourceRoot":"","sources":["../../src/ui/UnsplashPanel.tsx"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAGzD,sEAAsE;AACtE,MAAM,WAAW,cAAc;IAC9B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;CAC7B;AAED,MAAM,MAAM,mBAAmB,GAC5B,MAAM,GACN,SAAS,GACT,aAAa,GACb,OAAO,GACP,UAAU,CAAC;AAEd,MAAM,WAAW,kBAAkB;IAClC,QAAQ,CAAC,MAAM,EAAE,SAAS,UAAU,EAAE,CAAC;IACvC,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,aAAa,EAAE,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,KAAK,IAAI,CAAC;IAC9D,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,aAAa,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAChD,QAAQ,CAAC,OAAO,EAAE,SAAS,cAAc,EAAE,CAAC;IAC5C,QAAQ,CAAC,MAAM,EAAE,mBAAmB,CAAC;IACrC,qFAAqF;IACrF,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACtD,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,IAAI,CAAC;IACjC,sEAAsE;IACtE,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,CAAC;IAC9C,wDAAwD;IACxD,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;CAChC;AAED,wBAAgB,aAAa,CAAC,EAC7B,MAAM,EACN,aAAa,EACb,aAAa,EACb,KAAK,EACL,aAAa,EACb,OAAO,EACP,MAAM,EACN,MAAM,EACN,UAAU,EACV,UAAU,EACV,aAAkB,GAClB,EAAE,kBAAkB,2CA8JpB"}
@@ -1,13 +1,16 @@
1
1
  "use client";
2
+ import { useMsg } from "@anvilkit/core/i18n";
2
3
  import { Button } from "@anvilkit/ui/button";
3
4
  import { Input } from "@anvilkit/ui/input";
4
5
  import * as __rspack_external_react from "react";
5
- function UnsplashPanel({ themes, activeThemeId, onThemeChange, query, onQueryChange, results, status, onPick, onLoadMore, themeLabel = (key)=>key, skeletonCount = 12 }) {
6
+ function UnsplashPanel({ themes, activeThemeId, onThemeChange, query, onQueryChange, results, status, onPick, onLoadMore, themeLabel, skeletonCount = 12 }) {
7
+ const msg = useMsg();
8
+ const resolvedThemeLabel = themeLabel ?? ((key)=>msg(key));
6
9
  if ("disabled" === status) return /*#__PURE__*/ __rspack_external_react.createElement("div", {
7
10
  role: "status",
8
11
  "data-testid": "ak-unsplash-disabled",
9
12
  className: "flex flex-col items-center gap-2 p-6 text-center text-sm text-[var(--ak-studio-muted-fg)]"
10
- }, /*#__PURE__*/ __rspack_external_react.createElement("p", null, "Connect Unsplash — add an access key via a server proxy."));
13
+ }, /*#__PURE__*/ __rspack_external_react.createElement("p", null, msg("assetManager.unsplash.disabled")));
11
14
  return /*#__PURE__*/ __rspack_external_react.createElement("div", {
12
15
  "data-testid": "ak-unsplash-panel",
13
16
  className: "flex flex-col gap-2"
@@ -16,14 +19,14 @@ function UnsplashPanel({ themes, activeThemeId, onThemeChange, query, onQueryCha
16
19
  "aria-live": "polite",
17
20
  "data-testid": "ak-unsplash-status",
18
21
  className: "sr-only"
19
- }, "loading" === status ? "Loading photos…" : ""), /*#__PURE__*/ __rspack_external_react.createElement(Input, {
22
+ }, "loading" === status ? msg("assetManager.unsplash.loading") : ""), /*#__PURE__*/ __rspack_external_react.createElement(Input, {
20
23
  value: query,
21
- placeholder: "Search Unsplash…",
24
+ placeholder: msg("assetManager.unsplash.searchPlaceholder"),
22
25
  "data-testid": "ak-unsplash-search",
23
26
  onChange: (event)=>onQueryChange(event.currentTarget.value)
24
27
  }), themes.length > 0 ? /*#__PURE__*/ __rspack_external_react.createElement("div", {
25
28
  role: "group",
26
- "aria-label": "Unsplash themes",
29
+ "aria-label": msg("assetManager.unsplash.themesLabel"),
27
30
  "data-testid": "ak-unsplash-themes",
28
31
  className: "flex flex-wrap gap-1"
29
32
  }, themes.map((theme)=>/*#__PURE__*/ __rspack_external_react.createElement(Button, {
@@ -34,15 +37,15 @@ function UnsplashPanel({ themes, activeThemeId, onThemeChange, query, onQueryCha
34
37
  "aria-pressed": theme.id === activeThemeId,
35
38
  "data-theme-id": theme.id,
36
39
  onClick: ()=>onThemeChange(theme.id === activeThemeId ? void 0 : theme.id)
37
- }, themeLabel(theme.label)))) : null, "rateLimited" === status ? /*#__PURE__*/ __rspack_external_react.createElement("p", {
40
+ }, resolvedThemeLabel(theme.label)))) : null, "rateLimited" === status ? /*#__PURE__*/ __rspack_external_react.createElement("p", {
38
41
  role: "alert",
39
42
  "data-testid": "ak-unsplash-rate-limited",
40
43
  className: "text-sm"
41
- }, "Unsplash rate limit reached — try again shortly.") : null, "error" === status ? /*#__PURE__*/ __rspack_external_react.createElement("p", {
44
+ }, msg("assetManager.unsplash.rateLimited")) : null, "error" === status ? /*#__PURE__*/ __rspack_external_react.createElement("p", {
42
45
  role: "alert",
43
46
  "data-testid": "ak-unsplash-error",
44
47
  className: "text-sm"
45
- }, "Couldn’t reach Unsplash. Retry.") : null, "loading" === status && 0 === results.length ? /*#__PURE__*/ __rspack_external_react.createElement("ul", {
48
+ }, msg("assetManager.unsplash.error")) : null, "loading" === status && 0 === results.length ? /*#__PURE__*/ __rspack_external_react.createElement("ul", {
46
49
  "data-testid": "ak-unsplash-skeletons",
47
50
  className: "grid grid-cols-3 gap-2",
48
51
  "aria-hidden": "true"
@@ -54,7 +57,7 @@ function UnsplashPanel({ themes, activeThemeId, onThemeChange, query, onQueryCha
54
57
  }))) : 0 === results.length && "idle" === status ? /*#__PURE__*/ __rspack_external_react.createElement("p", {
55
58
  "data-testid": "ak-unsplash-empty",
56
59
  className: "p-4 text-center text-sm"
57
- }, "Search Unsplash to browse photos.") : /*#__PURE__*/ __rspack_external_react.createElement("ul", {
60
+ }, msg("assetManager.unsplash.empty")) : /*#__PURE__*/ __rspack_external_react.createElement("ul", {
58
61
  "data-testid": "ak-unsplash-results",
59
62
  className: "grid grid-cols-3 gap-2"
60
63
  }, results.map((result)=>/*#__PURE__*/ __rspack_external_react.createElement("li", {
@@ -63,12 +66,12 @@ function UnsplashPanel({ themes, activeThemeId, onThemeChange, query, onQueryCha
63
66
  }, /*#__PURE__*/ __rspack_external_react.createElement("button", {
64
67
  type: "button",
65
68
  "data-unsplash-id": result.id,
66
- "aria-label": `Insert photo by ${result.photographerName}`,
69
+ "aria-label": msg("assetManager.unsplash.insert").replace("{photographer}", result.photographerName),
67
70
  className: "overflow-hidden rounded",
68
71
  onClick: ()=>void onPick(result.id)
69
72
  }, /*#__PURE__*/ __rspack_external_react.createElement("img", {
70
73
  src: result.thumbnailUrl,
71
- alt: `Photo by ${result.photographerName}`,
74
+ alt: "",
72
75
  className: "aspect-square w-full object-cover",
73
76
  loading: "lazy"
74
77
  })), /*#__PURE__*/ __rspack_external_react.createElement("p", {
@@ -91,6 +94,6 @@ function UnsplashPanel({ themes, activeThemeId, onThemeChange, query, onQueryCha
91
94
  size: "sm",
92
95
  disabled: "loading" === status,
93
96
  onClick: onLoadMore
94
- }, "Load more")) : null);
97
+ }, msg("assetManager.button.loadMore"))) : null);
95
98
  }
96
99
  export { UnsplashPanel };
@@ -31,11 +31,18 @@ __webpack_require__.r(__webpack_exports__);
31
31
  __webpack_require__.d(__webpack_exports__, {
32
32
  UploadButton: ()=>UploadButton
33
33
  });
34
+ const i18n_namespaceObject = require("@anvilkit/core/i18n");
34
35
  const button_namespaceObject = require("@anvilkit/ui/button");
35
36
  const external_react_namespaceObject = require("react");
36
37
  const external_plugin_cjs_namespaceObject = require("../plugin.cjs");
37
38
  const validate_upload_result_cjs_namespaceObject = require("../utils/validate-upload-result.cjs");
39
+ function handleDragOver(event) {
40
+ event.preventDefault();
41
+ event.stopPropagation();
42
+ if (event.dataTransfer) event.dataTransfer.dropEffect = "copy";
43
+ }
38
44
  function UploadButton({ acceptedMimeTypes, allowMixedScriptHostnames, dataUrlAllowlistOptIn, maxFileSize, onError, onProgress, onUploaded, uploader }) {
45
+ const msg = (0, i18n_namespaceObject.useMsg)();
39
46
  const inputRef = external_react_namespaceObject.useRef(null);
40
47
  const [errorMessage, setErrorMessage] = external_react_namespaceObject.useState(null);
41
48
  const [batch, setBatch] = external_react_namespaceObject.useState(null);
@@ -121,11 +128,6 @@ function UploadButton({ acceptedMimeTypes, allowMixedScriptHostnames, dataUrlAll
121
128
  event.stopPropagation();
122
129
  if (event.dataTransfer?.types?.includes("Files")) setIsDragOver(true);
123
130
  }
124
- function handleDragOver(event) {
125
- event.preventDefault();
126
- event.stopPropagation();
127
- if (event.dataTransfer) event.dataTransfer.dropEffect = "copy";
128
- }
129
131
  function handleDragLeave(event) {
130
132
  event.preventDefault();
131
133
  event.stopPropagation();
@@ -138,7 +140,7 @@ function UploadButton({ acceptedMimeTypes, allowMixedScriptHostnames, dataUrlAll
138
140
  const files = event.dataTransfer?.files ? Array.from(event.dataTransfer.files) : [];
139
141
  await processFiles(files);
140
142
  }
141
- const statusMessage = errorMessage ?? (null !== batch ? `Uploading ${Math.min(batch.completed + 1, batch.total)} of ${batch.total}…` : "Accepted files upload through the configured adapter.");
143
+ const statusMessage = errorMessage ?? (null !== batch ? msg("assetManager.upload.statusProgress").replace("{completed}", String(Math.min(batch.completed + 1, batch.total))).replace("{total}", String(batch.total)) : msg("assetManager.upload.statusIdle"));
142
144
  return /*#__PURE__*/ external_react_namespaceObject.createElement("div", {
143
145
  "data-asset-manager-drop-zone": true,
144
146
  "data-drag-over": isDragOver ? "true" : void 0,
@@ -151,6 +153,7 @@ function UploadButton({ acceptedMimeTypes, allowMixedScriptHostnames, dataUrlAll
151
153
  tabIndex: -1
152
154
  }, /*#__PURE__*/ external_react_namespaceObject.createElement("input", {
153
155
  accept: acceptAttr,
156
+ "aria-label": msg("assetManager.upload.chooseLabel"),
154
157
  multiple: true,
155
158
  onChange: (event)=>{
156
159
  handleChange(event);
@@ -161,14 +164,14 @@ function UploadButton({ acceptedMimeTypes, allowMixedScriptHostnames, dataUrlAll
161
164
  },
162
165
  type: "file"
163
166
  }), /*#__PURE__*/ external_react_namespaceObject.createElement(button_namespaceObject.Button, {
164
- "aria-label": "Upload asset file",
167
+ "aria-label": msg("assetManager.upload.buttonLabel"),
165
168
  disabled: isUploading,
166
169
  onClick: ()=>{
167
170
  inputRef.current?.click();
168
171
  },
169
172
  type: "button",
170
173
  variant: "outline"
171
- }, isUploading ? /*#__PURE__*/ external_react_namespaceObject.createElement(UploadSpinner, null) : null, /*#__PURE__*/ external_react_namespaceObject.createElement("span", null, isUploading ? "Uploading…" : "Upload asset")), /*#__PURE__*/ external_react_namespaceObject.createElement("p", {
174
+ }, isUploading ? /*#__PURE__*/ external_react_namespaceObject.createElement(UploadSpinner, null) : null, /*#__PURE__*/ external_react_namespaceObject.createElement("span", null, isUploading ? msg("assetManager.upload.progress") : msg("assetManager.upload.button"))), /*#__PURE__*/ external_react_namespaceObject.createElement("p", {
172
175
  "aria-live": "polite",
173
176
  role: "status"
174
177
  }, statusMessage));
@@ -1 +1 @@
1
- {"version":3,"file":"UploadButton.d.cts","sourceRoot":"","sources":["../../src/ui/UploadButton.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC/D,OAAO,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAGrE,MAAM,WAAW,sBAAsB;IACtC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,iBAChB,SAAQ,IAAI,CACX,mBAAmB,EACjB,mBAAmB,GACnB,aAAa,GACb,uBAAuB,GACvB,2BAA2B,CAC7B;IACD;;;;OAIG;IACH,QAAQ,CAAC,QAAQ,EAAE,aAAa,CAAC;IACjC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,YAAY,KAAK,IAAI,CAAC;IACpD,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;IAC5C;;;;OAIG;IACH,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,sBAAsB,GAAG,IAAI,KAAK,IAAI,CAAC;CACxE;AAED,wBAAgB,YAAY,CAAC,EAC5B,iBAAiB,EACjB,yBAAyB,EACzB,qBAAqB,EACrB,WAAW,EACX,OAAO,EACP,UAAU,EACV,UAAU,EACV,QAAQ,GACR,EAAE,iBAAiB,2CAgLnB"}
1
+ {"version":3,"file":"UploadButton.d.cts","sourceRoot":"","sources":["../../src/ui/UploadButton.tsx"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC/D,OAAO,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAGrE,MAAM,WAAW,sBAAsB;IACtC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,iBAChB,SAAQ,IAAI,CACX,mBAAmB,EACjB,mBAAmB,GACnB,aAAa,GACb,uBAAuB,GACvB,2BAA2B,CAC7B;IACD;;;;OAIG;IACH,QAAQ,CAAC,QAAQ,EAAE,aAAa,CAAC;IACjC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,YAAY,KAAK,IAAI,CAAC;IACpD,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;IAC5C;;;;OAIG;IACH,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,sBAAsB,GAAG,IAAI,KAAK,IAAI,CAAC;CACxE;AAYD,wBAAgB,YAAY,CAAC,EAC5B,iBAAiB,EACjB,yBAAyB,EACzB,qBAAqB,EACrB,WAAW,EACX,OAAO,EACP,UAAU,EACV,UAAU,EACV,QAAQ,GACR,EAAE,iBAAiB,2CAmLnB"}
@@ -1 +1 @@
1
- {"version":3,"file":"UploadButton.d.ts","sourceRoot":"","sources":["../../src/ui/UploadButton.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC/D,OAAO,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAGrE,MAAM,WAAW,sBAAsB;IACtC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,iBAChB,SAAQ,IAAI,CACX,mBAAmB,EACjB,mBAAmB,GACnB,aAAa,GACb,uBAAuB,GACvB,2BAA2B,CAC7B;IACD;;;;OAIG;IACH,QAAQ,CAAC,QAAQ,EAAE,aAAa,CAAC;IACjC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,YAAY,KAAK,IAAI,CAAC;IACpD,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;IAC5C;;;;OAIG;IACH,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,sBAAsB,GAAG,IAAI,KAAK,IAAI,CAAC;CACxE;AAED,wBAAgB,YAAY,CAAC,EAC5B,iBAAiB,EACjB,yBAAyB,EACzB,qBAAqB,EACrB,WAAW,EACX,OAAO,EACP,UAAU,EACV,UAAU,EACV,QAAQ,GACR,EAAE,iBAAiB,2CAgLnB"}
1
+ {"version":3,"file":"UploadButton.d.ts","sourceRoot":"","sources":["../../src/ui/UploadButton.tsx"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC/D,OAAO,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAGrE,MAAM,WAAW,sBAAsB;IACtC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,iBAChB,SAAQ,IAAI,CACX,mBAAmB,EACjB,mBAAmB,GACnB,aAAa,GACb,uBAAuB,GACvB,2BAA2B,CAC7B;IACD;;;;OAIG;IACH,QAAQ,CAAC,QAAQ,EAAE,aAAa,CAAC;IACjC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,YAAY,KAAK,IAAI,CAAC;IACpD,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;IAC5C;;;;OAIG;IACH,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,sBAAsB,GAAG,IAAI,KAAK,IAAI,CAAC;CACxE;AAYD,wBAAgB,YAAY,CAAC,EAC5B,iBAAiB,EACjB,yBAAyB,EACzB,qBAAqB,EACrB,WAAW,EACX,OAAO,EACP,UAAU,EACV,UAAU,EACV,QAAQ,GACR,EAAE,iBAAiB,2CAmLnB"}
@@ -1,9 +1,16 @@
1
1
  "use client";
2
+ import { useMsg } from "@anvilkit/core/i18n";
2
3
  import { Button } from "@anvilkit/ui/button";
3
4
  import { validateSelectedFile } from "../plugin.js";
4
5
  import { validateUploadResult } from "../utils/validate-upload-result.js";
5
6
  import * as __rspack_external_react from "react";
7
+ function handleDragOver(event) {
8
+ event.preventDefault();
9
+ event.stopPropagation();
10
+ if (event.dataTransfer) event.dataTransfer.dropEffect = "copy";
11
+ }
6
12
  function UploadButton({ acceptedMimeTypes, allowMixedScriptHostnames, dataUrlAllowlistOptIn, maxFileSize, onError, onProgress, onUploaded, uploader }) {
13
+ const msg = useMsg();
7
14
  const inputRef = __rspack_external_react.useRef(null);
8
15
  const [errorMessage, setErrorMessage] = __rspack_external_react.useState(null);
9
16
  const [batch, setBatch] = __rspack_external_react.useState(null);
@@ -89,11 +96,6 @@ function UploadButton({ acceptedMimeTypes, allowMixedScriptHostnames, dataUrlAll
89
96
  event.stopPropagation();
90
97
  if (event.dataTransfer?.types?.includes("Files")) setIsDragOver(true);
91
98
  }
92
- function handleDragOver(event) {
93
- event.preventDefault();
94
- event.stopPropagation();
95
- if (event.dataTransfer) event.dataTransfer.dropEffect = "copy";
96
- }
97
99
  function handleDragLeave(event) {
98
100
  event.preventDefault();
99
101
  event.stopPropagation();
@@ -106,7 +108,7 @@ function UploadButton({ acceptedMimeTypes, allowMixedScriptHostnames, dataUrlAll
106
108
  const files = event.dataTransfer?.files ? Array.from(event.dataTransfer.files) : [];
107
109
  await processFiles(files);
108
110
  }
109
- const statusMessage = errorMessage ?? (null !== batch ? `Uploading ${Math.min(batch.completed + 1, batch.total)} of ${batch.total}…` : "Accepted files upload through the configured adapter.");
111
+ const statusMessage = errorMessage ?? (null !== batch ? msg("assetManager.upload.statusProgress").replace("{completed}", String(Math.min(batch.completed + 1, batch.total))).replace("{total}", String(batch.total)) : msg("assetManager.upload.statusIdle"));
110
112
  return /*#__PURE__*/ __rspack_external_react.createElement("div", {
111
113
  "data-asset-manager-drop-zone": true,
112
114
  "data-drag-over": isDragOver ? "true" : void 0,
@@ -119,6 +121,7 @@ function UploadButton({ acceptedMimeTypes, allowMixedScriptHostnames, dataUrlAll
119
121
  tabIndex: -1
120
122
  }, /*#__PURE__*/ __rspack_external_react.createElement("input", {
121
123
  accept: acceptAttr,
124
+ "aria-label": msg("assetManager.upload.chooseLabel"),
122
125
  multiple: true,
123
126
  onChange: (event)=>{
124
127
  handleChange(event);
@@ -129,14 +132,14 @@ function UploadButton({ acceptedMimeTypes, allowMixedScriptHostnames, dataUrlAll
129
132
  },
130
133
  type: "file"
131
134
  }), /*#__PURE__*/ __rspack_external_react.createElement(Button, {
132
- "aria-label": "Upload asset file",
135
+ "aria-label": msg("assetManager.upload.buttonLabel"),
133
136
  disabled: isUploading,
134
137
  onClick: ()=>{
135
138
  inputRef.current?.click();
136
139
  },
137
140
  type: "button",
138
141
  variant: "outline"
139
- }, isUploading ? /*#__PURE__*/ __rspack_external_react.createElement(UploadSpinner, null) : null, /*#__PURE__*/ __rspack_external_react.createElement("span", null, isUploading ? "Uploading…" : "Upload asset")), /*#__PURE__*/ __rspack_external_react.createElement("p", {
142
+ }, isUploading ? /*#__PURE__*/ __rspack_external_react.createElement(UploadSpinner, null) : null, /*#__PURE__*/ __rspack_external_react.createElement("span", null, isUploading ? msg("assetManager.upload.progress") : msg("assetManager.upload.button"))), /*#__PURE__*/ __rspack_external_react.createElement("p", {
140
143
  "aria-live": "polite",
141
144
  role: "status"
142
145
  }, statusMessage));
package/dist/ui/index.cjs CHANGED
@@ -31,6 +31,7 @@ __webpack_require__.d(__webpack_exports__, {
31
31
  ASSET_DRAG_MIME: ()=>external_FolderTree_cjs_namespaceObject.ASSET_DRAG_MIME,
32
32
  AssetBrowser: ()=>external_AssetBrowser_cjs_namespaceObject.AssetBrowser,
33
33
  AssetCommandPalette: ()=>external_AssetCommandPalette_cjs_namespaceObject.AssetCommandPalette,
34
+ AssetManagerI18nProvider: ()=>provider_cjs_namespaceObject.AssetManagerI18nProvider,
34
35
  AssetManagerUI: ()=>external_AssetManagerUI_cjs_namespaceObject.AssetManagerUI,
35
36
  CreateFolderDialog: ()=>external_FolderNameDialog_cjs_namespaceObject.FolderNameDialog,
36
37
  DeleteAssetDialog: ()=>external_DeleteAssetDialog_cjs_namespaceObject.DeleteAssetDialog,
@@ -46,6 +47,7 @@ __webpack_require__.d(__webpack_exports__, {
46
47
  UnsplashPanel: ()=>external_UnsplashPanel_cjs_namespaceObject.UnsplashPanel,
47
48
  UploadButton: ()=>external_UploadButton_cjs_namespaceObject.UploadButton
48
49
  });
50
+ const provider_cjs_namespaceObject = require("../i18n/provider.cjs");
49
51
  const external_AssetBrowser_cjs_namespaceObject = require("./AssetBrowser.cjs");
50
52
  const external_AssetCommandPalette_cjs_namespaceObject = require("./AssetCommandPalette.cjs");
51
53
  const external_AssetManagerUI_cjs_namespaceObject = require("./AssetManagerUI.cjs");
@@ -63,6 +65,7 @@ const external_UploadButton_cjs_namespaceObject = require("./UploadButton.cjs");
63
65
  exports.ASSET_DRAG_MIME = __webpack_exports__.ASSET_DRAG_MIME;
64
66
  exports.AssetBrowser = __webpack_exports__.AssetBrowser;
65
67
  exports.AssetCommandPalette = __webpack_exports__.AssetCommandPalette;
68
+ exports.AssetManagerI18nProvider = __webpack_exports__.AssetManagerI18nProvider;
66
69
  exports.AssetManagerUI = __webpack_exports__.AssetManagerUI;
67
70
  exports.CreateFolderDialog = __webpack_exports__.CreateFolderDialog;
68
71
  exports.DeleteAssetDialog = __webpack_exports__.DeleteAssetDialog;
@@ -81,6 +84,7 @@ for(var __rspack_i in __webpack_exports__)if (-1 === [
81
84
  "ASSET_DRAG_MIME",
82
85
  "AssetBrowser",
83
86
  "AssetCommandPalette",
87
+ "AssetManagerI18nProvider",
84
88
  "AssetManagerUI",
85
89
  "CreateFolderDialog",
86
90
  "DeleteAssetDialog",
@@ -1,3 +1,4 @@
1
+ export { AssetManagerI18nProvider } from "../i18n/provider.js";
1
2
  export type { AssetBrowserProps } from "./AssetBrowser.js";
2
3
  export { AssetBrowser } from "./AssetBrowser.js";
3
4
  export type { AssetCommandPaletteProps } from "./AssetCommandPalette.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.cts","sourceRoot":"","sources":["../../src/ui/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAC3D,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,YAAY,EAAE,wBAAwB,EAAE,MAAM,0BAA0B,CAAC;AACzE,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,YAAY,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC/D,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,YAAY,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AACrE,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAE3D,YAAY,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AACvE,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,YAAY,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AACnE,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,YAAY,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AACnE,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,YAAY,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAEnE,OAAO,EACN,gBAAgB,EAChB,gBAAgB,IAAI,kBAAkB,EACtC,gBAAgB,IAAI,kBAAkB,GACtC,MAAM,uBAAuB,CAAC;AAC/B,YAAY,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC9D,YAAY,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAC7D,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,YAAY,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AACnE,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,YAAY,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AACvE,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAE7D,YAAY,EACX,kBAAkB,EAClB,mBAAmB,EACnB,cAAc,GACd,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,YAAY,EACX,iBAAiB,EACjB,sBAAsB,GACtB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC"}
1
+ {"version":3,"file":"index.d.cts","sourceRoot":"","sources":["../../src/ui/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,wBAAwB,EAAE,MAAM,qBAAqB,CAAC;AAC/D,YAAY,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAC3D,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,YAAY,EAAE,wBAAwB,EAAE,MAAM,0BAA0B,CAAC;AACzE,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,YAAY,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC/D,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,YAAY,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AACrE,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAE3D,YAAY,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AACvE,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,YAAY,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AACnE,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,YAAY,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AACnE,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,YAAY,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAEnE,OAAO,EACN,gBAAgB,EAChB,gBAAgB,IAAI,kBAAkB,EACtC,gBAAgB,IAAI,kBAAkB,GACtC,MAAM,uBAAuB,CAAC;AAC/B,YAAY,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC9D,YAAY,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAC7D,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,YAAY,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AACnE,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,YAAY,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AACvE,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAE7D,YAAY,EACX,kBAAkB,EAClB,mBAAmB,EACnB,cAAc,GACd,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,YAAY,EACX,iBAAiB,EACjB,sBAAsB,GACtB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC"}
@@ -1,3 +1,4 @@
1
+ export { AssetManagerI18nProvider } from "../i18n/provider.js";
1
2
  export type { AssetBrowserProps } from "./AssetBrowser.js";
2
3
  export { AssetBrowser } from "./AssetBrowser.js";
3
4
  export type { AssetCommandPaletteProps } from "./AssetCommandPalette.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/ui/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAC3D,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,YAAY,EAAE,wBAAwB,EAAE,MAAM,0BAA0B,CAAC;AACzE,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,YAAY,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC/D,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,YAAY,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AACrE,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAE3D,YAAY,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AACvE,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,YAAY,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AACnE,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,YAAY,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AACnE,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,YAAY,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAEnE,OAAO,EACN,gBAAgB,EAChB,gBAAgB,IAAI,kBAAkB,EACtC,gBAAgB,IAAI,kBAAkB,GACtC,MAAM,uBAAuB,CAAC;AAC/B,YAAY,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC9D,YAAY,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAC7D,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,YAAY,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AACnE,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,YAAY,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AACvE,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAE7D,YAAY,EACX,kBAAkB,EAClB,mBAAmB,EACnB,cAAc,GACd,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,YAAY,EACX,iBAAiB,EACjB,sBAAsB,GACtB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/ui/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,wBAAwB,EAAE,MAAM,qBAAqB,CAAC;AAC/D,YAAY,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAC3D,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,YAAY,EAAE,wBAAwB,EAAE,MAAM,0BAA0B,CAAC;AACzE,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,YAAY,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC/D,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,YAAY,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AACrE,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAE3D,YAAY,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AACvE,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,YAAY,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AACnE,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,YAAY,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AACnE,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,YAAY,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAEnE,OAAO,EACN,gBAAgB,EAChB,gBAAgB,IAAI,kBAAkB,EACtC,gBAAgB,IAAI,kBAAkB,GACtC,MAAM,uBAAuB,CAAC;AAC/B,YAAY,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC9D,YAAY,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAC7D,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,YAAY,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AACnE,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,YAAY,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AACvE,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAE7D,YAAY,EACX,kBAAkB,EAClB,mBAAmB,EACnB,cAAc,GACd,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,YAAY,EACX,iBAAiB,EACjB,sBAAsB,GACtB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC"}
package/dist/ui/index.js CHANGED
@@ -1,3 +1,4 @@
1
+ export { AssetManagerI18nProvider } from "../i18n/provider.js";
1
2
  export { AssetBrowser } from "./AssetBrowser.js";
2
3
  export { AssetCommandPalette } from "./AssetCommandPalette.js";
3
4
  export { AssetManagerUI } from "./AssetManagerUI.js";
@@ -35,6 +35,11 @@ const folders_cjs_namespaceObject = require("../types/folders.cjs");
35
35
  const external_errors_cjs_namespaceObject = require("./errors.cjs");
36
36
  const external_folders_cjs_namespaceObject = require("./folders.cjs");
37
37
  const external_registry_cjs_namespaceObject = require("./registry.cjs");
38
+ function collectSubtreeAssetIds(folders, root) {
39
+ const out = [];
40
+ for (const fid of folders.subtreeIds(root))out.push(...folders.directAssetIds(fid));
41
+ return out;
42
+ }
38
43
  function makeAbortError() {
39
44
  if ("u" > typeof DOMException) return new DOMException("Operation aborted", "AbortError");
40
45
  const error = new Error("Operation aborted");
@@ -63,12 +68,20 @@ function createInMemoryDataSource(options) {
63
68
  if (void 0 === query.folderId) return Promise.resolve(buildPage(registry.search(query), query));
64
69
  const target = (0, folders_cjs_namespaceObject.resolveFolderId)(query.folderId);
65
70
  const recursive = true === query.recursive;
66
- const subtree = recursive && null !== target ? folders.subtreeIds(target) : void 0;
67
- const matches = registry.list().filter((entry)=>{
68
- const owner = folders.folderOf(entry.id);
69
- const folderOk = recursive ? null === target ? true : null !== owner && subtree?.has(owner) === true : owner === target;
70
- return folderOk && (0, external_registry_cjs_namespaceObject.assetMatchesSearch)(entry, query);
71
+ const matchesFilter = (0, external_registry_cjs_namespaceObject.prepareAssetMatcher)(query);
72
+ let matches;
73
+ if (null === target) matches = registry.list().filter((entry)=>{
74
+ const folderOk = recursive || null === folders.folderOf(entry.id);
75
+ return folderOk && matchesFilter(entry);
71
76
  });
77
+ else {
78
+ const ids = recursive ? collectSubtreeAssetIds(folders, target) : folders.directAssetIds(target);
79
+ matches = [];
80
+ for (const id of ids){
81
+ const entry = registry.get(id);
82
+ if (void 0 !== entry && matchesFilter(entry)) matches.push(entry);
83
+ }
84
+ }
72
85
  return Promise.resolve(buildPage((0, external_registry_cjs_namespaceObject.paginateMatches)(matches, query), query));
73
86
  },
74
87
  remove (id) {
@@ -1 +1 @@
1
- {"version":3,"file":"data-source.d.cts","sourceRoot":"","sources":["../../src/utils/data-source.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"data-source.d.cts","sourceRoot":"","sources":["../../src/utils/data-source.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"data-source.d.ts","sourceRoot":"","sources":["../../src/utils/data-source.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EACX,eAAe,EACf,iBAAiB,EACjB,cAAc,EACd,MAAM,yBAAyB,CAAC;AACjC,OAAO,KAAK,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACrE,OAAO,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAEjE,OAAO,KAAK,EACX,aAAa,EAEb,YAAY,EACZ,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EAAqB,KAAK,WAAW,EAAE,MAAM,cAAc,CAAC;AAGnE;;;GAGG;AACH,MAAM,MAAM,QAAQ,GAAG,CACtB,IAAI,EAAE,IAAI,EACV,OAAO,CAAC,EAAE;IAAE,QAAQ,CAAC,MAAM,CAAC,EAAE,WAAW,CAAA;CAAE,KACvC,OAAO,CAAC,YAAY,CAAC,CAAC;AAE3B,mFAAmF;AACnF,MAAM,WAAW,uBAAuB;IACvC,IAAI,CAAC,KAAK,EAAE,WAAW,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;IACvE,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACxD,OAAO,CACN,EAAE,EAAE,MAAM,EACV,OAAO,EAAE,cAAc,EACvB,MAAM,CAAC,EAAE,WAAW,GAClB,OAAO,CAAC,YAAY,CAAC,CAAC;IACzB,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;IAC9E,IAAI,CACH,EAAE,EAAE,MAAM,EACV,QAAQ,EAAE,QAAQ,GAAG,IAAI,EACzB,MAAM,CAAC,EAAE,WAAW,GAClB,OAAO,CAAC,IAAI,CAAC,CAAC;IACjB,YAAY,CACX,QAAQ,EAAE,QAAQ,GAAG,IAAI,EACzB,IAAI,EAAE,MAAM,EACZ,MAAM,CAAC,EAAE,WAAW,GAClB,OAAO,CAAC,WAAW,CAAC,CAAC;IACxB,YAAY,CACX,EAAE,EAAE,QAAQ,EACZ,IAAI,EAAE,MAAM,EACZ,MAAM,CAAC,EAAE,WAAW,GAClB,OAAO,CAAC,WAAW,CAAC,CAAC;IACxB,YAAY,CACX,EAAE,EAAE,QAAQ,EACZ,IAAI,CAAC,EAAE;QAAE,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAA;KAAE,EACrC,MAAM,CAAC,EAAE,WAAW,GAClB,OAAO,CAAC,IAAI,CAAC,CAAC;IACjB,UAAU,CACT,EAAE,EAAE,QAAQ,EACZ,QAAQ,EAAE,QAAQ,GAAG,IAAI,EACzB,MAAM,CAAC,EAAE,WAAW,GAClB,OAAO,CAAC,WAAW,CAAC,CAAC;IACxB,oEAAoE;IACpE,SAAS,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC;IAC5C,eAAe,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,iBAAiB,KAAK,IAAI,GAAG,MAAM,IAAI,CAAC;IAC3E,+DAA+D;IAC/D,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAC;CAC9B;AAED,MAAM,WAAW,+BAA+B;IAC/C,QAAQ,CAAC,QAAQ,EAAE,aAAa,CAAC;IACjC,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC;IAC1B,iFAAiF;IACjF,QAAQ,CAAC,WAAW,CAAC,EAAE,WAAW,CAAC;IACnC,8CAA8C;IAC9C,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;CAC3B;AAWD,wBAAgB,wBAAwB,CACvC,OAAO,EAAE,+BAA+B,GACtC,uBAAuB,CAiHzB;AAiBD,MAAM,WAAW,sBAChB,SAAQ,+BAA+B;IACvC,8EAA8E;IAC9E,QAAQ,CAAC,cAAc,CAAC,EAAE,eAAe,CAAC;IAC1C,kDAAkD;IAClD,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;CAC1C;AAED;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAChC,KAAK,EAAE,sBAAsB,GAC3B,uBAAuB,CA0CzB"}
1
+ {"version":3,"file":"data-source.d.ts","sourceRoot":"","sources":["../../src/utils/data-source.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,12 @@
1
1
  import { resolveFolderId } from "../types/folders.js";
2
2
  import { AssetSourceError } from "./errors.js";
3
3
  import { createFolderStore } from "./folders.js";
4
- import { assetMatchesSearch, paginateMatches } from "./registry.js";
4
+ import { paginateMatches, prepareAssetMatcher } from "./registry.js";
5
+ function collectSubtreeAssetIds(folders, root) {
6
+ const out = [];
7
+ for (const fid of folders.subtreeIds(root))out.push(...folders.directAssetIds(fid));
8
+ return out;
9
+ }
5
10
  function makeAbortError() {
6
11
  if ("u" > typeof DOMException) return new DOMException("Operation aborted", "AbortError");
7
12
  const error = new Error("Operation aborted");
@@ -30,12 +35,20 @@ function createInMemoryDataSource(options) {
30
35
  if (void 0 === query.folderId) return Promise.resolve(buildPage(registry.search(query), query));
31
36
  const target = resolveFolderId(query.folderId);
32
37
  const recursive = true === query.recursive;
33
- const subtree = recursive && null !== target ? folders.subtreeIds(target) : void 0;
34
- const matches = registry.list().filter((entry)=>{
35
- const owner = folders.folderOf(entry.id);
36
- const folderOk = recursive ? null === target ? true : null !== owner && subtree?.has(owner) === true : owner === target;
37
- return folderOk && assetMatchesSearch(entry, query);
38
+ const matchesFilter = prepareAssetMatcher(query);
39
+ let matches;
40
+ if (null === target) matches = registry.list().filter((entry)=>{
41
+ const folderOk = recursive || null === folders.folderOf(entry.id);
42
+ return folderOk && matchesFilter(entry);
38
43
  });
44
+ else {
45
+ const ids = recursive ? collectSubtreeAssetIds(folders, target) : folders.directAssetIds(target);
46
+ matches = [];
47
+ for (const id of ids){
48
+ const entry = registry.get(id);
49
+ if (void 0 !== entry && matchesFilter(entry)) matches.push(entry);
50
+ }
51
+ }
39
52
  return Promise.resolve(buildPage(paginateMatches(matches, query), query));
40
53
  },
41
54
  remove (id) {