diff --git a/.vscode/settings.json b/.vscode/settings.json index 95d76c45..f68937c0 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -8,6 +8,7 @@ "Birdnardo", "Chatbook", "Checkmark", + "Checkmarked", "CICD", "Componentwise", "Connor", diff --git a/Developer/Resources/FrontEndResources/WorkspaceChat/FocusIndicator/WorkspaceFocusIndicatorCaret.wl b/Developer/Resources/FrontEndResources/WorkspaceChat/FocusIndicator/WorkspaceFocusIndicatorCaret.wl new file mode 100644 index 00000000..b5755ef2 --- /dev/null +++ b/Developer/Resources/FrontEndResources/WorkspaceChat/FocusIndicator/WorkspaceFocusIndicatorCaret.wl @@ -0,0 +1,46 @@ +(* ::Package:: *) + +RawBoxes @ ToBoxes @ Graphics[ + { + Thickness[ 0.2 ], + Style[ + { + FilledCurve[ + { { { 1, 4, 3 }, { 0, 1, 0 }, { 0, 1, 0 }, { 1, 3, 3 }, { 1, 3, 3 }, { 0, 1, 0 }, { 1, 3, 3 }, { 1, 3, 3 }, { 0, 1, 0 }, { 1, 3, 3 } } }, + { + { + { 4.8535, 2.8535 }, + { 4.6585, 3.0485 }, + { 4.3415, 3.0485 }, + { 4.1465, 2.8535 }, + { 2.4995, 1.2075 }, + { 0.8535, 2.8535 }, + { 0.6585, 3.0485 }, + { 0.3415, 3.0485 }, + { 0.1465, 2.8535 }, + { -0.0485, 2.6585 }, + { -0.0485, 2.3415 }, + { 0.1465, 2.1465 }, + { 2.1465, 0.1465 }, + { 2.2445, 0.0485 }, + { 2.3725, -0.00049996 }, + { 2.4995, -0.00049996 }, + { 2.6275, -0.00049996 }, + { 2.7555, 0.0485 }, + { 2.8535, 0.1465 }, + { 4.8535, 2.1465 }, + { 5.0485, 2.3415 }, + { 5.0485, 2.6585 }, + { 4.8535, 2.8535 } + } + } + ] + }, + FaceForm @ RGBColor[ 0.53725, 0.53725, 0.53725, 1.0 ] + ] + }, + ImageSize -> { 6.0, 4.0 }, + PlotRange -> { { -0.5, 5.5 }, { -0.5, 3.5 } }, + AspectRatio -> Automatic, + BaselinePosition -> Center -> Center +] \ No newline at end of file diff --git a/Developer/Resources/FrontEndResources/WorkspaceChat/FocusIndicator/WorkspaceFocusIndicatorCheck.wl b/Developer/Resources/FrontEndResources/WorkspaceChat/FocusIndicator/WorkspaceFocusIndicatorCheck.wl new file mode 100644 index 00000000..a78e9598 --- /dev/null +++ b/Developer/Resources/FrontEndResources/WorkspaceChat/FocusIndicator/WorkspaceFocusIndicatorCheck.wl @@ -0,0 +1,127 @@ +(* ::Package:: *) + +RawBoxes @ ToBoxes @ Mouseover[ + Graphics[ + { + Thickness[ 0.1 ], + Style[ + { + FilledCurve[ + { { { 0, 2, 0 }, { 1, 3, 3 }, { 0, 1, 0 }, { 1, 3, 3 }, { 0, 1, 0 }, { 1, 3, 3 }, { 0, 1, 0 }, { 1, 3, 3 } } }, + { + { + { 7.5959, 0.0 }, + { 2.4039, 0.0 }, + { 1.0759, 0.0 }, + { -0.00010014, 1.076 }, + { -0.00010014, 2.404 }, + { -0.00010014, 7.596 }, + { -0.00010014, 8.924 }, + { 1.0759, 10.0 }, + { 2.4039, 10.0 }, + { 7.5959, 10.0 }, + { 8.9239, 10.0 }, + { 9.9999, 8.924 }, + { 9.9999, 7.596 }, + { 9.9999, 2.404 }, + { 9.9999, 1.076 }, + { 8.9239, 0.0 }, + { 7.5959, 0.0 } + } + } + ] + }, + FaceForm @ RGBColor[ 0.53725, 0.53725, 0.53725, 1.0 ] + ], + Style[ + { + JoinedCurve[ + { { { 1, 4, 3 }, { 1, 3, 3 } } }, + { + { + { 2.2297, 5.2572 }, + { 3.1857, 3.9922 }, + { 4.1847, 2.3282 }, + { 4.1847, 2.3282 }, + { 4.1847, 2.3282 }, + { 6.0057, 5.3422 }, + { 7.7707, 7.6712 } + } + }, + CurveClosed -> { 0 } + ] + }, + CapForm[ "Round" ], + JoinForm[ "Round" ], + RGBColor[ 1.0, 1.0, 1.0, 1.0 ] + ] + }, + (* ImageMargins -> { { 0, 1 }, { 1, 0 } }, *) + ImageSize -> { 11.0, 11.0 }, + PlotRange -> { { -0.5, 10.5 }, { -0.5, 10.5 } }, + AspectRatio -> Automatic, + BaselinePosition -> Center -> Center + ], + Graphics[ + { + Thickness[ 0.1 ], + Style[ + { + FilledCurve[ + { { { 0, 2, 0 }, { 1, 3, 3 }, { 0, 1, 0 }, { 1, 3, 3 }, { 0, 1, 0 }, { 1, 3, 3 }, { 0, 1, 0 }, { 1, 3, 3 } } }, + { + { + { 7.5959, 0.0 }, + { 2.4039, 0.0 }, + { 1.0759, 0.0 }, + { -0.00010014, 1.076 }, + { -0.00010014, 2.404 }, + { -0.00010014, 7.596 }, + { -0.00010014, 8.924 }, + { 1.0759, 10.0 }, + { 2.4039, 10.0 }, + { 7.5959, 10.0 }, + { 8.9239, 10.0 }, + { 9.9999, 8.924 }, + { 9.9999, 7.596 }, + { 9.9999, 2.404 }, + { 9.9999, 1.076 }, + { 8.9239, 0.0 }, + { 7.5959, 0.0 } + } + } + ] + }, + FaceForm @ RGBColor[ 0.74902, 0.74902, 0.74902, 1.0 ] + ], + Style[ + { + JoinedCurve[ + { { { 1, 4, 3 }, { 1, 3, 3 } } }, + { + { + { 2.2297, 5.2572 }, + { 3.1857, 3.9922 }, + { 4.1847, 2.3282 }, + { 4.1847, 2.3282 }, + { 4.1847, 2.3282 }, + { 6.0057, 5.3422 }, + { 7.7707, 7.6712 } + } + }, + CurveClosed -> { 0 } + ] + }, + CapForm[ "Round" ], + JoinForm[ "Round" ], + RGBColor[ 1.0, 1.0, 1.0, 1.0 ] + ] + }, + (* ImageMargins -> { { 0, 1 }, { 1, 0 } }, *) + ImageSize -> { 11.0, 11.0 }, + PlotRange -> { { -0.5, 10.5 }, { -0.5, 10.5 } }, + AspectRatio -> Automatic, + BaselinePosition -> Center -> Center + ], + BaselinePosition -> Baseline +] \ No newline at end of file diff --git a/Developer/Resources/FrontEndResources/WorkspaceChat/FocusIndicator/WorkspaceFocusIndicatorNotebook.wl b/Developer/Resources/FrontEndResources/WorkspaceChat/FocusIndicator/WorkspaceFocusIndicatorNotebook.wl new file mode 100644 index 00000000..303904b0 --- /dev/null +++ b/Developer/Resources/FrontEndResources/WorkspaceChat/FocusIndicator/WorkspaceFocusIndicatorNotebook.wl @@ -0,0 +1,281 @@ +(* ::Package:: *) + +RawBoxes @ ToBoxes @ Graphics[ + { + Thickness[ 0.090909 ], + Style[ + { + FilledCurve[ + { { { 1, 4, 3 }, { 0, 1, 0 }, { 1, 3, 3 }, { 0, 1, 0 }, { 1, 3, 3 }, { 0, 1, 0 }, { 1, 3, 3 }, { 0, 1, 0 } } }, + { + { + { 1.0, 10.0 }, + { 1.0, 10.552 }, + { 1.448, 11.0 }, + { 2.0, 11.0 }, + { 10.0, 11.0 }, + { 10.552, 11.0 }, + { 11.0, 10.552 }, + { 11.0, 10.0 }, + { 11.0, 1.0 }, + { 11.0, 0.448 }, + { 10.552, 0.0 }, + { 10.0, 0.0 }, + { 2.0, 0.0 }, + { 1.448, 0.0 }, + { 1.0, 0.448 }, + { 1.0, 1.0 }, + { 1.0, 10.0 } + } + } + ] + }, + FaceForm @ RGBColor[ 0.65098, 0.65098, 0.65098, 1.0 ] + ], + Style[ + { + FilledCurve[ + { { { 0, 2, 0 }, { 0, 1, 0 }, { 1, 3, 3 }, { 0, 1, 0 }, { 1, 3, 3 }, { 1, 3, 3 } } }, + { + { + { 0.5, 9.0 }, + { 2.0, 9.0 }, + { 2.0, 9.5 }, + { 2.0, 9.776 }, + { 2.224, 10.0 }, + { 2.5, 10.0 }, + { 0.5, 10.0 }, + { 0.224, 10.0 }, + { 0.0, 9.776 }, + { 0.0, 9.5 }, + { 0.0, 9.224 }, + { 0.224, 9.0 }, + { 0.5, 9.0 } + } + } + ] + }, + FaceForm @ RGBColor[ 0.53725, 0.53725, 0.53725, 1.0 ] + ], + Style[ + { + FilledCurve[ + { { { 0, 2, 0 }, { 0, 1, 0 }, { 0, 1, 0 }, { 1, 3, 3 }, { 1, 3, 3 } } }, + { + { + { 0.5, 7.0 }, + { 2.0, 7.0 }, + { 2.0, 8.0 }, + { 0.5, 8.0 }, + { 0.224, 8.0 }, + { 0.0, 7.776 }, + { 0.0, 7.5 }, + { 0.0, 7.224 }, + { 0.224, 7.0 }, + { 0.5, 7.0 } + } + } + ] + }, + FaceForm @ RGBColor[ 0.53725, 0.53725, 0.53725, 1.0 ] + ], + Style[ + { + FilledCurve[ + { { { 0, 2, 0 }, { 0, 1, 0 }, { 0, 1, 0 }, { 1, 3, 3 }, { 1, 3, 3 } } }, + { + { + { 0.5, 3.0 }, + { 2.0, 3.0 }, + { 2.0, 4.0 }, + { 0.5, 4.0 }, + { 0.224, 4.0 }, + { 0.0, 3.776 }, + { 0.0, 3.5 }, + { 0.0, 3.224 }, + { 0.224, 3.0 }, + { 0.5, 3.0 } + } + } + ] + }, + FaceForm @ RGBColor[ 0.53725, 0.53725, 0.53725, 1.0 ] + ], + Style[ + { + FilledCurve[ + { { { 0, 2, 0 }, { 0, 1, 0 }, { 0, 1, 0 }, { 1, 3, 3 }, { 1, 3, 3 } } }, + { + { + { 0.5, 5.0 }, + { 2.0, 5.0 }, + { 2.0, 6.0 }, + { 0.5, 6.0 }, + { 0.224, 6.0 }, + { 0.0, 5.776 }, + { 0.0, 5.5 }, + { 0.0, 5.224 }, + { 0.224, 5.0 }, + { 0.5, 5.0 } + } + } + ] + }, + FaceForm @ RGBColor[ 0.53725, 0.53725, 0.53725, 1.0 ] + ], + Style[ + { + FilledCurve[ + { { { 0, 2, 0 }, { 0, 1, 0 }, { 1, 3, 3 }, { 1, 3, 3 }, { 0, 1, 0 }, { 1, 3, 3 } } }, + { + { + { 2.0, 1.5 }, + { 2.0, 2.0 }, + { 0.5, 2.0 }, + { 0.224, 2.0 }, + { 0.0, 1.776 }, + { 0.0, 1.5 }, + { 0.0, 1.224 }, + { 0.224, 1.0 }, + { 0.5, 1.0 }, + { 2.5, 1.0 }, + { 2.224, 1.0 }, + { 2.0, 1.224 }, + { 2.0, 1.5 } + } + } + ] + }, + FaceForm @ RGBColor[ 0.53725, 0.53725, 0.53725, 1.0 ] + ], + Style[ + { + FilledCurve[ + { { { 1, 4, 3 }, { 0, 1, 0 }, { 1, 3, 3 }, { 0, 1, 0 }, { 1, 3, 3 }, { 0, 1, 0 }, { 1, 3, 3 }, { 0, 1, 0 } } }, + { + { + { 2.5, 10.0 }, + { 2.224, 10.0 }, + { 2.0, 9.776 }, + { 2.0, 9.5 }, + { 2.0, 1.5 }, + { 2.0, 1.224 }, + { 2.224, 1.0 }, + { 2.5, 1.0 }, + { 9.5, 1.0 }, + { 9.776, 1.0 }, + { 10.0, 1.224 }, + { 10.0, 1.5 }, + { 10.0, 9.5 }, + { 10.0, 9.776 }, + { 9.776, 10.0 }, + { 9.5, 10.0 }, + { 2.5, 10.0 } + } + } + ] + }, + FaceForm @ RGBColor[ 1.0, 1.0, 1.0, 1.0 ] + ], + Style[ + { + FilledCurve[ + { + { { 0, 2, 0 }, { 0, 1, 0 }, { 0, 1, 0 }, { 0, 1, 0 } }, + { { 0, 2, 0 }, { 0, 1, 0 }, { 0, 1, 0 }, { 0, 1, 0 } }, + { { 0, 2, 0 }, { 0, 1, 0 }, { 0, 1, 0 }, { 0, 1, 0 } }, + { { 0, 2, 0 }, { 0, 1, 0 }, { 0, 1, 0 }, { 0, 1, 0 } }, + { { 0, 2, 0 }, { 0, 1, 0 }, { 0, 1, 0 }, { 0, 1, 0 } }, + { { 0, 2, 0 }, { 0, 1, 0 }, { 0, 1, 0 }, { 0, 1, 0 } }, + { { 0, 2, 0 }, { 0, 1, 0 }, { 0, 1, 0 }, { 0, 1, 0 } }, + { { 0, 2, 0 }, { 0, 1, 0 }, { 0, 1, 0 }, { 0, 1, 0 } }, + { { 0, 2, 0 }, { 0, 1, 0 }, { 0, 1, 0 }, { 0, 1, 0 } }, + { { 0, 2, 0 }, { 0, 1, 0 }, { 0, 1, 0 }, { 0, 1, 0 } }, + { { 0, 2, 0 }, { 0, 1, 0 }, { 0, 1, 0 }, { 0, 1, 0 } }, + { { 0, 2, 0 }, { 0, 1, 0 }, { 0, 1, 0 }, { 0, 1, 0 } }, + { { 0, 2, 0 }, { 0, 1, 0 }, { 0, 1, 0 }, { 0, 1, 0 } }, + { { 0, 2, 0 }, { 0, 1, 0 }, { 0, 1, 0 }, { 0, 1, 0 } }, + { { 0, 2, 0 }, { 0, 1, 0 }, { 0, 1, 0 }, { 0, 1, 0 } }, + { { 0, 2, 0 }, { 0, 1, 0 }, { 0, 1, 0 }, { 0, 1, 0 } }, + { { 0, 2, 0 }, { 0, 1, 0 }, { 0, 1, 0 }, { 0, 1, 0 } }, + { { 0, 2, 0 }, { 0, 1, 0 }, { 0, 1, 0 }, { 0, 1, 0 } }, + { { 0, 2, 0 }, { 0, 1, 0 }, { 0, 1, 0 }, { 0, 1, 0 } }, + { { 0, 2, 0 }, { 0, 1, 0 }, { 0, 1, 0 }, { 0, 1, 0 } }, + { + { 0, 2, 0 }, + { 0, 1, 0 }, + { 0, 1, 0 }, + { 0, 1, 0 }, + { 0, 1, 0 }, + { 0, 1, 0 }, + { 0, 1, 0 }, + { 0, 1, 0 }, + { 0, 1, 0 }, + { 0, 1, 0 }, + { 0, 1, 0 }, + { 0, 1, 0 }, + { 0, 1, 0 }, + { 0, 1, 0 }, + { 0, 1, 0 }, + { 0, 1, 0 }, + { 0, 1, 0 }, + { 0, 1, 0 }, + { 0, 1, 0 }, + { 0, 1, 0 } + } + }, + { + { { 7.596, 4.4723 }, { 7.055, 4.6433 }, { 7.702, 4.8343 }, { 8.307, 4.6273 }, { 7.596, 4.4723 } }, + { { 6.733, 3.7103 }, { 6.752, 4.4803 }, { 7.475, 4.2513 }, { 7.566, 3.3443 }, { 6.733, 3.7103 } }, + { { 4.525, 4.2513 }, { 5.248, 4.4803 }, { 5.267, 3.7103 }, { 4.434, 3.3453 }, { 4.525, 4.2513 } }, + { { 3.693, 4.6273 }, { 4.298, 4.8343 }, { 4.945, 4.6433 }, { 4.404, 4.4723 }, { 3.693, 4.6273 } }, + { { 4.106, 5.3953 }, { 4.617, 5.5843 }, { 4.22, 5.0693 }, { 3.639, 4.8703 }, { 4.106, 5.3953 } }, + { { 3.467, 6.3233 }, { 4.356, 6.5173 }, { 4.784, 5.9103 }, { 4.071, 5.6453 }, { 3.467, 6.3233 } }, + { { 6.0, 8.1643 }, { 6.458, 7.3793 }, { 6.0, 6.7933 }, { 5.542, 7.3793 }, { 6.0, 8.1643 } }, + { { 8.534, 6.3233 }, { 7.929, 5.6453 }, { 7.216, 5.9103 }, { 7.644, 6.5173 }, { 8.534, 6.3233 } }, + { { 6.2, 5.4423 }, { 6.978, 5.7043 }, { 7.496, 5.0313 }, { 6.68, 4.7913 }, { 6.2, 5.4423 } }, + { { 5.5, 4.2343 }, { 5.874, 3.6873 }, { 5.874, 3.0473 }, { 5.513, 3.6653 }, { 5.5, 4.2343 } }, + { { 5.8, 5.4423 }, { 5.32, 4.7913 }, { 4.504, 5.0313 }, { 5.022, 5.7043 }, { 5.8, 5.4423 } }, + { { 4.53, 6.7003 }, { 4.458, 7.4193 }, { 4.824, 6.9253 }, { 4.842, 6.2563 }, { 4.53, 6.7003 } }, + { { 6.126, 6.5053 }, { 6.926, 6.7903 }, { 6.903, 5.9393 }, { 6.126, 5.6773 }, { 6.126, 6.5053 } }, + { { 5.097, 5.9393 }, { 5.073, 6.7903 }, { 5.874, 6.5053 }, { 5.874, 5.6773 }, { 5.097, 5.9393 } }, + { { 6.0, 3.9443 }, { 5.52, 4.6453 }, { 6.0, 5.2973 }, { 6.48, 4.6453 }, { 6.0, 3.9443 } }, + { { 7.47, 6.7003 }, { 7.158, 6.2563 }, { 7.176, 6.9253 }, { 7.542, 7.4193 }, { 7.47, 6.7003 } }, + { { 6.686, 7.2683 }, { 7.333, 7.5533 }, { 6.976, 7.0713 }, { 6.36, 6.8523 }, { 6.686, 7.2683 } }, + { { 5.64, 6.8523 }, { 5.024, 7.0713 }, { 4.667, 7.5533 }, { 5.315, 7.2683 }, { 5.64, 6.8523 } }, + { { 6.486, 3.6653 }, { 6.126, 3.0483 }, { 6.126, 3.6873 }, { 6.5, 4.2343 }, { 6.486, 3.6653 } }, + { { 8.361, 4.8703 }, { 7.78, 5.0693 }, { 7.383, 5.5843 }, { 7.894, 5.3943 }, { 8.361, 4.8703 } }, + { + { 8.131, 5.4993 }, + { 9.0, 6.4743 }, + { 7.724, 6.7523 }, + { 7.854, 8.0513 }, + { 6.659, 7.5273 }, + { 6.0, 8.6543 }, + { 5.342, 7.5273 }, + { 4.146, 8.0523 }, + { 4.276, 6.7533 }, + { 3.0, 6.4753 }, + { 3.869, 5.5003 }, + { 3.0, 4.5253 }, + { 4.276, 4.2473 }, + { 4.146, 2.9483 }, + { 5.341, 3.4733 }, + { 6.0, 2.3453 }, + { 6.658, 3.4733 }, + { 7.854, 2.9483 }, + { 7.724, 4.2473 }, + { 9.0, 4.5253 }, + { 8.131, 5.4993 } + } + } + ] + }, + FaceForm @ RGBColor[ 0.53725, 0.53725, 0.53725, 1.0 ] + ] + }, + ImageSize -> { 12.0, 12.0 }, + PlotRange -> { { -0.5, 11.5 }, { -0.5, 11.5 } }, + AspectRatio -> Automatic, + BaselinePosition -> Center -> Center +] \ No newline at end of file diff --git a/Developer/Resources/FrontEndResources/WorkspaceChat/FocusIndicator/WorkspaceFocusIndicatorNotebookActive.wl b/Developer/Resources/FrontEndResources/WorkspaceChat/FocusIndicator/WorkspaceFocusIndicatorNotebookActive.wl new file mode 100644 index 00000000..26917d3c --- /dev/null +++ b/Developer/Resources/FrontEndResources/WorkspaceChat/FocusIndicator/WorkspaceFocusIndicatorNotebookActive.wl @@ -0,0 +1,281 @@ +(* ::Package:: *) + +RawBoxes @ ToBoxes @ Graphics[ + { + Thickness[ 0.090909 ], + Style[ + { + FilledCurve[ + { { { 1, 4, 3 }, { 0, 1, 0 }, { 1, 3, 3 }, { 0, 1, 0 }, { 1, 3, 3 }, { 0, 1, 0 }, { 1, 3, 3 }, { 0, 1, 0 } } }, + { + { + { 1.0, 10.0 }, + { 1.0, 10.552 }, + { 1.448, 11.0 }, + { 2.0, 11.0 }, + { 10.0, 11.0 }, + { 10.552, 11.0 }, + { 11.0, 10.552 }, + { 11.0, 10.0 }, + { 11.0, 1.0 }, + { 11.0, 0.448 }, + { 10.552, 0.0 }, + { 10.0, 0.0 }, + { 2.0, 0.0 }, + { 1.448, 0.0 }, + { 1.0, 0.448 }, + { 1.0, 1.0 }, + { 1.0, 10.0 } + } + } + ] + }, + FaceForm @ RGBColor[ 0.51765, 0.7451, 0.86275, 1.0 ] + ], + Style[ + { + FilledCurve[ + { { { 0, 2, 0 }, { 0, 1, 0 }, { 1, 3, 3 }, { 0, 1, 0 }, { 1, 3, 3 }, { 1, 3, 3 } } }, + { + { + { 0.5, 9.0 }, + { 2.0, 9.0 }, + { 2.0, 9.5 }, + { 2.0, 9.776 }, + { 2.224, 10.0 }, + { 2.5, 10.0 }, + { 0.5, 10.0 }, + { 0.224, 10.0 }, + { 0.0, 9.776 }, + { 0.0, 9.5 }, + { 0.0, 9.224 }, + { 0.224, 9.0 }, + { 0.5, 9.0 } + } + } + ] + }, + FaceForm @ RGBColor[ 0.59216, 0.81176, 0.92941, 1.0 ] + ], + Style[ + { + FilledCurve[ + { { { 0, 2, 0 }, { 0, 1, 0 }, { 0, 1, 0 }, { 1, 3, 3 }, { 1, 3, 3 } } }, + { + { + { 0.5, 7.0 }, + { 2.0, 7.0 }, + { 2.0, 8.0 }, + { 0.5, 8.0 }, + { 0.224, 8.0 }, + { 0.0, 7.776 }, + { 0.0, 7.5 }, + { 0.0, 7.224 }, + { 0.224, 7.0 }, + { 0.5, 7.0 } + } + } + ] + }, + FaceForm @ RGBColor[ 0.59216, 0.81176, 0.92941, 1.0 ] + ], + Style[ + { + FilledCurve[ + { { { 0, 2, 0 }, { 0, 1, 0 }, { 0, 1, 0 }, { 1, 3, 3 }, { 1, 3, 3 } } }, + { + { + { 0.5, 3.0 }, + { 2.0, 3.0 }, + { 2.0, 4.0 }, + { 0.5, 4.0 }, + { 0.224, 4.0 }, + { 0.0, 3.776 }, + { 0.0, 3.5 }, + { 0.0, 3.224 }, + { 0.224, 3.0 }, + { 0.5, 3.0 } + } + } + ] + }, + FaceForm @ RGBColor[ 0.59216, 0.81176, 0.92941, 1.0 ] + ], + Style[ + { + FilledCurve[ + { { { 0, 2, 0 }, { 0, 1, 0 }, { 0, 1, 0 }, { 1, 3, 3 }, { 1, 3, 3 } } }, + { + { + { 0.5, 5.0 }, + { 2.0, 5.0 }, + { 2.0, 6.0 }, + { 0.5, 6.0 }, + { 0.224, 6.0 }, + { 0.0, 5.776 }, + { 0.0, 5.5 }, + { 0.0, 5.224 }, + { 0.224, 5.0 }, + { 0.5, 5.0 } + } + } + ] + }, + FaceForm @ RGBColor[ 0.59216, 0.81176, 0.92941, 1.0 ] + ], + Style[ + { + FilledCurve[ + { { { 0, 2, 0 }, { 0, 1, 0 }, { 1, 3, 3 }, { 1, 3, 3 }, { 0, 1, 0 }, { 1, 3, 3 } } }, + { + { + { 2.0, 1.5 }, + { 2.0, 2.0 }, + { 0.5, 2.0 }, + { 0.224, 2.0 }, + { 0.0, 1.776 }, + { 0.0, 1.5 }, + { 0.0, 1.224 }, + { 0.224, 1.0 }, + { 0.5, 1.0 }, + { 2.5, 1.0 }, + { 2.224, 1.0 }, + { 2.0, 1.224 }, + { 2.0, 1.5 } + } + } + ] + }, + FaceForm @ RGBColor[ 0.59216, 0.81176, 0.92941, 1.0 ] + ], + Style[ + { + FilledCurve[ + { { { 1, 4, 3 }, { 0, 1, 0 }, { 1, 3, 3 }, { 0, 1, 0 }, { 1, 3, 3 }, { 0, 1, 0 }, { 1, 3, 3 }, { 0, 1, 0 } } }, + { + { + { 2.5, 10.0 }, + { 2.224, 10.0 }, + { 2.0, 9.776 }, + { 2.0, 9.5 }, + { 2.0, 1.5 }, + { 2.0, 1.224 }, + { 2.224, 1.0 }, + { 2.5, 1.0 }, + { 9.5, 1.0 }, + { 9.776, 1.0 }, + { 10.0, 1.224 }, + { 10.0, 1.5 }, + { 10.0, 9.5 }, + { 10.0, 9.776 }, + { 9.776, 10.0 }, + { 9.5, 10.0 }, + { 2.5, 10.0 } + } + } + ] + }, + FaceForm @ RGBColor[ 1.0, 1.0, 1.0, 1.0 ] + ], + Style[ + { + FilledCurve[ + { + { { 0, 2, 0 }, { 0, 1, 0 }, { 0, 1, 0 }, { 0, 1, 0 } }, + { { 0, 2, 0 }, { 0, 1, 0 }, { 0, 1, 0 }, { 0, 1, 0 } }, + { { 0, 2, 0 }, { 0, 1, 0 }, { 0, 1, 0 }, { 0, 1, 0 } }, + { { 0, 2, 0 }, { 0, 1, 0 }, { 0, 1, 0 }, { 0, 1, 0 } }, + { { 0, 2, 0 }, { 0, 1, 0 }, { 0, 1, 0 }, { 0, 1, 0 } }, + { { 0, 2, 0 }, { 0, 1, 0 }, { 0, 1, 0 }, { 0, 1, 0 } }, + { { 0, 2, 0 }, { 0, 1, 0 }, { 0, 1, 0 }, { 0, 1, 0 } }, + { { 0, 2, 0 }, { 0, 1, 0 }, { 0, 1, 0 }, { 0, 1, 0 } }, + { { 0, 2, 0 }, { 0, 1, 0 }, { 0, 1, 0 }, { 0, 1, 0 } }, + { { 0, 2, 0 }, { 0, 1, 0 }, { 0, 1, 0 }, { 0, 1, 0 } }, + { { 0, 2, 0 }, { 0, 1, 0 }, { 0, 1, 0 }, { 0, 1, 0 } }, + { { 0, 2, 0 }, { 0, 1, 0 }, { 0, 1, 0 }, { 0, 1, 0 } }, + { { 0, 2, 0 }, { 0, 1, 0 }, { 0, 1, 0 }, { 0, 1, 0 } }, + { { 0, 2, 0 }, { 0, 1, 0 }, { 0, 1, 0 }, { 0, 1, 0 } }, + { { 0, 2, 0 }, { 0, 1, 0 }, { 0, 1, 0 }, { 0, 1, 0 } }, + { { 0, 2, 0 }, { 0, 1, 0 }, { 0, 1, 0 }, { 0, 1, 0 } }, + { { 0, 2, 0 }, { 0, 1, 0 }, { 0, 1, 0 }, { 0, 1, 0 } }, + { { 0, 2, 0 }, { 0, 1, 0 }, { 0, 1, 0 }, { 0, 1, 0 } }, + { { 0, 2, 0 }, { 0, 1, 0 }, { 0, 1, 0 }, { 0, 1, 0 } }, + { { 0, 2, 0 }, { 0, 1, 0 }, { 0, 1, 0 }, { 0, 1, 0 } }, + { + { 0, 2, 0 }, + { 0, 1, 0 }, + { 0, 1, 0 }, + { 0, 1, 0 }, + { 0, 1, 0 }, + { 0, 1, 0 }, + { 0, 1, 0 }, + { 0, 1, 0 }, + { 0, 1, 0 }, + { 0, 1, 0 }, + { 0, 1, 0 }, + { 0, 1, 0 }, + { 0, 1, 0 }, + { 0, 1, 0 }, + { 0, 1, 0 }, + { 0, 1, 0 }, + { 0, 1, 0 }, + { 0, 1, 0 }, + { 0, 1, 0 }, + { 0, 1, 0 } + } + }, + { + { { 7.596, 4.4723 }, { 7.055, 4.6433 }, { 7.702, 4.8343 }, { 8.307, 4.6273 }, { 7.596, 4.4723 } }, + { { 6.733, 3.7103 }, { 6.752, 4.4803 }, { 7.475, 4.2513 }, { 7.566, 3.3443 }, { 6.733, 3.7103 } }, + { { 4.525, 4.2513 }, { 5.248, 4.4803 }, { 5.267, 3.7103 }, { 4.434, 3.3453 }, { 4.525, 4.2513 } }, + { { 3.693, 4.6273 }, { 4.298, 4.8343 }, { 4.945, 4.6433 }, { 4.404, 4.4723 }, { 3.693, 4.6273 } }, + { { 4.106, 5.3953 }, { 4.617, 5.5843 }, { 4.22, 5.0693 }, { 3.639, 4.8703 }, { 4.106, 5.3953 } }, + { { 3.467, 6.3233 }, { 4.356, 6.5173 }, { 4.784, 5.9103 }, { 4.071, 5.6453 }, { 3.467, 6.3233 } }, + { { 6.0, 8.1643 }, { 6.458, 7.3793 }, { 6.0, 6.7933 }, { 5.542, 7.3793 }, { 6.0, 8.1643 } }, + { { 8.534, 6.3233 }, { 7.929, 5.6453 }, { 7.216, 5.9103 }, { 7.644, 6.5173 }, { 8.534, 6.3233 } }, + { { 6.2, 5.4423 }, { 6.978, 5.7043 }, { 7.496, 5.0313 }, { 6.68, 4.7913 }, { 6.2, 5.4423 } }, + { { 5.5, 4.2343 }, { 5.874, 3.6873 }, { 5.874, 3.0473 }, { 5.513, 3.6653 }, { 5.5, 4.2343 } }, + { { 5.8, 5.4423 }, { 5.32, 4.7913 }, { 4.504, 5.0313 }, { 5.022, 5.7043 }, { 5.8, 5.4423 } }, + { { 4.53, 6.7003 }, { 4.458, 7.4193 }, { 4.824, 6.9253 }, { 4.842, 6.2563 }, { 4.53, 6.7003 } }, + { { 6.126, 6.5053 }, { 6.926, 6.7903 }, { 6.903, 5.9393 }, { 6.126, 5.6773 }, { 6.126, 6.5053 } }, + { { 5.097, 5.9393 }, { 5.073, 6.7903 }, { 5.874, 6.5053 }, { 5.874, 5.6773 }, { 5.097, 5.9393 } }, + { { 6.0, 3.9443 }, { 5.52, 4.6453 }, { 6.0, 5.2973 }, { 6.48, 4.6453 }, { 6.0, 3.9443 } }, + { { 7.47, 6.7003 }, { 7.158, 6.2563 }, { 7.176, 6.9253 }, { 7.542, 7.4193 }, { 7.47, 6.7003 } }, + { { 6.686, 7.2683 }, { 7.333, 7.5533 }, { 6.976, 7.0713 }, { 6.36, 6.8523 }, { 6.686, 7.2683 } }, + { { 5.64, 6.8523 }, { 5.024, 7.0713 }, { 4.667, 7.5533 }, { 5.315, 7.2683 }, { 5.64, 6.8523 } }, + { { 6.486, 3.6653 }, { 6.126, 3.0483 }, { 6.126, 3.6873 }, { 6.5, 4.2343 }, { 6.486, 3.6653 } }, + { { 8.361, 4.8703 }, { 7.78, 5.0693 }, { 7.383, 5.5843 }, { 7.894, 5.3943 }, { 8.361, 4.8703 } }, + { + { 8.131, 5.4993 }, + { 9.0, 6.4743 }, + { 7.724, 6.7523 }, + { 7.854, 8.0513 }, + { 6.659, 7.5273 }, + { 6.0, 8.6543 }, + { 5.342, 7.5273 }, + { 4.146, 8.0523 }, + { 4.276, 6.7533 }, + { 3.0, 6.4753 }, + { 3.869, 5.5003 }, + { 3.0, 4.5253 }, + { 4.276, 4.2473 }, + { 4.146, 2.9483 }, + { 5.341, 3.4733 }, + { 6.0, 2.3453 }, + { 6.658, 3.4733 }, + { 7.854, 2.9483 }, + { 7.724, 4.2473 }, + { 9.0, 4.5253 }, + { 8.131, 5.4993 } + } + } + ] + }, + FaceForm @ RGBColor[ 0.2, 0.51373, 0.67451, 1.0 ] + ] + }, + ImageSize -> { 12.0, 12.0 }, + PlotRange -> { { -0.5, 11.5 }, { -0.5, 11.5 } }, + AspectRatio -> Automatic, + BaselinePosition -> Center -> Center +] \ No newline at end of file diff --git a/Developer/Resources/FrontEndResources/WorkspaceChat/FocusIndicator/WorkspaceFocusIndicatorUncheck.wl b/Developer/Resources/FrontEndResources/WorkspaceChat/FocusIndicator/WorkspaceFocusIndicatorUncheck.wl new file mode 100644 index 00000000..4956e805 --- /dev/null +++ b/Developer/Resources/FrontEndResources/WorkspaceChat/FocusIndicator/WorkspaceFocusIndicatorUncheck.wl @@ -0,0 +1,185 @@ +(* ::Package:: *) + +RawBoxes @ ToBoxes @ Mouseover[ + Graphics[ + { + Thickness[ 0.1 ], + Style[ + { + FilledCurve[ + { { { 1, 4, 3 }, { 0, 1, 0 }, { 1, 3, 3 }, { 0, 1, 0 }, { 1, 3, 3 }, { 0, 1, 0 }, { 1, 3, 3 }, { 0, 1, 0 } } }, + { + { + { 2.4043, 0.5 }, + { 1.3543, 0.5 }, + { 0.5003, 1.354 }, + { 0.5003, 2.404 }, + { 0.5003, 7.596 }, + { 0.5003, 8.646 }, + { 1.3543, 9.5 }, + { 2.4043, 9.5 }, + { 7.5953, 9.5 }, + { 8.6453, 9.5 }, + { 9.5003, 8.646 }, + { 9.5003, 7.596 }, + { 9.5003, 2.404 }, + { 9.5003, 1.354 }, + { 8.6453, 0.5 }, + { 7.5953, 0.5 }, + { 2.4043, 0.5 } + } + } + ] + }, + FaceForm @ RGBColor[ 1.0, 1.0, 1.0, 1.0 ] + ], + Style[ + { + FilledCurve[ + { + { { 0, 2, 0 }, { 1, 3, 3 }, { 0, 1, 0 }, { 1, 3, 3 }, { 0, 1, 0 }, { 1, 3, 3 }, { 0, 1, 0 }, { 1, 3, 3 } }, + { { 1, 4, 3 }, { 0, 1, 0 }, { 1, 3, 3 }, { 0, 1, 0 }, { 1, 3, 3 }, { 0, 1, 0 }, { 1, 3, 3 }, { 0, 1, 0 } } + }, + { + { + { 7.5959, 10.0 }, + { 2.4039, 10.0 }, + { 1.0759, 10.0 }, + { -0.00010014, 8.924 }, + { -0.00010014, 7.596 }, + { -0.00010014, 2.404 }, + { -0.00010014, 1.076 }, + { 1.0759, 0.0 }, + { 2.4039, 0.0 }, + { 7.5959, 0.0 }, + { 8.9239, 0.0 }, + { 9.9999, 1.076 }, + { 9.9999, 2.404 }, + { 9.9999, 7.596 }, + { 9.9999, 8.924 }, + { 8.9239, 10.0 }, + { 7.5959, 10.0 } + }, + { + { 7.5959, 9.0 }, + { 8.3699, 9.0 }, + { 8.9999, 8.37 }, + { 8.9999, 7.596 }, + { 8.9999, 2.404 }, + { 8.9999, 1.63 }, + { 8.3699, 1.0 }, + { 7.5959, 1.0 }, + { 2.4039, 1.0 }, + { 1.6299, 1.0 }, + { 0.9999, 1.63 }, + { 0.9999, 2.404 }, + { 0.9999, 7.596 }, + { 0.9999, 8.37 }, + { 1.6299, 9.0 }, + { 2.4039, 9.0 }, + { 7.5959, 9.0 } + } + } + ] + }, + FaceForm @ RGBColor[ 0.53725, 0.53725, 0.53725, 1.0 ] + ] + }, + (* ImageMargins -> { { 0, 1 }, { 1, 0 } }, *) + ImageSize -> { 11.0, 11.0 }, + PlotRange -> { { -0.5, 10.5 }, { -0.5, 10.5 } }, + AspectRatio -> Automatic, + BaselinePosition -> Center -> Center + ], + Graphics[ + { + Thickness[ 0.1 ], + Style[ + { + FilledCurve[ + { { { 1, 4, 3 }, { 0, 1, 0 }, { 1, 3, 3 }, { 0, 1, 0 }, { 1, 3, 3 }, { 0, 1, 0 }, { 1, 3, 3 }, { 0, 1, 0 } } }, + { + { + { 2.4043, 0.5 }, + { 1.3543, 0.5 }, + { 0.5003, 1.354 }, + { 0.5003, 2.404 }, + { 0.5003, 7.596 }, + { 0.5003, 8.646 }, + { 1.3543, 9.5 }, + { 2.4043, 9.5 }, + { 7.5953, 9.5 }, + { 8.6453, 9.5 }, + { 9.5003, 8.646 }, + { 9.5003, 7.596 }, + { 9.5003, 2.404 }, + { 9.5003, 1.354 }, + { 8.6453, 0.5 }, + { 7.5953, 0.5 }, + { 2.4043, 0.5 } + } + } + ] + }, + FaceForm @ RGBColor[ 0.97647, 0.97647, 0.97647, 1.0 ] + ], + Style[ + { + FilledCurve[ + { + { { 0, 2, 0 }, { 1, 3, 3 }, { 0, 1, 0 }, { 1, 3, 3 }, { 0, 1, 0 }, { 1, 3, 3 }, { 0, 1, 0 }, { 1, 3, 3 } }, + { { 1, 4, 3 }, { 0, 1, 0 }, { 1, 3, 3 }, { 0, 1, 0 }, { 1, 3, 3 }, { 0, 1, 0 }, { 1, 3, 3 }, { 0, 1, 0 } } + }, + { + { + { 7.5959, 10.0 }, + { 2.4039, 10.0 }, + { 1.0759, 10.0 }, + { -0.00010014, 8.924 }, + { -0.00010014, 7.596 }, + { -0.00010014, 2.404 }, + { -0.00010014, 1.076 }, + { 1.0759, 0.0 }, + { 2.4039, 0.0 }, + { 7.5959, 0.0 }, + { 8.9239, 0.0 }, + { 9.9999, 1.076 }, + { 9.9999, 2.404 }, + { 9.9999, 7.596 }, + { 9.9999, 8.924 }, + { 8.9239, 10.0 }, + { 7.5959, 10.0 } + }, + { + { 7.5959, 9.0 }, + { 8.3699, 9.0 }, + { 8.9999, 8.37 }, + { 8.9999, 7.596 }, + { 8.9999, 2.404 }, + { 8.9999, 1.63 }, + { 8.3699, 1.0 }, + { 7.5959, 1.0 }, + { 2.4039, 1.0 }, + { 1.6299, 1.0 }, + { 0.9999, 1.63 }, + { 0.9999, 2.404 }, + { 0.9999, 7.596 }, + { 0.9999, 8.37 }, + { 1.6299, 9.0 }, + { 2.4039, 9.0 }, + { 7.5959, 9.0 } + } + } + ] + }, + FaceForm @ RGBColor[ 0.74902, 0.74902, 0.74902, 1.0 ] + ] + }, + (* ImageMargins -> { { 0, 1 }, { 1, 0 } }, *) + ImageSize -> { 11.0, 11.0 }, + PlotRange -> { { -0.5, 10.5 }, { -0.5, 10.5 } }, + AspectRatio -> Automatic, + BaselinePosition -> Center -> Center + ], + BaselinePosition -> Baseline +] \ No newline at end of file diff --git a/FrontEnd/TextResources/ChatbookResources.tr b/FrontEnd/TextResources/ChatbookResources.tr index 1f6147d6..a28b3e38 100644 --- a/FrontEnd/TextResources/ChatbookResources.tr +++ b/FrontEnd/TextResources/ChatbookResources.tr @@ -5625,7 +5625,302 @@ E47Cf9OgiqLeY99/PRC9I+GKBFj87xZtZPkNaoHayPof3FinhcJn9NZCVn9B JzxmIQ== "]]}, { FaceForm[#]}, StripOnInput -> False]}, ImageSize -> {19., 15.}, - PlotRange -> {{-0.5, 18.5}, {-0.5, 14.5}}, AspectRatio -> Automatic]& ) + PlotRange -> {{-0.5, 18.5}, {-0.5, 14.5}}, AspectRatio -> Automatic]& ), + +"WorkspaceFocusIndicatorCaret" -> GraphicsBox[ + {Thickness[0.2], FaceForm[{RGBColor[0.53725, 0.53725, 0.53725], Opacity[ + 1.]}], FilledCurveBox[{{{1, 4, 3}, {0, 1, 0}, {0, 1, 0}, {1, 3, 3}, {1, 3, + 3}, {0, 1, 0}, {1, 3, 3}, {1, 3, 3}, {0, 1, 0}, {1, 3, + 3}}}, CompressedData[" +1:eJxTTMoPSmVmYGBgBGJxIGYCYpfunOe/M4Ud2sVunvt+mc3hz8qPl3wXCTmI +A7nByRwOLGF8uptiBeH8PSWTJVimCcDVP72gdPvnP2aHoB1yra8DP9vLRqVY +3/d/bQ+Tv+/fOz1P6Kk9TL9TAkjHVTgfJNt84BBc/SLXbZ//Xlmx/0fw46Wz +XVjhfI41MlEpu5ng6itfqhly6DA6wGiY+O2fdVl7vjDC9NlXi6xzf/iLycFK +cdub74kO+2HuhfGBjt4hx8oK56uyNU515oa7A+4umPmw8ILZC+KuNBRxgLkP +xoe5Hz18AaZOtJQ= + "]]}, + AspectRatio->Automatic, + BaselinePosition->(Center -> Center), + ImageSize->{6., 4.}, + PlotRange->{{-0.5, 5.5}, {-0.5, 3.5}}], + +"WorkspaceFocusIndicatorCheck" -> PaneSelectorBox[{False-> + GraphicsBox[ + {Thickness[0.1], + {FaceForm[{RGBColor[0.53725, 0.53725, 0.53725], Opacity[1.]}], + FilledCurveBox[{{{0, 2, 0}, {1, 3, 3}, {0, 1, 0}, {1, 3, 3}, {0, 1, 0}, { + 1, 3, 3}, {0, 1, 0}, {1, 3, 3}}}, {{{7.5959, 0.}, {2.4039, 0.}, {1.0759, + 0.}, {-0.00010014, 1.076}, {-0.00010014, 2.404}, {-0.00010014, + 7.596}, {-0.00010014, 8.924}, {1.0759, 10.}, {2.4039, 10.}, {7.5959, + 10.}, {8.9239, 10.}, {9.9999, 8.924}, {9.9999, 7.596}, {9.9999, + 2.404}, {9.9999, 1.076}, {8.9239, 0.}, {7.5959, 0.}}}]}, + {RGBColor[1., 1., 1.], Opacity[1.], CapForm["Round"], JoinForm["Round"], + JoinedCurveBox[{{{1, 4, 3}, {1, 3, 3}}}, {{{2.2297, 5.2572}, {3.1857, + 3.9922}, {4.1847, 2.3282}, {4.1847, 2.3282}, {4.1847, 2.3282}, {6.0057, + 5.3422}, {7.7707, 7.6712}}}, + CurveClosed->{0}]}}, + AspectRatio->Automatic, + BaselinePosition->(Center -> Center), + ImageSize->{11., 11.}, + PlotRange->{{-0.5, 10.5}, {-0.5, 10.5}}], True-> + GraphicsBox[ + {Thickness[0.1], + {FaceForm[{RGBColor[0.74902, 0.74902, 0.74902], Opacity[1.]}], + FilledCurveBox[{{{0, 2, 0}, {1, 3, 3}, {0, 1, 0}, {1, 3, 3}, {0, 1, 0}, { + 1, 3, 3}, {0, 1, 0}, {1, 3, 3}}}, {{{7.5959, 0.}, {2.4039, 0.}, {1.0759, + 0.}, {-0.00010014, 1.076}, {-0.00010014, 2.404}, {-0.00010014, + 7.596}, {-0.00010014, 8.924}, {1.0759, 10.}, {2.4039, 10.}, {7.5959, + 10.}, {8.9239, 10.}, {9.9999, 8.924}, {9.9999, 7.596}, {9.9999, + 2.404}, {9.9999, 1.076}, {8.9239, 0.}, {7.5959, 0.}}}]}, + {RGBColor[1., 1., 1.], Opacity[1.], CapForm["Round"], JoinForm["Round"], + JoinedCurveBox[{{{1, 4, 3}, {1, 3, 3}}}, {{{2.2297, 5.2572}, {3.1857, + 3.9922}, {4.1847, 2.3282}, {4.1847, 2.3282}, {4.1847, 2.3282}, {6.0057, + 5.3422}, {7.7707, 7.6712}}}, + CurveClosed->{0}]}}, + AspectRatio->Automatic, + BaselinePosition->(Center -> Center), + ImageSize->{11., 11.}, + PlotRange->{{-0.5, 10.5}, {-0.5, 10.5}}]}, Dynamic[ + CurrentValue["MouseOver"]], + BaselinePosition->Baseline, + FrameMargins->0, + ImageSize->Automatic], + +"WorkspaceFocusIndicatorNotebookActive" -> GraphicsBox[ + {Thickness[0.090909], + {FaceForm[{RGBColor[0.51765, 0.7451, 0.86275], Opacity[1.]}], + FilledCurveBox[{{{1, 4, 3}, {0, 1, 0}, {1, 3, 3}, {0, 1, 0}, {1, 3, 3}, { + 0, 1, 0}, {1, 3, 3}, {0, 1, 0}}}, {{{1., 10.}, {1., 10.552}, {1.448, + 11.}, {2., 11.}, {10., 11.}, {10.552, 11.}, {11., 10.552}, {11., 10.}, { + 11., 1.}, {11., 0.448}, {10.552, 0.}, {10., 0.}, {2., 0.}, {1.448, 0.}, { + 1., 0.448}, {1., 1.}, {1., 10.}}}]}, + {FaceForm[{RGBColor[0.59216, 0.81176, 0.92941], Opacity[1.]}], + FilledCurveBox[{{{0, 2, 0}, {0, 1, 0}, {1, 3, 3}, {0, 1, 0}, {1, 3, 3}, { + 1, 3, 3}}}, {{{0.5, 9.}, {2., 9.}, {2., 9.5}, {2., 9.776}, {2.224, + 10.}, {2.5, 10.}, {0.5, 10.}, {0.224, 10.}, {0., 9.776}, {0., 9.5}, {0., + 9.224}, {0.224, 9.}, {0.5, 9.}}}]}, + {FaceForm[{RGBColor[0.59216, 0.81176, 0.92941], Opacity[1.]}], + FilledCurveBox[{{{0, 2, 0}, {0, 1, 0}, {0, 1, 0}, {1, 3, 3}, {1, 3, + 3}}}, {{{0.5, 7.}, {2., 7.}, {2., 8.}, {0.5, 8.}, {0.224, 8.}, {0., + 7.776}, {0., 7.5}, {0., 7.224}, {0.224, 7.}, {0.5, 7.}}}]}, + {FaceForm[{RGBColor[0.59216, 0.81176, 0.92941], Opacity[1.]}], + FilledCurveBox[{{{0, 2, 0}, {0, 1, 0}, {0, 1, 0}, {1, 3, 3}, {1, 3, + 3}}}, {{{0.5, 3.}, {2., 3.}, {2., 4.}, {0.5, 4.}, {0.224, 4.}, {0., + 3.776}, {0., 3.5}, {0., 3.224}, {0.224, 3.}, {0.5, 3.}}}]}, + {FaceForm[{RGBColor[0.59216, 0.81176, 0.92941], Opacity[1.]}], + FilledCurveBox[{{{0, 2, 0}, {0, 1, 0}, {0, 1, 0}, {1, 3, 3}, {1, 3, + 3}}}, {{{0.5, 5.}, {2., 5.}, {2., 6.}, {0.5, 6.}, {0.224, 6.}, {0., + 5.776}, {0., 5.5}, {0., 5.224}, {0.224, 5.}, {0.5, 5.}}}]}, + {FaceForm[{RGBColor[0.59216, 0.81176, 0.92941], Opacity[1.]}], + FilledCurveBox[{{{0, 2, 0}, {0, 1, 0}, {1, 3, 3}, {1, 3, 3}, {0, 1, 0}, { + 1, 3, 3}}}, {{{2., 1.5}, {2., 2.}, {0.5, 2.}, {0.224, 2.}, {0., 1.776}, { + 0., 1.5}, {0., 1.224}, {0.224, 1.}, {0.5, 1.}, {2.5, 1.}, {2.224, 1.}, { + 2., 1.224}, {2., 1.5}}}]}, + {FaceForm[{RGBColor[1., 1., 1.], Opacity[1.]}], + FilledCurveBox[{{{1, 4, 3}, {0, 1, 0}, {1, 3, 3}, {0, 1, 0}, {1, 3, 3}, { + 0, 1, 0}, {1, 3, 3}, {0, 1, 0}}}, {{{2.5, 10.}, {2.224, 10.}, {2., + 9.776}, {2., 9.5}, {2., 1.5}, {2., 1.224}, {2.224, 1.}, {2.5, 1.}, {9.5, + 1.}, {9.776, 1.}, {10., 1.224}, {10., 1.5}, {10., 9.5}, {10., 9.776}, { + 9.776, 10.}, {9.5, 10.}, {2.5, 10.}}}]}, + {FaceForm[{RGBColor[0.2, 0.51373, 0.67451], Opacity[1.]}], + FilledCurveBox[{{{0, 2, 0}, {0, 1, 0}, {0, 1, 0}, {0, 1, 0}}, {{0, 2, + 0}, {0, 1, 0}, {0, 1, 0}, {0, 1, 0}}, {{0, 2, 0}, {0, 1, 0}, {0, 1, + 0}, {0, 1, 0}}, {{0, 2, 0}, {0, 1, 0}, {0, 1, 0}, {0, 1, 0}}, {{0, 2, + 0}, {0, 1, 0}, {0, 1, 0}, {0, 1, 0}}, {{0, 2, 0}, {0, 1, 0}, {0, 1, + 0}, {0, 1, 0}}, {{0, 2, 0}, {0, 1, 0}, {0, 1, 0}, {0, 1, 0}}, {{0, 2, + 0}, {0, 1, 0}, {0, 1, 0}, {0, 1, 0}}, {{0, 2, 0}, {0, 1, 0}, {0, 1, + 0}, {0, 1, 0}}, {{0, 2, 0}, {0, 1, 0}, {0, 1, 0}, {0, 1, 0}}, {{0, 2, + 0}, {0, 1, 0}, {0, 1, 0}, {0, 1, 0}}, {{0, 2, 0}, {0, 1, 0}, {0, 1, + 0}, {0, 1, 0}}, {{0, 2, 0}, {0, 1, 0}, {0, 1, 0}, {0, 1, 0}}, {{0, 2, + 0}, {0, 1, 0}, {0, 1, 0}, {0, 1, 0}}, {{0, 2, 0}, {0, 1, 0}, {0, 1, + 0}, {0, 1, 0}}, {{0, 2, 0}, {0, 1, 0}, {0, 1, 0}, {0, 1, 0}}, {{0, 2, + 0}, {0, 1, 0}, {0, 1, 0}, {0, 1, 0}}, {{0, 2, 0}, {0, 1, 0}, {0, 1, + 0}, {0, 1, 0}}, {{0, 2, 0}, {0, 1, 0}, {0, 1, 0}, {0, 1, 0}}, {{0, 2, + 0}, {0, 1, 0}, {0, 1, 0}, {0, 1, 0}}, {{0, 2, 0}, {0, 1, 0}, {0, 1, + 0}, {0, 1, 0}, {0, 1, 0}, {0, 1, 0}, {0, 1, 0}, {0, 1, 0}, {0, 1, 0}, { + 0, 1, 0}, {0, 1, 0}, {0, 1, 0}, {0, 1, 0}, {0, 1, 0}, {0, 1, 0}, {0, 1, + 0}, {0, 1, 0}, {0, 1, 0}, {0, 1, 0}, {0, 1, 0}}}, {{{7.596, 4.4723}, { + 7.055, 4.6433}, {7.702, 4.8343}, {8.307, 4.6273}, {7.596, 4.4723}}, {{ + 6.733, 3.7103}, {6.752, 4.4803}, {7.475, 4.2513}, {7.566, 3.3443}, { + 6.733, 3.7103}}, {{4.525, 4.2513}, {5.248, 4.4803}, {5.267, 3.7103}, { + 4.434, 3.3453}, {4.525, 4.2513}}, {{3.693, 4.6273}, {4.298, 4.8343}, { + 4.945, 4.6433}, {4.404, 4.4723}, {3.693, 4.6273}}, {{4.106, 5.3953}, { + 4.617, 5.5843}, {4.22, 5.0693}, {3.639, 4.8703}, {4.106, 5.3953}}, {{ + 3.467, 6.3233}, {4.356, 6.5173}, {4.784, 5.9103}, {4.071, 5.6453}, { + 3.467, 6.3233}}, {{6., 8.1643}, {6.458, 7.3793}, {6., 6.7933}, {5.542, + 7.3793}, {6., 8.1643}}, {{8.534, 6.3233}, {7.929, 5.6453}, {7.216, + 5.9103}, {7.644, 6.5173}, {8.534, 6.3233}}, {{6.2, 5.4423}, {6.978, + 5.7043}, {7.496, 5.0313}, {6.68, 4.7913}, {6.2, 5.4423}}, {{5.5, + 4.2343}, {5.874, 3.6873}, {5.874, 3.0473}, {5.513, 3.6653}, {5.5, + 4.2343}}, {{5.8, 5.4423}, {5.32, 4.7913}, {4.504, 5.0313}, {5.022, + 5.7043}, {5.8, 5.4423}}, {{4.53, 6.7003}, {4.458, 7.4193}, {4.824, + 6.9253}, {4.842, 6.2563}, {4.53, 6.7003}}, {{6.126, 6.5053}, {6.926, + 6.7903}, {6.903, 5.9393}, {6.126, 5.6773}, {6.126, 6.5053}}, {{5.097, + 5.9393}, {5.073, 6.7903}, {5.874, 6.5053}, {5.874, 5.6773}, {5.097, + 5.9393}}, {{6., 3.9443}, {5.52, 4.6453}, {6., 5.2973}, {6.48, 4.6453}, { + 6., 3.9443}}, {{7.47, 6.7003}, {7.158, 6.2563}, {7.176, 6.9253}, {7.542, + 7.4193}, {7.47, 6.7003}}, {{6.686, 7.2683}, {7.333, 7.5533}, {6.976, + 7.0713}, {6.36, 6.8523}, {6.686, 7.2683}}, {{5.64, 6.8523}, {5.024, + 7.0713}, {4.667, 7.5533}, {5.315, 7.2683}, {5.64, 6.8523}}, {{6.486, + 3.6653}, {6.126, 3.0483}, {6.126, 3.6873}, {6.5, 4.2343}, {6.486, + 3.6653}}, {{8.361, 4.8703}, {7.78, 5.0693}, {7.383, 5.5843}, {7.894, + 5.3943}, {8.361, 4.8703}}, CompressedData[" +1:eJxTTMoPSmViYGAQBWIQHdA7PU/IWcHBatLpeo//og4MYKDksPCH4bN1TyUd +fMw7HROeyjl0ySe/i2KSdriodPtnXZa8w8WJMf+cpRQcQLIXFkk5qOz80/5F +Wg6qX8JhTfftDAZ/RYeJb2vsTeNE4fL6d1XYGqcKOMRrnhY4DtS/5UTZvvlS +gg5L/RyEE5mlofo5HHar83NvfSbpcPDUQtdtn/kcQg+uWOLHIAaXfxflZPdC +Ugiun9VE0MzmrwDc/JvxZf5y09gdyoGy+rGiDjyTVzYFnuSGuy+nomqpzmEm +h3yh5gOnFkrB5WH+g+mH+R9mPix8YPajhx8ATEJ2sA== + "]}]}}, + AspectRatio->Automatic, + BaselinePosition->(Center -> Center), + ImageSize->{12., 12.}, + PlotRange->{{-0.5, 11.5}, {-0.5, 11.5}}], + +"WorkspaceFocusIndicatorNotebook" -> GraphicsBox[ + {Thickness[0.090909], + {FaceForm[{RGBColor[0.65098, 0.65098, 0.65098], Opacity[1.]}], + FilledCurveBox[{{{1, 4, 3}, {0, 1, 0}, {1, 3, 3}, {0, 1, 0}, {1, 3, 3}, { + 0, 1, 0}, {1, 3, 3}, {0, 1, 0}}}, {{{1., 10.}, {1., 10.552}, {1.448, + 11.}, {2., 11.}, {10., 11.}, {10.552, 11.}, {11., 10.552}, {11., 10.}, { + 11., 1.}, {11., 0.448}, {10.552, 0.}, {10., 0.}, {2., 0.}, {1.448, 0.}, { + 1., 0.448}, {1., 1.}, {1., 10.}}}]}, + {FaceForm[{RGBColor[0.53725, 0.53725, 0.53725], Opacity[1.]}], + FilledCurveBox[{{{0, 2, 0}, {0, 1, 0}, {1, 3, 3}, {0, 1, 0}, {1, 3, 3}, { + 1, 3, 3}}}, {{{0.5, 9.}, {2., 9.}, {2., 9.5}, {2., 9.776}, {2.224, + 10.}, {2.5, 10.}, {0.5, 10.}, {0.224, 10.}, {0., 9.776}, {0., 9.5}, {0., + 9.224}, {0.224, 9.}, {0.5, 9.}}}]}, + {FaceForm[{RGBColor[0.53725, 0.53725, 0.53725], Opacity[1.]}], + FilledCurveBox[{{{0, 2, 0}, {0, 1, 0}, {0, 1, 0}, {1, 3, 3}, {1, 3, + 3}}}, {{{0.5, 7.}, {2., 7.}, {2., 8.}, {0.5, 8.}, {0.224, 8.}, {0., + 7.776}, {0., 7.5}, {0., 7.224}, {0.224, 7.}, {0.5, 7.}}}]}, + {FaceForm[{RGBColor[0.53725, 0.53725, 0.53725], Opacity[1.]}], + FilledCurveBox[{{{0, 2, 0}, {0, 1, 0}, {0, 1, 0}, {1, 3, 3}, {1, 3, + 3}}}, {{{0.5, 3.}, {2., 3.}, {2., 4.}, {0.5, 4.}, {0.224, 4.}, {0., + 3.776}, {0., 3.5}, {0., 3.224}, {0.224, 3.}, {0.5, 3.}}}]}, + {FaceForm[{RGBColor[0.53725, 0.53725, 0.53725], Opacity[1.]}], + FilledCurveBox[{{{0, 2, 0}, {0, 1, 0}, {0, 1, 0}, {1, 3, 3}, {1, 3, + 3}}}, {{{0.5, 5.}, {2., 5.}, {2., 6.}, {0.5, 6.}, {0.224, 6.}, {0., + 5.776}, {0., 5.5}, {0., 5.224}, {0.224, 5.}, {0.5, 5.}}}]}, + {FaceForm[{RGBColor[0.53725, 0.53725, 0.53725], Opacity[1.]}], + FilledCurveBox[{{{0, 2, 0}, {0, 1, 0}, {1, 3, 3}, {1, 3, 3}, {0, 1, 0}, { + 1, 3, 3}}}, {{{2., 1.5}, {2., 2.}, {0.5, 2.}, {0.224, 2.}, {0., 1.776}, { + 0., 1.5}, {0., 1.224}, {0.224, 1.}, {0.5, 1.}, {2.5, 1.}, {2.224, 1.}, { + 2., 1.224}, {2., 1.5}}}]}, + {FaceForm[{RGBColor[1., 1., 1.], Opacity[1.]}], + FilledCurveBox[{{{1, 4, 3}, {0, 1, 0}, {1, 3, 3}, {0, 1, 0}, {1, 3, 3}, { + 0, 1, 0}, {1, 3, 3}, {0, 1, 0}}}, {{{2.5, 10.}, {2.224, 10.}, {2., + 9.776}, {2., 9.5}, {2., 1.5}, {2., 1.224}, {2.224, 1.}, {2.5, 1.}, {9.5, + 1.}, {9.776, 1.}, {10., 1.224}, {10., 1.5}, {10., 9.5}, {10., 9.776}, { + 9.776, 10.}, {9.5, 10.}, {2.5, 10.}}}]}, + {FaceForm[{RGBColor[0.53725, 0.53725, 0.53725], Opacity[1.]}], + FilledCurveBox[{{{0, 2, 0}, {0, 1, 0}, {0, 1, 0}, {0, 1, 0}}, {{0, 2, + 0}, {0, 1, 0}, {0, 1, 0}, {0, 1, 0}}, {{0, 2, 0}, {0, 1, 0}, {0, 1, + 0}, {0, 1, 0}}, {{0, 2, 0}, {0, 1, 0}, {0, 1, 0}, {0, 1, 0}}, {{0, 2, + 0}, {0, 1, 0}, {0, 1, 0}, {0, 1, 0}}, {{0, 2, 0}, {0, 1, 0}, {0, 1, + 0}, {0, 1, 0}}, {{0, 2, 0}, {0, 1, 0}, {0, 1, 0}, {0, 1, 0}}, {{0, 2, + 0}, {0, 1, 0}, {0, 1, 0}, {0, 1, 0}}, {{0, 2, 0}, {0, 1, 0}, {0, 1, + 0}, {0, 1, 0}}, {{0, 2, 0}, {0, 1, 0}, {0, 1, 0}, {0, 1, 0}}, {{0, 2, + 0}, {0, 1, 0}, {0, 1, 0}, {0, 1, 0}}, {{0, 2, 0}, {0, 1, 0}, {0, 1, + 0}, {0, 1, 0}}, {{0, 2, 0}, {0, 1, 0}, {0, 1, 0}, {0, 1, 0}}, {{0, 2, + 0}, {0, 1, 0}, {0, 1, 0}, {0, 1, 0}}, {{0, 2, 0}, {0, 1, 0}, {0, 1, + 0}, {0, 1, 0}}, {{0, 2, 0}, {0, 1, 0}, {0, 1, 0}, {0, 1, 0}}, {{0, 2, + 0}, {0, 1, 0}, {0, 1, 0}, {0, 1, 0}}, {{0, 2, 0}, {0, 1, 0}, {0, 1, + 0}, {0, 1, 0}}, {{0, 2, 0}, {0, 1, 0}, {0, 1, 0}, {0, 1, 0}}, {{0, 2, + 0}, {0, 1, 0}, {0, 1, 0}, {0, 1, 0}}, {{0, 2, 0}, {0, 1, 0}, {0, 1, + 0}, {0, 1, 0}, {0, 1, 0}, {0, 1, 0}, {0, 1, 0}, {0, 1, 0}, {0, 1, 0}, { + 0, 1, 0}, {0, 1, 0}, {0, 1, 0}, {0, 1, 0}, {0, 1, 0}, {0, 1, 0}, {0, 1, + 0}, {0, 1, 0}, {0, 1, 0}, {0, 1, 0}, {0, 1, 0}}}, {{{7.596, 4.4723}, { + 7.055, 4.6433}, {7.702, 4.8343}, {8.307, 4.6273}, {7.596, 4.4723}}, {{ + 6.733, 3.7103}, {6.752, 4.4803}, {7.475, 4.2513}, {7.566, 3.3443}, { + 6.733, 3.7103}}, {{4.525, 4.2513}, {5.248, 4.4803}, {5.267, 3.7103}, { + 4.434, 3.3453}, {4.525, 4.2513}}, {{3.693, 4.6273}, {4.298, 4.8343}, { + 4.945, 4.6433}, {4.404, 4.4723}, {3.693, 4.6273}}, {{4.106, 5.3953}, { + 4.617, 5.5843}, {4.22, 5.0693}, {3.639, 4.8703}, {4.106, 5.3953}}, {{ + 3.467, 6.3233}, {4.356, 6.5173}, {4.784, 5.9103}, {4.071, 5.6453}, { + 3.467, 6.3233}}, {{6., 8.1643}, {6.458, 7.3793}, {6., 6.7933}, {5.542, + 7.3793}, {6., 8.1643}}, {{8.534, 6.3233}, {7.929, 5.6453}, {7.216, + 5.9103}, {7.644, 6.5173}, {8.534, 6.3233}}, {{6.2, 5.4423}, {6.978, + 5.7043}, {7.496, 5.0313}, {6.68, 4.7913}, {6.2, 5.4423}}, {{5.5, + 4.2343}, {5.874, 3.6873}, {5.874, 3.0473}, {5.513, 3.6653}, {5.5, + 4.2343}}, {{5.8, 5.4423}, {5.32, 4.7913}, {4.504, 5.0313}, {5.022, + 5.7043}, {5.8, 5.4423}}, {{4.53, 6.7003}, {4.458, 7.4193}, {4.824, + 6.9253}, {4.842, 6.2563}, {4.53, 6.7003}}, {{6.126, 6.5053}, {6.926, + 6.7903}, {6.903, 5.9393}, {6.126, 5.6773}, {6.126, 6.5053}}, {{5.097, + 5.9393}, {5.073, 6.7903}, {5.874, 6.5053}, {5.874, 5.6773}, {5.097, + 5.9393}}, {{6., 3.9443}, {5.52, 4.6453}, {6., 5.2973}, {6.48, 4.6453}, { + 6., 3.9443}}, {{7.47, 6.7003}, {7.158, 6.2563}, {7.176, 6.9253}, {7.542, + 7.4193}, {7.47, 6.7003}}, {{6.686, 7.2683}, {7.333, 7.5533}, {6.976, + 7.0713}, {6.36, 6.8523}, {6.686, 7.2683}}, {{5.64, 6.8523}, {5.024, + 7.0713}, {4.667, 7.5533}, {5.315, 7.2683}, {5.64, 6.8523}}, {{6.486, + 3.6653}, {6.126, 3.0483}, {6.126, 3.6873}, {6.5, 4.2343}, {6.486, + 3.6653}}, {{8.361, 4.8703}, {7.78, 5.0693}, {7.383, 5.5843}, {7.894, + 5.3943}, {8.361, 4.8703}}, CompressedData[" +1:eJxTTMoPSmViYGAQBWIQHdA7PU/IWcHBatLpeo//og4MYKDksPCH4bN1TyUd +fMw7HROeyjl0ySe/i2KSdriodPtnXZa8w8WJMf+cpRQcQLIXFkk5qOz80/5F +Wg6qX8JhTfftDAZ/RYeJb2vsTeNE4fL6d1XYGqcKOMRrnhY4DtS/5UTZvvlS +gg5L/RyEE5mlofo5HHar83NvfSbpcPDUQtdtn/kcQg+uWOLHIAaXfxflZPdC +Ugiun9VE0MzmrwDc/JvxZf5y09gdyoGy+rGiDjyTVzYFnuSGuy+nomqpzmEm +h3yh5gOnFkrB5WH+g+mH+R9mPix8YPajhx8ATEJ2sA== + "]}]}}, + AspectRatio->Automatic, + BaselinePosition->(Center -> Center), + ImageSize->{12., 12.}, + PlotRange->{{-0.5, 11.5}, {-0.5, 11.5}}], + +"WorkspaceFocusIndicatorUncheck" -> PaneSelectorBox[{False-> + GraphicsBox[ + {Thickness[0.1], + {FaceForm[{RGBColor[1., 1., 1.], Opacity[1.]}], + FilledCurveBox[{{{1, 4, 3}, {0, 1, 0}, {1, 3, 3}, {0, 1, 0}, {1, 3, 3}, { + 0, 1, 0}, {1, 3, 3}, {0, 1, 0}}}, {{{2.4043, 0.5}, {1.3543, 0.5}, { + 0.5003, 1.354}, {0.5003, 2.404}, {0.5003, 7.596}, {0.5003, 8.646}, { + 1.3543, 9.5}, {2.4043, 9.5}, {7.5953, 9.5}, {8.6453, 9.5}, {9.5003, + 8.646}, {9.5003, 7.596}, {9.5003, 2.404}, {9.5003, 1.354}, {8.6453, + 0.5}, {7.5953, 0.5}, {2.4043, 0.5}}}]}, + {FaceForm[{RGBColor[0.53725, 0.53725, 0.53725], Opacity[1.]}], + FilledCurveBox[{{{0, 2, 0}, {1, 3, 3}, {0, 1, 0}, {1, 3, 3}, {0, 1, 0}, { + 1, 3, 3}, {0, 1, 0}, {1, 3, 3}}, {{1, 4, 3}, {0, 1, 0}, {1, 3, 3}, {0, + 1, 0}, {1, 3, 3}, {0, 1, 0}, {1, 3, 3}, {0, 1, 0}}}, CompressedData[" +1:eJxTTMoPSmVmYGBgAmJBKP1gH98c4yQ5BwYwUHG4cDXsjb41M5yv6yzz+pHZ +R3sYP8tivqSHg9R+HibtdrGbinD+n5UfL/kCzYHxOdbIRKUAzYHx571ffszb +/KM9qnkMDKj2obuHgaGuZ2c2J9AeGL+oq+/Jp//KDjDzYHyYfTA+zD0wPsy9 +qOapOKD7H5Wv5LB+SmpH8l4FOB9inqKDLdf1xQVAcRgf1T5FNPcoOoisc39Y +JfLLHtW8D/ao9n2wRw2PD/aLGfewCgH1wfhyy1946P1/bw8zD8aH2Qfjw9wD +48Pci2qeElp8K2H4HwCLaL8E + "]]}}, + AspectRatio->Automatic, + BaselinePosition->(Center -> Center), + ImageSize->{11., 11.}, + PlotRange->{{-0.5, 10.5}, {-0.5, 10.5}}], True-> + GraphicsBox[ + {Thickness[0.1], + {FaceForm[{RGBColor[0.97647, 0.97647, 0.97647], Opacity[1.]}], + FilledCurveBox[{{{1, 4, 3}, {0, 1, 0}, {1, 3, 3}, {0, 1, 0}, {1, 3, 3}, { + 0, 1, 0}, {1, 3, 3}, {0, 1, 0}}}, {{{2.4043, 0.5}, {1.3543, 0.5}, { + 0.5003, 1.354}, {0.5003, 2.404}, {0.5003, 7.596}, {0.5003, 8.646}, { + 1.3543, 9.5}, {2.4043, 9.5}, {7.5953, 9.5}, {8.6453, 9.5}, {9.5003, + 8.646}, {9.5003, 7.596}, {9.5003, 2.404}, {9.5003, 1.354}, {8.6453, + 0.5}, {7.5953, 0.5}, {2.4043, 0.5}}}]}, + {FaceForm[{RGBColor[0.74902, 0.74902, 0.74902], Opacity[1.]}], + FilledCurveBox[{{{0, 2, 0}, {1, 3, 3}, {0, 1, 0}, {1, 3, 3}, {0, 1, 0}, { + 1, 3, 3}, {0, 1, 0}, {1, 3, 3}}, {{1, 4, 3}, {0, 1, 0}, {1, 3, 3}, {0, + 1, 0}, {1, 3, 3}, {0, 1, 0}, {1, 3, 3}, {0, 1, 0}}}, CompressedData[" +1:eJxTTMoPSmVmYGBgAmJBKP1gH98c4yQ5BwYwUHG4cDXsjb41M5yv6yzz+pHZ +R3sYP8tivqSHg9R+HibtdrGbinD+n5UfL/kCzYHxOdbIRKUAzYHx571ffszb +/KM9qnkMDKj2obuHgaGuZ2c2J9AeGL+oq+/Jp//KDjDzYHyYfTA+zD0wPsy9 +qOapOKD7H5Wv5LB+SmpH8l4FOB9inqKDLdf1xQVAcRgf1T5FNPcoOoisc39Y +JfLLHtW8D/ao9n2wRw2PD/aLGfewCgH1wfhyy1946P1/bw8zD8aH2Qfjw9wD +48Pci2qeElp8K2H4HwCLaL8E + "]]}}, + AspectRatio->Automatic, + BaselinePosition->(Center -> Center), + ImageSize->{11., 11.}, + PlotRange->{{-0.5, 10.5}, {-0.5, 10.5}}]}, Dynamic[ + CurrentValue["MouseOver"]], + BaselinePosition->Baseline, + FrameMargins->0, + ImageSize->Automatic] } @| @| diff --git a/FrontEnd/TextResources/ChatbookStrings.tr b/FrontEnd/TextResources/ChatbookStrings.tr index 854b6c3b..c7d3bcb4 100644 --- a/FrontEnd/TextResources/ChatbookStrings.tr +++ b/FrontEnd/TextResources/ChatbookStrings.tr @@ -223,6 +223,12 @@ "WorkspaceOutputRaftShareAsImage" -> "Image", "WorkspaceOutputRaftFeedbackTooltip" -> "Send feedback to Wolfram", +"WorkspaceFocusIndicatorEnableTooltip" -> "Enable using context from other notebooks", +"WorkspaceFocusIndicatorDisableTooltip" -> "Disable using context from other notebooks", +"WorkspaceFocusIndicatorFocus" -> "Focus:", +"WorkspaceFocusIndicatorMenuTooltip" -> "Choose a notebook to focus on for additional context", +"WorkspaceFocusIndicatorMenuAutomatic" -> "Choose Automatically", + "InlineChatButtonTooltipClose" -> "Close", "InlineChatButtonTooltipViewNotebookAssist" -> "View in Notebook Assistance Chat", diff --git a/FrontEnd/TextResources/ChineseSimplified/ChatbookStrings.tr b/FrontEnd/TextResources/ChineseSimplified/ChatbookStrings.tr index dbeb8e48..bbb634ea 100644 --- a/FrontEnd/TextResources/ChineseSimplified/ChatbookStrings.tr +++ b/FrontEnd/TextResources/ChineseSimplified/ChatbookStrings.tr @@ -214,6 +214,12 @@ "WorkspaceOutputRaftRegenerateTooltip" -> "\:91CD\:65B0\:751F\:6210\:54CD\:5E94", "WorkspaceOutputRaftFeedbackTooltip" -> "\:53CD\:9988\:5230 Wolfram", +"WorkspaceFocusIndicatorEnableTooltip" -> "Enable using context from other notebooks", +"WorkspaceFocusIndicatorDisableTooltip" -> "Disable using context from other notebooks", +"WorkspaceFocusIndicatorFocus" -> "Focus:", +"WorkspaceFocusIndicatorMenuTooltip" -> "Choose a notebook to focus on for additional context", +"WorkspaceFocusIndicatorMenuAutomatic" -> "Choose Automatically", + "InlineChatButtonTooltipClose" -> "\:5173\:95ED", "InlineChatButtonTooltipViewNotebookAssist" -> "\:5728\:7B14\:8BB0\:672C\:534F\:52A9\:804A\:5929\:4E2D\:67E5\:770B", diff --git a/FrontEnd/TextResources/ChineseTraditional/ChatbookStrings.tr b/FrontEnd/TextResources/ChineseTraditional/ChatbookStrings.tr index 14c21783..623ccc45 100644 --- a/FrontEnd/TextResources/ChineseTraditional/ChatbookStrings.tr +++ b/FrontEnd/TextResources/ChineseTraditional/ChatbookStrings.tr @@ -223,6 +223,12 @@ "WorkspaceOutputRaftShareAsImage" -> "\:5F71\:50CF", "WorkspaceOutputRaftFeedbackTooltip" -> "\:767C\:9001\:56DE\:994B\:81F3 Wolfram", +"WorkspaceFocusIndicatorEnableTooltip" -> "Enable using context from other notebooks", +"WorkspaceFocusIndicatorDisableTooltip" -> "Disable using context from other notebooks", +"WorkspaceFocusIndicatorFocus" -> "Focus:", +"WorkspaceFocusIndicatorMenuTooltip" -> "Choose a notebook to focus on for additional context", +"WorkspaceFocusIndicatorMenuAutomatic" -> "Choose Automatically", + "InlineChatButtonTooltipClose" -> "\:95DC\:9589", "InlineChatButtonTooltipViewNotebookAssist" -> "\:7DE8\:78BC\:5C0F\:5E6B\:624B\:804A\:5929\:7CFB\:7D71\:4E2D\:7684\:8996\:5716", diff --git a/FrontEnd/TextResources/French/ChatbookStrings.tr b/FrontEnd/TextResources/French/ChatbookStrings.tr index 35a32436..20a2cace 100644 --- a/FrontEnd/TextResources/French/ChatbookStrings.tr +++ b/FrontEnd/TextResources/French/ChatbookStrings.tr @@ -223,6 +223,12 @@ "WorkspaceOutputRaftShareAsImage" -> "Image", "WorkspaceOutputRaftFeedbackTooltip" -> "Envoyer un commentaire \[AGrave] Wolfram", +"WorkspaceFocusIndicatorEnableTooltip" -> "Enable using context from other notebooks", +"WorkspaceFocusIndicatorDisableTooltip" -> "Disable using context from other notebooks", +"WorkspaceFocusIndicatorFocus" -> "Focus:", +"WorkspaceFocusIndicatorMenuTooltip" -> "Choose a notebook to focus on for additional context", +"WorkspaceFocusIndicatorMenuAutomatic" -> "Choose Automatically", + "InlineChatButtonTooltipClose" -> "Fermer", "InlineChatButtonTooltipViewNotebookAssist" -> "Voir dans le chat de l\[CloseCurlyQuote]assistant du notebook", diff --git a/FrontEnd/TextResources/Japanese/ChatbookStrings.tr b/FrontEnd/TextResources/Japanese/ChatbookStrings.tr index 32cc52e2..ef2ba3b4 100644 --- a/FrontEnd/TextResources/Japanese/ChatbookStrings.tr +++ b/FrontEnd/TextResources/Japanese/ChatbookStrings.tr @@ -223,6 +223,12 @@ "WorkspaceOutputRaftShareAsImage" -> "Image", "WorkspaceOutputRaftFeedbackTooltip" -> "\:30d5\:30a3\:30fc\:30c9\:30d0\:30c3\:30af\:3092Wolfram\:306b\:9001\:4fe1\:3059\:308b", +"WorkspaceFocusIndicatorEnableTooltip" -> "Enable using context from other notebooks", +"WorkspaceFocusIndicatorDisableTooltip" -> "Disable using context from other notebooks", +"WorkspaceFocusIndicatorFocus" -> "Focus:", +"WorkspaceFocusIndicatorMenuTooltip" -> "Choose a notebook to focus on for additional context", +"WorkspaceFocusIndicatorMenuAutomatic" -> "Choose Automatically", + "InlineChatButtonTooltipClose" -> "\:9589\:3058\:308b", "InlineChatButtonTooltipViewNotebookAssist" -> "\:30ce\:30fc\:30c8\:30d6\:30c3\:30af\:30a2\:30b7\:30b9\:30bf\:30f3\:30b9\:30c1\:30e3\:30c3\:30c8\:3067\:898b\:308b", diff --git a/FrontEnd/TextResources/Korean/ChatbookStrings.tr b/FrontEnd/TextResources/Korean/ChatbookStrings.tr index d728a428..3f6b7532 100644 --- a/FrontEnd/TextResources/Korean/ChatbookStrings.tr +++ b/FrontEnd/TextResources/Korean/ChatbookStrings.tr @@ -224,6 +224,12 @@ "WorkspaceOutputRaftShareAsImage" -> "Image", "WorkspaceOutputRaftFeedbackTooltip" -> "Wolfram\:C5D0 \:D53C\:B4DC\:BC31 \:BCF4\:B0B4\:AE30", +"WorkspaceFocusIndicatorEnableTooltip" -> "Enable using context from other notebooks", +"WorkspaceFocusIndicatorDisableTooltip" -> "Disable using context from other notebooks", +"WorkspaceFocusIndicatorFocus" -> "Focus:", +"WorkspaceFocusIndicatorMenuTooltip" -> "Choose a notebook to focus on for additional context", +"WorkspaceFocusIndicatorMenuAutomatic" -> "Choose Automatically", + "InlineChatButtonTooltipClose" -> "\:B2EB\:AE30", "InlineChatButtonTooltipViewNotebookAssist" -> "\:B178\:D2B8\:BD81 \:C5B4\:C2DC\:C2A4\:D134\:C2A4 \:CC44\:D305\:C5D0\:C11C \:BCF4\:AE30", diff --git a/FrontEnd/TextResources/Spanish/ChatbookStrings.tr b/FrontEnd/TextResources/Spanish/ChatbookStrings.tr index d2adfa3d..59e97386 100644 --- a/FrontEnd/TextResources/Spanish/ChatbookStrings.tr +++ b/FrontEnd/TextResources/Spanish/ChatbookStrings.tr @@ -223,6 +223,12 @@ "WorkspaceOutputRaftShareAsImage" -> "Image", "WorkspaceOutputRaftFeedbackTooltip" -> "Enviar comentarios a Wolfram", +"WorkspaceFocusIndicatorEnableTooltip" -> "Enable using context from other notebooks", +"WorkspaceFocusIndicatorDisableTooltip" -> "Disable using context from other notebooks", +"WorkspaceFocusIndicatorFocus" -> "Focus:", +"WorkspaceFocusIndicatorMenuTooltip" -> "Choose a notebook to focus on for additional context", +"WorkspaceFocusIndicatorMenuAutomatic" -> "Choose Automatically", + "InlineChatButtonTooltipClose" -> "Cerrar", "InlineChatButtonTooltipViewNotebookAssist" -> "Ver en chat de asistencia de cuadernos", diff --git a/Source/Chatbook/ChatModes/Context.wl b/Source/Chatbook/ChatModes/Context.wl index 70118760..41bad7c5 100644 --- a/Source/Chatbook/ChatModes/Context.wl +++ b/Source/Chatbook/ChatModes/Context.wl @@ -18,11 +18,16 @@ $notebookContextLimitScale = 0.25; $downScaledSettings = { "MaxCellStringLength", "MaxContextTokens", "MaxOutputCellStringLength" }; $notebookContextTemplate = StringTemplate[ "\ -IMPORTANT: Below is some context from the user's currently selected notebook. \ +IMPORTANT: Below is some metadata and content from the user's currently selected notebook. \ The location of the user's current selection is marked by %%SelectionIndicator%%. \ Use this to determine where the user is in the notebook. -%%NotebookContent%%", Delimiters -> "%%" ]; + +%%NotebookMetadata%% + +%%NotebookContent%% + +", Delimiters -> "%%" ]; $$exclusionReason = None | { __String }; $$exclusionReasons = { $$exclusionReason... }; @@ -138,7 +143,7 @@ exclusionReason // endDefinition; $exclusionTests = <| "Excluded" -> Function[ #[ "ChatNotebookSettings", "ExcludeFromChat" ] === True ], "Invisible" -> Function[ #[ "Visible" ] === False ], - "Palette" -> Function[ #[ "WindowFrame" ] === "Palette" ], + "WindowFrame" -> Function[ MatchQ[ #[ "WindowFrame" ], Except[ "Normal" ] ] ], "WorkspaceChat" -> Function[ #[ "ChatNotebookSettings", "WorkspaceChat" ] ] |>; @@ -152,7 +157,7 @@ $exclusionTests = <| getInlineChatPrompt // beginDefinition; getInlineChatPrompt[ settings_ ] := - If[ TrueQ @ $InlineChat, + If[ TrueQ @ $InlineChat && TrueQ @ settings[ "AllowSelectionContext" ], getInlineChatPrompt0[ settings, $inlineChatState ] // LogChatTiming[ "GetInlineChatPrompt" ], None ]; @@ -198,7 +203,7 @@ getInlineChatPrompt0 // endDefinition; getWorkspacePrompt // beginDefinition; getWorkspacePrompt[ settings_Association ] := - If[ TrueQ @ $WorkspaceChat, + If[ TrueQ @ $WorkspaceChat && TrueQ @ settings[ "AllowSelectionContext" ], Block[ { $includeCellXML = TrueQ @ $notebookEditorEnabled }, getContextFromSelection[ $evaluationNotebook, settings ] ] // LogChatTiming[ "GetWorkspacePrompt" ], @@ -218,7 +223,11 @@ getContextFromSelection // Options = { }; getContextFromSelection[ chatNB_NotebookObject, settings_Association, opts: OptionsPattern[ ] ] := - getContextFromSelection[ chatNB, getUserNotebook[ ], settings, opts ]; + Module[ { focused, userNotebook }, + focused = settings[ "FocusedNotebook" ]; + userNotebook = If[ notebookObjectQ @ focused, focused, getUserNotebook[ ] ]; + getContextFromSelection[ chatNB, userNotebook, settings, opts ] + ]; getContextFromSelection[ chatNB_NotebookObject, None, settings_Association, opts: OptionsPattern[ ] ] := None; @@ -228,7 +237,8 @@ getContextFromSelection[ chatNB_, nbo_NotebookObject, settings0_Association, opt { $notebookInstructionsPrompt = OptionValue[ "NotebookInstructionsPrompt" ], $maxCellsBeforeSelection = OptionValue[ "MaxCellsBeforeSelection" ], - $maxCellsAfterSelection = OptionValue[ "MaxCellsAfterSelection" ] + $maxCellsAfterSelection = OptionValue[ "MaxCellsAfterSelection" ], + $notebookMetadataString = getNotebookMetadataString @ nbo }, Module[ { settings, selectionData, string }, settings = ConfirmBy[ downScaledSettings @ settings0, AssociationQ, "Settings" ]; @@ -294,6 +304,55 @@ getContextFromSelection0[ selectionData_Association, settings_ ] := Enclose[ getContextFromSelection0 // endDefinition; +(* ::**************************************************************************************************************:: *) +(* ::Subsubsection::Closed:: *) +(*getNotebookMetadataString*) +getNotebookMetadataString // beginDefinition; + +getNotebookMetadataString[ nbo_NotebookObject ] := Enclose[ + ConfirmBy[ getNotebookMetadataString0 @ notebookInformation @ nbo, StringQ, "Metadata" ], + throwInternalFailure +]; + +getNotebookMetadataString // endDefinition; + + +getNotebookMetadataString0 // beginDefinition; + +getNotebookMetadataString0[ info_Association ] := Enclose[ + Module[ { modified, date, dateString, modificationInfo, nbo, nboString }, + + modified = TrueQ @ info[ "ModifiedInMemory" ]; + date = info[ "MemoryModificationTime" ]; + + dateString = If[ modified && DateObjectQ @ date, + ConfirmBy[ DateString @ date <> " (" <> relativeTimeString @ date <> ")", StringQ, "Date" ], + Missing[ ] + ]; + + modificationInfo = DeleteMissing @ <| "ModifiedInMemory" -> modified, "MemoryModificationTime" -> dateString |>; + + nbo = ConfirmMatch[ info[ "NotebookObject" ], _NotebookObject, "NotebookObject" ]; + + nboString = ToString[ nbo, InputForm ] <> " (Use this to reference the user's notebook in the evaluator tool)"; + + StringRiffle[ + KeyValueMap[ + ToString[ #1 ] <> ": " <> ToString[ #2 ] &, + Association[ + "NotebookObject" -> nboString, + KeyTake[ info, { "WindowTitle", "FileName" } ], + modificationInfo + ] + ], + "\n" + ] + ], + throwInternalFailure +]; + +getNotebookMetadataString0 // endDefinition; + (* ::**************************************************************************************************************:: *) (* ::Subsubsection::Closed:: *) (*downScaledSettings*) @@ -392,13 +451,17 @@ applyNotebookContextTemplate[ string_String ] := applyNotebookContextTemplate[ string_String, { before_String, after_String } ] := applyNotebookContextTemplate[ string, before <> "..." <> after ]; -applyNotebookContextTemplate[ string_String, indicator_String ] := TemplateApply[ - $notebookContextTemplate, - <| - "SelectionIndicator" -> indicator, - "NotebookContent" -> string - |> -]; +applyNotebookContextTemplate[ string_String, indicator_String ] := + With[ { meta = $notebookMetadataString }, + TemplateApply[ + $notebookContextTemplate, + <| + "SelectionIndicator" -> indicator, + "NotebookContent" -> string, + "NotebookMetadata" -> If[ StringQ @ meta, "\n"<>meta<>"\n", "" ] + |> + ] + ]; applyNotebookContextTemplate // endDefinition; @@ -501,15 +564,15 @@ selectContextCells0 // endDefinition; (* ::Subsection::Closed:: *) (*getUserNotebook*) getUserNotebook // beginDefinition; -getUserNotebook[ ] := FirstCase[ userNotebooks[ ], _NotebookObject, None ]; +getUserNotebook[ ] := FirstCase[ getUserNotebooks[ ], _NotebookObject, None ]; getUserNotebook // endDefinition; (* ::**************************************************************************************************************:: *) (* ::Subsection::Closed:: *) -(*userNotebooks*) -userNotebooks // beginDefinition; +(*getUserNotebooks*) +getUserNotebooks // beginDefinition; -userNotebooks[ ] := Enclose[ +getUserNotebooks[ ] := Enclose[ Cases[ ConfirmMatch[ SourceNotebookObjectInformation[ ], { ___Association }, "NotebookInformation" ], KeyValuePattern @ { "Included" -> True, "NotebookObject" -> nbo_NotebookObject } :> nbo @@ -517,7 +580,7 @@ userNotebooks[ ] := Enclose[ throwInternalFailure ]; -userNotebooks // endDefinition; +getUserNotebooks // endDefinition; (* ::**************************************************************************************************************:: *) (* ::Subsection::Closed:: *) diff --git a/Source/Chatbook/ChatModes/ShowNotebookAssistance.wl b/Source/Chatbook/ChatModes/ShowNotebookAssistance.wl index 6062cb9c..92cceef2 100644 --- a/Source/Chatbook/ChatModes/ShowNotebookAssistance.wl +++ b/Source/Chatbook/ChatModes/ShowNotebookAssistance.wl @@ -13,6 +13,7 @@ Needs[ "Wolfram`Chatbook`ChatModes`Common`" ]; $workspaceChatWidth := $workspaceChatWidth = Switch[ $OperatingSystem, "MacOSX", 450, _, 360 ]; $notebookAssistanceBaseSettings = <| + "AllowSelectionContext" -> True, "AppName" -> "NotebookAssistance", "LLMEvaluator" -> "NotebookAssistant", "MaxContextTokens" -> 2^15, diff --git a/Source/Chatbook/ChatModes/UI.wl b/Source/Chatbook/ChatModes/UI.wl index 91d87a88..d7ec1883 100644 --- a/Source/Chatbook/ChatModes/UI.wl +++ b/Source/Chatbook/ChatModes/UI.wl @@ -10,7 +10,7 @@ Needs[ "Wolfram`Chatbook`ChatModes`Common`" ]; (* ::**************************************************************************************************************:: *) (* ::Section::Closed:: *) (*Configuration*) -$inputFieldPaneMargins = 5; +$inputFieldPaneMargins = { { 5, 5 }, { 0, 5 } }; $inputFieldGridMagnification = Inherited; $inputFieldOuterBackground = GrayLevel[ 0.95 ]; $initialInlineChatWidth = Scaled[ 0.85 ]; @@ -381,9 +381,15 @@ attachedWorkspaceChatInputCell[ location_String ] := Cell[ { RGBColor[ "#a3c9f2" ], RGBColor[ "#f1f7fd" ], 27, thisNB }, "WorkspaceSendChatButton" ] + }, + { + Spacer[ 0 ], + Item[ Dynamic @ focusedNotebookDisplay @ thisNB, Alignment -> Left ], + SpanFromLeft } }, - BaseStyle -> { Magnification -> $inputFieldGridMagnification } + BaseStyle -> { Magnification -> $inputFieldGridMagnification }, + Spacings -> { 0.5, 0.0 } ], FrameMargins -> $inputFieldPaneMargins, ImageSize -> @@ -487,6 +493,223 @@ moveChatInputToBottom[ nbo_NotebookObject ] := moveChatInputToBottom // endDefinition; +(* ::**************************************************************************************************************:: *) +(* ::Subsection::Closed:: *) +(*focusedNotebookDisplay*) +focusedNotebookDisplay // beginDefinition; + +focusedNotebookDisplay[ chatNB_ ] := Enclose[ + Catch @ Module[ { locked, notebooks, info, current, focused, label }, + + locked = getLockedNotebook @ chatNB; + + notebooks = ConfirmMatch[ + Cases[ SourceNotebookObjectInformation[ ], KeyValuePattern[ "Included" -> True ] ], + { ___Association }, + "Notebooks" + ]; + + If[ notebooks === { }, Throw @ Spacer[ 0 ] ]; + + info = ConfirmMatch[ addFocusInfo[ locked, notebooks ], { __Association }, "Info" ]; + current = ConfirmBy[ First @ info, AssociationQ, "Current" ]; + focused = FirstCase[ info, KeyValuePattern[ "Focused" -> True ], current ]; + + label = Grid[ + { { + Toggler[ + Dynamic @ CurrentChatSettings[ chatNB, "AllowSelectionContext" ], + { + True -> $disableNotebookFocusLabel, + False -> $enableNotebookFocusLabel + }, + BaselinePosition -> Baseline + ], + tr[ "WorkspaceFocusIndicatorFocus" ], + focusedNotebookDisplay0[ chatNB, focused, locked, info ] + } }, + Alignment -> { Left, Baseline }, + BaseStyle -> { "Text", FontColor -> GrayLevel[ 0.5 ], FontSize -> 13 }, + BaselinePosition -> { 1, 2 } (* align to the text *) + ]; + + Pane[ label, ImageMargins -> { { 0, 0 }, { 0, 0 } } ] + ], + throwInternalFailure +]; + +focusedNotebookDisplay // endDefinition; + + + +focusedNotebookDisplay0 // beginDefinition; + +focusedNotebookDisplay0[ chatNB_, focused_, locked_, info_ ] := Grid[ + { { + currentNotebookButton @ focused, + selectNotebookFocusMenu[ chatNB, locked, info ] + } }, + Alignment -> { Left, Baseline }, + BaselinePosition -> { 1, 1 }, (* align to the button *) + Dividers -> Center, + FrameStyle -> GrayLevel[ 0.75 ] +]; + +focusedNotebookDisplay0 // endDefinition; + + +$enableNotebookFocusLabel := $enableNotebookFocusLabel = Tooltip[ + chatbookIcon[ "WorkspaceFocusIndicatorUncheck", False ], + tr[ "WorkspaceFocusIndicatorEnableTooltip" ] +]; + +$disableNotebookFocusLabel := $disableNotebookFocusLabel = Tooltip[ + chatbookIcon[ "WorkspaceFocusIndicatorCheck", False ], + tr[ "WorkspaceFocusIndicatorDisableTooltip" ] +]; + +(* ::**************************************************************************************************************:: *) +(* ::Subsubsection::Closed:: *) +(*addFocusInfo*) +addFocusInfo // beginDefinition; + +addFocusInfo[ locked_, notebooks_List ] := + MapIndexed[ addFocusInfo[ locked, #1, #2 ] &, notebooks ]; + +addFocusInfo[ locked_, as_Association, { idx_ } ] := <| + "Current" -> idx === 1, + "Focused" -> as[ "NotebookObject" ] === locked, + as +|>; + +addFocusInfo // endDefinition; + +(* ::**************************************************************************************************************:: *) +(* ::Subsubsection::Closed:: *) +(*currentNotebookButton*) +currentNotebookButton // beginDefinition; + +currentNotebookButton[ as: KeyValuePattern @ { "NotebookObject" -> nbo_NotebookObject, "WindowTitle" -> title_ } ] := + Button[ + currentNotebookButtonLabel @ Replace[ + formatNotebookTitle @ title, + s_String :> FE`Evaluate @ FEPrivate`TruncateStringToWidth[ s, "Text", 200, Right ] + ], + SetSelectedNotebook @ nbo, + Appearance -> "Suppressed", + BaseStyle -> { "Text", FontColor -> GrayLevel[ 0.5 ], FontSize -> 13 }, + BaselinePosition -> Baseline + ]; + +currentNotebookButton // endDefinition; + +(* ::**************************************************************************************************************:: *) +(* ::Subsubsection::Closed:: *) +(*currentNotebookButtonLabel*) +currentNotebookButtonLabel // beginDefinition; + +currentNotebookButtonLabel[ title_ ] := Mouseover[ + Row[ + { + chatbookIcon[ "WorkspaceFocusIndicatorNotebook", False ], + Spacer[ 3 ], + title + }, + BaselinePosition -> Baseline + ], + Row[ + { + chatbookIcon[ "WorkspaceFocusIndicatorNotebookActive", False ], + Spacer[ 3 ], + Style[ title, FontColor -> RGBColor[ 0.2, 0.51373, 0.67451, 1.0 ] ] + }, + BaselinePosition -> Baseline + ], + BaselinePosition -> Baseline +]; + +currentNotebookButtonLabel // endDefinition; + +$smallNotebookIcon := $smallNotebookIcon = chatbookIcon[ "WorkspaceFocusIndicatorNotebook", False ]; + +(* ::**************************************************************************************************************:: *) +(* ::Subsubsection::Closed:: *) +(*selectNotebookFocusMenu*) +selectNotebookFocusMenu // beginDefinition; + +selectNotebookFocusMenu[ chatNB_, locked_, items: { current_Association, ___Association } ] := + selectNotebookFocusMenu[ chatNB, locked, current, SortBy[ items, Lookup[ "WindowTitle" ] ] ]; + +selectNotebookFocusMenu[ chatNB_, locked_, first_, rest_ ] := Tooltip[ + ActionMenu[ + chatbookIcon[ "WorkspaceFocusIndicatorCaret", False ], + Flatten @ { + currentNotebookAction[ chatNB, locked, first ], + Delimiter, + otherNotebookActions[ chatNB, locked, rest ] + }, + Appearance -> "Suppressed", + BaseStyle -> { "Text", FontColor -> GrayLevel[ 0.5 ], FontSize -> 13, Magnification -> Inherited / 0.85 }, + BaselinePosition -> Baseline + ], + tr[ "WorkspaceFocusIndicatorMenuTooltip" ] +]; + +selectNotebookFocusMenu // endDefinition; + +(* ::**************************************************************************************************************:: *) +(* ::Subsubsection::Closed:: *) +(*currentNotebookAction*) +currentNotebookAction // beginDefinition; + +currentNotebookAction[ chatNB_, locked_, as_Association ] := + currentNotebookAction[ chatNB, locked, as[ "WindowTitle" ], as[ "NotebookObject" ] ]; + +currentNotebookAction[ chatNB_, locked_, title_, nbo_ ] := + Row @ { + Style[ "\[Checkmark] ", ShowContents -> locked === None ], + tr[ "WorkspaceFocusIndicatorMenuAutomatic" ], + " (", + formatNotebookTitle @ title, + ")" + } :> ( + CurrentChatSettings[ chatNB, "AllowSelectionContext" ] = True; + CurrentChatSettings[ chatNB, "FocusedNotebook" ] = Inherited + ); + +currentNotebookAction // endDefinition; + +(* ::**************************************************************************************************************:: *) +(* ::Subsubsection::Closed:: *) +(*otherNotebookActions*) +otherNotebookActions // beginDefinition; +otherNotebookActions[ chatNB_, locked_, items_List ] := otherNotebookAction[ chatNB, locked, # ] & /@ items; +otherNotebookActions // endDefinition; + +(* ::**************************************************************************************************************:: *) +(* ::Subsubsubsection::Closed:: *) +(*otherNotebookAction*) +otherNotebookAction // beginDefinition; + +otherNotebookAction[ chatNB_, locked_, as_Association ] := + otherNotebookAction[ chatNB, locked, as[ "WindowTitle" ], as[ "NotebookObject" ] ]; + +otherNotebookAction[ chatNB_, locked_, title_, nbo_ ] := + Row @ { Style[ "\[Checkmark] ", ShowContents -> locked === nbo ], formatNotebookTitle @ title } :> ( + CurrentChatSettings[ chatNB, "AllowSelectionContext" ] = True; + CurrentChatSettings[ chatNB, "FocusedNotebook" ] = nbo + ); + +otherNotebookAction // endDefinition; + +(* ::**************************************************************************************************************:: *) +(* ::Subsubsection::Closed:: *) +(*getLockedNotebook*) +getLockedNotebook // beginDefinition; +getLockedNotebook[ nbo_ ] := getLockedNotebook[ nbo, CurrentChatSettings[ nbo, "FocusedNotebook" ] ]; +getLockedNotebook[ nbo_, focused_ ] := If[ TrueQ @ notebookObjectQ @ focused, focused, None ]; +getLockedNotebook // endDefinition; + (* ::**************************************************************************************************************:: *) (* ::Section::Closed:: *) (*Inline Chat*) @@ -2070,12 +2293,12 @@ withWorkspaceGlobalProgress // endDefinition; $workspaceChatProgressBar = With[ { - background = None, - colorCenter = RGBColor[ 0.27451, 0.61961, 0.79608, 1.0 ], - colorEdges = RGBColor[ 0.27451, 0.61961, 0.79608, 0.0 ], - duration = 3, - leftOffset = -0.5, - rightOffset = 1.5, + background = RGBColor[ "#D0EEFF" ], + colorCenter = RGBColor[ "#55C2FF" ], + colorEdges = RGBColor[ "#D0EEFF" ], + duration = 2.5, + leftOffset = -0.2, + rightOffset = 1.2, thickness = Thickness[ 1 ] }, Graphics[ @@ -2112,6 +2335,7 @@ addToMXInitialization[ $fromWorkspaceChatConversionRules; $inlineToWorkspaceConversionRules; $defaultUserImage; + $smallNotebookIcon; ]; End[ ]; diff --git a/Source/Chatbook/CommonSymbols.wl b/Source/Chatbook/CommonSymbols.wl index e9c80524..51730a06 100644 --- a/Source/Chatbook/CommonSymbols.wl +++ b/Source/Chatbook/CommonSymbols.wl @@ -187,6 +187,7 @@ BeginPackage[ "Wolfram`Chatbook`Common`" ]; `getToolFormattingFunction; `getToolIcon; `getUserNotebook; +`getUserNotebooks; `getWorkspacePrompt; `graphicsQ; `grayDialogButtonLabel; @@ -234,6 +235,7 @@ BeginPackage[ "Wolfram`Chatbook`Common`" ]; `needsBasePrompt; `nextCell; `notebookInformation; +`notebookObjectQ; `notebookRead; `o1ModelQ; `openerView; diff --git a/Source/Chatbook/FrontEnd.wl b/Source/Chatbook/FrontEnd.wl index 2d0123e9..0bf49f12 100644 --- a/Source/Chatbook/FrontEnd.wl +++ b/Source/Chatbook/FrontEnd.wl @@ -835,6 +835,14 @@ checkCellReference // endDefinition; (* ::Section::Closed:: *) (*Notebooks*) +(* ::**************************************************************************************************************:: *) +(* ::Subsection::Closed:: *) +(*notebookObjectQ*) +notebookObjectQ // beginDefinition; +notebookObjectQ[ nbo_NotebookObject ] := StringQ @ CurrentValue[ nbo, ExpressionUUID ]; +notebookObjectQ[ _ ] := False; +notebookObjectQ // endDefinition; + (* ::**************************************************************************************************************:: *) (* ::Subsection::Closed:: *) (*$evaluationNotebook*) diff --git a/Source/Chatbook/PreferencesContent.wl b/Source/Chatbook/PreferencesContent.wl index dbd2a1f9..8a727e72 100644 --- a/Source/Chatbook/PreferencesContent.wl +++ b/Source/Chatbook/PreferencesContent.wl @@ -1208,6 +1208,8 @@ servicesSettingsPanel0 // endDefinition; (*makeLLMPanel*) makeLLMPanel // beginDefinition; +(* :!CodeAnalysis::BeginBlock:: *) +(* :!CodeAnalysis::Disable::NoVariables::DynamicModule:: *) makeLLMPanel[ ] := Module[ { subscribeButton, username, signInButton, manageButton }, subscribeButton = @@ -1335,6 +1337,7 @@ makeLLMPanel[ ] := ImageSize -> Scaled[ 1 ], RoundingRadius -> 3 ] ]; +(* :!CodeAnalysis::EndBlock:: *) makeLLMPanel // endDefinition; diff --git a/Source/Chatbook/Settings.wl b/Source/Chatbook/Settings.wl index 19fe7da6..588d8a2b 100644 --- a/Source/Chatbook/Settings.wl +++ b/Source/Chatbook/Settings.wl @@ -17,6 +17,7 @@ Needs[ "Wolfram`Chatbook`ResourceInstaller`" ]; $cloudInheritanceFix := $cloudNotebooks; $defaultChatSettings = <| + "AllowSelectionContext" -> Automatic, "AppName" -> Automatic, "Assistance" -> Automatic, "Authentication" -> Automatic, @@ -368,6 +369,7 @@ resolveAutoSetting[ settings_, key_ -> value_ ] := <| settings, key -> resolveAu resolveAutoSetting // endDefinition; resolveAutoSetting0 // beginDefinition; +resolveAutoSetting0[ as_, "AllowSelectionContext" ] := TrueQ[ $WorkspaceChat || $InlineChat ]; resolveAutoSetting0[ as_, "AppName" ] := $defaultAppName; resolveAutoSetting0[ as_, "Assistance" ] := False; resolveAutoSetting0[ as_, "Authentication" ] := autoAuthentication @ as; diff --git a/Source/Chatbook/ToolManager.wl b/Source/Chatbook/ToolManager.wl index 5d8332d4..ec746cd8 100644 --- a/Source/Chatbook/ToolManager.wl +++ b/Source/Chatbook/ToolManager.wl @@ -2,8 +2,6 @@ (*Package Header*) BeginPackage[ "Wolfram`Chatbook`ToolManager`" ]; -(* :!CodeAnalysis::BeginBlock:: *) - `CreateLLMToolManagerDialog; `CreateLLMToolManagerPanel; @@ -490,6 +488,7 @@ getValidPersonaTools // endDefinition; (* ::Subsection::Closed:: *) (*attachOverlay*) +(* :!CodeAnalysis::BeginBlock:: *) (* :!CodeAnalysis::Disable::NoVariables::DynamicModule:: *) attachOverlay // beginDefinition; @@ -525,6 +524,7 @@ attachOverlay[ expr_, opts___ ] := AttachCell[ { Center, Center }, RemovalConditions -> { } ]; +(* :!CodeAnalysis::EndBlock:: *) attachOverlay // endDefinition; @@ -605,6 +605,7 @@ toolModelWarning0 // endDefinition; (* ::Subsection::Closed:: *) (*prepTools*) +(* :!CodeAnalysis::BeginBlock:: *) (* :!CodeAnalysis::Disable::DuplicateKeys::ListOfRules:: *) prepTools // beginDefinition; @@ -623,6 +624,7 @@ prepTools[ tools: { __Association }, Dynamic[ { row_, column_ } ] ] := ], { tools, Range @ Length @ tools } ]; +(* :!CodeAnalysis::EndBlock:: *) prepTools // endDefinition; @@ -1486,7 +1488,5 @@ addToMXInitialization[ Null ]; -(* :!CodeAnalysis::EndBlock:: *) - End[ ]; EndPackage[ ];