@rednaxela101/cubing 0.63.5 → 0.63.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (60) hide show
  1. package/dist/bin/chunks/{chunk-22VWCGBC.js → chunk-RHJ7ANWU.js} +2 -2
  2. package/dist/bin/order.js +1 -1
  3. package/dist/bin/puzzle-geometry-bin.js +1 -1
  4. package/dist/bin/scramble.js +1 -1
  5. package/dist/bin/svg.js +1 -1
  6. package/dist/lib/cubing/alg/index.d.ts +1 -1
  7. package/dist/lib/cubing/bluetooth/index.d.ts +2 -2
  8. package/dist/lib/cubing/bluetooth/index.js +3 -3
  9. package/dist/lib/cubing/chunks/{chunk-AESPJKN6.js → chunk-4K2UWZ73.js} +2 -2
  10. package/dist/lib/cubing/chunks/{chunk-IAGCVPL3.js → chunk-76YTBNKC.js} +3 -3
  11. package/dist/lib/cubing/chunks/{chunk-YSI6PF35.js → chunk-LSVH6VHD.js} +19 -3
  12. package/dist/lib/cubing/chunks/{chunk-YSI6PF35.js.map → chunk-LSVH6VHD.js.map} +2 -2
  13. package/dist/lib/cubing/chunks/{chunk-HZQONEMD.js → chunk-SCBMPWH6.js} +2 -2
  14. package/dist/lib/cubing/chunks/{chunk-CGBMJBU3.js → chunk-SO7SGUBW.js} +3 -3
  15. package/dist/lib/cubing/chunks/{chunk-2VJB4TMH.js → chunk-VBJPGWEK.js} +34 -1
  16. package/dist/lib/cubing/chunks/chunk-VBJPGWEK.js.map +7 -0
  17. package/dist/lib/cubing/chunks/{chunk-56VZAEPF.js → chunk-YQSSBUO3.js} +2 -2
  18. package/dist/lib/cubing/chunks/{inside-LG2EAKCL.js → inside-77AO4ZS2.js} +9 -9
  19. package/dist/lib/cubing/chunks/{puzzles-dynamic-megaminx-2LVHIDL4.js → puzzles-dynamic-megaminx-NIZGXNHG.js} +14 -5
  20. package/dist/lib/cubing/chunks/puzzles-dynamic-megaminx-NIZGXNHG.js.map +7 -0
  21. package/dist/lib/cubing/chunks/{search-dynamic-sgs-2x2x2-XFKQ4VJS.js → search-dynamic-sgs-2x2x2-HX32MEXL.js} +3 -3
  22. package/dist/lib/cubing/chunks/{search-dynamic-sgs-pyraminx-W6UJWBYY.js → search-dynamic-sgs-pyraminx-PCQDPIYE.js} +3 -3
  23. package/dist/lib/cubing/chunks/{search-dynamic-sgs-unofficial-YK6HA7BK.js → search-dynamic-sgs-unofficial-TI3CHZMS.js} +3 -3
  24. package/dist/lib/cubing/chunks/{search-dynamic-solve-4x4x4-NONXQHOJ.js → search-dynamic-solve-4x4x4-O3ATNPFN.js} +5 -5
  25. package/dist/lib/cubing/chunks/search-worker-entry.js +1 -1
  26. package/dist/lib/cubing/chunks/{twisty-dynamic-3d-JO6OGKOF.js → twisty-dynamic-3d-VXNE3XL4.js} +4 -4
  27. package/dist/lib/cubing/{index-CcRu94bx.d.ts → index-FT5_Vsnm.d.ts} +14 -0
  28. package/dist/lib/cubing/{index-BX6f56uo.d.ts → index-ylnTp4i5.d.ts} +1 -1
  29. package/dist/lib/cubing/kpuzzle/index.d.ts +1 -1
  30. package/dist/lib/cubing/notation/index.d.ts +1 -1
  31. package/dist/lib/cubing/notation/index.js +2 -2
  32. package/dist/lib/cubing/{outside-BCzgSYQ_.d.ts → outside-D3tRtsxV.d.ts} +1 -1
  33. package/dist/lib/cubing/protocol/index.d.ts +1 -1
  34. package/dist/lib/cubing/protocol/index.js +2 -2
  35. package/dist/lib/cubing/puzzle-geometry/index.d.ts +1 -1
  36. package/dist/lib/cubing/puzzles/index.d.ts +1 -1
  37. package/dist/lib/cubing/puzzles/index.js +2 -2
  38. package/dist/lib/cubing/scramble/index.d.ts +1 -1
  39. package/dist/lib/cubing/scramble/index.js +4 -4
  40. package/dist/lib/cubing/search/index.d.ts +1 -1
  41. package/dist/lib/cubing/search/index.js +4 -4
  42. package/dist/lib/cubing/stream/index.d.ts +1 -1
  43. package/dist/lib/cubing/twisty/index.d.ts +1 -1
  44. package/dist/lib/cubing/twisty/index.js +133 -21
  45. package/dist/lib/cubing/twisty/index.js.map +3 -3
  46. package/package.json +1 -1
  47. package/dist/lib/cubing/chunks/chunk-2VJB4TMH.js.map +0 -7
  48. package/dist/lib/cubing/chunks/puzzles-dynamic-megaminx-2LVHIDL4.js.map +0 -7
  49. /package/dist/bin/chunks/{chunk-22VWCGBC.js.map → chunk-RHJ7ANWU.js.map} +0 -0
  50. /package/dist/lib/cubing/chunks/{chunk-AESPJKN6.js.map → chunk-4K2UWZ73.js.map} +0 -0
  51. /package/dist/lib/cubing/chunks/{chunk-IAGCVPL3.js.map → chunk-76YTBNKC.js.map} +0 -0
  52. /package/dist/lib/cubing/chunks/{chunk-HZQONEMD.js.map → chunk-SCBMPWH6.js.map} +0 -0
  53. /package/dist/lib/cubing/chunks/{chunk-CGBMJBU3.js.map → chunk-SO7SGUBW.js.map} +0 -0
  54. /package/dist/lib/cubing/chunks/{chunk-56VZAEPF.js.map → chunk-YQSSBUO3.js.map} +0 -0
  55. /package/dist/lib/cubing/chunks/{inside-LG2EAKCL.js.map → inside-77AO4ZS2.js.map} +0 -0
  56. /package/dist/lib/cubing/chunks/{search-dynamic-sgs-2x2x2-XFKQ4VJS.js.map → search-dynamic-sgs-2x2x2-HX32MEXL.js.map} +0 -0
  57. /package/dist/lib/cubing/chunks/{search-dynamic-sgs-pyraminx-W6UJWBYY.js.map → search-dynamic-sgs-pyraminx-PCQDPIYE.js.map} +0 -0
  58. /package/dist/lib/cubing/chunks/{search-dynamic-sgs-unofficial-YK6HA7BK.js.map → search-dynamic-sgs-unofficial-TI3CHZMS.js.map} +0 -0
  59. /package/dist/lib/cubing/chunks/{search-dynamic-solve-4x4x4-NONXQHOJ.js.map → search-dynamic-solve-4x4x4-O3ATNPFN.js.map} +0 -0
  60. /package/dist/lib/cubing/chunks/{twisty-dynamic-3d-JO6OGKOF.js.map → twisty-dynamic-3d-VXNE3XL4.js.map} +0 -0
