@openrails/contentkit-ui 0.103.0 → 0.103.2

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 (65) hide show
  1. package/README.md +6 -4
  2. package/dist/components/admin/content-manager.d.ts +1 -1
  3. package/dist/components/admin/content-manager.js +346 -304
  4. package/dist/components/admin/content-manager.js.map +1 -1
  5. package/dist/components/admin/page-review.js +106 -97
  6. package/dist/components/admin/page-review.js.map +1 -1
  7. package/dist/components/admin/reader-content-editor.d.ts +6 -0
  8. package/dist/components/admin/reader-content-editor.js +709 -0
  9. package/dist/components/admin/reader-content-editor.js.map +1 -0
  10. package/dist/components/admin/reader-manifest.js +120 -105
  11. package/dist/components/admin/reader-manifest.js.map +1 -1
  12. package/dist/components/content/editor-save.d.ts +32 -0
  13. package/dist/components/content/editor-save.js +51 -0
  14. package/dist/components/content/editor-save.js.map +1 -0
  15. package/dist/components/content/editors.d.ts +17 -2
  16. package/dist/components/content/editors.js +359 -328
  17. package/dist/components/content/editors.js.map +1 -1
  18. package/dist/components/content/offer-fields.d.ts +1 -1
  19. package/dist/components/content/offer-fields.js +86 -64
  20. package/dist/components/content/offer-fields.js.map +1 -1
  21. package/dist/components/content/release-date-picker.d.ts +4 -4
  22. package/dist/components/content/release-date-picker.js +106 -48
  23. package/dist/components/content/release-date-picker.js.map +1 -1
  24. package/dist/components/groups/memberships.d.ts +11 -1
  25. package/dist/components/groups/memberships.js +1 -1
  26. package/dist/components/groups/memberships.js.map +1 -1
  27. package/dist/components/media-folder-editor.d.ts +4 -0
  28. package/dist/components/media-folder-editor.js +177 -167
  29. package/dist/components/media-folder-editor.js.map +1 -1
  30. package/dist/index.js +1 -1
  31. package/dist/locales/admin/de.js +25 -0
  32. package/dist/locales/admin/de.js.map +1 -1
  33. package/dist/locales/admin/en.d.ts +25 -0
  34. package/dist/locales/admin/en.js +25 -0
  35. package/dist/locales/admin/en.js.map +1 -1
  36. package/dist/locales/admin/es.js +25 -0
  37. package/dist/locales/admin/es.js.map +1 -1
  38. package/dist/locales/admin/ja.js +25 -0
  39. package/dist/locales/admin/ja.js.map +1 -1
  40. package/dist/locales/admin/ko.js +25 -0
  41. package/dist/locales/admin/ko.js.map +1 -1
  42. package/dist/locales/admin/zh.js +25 -0
  43. package/dist/locales/admin/zh.js.map +1 -1
  44. package/dist/locales/discovery/de.js +1 -2
  45. package/dist/locales/discovery/de.js.map +1 -1
  46. package/dist/locales/discovery/en.d.ts +1 -2
  47. package/dist/locales/discovery/en.js +1 -2
  48. package/dist/locales/discovery/en.js.map +1 -1
  49. package/dist/locales/discovery/es.js +1 -2
  50. package/dist/locales/discovery/es.js.map +1 -1
  51. package/dist/locales/discovery/ja.js +1 -2
  52. package/dist/locales/discovery/ja.js.map +1 -1
  53. package/dist/locales/discovery/ko.js +1 -2
  54. package/dist/locales/discovery/ko.js.map +1 -1
  55. package/dist/locales/discovery/zh.js +1 -2
  56. package/dist/locales/discovery/zh.js.map +1 -1
  57. package/dist/locales/en.d.ts +26 -2
  58. package/dist/react/page-review.d.ts +1 -1
  59. package/dist/react/page-review.js +6 -5
  60. package/dist/react/page-review.js.map +1 -1
  61. package/dist/react/use-draft.d.ts +8 -0
  62. package/dist/react/use-draft.js +35 -0
  63. package/dist/react/use-draft.js.map +1 -0
  64. package/dist/styles.css +1 -1
  65. package/package.json +2 -1
