@limrun/ui 0.9.0-rc.14 → 0.9.0-rc.15

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 (30) hide show
  1. package/dist/components/remote-control.d.ts +125 -1
  2. package/dist/core/device-install/apple/provisioning.d.ts +55 -4
  3. package/dist/core/device-install/operations/limbuild-client.d.ts +15 -1
  4. package/dist/core/device-install/storage/browser-storage.d.ts +9 -5
  5. package/dist/core/device-install/types.d.ts +4 -1
  6. package/dist/device-install/index.cjs +1 -1
  7. package/dist/device-install/index.js +70 -64
  8. package/dist/device-install/react.cjs +1 -1
  9. package/dist/device-install/react.js +1 -1
  10. package/dist/device-install-dialog-DY35un0b.js +9 -0
  11. package/dist/device-install-dialog-chNLeiiL.mjs +2000 -0
  12. package/dist/device-install-dialog.css +1 -1
  13. package/dist/hooks/use-device-install.d.ts +5 -1
  14. package/dist/index.cjs +1 -1
  15. package/dist/index.js +1286 -1116
  16. package/dist/use-device-install-BIrl0v-k.js +31 -0
  17. package/dist/{use-device-install-sDVvby1V.mjs → use-device-install-LGfEdqyM.mjs} +4388 -4271
  18. package/package.json +4 -2
  19. package/src/components/device-install/device-install-dialog.css +29 -0
  20. package/src/components/device-install/device-install-dialog.tsx +91 -30
  21. package/src/components/remote-control.tsx +535 -5
  22. package/src/core/device-install/apple/provisioning.test.ts +84 -0
  23. package/src/core/device-install/apple/provisioning.ts +91 -7
  24. package/src/core/device-install/operations/limbuild-client.ts +32 -2
  25. package/src/core/device-install/storage/browser-storage.ts +29 -14
  26. package/src/core/device-install/types.ts +5 -1
  27. package/src/hooks/use-device-install.ts +135 -59
  28. package/dist/device-install-dialog-CjH25hnN.js +0 -2
  29. package/dist/device-install-dialog-W5Xv9kWL.mjs +0 -443
  30. package/dist/use-device-install-Y1u6vIBB.js +0 -31
