@flamingo-stack/openframe-frontend-core 0.0.848 → 0.0.850

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 (137) hide show
  1. package/dist/build/export-map.json +1 -1
  2. package/dist/{chunk-MWYEROAP.cjs → chunk-2QZUTNL3.cjs} +55 -55
  3. package/dist/{chunk-YXKAHQYS.cjs → chunk-533QK4R6.cjs} +2 -1
  4. package/dist/{chunk-5HOWR4TG.cjs → chunk-5CBI2ZYV.cjs} +5 -5
  5. package/dist/{chunk-NYT6IBIX.cjs → chunk-5PIR77V5.cjs} +4 -4
  6. package/dist/{chunk-IIUZE73M.cjs → chunk-6AJYGXXS.cjs} +14 -14
  7. package/dist/{chunk-VW4446JR.cjs → chunk-7ICHJVAT.cjs} +16 -16
  8. package/dist/{chunk-U7UBYJEZ.cjs → chunk-BU2PSRAS.cjs} +5 -5
  9. package/dist/{chunk-IKOL6NJY.cjs → chunk-CAGNWDVJ.cjs} +11 -1
  10. package/dist/{chunk-O4BXHCMK.cjs → chunk-FRG724DU.cjs} +2 -2
  11. package/dist/{chunk-YAW7CHLV.cjs → chunk-FXLROQUT.cjs} +41 -38
  12. package/dist/{chunk-IUZVOQXP.cjs → chunk-GAYLAA3L.cjs} +45 -45
  13. package/dist/{chunk-7YJQTQPV.cjs → chunk-IG6ROHPS.cjs} +46 -46
  14. package/dist/{chunk-INA2FX2N.cjs → chunk-IHY7E4EX.cjs} +2 -2
  15. package/dist/{chunk-Y2ZWWIUA.cjs → chunk-IN3LA2FU.cjs} +2 -2
  16. package/dist/{chunk-74Z34I2C.cjs → chunk-IPGGSFR7.cjs} +6 -6
  17. package/dist/{chunk-7DW3LZ52.cjs → chunk-JWIITCVB.cjs} +94 -173
  18. package/dist/{chunk-OCJXOSIH.cjs → chunk-LGYPCUHO.cjs} +32 -32
  19. package/dist/{chunk-7LE4HWHA.cjs → chunk-OHHDX3Z4.cjs} +24 -24
  20. package/dist/{chunk-C3WZXOZJ.cjs → chunk-QJER2ZNA.cjs} +3 -3
  21. package/dist/{chunk-GASFYPGH.cjs → chunk-R5JPZ6TY.cjs} +14 -14
  22. package/dist/{chunk-QUSCSYHJ.cjs → chunk-TX4NTH22.cjs} +45 -26
  23. package/dist/{chunk-Y4BG7SPX.cjs → chunk-VRWBJL7B.cjs} +66 -66
  24. package/dist/{chunk-2V6FCVUL.cjs → chunk-XKOL5CNU.cjs} +449 -390
  25. package/dist/{chunk-I3YRYS23.cjs → chunk-ZDSC3GFX.cjs} +38 -12
  26. package/dist/{cloud-tenants-YAZHLPOQ.cjs → cloud-tenants-TVB3DT3J.cjs} +8 -8
  27. package/dist/components/case-studies/index.cjs +22 -22
  28. package/dist/components/chat/entity-cards/dispatch.d.ts.map +1 -1
  29. package/dist/components/chat/entity-cards/dispatch.js +1 -0
  30. package/dist/components/chat/index.cjs +5 -5
  31. package/dist/components/contact/index.cjs +9 -9
  32. package/dist/components/docs/doc-viewer.d.ts +7 -7
  33. package/dist/components/docs/doc-viewer.d.ts.map +1 -1
  34. package/dist/components/docs/doc-viewer.js +29 -16
  35. package/dist/components/docs/docs-hub-page.d.ts +1 -1
  36. package/dist/components/docs/docs-hub-page.d.ts.map +1 -1
  37. package/dist/components/docs/docs-hub-page.js +4 -11
  38. package/dist/components/docs/index.cjs +12 -12
  39. package/dist/components/docs/use-document-tree.d.ts.map +1 -1
  40. package/dist/components/docs/use-document-tree.js +24 -24
  41. package/dist/components/embeds/claude-embed.d.ts +2 -2
  42. package/dist/components/embeds/claude-embed.d.ts.map +1 -1
  43. package/dist/components/embeds/claude-embed.js +3 -3
  44. package/dist/components/embeds/embed-iframe.d.ts +5 -3
  45. package/dist/components/embeds/embed-iframe.d.ts.map +1 -1
  46. package/dist/components/embeds/embed-iframe.js +4 -3
  47. package/dist/components/embeds/embed-viewer-frame.d.ts +14 -9
  48. package/dist/components/embeds/embed-viewer-frame.d.ts.map +1 -1
  49. package/dist/components/embeds/embed-viewer-frame.js +31 -7
  50. package/dist/components/embeds/figma-embed.d.ts +4 -2
  51. package/dist/components/embeds/figma-embed.d.ts.map +1 -1
  52. package/dist/components/embeds/figma-embed.js +4 -3
  53. package/dist/components/embeds/file-download-card.d.ts +3 -1
  54. package/dist/components/embeds/file-download-card.d.ts.map +1 -1
  55. package/dist/components/embeds/file-download-card.js +18 -3
  56. package/dist/components/embeds/google-sheets-viewer.d.ts +3 -1
  57. package/dist/components/embeds/google-sheets-viewer.d.ts.map +1 -1
  58. package/dist/components/embeds/google-sheets-viewer.js +7 -4
  59. package/dist/components/embeds/index.cjs +9 -9
  60. package/dist/components/embeds/pdf-viewer.d.ts +3 -1
  61. package/dist/components/embeds/pdf-viewer.d.ts.map +1 -1
  62. package/dist/components/embeds/pdf-viewer.js +7 -2
  63. package/dist/components/faq/index.cjs +10 -10
  64. package/dist/components/features/index.cjs +10 -8
  65. package/dist/components/features/software/index.d.ts +1 -1
  66. package/dist/components/features/software/index.d.ts.map +1 -1
  67. package/dist/components/features/software/index.js +2 -0
  68. package/dist/components/features/software/software-action-copy.d.ts.map +1 -1
  69. package/dist/components/features/software/software-action-copy.js +6 -12
  70. package/dist/components/features/software/software-action-form.d.ts +7 -1
  71. package/dist/components/features/software/software-action-form.d.ts.map +1 -1
  72. package/dist/components/features/software/software-action-form.js +11 -3
  73. package/dist/components/features/software/update-settings-fields.d.ts +12 -1
  74. package/dist/components/features/software/update-settings-fields.d.ts.map +1 -1
  75. package/dist/components/features/software/update-settings-fields.js +57 -29
  76. package/dist/components/help-center-pages/index.cjs +87 -87
  77. package/dist/components/index.cjs +52 -50
  78. package/dist/components/meeting-scheduler/index.cjs +40 -40
  79. package/dist/components/navigation/index.cjs +11 -11
  80. package/dist/components/onboarding-guides/index.cjs +11 -11
  81. package/dist/components/product-demo/index.cjs +18 -18
  82. package/dist/components/related-content/index.cjs +4 -4
  83. package/dist/components/tickets/index.cjs +13 -13
  84. package/dist/components/ui/index.cjs +8 -8
  85. package/dist/components/ui/markdown/rich/rich-markdown-renderer.d.ts.map +1 -1
  86. package/dist/components/ui/markdown/rich/rich-markdown-renderer.js +7 -3
  87. package/dist/components/ui/page-actions.d.ts.map +1 -1
  88. package/dist/components/ui/page-actions.js +11 -1
  89. package/dist/{devices-IZROCLFK.cjs → devices-NGCTSXIU.cjs} +9 -9
  90. package/dist/{embeddable-chat-ETW6S22E.cjs → embeddable-chat-322NDFP5.cjs} +74 -74
  91. package/dist/index.cjs +18 -12
  92. package/dist/{knowledge-4IRWLTNW.cjs → knowledge-75PO5DYS.cjs} +9 -9
  93. package/dist/{logs-EFDGY5IO.cjs → logs-PZESOAIG.cjs} +15 -15
  94. package/dist/{policies-3KEXZ5BP.cjs → policies-6XNMBFWO.cjs} +12 -12
  95. package/dist/{remote-session-NT4NG7EF.cjs → remote-session-Q2FIBCGT.cjs} +4 -4
  96. package/dist/{scripts-PCGTZLZL.cjs → scripts-B3JW6TPF.cjs} +15 -15
  97. package/dist/{software-update-YCDNVFJE.cjs → software-update-NWP542J7.cjs} +12 -12
  98. package/dist/types/doc-source.d.ts +2 -2
  99. package/dist/types/doc-source.d.ts.map +1 -1
  100. package/dist/utils/doc-tree-nav.d.ts +7 -0
  101. package/dist/utils/doc-tree-nav.d.ts.map +1 -1
  102. package/dist/utils/doc-tree-nav.js +19 -0
  103. package/dist/utils/index.cjs +25 -2
  104. package/dist/utils/list-url.d.ts.map +1 -1
  105. package/dist/utils/list-url.js +2 -1
  106. package/dist/utils/source-grouping.d.ts +2 -2
  107. package/dist/utils/source-grouping.d.ts.map +1 -1
  108. package/dist/utils/source-grouping.js +1 -1
  109. package/dist/utils/source-icons.d.ts.map +1 -1
  110. package/dist/utils/source-icons.js +3 -0
  111. package/package.json +1 -1
  112. package/src/components/chat/entity-cards/dispatch.tsx +3 -0
  113. package/src/components/docs/doc-viewer.tsx +56 -35
  114. package/src/components/docs/docs-hub-page.tsx +13 -37
  115. package/src/components/docs/use-document-tree.ts +33 -23
  116. package/src/components/embeds/claude-embed.tsx +4 -4
  117. package/src/components/embeds/embed-iframe.tsx +8 -5
  118. package/src/components/embeds/embed-viewer-frame.tsx +43 -15
  119. package/src/components/embeds/figma-embed.tsx +9 -4
  120. package/src/components/embeds/file-download-card.tsx +28 -4
  121. package/src/components/embeds/google-sheets-viewer.tsx +9 -3
  122. package/src/components/embeds/pdf-viewer.tsx +12 -2
  123. package/src/components/features/software/index.ts +1 -0
  124. package/src/components/features/software/software-action-copy.ts +19 -12
  125. package/src/components/features/software/software-action-form.tsx +16 -3
  126. package/src/components/features/software/update-settings-fields.tsx +104 -32
  127. package/src/components/ui/markdown/rich/rich-markdown-renderer.tsx +4 -0
  128. package/src/components/ui/page-actions.tsx +19 -2
  129. package/src/types/doc-source.ts +2 -2
  130. package/src/utils/doc-tree-nav.ts +27 -0
  131. package/src/utils/list-url.ts +2 -1
  132. package/src/utils/source-grouping.ts +2 -2
  133. package/src/utils/source-icons.ts +3 -0
  134. package/dist/components/docs/skeletons.d.ts +0 -25
  135. package/dist/components/docs/skeletons.d.ts.map +0 -1
  136. package/dist/components/docs/skeletons.js +0 -83
  137. package/src/components/docs/skeletons.tsx +0 -131