@@ -0,0 +1,35 @@
1
+ import { useEffect as e, useRef as t, useState as n } from "react";
2
+ //#region src/react/use-draft.ts
3
+ function r(r) {
4
+ let [i, a] = n(r), o = t({
5
+ value: r,
6
+ dirty: /* @__PURE__ */ new Set(),
7
+ edits: /* @__PURE__ */ new Map()
8
+ });
9
+ return e(() => {
10
+ let e = { ...r };
11
+ for (let t of o.current.dirty) e[t] = o.current.value[t];
12
+ o.current.value = e, a(e);
13
+ }, [r]), {
14
+ value: i,
15
+ edit: (e) => {
16
+ let t = o.current, n = typeof e == "function" ? e(t.value) : e;
17
+ for (let e of /* @__PURE__ */ new Set([...Object.keys(t.value), ...Object.keys(n)])) Object.is(t.value[e], n[e]) || (t.dirty.add(e), t.edits.set(e, (t.edits.get(e) ?? 0) + 1));
18
+ t.value = n, a(n);
19
+ },
20
+ checkpoint: () => {
21
+ let e = new Map(o.current.edits);
22
+ return (t) => {
23
+ let n = o.current, r = { ...t };
24
+ for (let i of /* @__PURE__ */ new Set([...Object.keys(n.value), ...Object.keys(t)])) n.edits.get(i) === e.get(i) ? n.dirty.delete(i) : r[i] = n.value[i];
25
+ return n.value = r, a(r), n.dirty.size === 0;
26
+ };
27
+ },
28
+ get: () => o.current.value,
29
+ dirty: [...o.current.dirty]
30
+ };
31
+ }
32
+ //#endregion
33
+ export { r as useDraft };
34
+
35
+ //# sourceMappingURL=use-draft.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-draft.js","names":[],"sources":["../../src/react/use-draft.ts"],"sourcesContent":["import { useEffect, useRef, useState, type SetStateAction } from \"react\";\n\n// A fresh record rebases clean fields; only an explicit save/discard settles edits.\n// Per-field counters also protect edits made while that operation is pending.\nexport function useDraft<T extends object>(seed: T) {\n const [value, setValue] = useState(seed);\n const draft = useRef({ value: seed, dirty: new Set<keyof T>(), edits: new Map<keyof T, number>() });\n useEffect(() => {\n const next = { ...seed };\n for (const key of draft.current.dirty) next[key] = draft.current.value[key];\n draft.current.value = next;\n setValue(next);\n }, [seed]);\n const edit = (update: SetStateAction<T>) => {\n const d = draft.current;\n const next = typeof update === \"function\" ? (update as (value: T) => T)(d.value) : update;\n for (const key of new Set([...Object.keys(d.value), ...Object.keys(next)] as (keyof T)[])) {\n if (!Object.is(d.value[key], next[key])) {\n d.dirty.add(key);\n d.edits.set(key, (d.edits.get(key) ?? 0) + 1);\n }\n }\n d.value = next;\n setValue(next);\n };\n const checkpoint = () => {\n const edits = new Map(draft.current.edits);\n return (canonical: T) => {\n const d = draft.current;\n const next = { ...canonical };\n for (const key of new Set([...Object.keys(d.value), ...Object.keys(canonical)] as (keyof T)[])) {\n if (d.edits.get(key) !== edits.get(key)) next[key] = d.value[key];\n else d.dirty.delete(key);\n }\n d.value = next;\n setValue(next);\n return d.dirty.size === 0;\n };\n };\n return { value, edit, checkpoint, get: () => draft.current.value, dirty: [...draft.current.dirty] };\n}\n"],"mappings":";;AAIA,SAAgB,EAA2B,GAAS;CAClD,IAAM,CAAC,GAAO,KAAY,EAAS,CAAI,GACjC,IAAQ,EAAO;EAAE,OAAO;EAAM,uBAAO,IAAI,IAAa;EAAG,uBAAO,IAAI,IAAqB;CAAE,CAAC;CAiClG,OAhCA,QAAgB;EACd,IAAM,IAAO,EAAE,GAAG,EAAK;EACvB,KAAK,IAAM,KAAO,EAAM,QAAQ,OAAO,EAAK,KAAO,EAAM,QAAQ,MAAM;EAEvE,AADA,EAAM,QAAQ,QAAQ,GACtB,EAAS,CAAI;CACf,GAAG,CAAC,CAAI,CAAC,GA2BF;EAAE;EAAO,OA1BF,MAA8B;GAC1C,IAAM,IAAI,EAAM,SACV,IAAO,OAAO,KAAW,aAAc,EAA2B,EAAE,KAAK,IAAI;GACnF,KAAK,IAAM,qBAAO,IAAI,IAAI,CAAC,GAAG,OAAO,KAAK,EAAE,KAAK,GAAG,GAAG,OAAO,KAAK,CAAI,CAAC,CAAgB,GACtF,AAAK,OAAO,GAAG,EAAE,MAAM,IAAM,EAAK,EAAI,MACpC,EAAE,MAAM,IAAI,CAAG,GACf,EAAE,MAAM,IAAI,IAAM,EAAE,MAAM,IAAI,CAAG,KAAK,KAAK,CAAC;GAIhD,AADA,EAAE,QAAQ,GACV,EAAS,CAAI;EACf;EAesB,kBAdG;GACvB,IAAM,IAAQ,IAAI,IAAI,EAAM,QAAQ,KAAK;GACzC,QAAQ,MAAiB;IACvB,IAAM,IAAI,EAAM,SACV,IAAO,EAAE,GAAG,EAAU;IAC5B,KAAK,IAAM,qBAAO,IAAI,IAAI,CAAC,GAAG,OAAO,KAAK,EAAE,KAAK,GAAG,GAAG,OAAO,KAAK,CAAS,CAAC,CAAgB,GAC3F,AAAI,EAAE,MAAM,IAAI,CAAG,MAAM,EAAM,IAAI,CAAG,IACjC,EAAE,MAAM,OAAO,CAAG,IADkB,EAAK,KAAO,EAAE,MAAM;IAK/D,OAFA,EAAE,QAAQ,GACV,EAAS,CAAI,GACN,EAAE,MAAM,SAAS;GAC1B;EACF;EACkC,WAAW,EAAM,QAAQ;EAAO,OAAO,CAAC,GAAG,EAAM,QAAQ,KAAK;CAAE;AACpG"}