@mlightcad/cad-simple-viewer 1.7.0 → 1.7.1
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.
- package/LICENSE +21 -21
- package/README.md +185 -180
- package/dist/cad-simple-viewer.js +17061 -12706
- package/dist/cad-simple-viewer.umd.cjs +981 -114
- package/dist/mtext-renderer-worker.js +1908 -1765
- package/icons.ts +7 -7
- package/lib/app/AcApContext.d.ts.map +1 -1
- package/lib/app/AcApContext.js +4 -3
- package/lib/app/AcApContext.js.map +1 -1
- package/lib/app/AcApDocManager.d.ts +38 -18
- package/lib/app/AcApDocManager.d.ts.map +1 -1
- package/lib/app/AcApDocManager.js +59 -45
- package/lib/app/AcApDocManager.js.map +1 -1
- package/lib/app/AcApOpenDatabaseOptions.d.ts +17 -1
- package/lib/app/AcApOpenDatabaseOptions.d.ts.map +1 -1
- package/lib/app/AcApOpenDatabaseOptions.js +1 -1
- package/lib/app/AcApOpenDatabaseOptions.js.map +1 -1
- package/lib/app/AcApOpenFileProgressController.d.ts +4 -2
- package/lib/app/AcApOpenFileProgressController.d.ts.map +1 -1
- package/lib/app/AcApOpenFileProgressController.js +4 -2
- package/lib/app/AcApOpenFileProgressController.js.map +1 -1
- package/lib/app/index.d.ts +1 -0
- package/lib/app/index.d.ts.map +1 -1
- package/lib/app/index.js +1 -0
- package/lib/app/index.js.map +1 -1
- package/lib/app/notification/AcApNotificationEventBridge.d.ts +130 -0
- package/lib/app/notification/AcApNotificationEventBridge.d.ts.map +1 -0
- package/lib/app/notification/AcApNotificationEventBridge.js +309 -0
- package/lib/app/notification/AcApNotificationEventBridge.js.map +1 -0
- package/lib/app/notification/AcApNotificationService.d.ts +185 -0
- package/lib/app/notification/AcApNotificationService.d.ts.map +1 -0
- package/lib/app/notification/AcApNotificationService.js +271 -0
- package/lib/app/notification/AcApNotificationService.js.map +1 -0
- package/lib/app/notification/AcApNotificationStore.d.ts +147 -0
- package/lib/app/notification/AcApNotificationStore.d.ts.map +1 -0
- package/lib/app/notification/AcApNotificationStore.js +345 -0
- package/lib/app/notification/AcApNotificationStore.js.map +1 -0
- package/lib/app/notification/AcApNotificationTypes.d.ts +195 -0
- package/lib/app/notification/AcApNotificationTypes.d.ts.map +1 -0
- package/lib/app/notification/AcApNotificationTypes.js +78 -0
- package/lib/app/notification/AcApNotificationTypes.js.map +1 -0
- package/lib/app/notification/index.d.ts +13 -0
- package/lib/app/notification/index.d.ts.map +1 -0
- package/lib/app/notification/index.js +13 -0
- package/lib/app/notification/index.js.map +1 -0
- package/lib/command/AcApInstallDrawStyleSessionAccessory.js +11 -7
- package/lib/command/AcApInstallDrawStyleSessionAccessory.js.map +1 -1
- package/lib/command/AcApSwitchBgCmd.d.ts.map +1 -1
- package/lib/command/AcApSwitchBgCmd.js +7 -2
- package/lib/command/AcApSwitchBgCmd.js.map +1 -1
- package/lib/command/AcApToolbarDocBind.d.ts +19 -0
- package/lib/command/AcApToolbarDocBind.d.ts.map +1 -0
- package/lib/command/AcApToolbarDocBind.js +62 -0
- package/lib/command/AcApToolbarDocBind.js.map +1 -0
- package/lib/command/convert/AcApConvertToBmpCmd.d.ts +14 -0
- package/lib/command/convert/AcApConvertToBmpCmd.d.ts.map +1 -0
- package/lib/command/convert/AcApConvertToBmpCmd.js +34 -0
- package/lib/command/convert/AcApConvertToBmpCmd.js.map +1 -0
- package/lib/command/convert/AcApConvertToJpgCmd.d.ts +14 -0
- package/lib/command/convert/AcApConvertToJpgCmd.d.ts.map +1 -0
- package/lib/command/convert/AcApConvertToJpgCmd.js +34 -0
- package/lib/command/convert/AcApConvertToJpgCmd.js.map +1 -0
- package/lib/command/convert/AcApConvertToPngCmd.d.ts +4 -36
- package/lib/command/convert/AcApConvertToPngCmd.d.ts.map +1 -1
- package/lib/command/convert/AcApConvertToPngCmd.js +4 -138
- package/lib/command/convert/AcApConvertToPngCmd.js.map +1 -1
- package/lib/command/convert/AcApConvertToRasterImageCmd.d.ts +40 -0
- package/lib/command/convert/AcApConvertToRasterImageCmd.d.ts.map +1 -0
- package/lib/command/convert/AcApConvertToRasterImageCmd.js +161 -0
- package/lib/command/convert/AcApConvertToRasterImageCmd.js.map +1 -0
- package/lib/command/convert/{AcApPngConvertor.d.ts → AcApRasterImageConvertor.d.ts} +36 -12
- package/lib/command/convert/AcApRasterImageConvertor.d.ts.map +1 -0
- package/lib/command/convert/{AcApPngConvertor.js → AcApRasterImageConvertor.js} +163 -32
- package/lib/command/convert/AcApRasterImageConvertor.js.map +1 -0
- package/lib/command/convert/index.d.ts +4 -1
- package/lib/command/convert/index.d.ts.map +1 -1
- package/lib/command/convert/index.js +4 -1
- package/lib/command/convert/index.js.map +1 -1
- package/lib/command/index.d.ts +2 -0
- package/lib/command/index.d.ts.map +1 -1
- package/lib/command/index.js +2 -0
- package/lib/command/index.js.map +1 -1
- package/lib/command/markup/AcApMarkupCalloutCmd.d.ts.map +1 -1
- package/lib/command/markup/AcApMarkupCalloutCmd.js +51 -1
- package/lib/command/markup/AcApMarkupCalloutCmd.js.map +1 -1
- package/lib/command/markup/AcApMarkupCmdUtil.d.ts +5 -0
- package/lib/command/markup/AcApMarkupCmdUtil.d.ts.map +1 -1
- package/lib/command/markup/AcApMarkupCmdUtil.js +27 -9
- package/lib/command/markup/AcApMarkupCmdUtil.js.map +1 -1
- package/lib/command/markup/AcApMarkupShapeCallout.d.ts.map +1 -1
- package/lib/command/markup/AcApMarkupShapeCallout.js +49 -1
- package/lib/command/markup/AcApMarkupShapeCallout.js.map +1 -1
- package/lib/editor/global/AcEdUiLayout.d.ts +6 -0
- package/lib/editor/global/AcEdUiLayout.d.ts.map +1 -1
- package/lib/editor/global/AcEdUiLayout.js +6 -0
- package/lib/editor/global/AcEdUiLayout.js.map +1 -1
- package/lib/editor/input/ui/AcEdCanvasTouchCalloutGuard.d.ts +31 -0
- package/lib/editor/input/ui/AcEdCanvasTouchCalloutGuard.d.ts.map +1 -0
- package/lib/editor/input/ui/AcEdCanvasTouchCalloutGuard.js +67 -0
- package/lib/editor/input/ui/AcEdCanvasTouchCalloutGuard.js.map +1 -0
- package/lib/editor/input/ui/AcEdFloatingInput.d.ts +2 -0
- package/lib/editor/input/ui/AcEdFloatingInput.d.ts.map +1 -1
- package/lib/editor/input/ui/AcEdFloatingInput.js +13 -2
- package/lib/editor/input/ui/AcEdFloatingInput.js.map +1 -1
- package/lib/editor/input/ui/AcEdFloatingInputTypes.d.ts +6 -0
- package/lib/editor/input/ui/AcEdFloatingInputTypes.d.ts.map +1 -1
- package/lib/editor/input/ui/AcEdInputManager.d.ts.map +1 -1
- package/lib/editor/input/ui/AcEdInputManager.js +47 -7
- package/lib/editor/input/ui/AcEdInputManager.js.map +1 -1
- package/lib/editor/input/ui/AcEdMobileBoxGesture.d.ts.map +1 -1
- package/lib/editor/input/ui/AcEdMobileBoxGesture.js +2 -0
- package/lib/editor/input/ui/AcEdMobileBoxGesture.js.map +1 -1
- package/lib/editor/input/ui/AcEdMobileCommandChrome.d.ts +18 -4
- package/lib/editor/input/ui/AcEdMobileCommandChrome.d.ts.map +1 -1
- package/lib/editor/input/ui/AcEdMobileCommandChrome.js +14 -0
- package/lib/editor/input/ui/AcEdMobileCommandChrome.js.map +1 -1
- package/lib/editor/input/ui/AcEdSessionAccessoryController.d.ts +10 -2
- package/lib/editor/input/ui/AcEdSessionAccessoryController.d.ts.map +1 -1
- package/lib/editor/input/ui/AcEdSessionAccessoryController.js +15 -4
- package/lib/editor/input/ui/AcEdSessionAccessoryController.js.map +1 -1
- package/lib/editor/input/ui/AcEdTouchPointTiming.d.ts +1 -1
- package/lib/editor/input/ui/AcEdTouchPointTiming.d.ts.map +1 -1
- package/lib/editor/input/ui/AcEdTouchPointTiming.js +1 -1
- package/lib/editor/input/ui/AcEdTouchPointTiming.js.map +1 -1
- package/lib/editor/input/ui/index.d.ts +1 -0
- package/lib/editor/input/ui/index.d.ts.map +1 -1
- package/lib/editor/input/ui/index.js +1 -0
- package/lib/editor/input/ui/index.js.map +1 -1
- package/lib/editor/view/AcEdBaseView.d.ts +12 -0
- package/lib/editor/view/AcEdBaseView.d.ts.map +1 -1
- package/lib/editor/view/AcEdBaseView.js +19 -9
- package/lib/editor/view/AcEdBaseView.js.map +1 -1
- package/lib/editor/view/AcEdSelectionBoxIntersect.d.ts +36 -0
- package/lib/editor/view/AcEdSelectionBoxIntersect.d.ts.map +1 -0
- package/lib/editor/view/AcEdSelectionBoxIntersect.js +113 -0
- package/lib/editor/view/AcEdSelectionBoxIntersect.js.map +1 -0
- package/lib/editor/view/index.d.ts +1 -0
- package/lib/editor/view/index.d.ts.map +1 -1
- package/lib/editor/view/index.js +1 -0
- package/lib/editor/view/index.js.map +1 -1
- package/lib/i18n/AcApI18n.d.ts +2 -1
- package/lib/i18n/AcApI18n.d.ts.map +1 -1
- package/lib/i18n/AcApI18n.js +4 -1
- package/lib/i18n/AcApI18n.js.map +1 -1
- package/lib/i18n/ar/command.d.ts +9 -0
- package/lib/i18n/ar/command.d.ts.map +1 -1
- package/lib/i18n/ar/command.js +1 -1
- package/lib/i18n/ar/command.js.map +1 -1
- package/lib/i18n/ar/jig.d.ts +47 -0
- package/lib/i18n/ar/jig.d.ts.map +1 -1
- package/lib/i18n/ar/jig.js +17 -1
- package/lib/i18n/ar/jig.js.map +1 -1
- package/lib/i18n/ar/main.d.ts +30 -0
- package/lib/i18n/ar/main.d.ts.map +1 -1
- package/lib/i18n/ar/main.js +34 -4
- package/lib/i18n/ar/main.js.map +1 -1
- package/lib/i18n/cs/command.d.ts +9 -0
- package/lib/i18n/cs/command.d.ts.map +1 -1
- package/lib/i18n/cs/command.js +9 -0
- package/lib/i18n/cs/command.js.map +1 -1
- package/lib/i18n/cs/jig.d.ts +47 -0
- package/lib/i18n/cs/jig.d.ts.map +1 -1
- package/lib/i18n/cs/jig.js +47 -0
- package/lib/i18n/cs/jig.js.map +1 -1
- package/lib/i18n/cs/main.d.ts +30 -0
- package/lib/i18n/cs/main.d.ts.map +1 -1
- package/lib/i18n/cs/main.js +34 -4
- package/lib/i18n/cs/main.js.map +1 -1
- package/lib/i18n/en/command.d.ts +9 -0
- package/lib/i18n/en/command.d.ts.map +1 -1
- package/lib/i18n/en/command.js +9 -0
- package/lib/i18n/en/command.js.map +1 -1
- package/lib/i18n/en/jig.d.ts +47 -0
- package/lib/i18n/en/jig.d.ts.map +1 -1
- package/lib/i18n/en/jig.js +47 -0
- package/lib/i18n/en/jig.js.map +1 -1
- package/lib/i18n/en/main.d.ts +30 -0
- package/lib/i18n/en/main.d.ts.map +1 -1
- package/lib/i18n/en/main.js +34 -4
- package/lib/i18n/en/main.js.map +1 -1
- package/lib/i18n/index.d.ts +2 -2
- package/lib/i18n/index.d.ts.map +1 -1
- package/lib/i18n/index.js.map +1 -1
- package/lib/i18n/tr/command.d.ts +9 -0
- package/lib/i18n/tr/command.d.ts.map +1 -1
- package/lib/i18n/tr/command.js +9 -0
- package/lib/i18n/tr/command.js.map +1 -1
- package/lib/i18n/tr/jig.d.ts +47 -0
- package/lib/i18n/tr/jig.d.ts.map +1 -1
- package/lib/i18n/tr/jig.js +47 -0
- package/lib/i18n/tr/jig.js.map +1 -1
- package/lib/i18n/tr/main.d.ts +30 -0
- package/lib/i18n/tr/main.d.ts.map +1 -1
- package/lib/i18n/tr/main.js +34 -4
- package/lib/i18n/tr/main.js.map +1 -1
- package/lib/i18n/zh/command.d.ts +9 -0
- package/lib/i18n/zh/command.d.ts.map +1 -1
- package/lib/i18n/zh/command.js +9 -0
- package/lib/i18n/zh/command.js.map +1 -1
- package/lib/i18n/zh/jig.d.ts +47 -0
- package/lib/i18n/zh/jig.d.ts.map +1 -1
- package/lib/i18n/zh/jig.js +47 -0
- package/lib/i18n/zh/jig.js.map +1 -1
- package/lib/i18n/zh/main.d.ts +30 -0
- package/lib/i18n/zh/main.d.ts.map +1 -1
- package/lib/i18n/zh/main.js +34 -4
- package/lib/i18n/zh/main.js.map +1 -1
- package/lib/spatialIndex/AcTrHierarchicalSpatialIndex.d.ts +6 -0
- package/lib/spatialIndex/AcTrHierarchicalSpatialIndex.d.ts.map +1 -1
- package/lib/spatialIndex/AcTrHierarchicalSpatialIndex.js +10 -0
- package/lib/spatialIndex/AcTrHierarchicalSpatialIndex.js.map +1 -1
- package/lib/spatialIndex/AcTrLinearSpatialIndex.d.ts +4 -0
- package/lib/spatialIndex/AcTrLinearSpatialIndex.d.ts.map +1 -1
- package/lib/spatialIndex/AcTrLinearSpatialIndex.js +9 -0
- package/lib/spatialIndex/AcTrLinearSpatialIndex.js.map +1 -1
- package/lib/spatialIndex/AcTrRBushSpatialIndex.d.ts +4 -0
- package/lib/spatialIndex/AcTrRBushSpatialIndex.d.ts.map +1 -1
- package/lib/spatialIndex/AcTrRBushSpatialIndex.js +9 -0
- package/lib/spatialIndex/AcTrRBushSpatialIndex.js.map +1 -1
- package/lib/ui/AcUiDefaultNotificationUi.d.ts +167 -0
- package/lib/ui/AcUiDefaultNotificationUi.d.ts.map +1 -0
- package/lib/ui/AcUiDefaultNotificationUi.js +603 -0
- package/lib/ui/AcUiDefaultNotificationUi.js.map +1 -0
- package/lib/ui/AcUiDrawStyle.d.ts +2 -1
- package/lib/ui/AcUiDrawStyle.d.ts.map +1 -1
- package/lib/ui/AcUiDrawStyle.js +2 -1
- package/lib/ui/AcUiDrawStyle.js.map +1 -1
- package/lib/ui/AcUiDrawStyleSessionAccessory.d.ts.map +1 -1
- package/lib/ui/AcUiDrawStyleSessionAccessory.js +5 -1
- package/lib/ui/AcUiDrawStyleSessionAccessory.js.map +1 -1
- package/lib/ui/AcUiMobileSessionPanel.d.ts +73 -8
- package/lib/ui/AcUiMobileSessionPanel.d.ts.map +1 -1
- package/lib/ui/AcUiMobileSessionPanel.js +314 -49
- package/lib/ui/AcUiMobileSessionPanel.js.map +1 -1
- package/lib/ui/AcUiShortCutToolbar.d.ts +24 -0
- package/lib/ui/AcUiShortCutToolbar.d.ts.map +1 -1
- package/lib/ui/AcUiShortCutToolbar.js +73 -5
- package/lib/ui/AcUiShortCutToolbar.js.map +1 -1
- package/lib/ui/index.d.ts +2 -0
- package/lib/ui/index.d.ts.map +1 -1
- package/lib/ui/index.js +2 -0
- package/lib/ui/index.js.map +1 -1
- package/lib/ui/toolbar/AcUiDropdownMenu.d.ts +48 -0
- package/lib/ui/toolbar/AcUiDropdownMenu.d.ts.map +1 -0
- package/lib/ui/toolbar/AcUiDropdownMenu.js +116 -0
- package/lib/ui/toolbar/AcUiDropdownMenu.js.map +1 -0
- package/lib/ui/toolbar/AcUiSubToolbar.d.ts +125 -0
- package/lib/ui/toolbar/AcUiSubToolbar.d.ts.map +1 -0
- package/lib/ui/toolbar/AcUiSubToolbar.js +625 -0
- package/lib/ui/toolbar/AcUiSubToolbar.js.map +1 -0
- package/lib/ui/toolbar/AcUiToolbar.d.ts +446 -0
- package/lib/ui/toolbar/AcUiToolbar.d.ts.map +1 -0
- package/lib/ui/toolbar/AcUiToolbar.js +1550 -0
- package/lib/ui/toolbar/AcUiToolbar.js.map +1 -0
- package/lib/ui/toolbar/AcUiToolbarStyles.d.ts +20 -0
- package/lib/ui/toolbar/AcUiToolbarStyles.d.ts.map +1 -0
- package/lib/ui/toolbar/AcUiToolbarStyles.js +34 -0
- package/lib/ui/toolbar/AcUiToolbarStyles.js.map +1 -0
- package/lib/ui/toolbar/acuiWrapPackLayout.d.ts +19 -0
- package/lib/ui/toolbar/acuiWrapPackLayout.d.ts.map +1 -0
- package/lib/ui/toolbar/acuiWrapPackLayout.js +36 -0
- package/lib/ui/toolbar/acuiWrapPackLayout.js.map +1 -0
- package/lib/ui/toolbar/index.d.ts +19 -0
- package/lib/ui/toolbar/index.d.ts.map +1 -0
- package/lib/ui/toolbar/index.js +15 -0
- package/lib/ui/toolbar/index.js.map +1 -0
- package/lib/ui/toolbar/resolveToolbarChrome.d.ts +14 -0
- package/lib/ui/toolbar/resolveToolbarChrome.d.ts.map +1 -0
- package/lib/ui/toolbar/resolveToolbarChrome.js +35 -0
- package/lib/ui/toolbar/resolveToolbarChrome.js.map +1 -0
- package/lib/ui/toolbar/resolveToolbarItemState.d.ts +63 -0
- package/lib/ui/toolbar/resolveToolbarItemState.d.ts.map +1 -0
- package/lib/ui/toolbar/resolveToolbarItemState.js +171 -0
- package/lib/ui/toolbar/resolveToolbarItemState.js.map +1 -0
- package/lib/ui/toolbar/toolbarItemUtils.d.ts +62 -0
- package/lib/ui/toolbar/toolbarItemUtils.d.ts.map +1 -0
- package/lib/ui/toolbar/toolbarItemUtils.js +184 -0
- package/lib/ui/toolbar/toolbarItemUtils.js.map +1 -0
- package/lib/ui/toolbar/types.d.ts +268 -0
- package/lib/ui/toolbar/types.d.ts.map +1 -0
- package/lib/ui/toolbar/types.js +8 -0
- package/lib/ui/toolbar/types.js.map +1 -0
- package/lib/ui-html-entry.d.ts +8 -1
- package/lib/ui-html-entry.d.ts.map +1 -1
- package/lib/ui-html-entry.js +6 -1
- package/lib/ui-html-entry.js.map +1 -1
- package/lib/util/AcApAnalyzeUnsupportedDrawing.d.ts +53 -0
- package/lib/util/AcApAnalyzeUnsupportedDrawing.d.ts.map +1 -0
- package/lib/util/AcApAnalyzeUnsupportedDrawing.js +164 -0
- package/lib/util/AcApAnalyzeUnsupportedDrawing.js.map +1 -0
- package/lib/util/AcApFormatFontMissedMessage.d.ts +32 -0
- package/lib/util/AcApFormatFontMissedMessage.d.ts.map +1 -0
- package/lib/util/AcApFormatFontMissedMessage.js +46 -0
- package/lib/util/AcApFormatFontMissedMessage.js.map +1 -0
- package/lib/util/AcApFormatUnsupportedEntitiesMessage.d.ts +44 -0
- package/lib/util/AcApFormatUnsupportedEntitiesMessage.d.ts.map +1 -0
- package/lib/util/AcApFormatUnsupportedEntitiesMessage.js +105 -0
- package/lib/util/AcApFormatUnsupportedEntitiesMessage.js.map +1 -0
- package/lib/util/index.d.ts +3 -0
- package/lib/util/index.d.ts.map +1 -1
- package/lib/util/index.js +3 -0
- package/lib/util/index.js.map +1 -1
- package/lib/view/AcTrLayer.d.ts +13 -1
- package/lib/view/AcTrLayer.d.ts.map +1 -1
- package/lib/view/AcTrLayer.js +28 -11
- package/lib/view/AcTrLayer.js.map +1 -1
- package/lib/view/AcTrLayout.d.ts +17 -2
- package/lib/view/AcTrLayout.d.ts.map +1 -1
- package/lib/view/AcTrLayout.js +44 -3
- package/lib/view/AcTrLayout.js.map +1 -1
- package/lib/view/AcTrScene.d.ts +4 -0
- package/lib/view/AcTrScene.d.ts.map +1 -1
- package/lib/view/AcTrScene.js +6 -0
- package/lib/view/AcTrScene.js.map +1 -1
- package/lib/view/AcTrView2d.d.ts +93 -14
- package/lib/view/AcTrView2d.d.ts.map +1 -1
- package/lib/view/AcTrView2d.js +382 -102
- package/lib/view/AcTrView2d.js.map +1 -1
- package/package.json +8 -8
- package/src/ui/icons.ts +387 -387
- package/lib/command/convert/AcApPngConvertor.d.ts.map +0 -1
- package/lib/command/convert/AcApPngConvertor.js.map +0 -1
|
@@ -34,11 +34,13 @@ var ZERO_TEXTS = {
|
|
|
34
34
|
y: '0'
|
|
35
35
|
};
|
|
36
36
|
/**
|
|
37
|
-
* Shared phone/pad session chrome: bottom panel with title bar (
|
|
38
|
-
* help + collapse),
|
|
37
|
+
* Shared phone/pad session chrome: bottom panel with title bar (session
|
|
38
|
+
* accessory or prompt + help + collapse), message row (prompt + keyword chips
|
|
39
|
+
* when an accessory owns the title), live metrics or a string field, and ✓/×.
|
|
39
40
|
*
|
|
40
|
-
* Compact (collapsed) mode
|
|
41
|
-
*
|
|
41
|
+
* Compact (collapsed) mode is a single row:
|
|
42
|
+
* accessory (if any), command message in leftover space, expand, ✓/×.
|
|
43
|
+
* Metrics, string field, and keyword chips stay hidden.
|
|
42
44
|
*/
|
|
43
45
|
var AcUiMobileSessionPanel = /** @class */ (function () {
|
|
44
46
|
function AcUiMobileSessionPanel(options) {
|
|
@@ -49,9 +51,11 @@ var AcUiMobileSessionPanel = /** @class */ (function () {
|
|
|
49
51
|
this.open = false;
|
|
50
52
|
this.collapsed = false;
|
|
51
53
|
this.showMetrics = false;
|
|
54
|
+
this.showStringInput = false;
|
|
52
55
|
this.hasBasePoint = false;
|
|
53
56
|
this.frozenTexts = null;
|
|
54
57
|
this.frozenHasBasePoint = false;
|
|
58
|
+
this.compactPromptRaf = 0;
|
|
55
59
|
this.host = options.host;
|
|
56
60
|
this.activeClass = (_a = options.activeClass) !== null && _a !== void 0 ? _a : 'ml-mobile-cmd-active';
|
|
57
61
|
this.isPhoneLayout = options.isPhoneLayout;
|
|
@@ -138,6 +142,12 @@ var AcUiMobileSessionPanel = /** @class */ (function () {
|
|
|
138
142
|
this.accessoryObserver.observe(this.accessoryContentEl, {
|
|
139
143
|
childList: true
|
|
140
144
|
});
|
|
145
|
+
if (typeof ResizeObserver !== 'undefined') {
|
|
146
|
+
this.compactPromptObserver = new ResizeObserver(function () {
|
|
147
|
+
_this.scheduleCompactPromptVisibility();
|
|
148
|
+
});
|
|
149
|
+
this.compactPromptObserver.observe(this.accessoryEl);
|
|
150
|
+
}
|
|
141
151
|
this.cancelBtn = document.createElement('button');
|
|
142
152
|
this.cancelBtn.type = 'button';
|
|
143
153
|
this.cancelBtn.className = 'ml-mobile-cmd-cancel';
|
|
@@ -180,7 +190,38 @@ var AcUiMobileSessionPanel = /** @class */ (function () {
|
|
|
180
190
|
this.deltaGroup = document.createElement('div');
|
|
181
191
|
this.deltaGroup.className = 'ml-mobile-cmd-group ml-mobile-cmd-group-delta';
|
|
182
192
|
this.deltaGroup.append(this.deltaStack, this.deltaActions);
|
|
183
|
-
this.
|
|
193
|
+
this.stringInput = document.createElement('textarea');
|
|
194
|
+
this.stringInput.className = 'ml-mobile-cmd-string-input';
|
|
195
|
+
this.stringInput.rows = 1;
|
|
196
|
+
this.stringInput.autocomplete = 'off';
|
|
197
|
+
this.stringInput.spellcheck = false;
|
|
198
|
+
this.stringInput.addEventListener('input', function () {
|
|
199
|
+
_this.syncStringInputHeight();
|
|
200
|
+
});
|
|
201
|
+
this.stringInput.addEventListener('keydown', function (e) {
|
|
202
|
+
var _a, _b;
|
|
203
|
+
// Enter inserts a newline. Ctrl/Cmd+Enter commits (same as ✓).
|
|
204
|
+
if (e.key === 'Enter' && (e.ctrlKey || e.metaKey)) {
|
|
205
|
+
e.preventDefault();
|
|
206
|
+
e.stopPropagation();
|
|
207
|
+
if (_this.confirmBtn.disabled)
|
|
208
|
+
return;
|
|
209
|
+
(_a = _this.callbacks) === null || _a === void 0 ? void 0 : _a.onConfirm();
|
|
210
|
+
}
|
|
211
|
+
else if (e.key === 'Escape') {
|
|
212
|
+
e.preventDefault();
|
|
213
|
+
e.stopPropagation();
|
|
214
|
+
(_b = _this.callbacks) === null || _b === void 0 ? void 0 : _b.onCancel();
|
|
215
|
+
}
|
|
216
|
+
});
|
|
217
|
+
this.sinkPointer(this.stringInput);
|
|
218
|
+
this.stringActions = document.createElement('div');
|
|
219
|
+
this.stringActions.className = 'ml-mobile-cmd-actions';
|
|
220
|
+
this.stringGroup = document.createElement('div');
|
|
221
|
+
this.stringGroup.className = 'ml-mobile-cmd-group ml-mobile-cmd-group-string';
|
|
222
|
+
this.stringGroup.hidden = true;
|
|
223
|
+
this.stringGroup.append(this.stringInput, this.stringActions);
|
|
224
|
+
this.panel.append(this.accessoryEl, this.promptRow, this.absGroup, this.polarGroup, this.deltaGroup, this.stringGroup, this.sharedActions);
|
|
184
225
|
this.root.appendChild(this.panel);
|
|
185
226
|
this.sinkPointer(this.panel);
|
|
186
227
|
this.host.appendChild(this.root);
|
|
@@ -218,15 +259,20 @@ var AcUiMobileSessionPanel = /** @class */ (function () {
|
|
|
218
259
|
*/
|
|
219
260
|
AcUiMobileSessionPanel.prototype.show = function (state, callbacks) {
|
|
220
261
|
var _this = this;
|
|
221
|
-
var _a, _b;
|
|
262
|
+
var _a, _b, _c, _d;
|
|
222
263
|
this.callbacks = callbacks;
|
|
223
264
|
this.open = true;
|
|
224
|
-
this.
|
|
265
|
+
this.showStringInput = state.showStringInput === true;
|
|
266
|
+
this.showMetrics = this.showStringInput ? false : state.showMetrics;
|
|
225
267
|
this.root.hidden = false;
|
|
226
268
|
this.root.setAttribute('aria-hidden', 'false');
|
|
227
269
|
this.host.classList.add(this.activeClass);
|
|
228
270
|
this.promptEl.textContent = stripPromptColon(state.prompt);
|
|
229
|
-
|
|
271
|
+
// String mode: ✓ commits typed text (always enabled). Point / actions:
|
|
272
|
+
// ✓ is empty-Enter / allowNone.
|
|
273
|
+
this.confirmBtn.disabled = this.showStringInput ? false : !state.allowNone;
|
|
274
|
+
this.stringInput.value = (_a = state.stringValue) !== null && _a !== void 0 ? _a : '';
|
|
275
|
+
this.stringInput.placeholder = (_b = state.stringPlaceholder) !== null && _b !== void 0 ? _b : '';
|
|
230
276
|
this.prepareAccessory();
|
|
231
277
|
this.renderChips(state.keywords);
|
|
232
278
|
if (this.frozenTexts) {
|
|
@@ -235,13 +281,26 @@ var AcUiMobileSessionPanel = /** @class */ (function () {
|
|
|
235
281
|
else {
|
|
236
282
|
this.setMetricTexts(ZERO_TEXTS, false);
|
|
237
283
|
}
|
|
238
|
-
(
|
|
239
|
-
this.layoutUnsub = (
|
|
240
|
-
if (_this.open)
|
|
284
|
+
(_c = this.layoutUnsub) === null || _c === void 0 ? void 0 : _c.call(this);
|
|
285
|
+
this.layoutUnsub = (_d = this.subscribeLayout) === null || _d === void 0 ? void 0 : _d.call(this, function () {
|
|
286
|
+
if (_this.open) {
|
|
241
287
|
_this.applyMetricVisibility();
|
|
288
|
+
if (_this.showStringInput)
|
|
289
|
+
_this.syncStringInputHeight();
|
|
290
|
+
}
|
|
242
291
|
});
|
|
243
292
|
this.applyMetricVisibility();
|
|
244
293
|
this.refreshLabels();
|
|
294
|
+
if (this.showStringInput) {
|
|
295
|
+
this.syncStringInputHeight();
|
|
296
|
+
// Defer so the soft keyboard opens after the panel paints.
|
|
297
|
+
requestAnimationFrame(function () {
|
|
298
|
+
if (_this.open && _this.showStringInput) {
|
|
299
|
+
_this.syncStringInputHeight();
|
|
300
|
+
_this.stringInput.focus();
|
|
301
|
+
}
|
|
302
|
+
});
|
|
303
|
+
}
|
|
245
304
|
};
|
|
246
305
|
/**
|
|
247
306
|
* Updates prompt / keywords / ✓ without tearing down the session.
|
|
@@ -253,19 +312,75 @@ var AcUiMobileSessionPanel = /** @class */ (function () {
|
|
|
253
312
|
return;
|
|
254
313
|
if (partial.prompt != null) {
|
|
255
314
|
this.promptEl.textContent = stripPromptColon(partial.prompt);
|
|
315
|
+
if (this.collapsed)
|
|
316
|
+
this.scheduleCompactPromptVisibility();
|
|
256
317
|
}
|
|
257
|
-
if (partial.
|
|
318
|
+
if (partial.showStringInput != null) {
|
|
319
|
+
this.showStringInput = partial.showStringInput;
|
|
320
|
+
if (this.showStringInput)
|
|
321
|
+
this.showMetrics = false;
|
|
322
|
+
this.confirmBtn.disabled = this.showStringInput
|
|
323
|
+
? false
|
|
324
|
+
: partial.allowNone != null
|
|
325
|
+
? !partial.allowNone
|
|
326
|
+
: this.confirmBtn.disabled;
|
|
327
|
+
this.applyMetricVisibility();
|
|
328
|
+
}
|
|
329
|
+
if (partial.allowNone != null && !this.showStringInput) {
|
|
258
330
|
this.confirmBtn.disabled = !partial.allowNone;
|
|
259
331
|
}
|
|
332
|
+
if (partial.stringValue != null) {
|
|
333
|
+
this.stringInput.value = partial.stringValue;
|
|
334
|
+
this.syncStringInputHeight();
|
|
335
|
+
}
|
|
336
|
+
if (partial.stringPlaceholder != null) {
|
|
337
|
+
this.stringInput.placeholder = partial.stringPlaceholder;
|
|
338
|
+
}
|
|
260
339
|
if (partial.keywords) {
|
|
261
340
|
this.renderChips(partial.keywords);
|
|
262
341
|
this.applyMetricVisibility();
|
|
263
342
|
}
|
|
264
|
-
if (partial.showMetrics != null) {
|
|
343
|
+
if (partial.showMetrics != null && !this.showStringInput) {
|
|
265
344
|
this.showMetrics = partial.showMetrics;
|
|
266
345
|
this.applyMetricVisibility();
|
|
267
346
|
}
|
|
268
347
|
};
|
|
348
|
+
/** Current value of the session string field (empty when not in string mode). */
|
|
349
|
+
AcUiMobileSessionPanel.prototype.getStringValue = function () {
|
|
350
|
+
return this.stringInput.value;
|
|
351
|
+
};
|
|
352
|
+
/** Focuses the session string field when string input mode is active. */
|
|
353
|
+
AcUiMobileSessionPanel.prototype.focusStringInput = function () {
|
|
354
|
+
if (!this.open || !this.showStringInput)
|
|
355
|
+
return;
|
|
356
|
+
this.stringInput.focus();
|
|
357
|
+
};
|
|
358
|
+
/**
|
|
359
|
+
* Sizes the string field from 1 to 3 lines of content. Taller content
|
|
360
|
+
* scrolls inside a 3-line viewport so the right-hand actions/divider stay
|
|
361
|
+
* matched to the visible field height.
|
|
362
|
+
*/
|
|
363
|
+
AcUiMobileSessionPanel.prototype.syncStringInputHeight = function () {
|
|
364
|
+
if (!this.open || !this.showStringInput)
|
|
365
|
+
return;
|
|
366
|
+
var el = this.stringInput;
|
|
367
|
+
var style = getComputedStyle(el);
|
|
368
|
+
var fontSize = parseFloat(style.fontSize) || 14;
|
|
369
|
+
var lineHeight = parseFloat(style.lineHeight) || fontSize * 1.35;
|
|
370
|
+
var padY = (parseFloat(style.paddingTop) || 0) +
|
|
371
|
+
(parseFloat(style.paddingBottom) || 0);
|
|
372
|
+
var borderY = (parseFloat(style.borderTopWidth) || 0) +
|
|
373
|
+
(parseFloat(style.borderBottomWidth) || 0);
|
|
374
|
+
var minH = lineHeight + padY + borderY;
|
|
375
|
+
var maxH = lineHeight * 3 + padY + borderY;
|
|
376
|
+
// Collapse first so scrollHeight reflects the current value.
|
|
377
|
+
el.style.height = "".concat(minH, "px");
|
|
378
|
+
el.style.overflowY = 'hidden';
|
|
379
|
+
var contentH = el.scrollHeight;
|
|
380
|
+
var next = Math.min(Math.max(contentH, minH), maxH);
|
|
381
|
+
el.style.height = "".concat(next, "px");
|
|
382
|
+
el.style.overflowY = contentH > maxH + 0.5 ? 'auto' : 'hidden';
|
|
383
|
+
};
|
|
269
384
|
/**
|
|
270
385
|
* Pushes live metric values (read-only; buttons stay disabled for keypad hook).
|
|
271
386
|
*
|
|
@@ -295,18 +410,39 @@ var AcUiMobileSessionPanel = /** @class */ (function () {
|
|
|
295
410
|
/** Shows the accessory / title row (custom content slot + help + collapse). */
|
|
296
411
|
AcUiMobileSessionPanel.prototype.prepareAccessory = function () {
|
|
297
412
|
this.accessoryEl.hidden = false;
|
|
413
|
+
// Remounts can restore widgets after `show()` already ran placement against
|
|
414
|
+
// an empty slot — re-sync so the prompt stays on the message row.
|
|
415
|
+
if (this.open)
|
|
416
|
+
this.applyMetricVisibility();
|
|
298
417
|
};
|
|
299
418
|
/** Clears custom accessory content; help / collapse stay while open. */
|
|
300
419
|
AcUiMobileSessionPanel.prototype.clearAccessory = function () {
|
|
301
420
|
this.accessoryContentEl.replaceChildren();
|
|
421
|
+
if (this.open)
|
|
422
|
+
this.applyMetricVisibility();
|
|
302
423
|
};
|
|
303
|
-
/**
|
|
424
|
+
/**
|
|
425
|
+
* Hides the panel without clearing accessory widgets.
|
|
426
|
+
*
|
|
427
|
+
* Draw-style (and other) session accessories outlive individual prompts —
|
|
428
|
+
* `endMobilePrompt` / `beginMobilePrompt` pairs between picks must not wipe
|
|
429
|
+
* them. Ownership stays with the accessory mount lifecycle
|
|
430
|
+
* ({@link clearAccessory} via the session-accessory controller).
|
|
431
|
+
*/
|
|
304
432
|
AcUiMobileSessionPanel.prototype.hide = function () {
|
|
305
433
|
var _a;
|
|
306
434
|
this.open = false;
|
|
307
435
|
this.callbacks = null;
|
|
308
|
-
this.
|
|
436
|
+
this.showStringInput = false;
|
|
437
|
+
this.stringInput.value = '';
|
|
438
|
+
this.stringInput.placeholder = '';
|
|
439
|
+
this.stringInput.style.height = '';
|
|
440
|
+
this.stringInput.style.overflowY = '';
|
|
309
441
|
this.accessoryEl.hidden = true;
|
|
442
|
+
if (this.compactPromptRaf) {
|
|
443
|
+
cancelAnimationFrame(this.compactPromptRaf);
|
|
444
|
+
this.compactPromptRaf = 0;
|
|
445
|
+
}
|
|
310
446
|
this.setCollapsed(false);
|
|
311
447
|
(_a = this.layoutUnsub) === null || _a === void 0 ? void 0 : _a.call(this);
|
|
312
448
|
this.layoutUnsub = undefined;
|
|
@@ -332,11 +468,17 @@ var AcUiMobileSessionPanel = /** @class */ (function () {
|
|
|
332
468
|
};
|
|
333
469
|
/** Removes DOM. */
|
|
334
470
|
AcUiMobileSessionPanel.prototype.dispose = function () {
|
|
335
|
-
var _a, _b;
|
|
471
|
+
var _a, _b, _c;
|
|
336
472
|
this.hide();
|
|
337
|
-
(
|
|
473
|
+
if (this.compactPromptRaf) {
|
|
474
|
+
cancelAnimationFrame(this.compactPromptRaf);
|
|
475
|
+
this.compactPromptRaf = 0;
|
|
476
|
+
}
|
|
477
|
+
(_a = this.compactPromptObserver) === null || _a === void 0 ? void 0 : _a.disconnect();
|
|
478
|
+
this.compactPromptObserver = undefined;
|
|
479
|
+
(_b = this.accessoryObserver) === null || _b === void 0 ? void 0 : _b.disconnect();
|
|
338
480
|
this.accessoryObserver = undefined;
|
|
339
|
-
(
|
|
481
|
+
(_c = this.helpPanel) === null || _c === void 0 ? void 0 : _c.dispose();
|
|
340
482
|
this.helpPanel = null;
|
|
341
483
|
this.root.remove();
|
|
342
484
|
};
|
|
@@ -345,9 +487,18 @@ var AcUiMobileSessionPanel = /** @class */ (function () {
|
|
|
345
487
|
return this.accessoryContentEl.childElementCount > 0;
|
|
346
488
|
};
|
|
347
489
|
/**
|
|
348
|
-
* Places the prompt
|
|
349
|
-
*
|
|
350
|
-
*
|
|
490
|
+
* Places the command prompt vs session accessory on the title row.
|
|
491
|
+
*
|
|
492
|
+
* Expanded:
|
|
493
|
+
* - No accessory widgets → title shows the prompt; chips stay on the message
|
|
494
|
+
* row (second row) when present.
|
|
495
|
+
* - With accessory widgets → title always shows the accessory; the message
|
|
496
|
+
* row shows the prompt and keyword chips together.
|
|
497
|
+
*
|
|
498
|
+
* Compact mode keeps a single row:
|
|
499
|
+
* `[accessory?] [prompt (remaining space)] [expand] [✓ ×]`.
|
|
500
|
+
* Keyword chips never appear. The prompt uses leftover space only (ellipsis
|
|
501
|
+
* on overflow) and is hidden when less than one third of the text fits.
|
|
351
502
|
*/
|
|
352
503
|
AcUiMobileSessionPanel.prototype.syncPromptPlacement = function (collapsed) {
|
|
353
504
|
var hasWidgets = this.hasAccessoryWidgets();
|
|
@@ -358,24 +509,19 @@ var AcUiMobileSessionPanel = /** @class */ (function () {
|
|
|
358
509
|
this.accessoryEl.hidden = false;
|
|
359
510
|
this.accessoryEl.appendChild(this.titleActions);
|
|
360
511
|
this.chipsEl.hidden = collapsed || !hasChips;
|
|
512
|
+
this.promptRow.classList.remove('is-in-title');
|
|
361
513
|
if (collapsed) {
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
this.promptEl.hidden = false;
|
|
366
|
-
}
|
|
367
|
-
else {
|
|
368
|
-
this.promptEl.hidden = true;
|
|
369
|
-
this.promptRow.appendChild(this.promptEl);
|
|
370
|
-
}
|
|
514
|
+
// Compact: prompt sits after accessory content, before expand / actions.
|
|
515
|
+
this.promptEl.hidden = false;
|
|
516
|
+
this.accessoryEl.insertBefore(this.promptEl, this.titleActions);
|
|
371
517
|
this.promptRow.appendChild(this.chipsEl);
|
|
372
|
-
// Keep an empty prompt row out of the compact chrome.
|
|
373
518
|
if (this.promptRow.parentElement === this.accessoryEl) {
|
|
374
519
|
this.panel.insertBefore(this.promptRow, this.absGroup);
|
|
375
520
|
}
|
|
376
521
|
this.promptRow.hidden = true;
|
|
377
522
|
this.accessoryEl.appendChild(this.compactActions);
|
|
378
523
|
this.compactActions.append(this.cancelBtn, this.confirmBtn);
|
|
524
|
+
this.scheduleCompactPromptVisibility();
|
|
379
525
|
return;
|
|
380
526
|
}
|
|
381
527
|
this.promptEl.hidden = false;
|
|
@@ -383,19 +529,125 @@ var AcUiMobileSessionPanel = /** @class */ (function () {
|
|
|
383
529
|
if (this.compactActions.parentElement === this.accessoryEl) {
|
|
384
530
|
this.compactActions.remove();
|
|
385
531
|
}
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
this.promptRow.
|
|
532
|
+
this.panel.classList.remove('is-compact-prompt-hidden');
|
|
533
|
+
// Message row always sits below the title bar as a panel child.
|
|
534
|
+
if (this.promptRow.parentElement === this.accessoryEl) {
|
|
535
|
+
this.panel.insertBefore(this.promptRow, this.absGroup);
|
|
536
|
+
}
|
|
389
537
|
if (promptInTitle) {
|
|
390
|
-
|
|
391
|
-
this.accessoryEl.insertBefore(this.
|
|
538
|
+
// Title: prompt + help/collapse. Chips (if any) stay on the message row.
|
|
539
|
+
this.accessoryEl.insertBefore(this.promptEl, this.titleActions);
|
|
540
|
+
this.promptRow.appendChild(this.chipsEl);
|
|
541
|
+
this.promptRow.hidden = !hasChips;
|
|
392
542
|
}
|
|
393
543
|
else {
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
544
|
+
// Title: accessory widgets + help/collapse. Message row: prompt + chips.
|
|
545
|
+
this.promptRow.append(this.promptEl, this.chipsEl);
|
|
546
|
+
this.promptRow.hidden = false;
|
|
547
|
+
}
|
|
548
|
+
};
|
|
549
|
+
/** Defers compact prompt show/hide until after flex layout settles. */
|
|
550
|
+
AcUiMobileSessionPanel.prototype.scheduleCompactPromptVisibility = function () {
|
|
551
|
+
var _this = this;
|
|
552
|
+
if (!this.collapsed || !this.open)
|
|
553
|
+
return;
|
|
554
|
+
if (this.compactPromptRaf)
|
|
555
|
+
cancelAnimationFrame(this.compactPromptRaf);
|
|
556
|
+
this.compactPromptRaf = requestAnimationFrame(function () {
|
|
557
|
+
_this.compactPromptRaf = 0;
|
|
558
|
+
_this.syncCompactPromptVisibility();
|
|
559
|
+
});
|
|
560
|
+
};
|
|
561
|
+
/**
|
|
562
|
+
* In compact mode the prompt only uses leftover width after accessory,
|
|
563
|
+
* expand, and ✓/×. Hide it when that width is under one third of the full
|
|
564
|
+
* message text width (partial text uses CSS ellipsis). When hidden, the
|
|
565
|
+
* accessory stays left-aligned and expand / ✓/× stay right-aligned.
|
|
566
|
+
*
|
|
567
|
+
* Avoids temporarily unhiding the prompt to measure — that would thrash
|
|
568
|
+
* layout and re-enter via {@link ResizeObserver} every frame.
|
|
569
|
+
*/
|
|
570
|
+
AcUiMobileSessionPanel.prototype.syncCompactPromptVisibility = function () {
|
|
571
|
+
var _a, _b;
|
|
572
|
+
if (!this.collapsed || !this.open) {
|
|
573
|
+
this.panel.classList.remove('is-compact-prompt-hidden');
|
|
574
|
+
return;
|
|
575
|
+
}
|
|
576
|
+
var text = (_b = (_a = this.promptEl.textContent) === null || _a === void 0 ? void 0 : _a.trim()) !== null && _b !== void 0 ? _b : '';
|
|
577
|
+
if (!text) {
|
|
578
|
+
this.applyCompactPromptHidden(true);
|
|
579
|
+
return;
|
|
580
|
+
}
|
|
581
|
+
var fullWidth = this.measurePromptTextWidth();
|
|
582
|
+
if (fullWidth <= 0) {
|
|
583
|
+
this.applyCompactPromptHidden(false);
|
|
584
|
+
return;
|
|
585
|
+
}
|
|
586
|
+
var available = this.measureCompactPromptAvailableWidth();
|
|
587
|
+
this.applyCompactPromptHidden(available < fullWidth / 3);
|
|
588
|
+
};
|
|
589
|
+
/** Applies compact prompt visibility only when the decision changes. */
|
|
590
|
+
AcUiMobileSessionPanel.prototype.applyCompactPromptHidden = function (hide) {
|
|
591
|
+
if (this.promptEl.hidden === hide &&
|
|
592
|
+
this.panel.classList.contains('is-compact-prompt-hidden') === hide) {
|
|
593
|
+
return;
|
|
594
|
+
}
|
|
595
|
+
this.promptEl.hidden = hide;
|
|
596
|
+
this.panel.classList.toggle('is-compact-prompt-hidden', hide);
|
|
597
|
+
};
|
|
598
|
+
/**
|
|
599
|
+
* Leftover width for the compact prompt. Uses the live flex slot when the
|
|
600
|
+
* prompt is visible; otherwise infers space from the row minus siblings so
|
|
601
|
+
* we never flash the prompt back on just to measure.
|
|
602
|
+
*/
|
|
603
|
+
AcUiMobileSessionPanel.prototype.measureCompactPromptAvailableWidth = function () {
|
|
604
|
+
var e_1, _a;
|
|
605
|
+
var _this = this;
|
|
606
|
+
if (!this.promptEl.hidden) {
|
|
607
|
+
return this.promptEl.clientWidth;
|
|
608
|
+
}
|
|
609
|
+
var rowWidth = this.accessoryEl.clientWidth;
|
|
610
|
+
var rowStyle = getComputedStyle(this.accessoryEl);
|
|
611
|
+
var gap = parseFloat(rowStyle.columnGap || rowStyle.gap || '0') || 0;
|
|
612
|
+
var siblings = Array.from(this.accessoryEl.children).filter(function (el) { return el !== _this.promptEl && !el.hidden; });
|
|
613
|
+
var used = 0;
|
|
614
|
+
try {
|
|
615
|
+
for (var siblings_1 = __values(siblings), siblings_1_1 = siblings_1.next(); !siblings_1_1.done; siblings_1_1 = siblings_1.next()) {
|
|
616
|
+
var el = siblings_1_1.value;
|
|
617
|
+
used += el.getBoundingClientRect().width;
|
|
618
|
+
}
|
|
619
|
+
}
|
|
620
|
+
catch (e_1_1) { e_1 = { error: e_1_1 }; }
|
|
621
|
+
finally {
|
|
622
|
+
try {
|
|
623
|
+
if (siblings_1_1 && !siblings_1_1.done && (_a = siblings_1.return)) _a.call(siblings_1);
|
|
397
624
|
}
|
|
625
|
+
finally { if (e_1) throw e_1.error; }
|
|
398
626
|
}
|
|
627
|
+
// Showing the prompt inserts one more flex item → one extra gap.
|
|
628
|
+
return Math.max(0, rowWidth - used - gap * siblings.length);
|
|
629
|
+
};
|
|
630
|
+
/** Intrinsic single-line width of the current prompt text. */
|
|
631
|
+
AcUiMobileSessionPanel.prototype.measurePromptTextWidth = function () {
|
|
632
|
+
var probe = document.createElement('span');
|
|
633
|
+
var style = getComputedStyle(this.promptEl);
|
|
634
|
+
probe.textContent = this.promptEl.textContent;
|
|
635
|
+
// Prefer longhand font props — `font` shorthand is empty in some engines.
|
|
636
|
+
var font = style.font ||
|
|
637
|
+
"".concat(style.fontWeight, " ").concat(style.fontSize, " ").concat(style.fontFamily).trim();
|
|
638
|
+
probe.style.cssText = [
|
|
639
|
+
'position:absolute',
|
|
640
|
+
'visibility:hidden',
|
|
641
|
+
'pointer-events:none',
|
|
642
|
+
'white-space:nowrap',
|
|
643
|
+
"font:".concat(font),
|
|
644
|
+
"letter-spacing:".concat(style.letterSpacing),
|
|
645
|
+
"text-transform:".concat(style.textTransform)
|
|
646
|
+
].join(';');
|
|
647
|
+
document.body.appendChild(probe);
|
|
648
|
+
var width = probe.getBoundingClientRect().width;
|
|
649
|
+
probe.remove();
|
|
650
|
+
return width;
|
|
399
651
|
};
|
|
400
652
|
AcUiMobileSessionPanel.prototype.refreshCollapseLabel = function () {
|
|
401
653
|
var t = this.labelsFn();
|
|
@@ -426,8 +678,9 @@ var AcUiMobileSessionPanel = /** @class */ (function () {
|
|
|
426
678
|
this.hasBasePoint = hasBasePoint;
|
|
427
679
|
};
|
|
428
680
|
AcUiMobileSessionPanel.prototype.applyMetricVisibility = function () {
|
|
429
|
-
var
|
|
430
|
-
var
|
|
681
|
+
var stringMode = this.showStringInput;
|
|
682
|
+
var relative = !stringMode && this.showMetrics && this.hasBasePoint;
|
|
683
|
+
var absolute = !stringMode && this.showMetrics && !this.hasBasePoint;
|
|
431
684
|
var phone = this.isPhoneLayout();
|
|
432
685
|
var collapsed = this.collapsed;
|
|
433
686
|
this.metricButtons.length.hidden = !relative;
|
|
@@ -438,21 +691,33 @@ var AcUiMobileSessionPanel = /** @class */ (function () {
|
|
|
438
691
|
this.metricButtons.y.hidden = !absolute;
|
|
439
692
|
this.panel.classList.toggle('is-relative', relative && !collapsed);
|
|
440
693
|
this.panel.classList.toggle('is-absolute', absolute && !collapsed);
|
|
441
|
-
this.panel.classList.toggle('is-
|
|
694
|
+
this.panel.classList.toggle('is-string-input', stringMode && !collapsed);
|
|
695
|
+
this.panel.classList.toggle('is-actions-only', !collapsed && !relative && !absolute && !stringMode);
|
|
442
696
|
this.panel.classList.toggle('is-collapsed', collapsed);
|
|
443
697
|
this.polarGroup.hidden = collapsed || !relative;
|
|
444
698
|
this.deltaGroup.hidden = collapsed || !relative;
|
|
445
699
|
this.absStack.hidden = !absolute;
|
|
446
700
|
this.absGroup.hidden = collapsed
|
|
447
701
|
? true
|
|
448
|
-
:
|
|
449
|
-
?
|
|
450
|
-
:
|
|
702
|
+
: stringMode
|
|
703
|
+
? true
|
|
704
|
+
: phone
|
|
705
|
+
? relative
|
|
706
|
+
: !absolute;
|
|
707
|
+
this.stringGroup.hidden = collapsed || !stringMode;
|
|
451
708
|
this.chipsEl.hidden = collapsed || this.chipsEl.childElementCount === 0;
|
|
452
709
|
this.syncPromptPlacement(collapsed);
|
|
453
710
|
if (collapsed) {
|
|
454
711
|
// Actions already placed by syncPromptPlacement.
|
|
455
712
|
}
|
|
713
|
+
else if (stringMode) {
|
|
714
|
+
if (phone) {
|
|
715
|
+
this.stringActions.append(this.cancelBtn, this.confirmBtn);
|
|
716
|
+
}
|
|
717
|
+
else {
|
|
718
|
+
this.sharedActions.append(this.cancelBtn, this.confirmBtn);
|
|
719
|
+
}
|
|
720
|
+
}
|
|
456
721
|
else if (phone && relative) {
|
|
457
722
|
this.polarActions.appendChild(this.cancelBtn);
|
|
458
723
|
this.deltaActions.appendChild(this.confirmBtn);
|
|
@@ -465,7 +730,7 @@ var AcUiMobileSessionPanel = /** @class */ (function () {
|
|
|
465
730
|
}
|
|
466
731
|
};
|
|
467
732
|
AcUiMobileSessionPanel.prototype.renderChips = function (keywords) {
|
|
468
|
-
var
|
|
733
|
+
var e_2, _a;
|
|
469
734
|
var _this = this;
|
|
470
735
|
this.chipsEl.replaceChildren();
|
|
471
736
|
this.chipsEl.hidden = this.collapsed || keywords.length === 0;
|
|
@@ -493,12 +758,12 @@ var AcUiMobileSessionPanel = /** @class */ (function () {
|
|
|
493
758
|
_loop_1(kw);
|
|
494
759
|
}
|
|
495
760
|
}
|
|
496
|
-
catch (
|
|
761
|
+
catch (e_2_1) { e_2 = { error: e_2_1 }; }
|
|
497
762
|
finally {
|
|
498
763
|
try {
|
|
499
764
|
if (keywords_1_1 && !keywords_1_1.done && (_a = keywords_1.return)) _a.call(keywords_1);
|
|
500
765
|
}
|
|
501
|
-
finally { if (
|
|
766
|
+
finally { if (e_2) throw e_2.error; }
|
|
502
767
|
}
|
|
503
768
|
};
|
|
504
769
|
AcUiMobileSessionPanel.prototype.openHelpPanel = function () {
|
|
@@ -553,5 +818,5 @@ function confirmIcon() {
|
|
|
553
818
|
return '<svg viewBox="0 0 24 24" width="18" height="18" aria-hidden="true"><path fill="currentColor" d="M9.55 18.2 3.8 12.45l1.4-1.4 4.35 4.36 9.25-9.26 1.4 1.41z"/></svg>';
|
|
554
819
|
}
|
|
555
820
|
/** CSS for the shared mobile session panel. */
|
|
556
|
-
var MOBILE_CMD_CSS = "\n .ml-mobile-cmd {\n pointer-events: none;\n }\n .ml-mobile-cmd-panel {\n pointer-events: auto;\n position: fixed;\n left: 0;\n right: 0;\n bottom: 0;\n z-index: 40;\n display: flex;\n flex-direction: column;\n gap: 8px;\n padding: 10px 12px calc(10px + env(safe-area-inset-bottom, 0px));\n background: var(--ml-ui-bg, rgba(28, 30, 34, 0.96));\n color: var(--ml-ui-text, #e8eaed);\n border-top: 1px solid var(--ml-ui-border, rgba(255, 255, 255, 0.12));\n box-shadow: 0 -8px 24px rgba(0, 0, 0, 0.35);\n box-sizing: border-box;\n }\n .ml-mobile-cmd-panel.is-collapsed {\n height: calc(\n var(--ml-mobile-cmd-collapsed-height, 56px) + env(safe-area-inset-bottom, 0px)\n );\n min-height: calc(\n var(--ml-mobile-cmd-collapsed-height, 56px) + env(safe-area-inset-bottom, 0px)\n );\n padding: 0 12px env(safe-area-inset-bottom, 0px);\n gap: 0;\n justify-content: center;\n }\n .ml-mobile-cmd-panel.is-collapsed .ml-mobile-cmd-accessory {\n padding-bottom: 0;\n border-bottom: 0;\n flex: 1;\n min-width: 0;\n }\n .ml-mobile-cmd-prompt-row {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n gap: 8px;\n min-width: 0;\n }\n .ml-mobile-cmd-prompt-row[hidden] {\n display: none;\n }\n .ml-mobile-cmd-prompt-row:not([hidden]) {\n box-sizing: border-box;\n min-height: 32px;\n padding-top: 4px;\n padding-bottom: 4px;\n border-bottom: 1px solid var(--ml-ui-border, rgba(255, 255, 255, 0.12));\n }\n .ml-mobile-cmd-prompt-row.is-in-title {\n flex: 1 1 auto;\n min-width: 0;\n min-height: 0;\n padding: 0;\n border-bottom: 0;\n }\n .ml-mobile-cmd-prompt {\n flex: 1 1 10em;\n min-width: min(100%, 8em);\n box-sizing: border-box;\n padding: 0;\n border: 0;\n border-radius: 0;\n background: transparent;\n color: var(--ml-ui-text, #e8eaed);\n font-size: 12px;\n font-weight: 500;\n line-height: 1.4;\n white-space: normal;\n overflow-wrap: anywhere;\n word-break: break-word;\n }\n .ml-mobile-cmd-panel.is-collapsed .ml-mobile-cmd-prompt {\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n .ml-mobile-cmd-panel.is-collapsed .ml-mobile-cmd-prompt[hidden] {\n display: none;\n }\n .ml-mobile-cmd-actions-compact {\n display: none;\n flex-direction: row;\n align-items: center;\n justify-content: center;\n gap: 8px;\n flex: 0 0 auto;\n margin-left: 8px;\n padding-left: 0;\n border-left: 0;\n }\n .ml-mobile-cmd-panel.is-collapsed .ml-mobile-cmd-actions-compact {\n display: flex;\n }\n .ml-mobile-cmd-panel.is-collapsed .ml-mobile-cmd-help[hidden] {\n display: none;\n }\n .ml-mobile-cmd-panel.is-collapsed .ml-mobile-cmd-title-actions {\n margin-left: 0;\n }\n .ml-mobile-cmd-group {\n display: flex;\n align-items: stretch;\n gap: 8px;\n min-width: 0;\n }\n .ml-mobile-cmd-group[hidden] {\n display: none;\n }\n .ml-mobile-cmd-panel.is-relative .ml-mobile-cmd-group-polar {\n border-bottom: 1px solid var(--ml-ui-border, rgba(255, 255, 255, 0.12));\n padding-bottom: 0;\n }\n .ml-mobile-cmd-group:not(:has(.ml-mobile-cmd-metric-stack:not([hidden]))) {\n justify-content: flex-end;\n }\n .ml-mobile-cmd-metric-stack {\n flex: 1;\n min-width: 0;\n display: flex;\n flex-direction: column;\n justify-content: center;\n gap: 2px;\n }\n .ml-mobile-cmd-metric-stack[hidden] {\n display: none;\n }\n .ml-mobile-cmd-actions {\n display: flex;\n flex-direction: row;\n align-items: center;\n justify-content: center;\n gap: 10px;\n flex: 0 0 auto;\n align-self: stretch;\n padding-left: 12px;\n border-left: 1px solid var(--ml-ui-border, rgba(255, 255, 255, 0.12));\n }\n .ml-mobile-cmd-group:not(:has(.ml-mobile-cmd-metric-stack:not([hidden])))\n .ml-mobile-cmd-actions {\n border-left: 0;\n padding-left: 0;\n }\n .ml-mobile-cmd-metric {\n display: flex;\n justify-content: space-between;\n align-items: center;\n gap: 8px;\n margin: 0;\n padding: 2px 0;\n border: 0;\n background: transparent;\n color: inherit;\n font: inherit;\n text-align: left;\n min-height: 28px;\n min-width: 0;\n width: 100%;\n }\n .ml-mobile-cmd-metric[hidden] {\n display: none;\n }\n .ml-mobile-cmd-metric-label {\n flex: 0 0 auto;\n color: var(--ml-ui-muted, #9aa0a6);\n font-size: 12px;\n }\n .ml-mobile-cmd-metric-value {\n min-width: 0;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n text-align: right;\n font-variant-numeric: tabular-nums;\n font-size: 13px;\n }\n .ml-mobile-cmd-accessory {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n gap: 8px;\n min-height: 32px;\n }\n .ml-mobile-cmd-accessory:not([hidden]) {\n padding-bottom: 8px;\n border-bottom: 1px solid var(--ml-ui-border, rgba(255, 255, 255, 0.12));\n }\n .ml-mobile-cmd-accessory[hidden] {\n display: none;\n }\n .ml-mobile-cmd-accessory-content {\n flex: 1;\n min-width: 0;\n display: flex;\n align-items: center;\n gap: 8px;\n }\n .ml-mobile-cmd-accessory-content:empty {\n display: none;\n }\n .ml-mobile-cmd-panel.is-prompt-in-title .ml-mobile-cmd-prompt {\n flex: 1 1 10em;\n min-width: min(100%, 8em);\n }\n .ml-mobile-cmd-panel.is-prompt-in-title .ml-mobile-cmd-chips {\n flex: 0 1 auto;\n }\n .ml-mobile-cmd-title-actions {\n display: flex;\n flex: 0 0 auto;\n align-items: center;\n gap: 0;\n margin-left: auto;\n }\n .ml-mobile-cmd-help,\n .ml-mobile-cmd-collapse {\n box-sizing: border-box;\n flex: 0 0 auto;\n margin: 0;\n width: 32px;\n height: 32px;\n padding: 0;\n border: 0;\n border-radius: 50%;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n background: transparent;\n color: var(--ml-ui-muted, #9aa0a6);\n cursor: pointer;\n line-height: 0;\n }\n .ml-mobile-cmd-help:hover,\n .ml-mobile-cmd-help:focus-visible,\n .ml-mobile-cmd-collapse:hover,\n .ml-mobile-cmd-collapse:focus-visible {\n color: var(--ml-ui-accent, #08e8de);\n }\n .ml-mobile-cmd-help svg,\n .ml-mobile-cmd-collapse svg {\n display: block;\n width: 18px;\n height: 18px;\n }\n .ml-mobile-cmd-chips {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n gap: 6px;\n flex: 0 1 auto;\n min-width: 0;\n }\n .ml-mobile-cmd-chips:not([hidden]) {\n padding: 0;\n border: 0;\n }\n .ml-mobile-cmd-chips[hidden] {\n display: none;\n }\n .ml-mobile-cmd-chip {\n min-height: 32px;\n padding: 4px 10px;\n border-radius: 16px;\n border: 1px solid var(--ml-ui-border, rgba(255, 255, 255, 0.16));\n background: var(--ml-ui-bg-elevated, rgba(255, 255, 255, 0.06));\n color: var(--ml-ui-accent, #08e8de);\n font-size: 13px;\n }\n .ml-mobile-cmd-chip:disabled {\n opacity: 0.45;\n }\n .ml-mobile-cmd-cancel,\n .ml-mobile-cmd-confirm {\n box-sizing: border-box;\n flex: 0 0 36px;\n align-self: center;\n margin: 0;\n width: 36px;\n height: 36px;\n padding: 0;\n border-radius: 50%;\n border: 0;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n line-height: 0;\n cursor: pointer;\n color: #fff;\n }\n .ml-mobile-cmd-cancel svg,\n .ml-mobile-cmd-confirm svg {\n display: block;\n width: 18px;\n height: 18px;\n }\n .ml-mobile-cmd-cancel {\n background: #5c6370;\n }\n .ml-mobile-cmd-confirm {\n background: var(--ml-ui-accent, #1a8cff);\n }\n .ml-mobile-cmd-confirm:disabled {\n opacity: 0.35;\n cursor: default;\n }\n .ml-mobile-cmd-actions-shared {\n display: none;\n }\n .ml-mobile-cmd-panel.is-collapsed .ml-mobile-cmd-actions-shared {\n display: none !important;\n }\n @media (min-width: ".concat(ML_UI_SESSION_PANEL_WIDTH, "px) {\n .ml-mobile-cmd-metric-stack {\n flex-direction: row;\n align-items: center;\n gap: 16px;\n }\n .ml-mobile-cmd-metric {\n flex: 1;\n }\n }\n @media (min-width: ").concat(ML_UI_MOBILE_MAX_WIDTH + 1, "px) {\n .ml-mobile-cmd-panel {\n left: 50%;\n right: auto;\n width: ").concat(ML_UI_SESSION_PANEL_WIDTH, "px;\n max-width: ").concat(ML_UI_SESSION_PANEL_MAX_WIDTH, ";\n transform: translateX(-50%);\n border-radius: 12px 12px 0 0;\n border: 1px solid var(--ml-ui-border, rgba(255, 255, 255, 0.12));\n border-bottom: 0;\n }\n .ml-mobile-cmd-panel.is-collapsed {\n width: ").concat(ML_UI_SESSION_PANEL_WIDTH, "px;\n max-width: ").concat(ML_UI_SESSION_PANEL_MAX_WIDTH, ";\n }\n .ml-mobile-cmd-group .ml-mobile-cmd-actions {\n display: none;\n }\n .ml-mobile-cmd-actions-shared {\n display: flex;\n flex-direction: row;\n align-items: center;\n justify-content: center;\n }\n .ml-mobile-cmd-panel.is-absolute .ml-mobile-cmd-group-abs {\n align-items: center;\n }\n .ml-mobile-cmd-panel.is-absolute .ml-mobile-cmd-actions-shared {\n align-self: center;\n }\n .ml-mobile-cmd-panel.is-relative:not([hidden]),\n .ml-mobile-cmd-panel.is-absolute:not([hidden]) {\n display: grid;\n grid-template-columns: 1fr auto;\n align-items: stretch;\n row-gap: 0;\n column-gap: 8px;\n }\n .ml-mobile-cmd-panel.is-relative {\n grid-template-areas:\n 'accessory accessory'\n 'prompt prompt'\n 'polar shared'\n 'delta shared';\n }\n .ml-mobile-cmd-panel.is-absolute {\n grid-template-areas:\n 'accessory accessory'\n 'prompt prompt'\n 'abs shared';\n }\n .ml-mobile-cmd-panel.is-prompt-in-title.is-relative {\n grid-template-areas:\n 'accessory accessory'\n 'polar shared'\n 'delta shared';\n }\n .ml-mobile-cmd-panel.is-prompt-in-title.is-absolute {\n grid-template-areas:\n 'accessory accessory'\n 'abs shared';\n }\n .ml-mobile-cmd-group-polar { grid-area: polar; }\n .ml-mobile-cmd-group-delta { grid-area: delta; }\n .ml-mobile-cmd-group-abs { grid-area: abs; }\n .ml-mobile-cmd-actions-shared { grid-area: shared; }\n .ml-mobile-cmd-accessory { grid-area: accessory; }\n .ml-mobile-cmd-prompt-row { grid-area: prompt; }\n .ml-mobile-cmd-panel.is-relative .ml-mobile-cmd-group-polar {\n padding-bottom: 6px;\n }\n .ml-mobile-cmd-panel.is-relative .ml-mobile-cmd-group-delta {\n padding-top: 6px;\n }\n .ml-mobile-cmd-panel.is-actions-only {\n display: flex;\n flex-direction: column;\n }\n .ml-mobile-cmd-panel.is-actions-only .ml-mobile-cmd-actions-shared {\n border-left: 0;\n padding-left: 0;\n justify-content: flex-end;\n align-self: flex-end;\n }\n .ml-mobile-cmd-panel.is-collapsed {\n display: flex !important;\n flex-direction: row;\n align-items: center;\n transform: translateX(-50%);\n }\n }\n");
|
|
821
|
+
var MOBILE_CMD_CSS = "\n .ml-mobile-cmd {\n pointer-events: none;\n }\n .ml-mobile-cmd-panel {\n pointer-events: auto;\n position: fixed;\n left: 0;\n right: 0;\n bottom: 0;\n z-index: 40;\n display: flex;\n flex-direction: column;\n gap: 8px;\n padding: 10px 12px calc(10px + env(safe-area-inset-bottom, 0px));\n background: var(--ml-ui-bg, rgba(28, 30, 34, 0.96));\n color: var(--ml-ui-text, #e8eaed);\n border-top: 1px solid var(--ml-ui-border, rgba(255, 255, 255, 0.12));\n box-shadow: 0 -8px 24px rgba(0, 0, 0, 0.35);\n box-sizing: border-box;\n }\n .ml-mobile-cmd-panel.is-collapsed {\n height: calc(\n var(--ml-mobile-cmd-collapsed-height, 56px) + env(safe-area-inset-bottom, 0px)\n );\n min-height: calc(\n var(--ml-mobile-cmd-collapsed-height, 56px) + env(safe-area-inset-bottom, 0px)\n );\n padding: 0 12px env(safe-area-inset-bottom, 0px);\n gap: 0;\n justify-content: center;\n }\n .ml-mobile-cmd-panel.is-collapsed .ml-mobile-cmd-accessory {\n padding-bottom: 0;\n border-bottom: 0;\n flex: 1;\n min-width: 0;\n flex-wrap: nowrap;\n }\n /* Accessory keeps intrinsic width; prompt may not steal space from it. */\n .ml-mobile-cmd-panel.is-collapsed .ml-mobile-cmd-accessory-content {\n flex: 0 0 auto;\n min-width: 0;\n }\n .ml-mobile-cmd-prompt-row {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n gap: 8px;\n min-width: 0;\n }\n .ml-mobile-cmd-prompt-row[hidden] {\n display: none;\n }\n .ml-mobile-cmd-prompt-row:not([hidden]) {\n box-sizing: border-box;\n min-height: 32px;\n padding-top: 4px;\n padding-bottom: 4px;\n border-bottom: 1px solid var(--ml-ui-border, rgba(255, 255, 255, 0.12));\n }\n .ml-mobile-cmd-prompt {\n flex: 1 1 10em;\n min-width: min(100%, 8em);\n box-sizing: border-box;\n padding: 0;\n border: 0;\n border-radius: 0;\n background: transparent;\n color: var(--ml-ui-text, #e8eaed);\n font-size: 12px;\n font-weight: 500;\n line-height: 1.4;\n white-space: normal;\n overflow-wrap: anywhere;\n word-break: break-word;\n }\n .ml-mobile-cmd-accessory > .ml-mobile-cmd-prompt {\n flex: 1 1 auto;\n min-width: 0;\n }\n /* Compact: fill leftover space only; ellipsis when truncated. */\n .ml-mobile-cmd-panel.is-collapsed .ml-mobile-cmd-prompt {\n flex: 1 1 0;\n min-width: 0;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n overflow-wrap: normal;\n word-break: normal;\n }\n .ml-mobile-cmd-panel.is-collapsed .ml-mobile-cmd-prompt[hidden] {\n display: none;\n }\n .ml-mobile-cmd-panel.is-collapsed .ml-mobile-cmd-chips {\n display: none !important;\n }\n .ml-mobile-cmd-actions-compact {\n display: none;\n flex-direction: row;\n align-items: center;\n justify-content: center;\n gap: 8px;\n flex: 0 0 auto;\n margin-left: 8px;\n padding-left: 0;\n border-left: 0;\n }\n .ml-mobile-cmd-panel.is-collapsed .ml-mobile-cmd-actions-compact {\n display: flex;\n }\n .ml-mobile-cmd-panel.is-collapsed .ml-mobile-cmd-help[hidden] {\n display: none;\n }\n .ml-mobile-cmd-panel.is-collapsed .ml-mobile-cmd-title-actions {\n margin-left: 0;\n flex: 0 0 auto;\n }\n /* No prompt: accessory left, expand + \u2713/\u00D7 right. */\n .ml-mobile-cmd-panel.is-collapsed.is-compact-prompt-hidden .ml-mobile-cmd-title-actions {\n margin-left: auto;\n }\n .ml-mobile-cmd-group {\n display: flex;\n align-items: stretch;\n gap: 8px;\n min-width: 0;\n }\n .ml-mobile-cmd-group[hidden] {\n display: none;\n }\n .ml-mobile-cmd-string-input {\n flex: 1;\n min-width: 0;\n box-sizing: border-box;\n margin: 0;\n padding: 8px 10px;\n border: 1px solid var(--ml-ui-border, rgba(255, 255, 255, 0.16));\n border-radius: 8px;\n background: var(--ml-ui-bg-elevated, rgba(255, 255, 255, 0.06));\n color: var(--ml-ui-text, #e8eaed);\n font: inherit;\n font-size: 14px;\n line-height: 1.35;\n outline: none;\n resize: none;\n overflow-y: hidden;\n white-space: pre-wrap;\n word-break: break-word;\n /* 1-line floor; JS grows up to 3 lines via syncStringInputHeight. */\n height: calc(1.35em + 16px + 2px);\n }\n .ml-mobile-cmd-string-input:focus {\n border-color: var(--ml-ui-accent, #08e8de);\n }\n .ml-mobile-cmd-string-input::placeholder {\n color: var(--ml-ui-muted, #9aa0a6);\n }\n .ml-mobile-cmd-panel.is-relative .ml-mobile-cmd-group-polar {\n border-bottom: 1px solid var(--ml-ui-border, rgba(255, 255, 255, 0.12));\n padding-bottom: 0;\n }\n .ml-mobile-cmd-group:not(.ml-mobile-cmd-group-string):not(\n :has(.ml-mobile-cmd-metric-stack:not([hidden]))\n ) {\n justify-content: flex-end;\n }\n .ml-mobile-cmd-group-string {\n align-items: stretch;\n }\n .ml-mobile-cmd-group-string .ml-mobile-cmd-actions {\n align-self: stretch;\n align-items: center;\n border-left: 1px solid var(--ml-ui-border, rgba(255, 255, 255, 0.12));\n padding-left: 12px;\n }\n .ml-mobile-cmd-metric-stack {\n flex: 1;\n min-width: 0;\n display: flex;\n flex-direction: column;\n justify-content: center;\n gap: 2px;\n }\n .ml-mobile-cmd-metric-stack[hidden] {\n display: none;\n }\n .ml-mobile-cmd-actions {\n display: flex;\n flex-direction: row;\n align-items: center;\n justify-content: center;\n gap: 10px;\n flex: 0 0 auto;\n align-self: stretch;\n padding-left: 12px;\n border-left: 1px solid var(--ml-ui-border, rgba(255, 255, 255, 0.12));\n }\n .ml-mobile-cmd-group:not(.ml-mobile-cmd-group-string):not(\n :has(.ml-mobile-cmd-metric-stack:not([hidden]))\n )\n .ml-mobile-cmd-actions {\n border-left: 0;\n padding-left: 0;\n }\n .ml-mobile-cmd-metric {\n display: flex;\n justify-content: space-between;\n align-items: center;\n gap: 8px;\n margin: 0;\n padding: 2px 0;\n border: 0;\n background: transparent;\n color: inherit;\n font: inherit;\n text-align: left;\n min-height: 28px;\n min-width: 0;\n width: 100%;\n }\n .ml-mobile-cmd-metric[hidden] {\n display: none;\n }\n .ml-mobile-cmd-metric-label {\n flex: 0 0 auto;\n color: var(--ml-ui-muted, #9aa0a6);\n font-size: 12px;\n }\n .ml-mobile-cmd-metric-value {\n min-width: 0;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n text-align: right;\n font-variant-numeric: tabular-nums;\n font-size: 13px;\n }\n .ml-mobile-cmd-accessory {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n gap: 8px;\n min-height: 32px;\n }\n .ml-mobile-cmd-accessory:not([hidden]) {\n padding-bottom: 8px;\n border-bottom: 1px solid var(--ml-ui-border, rgba(255, 255, 255, 0.12));\n }\n .ml-mobile-cmd-accessory[hidden] {\n display: none;\n }\n .ml-mobile-cmd-accessory-content {\n flex: 1;\n min-width: 0;\n display: flex;\n align-items: center;\n gap: 8px;\n }\n .ml-mobile-cmd-accessory-content:empty {\n display: none;\n }\n .ml-mobile-cmd-title-actions {\n display: flex;\n flex: 0 0 auto;\n align-items: center;\n gap: 0;\n margin-left: auto;\n }\n .ml-mobile-cmd-help,\n .ml-mobile-cmd-collapse {\n box-sizing: border-box;\n flex: 0 0 auto;\n margin: 0;\n width: 32px;\n height: 32px;\n padding: 0;\n border: 0;\n border-radius: 50%;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n background: transparent;\n color: var(--ml-ui-muted, #9aa0a6);\n cursor: pointer;\n line-height: 0;\n }\n .ml-mobile-cmd-help:hover,\n .ml-mobile-cmd-help:focus-visible,\n .ml-mobile-cmd-collapse:hover,\n .ml-mobile-cmd-collapse:focus-visible {\n color: var(--ml-ui-accent, #08e8de);\n }\n .ml-mobile-cmd-help svg,\n .ml-mobile-cmd-collapse svg {\n display: block;\n width: 18px;\n height: 18px;\n }\n .ml-mobile-cmd-chips {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n gap: 6px;\n flex: 0 1 auto;\n min-width: 0;\n }\n .ml-mobile-cmd-chips:not([hidden]) {\n padding: 0;\n border: 0;\n }\n .ml-mobile-cmd-chips[hidden] {\n display: none;\n }\n .ml-mobile-cmd-chip {\n min-height: 32px;\n padding: 4px 10px;\n border-radius: 16px;\n border: 1px solid var(--ml-ui-border, rgba(255, 255, 255, 0.16));\n background: var(--ml-ui-bg-elevated, rgba(255, 255, 255, 0.06));\n color: var(--ml-ui-accent, #08e8de);\n font-size: 13px;\n }\n .ml-mobile-cmd-chip:disabled {\n opacity: 0.45;\n }\n .ml-mobile-cmd-cancel,\n .ml-mobile-cmd-confirm {\n box-sizing: border-box;\n flex: 0 0 36px;\n align-self: center;\n margin: 0;\n width: 36px;\n height: 36px;\n padding: 0;\n border-radius: 50%;\n border: 0;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n line-height: 0;\n cursor: pointer;\n color: #fff;\n }\n .ml-mobile-cmd-cancel svg,\n .ml-mobile-cmd-confirm svg {\n display: block;\n width: 18px;\n height: 18px;\n }\n .ml-mobile-cmd-cancel {\n background: #5c6370;\n }\n .ml-mobile-cmd-confirm {\n background: var(--ml-ui-accent, #1a8cff);\n }\n .ml-mobile-cmd-confirm:disabled {\n opacity: 0.35;\n cursor: default;\n }\n .ml-mobile-cmd-actions-shared {\n display: none;\n }\n .ml-mobile-cmd-panel.is-collapsed .ml-mobile-cmd-actions-shared {\n display: none !important;\n }\n @media (min-width: ".concat(ML_UI_SESSION_PANEL_WIDTH, "px) {\n .ml-mobile-cmd-metric-stack {\n flex-direction: row;\n align-items: center;\n gap: 16px;\n }\n .ml-mobile-cmd-metric {\n flex: 1;\n }\n }\n @media (min-width: ").concat(ML_UI_MOBILE_MAX_WIDTH + 1, "px) {\n .ml-mobile-cmd-panel {\n left: 50%;\n right: auto;\n width: ").concat(ML_UI_SESSION_PANEL_WIDTH, "px;\n max-width: ").concat(ML_UI_SESSION_PANEL_MAX_WIDTH, ";\n transform: translateX(-50%);\n border-radius: 12px 12px 0 0;\n border: 1px solid var(--ml-ui-border, rgba(255, 255, 255, 0.12));\n border-bottom: 0;\n }\n .ml-mobile-cmd-panel.is-collapsed {\n width: ").concat(ML_UI_SESSION_PANEL_WIDTH, "px;\n max-width: ").concat(ML_UI_SESSION_PANEL_MAX_WIDTH, ";\n }\n .ml-mobile-cmd-group .ml-mobile-cmd-actions {\n display: none;\n }\n .ml-mobile-cmd-actions-shared {\n display: flex;\n flex-direction: row;\n align-items: center;\n justify-content: center;\n }\n .ml-mobile-cmd-panel.is-absolute .ml-mobile-cmd-group-abs {\n align-items: center;\n }\n .ml-mobile-cmd-panel.is-absolute .ml-mobile-cmd-actions-shared {\n align-self: center;\n }\n .ml-mobile-cmd-panel.is-relative:not([hidden]),\n .ml-mobile-cmd-panel.is-absolute:not([hidden]) {\n display: grid;\n grid-template-columns: 1fr auto;\n align-items: stretch;\n row-gap: 0;\n column-gap: 8px;\n }\n .ml-mobile-cmd-panel.is-relative {\n grid-template-areas:\n 'accessory accessory'\n 'prompt prompt'\n 'polar shared'\n 'delta shared';\n }\n .ml-mobile-cmd-panel.is-absolute {\n grid-template-areas:\n 'accessory accessory'\n 'prompt prompt'\n 'abs shared';\n }\n .ml-mobile-cmd-panel.is-string-input {\n display: grid;\n grid-template-columns: 1fr auto;\n align-items: stretch;\n row-gap: 0;\n column-gap: 8px;\n grid-template-areas:\n 'accessory accessory'\n 'prompt prompt'\n 'string shared';\n }\n .ml-mobile-cmd-group-polar { grid-area: polar; }\n .ml-mobile-cmd-group-delta { grid-area: delta; }\n .ml-mobile-cmd-group-abs { grid-area: abs; }\n .ml-mobile-cmd-group-string { grid-area: string; }\n .ml-mobile-cmd-actions-shared { grid-area: shared; }\n .ml-mobile-cmd-accessory { grid-area: accessory; }\n .ml-mobile-cmd-prompt-row { grid-area: prompt; }\n .ml-mobile-cmd-panel.is-string-input .ml-mobile-cmd-group-string {\n align-items: stretch;\n }\n .ml-mobile-cmd-panel.is-string-input .ml-mobile-cmd-actions-shared {\n align-self: stretch;\n align-items: center;\n }\n .ml-mobile-cmd-panel.is-relative .ml-mobile-cmd-group-polar {\n padding-bottom: 6px;\n }\n .ml-mobile-cmd-panel.is-relative .ml-mobile-cmd-group-delta {\n padding-top: 6px;\n }\n .ml-mobile-cmd-panel.is-actions-only {\n display: flex;\n flex-direction: column;\n }\n .ml-mobile-cmd-panel.is-actions-only .ml-mobile-cmd-actions-shared {\n border-left: 0;\n padding-left: 0;\n justify-content: flex-end;\n align-self: flex-end;\n }\n .ml-mobile-cmd-panel.is-collapsed {\n display: flex !important;\n flex-direction: row;\n align-items: center;\n transform: translateX(-50%);\n }\n }\n");
|
|
557
822
|
//# sourceMappingURL=AcUiMobileSessionPanel.js.map
|