@scaleflex/asset-picker 0.1.0

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 (180) hide show
  1. package/CHANGELOG.md +53 -0
  2. package/LICENSE +50 -0
  3. package/README.md +702 -0
  4. package/dist/asset-picker-BA876lMW.js +11444 -0
  5. package/dist/asset-picker-BbEOZw7O.cjs +5865 -0
  6. package/dist/asset-picker.d.ts +77 -0
  7. package/dist/asset-picker.d.ts.map +1 -0
  8. package/dist/components/filters/ap-filter-approval.d.ts +43 -0
  9. package/dist/components/filters/ap-filter-approval.d.ts.map +1 -0
  10. package/dist/components/filters/ap-filter-color.d.ts +31 -0
  11. package/dist/components/filters/ap-filter-color.d.ts.map +1 -0
  12. package/dist/components/filters/ap-filter-date.d.ts +32 -0
  13. package/dist/components/filters/ap-filter-date.d.ts.map +1 -0
  14. package/dist/components/filters/ap-filter-image.d.ts +21 -0
  15. package/dist/components/filters/ap-filter-image.d.ts.map +1 -0
  16. package/dist/components/filters/ap-filter-labels.d.ts +26 -0
  17. package/dist/components/filters/ap-filter-labels.d.ts.map +1 -0
  18. package/dist/components/filters/ap-filter-metadata.d.ts +93 -0
  19. package/dist/components/filters/ap-filter-metadata.d.ts.map +1 -0
  20. package/dist/components/filters/ap-filter-popover.d.ts +13 -0
  21. package/dist/components/filters/ap-filter-popover.d.ts.map +1 -0
  22. package/dist/components/filters/ap-filter-product-ref.d.ts +38 -0
  23. package/dist/components/filters/ap-filter-product-ref.d.ts.map +1 -0
  24. package/dist/components/filters/ap-filter-size.d.ts +24 -0
  25. package/dist/components/filters/ap-filter-size.d.ts.map +1 -0
  26. package/dist/components/filters/ap-filter-tags.d.ts +31 -0
  27. package/dist/components/filters/ap-filter-tags.d.ts.map +1 -0
  28. package/dist/components/filters/ap-filter-type.d.ts +13 -0
  29. package/dist/components/filters/ap-filter-type.d.ts.map +1 -0
  30. package/dist/components/filters/ap-filters-bar.d.ts +40 -0
  31. package/dist/components/filters/ap-filters-bar.d.ts.map +1 -0
  32. package/dist/components/filters/filters.constants.d.ts +189 -0
  33. package/dist/components/filters/filters.constants.d.ts.map +1 -0
  34. package/dist/components/filters/shared/filter-styles.d.ts +10 -0
  35. package/dist/components/filters/shared/filter-styles.d.ts.map +1 -0
  36. package/dist/components/header/ap-header.d.ts +30 -0
  37. package/dist/components/header/ap-header.d.ts.map +1 -0
  38. package/dist/components/header/ap-regional-settings.d.ts +19 -0
  39. package/dist/components/header/ap-regional-settings.d.ts.map +1 -0
  40. package/dist/components/modal/ap-modal.d.ts +17 -0
  41. package/dist/components/modal/ap-modal.d.ts.map +1 -0
  42. package/dist/components/navigation/ap-breadcrumb.d.ts +14 -0
  43. package/dist/components/navigation/ap-breadcrumb.d.ts.map +1 -0
  44. package/dist/components/preview/ap-preview-panel.d.ts +80 -0
  45. package/dist/components/preview/ap-preview-panel.d.ts.map +1 -0
  46. package/dist/components/selection/ap-marquee-overlay.d.ts +14 -0
  47. package/dist/components/selection/ap-marquee-overlay.d.ts.map +1 -0
  48. package/dist/components/selection/ap-selection-bar.d.ts +21 -0
  49. package/dist/components/selection/ap-selection-bar.d.ts.map +1 -0
  50. package/dist/components/shared/ap-badge.d.ts +12 -0
  51. package/dist/components/shared/ap-badge.d.ts.map +1 -0
  52. package/dist/components/shared/ap-checkbox.d.ts +17 -0
  53. package/dist/components/shared/ap-checkbox.d.ts.map +1 -0
  54. package/dist/components/shared/ap-dropdown.d.ts +37 -0
  55. package/dist/components/shared/ap-dropdown.d.ts.map +1 -0
  56. package/dist/components/shared/ap-icon.d.ts +13 -0
  57. package/dist/components/shared/ap-icon.d.ts.map +1 -0
  58. package/dist/components/shared/ap-popover.d.ts +15 -0
  59. package/dist/components/shared/ap-popover.d.ts.map +1 -0
  60. package/dist/components/shared/ap-radio-group.d.ts +30 -0
  61. package/dist/components/shared/ap-radio-group.d.ts.map +1 -0
  62. package/dist/components/shared/ap-spinner.d.ts +12 -0
  63. package/dist/components/shared/ap-spinner.d.ts.map +1 -0
  64. package/dist/components/shared/ap-tooltip.d.ts +12 -0
  65. package/dist/components/shared/ap-tooltip.d.ts.map +1 -0
  66. package/dist/components/toolbar/ap-content-toolbar.d.ts +64 -0
  67. package/dist/components/toolbar/ap-content-toolbar.d.ts.map +1 -0
  68. package/dist/components/toolbar/sort.constants.d.ts +9 -0
  69. package/dist/components/toolbar/sort.constants.d.ts.map +1 -0
  70. package/dist/components/views/ap-asset-card.d.ts +20 -0
  71. package/dist/components/views/ap-asset-card.d.ts.map +1 -0
  72. package/dist/components/views/ap-asset-row.d.ts +18 -0
  73. package/dist/components/views/ap-asset-row.d.ts.map +1 -0
  74. package/dist/components/views/ap-folder-card.d.ts +27 -0
  75. package/dist/components/views/ap-folder-card.d.ts.map +1 -0
  76. package/dist/components/views/ap-folder-row.d.ts +14 -0
  77. package/dist/components/views/ap-folder-row.d.ts.map +1 -0
  78. package/dist/components/views/ap-grid-view.d.ts +25 -0
  79. package/dist/components/views/ap-grid-view.d.ts.map +1 -0
  80. package/dist/components/views/ap-list-view.d.ts +22 -0
  81. package/dist/components/views/ap-list-view.d.ts.map +1 -0
  82. package/dist/components/views/ap-skeleton.d.ts +12 -0
  83. package/dist/components/views/ap-skeleton.d.ts.map +1 -0
  84. package/dist/controllers/infinite-scroll.controller.d.ts +13 -0
  85. package/dist/controllers/infinite-scroll.controller.d.ts.map +1 -0
  86. package/dist/controllers/keyboard.controller.d.ts +10 -0
  87. package/dist/controllers/keyboard.controller.d.ts.map +1 -0
  88. package/dist/controllers/marquee.controller.d.ts +43 -0
  89. package/dist/controllers/marquee.controller.d.ts.map +1 -0
  90. package/dist/controllers/selection.controller.d.ts +19 -0
  91. package/dist/controllers/selection.controller.d.ts.map +1 -0
  92. package/dist/controllers/store.controller.d.ts +14 -0
  93. package/dist/controllers/store.controller.d.ts.map +1 -0
  94. package/dist/define.cjs +1 -0
  95. package/dist/define.d.ts +2 -0
  96. package/dist/define.d.ts.map +1 -0
  97. package/dist/define.js +2 -0
  98. package/dist/hls.light-C3NKRmfw.cjs +27 -0
  99. package/dist/hls.light-DxDlt6yF.js +14441 -0
  100. package/dist/index.cjs +1 -0
  101. package/dist/index.d.ts +8 -0
  102. package/dist/index.d.ts.map +1 -0
  103. package/dist/index.js +4 -0
  104. package/dist/react.cjs +1 -0
  105. package/dist/react.d.ts +17 -0
  106. package/dist/react.d.ts.map +1 -0
  107. package/dist/react.js +46 -0
  108. package/dist/services/api-client.d.ts +12 -0
  109. package/dist/services/api-client.d.ts.map +1 -0
  110. package/dist/services/auth.service.d.ts +3 -0
  111. package/dist/services/auth.service.d.ts.map +1 -0
  112. package/dist/services/files.service.d.ts +21 -0
  113. package/dist/services/files.service.d.ts.map +1 -0
  114. package/dist/services/filters.service.d.ts +13 -0
  115. package/dist/services/filters.service.d.ts.map +1 -0
  116. package/dist/services/folders.service.d.ts +26 -0
  117. package/dist/services/folders.service.d.ts.map +1 -0
  118. package/dist/services/labels.service.d.ts +4 -0
  119. package/dist/services/labels.service.d.ts.map +1 -0
  120. package/dist/services/settings.service.d.ts +4 -0
  121. package/dist/services/settings.service.d.ts.map +1 -0
  122. package/dist/services/tags.service.d.ts +4 -0
  123. package/dist/services/tags.service.d.ts.map +1 -0
  124. package/dist/store/index.d.ts +6 -0
  125. package/dist/store/index.d.ts.map +1 -0
  126. package/dist/store/store.d.ts +14 -0
  127. package/dist/store/store.d.ts.map +1 -0
  128. package/dist/store/store.types.d.ts +49 -0
  129. package/dist/store/store.types.d.ts.map +1 -0
  130. package/dist/styles/shared-styles.d.ts +4 -0
  131. package/dist/styles/shared-styles.d.ts.map +1 -0
  132. package/dist/types/api.types.d.ts +82 -0
  133. package/dist/types/api.types.d.ts.map +1 -0
  134. package/dist/types/asset.types.d.ts +77 -0
  135. package/dist/types/asset.types.d.ts.map +1 -0
  136. package/dist/types/config.types.d.ts +51 -0
  137. package/dist/types/config.types.d.ts.map +1 -0
  138. package/dist/types/events.types.d.ts +23 -0
  139. package/dist/types/events.types.d.ts.map +1 -0
  140. package/dist/types/filter.types.d.ts +190 -0
  141. package/dist/types/filter.types.d.ts.map +1 -0
  142. package/dist/types/folder.types.d.ts +27 -0
  143. package/dist/types/folder.types.d.ts.map +1 -0
  144. package/dist/types/index.d.ts +8 -0
  145. package/dist/types/index.d.ts.map +1 -0
  146. package/dist/types/label.types.d.ts +9 -0
  147. package/dist/types/label.types.d.ts.map +1 -0
  148. package/dist/types/tag.types.d.ts +13 -0
  149. package/dist/types/tag.types.d.ts.map +1 -0
  150. package/dist/utils/brand-color.d.ts +12 -0
  151. package/dist/utils/brand-color.d.ts.map +1 -0
  152. package/dist/utils/css-helpers.d.ts +2 -0
  153. package/dist/utils/css-helpers.d.ts.map +1 -0
  154. package/dist/utils/debounce.d.ts +4 -0
  155. package/dist/utils/debounce.d.ts.map +1 -0
  156. package/dist/utils/file-type.d.ts +25 -0
  157. package/dist/utils/file-type.d.ts.map +1 -0
  158. package/dist/utils/filter-date.d.ts +9 -0
  159. package/dist/utils/filter-date.d.ts.map +1 -0
  160. package/dist/utils/filter-normalize.d.ts +7 -0
  161. package/dist/utils/filter-normalize.d.ts.map +1 -0
  162. package/dist/utils/filter-pin-storage.d.ts +8 -0
  163. package/dist/utils/filter-pin-storage.d.ts.map +1 -0
  164. package/dist/utils/filter-serialize.d.ts +3 -0
  165. package/dist/utils/filter-serialize.d.ts.map +1 -0
  166. package/dist/utils/filter-url.d.ts +8 -0
  167. package/dist/utils/filter-url.d.ts.map +1 -0
  168. package/dist/utils/filter-validate.d.ts +3 -0
  169. package/dist/utils/filter-validate.d.ts.map +1 -0
  170. package/dist/utils/format.d.ts +5 -0
  171. package/dist/utils/format.d.ts.map +1 -0
  172. package/dist/utils/preference-storage.d.ts +6 -0
  173. package/dist/utils/preference-storage.d.ts.map +1 -0
  174. package/dist/utils/sort-storage.d.ts +7 -0
  175. package/dist/utils/sort-storage.d.ts.map +1 -0
  176. package/dist/utils/thumbnail.d.ts +27 -0
  177. package/dist/utils/thumbnail.d.ts.map +1 -0
  178. package/dist/utils/video.d.ts +7 -0
  179. package/dist/utils/video.d.ts.map +1 -0
  180. package/package.json +67 -0