@@ -3,12 +3,12 @@ import {
3
3
  bulk3DCode,
4
4
  haveStartedSharingRenderers,
5
5
  hintFaceletStyles
6
- } from "./chunk-CGBMJBU3.js";
7
- import "./chunk-YSI6PF35.js";
6
+ } from "./chunk-SO7SGUBW.js";
7
+ import "./chunk-LSVH6VHD.js";
8
8
  import {
9
9
  cube3x3x3,
10
10
  getFaceletStickeringMask
11
- } from "./chunk-2VJB4TMH.js";
11
+ } from "./chunk-VBJPGWEK.js";
12
12
  import "./chunk-52ZXJEUO.js";
13
13
  import {
14
14
  Move
@@ -2421,4 +2421,4 @@ export {
2421
2421
  pg3dShim,
2422
2422
  square1_3DShim
2423
2423
  };
2424
- //# sourceMappingURL=twisty-dynamic-3d-JO6OGKOF.js.map
2424
+ //# sourceMappingURL=twisty-dynamic-3d-VXNE3XL4.js.map
@@ -1685,6 +1685,16 @@ declare class TimeRangeProp extends TwistyPropDerived<{
1685
1685
  }): TimeRange;
1686
1686
  }
1687
1687
  //#endregion
1688
+ //#region src/cubing/twisty/model/props/puzzle/display/FaceColorBorderProp.d.ts
1689
+ declare const faceColorBorderStyles: {
1690
+ auto: boolean;
1691
+ none: boolean;
1692
+ };
1693
+ type FaceColorBorderStyle = keyof typeof faceColorBorderStyles;
1694
+ declare class FaceColorBorderProp extends SimpleTwistyPropSource<FaceColorBorderStyle> {
1695
+ getDefaultValue(): FaceColorBorderStyle;
1696
+ }
1697
+ //#endregion
1688
1698
  //#region src/cubing/twisty/model/props/puzzle/display/FaceletScaleProp.d.ts
