@limrun/ui 0.9.0-rc.5 → 0.9.0-rc.7

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 (73) hide show
  1. package/README.md +9 -0
  2. package/dist/components/device-install/device-install-dialog.d.ts +5 -0
  3. package/dist/components/device-install/index.d.ts +2 -0
  4. package/dist/components/inspect-overlay.d.ts +1 -0
  5. package/dist/components/remote-control.d.ts +13 -2
  6. package/dist/core/ax-tree.d.ts +2 -0
  7. package/dist/core/device-install/apple/client.d.ts +17 -0
  8. package/dist/core/device-install/apple/crypto.d.ts +20 -0
  9. package/dist/core/device-install/apple/gsa-srp.d.ts +26 -0
  10. package/dist/core/device-install/apple/index.d.ts +5 -0
  11. package/dist/core/device-install/apple/provisioning.d.ts +161 -0
  12. package/dist/core/device-install/apple/relay.d.ts +29 -0
  13. package/dist/core/device-install/index.d.ts +4 -0
  14. package/dist/core/device-install/operations/index.d.ts +6 -0
  15. package/dist/core/device-install/operations/limbuild-client.d.ts +28 -0
  16. package/dist/core/device-install/operations/operations.d.ts +32 -0
  17. package/dist/core/device-install/operations/relay-client.d.ts +25 -0
  18. package/dist/core/device-install/operations/relay-protocol.d.ts +27 -0
  19. package/dist/core/device-install/operations/usbmux.d.ts +32 -0
  20. package/dist/core/device-install/operations/webusb.d.ts +21 -0
  21. package/dist/core/device-install/storage/browser-storage.d.ts +44 -0
  22. package/dist/core/device-install/storage/index.d.ts +1 -0
  23. package/dist/core/device-install/types.d.ts +48 -0
  24. package/dist/device-install/index.cjs +1 -0
  25. package/dist/device-install/index.d.ts +3 -0
  26. package/dist/device-install/index.js +78 -0
  27. package/dist/device-install/react.cjs +1 -0
  28. package/dist/device-install/react.d.ts +1 -0
  29. package/dist/device-install/react.js +4 -0
  30. package/dist/device-install-dialog-86RDdoK9.js +2 -0
  31. package/dist/device-install-dialog-CnyDWf0q.mjs +462 -0
  32. package/dist/device-install-dialog.css +1 -0
  33. package/dist/hooks/index.d.ts +1 -0
  34. package/dist/hooks/use-device-install.d.ts +73 -0
  35. package/dist/index.cjs +1 -1
  36. package/dist/index.css +1 -1
  37. package/dist/index.d.ts +3 -1
  38. package/dist/index.js +737 -703
  39. package/dist/use-device-install-CbGVvwPp.js +31 -0
  40. package/dist/use-device-install-j1Gekpl4.mjs +13623 -0
  41. package/package.json +15 -2
  42. package/src/components/device-install/device-install-dialog.css +325 -0
  43. package/src/components/device-install/device-install-dialog.tsx +513 -0
  44. package/src/components/device-install/index.ts +2 -0
  45. package/src/components/inspect-overlay.css +6 -0
  46. package/src/components/inspect-overlay.tsx +46 -15
  47. package/src/components/remote-control.tsx +16 -2
  48. package/src/core/ax-tree.test.ts +124 -0
  49. package/src/core/ax-tree.ts +107 -0
  50. package/src/core/device-install/apple/client.ts +152 -0
  51. package/src/core/device-install/apple/crypto.ts +202 -0
  52. package/src/core/device-install/apple/gsa-srp.ts +127 -0
  53. package/src/core/device-install/apple/index.ts +5 -0
  54. package/src/core/device-install/apple/provisioning.ts +298 -0
  55. package/src/core/device-install/apple/relay.ts +221 -0
  56. package/src/core/device-install/index.ts +4 -0
  57. package/src/core/device-install/operations/index.ts +6 -0
  58. package/src/core/device-install/operations/limbuild-client.ts +104 -0
  59. package/src/core/device-install/operations/operations.ts +217 -0
  60. package/src/core/device-install/operations/relay-client.ts +255 -0
  61. package/src/core/device-install/operations/relay-protocol.ts +71 -0
  62. package/src/core/device-install/operations/usbmux.ts +270 -0
  63. package/src/core/device-install/operations/webusb-dom.d.ts +54 -0
  64. package/src/core/device-install/operations/webusb.ts +105 -0
  65. package/src/core/device-install/storage/browser-storage.ts +263 -0
  66. package/src/core/device-install/storage/index.ts +1 -0
  67. package/src/core/device-install/types.ts +65 -0
  68. package/src/device-install/index.ts +3 -0
  69. package/src/device-install/react.ts +1 -0
  70. package/src/hooks/index.ts +1 -0
  71. package/src/hooks/use-device-install.ts +1210 -0
  72. package/src/index.ts +4 -0
  73. package/vite.config.ts +6 -2