@@ -1 +1 @@
1
- .lr-device-install{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}.lr-device-install__trigger,.lr-device-install__primary,.lr-device-install__secondary,.lr-device-install__icon-button{border:1px solid #d1d5db;border-radius:8px;cursor:pointer;font:inherit}.lr-device-install__trigger,.lr-device-install__primary{background:#111827;color:#fff;padding:8px 12px}.lr-device-install__secondary,.lr-device-install__icon-button{background:#fff;color:#111827;padding:8px 12px}.lr-device-install__trigger:disabled,.lr-device-install__primary:disabled,.lr-device-install__secondary:disabled{cursor:not-allowed;opacity:.55}.lr-device-install__backdrop{align-items:center;background:#1118278c;display:flex;inset:0;justify-content:center;padding:24px;position:fixed;z-index:50}.lr-device-install__dialog{background:#fff;border-radius:16px;box-shadow:0 24px 80px #0f172a47;color:#111827;max-height:min(90vh,900px);max-width:880px;overflow:auto;padding:24px;width:100%}.lr-device-install__header{align-items:flex-start;display:flex;gap:16px;justify-content:space-between;margin-bottom:18px}.lr-device-install__header h2,.lr-device-install__step h3,.lr-device-install__logs h3{margin:0}.lr-device-install__header p,.lr-device-install__step p,.lr-device-install__logs{color:#4b5563}.lr-device-install__error{background:#fef2f2;border:1px solid #fecaca;border-radius:10px;color:#991b1b;margin-bottom:14px;padding:10px 12px}.lr-device-install__steps{display:grid;gap:12px}.lr-device-install__step{border:1px solid #e5e7eb;border-radius:12px;padding:14px}.lr-device-install__step--active{border-color:#111827}.lr-device-install__step-header{align-items:flex-start;background:transparent;border:0;color:inherit;cursor:pointer;display:grid;gap:12px;grid-template-columns:auto 1fr auto;padding:0;text-align:left;width:100%}.lr-device-install__step-number{align-items:center;background:#111827;border-radius:999px;color:#fff;display:flex;font-size:13px;font-weight:700;height:28px;justify-content:center;width:28px}.lr-device-install__status{border-radius:999px;font-size:12px;padding:3px 8px;text-transform:capitalize}.lr-device-install__status--idle{background:#f3f4f6;color:#4b5563}.lr-device-install__status--active{background:#dbeafe;color:#1d4ed8}.lr-device-install__status--complete{background:#dcfce7;color:#166534}.lr-device-install__status--error{background:#fee2e2;color:#991b1b}.lr-device-install__step-body{display:grid;gap:12px;margin-top:12px}.lr-device-install__choice-grid{display:grid;gap:10px;grid-template-columns:repeat(2,minmax(0,1fr))}.lr-device-install__choice{background:#fff;border:1px solid #d1d5db;border-radius:10px;color:inherit;cursor:pointer;display:grid;gap:6px;padding:12px;text-align:left}.lr-device-install__choice span{color:#4b5563;font-size:13px}.lr-device-install__choice--active{border-color:#111827;box-shadow:0 0 0 1px #111827}.lr-device-install__section-panel{border:1px solid #e5e7eb;border-radius:12px;display:grid;gap:12px;padding:12px}.lr-device-install__grid{display:grid;gap:10px;grid-template-columns:repeat(3,minmax(0,1fr))}.lr-device-install__field{display:grid;gap:6px}.lr-device-install__field span{color:#374151;font-size:13px;font-weight:600}.lr-device-install__field input,.lr-device-install__field select{border:1px solid #d1d5db;border-radius:8px;font:inherit;padding:8px 10px}.lr-device-install__actions{align-items:center;display:flex;flex-wrap:wrap;gap:10px}.lr-device-install__hint{color:#6b7280;font-size:13px}.lr-device-install__checklist{border:1px solid #e5e7eb;border-radius:10px;display:grid;overflow:hidden}.lr-device-install__check-row{align-items:center;display:flex;gap:12px;justify-content:space-between;padding:10px 12px}.lr-device-install__check-row+.lr-device-install__check-row{border-top:1px solid #e5e7eb}.lr-device-install__check-row strong{color:#111827;font-size:13px}.lr-device-install__build-logs{border:1px solid #e5e7eb;border-radius:10px;overflow:hidden}.lr-device-install__build-logs summary{cursor:pointer;font-weight:600;padding:10px 12px}.lr-device-install__build-logs pre{background:#0f172a;color:#e5e7eb;margin:0;max-height:240px;overflow:auto;padding:12px;white-space:pre-wrap}.lr-device-install__device{background:#f9fafb;border:1px solid #e5e7eb;border-radius:10px;padding:10px}.lr-device-install__logs{border-top:1px solid #e5e7eb;margin-top:18px;padding-top:14px}.lr-device-install__logs ol{display:grid;gap:6px;list-style:none;margin:8px 0 0;max-height:160px;overflow:auto;padding:0}.lr-device-install__logs li{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,monospace;font-size:12px;white-space:pre-wrap}@media (max-width: 760px){.lr-device-install__choice-grid,.lr-device-install__grid{grid-template-columns:1fr}.lr-device-install__step-header{grid-template-columns:auto 1fr}.lr-device-install__status{grid-column:2}}
1
+ .lr-device-install{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}.lr-device-install__trigger,.lr-device-install__primary,.lr-device-install__secondary,.lr-device-install__icon-button{border:1px solid #d1d5db;border-radius:8px;cursor:pointer;font:inherit}.lr-device-install__trigger,.lr-device-install__primary{background:#111827;color:#fff;padding:8px 12px}.lr-device-install__secondary,.lr-device-install__icon-button{background:#fff;color:#111827;padding:8px 12px}.lr-device-install__trigger:disabled,.lr-device-install__primary:disabled,.lr-device-install__secondary:disabled{cursor:not-allowed;opacity:.55}.lr-device-install__backdrop{align-items:center;background:#1118278c;display:flex;inset:0;justify-content:center;padding:24px;position:fixed;z-index:50}.lr-device-install__dialog{background:#fff;border-radius:16px;box-shadow:0 24px 80px #0f172a47;color:#111827;max-height:min(90vh,900px);max-width:880px;overflow:auto;padding:24px;width:100%}.lr-device-install__header{align-items:flex-start;display:flex;gap:16px;justify-content:space-between;margin-bottom:18px}.lr-device-install__header h2,.lr-device-install__step h3,.lr-device-install__logs h3{margin:0}.lr-device-install__header p,.lr-device-install__step p,.lr-device-install__logs{color:#4b5563}.lr-device-install__error{background:#fef2f2;border:1px solid #fecaca;border-radius:10px;color:#991b1b;margin-bottom:14px;padding:10px 12px}.lr-device-install__steps{display:grid;gap:12px}.lr-device-install__step{border:1px solid #e5e7eb;border-radius:12px;padding:14px}.lr-device-install__step--active{border-color:#111827}.lr-device-install__step-header{align-items:flex-start;background:transparent;border:0;color:inherit;cursor:pointer;display:grid;gap:12px;grid-template-columns:auto 1fr auto;padding:0;text-align:left;width:100%}.lr-device-install__step-number{align-items:center;background:#111827;border-radius:999px;color:#fff;display:flex;font-size:13px;font-weight:700;height:28px;justify-content:center;width:28px}.lr-device-install__status{border-radius:999px;font-size:12px;padding:3px 8px;text-transform:capitalize}.lr-device-install__status--idle{background:#f3f4f6;color:#4b5563}.lr-device-install__status--active{background:#dbeafe;color:#1d4ed8}.lr-device-install__status--complete{background:#dcfce7;color:#166534}.lr-device-install__status--error{background:#fee2e2;color:#991b1b}.lr-device-install__step-body{display:grid;gap:12px;margin-top:12px}.lr-device-install__choice-grid{display:grid;gap:10px;grid-template-columns:repeat(2,minmax(0,1fr))}.lr-device-install__choice{background:#fff;border:1px solid #d1d5db;border-radius:10px;color:inherit;cursor:pointer;display:grid;gap:6px;padding:12px;text-align:left}.lr-device-install__choice span{color:#4b5563;font-size:13px}.lr-device-install__choice--active{border-color:#111827;box-shadow:0 0 0 1px #111827}.lr-device-install__section-panel{border:1px solid #e5e7eb;border-radius:12px;display:grid;gap:12px;padding:12px}.lr-device-install__section-panel h4{margin:0 0 4px}.lr-device-install__grid{display:grid;gap:10px;grid-template-columns:repeat(3,minmax(0,1fr))}.lr-device-install__field{display:grid;gap:6px}.lr-device-install__field span{color:#374151;font-size:13px;font-weight:600}.lr-device-install__field input,.lr-device-install__field select{border:1px solid #d1d5db;border-radius:8px;font:inherit;padding:8px 10px}.lr-device-install__actions{align-items:center;display:flex;flex-wrap:wrap;gap:10px}.lr-device-install__hint{color:#6b7280;font-size:13px}.lr-device-install__ota-panel{justify-items:start}.lr-device-install__qr{border:1px solid #e5e7eb;border-radius:12px;height:240px;width:240px}.lr-device-install__qr-placeholder{align-items:center;background:#f9fafb;border:1px dashed #d1d5db;border-radius:12px;color:#6b7280;display:flex;height:240px;justify-content:center;padding:16px;text-align:center;width:240px}.lr-device-install__checklist{border:1px solid #e5e7eb;border-radius:10px;display:grid;overflow:hidden}.lr-device-install__check-row{align-items:center;display:flex;gap:12px;justify-content:space-between;padding:10px 12px}.lr-device-install__check-row+.lr-device-install__check-row{border-top:1px solid #e5e7eb}.lr-device-install__check-row strong{color:#111827;font-size:13px}.lr-device-install__build-logs{border:1px solid #e5e7eb;border-radius:10px;overflow:hidden}.lr-device-install__build-logs summary{cursor:pointer;font-weight:600;padding:10px 12px}.lr-device-install__build-logs pre{background:#0f172a;color:#e5e7eb;margin:0;max-height:240px;overflow:auto;padding:12px;white-space:pre-wrap}.lr-device-install__device{background:#f9fafb;border:1px solid #e5e7eb;border-radius:10px;padding:10px}.lr-device-install__logs{border-top:1px solid #e5e7eb;margin-top:18px;padding-top:14px}.lr-device-install__logs ol{display:grid;gap:6px;list-style:none;margin:8px 0 0;max-height:160px;overflow:auto;padding:0}.lr-device-install__logs li{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,monospace;font-size:12px;white-space:pre-wrap}@media (max-width: 760px){.lr-device-install__choice-grid,.lr-device-install__grid{grid-template-columns:1fr}.lr-device-install__step-header{grid-template-columns:auto 1fr}.lr-device-install__status{grid-column:2}}
@@ -1,4 +1,4 @@
1
- import { AppleDeveloperPortalDevice, AppleDeveloperPortalAppID, AppleDeveloperPortalTeam, BuildLogLine, DeviceInstallBuildStatus, DeviceInstallBusyAction, DeviceInstallStep, DeviceInstallStepStatus } from '../core/device-install';
1
+ import { AppleDeveloperPortalDevice, AppleDeveloperPortalAppID, AppleDeveloperPortalTeam, BuildLogLine, DeviceInstallBuildStatus, DeviceInstallBusyAction, DeviceInstallStep, DeviceInstallStepStatus, DeviceInstallSigningMode, IOSOTAInstall } from '../core/device-install';
2
2
  type DeviceInstallStepStatuses = Record<DeviceInstallStep, DeviceInstallStepStatus>;
3
3
  export type UseDeviceInstallOptions = {
4
4
  apiUrl?: string;
@@ -15,6 +15,7 @@ export type UseDeviceInstallResult = {
15
15
  logs: string[];
16
16
  buildLogs: BuildLogLine[];
17
17
  buildStatus: DeviceInstallBuildStatus;
18
+ currentExecID?: string;
18
19
  appleSigningStatus: DeviceInstallAppleSigningStatus;
19
20
  appleTeams: AppleDeveloperPortalTeam[];
20
21
  appleDevices: AppleDeveloperPortalDevice[];
@@ -22,10 +23,12 @@ export type UseDeviceInstallResult = {
22
23
  applePortalSummary?: ApplePortalSummary;
23
24
  selectedAppleTeamID?: string;
24
25
  selectedAppleDeviceIDs: string[];
26
+ signingMode: DeviceInstallSigningMode;
25
27
  connectedAppleDeviceRegistered: boolean;
26
28
  connectedDeviceInProfile?: boolean;
27
29
  hasReusableAppleCertificate: boolean;
28
30
  appleBundleID: string;
31
+ otaInstall?: IOSOTAInstall;
29
32
  buildLogPanelOpen: boolean;
30
33
  busyAction?: DeviceInstallBusyAction;
31
34
  error?: string;
@@ -37,6 +40,7 @@ export type UseDeviceInstallResult = {
37
40
  setSigningFiles: (files: DeviceInstallSigningFiles) => void;
38
41
  setAppleBundleID: (bundleID: string) => void;
39
42
  setSelectedAppleDeviceIDs: (deviceIDs: string[]) => void;
43
+ setSigningMode: (mode: DeviceInstallSigningMode) => void;
40
44
  setBuildLogPanelOpen: (open: boolean) => void;
41
45
  startAppleIDLogin: (input: DeviceInstallAppleIDLoginInput) => Promise<void>;
42
46
  submitAppleTwoFactorCode: (code: string) => Promise<void>;