1689
1699
  type FaceletScale = "auto" | number;
1690
1700
  declare class FaceletScaleProp extends SimpleTwistyPropSource<FaceletScale> {
@@ -1836,6 +1846,7 @@ declare class TwistySceneModel {
1836
1846
  foundationDisplay: FoundationDisplayProp;
1837
1847
  foundationStickerSpriteURL: URLProp;
1838
1848
  fullscreenElement: DOMElementReferenceProp;
1849
+ faceColorBorder: FaceColorBorderProp;
1839
1850
  hintFacelet: HintFaceletProp;
1840
1851
  hintStickerSpriteURL: URLProp;
1841
1852
  initialHintFaceletsAnimation: InitialHintFaceletsAnimationProp;
@@ -2161,6 +2172,8 @@ declare abstract class TwistyPlayerSettable extends ManagedCustomElement {
2161
2172
  get timestamp(): never;
2162
2173
  set hintFacelets(hintFaceletStyle: HintFaceletStyleWithAuto);
2163
2174
  get hintFacelets(): never;
2175
+ set experimentalFaceColorBorder(faceColorBorderStyle: FaceColorBorderStyle);
2176
+ get experimentalFaceColorBorder(): never;
2164
2177
  set experimentalStickering(stickering: ExperimentalStickering);
2165
2178
  get experimentalStickering(): never;
2166
2179
  set experimentalStickeringMaskOrbits(stickeringMask: string | StickeringMask);
@@ -2263,6 +2276,7 @@ interface TwistyPlayerConfig {
2263
2276
  experimentalPuzzleDescription?: PuzzleDescriptionString;
2264
2277
  visualization?: VisualizationFormatWithAuto;
2265
2278
  hintFacelets?: HintFaceletStyleWithAuto;
2279
+ experimentalFaceColorBorder?: FaceColorBorderStyle;
2266
2280
  experimentalStickering?: ExperimentalStickering | null;
2267
2281
  experimentalStickeringMaskOrbits?: StickeringMask | string;
2268
2282
  background?: BackgroundThemeWithAuto;
@@ -1,4 +1,4 @@
1
- import { Ct as AlgLeaf, R as KPattern } from "./index-CcRu94bx.js";
1
+ import { Ct as AlgLeaf, R as KPattern } from "./index-FT5_Vsnm.js";
2
2
 
3
3
  //#region src/cubing/stream/events.d.ts
4
4
  /** @category Smart Puzzles */
@@ -1,2 +1,2 @@
1
- import { B as KTransformation, G as KTransformationData, H as KPatternData, K as KTransformationOrbitData, R as KPattern, U as KPatternOrbitData, V as KPuzzleDefinition, W as KPuzzleOrbitDefinition, z as KPuzzle } from "../index-CcRu94bx.js";
1
+ import { B as KTransformation, G as KTransformationData, H as KPatternData, K as KTransformationOrbitData, R as KPattern, U as KPatternOrbitData, V as KPuzzleDefinition, W as KPuzzleOrbitDefinition, z as KPuzzle } from "../index-FT5_Vsnm.js";
2
2
  export { KPattern, KPatternData, KPatternOrbitData, KPuzzle, KPuzzleDefinition, KPuzzleOrbitDefinition, KTransformation, KTransformationData, KTransformationOrbitData };
@@ -1,4 +1,4 @@
1
- import { M as LeafCount, c as PuzzleLoader, gt as Alg } from "../index-CcRu94bx.js";
1
+ import { M as LeafCount, c as PuzzleLoader, gt as Alg } from "../index-FT5_Vsnm.js";
2
2
 
3
3
  //#region src/cubing/notation/CountAnimatedLeaves.d.ts
4
4
  declare const countAnimatedLeaves: (alg: Alg) => LeafCount;
@@ -5,8 +5,8 @@ import {
5
5
  countMetricMoves,
6
6
  countMoves,
7
7
  countMovesETM
8
- } from "../chunks/chunk-56VZAEPF.js";
9
- import "../chunks/chunk-2VJB4TMH.js";
8
+ } from "../chunks/chunk-YQSSBUO3.js";
9
+ import "../chunks/chunk-VBJPGWEK.js";
10
10
  import "../chunks/chunk-52ZXJEUO.js";
11
11
  import "../chunks/chunk-XPDJUSZ7.js";
12
12
  export {
@@ -1,4 +1,4 @@
1
- import { R as KPattern, gt as Alg, z as KPuzzle } from "./index-CcRu94bx.js";
1
+ import { R as KPattern, gt as Alg, z as KPuzzle } from "./index-FT5_Vsnm.js";
2
2
  //#region src/cubing/search/inside/solve/puzzles/3x3x3/index.d.ts
3
3
  declare function random333Pattern(): Promise<KPattern>;
4
4
  //#endregion
@@ -1,4 +1,4 @@
1
- import { R as KPattern } from "../index-CcRu94bx.js";
1
+ import { R as KPattern } from "../index-FT5_Vsnm.js";
2
2
 
3
3
  //#region src/cubing/protocol/binary/binary3x3x3.d.ts
4
4
  type Binary3x3x3Pattern = Uint8Array;
@@ -5,8 +5,8 @@ import {
5
5
  spacedHexToBuffer,
6
6
  twizzleBinaryToBinaryComponents,
7
7
  twizzleBinaryToReid3x3x3
8
- } from "../chunks/chunk-AESPJKN6.js";
9
- import "../chunks/chunk-2VJB4TMH.js";
8
+ } from "../chunks/chunk-4K2UWZ73.js";
9
+ import "../chunks/chunk-VBJPGWEK.js";
10
10
  import "../chunks/chunk-52ZXJEUO.js";
11
11
  import "../chunks/chunk-XPDJUSZ7.js";
12
12
  export {
@@ -1,2 +1,2 @@
1
- import { $ as PuzzleDescription, J as PUZZLE_BASE_SHAPES, L as schreierSims, Q as PuzzleCutType, X as PuzzleBaseShape, Y as PUZZLE_CUT_TYPES, Z as PuzzleCutDescription, at as getPG3DNamedPuzzles, ct as getPuzzleGeometryByName, dt as PuzzleGeometryOptions, et as PuzzleGeometry, it as StickerDatSticker, lt as parsePuzzleDescription, nt as StickerDatAxis, ot as getPuzzleDescriptionString, q as PGNotation, rt as StickerDatFace, st as getPuzzleGeometryByDesc, tt as StickerDat, ut as Quat } from "../index-CcRu94bx.js";
1
+ import { $ as PuzzleDescription, J as PUZZLE_BASE_SHAPES, L as schreierSims, Q as PuzzleCutType, X as PuzzleBaseShape, Y as PUZZLE_CUT_TYPES, Z as PuzzleCutDescription, at as getPG3DNamedPuzzles, ct as getPuzzleGeometryByName, dt as PuzzleGeometryOptions, et as PuzzleGeometry, it as StickerDatSticker, lt as parsePuzzleDescription, nt as StickerDatAxis, ot as getPuzzleDescriptionString, q as PGNotation, rt as StickerDatFace, st as getPuzzleGeometryByDesc, tt as StickerDat, ut as Quat } from "../index-FT5_Vsnm.js";
2
2
  export { PUZZLE_BASE_SHAPES as EXPERIMENTAL_PUZZLE_BASE_SHAPES, PUZZLE_CUT_TYPES as EXPERIMENTAL_PUZZLE_CUT_TYPES, PGNotation as ExperimentalPGNotation, PuzzleBaseShape as ExperimentalPuzzleBaseShape, PuzzleCutDescription as ExperimentalPuzzleCutDescription, PuzzleCutType as ExperimentalPuzzleCutType, PuzzleDescription as ExperimentalPuzzleDescription, PuzzleGeometryOptions as ExperimentalPuzzleGeometryOptions, PuzzleGeometry, Quat, StickerDat, StickerDatAxis, StickerDatFace, StickerDatSticker, getPG3DNamedPuzzles, getPuzzleDescriptionString, getPuzzleGeometryByDesc, getPuzzleGeometryByName, parsePuzzleDescription, schreierSims };
@@ -1,2 +1,2 @@
1
- import { _ as cube2x2x2, b as wcaEventInfo, c as PuzzleLoader, g as cube3x3x3, h as puzzles, v as eventInfo, x as wcaEvents, y as twizzleEvents } from "../index-CcRu94bx.js";
1
+ import { _ as cube2x2x2, b as wcaEventInfo, c as PuzzleLoader, g as cube3x3x3, h as puzzles, v as eventInfo, x as wcaEvents, y as twizzleEvents } from "../index-FT5_Vsnm.js";
2
2
  export { PuzzleLoader, cube2x2x2, cube3x3x3, eventInfo, puzzles, twizzleEvents, wcaEventInfo, wcaEvents };
@@ -5,10 +5,10 @@ import {
5
5
  twizzleEvents,
6
6
  wcaEventInfo,
7
7
  wcaEvents
8
- } from "../chunks/chunk-YSI6PF35.js";
8
+ } from "../chunks/chunk-LSVH6VHD.js";
9
9
  import {
10
10
  cube3x3x3
11
- } from "../chunks/chunk-2VJB4TMH.js";
11
+ } from "../chunks/chunk-VBJPGWEK.js";
12
12
  import "../chunks/chunk-52ZXJEUO.js";
13
13
  import "../chunks/chunk-XPDJUSZ7.js";
14
14
  export {
@@ -1,2 +1,2 @@
1
- import { i as randomScrambleForEvent, t as deriveScrambleForEvent } from "../outside-BCzgSYQ_.js";
1
+ import { i as randomScrambleForEvent, t as deriveScrambleForEvent } from "../outside-D3tRtsxV.js";
2
2
  export { deriveScrambleForEvent as experimentalDeriveScrambleForEvent, randomScrambleForEvent };
@@ -2,11 +2,11 @@ import "../chunks/chunk-NAPITA3L.js";
2
2
  import {
3
3
  deriveScrambleForEvent,
4
4
  randomScrambleForEvent
5
- } from "../chunks/chunk-HZQONEMD.js";
6
- import "../chunks/chunk-IAGCVPL3.js";
5
+ } from "../chunks/chunk-SCBMPWH6.js";
6
+ import "../chunks/chunk-76YTBNKC.js";
7
7
  import "../chunks/chunk-7GUL3OBQ.js";
8
- import "../chunks/chunk-YSI6PF35.js";
9
- import "../chunks/chunk-2VJB4TMH.js";
8
+ import "../chunks/chunk-LSVH6VHD.js";
9
+ import "../chunks/chunk-VBJPGWEK.js";
10
10
  import "../chunks/chunk-52ZXJEUO.js";
11
11
  import "../chunks/chunk-XPDJUSZ7.js";
12
12
  export {
@@ -1,4 +1,4 @@
1
- import { a as setSearchDebug, c as solveSkewb, l as solveTwips, n as experimentalSolve2x2x2, o as solveMegaminx, r as experimentalSolve3x3x3IgnoringCenters, s as solvePyraminx, u as random333Pattern } from "../outside-BCzgSYQ_.js";
1
+ import { a as setSearchDebug, c as solveSkewb, l as solveTwips, n as experimentalSolve2x2x2, o as solveMegaminx, r as experimentalSolve3x3x3IgnoringCenters, s as solvePyraminx, u as random333Pattern } from "../outside-D3tRtsxV.js";
2
2
 
3
3
  //#region src/cubing/search/index.d.ts
4
4
  /** @deprecated */
@@ -6,13 +6,13 @@ import {
6
6
  solvePyraminx,
7
7
  solveSkewb,
8
8
  solveTwips
9
- } from "../chunks/chunk-HZQONEMD.js";
9
+ } from "../chunks/chunk-SCBMPWH6.js";
10
10
  import {
11
11
  random333Pattern
12
- } from "../chunks/chunk-IAGCVPL3.js";
12
+ } from "../chunks/chunk-76YTBNKC.js";
13
13
  import "../chunks/chunk-7GUL3OBQ.js";
14
- import "../chunks/chunk-YSI6PF35.js";
15
- import "../chunks/chunk-2VJB4TMH.js";
14
+ import "../chunks/chunk-LSVH6VHD.js";
15
+ import "../chunks/chunk-VBJPGWEK.js";
16
16
  import "../chunks/chunk-52ZXJEUO.js";
17
17
  import "../chunks/chunk-XPDJUSZ7.js";
18
18
 
@@ -1,2 +1,2 @@
1
- import { a as OrientationEvent, c as ProxyOrientationEvent, i as AlgLeafEvent, l as ProxyResetEvent, n as WebSocketProxySender, o as ProxyEvent, r as TwizzleStreamServer, s as ProxyMoveEvent, t as WebSocketProxyReceiver } from "../index-BX6f56uo.js";
1
+ import { a as OrientationEvent, c as ProxyOrientationEvent, i as AlgLeafEvent, l as ProxyResetEvent, n as WebSocketProxySender, o as ProxyEvent, r as TwizzleStreamServer, s as ProxyMoveEvent, t as WebSocketProxyReceiver } from "../index-ylnTp4i5.js";
2
2
  export { AlgLeafEvent as ExperimentalAlgLeafEvent, OrientationEvent as ExperimentalOrientationEvent, ProxyEvent as ExperimentalProxyEvent, ProxyMoveEvent as ExperimentalProxyMoveEvent, ProxyOrientationEvent as ExperimentalProxyOrientationEvent, ProxyResetEvent as ExperimentalProxyResetEvent, TwizzleStreamServer as ExperimentalTwizzleStreamServer, WebSocketProxyReceiver as ExperimentalWebSocketProxyReceiver, WebSocketProxySender as ExperimentalWebSocketProxySender };
@@ -1,2 +1,2 @@
1
- import { A as SimpleAlgIndexer, C as VisualizationFormat, D as PuzzleID, E as ExperimentalStickering, F as MillisecondDuration, I as MillisecondTimestamp, M as LeafCount, N as LeafIndex, O as setTwistyDebug, P as NO_VALUE, S as TwistyAnimatedSVG, T as backViewLayouts, d as TwistyAlgEditor, j as AlgIndexer, k as TreeAlgIndexer, l as TwizzleLink, m as TwistyPlayerConfig, p as TwistyPlayer, u as TwistyAlgViewer, w as BackViewLayout } from "../index-CcRu94bx.js";
1
+ import { A as SimpleAlgIndexer, C as VisualizationFormat, D as PuzzleID, E as ExperimentalStickering, F as MillisecondDuration, I as MillisecondTimestamp, M as LeafCount, N as LeafIndex, O as setTwistyDebug, P as NO_VALUE, S as TwistyAnimatedSVG, T as backViewLayouts, d as TwistyAlgEditor, j as AlgIndexer, k as TreeAlgIndexer, l as TwizzleLink, m as TwistyPlayerConfig, p as TwistyPlayer, u as TwistyAlgViewer, w as BackViewLayout } from "../index-FT5_Vsnm.js";
2
2
  export { AlgIndexer, BackViewLayout, NO_VALUE as EXPERIMENTAL_PROP_NO_VALUE, LeafCount as ExperimentalLeafCount, LeafIndex as ExperimentalLeafIndex, MillisecondDuration as ExperimentalMillisecondDuration, MillisecondTimestamp as ExperimentalMillisecondTimestamp, TwistyAnimatedSVG as ExperimentalSVGAnimator, ExperimentalStickering, PuzzleID, SimpleAlgIndexer, TreeAlgIndexer, TwistyAlgEditor, TwistyAlgViewer, TwistyPlayer, TwistyPlayerConfig, TwizzleLink, VisualizationFormat, backViewLayouts, setTwistyDebug };
@@ -18,21 +18,21 @@ import {
18
18
  rawRenderPooled,
19
19
  setCameraFromOrbitCoordinates,
20
20
  setTwistyDebug
21
- } from "../chunks/chunk-CGBMJBU3.js";
21
+ } from "../chunks/chunk-SO7SGUBW.js";
22
22
  import {
23
23
  countAnimatedLeaves,
24
24
  countLeavesInExpansionForSimultaneousMoveIndexer,
25
25
  countMetricMoves
26
- } from "../chunks/chunk-56VZAEPF.js";
26
+ } from "../chunks/chunk-YQSSBUO3.js";
27
27
  import {
28
28
  puzzles
29
- } from "../chunks/chunk-YSI6PF35.js";
29
+ } from "../chunks/chunk-LSVH6VHD.js";
30
30
  import {
31
31
  cube3x3x3,
32
32
  customPGPuzzleLoader,
33
33
  getPartialAppendOptionsForPuzzleSpecificSimplifyOptions,
34
34
  getPieceStickeringMask
35
- } from "../chunks/chunk-2VJB4TMH.js";
35
+ } from "../chunks/chunk-VBJPGWEK.js";
36
36
  import "../chunks/chunk-52ZXJEUO.js";