package/dist/index.css CHANGED
@@ -1 +1 @@
1
- .rc-container{position:relative;display:flex;align-items:center;justify-content:center;box-sizing:border-box;isolation:isolate;touch-action:none;width:100%;height:100%}.rc-phone-frame{position:relative;z-index:30;display:block;pointer-events:none;-webkit-user-select:none;user-select:none;width:auto;height:auto;max-width:100%;max-height:100%}.rc-phone-frame-ios{z-index:10}.rc-video{position:absolute;z-index:20;outline:none;pointer-events:none;cursor:none;background-color:#000;object-fit:contain;object-position:center center;inset:50% auto auto 50%;transform:translate(-50%,-50%)}.rc-video-frameless{position:relative;top:auto;left:auto;transform:none;max-width:100%;max-height:100%}.rc-video-loading{aspect-ratio:9 / 19.5}.rc-touch-indicator{position:absolute;z-index:40;width:40px;height:40px;border-radius:50%;transform:translate(-50%,-50%);pointer-events:none;background:#ffffff59;border:2px solid rgba(255,255,255,.6);box-shadow:0 2px 8px #00000059;will-change:transform,left,top}.rc-retry-button{position:absolute;z-index:50;top:50%;left:50%;transform:translate(-50%,-50%);border:0;border-radius:9999px;padding:10px 16px;background:#ffffffeb;color:#111827;font:inherit;font-weight:600;cursor:pointer;box-shadow:0 8px 24px #0003}.rc-retry-button:hover{background:#fff}.rc-retry-button:focus-visible{outline:2px solid #2563eb;outline-offset:2px}.rc-inspect-overlay{position:absolute;z-index:25;pointer-events:none;overflow:hidden}.rc-inspect-overlay-select{pointer-events:auto}.rc-inspect-box{position:absolute;box-sizing:border-box;border:1px solid rgba(64,169,255,.55);background:#40a9ff0f;border-radius:2px;cursor:pointer;pointer-events:none;transition:border-color 80ms ease,border-width 80ms ease,background-color 80ms ease;padding:0;margin:0;font:inherit;color:inherit;outline:none}.rc-inspect-overlay-select .rc-inspect-box{pointer-events:auto}.rc-inspect-box-disabled{opacity:.55}.rc-inspect-box[data-highlighted=true]{border-color:#ffc51cf2;border-width:1.5px;background:#ffc51c29;z-index:1}.rc-inspect-box[data-selected=true]{border-color:#007aff;border-width:2px;background:#007aff38;z-index:2}.rc-inspect-card{position:fixed;z-index:2147483600;pointer-events:auto;background:#16181ef7;color:#f5f5f7;border:1px solid rgba(255,255,255,.1);border-radius:10px;padding:9px 11px 11px;min-width:200px;max-width:260px;max-height:220px;overflow-y:auto;box-shadow:0 12px 36px #0006,0 1px #ffffff0a inset;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;font-size:12px;line-height:1.4;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);scrollbar-width:thin}.rc-inspect-card-header{display:flex;align-items:center;gap:5px;flex-wrap:wrap;margin-bottom:4px}.rc-inspect-card-role{font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:#f5f5f78c;display:inline-block;white-space:nowrap}.rc-inspect-card-tag{font-size:9px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;padding:1px 5px;border-radius:4px;background:#ffffff14;color:#f5f5f7b3;border:1px solid rgba(255,255,255,.06)}.rc-inspect-card-tag-blue{background:#0a84ff2e;border-color:#0a84ff73;color:#8cc3ff}.rc-inspect-card-title{font-size:12.5px;font-weight:600;color:#fff;margin:0 0 7px;word-break:break-word;display:-webkit-box;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.rc-inspect-card-row{display:flex;gap:6px;align-items:baseline;font-size:10.5px;color:#f5f5f7b8;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;margin:1px 0;min-width:0}.rc-inspect-card-row-label{color:#f5f5f76b;font-weight:500;flex-shrink:0}.rc-inspect-card-row-value{flex:1 1 auto;min-width:0;word-break:break-word;display:-webkit-box;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.rc-inspect-card-actions{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px;padding-top:9px;border-top:1px solid rgba(255,255,255,.08)}.rc-inspect-card-btn{appearance:none;border:1px solid rgba(255,255,255,.12);background:#ffffff0f;color:#f5f5f7;font:inherit;font-size:11px;font-weight:500;padding:4px 9px;border-radius:6px;cursor:pointer;transition:background-color .1s ease,border-color .1s ease,color .1s ease}.rc-inspect-card-btn:hover:not(:disabled){background:#ffffff1f;border-color:#fff3}.rc-inspect-card-btn:active:not(:disabled){background:#ffffff29}.rc-inspect-card-btn:disabled{opacity:.4;cursor:not-allowed}.rc-inspect-card-btn-primary{background:#007affd9;border-color:#007affe6;color:#fff}.rc-inspect-card-btn-primary:hover:not(:disabled){background:#0a84ff;border-color:#0a84ff}.rc-inspect-card-btn-copied{background:#30d15838;border-color:#30d1588c;color:#9ff0b2}
1
+ .rc-container{position:relative;display:flex;align-items:center;justify-content:center;box-sizing:border-box;isolation:isolate;touch-action:none;width:100%;height:100%}.rc-phone-frame{position:relative;z-index:30;display:block;pointer-events:none;-webkit-user-select:none;user-select:none;width:auto;height:auto;max-width:100%;max-height:100%}.rc-phone-frame-ios{z-index:10}.rc-video{position:absolute;z-index:20;outline:none;pointer-events:none;cursor:none;background-color:#000;object-fit:contain;object-position:center center;inset:50% auto auto 50%;transform:translate(-50%,-50%)}.rc-video-frameless{position:relative;top:auto;left:auto;transform:none;max-width:100%;max-height:100%}.rc-video-loading{aspect-ratio:9 / 19.5}.rc-touch-indicator{position:absolute;z-index:40;width:40px;height:40px;border-radius:50%;transform:translate(-50%,-50%);pointer-events:none;background:#ffffff59;border:2px solid rgba(255,255,255,.6);box-shadow:0 2px 8px #00000059;will-change:transform,left,top}.rc-retry-button{position:absolute;z-index:50;top:50%;left:50%;transform:translate(-50%,-50%);border:0;border-radius:9999px;padding:10px 16px;background:#ffffffeb;color:#111827;font:inherit;font-weight:600;cursor:pointer;box-shadow:0 8px 24px #0003}.rc-retry-button:hover{background:#fff}.rc-retry-button:focus-visible{outline:2px solid #2563eb;outline-offset:2px}.rc-inspect-overlay{position:absolute;z-index:25;pointer-events:none;overflow:hidden}.rc-inspect-overlay-select{pointer-events:auto;cursor:crosshair}.rc-inspect-box{position:absolute;box-sizing:border-box;border:1px solid rgba(64,169,255,.55);background:#40a9ff0f;border-radius:2px;cursor:pointer;pointer-events:none;transition:border-color 80ms ease,border-width 80ms ease,background-color 80ms ease;padding:0;margin:0;font:inherit;color:inherit;outline:none}.rc-inspect-overlay-select .rc-inspect-box{pointer-events:auto;cursor:crosshair}.rc-inspect-box-disabled{opacity:.55}.rc-inspect-box[data-highlighted=true]{border-color:#ffc51cf2;border-width:1.5px;background:#ffc51c29;z-index:1}.rc-inspect-box[data-selected=true]{border-color:#007aff;border-width:2px;background:#007aff38;z-index:2}.rc-inspect-card{position:fixed;z-index:2147483600;pointer-events:auto;background:#16181ef7;color:#f5f5f7;border:1px solid rgba(255,255,255,.1);border-radius:10px;padding:9px 11px 11px;min-width:200px;max-width:260px;max-height:220px;overflow-y:auto;box-shadow:0 12px 36px #0006,0 1px #ffffff0a inset;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;font-size:12px;line-height:1.4;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);scrollbar-width:thin}.rc-inspect-card-header{display:flex;align-items:center;gap:5px;flex-wrap:wrap;margin-bottom:4px}.rc-inspect-card-role{font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:#f5f5f78c;display:inline-block;white-space:nowrap}.rc-inspect-card-tag{font-size:9px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;padding:1px 5px;border-radius:4px;background:#ffffff14;color:#f5f5f7b3;border:1px solid rgba(255,255,255,.06)}.rc-inspect-card-tag-blue{background:#0a84ff2e;border-color:#0a84ff73;color:#8cc3ff}.rc-inspect-card-title{font-size:12.5px;font-weight:600;color:#fff;margin:0 0 7px;word-break:break-word;display:-webkit-box;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.rc-inspect-card-row{display:flex;gap:6px;align-items:baseline;font-size:10.5px;color:#f5f5f7b8;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;margin:1px 0;min-width:0}.rc-inspect-card-row-label{color:#f5f5f76b;font-weight:500;flex-shrink:0}.rc-inspect-card-row-value{flex:1 1 auto;min-width:0;word-break:break-word;display:-webkit-box;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.rc-inspect-card-actions{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px;padding-top:9px;border-top:1px solid rgba(255,255,255,.08)}.rc-inspect-card-btn{appearance:none;border:1px solid rgba(255,255,255,.12);background:#ffffff0f;color:#f5f5f7;font:inherit;font-size:11px;font-weight:500;padding:4px 9px;border-radius:6px;cursor:pointer;transition:background-color .1s ease,border-color .1s ease,color .1s ease}.rc-inspect-card-btn:hover:not(:disabled){background:#ffffff1f;border-color:#fff3}.rc-inspect-card-btn:active:not(:disabled){background:#ffffff29}.rc-inspect-card-btn:disabled{opacity:.4;cursor:not-allowed}.rc-inspect-card-btn-primary{background:#007affd9;border-color:#007affe6;color:#fff}.rc-inspect-card-btn-primary:hover:not(:disabled){background:#0a84ff;border-color:#0a84ff}.rc-inspect-card-btn-copied{background:#30d15838;border-color:#30d1588c;color:#9ff0b2}
package/dist/index.d.ts CHANGED
@@ -1,5 +1,7 @@
1
1
  export { RemoteControl } from './components/remote-control';
2
2
  export type { RemoteControlHandle } from './components/remote-control';
3
+ export { DeviceInstallDialog, DeviceInstallRelay } from './components/device-install';
4
+ export { useDeviceInstall } from './hooks/use-device-install';
3
5
  export type { AxSnapshot, AxElement, AxRect, AxSelectors, AxPlatform } from './core/ax-tree';
4
6
  export type { AxStatus } from './core/ax-fetcher';
5
- export { axElementAtPoint, axElementSelectorExpression, axElementSummary, axElementsEqual, axSnapshotsEqual, clampAxFrameForScreen, normalizeAndroidTree, normalizeIosTree, AX_UNAVAILABLE_ERROR, } from './core/ax-tree';
7
+ export { axCliTapCommand, axElementAtPoint, axElementSelectorExpression, axElementSelectorObject, axElementSummary, axElementsEqual, axSnapshotsEqual, clampAxFrameForScreen, normalizeAndroidTree, normalizeIosTree, AX_UNAVAILABLE_ERROR, } from './core/ax-tree';