@@ -30,14 +30,25 @@ export declare const SOFTWARE_UPDATE_COUNTDOWN_OPTIONS: ReadonlyArray<{
30
30
  /** Wait & notify, a countdown 7 days after the first try, 5 minutes long: what the server applies when sent none. */
31
31
  export declare const DEFAULT_SOFTWARE_UPDATE_POLICY: SoftwareUpdatePolicy;
32
32
  export declare const DEFAULT_SOFTWARE_UPDATE_SETTINGS: SoftwareUpdateSettingsValues;
33
+ /**
34
+ * What the form opens with. With user notifications, the server's own defaults. Without them, Force Update: an app is
35
+ * never closed unannounced a week later, and nobody is promised a prompt that cannot be shown.
36
+ */
37
+ export declare function defaultSoftwareUpdateSettings(userNotifications: boolean): SoftwareUpdateSettingsValues;
33
38
  export interface SoftwareUpdateSettingsFieldsProps {
34
39
  value: SoftwareUpdateSettingsValues;
35
40
  onChange: (value: SoftwareUpdateSettingsValues) => void;
41
+ /**
42
+ * The devices can notify the user: Wait & notify, its countdown after the deadline and the countdowns. Default false,
43
+ * as today, when the client has no notifications: Wait (until the user closes the app, or a deadline closes it without
44
+ * warning) or Force Update, and no countdown.
45
+ */
46
+ userNotifications?: boolean;
36
47
  }
37
48
  /**
38
49
  * Update Software's "Update Settings" (design 988:21462, the separate auto-update
39
50
  * rules 1034:8173): what happens on a device where the app is running, and
40
51
  * whether later releases are installed the same way.
41
52
  */
42
- export declare function SoftwareUpdateSettingsFields({ value, onChange }: SoftwareUpdateSettingsFieldsProps): import("react").JSX.Element;
53
+ export declare function SoftwareUpdateSettingsFields({ value, onChange, userNotifications, }: SoftwareUpdateSettingsFieldsProps): import("react").JSX.Element;
43
54
  //# sourceMappingURL=update-settings-fields.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"update-settings-fields.d.ts","sourceRoot":"","sources":["../../../../src/components/features/software/update-settings-fields.tsx"],"names":[],"mappings":"AAgBA,gEAAgE;AAChE,MAAM,MAAM,kBAAkB,GAAG,MAAM,GAAG,OAAO,CAAC;AAElD,yFAAyF;AACzF,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,kBAAkB,CAAC;IACzB,2GAA2G;IAC3G,eAAe,EAAE,OAAO,CAAC;IACzB,0EAA0E;IAC1E,eAAe,EAAE,MAAM,CAAC;IACxB,sGAAsG;IACtG,gBAAgB,EAAE,MAAM,CAAC;CAC1B;AAED,uGAAuG;AACvG,MAAM,WAAW,4BAA4B;IAC3C,MAAM,EAAE,oBAAoB,CAAC;IAC7B,oGAAoG;IACpG,UAAU,EAAE,OAAO,CAAC;IACpB,qGAAqG;IACrG,iBAAiB,EAAE,OAAO,CAAC;IAC3B,gBAAgB,EAAE,oBAAoB,CAAC;CACxC;AAKD,eAAO,MAAM,gCAAgC,EAAE,aAAa,CAAC;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAM9F,CAAC;AAEF,eAAO,MAAM,iCAAiC,EAAE,aAAa,CAAC;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAK/F,CAAC;AAEF,qHAAqH;AACrH,eAAO,MAAM,8BAA8B,EAAE,oBAK5C,CAAC;AAEF,eAAO,MAAM,gCAAgC,EAAE,4BAK9C,CAAC;AAqHF,MAAM,WAAW,iCAAiC;IAChD,KAAK,EAAE,4BAA4B,CAAC;IACpC,QAAQ,EAAE,CAAC,KAAK,EAAE,4BAA4B,KAAK,IAAI,CAAC;CACzD;AAED;;;;GAIG;AACH,wBAAgB,4BAA4B,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,iCAAiC,+BAqElG"}
1
+ {"version":3,"file":"update-settings-fields.d.ts","sourceRoot":"","sources":["../../../../src/components/features/software/update-settings-fields.tsx"],"names":[],"mappings":"AAcA,gEAAgE;AAChE,MAAM,MAAM,kBAAkB,GAAG,MAAM,GAAG,OAAO,CAAC;AAElD,yFAAyF;AACzF,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,kBAAkB,CAAC;IACzB,2GAA2G;IAC3G,eAAe,EAAE,OAAO,CAAC;IACzB,0EAA0E;IAC1E,eAAe,EAAE,MAAM,CAAC;IACxB,sGAAsG;IACtG,gBAAgB,EAAE,MAAM,CAAC;CAC1B;AAED,uGAAuG;AACvG,MAAM,WAAW,4BAA4B;IAC3C,MAAM,EAAE,oBAAoB,CAAC;IAC7B,oGAAoG;IACpG,UAAU,EAAE,OAAO,CAAC;IACpB,qGAAqG;IACrG,iBAAiB,EAAE,OAAO,CAAC;IAC3B,gBAAgB,EAAE,oBAAoB,CAAC;CACxC;AAKD,eAAO,MAAM,gCAAgC,EAAE,aAAa,CAAC;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAM9F,CAAC;AAEF,eAAO,MAAM,iCAAiC,EAAE,aAAa,CAAC;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAK/F,CAAC;AAEF,qHAAqH;AACrH,eAAO,MAAM,8BAA8B,EAAE,oBAK5C,CAAC;AAEF,eAAO,MAAM,gCAAgC,EAAE,4BAK9C,CAAC;AASF;;;GAGG;AACH,wBAAgB,6BAA6B,CAAC,iBAAiB,EAAE,OAAO,GAAG,4BAA4B,CAGtG;AAkLD,MAAM,WAAW,iCAAiC;IAChD,KAAK,EAAE,4BAA4B,CAAC;IACpC,QAAQ,EAAE,CAAC,KAAK,EAAE,4BAA4B,KAAK,IAAI,CAAC;IACxD;;;;OAIG;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B;AAED;;;;GAIG;AACH,wBAAgB,4BAA4B,CAAC,EAC3C,KAAK,EACL,QAAQ,EACR,iBAAyB,GAC1B,EAAE,iCAAiC,+BAwDnC"}
@@ -1,8 +1,6 @@
1
1
  "use client";
2
2
  import { Fragment, jsx, jsxs } from "react/jsx-runtime";
3
- import { InfoCircleIcon } from "../../icons-v2-generated/index.js";
4
3
  import {
5
- Alert,
6
4
  CheckboxBlock,
7
5
  Label,
8
6
  RadioGroupBlock,
@@ -39,22 +37,57 @@ const DEFAULT_SOFTWARE_UPDATE_SETTINGS = {
39
37
  sameForAutoUpdate: true,
40
38
  autoUpdatePolicy: DEFAULT_SOFTWARE_UPDATE_POLICY
41
39
  };
42
- const MODE_OPTIONS = [
43
- {
40
+ const FORCE_UPDATE_POLICY = {
41
+ ...DEFAULT_SOFTWARE_UPDATE_POLICY,
42
+ mode: "FORCE",
43
+ deadlineEnabled: false
44
+ };
45
+ function defaultSoftwareUpdateSettings(userNotifications) {
46
+ if (userNotifications) return DEFAULT_SOFTWARE_UPDATE_SETTINGS;
47
+ return { ...DEFAULT_SOFTWARE_UPDATE_SETTINGS, policy: FORCE_UPDATE_POLICY, autoUpdatePolicy: FORCE_UPDATE_POLICY };
48
+ }
49
+ function closeDelay(countdownSeconds) {
50
+ const option = SOFTWARE_UPDATE_COUNTDOWN_OPTIONS.find((candidate) => candidate.seconds === countdownSeconds);
51
+ if (option) return option.label;
52
+ const minutes = Math.max(1, Math.round(countdownSeconds / 60));
53
+ return minutes === 1 ? "1 minute" : `${minutes} minutes`;
54
+ }
55
+ const NOTIFIED_COPY = {
56
+ wait: {
44
57
  value: "WAIT",
45
58
  label: "Wait & notify",
46
59
  description: "The user gets Update now or Ask Later. If they close the app, it updates then."
47
60
  },
48
- {
61
+ force: {
49
62
  value: "FORCE",
50
63
  label: "Force Update",
51
64
  description: "The user gets a short countdown, then the app closes and updates."
65
+ },
66
+ deadline: {
67
+ label: "Countdown after the deadline",
68
+ description: "If the update still isn\u2019t installed by the deadline, the user gets a countdown and then it installs."
52
69
  }
53
- ];
70
+ };
71
+ function silentCopy(countdownSeconds) {
72
+ const delay = closeDelay(countdownSeconds);
73
+ return {
74
+ wait: { value: "WAIT", label: "Wait", description: "The update waits until the user closes the app." },
75
+ force: {
76
+ value: "FORCE",
77
+ label: "Force Update",
78
+ description: `The app is closed without warning ${delay} later, then updated.`
79
+ },
80
+ deadline: {
81
+ label: "Close the app after a deadline",
82
+ description: `If the app is still open by the deadline, it is closed without warning ${delay} later, then updated.`
83
+ }
84
+ };
85
+ }
54
86
  const SAME_SETTINGS_DESCRIPTION = {
55
87
  WAIT: 'Auto-updates follow "If the app is running" above. Uncheck to set them separately.',
56
88
  FORCE: "Later releases will also be force-updated."
57
89
  };
90
+ const AUTO_UPDATE_DESCRIPTION = "After this update, OpenFrame installs each new version from Winget or Brew on the selected devices. Leaving it off does not turn off auto-update that is already on there.";
58
91
  const groupLabelClass = "text-h5 text-ods-text-secondary";
59
92
  function SecondsSelect({
60
93
  label,
@@ -74,11 +107,13 @@ function UpdatePolicyFields({
74
107
  name,
75
108
  label,
76
109
  policy,
110
+ userNotifications,
77
111
  onChange
78
112
  }) {
113
+ const copy = userNotifications ? NOTIFIED_COPY : silentCopy(policy.countdownSeconds);
79
114
  const waits = policy.mode === "WAIT";
80
115
  const deadline = waits && policy.deadlineEnabled;
81
- const countdown = /* @__PURE__ */ jsx(
116
+ const countdown = userNotifications && /* @__PURE__ */ jsx(
82
117
  SecondsSelect,
83
118
  {
84
119
  label: "Countdown",
@@ -98,7 +133,7 @@ function UpdatePolicyFields({
98
133
  variant: "grouped",
99
134
  value: policy.mode,
100
135
  onValueChange: (mode) => onChange({ ...policy, mode }),
101
- options: MODE_OPTIONS,
136
+ options: [copy.wait, copy.force],
102
137
  itemClassName: "py-[var(--spacing-system-sf)]"
103
138
  }
104
139
  )
@@ -110,8 +145,8 @@ function UpdatePolicyFields({
110
145
  id: `${name}-deadline`,
111
146
  checked: policy.deadlineEnabled,
112
147
  onCheckedChange: (deadlineEnabled) => onChange({ ...policy, deadlineEnabled }),
113
- label: "Countdown after the deadline",
114
- description: "If the update still isn\u2019t installed by the deadline, the user gets a countdown and then it installs."
148
+ label: copy.deadline.label,
149
+ description: copy.deadline.description
115
150
  }
116
151
  ),
117
152
  deadline && /* @__PURE__ */ jsxs("div", { className: "grid grid-cols-1 gap-[var(--spacing-system-lf)] content-md:grid-cols-3 content-md:items-start", children: [
@@ -126,10 +161,14 @@ function UpdatePolicyFields({
126
161
  ),
127
162
  countdown
128
163
  ] })
129
- ] }) : /* @__PURE__ */ jsx("div", { className: "grid grid-cols-1 gap-[var(--spacing-system-lf)] content-md:grid-cols-3", children: countdown })
164
+ ] }) : userNotifications && /* @__PURE__ */ jsx("div", { className: "grid grid-cols-1 gap-[var(--spacing-system-lf)] content-md:grid-cols-3", children: countdown })
130
165
  ] });
131
166
  }
132
- function SoftwareUpdateSettingsFields({ value, onChange }) {
167
+ function SoftwareUpdateSettingsFields({
168
+ value,
169
+ onChange,
170
+ userNotifications = false
171
+ }) {
133
172
  return /* @__PURE__ */ jsxs("section", { "aria-labelledby": "software-update-settings", className: "flex flex-col gap-[var(--spacing-system-l)]", children: [
134
173
  /* @__PURE__ */ jsx("h2", { id: "software-update-settings", className: "pt-[var(--spacing-system-l)] text-ods-text-primary text-h2", children: "Update Settings" }),
135
174
  /* @__PURE__ */ jsx(
@@ -138,6 +177,7 @@ function SoftwareUpdateSettingsFields({ value, onChange }) {
138
177
  name: "updatePolicy",
139
178
  label: "If the app is running",
140
179
  policy: value.policy,
180
+ userNotifications,
141
181
  onChange: (policy) => onChange({ ...value, policy })
142
182
  }
143
183
  ),
@@ -151,7 +191,7 @@ function SoftwareUpdateSettingsFields({ value, onChange }) {
151
191
  checked: value.autoUpdate,
152
192
  onCheckedChange: (autoUpdate) => onChange({ ...value, autoUpdate }),
153
193
  label: "Keep it auto-updated",
154
- description: "After this update, OpenFrame installs each new version from Winget or Brew on the selected devices. When off, only this update runs."
194
+ description: AUTO_UPDATE_DESCRIPTION
155
195
  }
156
196
  ),
157
197
  value.autoUpdate && /* @__PURE__ */ jsxs(Fragment, { children: [
@@ -171,26 +211,13 @@ function SoftwareUpdateSettingsFields({ value, onChange }) {
171
211
  name: "autoUpdatePolicy",
172
212
  label: "For auto-updates",
173
213
  policy: value.autoUpdatePolicy,
214
+ userNotifications,
174
215
  onChange: (autoUpdatePolicy) => onChange({ ...value, autoUpdatePolicy })
175
216
  }
176
217
  ) })
177
218
  ] })
178
219
  ] })