37
37
  import {
38
38
  Alg,
@@ -654,22 +654,77 @@ function nextSVGID() {
654
654
  svgCounter += 1;
655
655
  return `svg${svgCounter.toString()}`;
656
656
  }
657
- var colorMaps = {
658
- dim: {
659
- white: "#dddddd",
660
- orange: "#884400",
661
- limegreen: "#008800",
662
- red: "#660000",
663
- "rgb(34, 102, 255)": "#000088",
664
- // TODO
665
- yellow: "#888800",
666
- "rgb(102, 0, 153)": "rgb(50, 0, 76)",
667
- purple: "#3f003f"
668
- },
657
+ var flatColors = {
669
658
  oriented: "#44ddcc",
670
659
  ignored: "#555555",
671
660
  invisible: "#00000000"
672
661
  };
662
+ var explicitDimColors = {
663
+ white: "#dddddd",
664
+ orange: "#884400",
665
+ limegreen: "#008800",
666
+ red: "#660000",
667
+ "rgb(34, 102, 255)": "#000088",
668
+ // TODO
669
+ yellow: "#888800",
670
+ "rgb(102, 0, 153)": "rgb(50, 0, 76)",
671
+ purple: "#3f003f"
672
+ };
673
+ var DIM_FACTOR = 0.5;
674
+ var colorParsingContext;
675
+ function getColorParsingContext() {
676
+ if (colorParsingContext === void 0) {
677
+ try {
678
+ colorParsingContext = document.createElement("canvas").getContext("2d");
679
+ } catch {
680
+ colorParsingContext = null;
681
+ }
682
+ }
683
+ return colorParsingContext;
684
+ }
685
+ function parseColor(color) {
686
+ const ctx = getColorParsingContext();
687
+ if (!ctx) {
688
+ return null;
689
+ }
690
+ const probe = (sentinel) => {
691
+ ctx.fillStyle = sentinel;
692
+ ctx.fillStyle = color;
693
+ return ctx.fillStyle;
694
+ };
695
+ const normalized = probe("#000000");
696
+ if (normalized !== probe("#ffffff")) {
697
+ return null;
698
+ }
699
+ const hexMatch = /^#([0-9a-f]{6})$/.exec(normalized);
700
+ if (hexMatch) {
701
+ const value = Number.parseInt(hexMatch[1], 16);
702
+ return [value >> 16 & 255, value >> 8 & 255, value & 255];
703
+ }
704
+ const rgbMatch = /^rgba?\(([^)]*)\)$/.exec(normalized);
705
+ if (rgbMatch) {
706
+ const components = rgbMatch[1].split(",").map((component) => Number.parseFloat(component));
707
+ if (components.length >= 3 && components.slice(0, 3).every(Number.isFinite)) {
708
+ return [components[0], components[1], components[2]];
709
+ }
710
+ }
711
+ return null;
712
+ }
713
+ var dimColorCache = /* @__PURE__ */ new Map();
714
+ function dimColor(color) {
715
+ const explicit = explicitDimColors[color];
716
+ if (explicit) {
717
+ return explicit;
718
+ }
719
+ const cached = dimColorCache.get(color);
720
+ if (cached !== void 0) {
721
+ return cached;
722
+ }
723
+ const rgb = parseColor(color);
724
+ const dimmed = rgb ? `rgb(${rgb.map((component) => Math.round(component * DIM_FACTOR)).join(", ")})` : color;
725
+ dimColorCache.set(color, dimmed);
726
+ return dimmed;
727
+ }
673
728
  var TwistyAnimatedSVG = class {
674
729
  constructor(kpuzzle, svgSource, experimentalStickeringMask, showUnknownOrientations = false) {
675
730
  this.kpuzzle = kpuzzle;
@@ -730,11 +785,11 @@ var TwistyAnimatedSVG = class {
730
785
  return;
731
786
  }
732
787
  const stickeringMask = typeof faceletStickeringMasks === "string" ? faceletStickeringMasks : faceletStickeringMasks?.mask;
733
- const colorMap = colorMaps[stickeringMask];
734
- if (typeof colorMap === "string") {
735
- originalColor = colorMap;
736
- } else if (colorMap) {
737
- originalColor = colorMap[originalColor];
788
+ const flatColor = flatColors[stickeringMask];
789
+ if (flatColor) {
790
+ originalColor = flatColor;
791
+ } else if (stickeringMask === "dim" && originalColor) {
792
+ originalColor = dimColor(originalColor);
738
793
  }
739
794
  })();
740
795
  } else {
@@ -1301,6 +1356,18 @@ twistyViewerWrapperCSS.replaceSync(
1301
1356
  `
1302
1357
  );
1303
1358
 
1359
+ // src/cubing/twisty/model/props/puzzle/display/FaceColorBorderProp.ts
1360
+ var faceColorBorderStyles = {
1361
+ auto: true,
1362
+ // default: drawn wherever the SVG provides one
1363
+ none: true
1364
+ };
1365
+ var FaceColorBorderProp = class extends SimpleTwistyPropSource {
1366
+ getDefaultValue() {
1367
+ return "auto";
1368
+ }
1369
+ };
1370
+
1304
1371
  // src/cubing/twisty/views/2D/Twisty2DPuzzle.css.ts
1305
1372
  var twisty2DSVGCSS = new cssStyleSheetShim();
1306
1373
  twisty2DSVGCSS.replaceSync(
@@ -1339,6 +1406,10 @@ svg {
1339
1406
  .hint-facelets-none .hint-facelet {
1340
1407
  display: none;
1341
1408
  }
1409
+
1410
+ .face-color-border-none .face-color-border-group {
1411
+ display: none;
1412
+ }
1342
1413
  `
1343
1414
  );
1344
1415
 
@@ -1368,6 +1439,12 @@ var Twisty2DPuzzle = class extends ManagedCustomElement {
1368
1439
  this.setHintFacelet(hintFacelet);
1369
1440
  }
1370
1441
  );
1442
+ this.#freshListenerManager.addListener(
1443
+ this.model.twistySceneModel.faceColorBorder,
1444
+ (faceColorBorder) => {
1445
+ this.setFaceColorBorder(faceColorBorder);
1446
+ }
1447
+ );
1371
1448
  this.#freshListenerManager.addListener(