package/dist/index.cjs ADDED
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./asset-picker-BbEOZw7O.cjs");exports.AssetPicker=e.AssetPicker;
@@ -0,0 +1,8 @@
1
+ export { AssetPicker } from './asset-picker';
2
+ export type { AssetPickerConfig, AuthConfig, SessionAuth, SecurityTemplateAuth, ViewMode, SortBy, SortDirection, TabKey } from './types/config.types';
3
+ export type { Asset, AssetType, AssetInfo, AssetMeta } from './types/asset.types';
4
+ export type { Folder } from './types/folder.types';
5
+ export type { Label } from './types/label.types';
6
+ export type { FilterKey, FilterOperator, FilterLogic, AnyFilterKey, AnyFilter, StringFilter, DateFilter, FiltersState, MetadataFieldType, MetadataModelField, FiltersConfig } from './types/filter.types';
7
+ export type { AssetPickerSelectDetail, AssetPickerCancelDetail } from './types/events.types';
8
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,YAAY,EAAE,iBAAiB,EAAE,UAAU,EAAE,WAAW,EAAE,oBAAoB,EAAE,QAAQ,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AACtJ,YAAY,EAAE,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAClF,YAAY,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AACnD,YAAY,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AACjD,YAAY,EAAE,SAAS,EAAE,cAAc,EAAE,WAAW,EAAE,YAAY,EAAE,SAAS,EAAE,YAAY,EAAE,UAAU,EAAE,YAAY,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAC1M,YAAY,EAAE,uBAAuB,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,4 @@
1
+ import { A as s } from "./asset-picker-BA876lMW.js";
2
+ export {
3
+ s as AssetPicker
4
+ };
package/dist/react.cjs ADDED
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("react");typeof customElements<"u"&&Promise.resolve().then(()=>require("./define.cjs"));const L=t.forwardRef(function({config:i,open:u,onSelect:o,onCancel:f,className:E,style:p},v){const r=t.useRef(null),s=t.useRef(o),n=t.useRef(f);return t.useLayoutEffect(()=>{s.current=o,n.current=f}),t.useImperativeHandle(v,()=>({open(){var e;(e=r.current)==null||e.open()},close(){var e;(e=r.current)==null||e.close()}})),t.useLayoutEffect(()=>{const e=r.current;e&&(e.config=i)},[i]),t.useEffect(()=>{const e=r.current;e&&(u===!0?e.open():u===!1&&e.close())},[u]),t.useEffect(()=>{const e=r.current;if(!e)return;const l=c=>{var d;const m=c.detail;(d=s.current)==null||d.call(s,m.assets)},a=()=>{var c;(c=n.current)==null||c.call(n)};return e.addEventListener("ap-select",l),e.addEventListener("ap-cancel",a),()=>{e.removeEventListener("ap-select",l),e.removeEventListener("ap-cancel",a)}},[]),t.createElement("asset-picker",{ref:r,className:E,style:p})});exports.AssetPicker=L;
@@ -0,0 +1,17 @@
1
+ import { CSSProperties } from 'react';
2
+ import { AssetPickerConfig } from './types/config.types';
3
+ import { Asset } from './types/asset.types';
4
+ export interface AssetPickerRef {
5
+ open(): void;
6
+ close(): void;
7
+ }
8
+ export interface AssetPickerProps {
9
+ config: AssetPickerConfig;
10
+ open?: boolean;
11
+ onSelect?: (assets: Asset[]) => void;
12
+ onCancel?: () => void;
13
+ className?: string;
14
+ style?: CSSProperties;
15
+ }
16
+ export declare const AssetPicker: import('react').ForwardRefExoticComponent<AssetPickerProps & import('react').RefAttributes<AssetPickerRef>>;
17
+ //# sourceMappingURL=react.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"react.d.ts","sourceRoot":"","sources":["../src/react.ts"],"names":[],"mappings":"AAAA,OAAO,EAML,KAAK,aAAa,EACnB,MAAM,OAAO,CAAC;AAEf,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAQjD,MAAM,WAAW,cAAc;IAC7B,IAAI,IAAI,IAAI,CAAC;IACb,KAAK,IAAI,IAAI,CAAC;CACf;AAED,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,iBAAiB,CAAC;IAC1B,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,KAAK,EAAE,KAAK,IAAI,CAAC;IACrC,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,aAAa,CAAC;CACvB;AAED,eAAO,MAAM,WAAW,6GAoEvB,CAAC"}
package/dist/react.js ADDED
@@ -0,0 +1,46 @@
1
+ import { forwardRef as h, useRef as u, useLayoutEffect as p, useImperativeHandle as y, useEffect as m, createElement as A } from "react";
2
+ typeof customElements < "u" && import("./define.js");
3
+ const x = h(
4
+ function({ config: o, open: c, onSelect: i, onCancel: l, className: E, style: v }, L) {
5
+ const t = u(null), r = u(i), n = u(l);
6
+ return p(() => {
7
+ r.current = i, n.current = l;
8
+ }), y(L, () => ({
9
+ open() {
10
+ var e;
11
+ (e = t.current) == null || e.open();
12
+ },
13
+ close() {
14
+ var e;
15
+ (e = t.current) == null || e.close();
16
+ }
17
+ })), p(() => {
18
+ const e = t.current;
19
+ e && (e.config = o);
20
+ }, [o]), m(() => {
21
+ const e = t.current;
22
+ e && (c === !0 ? e.open() : c === !1 && e.close());
23
+ }, [c]), m(() => {
24
+ const e = t.current;
25
+ if (!e) return;
26
+ const a = (s) => {
27
+ var d;
28
+ const k = s.detail;
29
+ (d = r.current) == null || d.call(r, k.assets);
30
+ }, f = () => {
31
+ var s;
32
+ (s = n.current) == null || s.call(n);
33
+ };
34
+ return e.addEventListener("ap-select", a), e.addEventListener("ap-cancel", f), () => {
35
+ e.removeEventListener("ap-select", a), e.removeEventListener("ap-cancel", f);
36
+ };
37
+ }, []), A("asset-picker", {
38
+ ref: t,
39
+ className: E,
40
+ style: v
41
+ });
42
+ }
43
+ );
44
+ export {
45
+ x as AssetPicker
46
+ };
@@ -0,0 +1,12 @@
1
+ import { AuthConfig } from '../types/config.types';
2
+ export declare class ApiClient {
3
+ private baseUrl;
4
+ private auth;
5
+ private sassKey?;
6
+ constructor(auth: AuthConfig, apiBase?: string);
7
+ setSassKey(key: string): void;
8
+ getSecurityTemplateKey(): string | undefined;
9
+ request<T>(path: string, params?: Record<string, unknown>): Promise<T>;
10
+ post<T>(path: string, body: unknown): Promise<T>;
11
+ }
12
+ //# sourceMappingURL=api-client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api-client.d.ts","sourceRoot":"","sources":["../../src/services/api-client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAqC,MAAM,uBAAuB,CAAC;AAE3F,qBAAa,SAAS;IACpB,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,IAAI,CAAa;IACzB,OAAO,CAAC,OAAO,CAAC,CAAS;gBAEb,IAAI,EAAE,UAAU,EAAE,OAAO,CAAC,EAAE,MAAM;IAM9C,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAI7B,sBAAsB,IAAI,MAAM,GAAG,SAAS;IAOtC,OAAO,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;IA6DtE,IAAI,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC;CAyDvD"}
@@ -0,0 +1,3 @@
1
+ import { ApiClient } from './api-client';
2
+ export declare function exchangeSassKey(client: ApiClient): Promise<string>;
3
+ //# sourceMappingURL=auth.service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth.service.d.ts","sourceRoot":"","sources":["../../src/services/auth.service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAG9C,wBAAsB,eAAe,CAAC,MAAM,EAAE,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC,CAKxE"}
@@ -0,0 +1,21 @@
1
+ import { ApiClient } from './api-client';
2
+ import { GetFilesParams, GetFilesResponse } from '../types/api.types';
3
+ export declare function getFiles(client: ApiClient, params: GetFilesParams): Promise<GetFilesResponse>;
4
+ export interface GetFilesStatsResponse {
5
+ status: string;
6
+ stats?: {
7
+ approx_files_count?: number;
8
+ approx_files_size?: number;
9
+ };
10
+ info?: {
11
+ total_files_count?: number;
12
+ total_files_size?: number;
13
+ };
14
+ }
15
+ export declare function getFilesStats(client: ApiClient, params: {
16
+ folder: string;
17
+ q?: string;
18
+ search?: string;
19
+ recursive?: number;
20
+ }): Promise<GetFilesStatsResponse>;
21
+ //# sourceMappingURL=files.service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"files.service.d.ts","sourceRoot":"","sources":["../../src/services/files.service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,KAAK,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAiC3E,wBAAsB,QAAQ,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,cAAc,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAGnG;AAED,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE;QACN,kBAAkB,CAAC,EAAE,MAAM,CAAC;QAC5B,iBAAiB,CAAC,EAAE,MAAM,CAAC;KAC5B,CAAC;IACF,IAAI,CAAC,EAAE;QACL,iBAAiB,CAAC,EAAE,MAAM,CAAC;QAC3B,gBAAgB,CAAC,EAAE,MAAM,CAAC;KAC3B,CAAC;CACH;AAED,wBAAsB,aAAa,CACjC,MAAM,EAAE,SAAS,EACjB,MAAM,EAAE;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,CAAC,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,GAC1E,OAAO,CAAC,qBAAqB,CAAC,CAUhC"}
@@ -0,0 +1,13 @@
1
+ import { ApiClient } from './api-client';
2
+ import { MetadataModelField, FilterFileType, RegionalVariantGroup, RegionalFilters } from '../types/filter.types';
3
+ export declare function getFilterValues(client: ApiClient, filterBy: string): Promise<string[]>;
4
+ export declare function getFilterConfig(client: ApiClient): Promise<FilterFileType[]>;
5
+ export interface MetadataSettingsResult {
6
+ fields: MetadataModelField[];
7
+ regionalVariantGroups: RegionalVariantGroup[];
8
+ regionalFilters: RegionalFilters;
9
+ brandColor?: string;
10
+ }
11
+ export declare function getMetadataFields(client: ApiClient): Promise<MetadataModelField[]>;
12
+ export declare function getMetadataSettings(client: ApiClient): Promise<MetadataSettingsResult>;
13
+ //# sourceMappingURL=filters.service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"filters.service.d.ts","sourceRoot":"","sources":["../../src/services/filters.service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAE9C,OAAO,KAAK,EAAE,kBAAkB,EAAyB,cAAc,EAAE,oBAAoB,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAG9I,wBAAsB,eAAe,CAAC,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAQ5F;AAED,wBAAsB,eAAe,CAAC,MAAM,EAAE,SAAS,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC,CASlF;AAED,MAAM,WAAW,sBAAsB;IACrC,MAAM,EAAE,kBAAkB,EAAE,CAAC;IAC7B,qBAAqB,EAAE,oBAAoB,EAAE,CAAC;IAC9C,eAAe,EAAE,eAAe,CAAC;IACjC,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,wBAAsB,iBAAiB,CAAC,MAAM,EAAE,SAAS,GAAG,OAAO,CAAC,kBAAkB,EAAE,CAAC,CAGxF;AAED,wBAAsB,mBAAmB,CAAC,MAAM,EAAE,SAAS,GAAG,OAAO,CAAC,sBAAsB,CAAC,CA8E5F"}
@@ -0,0 +1,26 @@
1
+ import { ApiClient } from './api-client';
2
+ import { GetFoldersResponse } from '../types/api.types';
3
+ import { Folder } from '../types/folder.types';
4
+ export interface GetFoldersParams {
5
+ folderPath?: string;
6
+ recursive?: number;
7
+ limit?: number;
8
+ offset?: number;
9
+ q?: string;
10
+ sort_by?: string;
11
+ sort_direction?: string;
12
+ }
13
+ export declare function getFolders(client: ApiClient, params?: GetFoldersParams): Promise<GetFoldersResponse>;
14
+ export declare function getFolder(client: ApiClient, uuid: string): Promise<Folder>;
15
+ export interface FolderPreview {
16
+ file_uuid: string;
17
+ file_uri_cdn: string;
18
+ file_type: string;
19
+ preview_origin: string;
20
+ }
21
+ export interface FolderPreviewsResponse {
22
+ status: string;
23
+ folders: Record<string, FolderPreview[]>;
24
+ }
25
+ export declare function getFoldersPreviews(client: ApiClient, folderUuids: string[]): Promise<Record<string, FolderPreview[]>>;
26
+ //# sourceMappingURL=folders.service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"folders.service.d.ts","sourceRoot":"","sources":["../../src/services/folders.service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAC7D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAEpD,MAAM,WAAW,gBAAgB;IAC/B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,CAAC,CAAC,EAAE,MAAM,CAAC;IACX,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,wBAAsB,UAAU,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAqB1G;AAED,wBAAsB,SAAS,CAAC,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAGhF;AAED,MAAM,WAAW,aAAa;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,sBAAsB;IACrC,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,EAAE,CAAC,CAAC;CAC1C;AAED,wBAAsB,kBAAkB,CACtC,MAAM,EAAE,SAAS,EACjB,WAAW,EAAE,MAAM,EAAE,GACpB,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,aAAa,EAAE,CAAC,CAAC,CAO1C"}
@@ -0,0 +1,4 @@
1
+ import { ApiClient } from './api-client';
2
+ import { GetLabelsResponse } from '../types/api.types';
3
+ export declare function getLabels(client: ApiClient): Promise<GetLabelsResponse>;
4
+ //# sourceMappingURL=labels.service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"labels.service.d.ts","sourceRoot":"","sources":["../../src/services/labels.service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAE5D,wBAAsB,SAAS,CAAC,MAAM,EAAE,SAAS,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAG7E"}
@@ -0,0 +1,4 @@
1
+ import { ApiClient } from './api-client';
2
+ import { GetSettingsResponse } from '../types/api.types';
3
+ export declare function getSettings(client: ApiClient): Promise<GetSettingsResponse>;
4
+ //# sourceMappingURL=settings.service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"settings.service.d.ts","sourceRoot":"","sources":["../../src/services/settings.service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAE9D,wBAAsB,WAAW,CAAC,MAAM,EAAE,SAAS,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAGjF"}
@@ -0,0 +1,4 @@
1
+ import { ApiClient } from './api-client';
2
+ import { TagWithLabel } from '../types/tag.types';
3
+ export declare function getTags(client: ApiClient): Promise<TagWithLabel[]>;
4
+ //# sourceMappingURL=tags.service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tags.service.d.ts","sourceRoot":"","sources":["../../src/services/tags.service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAE9C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAEvD,wBAAsB,OAAO,CAAC,MAAM,EAAE,SAAS,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,CAWxE"}
@@ -0,0 +1,6 @@
1
+ import { Store } from './store';
2
+ import { AppState } from './store.types';
3
+ export declare function createStore(): Store<AppState>;
4
+ export { Store } from './store';
5
+ export type { AppState } from './store.types';
6
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/store/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAE9C,wBAAgB,WAAW,IAAI,KAAK,CAAC,QAAQ,CAAC,CA8C7C;AAED,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,YAAY,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC"}
@@ -0,0 +1,14 @@
1
+ type Listener<T> = (state: T, prevState: T) => void;
2
+ export declare class Store<T extends object> {
3
+ private state;
4
+ private listeners;
5
+ private _notifying;
6
+ private _pendingState;
7
+ constructor(initialState: T);
8
+ getState(): T;
9
+ setState(partial: Partial<T>): void;
10
+ subscribe(listener: Listener<T>): () => void;
11
+ destroy(): void;
12
+ }
13
+ export {};
14
+ //# sourceMappingURL=store.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../src/store/store.ts"],"names":[],"mappings":"AAAA,KAAK,QAAQ,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,KAAK,IAAI,CAAC;AAEpD,qBAAa,KAAK,CAAC,CAAC,SAAS,MAAM;IACjC,OAAO,CAAC,KAAK,CAAI;IACjB,OAAO,CAAC,SAAS,CAA0B;IAC3C,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,aAAa,CAA2B;gBAEpC,YAAY,EAAE,CAAC;IAI3B,QAAQ,IAAI,CAAC;IAIb,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,IAAI;IAwBnC,SAAS,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,GAAG,MAAM,IAAI;IAK5C,OAAO,IAAI,IAAI;CAGhB"}
@@ -0,0 +1,49 @@
1
+ import { Asset } from '../types/asset.types';
2
+ import { Folder } from '../types/folder.types';
3
+ import { Label } from '../types/label.types';
4
+ import { TagWithLabel } from '../types/tag.types';
5
+ import { AssetPickerConfig, ViewMode, SortBy, SortDirection, TabKey } from '../types/config.types';
6
+ import { FiltersState, MetadataModelField, RegionalVariantGroup, RegionalFilters } from '../types/filter.types';
7
+ export interface BreadcrumbItem {
8
+ uuid: string;
9
+ name: string;
10
+ path: string;
11
+ }
12
+ export interface AppState {
13
+ config: AssetPickerConfig | null;
14
+ projectToken: string;
15
+ sassKey: string;
16
+ brandColor: string;
17
+ isOpen: boolean;
18
+ activeTab: TabKey;
19
+ viewMode: ViewMode;
20
+ searchQuery: string;
21
+ sortBy: SortBy;
22
+ sortDirection: SortDirection;
23
+ previewAsset: Asset | null;
24
+ isPreviewOpen: boolean;
25
+ assets: Asset[];
26
+ folders: Folder[];
27
+ folderPreviews: Record<string, {
28
+ file_uri_cdn: string;
29
+ file_type: string;
30
+ }[]>;
31
+ labels: Label[];
32
+ tags: TagWithLabel[];
33
+ currentFolder: string | null;
34
+ currentFolderPath: string;
35
+ breadcrumb: BreadcrumbItem[];
36
+ offset: number;
37
+ limit: number;
38
+ totalCount: number;
39
+ totalFolderCount: number;
40
+ isLoading: boolean;
41
+ isSelectingAll: boolean;
42
+ hasMore: boolean;
43
+ filters: FiltersState;
44
+ metadataFields: MetadataModelField[];
45
+ regionalVariantGroups: RegionalVariantGroup[];
46
+ regionalFilters: RegionalFilters;
47
+ selectedAssets: Map<string, Asset>;
48
+ }
49
+ //# sourceMappingURL=store.types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"store.types.d.ts","sourceRoot":"","sources":["../../src/store/store.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,KAAK,EAAE,iBAAiB,EAAE,QAAQ,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AACxG,OAAO,KAAK,EAAE,YAAY,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAErH,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,QAAQ;IACvB,MAAM,EAAE,iBAAiB,GAAG,IAAI,CAAC;IACjC,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IAEnB,MAAM,EAAE,OAAO,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,QAAQ,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,EAAE,aAAa,CAAC;IAE7B,YAAY,EAAE,KAAK,GAAG,IAAI,CAAC;IAC3B,aAAa,EAAE,OAAO,CAAC;IAEvB,MAAM,EAAE,KAAK,EAAE,CAAC;IAChB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE;QAAE,YAAY,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC,CAAC;IAC9E,MAAM,EAAE,KAAK,EAAE,CAAC;IAChB,IAAI,EAAE,YAAY,EAAE,CAAC;IACrB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,UAAU,EAAE,cAAc,EAAE,CAAC;IAE7B,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,gBAAgB,EAAE,MAAM,CAAC;IACzB,SAAS,EAAE,OAAO,CAAC;IACnB,cAAc,EAAE,OAAO,CAAC;IACxB,OAAO,EAAE,OAAO,CAAC;IAEjB,OAAO,EAAE,YAAY,CAAC;IACtB,cAAc,EAAE,kBAAkB,EAAE,CAAC;IACrC,qBAAqB,EAAE,oBAAoB,EAAE,CAAC;IAC9C,eAAe,EAAE,eAAe,CAAC;IAEjC,cAAc,EAAE,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;CACpC"}
@@ -0,0 +1,4 @@
1
+ /** Global reset — spread into every component's `static styles` array. */
2
+ export declare const resetStyles: import('lit').CSSResult;
3
+ export declare function getSharedStyles(): CSSStyleSheet;
4
+ //# sourceMappingURL=shared-styles.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shared-styles.d.ts","sourceRoot":"","sources":["../../src/styles/shared-styles.ts"],"names":[],"mappings":"AAGA,0EAA0E;AAC1E,eAAO,MAAM,WAAW,yBAIvB,CAAC;AAIF,wBAAgB,eAAe,IAAI,aAAa,CAM/C"}
@@ -0,0 +1,82 @@
1
+ import { Asset } from './asset.types';
2
+ import { Folder } from './folder.types';
3
+ import { Label } from './label.types';
4
+ import { SortBy, SortDirection } from './config.types';
5
+ export interface ApiBaseResponse {
6
+ status: string;
7
+ msg: string;
8
+ }
9
+ export interface GetFilesParams {
10
+ folder?: string;
11
+ offset?: number;
12
+ limit?: number;
13
+ sort_by?: SortBy;
14
+ sort_direction?: SortDirection;
15
+ search?: string;
16
+ q?: string;
17
+ recursive?: number;
18
+ }
19
+ export interface GetFilesResponse extends ApiBaseResponse {
20
+ files: Asset[];
21
+ folders: Folder[];
22
+ base?: {
23
+ count?: {
24
+ files_direct?: number;
25
+ files_recursive?: number;
26
+ };
27
+ };
28
+ info?: {
29
+ total_files_count?: number;
30
+ total_files_size?: number;
31
+ };
32
+ limit: number;
33
+ offset: number;
34
+ }
35
+ export interface GetFoldersResponse extends ApiBaseResponse {
36
+ folders: Folder[];
37
+ total: number;
38
+ }
39
+ export interface GetLabelsResponse extends ApiBaseResponse {
40
+ labels: Label[];
41
+ }
42
+ export interface GetSettingsResponse extends ApiBaseResponse {
43
+ settings: {
44
+ project_branding?: {
45
+ brandColor?: string;
46
+ };
47
+ [key: string]: unknown;
48
+ };
49
+ }
50
+ export interface SassKeyResponse extends ApiBaseResponse {
51
+ key: string;
52
+ }
53
+ export interface GetFiltersResponse extends ApiBaseResponse {
54
+ filters: {
55
+ key: string;
56
+ values: string[];
57
+ }[];
58
+ }
59
+ export interface GetMetadataFieldsResponse extends ApiBaseResponse {
60
+ metadata_model: {
61
+ fields: Array<{
62
+ key: string;
63
+ label: string;
64
+ type: string;
65
+ slug?: string;
66
+ possible_values?: string[];
67
+ }>;
68
+ }[];
69
+ }
70
+ export interface GetTagsResponse extends ApiBaseResponse {
71
+ tags: import('./tag.types').Tag[];
72
+ }
73
+ export interface GetFilterConfigResponse extends ApiBaseResponse {
74
+ file_types: Array<{
75
+ name: string;
76
+ value: string;
77
+ count: number;
78
+ category?: string;
79
+ label?: string;
80
+ }>;
81
+ }
82
+ //# sourceMappingURL=api.types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api.types.d.ts","sourceRoot":"","sources":["../../src/types/api.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,KAAK,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAE5D,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,cAAc;IAC7B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,cAAc,CAAC,EAAE,aAAa,CAAC;IAC/B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,CAAC,CAAC,EAAE,MAAM,CAAC;IACX,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,gBAAiB,SAAQ,eAAe;IACvD,KAAK,EAAE,KAAK,EAAE,CAAC;IACf,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,IAAI,CAAC,EAAE;QACL,KAAK,CAAC,EAAE;YACN,YAAY,CAAC,EAAE,MAAM,CAAC;YACtB,eAAe,CAAC,EAAE,MAAM,CAAC;SAC1B,CAAC;KACH,CAAC;IACF,IAAI,CAAC,EAAE;QACL,iBAAiB,CAAC,EAAE,MAAM,CAAC;QAC3B,gBAAgB,CAAC,EAAE,MAAM,CAAC;KAC3B,CAAC;IACF,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,kBAAmB,SAAQ,eAAe;IACzD,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,iBAAkB,SAAQ,eAAe;IACxD,MAAM,EAAE,KAAK,EAAE,CAAC;CACjB;AAED,MAAM,WAAW,mBAAoB,SAAQ,eAAe;IAC1D,QAAQ,EAAE;QACR,gBAAgB,CAAC,EAAE;YACjB,UAAU,CAAC,EAAE,MAAM,CAAC;SACrB,CAAC;QACF,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;KACxB,CAAC;CACH;AAED,MAAM,WAAW,eAAgB,SAAQ,eAAe;IACtD,GAAG,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,kBAAmB,SAAQ,eAAe;IACzD,OAAO,EAAE;QACP,GAAG,EAAE,MAAM,CAAC;QACZ,MAAM,EAAE,MAAM,EAAE,CAAC;KAClB,EAAE,CAAC;CACL;AAED,MAAM,WAAW,yBAA0B,SAAQ,eAAe;IAChE,cAAc,EAAE;QACd,MAAM,EAAE,KAAK,CAAC;YACZ,GAAG,EAAE,MAAM,CAAC;YACZ,KAAK,EAAE,MAAM,CAAC;YACd,IAAI,EAAE,MAAM,CAAC;YACb,IAAI,CAAC,EAAE,MAAM,CAAC;YACd,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;SAC5B,CAAC,CAAC;KACJ,EAAE,CAAC;CACL;AAED,MAAM,WAAW,eAAgB,SAAQ,eAAe;IACtD,IAAI,EAAE,OAAO,aAAa,EAAE,GAAG,EAAE,CAAC;CACnC;AAED,MAAM,WAAW,uBAAwB,SAAQ,eAAe;IAC9D,UAAU,EAAE,KAAK,CAAC;QAChB,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,EAAE,MAAM,CAAC;QACd,KAAK,EAAE,MAAM,CAAC;QACd,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,CAAC,CAAC;CACJ"}
@@ -0,0 +1,77 @@
1
+ export interface AssetInfo {
2
+ img_type?: string;
3
+ img_w?: number;
4
+ img_h?: number;
5
+ duration?: number;
6
+ video_w?: number;
7
+ video_h?: number;
8
+ thumbnail?: string;
9
+ preview?: string;
10
+ video_thumbnail?: string;
11
+ video_gif?: string;
12
+ image_thumbnail?: string;
13
+ main_colors?: string[];
14
+ main_colors_hex?: string[];
15
+ dominant_color?: string;
16
+ dominant_color_hex?: string;
17
+ color_space?: string;
18
+ metadata?: Record<string, unknown>;
19
+ playlists?: Array<{
20
+ playlists: string[];
21
+ resolution?: string;
22
+ }>;
23
+ }
24
+ export interface AssetMeta {
25
+ title?: string;
26
+ description?: string;
27
+ alt?: string;
28
+ [key: string]: unknown;
29
+ }
30
+ export interface AssetSize {
31
+ bytes: number;
32
+ pretty: string;
33
+ }
34
+ export interface Asset {
35
+ uuid: string;
36
+ name: string;
37
+ extension: string;
38
+ /** File type string, e.g. "image", "video", "application" */
39
+ type: string;
40
+ /** MIME type string, e.g. "image/jpeg", "video/mp4" */
41
+ mime?: string;
42
+ size: AssetSize;
43
+ url?: {
44
+ public: string;
45
+ cdn: string;
46
+ path: string;
47
+ permalink?: string;
48
+ };
49
+ public_id?: string;
50
+ visibility?: string;
51
+ status?: string;
52
+ hash?: string;
53
+ folder_uuid?: string;
54
+ folder?: {
55
+ uuid: string;
56
+ name: string;
57
+ };
58
+ created_at: string;
59
+ modified_at: string;
60
+ tags: Record<string, Array<{
61
+ label: string;
62
+ sid: string;
63
+ }>> | Record<string, {
64
+ label: string;
65
+ sid: string;
66
+ }> | string[];
67
+ labels: string[];
68
+ meta: AssetMeta;
69
+ info: AssetInfo;
70
+ owner?: {
71
+ uuid: string;
72
+ name: string;
73
+ email: string;
74
+ };
75
+ }
76
+ export type AssetType = 'image' | 'video' | 'audio' | 'document' | 'archive' | 'font' | 'other';
77
+ //# sourceMappingURL=asset.types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"asset.types.d.ts","sourceRoot":"","sources":["../../src/types/asset.types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,51 @@
1
+ import { FilterKey, FiltersInput } from './filter.types';
2
+ export type AuthMode = 'session' | 'securityTemplate';
3
+ export interface SessionAuth {
4
+ mode: 'session';
5
+ sessionToken: string;
6
+ companyToken: string;
7
+ projectToken: string;
8
+ }
9
+ export interface SecurityTemplateAuth {
10
+ mode: 'securityTemplate';
11
+ securityTemplateKey: string;
12
+ projectToken: string;
13
+ }
14
+ export type AuthConfig = SessionAuth | SecurityTemplateAuth;
15
+ export type DisplayMode = 'modal' | 'inline';
16
+ export type ViewMode = 'grid' | 'list';
17
+ export type SortBy = 'name' | 'created_at' | 'modified_at' | 'size' | 'type' | 'relevance' | 'title' | 'color' | 'uploaded' | 'updated_at' | 'files_count_recursive' | 'files_size_recursive';
18
+ export type SortDirection = 'asc' | 'desc';
19
+ export type TabKey = 'assets' | 'folders';
20
+ export interface AssetPickerConfig {
21
+ auth: AuthConfig;
22
+ apiBase?: string;
23
+ locale?: string;
24
+ multiSelect?: boolean;
25
+ maxSelections?: number;
26
+ defaultViewMode?: ViewMode;
27
+ defaultSortBy?: SortBy;
28
+ defaultSortDirection?: SortDirection;
29
+ /** Tabs to show. Defaults to ['assets', 'folders']. If only one tab, the dropdown is hidden. */
30
+ tabs?: TabKey[];
31
+ enabledFilters?: FilterKey[];
32
+ /** Start browsing from a specific folder path (e.g. '/marketing/banners/'). */
33
+ rootFolderPath?: string;
34
+ /** Show metadata sections in the preview panel. Defaults to true. */
35
+ showMetadata?: boolean;
36
+ /** Display mode: 'modal' (default) renders as a dialog overlay, 'inline' renders in page flow. */
37
+ displayMode?: DisplayMode;
38
+ /** Brand color (hex, e.g. "#3b82f6") used for all accent elements. Overrides the API-provided brand color. */
39
+ brandColor?: string;
40
+ /** Filters pre-applied when the picker opens. User can modify/remove them. */
41
+ defaultFilters?: FiltersInput;
42
+ /** Filters always active. Shown as locked chips the user cannot remove. */
43
+ forcedFilters?: FiltersInput;
44
+ /** Remember the last browsed folder and restore it on next open. Defaults to false. */
45
+ rememberLastFolder?: boolean;
46
+ /** Remember the last used view mode (grid/list) and restore it on next open. Defaults to false. */
47
+ rememberLastView?: boolean;
48
+ onSelect?: (assets: import('./asset.types').Asset[]) => void;
49
+ onCancel?: () => void;
50
+ }
51
+ //# sourceMappingURL=config.types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.types.d.ts","sourceRoot":"","sources":["../../src/types/config.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAE9D,MAAM,MAAM,QAAQ,GAAG,SAAS,GAAG,kBAAkB,CAAC;AAEtD,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,SAAS,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,kBAAkB,CAAC;IACzB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,MAAM,UAAU,GAAG,WAAW,GAAG,oBAAoB,CAAC;AAE5D,MAAM,MAAM,WAAW,GAAG,OAAO,GAAG,QAAQ,CAAC;AAC7C,MAAM,MAAM,QAAQ,GAAG,MAAM,GAAG,MAAM,CAAC;AAEvC,MAAM,MAAM,MAAM,GAAG,MAAM,GAAG,YAAY,GAAG,aAAa,GAAG,MAAM,GAAG,MAAM,GAAG,WAAW,GAAG,OAAO,GAAG,OAAO,GAAG,UAAU,GAAG,YAAY,GAAG,uBAAuB,GAAG,sBAAsB,CAAC;AAC9L,MAAM,MAAM,aAAa,GAAG,KAAK,GAAG,MAAM,CAAC;AAE3C,MAAM,MAAM,MAAM,GAAG,QAAQ,GAAG,SAAS,CAAC;AAE1C,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,UAAU,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,eAAe,CAAC,EAAE,QAAQ,CAAC;IAC3B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,oBAAoB,CAAC,EAAE,aAAa,CAAC;IACrC,gGAAgG;IAChG,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,cAAc,CAAC,EAAE,SAAS,EAAE,CAAC;IAC7B,+EAA+E;IAC/E,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,qEAAqE;IACrE,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,kGAAkG;IAClG,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,8GAA8G;IAC9G,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,8EAA8E;IAC9E,cAAc,CAAC,EAAE,YAAY,CAAC;IAC9B,2EAA2E;IAC3E,aAAa,CAAC,EAAE,YAAY,CAAC;IAC7B,uFAAuF;IACvF,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,mGAAmG;IACnG,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,OAAO,eAAe,EAAE,KAAK,EAAE,KAAK,IAAI,CAAC;IAC7D,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;CACvB"}
@@ -0,0 +1,23 @@
1
+ import { Asset } from './asset.types';
2
+ export interface AssetPickerSelectDetail {
3
+ assets: Asset[];
4
+ }
5
+ export interface AssetPickerCancelDetail {
6
+ reason: 'backdrop' | 'escape' | 'button';
7
+ }
8
+ export interface AssetPickerOpenDetail {
9
+ timestamp: number;
10
+ }
11
+ export interface AssetPickerErrorDetail {
12
+ error: Error;
13
+ context: string;
14
+ }
15
+ declare global {
16
+ interface HTMLElementEventMap {
17
+ 'ap-select': CustomEvent<AssetPickerSelectDetail>;
18
+ 'ap-cancel': CustomEvent<AssetPickerCancelDetail>;
19
+ 'ap-open': CustomEvent<AssetPickerOpenDetail>;
20
+ 'ap-error': CustomEvent<AssetPickerErrorDetail>;
21
+ }
22
+ }
23
+ //# sourceMappingURL=events.types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"events.types.d.ts","sourceRoot":"","sources":["../../src/types/events.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAE3C,MAAM,WAAW,uBAAuB;IACtC,MAAM,EAAE,KAAK,EAAE,CAAC;CACjB;AAED,MAAM,WAAW,uBAAuB;IACtC,MAAM,EAAE,UAAU,GAAG,QAAQ,GAAG,QAAQ,CAAC;CAC1C;AAED,MAAM,WAAW,qBAAqB;IACpC,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,sBAAsB;IACrC,KAAK,EAAE,KAAK,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,mBAAmB;QAC3B,WAAW,EAAE,WAAW,CAAC,uBAAuB,CAAC,CAAC;QAClD,WAAW,EAAE,WAAW,CAAC,uBAAuB,CAAC,CAAC;QAClD,SAAS,EAAE,WAAW,CAAC,qBAAqB,CAAC,CAAC;QAC9C,UAAU,EAAE,WAAW,CAAC,sBAAsB,CAAC,CAAC;KACjD;CACF"}