179
- ] }),
180
- value.autoUpdate && /* @__PURE__ */ jsxs(
181
- Alert,
182
- {
183
- role: "note",
184
- className: "flex items-center gap-[var(--spacing-system-m)] rounded-[6px] border-ods-border bg-ods-card p-[var(--spacing-system-m)]",
185
- children: [
186
- /* @__PURE__ */ jsx("span", { className: "shrink-0 text-ods-text-secondary", children: /* @__PURE__ */ jsx(InfoCircleIcon, { size: 24, color: "currentColor" }) }),
187
- /* @__PURE__ */ jsxs("div", { className: "flex min-w-0 flex-1 flex-col gap-[var(--spacing-system-xxs)]", children: [
188
- /* @__PURE__ */ jsx("p", { className: "text-ods-text-primary text-h3", children: "Apps installed by hand get reinstalled" }),
189
- /* @__PURE__ */ jsx("p", { className: "text-ods-text-secondary text-h6", children: "On the first update, OpenFrame reinstalls them with Winget or Brew so it can keep them updated." })
190
- ] })
191
- ]
192
- }
193
- )
220
+ ] })
194
221
  ] });
195
222
  }
196
223
  export {
@@ -198,5 +225,6 @@ export {
198
225
  DEFAULT_SOFTWARE_UPDATE_SETTINGS,
199
226
  SOFTWARE_UPDATE_COUNTDOWN_OPTIONS,
200
227
  SOFTWARE_UPDATE_DEADLINE_OPTIONS,
201
- SoftwareUpdateSettingsFields
228
+ SoftwareUpdateSettingsFields,
229
+ defaultSoftwareUpdateSettings
202
230
  };