1372
1449
  this.model.legacyPosition,
1373
1450
  this.onPositionChange.bind(this)
@@ -1450,6 +1527,7 @@ var Twisty2DPuzzle = class extends ManagedCustomElement {
1450
1527
  stickeringMask
1451
1528
  );
1452
1529
  this.addElement(this.svgWrapper.wrapperElement);
1530
+ this.#applyFaceColorBorderViewBox();
1453
1531
  if (this.#cachedPosition) {
1454
1532
  this.onPositionChange(this.#cachedPosition);
1455
1533
  }
@@ -1464,6 +1542,30 @@ var Twisty2DPuzzle = class extends ManagedCustomElement {
1464
1542
  hintFacelet === "auto" ? "floating" : hintFacelet
1465
1543
  );
1466
1544
  }
1545
+ faceColorBorderClassListManager = new ClassListManager(
1546
+ this,
1547
+ "face-color-border-",
1548
+ Object.keys(faceColorBorderStyles)
1549
+ );
1550
+ #faceColorBorder = "auto";
1551
+ setFaceColorBorder(faceColorBorder) {
1552
+ this.#faceColorBorder = faceColorBorder;
1553
+ this.faceColorBorderClassListManager.setValue(faceColorBorder);
1554
+ this.#applyFaceColorBorderViewBox();
1555
+ }
1556
+ // The border sits outside the puzzle outline, so an SVG that has one reserves
1557
+ // room for it in the `viewBox` it ships with. Hiding the border would then
1558
+ // leave the diagram floating in a band of empty space, so swap in the tight
1559
+ // `viewBox` the SVG declares alongside it.
1560
+ #applyFaceColorBorderViewBox() {
1561
+ const svgElement = this.svgWrapper?.svgElement;
1562
+ const viewBox = svgElement?.getAttribute(
1563
+ this.#faceColorBorder === "none" ? "data-view-box-without-face-color-border" : "data-view-box-with-face-color-border"
1564
+ );
1565
+ if (viewBox) {
1566
+ svgElement.setAttribute("viewBox", viewBox);
1567
+ }
1568
+ }
1467
1569
  render() {
1468
1570
  }
1469
1571
  };
@@ -3852,6 +3954,7 @@ var TwistySceneModel = class {
3852
3954
  foundationDisplay = new FoundationDisplayProp();
3853
3955
  foundationStickerSpriteURL = new URLProp();
3854
3956
  fullscreenElement = new DOMElementReferenceProp();
3957
+ faceColorBorder = new FaceColorBorderProp();
3855
3958
  hintFacelet = new HintFaceletProp();
3856
3959
  hintStickerSpriteURL = new URLProp();
3857
3960
  initialHintFaceletsAnimation = new InitialHintFaceletsAnimationProp();
@@ -4208,6 +4311,14 @@ var TwistyPlayerSettable = class extends ManagedCustomElement {
4208
4311
  get hintFacelets() {
4209
4312
  throw err("hintFacelets");
4210
4313
  }
4314
+ set experimentalFaceColorBorder(faceColorBorderStyle) {
4315
+ this.experimentalModel.twistySceneModel.faceColorBorder.set(
4316
+ faceColorBorderStyle
4317
+ );
4318
+ }
4319
+ get experimentalFaceColorBorder() {
4320
+ throw err("experimentalFaceColorBorder");
4321
+ }
4211
4322
  set experimentalStickering(stickering) {
4212
4323
  this.experimentalModel.twistySceneModel.stickeringRequest.set(stickering);
4213
4324
  }
@@ -4415,6 +4526,7 @@ var twistyPlayerAttributeMap = {
4415
4526
  "experimental-puzzle-description": "experimentalPuzzleDescription",
4416
4527
  visualization: "visualization",
4417
4528
  "hint-facelets": "hintFacelets",
4529
+ "experimental-face-color-border": "experimentalFaceColorBorder",
4418
4530
  "experimental-stickering": "experimentalStickering",
4419
4531
  "experimental-stickering-mask-orbits": "experimentalStickeringMaskOrbits",
4420
4532
  background: "background",